From 26c5768500ce30539b6eded64fb6413c24858d25 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 30 Apr 2016 11:47:01 +0200 Subject: [PATCH 01/72] add simple name expression resolution (default binding context) + clean up raw input API even more --- .../Common/DeclarationIconCache.cs | 4 +- RetailCoder.VBE/Common/RubberduckHooks.cs | 3 +- .../Common/WinAPI/BroadcastDeviceInterface.cs | 13 - .../Common/WinAPI/BroadcastDeviceType.cs | 13 - .../Common/WinAPI/EnumeratedDevice.cs | 13 - RetailCoder.VBE/Common/WinAPI/IRawDevice.cs | 3 +- .../Common/WinAPI/PreMessageFilter.cs | 14 - RetailCoder.VBE/Common/WinAPI/RawDevice.cs | 99 ------ RetailCoder.VBE/Common/WinAPI/RawInput.cs | 90 +----- .../Common/WinAPI/RawKeyEventArgs.cs | 86 +---- RetailCoder.VBE/Common/WinAPI/RawKeyboard.cs | 42 +-- RetailCoder.VBE/Common/WinAPI/RawMouse.cs | 36 +-- .../Common/WinAPI/RawMouseEventArgs.cs | 84 ----- RetailCoder.VBE/Rubberduck.csproj | 5 - .../Binding/DefaultBindingContext.cs | 24 +- .../Binding/SimpleNameDefaultBinding.cs | 302 ++++++++++++++++++ Rubberduck.Parsing/Rubberduck.Parsing.csproj | 1 + .../Symbols/ClassModuleDeclaration.cs | 13 + .../Symbols/DeclarationFinder.cs | 27 ++ Rubberduck.Parsing/Symbols/DeclarationType.cs | 4 +- .../Symbols/IdentifierReferenceListener.cs | 2 +- .../Symbols/IdentifierReferenceResolver.cs | 13 +- 22 files changed, 407 insertions(+), 484 deletions(-) delete mode 100644 RetailCoder.VBE/Common/WinAPI/BroadcastDeviceInterface.cs delete mode 100644 RetailCoder.VBE/Common/WinAPI/BroadcastDeviceType.cs delete mode 100644 RetailCoder.VBE/Common/WinAPI/EnumeratedDevice.cs delete mode 100644 RetailCoder.VBE/Common/WinAPI/PreMessageFilter.cs delete mode 100644 RetailCoder.VBE/Common/WinAPI/RawDevice.cs create mode 100644 Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs diff --git a/RetailCoder.VBE/Common/DeclarationIconCache.cs b/RetailCoder.VBE/Common/DeclarationIconCache.cs index 18f0c11b8e..203b831f57 100644 --- a/RetailCoder.VBE/Common/DeclarationIconCache.cs +++ b/RetailCoder.VBE/Common/DeclarationIconCache.cs @@ -159,7 +159,7 @@ private static Uri GetIconUri(DeclarationType declarationType, Accessibility acc path = "VSObject_Enum.png"; break; - case DeclarationType.EnumerationMember | DeclarationType.Constant: + case DeclarationType.EnumerationMember: path = "VSObject_EnumItem.png"; break; @@ -193,7 +193,7 @@ private static Uri GetIconUri(DeclarationType declarationType, Accessibility acc path = "VSObject_ValueType.png"; break; - case DeclarationType.UserDefinedTypeMember | DeclarationType.Variable: + case DeclarationType.UserDefinedTypeMember: path = "VSObject_Field.png"; break; diff --git a/RetailCoder.VBE/Common/RubberduckHooks.cs b/RetailCoder.VBE/Common/RubberduckHooks.cs index c57c8c432e..5dbe8744ce 100644 --- a/RetailCoder.VBE/Common/RubberduckHooks.cs +++ b/RetailCoder.VBE/Common/RubberduckHooks.cs @@ -45,8 +45,7 @@ public void HookHotkeys() var config = _config.LoadConfiguration(); var settings = config.UserSettings.GeneralSettings.HotkeySettings; - _rawinput = new RawInput(_mainWindowHandle, true); - _rawinput.AddMessageFilter(); + _rawinput = new RawInput(_mainWindowHandle); var kb = (RawKeyboard)_rawinput.CreateKeyboard(); _rawinput.AddDevice(kb); diff --git a/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceInterface.cs b/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceInterface.cs deleted file mode 100644 index b94105a439..0000000000 --- a/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceInterface.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Rubberduck.Common.WinAPI -{ - struct BroadcastDeviceInterface - { - public Int32 DbccSize; - public BroadcastDeviceType BroadcastDeviceType; - public Int32 DbccReserved; - public Guid DbccClassguid; - public char DbccName; - } -} diff --git a/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceType.cs b/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceType.cs deleted file mode 100644 index d204284332..0000000000 --- a/RetailCoder.VBE/Common/WinAPI/BroadcastDeviceType.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Rubberduck.Common.WinAPI -{ - enum BroadcastDeviceType - { - DBT_DEVTYP_OEM = 0, - DBT_DEVTYP_DEVNODE = 1, - DBT_DEVTYP_VOLUME = 2, - DBT_DEVTYP_PORT = 3, - DBT_DEVTYP_NET = 4, - DBT_DEVTYP_DEVICEINTERFACE = 5, - DBT_DEVTYP_HANDLE = 6, - } -} diff --git a/RetailCoder.VBE/Common/WinAPI/EnumeratedDevice.cs b/RetailCoder.VBE/Common/WinAPI/EnumeratedDevice.cs deleted file mode 100644 index 93cf3703ad..0000000000 --- a/RetailCoder.VBE/Common/WinAPI/EnumeratedDevice.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Rubberduck.Common.WinAPI -{ - public sealed class EnumeratedDevice - { - public string DeviceName { get; set; } - public IntPtr DeviceHandle { get; set; } - public string DeviceType { get; set; } - public string Name { get; set; } - public string Source { get; set; } - } -} diff --git a/RetailCoder.VBE/Common/WinAPI/IRawDevice.cs b/RetailCoder.VBE/Common/WinAPI/IRawDevice.cs index 9426a78263..c76c71d1d7 100644 --- a/RetailCoder.VBE/Common/WinAPI/IRawDevice.cs +++ b/RetailCoder.VBE/Common/WinAPI/IRawDevice.cs @@ -4,7 +4,6 @@ namespace Rubberduck.Common.WinAPI { public interface IRawDevice { - void ProcessRawInput(IntPtr hdevice); - void EnumerateDevices(); + void ProcessRawInput(InputData _rawBuffer); } } diff --git a/RetailCoder.VBE/Common/WinAPI/PreMessageFilter.cs b/RetailCoder.VBE/Common/WinAPI/PreMessageFilter.cs deleted file mode 100644 index 97f3b874c3..0000000000 --- a/RetailCoder.VBE/Common/WinAPI/PreMessageFilter.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Windows.Forms; - -namespace Rubberduck.Common.WinAPI -{ - public class PreMessageFilter : IMessageFilter - { - // true to filter the message and stop it from being dispatched - // false to allow the message to continue to the next filter or control. - public bool PreFilterMessage(ref Message m) - { - return false; - } - } -} diff --git a/RetailCoder.VBE/Common/WinAPI/RawDevice.cs b/RetailCoder.VBE/Common/WinAPI/RawDevice.cs deleted file mode 100644 index b1c4af1f6a..0000000000 --- a/RetailCoder.VBE/Common/WinAPI/RawDevice.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Globalization; -using System.Runtime.InteropServices; - -namespace Rubberduck.Common.WinAPI -{ - public abstract class RawDevice : IRawDevice - { - private readonly Dictionary _deviceList = new Dictionary(); - private readonly object _padLock = new object(); - - protected Dictionary DeviceList - { - get - { - return _deviceList; - } - } - - protected object PadLock - { - get - { - return _padLock; - } - } - - protected void EnumerateDevices(DeviceType deviceType) - { - lock (_padLock) - { - _deviceList.Clear(); - var deviceNumber = 0; - var globalDevice = new EnumeratedDevice - { - DeviceName = "Global Device", - DeviceHandle = IntPtr.Zero, - DeviceType = Win32.GetDeviceType(deviceType), - Name = "Fake Device", - Source = deviceNumber++.ToString(CultureInfo.InvariantCulture) - }; - - _deviceList.Add(globalDevice.DeviceHandle, globalDevice); - - uint deviceCount = 0; - var dwSize = (Marshal.SizeOf(typeof(RawInputDeviceList))); - if (User32.GetRawInputDeviceList(IntPtr.Zero, ref deviceCount, (uint)dwSize) == 0) - { - var pRawInputDeviceList = Marshal.AllocHGlobal((int)(dwSize * deviceCount)); - User32.GetRawInputDeviceList(pRawInputDeviceList, ref deviceCount, (uint)dwSize); - for (var i = 0; i < deviceCount; i++) - { - uint pcbSize = 0; - - // On Window 8 64bit when compiling against .Net > 3.5 using .ToInt32 you will generate an arithmetic overflow. Leave as it is for 32bit/64bit applications - var rid = (RawInputDeviceList)Marshal.PtrToStructure(new IntPtr((pRawInputDeviceList.ToInt64() + (dwSize * i))), typeof(RawInputDeviceList)); - - User32.GetRawInputDeviceInfo(rid.hDevice, RawInputDeviceInfo.RIDI_DEVICENAME, IntPtr.Zero, ref pcbSize); - - if (pcbSize <= 0) continue; - - var pData = Marshal.AllocHGlobal((int)pcbSize); - User32.GetRawInputDeviceInfo(rid.hDevice, RawInputDeviceInfo.RIDI_DEVICENAME, pData, ref pcbSize); - var deviceName = Marshal.PtrToStringAnsi(pData); - - if (rid.dwType == (uint)deviceType || rid.dwType == (uint)DeviceType.RIM_TYPE_HID) - { - var deviceDesc = Win32.GetDeviceDescription(deviceName); - - var dInfo = new EnumeratedDevice - { - DeviceName = Marshal.PtrToStringAnsi(pData), - DeviceHandle = rid.hDevice, - DeviceType = Win32.GetDeviceType((DeviceType)rid.dwType), - Name = deviceDesc, - Source = deviceNumber++.ToString(CultureInfo.InvariantCulture) - }; - - if (!_deviceList.ContainsKey(rid.hDevice)) - { - _deviceList.Add(rid.hDevice, dInfo); - } - } - - Marshal.FreeHGlobal(pData); - } - Marshal.FreeHGlobal(pRawInputDeviceList); - return; - } - } - throw new Win32Exception(Marshal.GetLastWin32Error()); - } - - public abstract void ProcessRawInput(IntPtr hdevice); - public abstract void EnumerateDevices(); - } -} diff --git a/RetailCoder.VBE/Common/WinAPI/RawInput.cs b/RetailCoder.VBE/Common/WinAPI/RawInput.cs index b6302a29ba..fcd65d03cf 100644 --- a/RetailCoder.VBE/Common/WinAPI/RawInput.cs +++ b/RetailCoder.VBE/Common/WinAPI/RawInput.cs @@ -1,30 +1,26 @@ using System; +using System.Collections.Generic; +using System.ComponentModel; using System.Diagnostics; -using System.Windows.Forms; using System.Runtime.InteropServices; -using System.Collections.Generic; -using Rubberduck.Common.WinAPI; +using System.Windows.Forms; namespace Rubberduck.Common.WinAPI { public class RawInput : NativeWindow { - readonly IntPtr _devNotifyHandle; static readonly Guid DeviceInterfaceHid = new Guid("4D1E55B2-F16F-11CF-88CB-001111000030"); - private PreMessageFilter _filter; private readonly List _devices; - public RawInput(IntPtr parentHandle, bool captureOnlyInForeground) + public RawInput(IntPtr parentHandle) { AssignHandle(parentHandle); - _devNotifyHandle = RegisterForDeviceNotifications(parentHandle); _devices = new List(); } public void AddDevice(IRawDevice device) { _devices.Add(device); - device.EnumerateDevices(); } public IRawDevice CreateKeyboard() @@ -35,58 +31,7 @@ public IRawDevice CreateKeyboard() public IRawDevice CreateMouse() { return new RawMouse(Handle, true); - } - - public void AddMessageFilter() - { - if (null != _filter) - { - return; - } - _filter = new PreMessageFilter(); - Application.AddMessageFilter(_filter); - } - - private void RemoveMessageFilter() - { - if (null == _filter) - { - return; - } - Application.RemoveMessageFilter(_filter); - } - - static IntPtr RegisterForDeviceNotifications(IntPtr parent) - { - var usbNotifyHandle = IntPtr.Zero; - var bdi = new BroadcastDeviceInterface(); - bdi.DbccSize = Marshal.SizeOf(bdi); - bdi.BroadcastDeviceType = BroadcastDeviceType.DBT_DEVTYP_DEVICEINTERFACE; - bdi.DbccClassguid = DeviceInterfaceHid; - var mem = IntPtr.Zero; - try - { - mem = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(BroadcastDeviceInterface))); - Marshal.StructureToPtr(bdi, mem, false); - usbNotifyHandle = User32.RegisterDeviceNotification(parent, mem, DeviceNotification.DEVICE_NOTIFY_WINDOW_HANDLE); - } - catch (Exception e) - { - Debug.Print("Registration for device notifications Failed. Error: {0}", Marshal.GetLastWin32Error()); - Debug.Print(e.StackTrace); - } - finally - { - Marshal.FreeHGlobal(mem); - } - - if (usbNotifyHandle == IntPtr.Zero) - { - Debug.Print("Registration for device notifications Failed. Error: {0}", Marshal.GetLastWin32Error()); - } - - return usbNotifyHandle; - } + } protected override void WndProc(ref Message message) { @@ -94,31 +39,24 @@ protected override void WndProc(ref Message message) { case WM.INPUT: { - foreach (var device in _devices) + InputData _rawBuffer; + var dwSize = 0; + User32.GetRawInputData(message.LParam, DataCommand.RID_INPUT, IntPtr.Zero, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader))); + int res = User32.GetRawInputData(message.LParam, DataCommand.RID_INPUT, out _rawBuffer, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader))); + if (dwSize != res) { - device.ProcessRawInput(message.LParam); + var ex = new Win32Exception(Marshal.GetLastWin32Error()); + Debug.WriteLine("Error getting the rawinput buffer: {0}", ex.Message); + return; } - } - break; - - case WM.DEVICECHANGE: - { - Debug.WriteLine("USB Device Arrival / Removal"); foreach (var device in _devices) { - device.EnumerateDevices(); + device.ProcessRawInput(_rawBuffer); } } break; } - base.WndProc(ref message); } - - ~RawInput() - { - User32.UnregisterDeviceNotification(_devNotifyHandle); - RemoveMessageFilter(); - } } } diff --git a/RetailCoder.VBE/Common/WinAPI/RawKeyEventArgs.cs b/RetailCoder.VBE/Common/WinAPI/RawKeyEventArgs.cs index bf671053d2..9836294ec4 100644 --- a/RetailCoder.VBE/Common/WinAPI/RawKeyEventArgs.cs +++ b/RetailCoder.VBE/Common/WinAPI/RawKeyEventArgs.cs @@ -4,50 +4,23 @@ namespace Rubberduck.Common.WinAPI { public sealed class RawKeyEventArgs : EventArgs { - private string _deviceName; // i.e. \\?\HID#VID_045E&PID_00DD&MI_00#8&1eb402&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} - private string _deviceType; // KEYBOARD or HID - private IntPtr _deviceHandle; // Handle to the device that send the input - private string _name; // i.e. Microsoft USB Comfort Curve Keyboard 2000 (Mouse and Keyboard Center) - private string _source; // Keyboard_XX private int _vKey; // Virtual Key. Corrected for L/R keys(i.e. LSHIFT/RSHIFT) and Zoom private string _vKeyName; // Virtual Key Name. Corrected for L/R keys(i.e. LSHIFT/RSHIFT) and Zoom - private WM _message; // WM_KEYDOWN or WM_KEYUP + private WM _message; // WM_KEYDOWN or WM_KEYUP private string _keyPressState; // MAKE or BREAK public RawKeyEventArgs( - string deviceName, - string deviceType, - IntPtr deviceHandle, - string name, - string source, int vKey, string vKeyName, WM message, string keyPressState) { - _deviceName = deviceName; - _deviceType = deviceType; - _deviceHandle = deviceHandle; - _name = name; - _source = source; _vKey = vKey; _vKeyName = vKeyName; _message = message; _keyPressState = keyPressState; } - public string Source - { - get - { - return _source; - } - set - { - _source = string.Format("Keyboard_{0}", value.PadLeft(2, '0')); - } - } - public string KeyPressState { get @@ -99,63 +72,6 @@ public int VKey _vKey = value; } } - - public string Name - { - get - { - return _name; - } - - set - { - _name = value; - } - } - - public IntPtr DeviceHandle - { - get - { - return _deviceHandle; - } - - set - { - _deviceHandle = value; - } - } - - public string DeviceType - { - get - { - return _deviceType; - } - - set - { - _deviceType = value; - } - } - - public string DeviceName - { - get - { - return _deviceName; - } - - set - { - _deviceName = value; - } - } - - public override string ToString() - { - return string.Format("Device\n DeviceName: {0}\n DeviceType: {1}\n DeviceHandle: {2}\n Name: {3}\n", _deviceName, _deviceType, _deviceHandle.ToInt64().ToString("X"), _name); - } } } diff --git a/RetailCoder.VBE/Common/WinAPI/RawKeyboard.cs b/RetailCoder.VBE/Common/WinAPI/RawKeyboard.cs index 3e64675c39..92835742c8 100644 --- a/RetailCoder.VBE/Common/WinAPI/RawKeyboard.cs +++ b/RetailCoder.VBE/Common/WinAPI/RawKeyboard.cs @@ -1,13 +1,10 @@ using System; -using System.Diagnostics; using System.Runtime.InteropServices; namespace Rubberduck.Common.WinAPI { - public sealed class RawKeyboard : RawDevice + public sealed class RawKeyboard : IRawDevice { - private InputData _rawBuffer; - public RawKeyboard(IntPtr hwnd, bool captureOnlyInForeground) { var rid = new RawInputDevice[1]; @@ -23,49 +20,24 @@ public RawKeyboard(IntPtr hwnd, bool captureOnlyInForeground) public event EventHandler RawKeyInputReceived; - public override void EnumerateDevices() - { - EnumerateDevices(DeviceType.RIM_TYPE_KEYBOARD); - } - - public override void ProcessRawInput(IntPtr hdevice) + public void ProcessRawInput(InputData _rawBuffer) { - if (DeviceList.Count == 0) return; - - var dwSize = 0; - User32.GetRawInputData(hdevice, DataCommand.RID_INPUT, IntPtr.Zero, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader))); - - if (dwSize != User32.GetRawInputData(hdevice, DataCommand.RID_INPUT, out _rawBuffer, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader)))) + if (_rawBuffer.header.dwType != (uint)DeviceType.RIM_TYPE_KEYBOARD) { - Debug.WriteLine("Error getting the rawinput buffer"); return; } int virtualKey = _rawBuffer.data.keyboard.VKey; int makeCode = _rawBuffer.data.keyboard.Makecode; int flags = _rawBuffer.data.keyboard.Flags; - if (virtualKey == Win32.KEYBOARD_OVERRUN_MAKE_CODE) return; - var isE0BitSet = ((flags & Win32.RI_KEY_E0) != 0); - EnumeratedDevice enumeratedDevice; - if (DeviceList.ContainsKey(_rawBuffer.header.hDevice)) - { - lock (PadLock) - { - enumeratedDevice = DeviceList[_rawBuffer.header.hDevice]; - } - } - else + if (virtualKey == Win32.KEYBOARD_OVERRUN_MAKE_CODE) { return; } + var isE0BitSet = ((flags & Win32.RI_KEY_E0) != 0); var isBreakBitSet = ((flags & Win32.RI_KEY_BREAK) != 0); var args = new RawKeyEventArgs( - enumeratedDevice.DeviceName, - enumeratedDevice.DeviceType, - enumeratedDevice.DeviceHandle, - enumeratedDevice.Name, - enumeratedDevice.Source, virtualKey, - KeyMap.GetKeyName(VirtualKeyCorrection(virtualKey, isE0BitSet, makeCode)).ToUpper(), + KeyMap.GetKeyName(VirtualKeyCorrection(virtualKey, isE0BitSet, makeCode, _rawBuffer)).ToUpper(), (WM)_rawBuffer.data.keyboard.Message, isBreakBitSet ? "BREAK" : "MAKE"); if (RawKeyInputReceived != null) @@ -74,7 +46,7 @@ public override void ProcessRawInput(IntPtr hdevice) } } - private int VirtualKeyCorrection(int virtualKey, bool isE0BitSet, int makeCode) + private int VirtualKeyCorrection(int virtualKey, bool isE0BitSet, int makeCode, InputData _rawBuffer) { var correctedVKey = virtualKey; diff --git a/RetailCoder.VBE/Common/WinAPI/RawMouse.cs b/RetailCoder.VBE/Common/WinAPI/RawMouse.cs index fcc6bd10d4..aa925c72fb 100644 --- a/RetailCoder.VBE/Common/WinAPI/RawMouse.cs +++ b/RetailCoder.VBE/Common/WinAPI/RawMouse.cs @@ -1,13 +1,10 @@ using System; -using System.Diagnostics; using System.Runtime.InteropServices; namespace Rubberduck.Common.WinAPI { - public sealed class RawMouse : RawDevice + public sealed class RawMouse : IRawDevice { - private InputData _rawBuffer; - public RawMouse(IntPtr hwnd, bool captureOnlyInForeground) { var rid = new RawInputDevice[1]; @@ -23,40 +20,13 @@ public RawMouse(IntPtr hwnd, bool captureOnlyInForeground) public event EventHandler RawMouseInputReceived; - public override void EnumerateDevices() + public void ProcessRawInput(InputData _rawBuffer) { - EnumerateDevices(DeviceType.RIM_TYPE_MOUSE); - } - - public override void ProcessRawInput(IntPtr hdevice) - { - if (DeviceList.Count == 0) return; - var dwSize = 0; - User32.GetRawInputData(hdevice, DataCommand.RID_INPUT, IntPtr.Zero, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader))); - if (dwSize != User32.GetRawInputData(hdevice, DataCommand.RID_INPUT, out _rawBuffer, ref dwSize, Marshal.SizeOf(typeof(RawInputHeader)))) - { - Debug.WriteLine("Error getting the rawinput buffer"); - return; - } - EnumeratedDevice enumeratedDevice; - if (DeviceList.ContainsKey(_rawBuffer.header.hDevice)) - { - lock (PadLock) - { - enumeratedDevice = DeviceList[_rawBuffer.header.hDevice]; - } - } - else + if (_rawBuffer.header.dwType != (uint)DeviceType.RIM_TYPE_MOUSE) { return; } - var args = new RawMouseEventArgs( - enumeratedDevice.DeviceName, - enumeratedDevice.DeviceType, - enumeratedDevice.DeviceHandle, - enumeratedDevice.Name, - enumeratedDevice.Source, _rawBuffer.data.keyboard.Message, (UsButtonFlags)_rawBuffer.data.mouse.ulButtons); diff --git a/RetailCoder.VBE/Common/WinAPI/RawMouseEventArgs.cs b/RetailCoder.VBE/Common/WinAPI/RawMouseEventArgs.cs index 172c4586ab..19584c5bc3 100644 --- a/RetailCoder.VBE/Common/WinAPI/RawMouseEventArgs.cs +++ b/RetailCoder.VBE/Common/WinAPI/RawMouseEventArgs.cs @@ -4,96 +4,17 @@ namespace Rubberduck.Common.WinAPI { public sealed class RawMouseEventArgs : EventArgs { - private string _deviceName; // i.e. \\?\HID#VID_045E&PID_00DD&MI_00#8&1eb402&0&0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd} - private string _deviceType; // MOUSE or HID - private IntPtr _deviceHandle; // Handle to the device that send the input - private string _name; - private string _source; private uint _message; private UsButtonFlags _ulButtons; public RawMouseEventArgs( - string deviceName, - string deviceType, - IntPtr deviceHandle, - string name, - string source, uint message, UsButtonFlags ulButtons) { - _deviceName = deviceName; - _deviceType = deviceType; - _deviceHandle = deviceHandle; - _name = name; - _source = source; _message = message; _ulButtons = ulButtons; } - public string Source - { - get - { - return _source; - } - set - { - _source = string.Format("Keyboard_{0}", value.PadLeft(2, '0')); - } - } - - public string DeviceName - { - get - { - return _deviceName; - } - - set - { - _deviceName = value; - } - } - - public string DeviceType - { - get - { - return _deviceType; - } - - set - { - _deviceType = value; - } - } - - public IntPtr DeviceHandle - { - get - { - return _deviceHandle; - } - - set - { - _deviceHandle = value; - } - } - - public string Name - { - get - { - return _name; - } - - set - { - _name = value; - } - } - public uint Message { get @@ -119,11 +40,6 @@ public UsButtonFlags UlButtons _ulButtons = value; } } - - public override string ToString() - { - return string.Format("Device\n DeviceName: {0}\n DeviceType: {1}\n DeviceHandle: {2}\n Name: {3}\n", _deviceName, _deviceType, _deviceHandle.ToInt64().ToString("X"), _name); - } } } diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index ed375c10f3..560918580e 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -298,13 +298,10 @@ - - - @@ -312,8 +309,6 @@ - - diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 05c4523e5b..add7eca5d1 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -23,6 +23,12 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression) + { + dynamic lexpr = expression.lExpression(); + return Visit(module, parent, lexpr); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression) { return Visit(module, parent, expression.newExpression()); @@ -51,9 +57,9 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr { if (expression.simpleNameExpression() != null) { - return Visit(module, parent, expression.simpleNameExpression()); + return VisitTypeContext(module, parent, expression.simpleNameExpression()); } - return Visit(module, parent, expression.memberAccessExpression()); + return VisitTypeContext(module, parent, expression.memberAccessExpression()); } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) @@ -62,18 +68,28 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) + { + return new SimpleNameDefaultBinding(_declarationFinder, module, parent, expression); + } + + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) + { + return VisitTypeContext(module, parent, expression.simpleNameExpression()); + } + + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { return new SimpleNameTypeBinding(_declarationFinder, module, parent, expression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); return new MemberAccessTypeBinding(_declarationFinder, module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); diff --git a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs new file mode 100644 index 0000000000..4868ef134b --- /dev/null +++ b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs @@ -0,0 +1,302 @@ +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class SimpleNameDefaultBinding : IExpressionBinding + { + private readonly DeclarationFinder _declarationFinder; + private readonly Declaration _project; + private readonly Declaration _module; + private readonly Declaration _parent; + private readonly VBAExpressionParser.SimpleNameExpressionContext _expression; + + public SimpleNameDefaultBinding( + DeclarationFinder declarationFinder, + Declaration module, + Declaration parent, + VBAExpressionParser.SimpleNameExpressionContext expression) + { + _declarationFinder = declarationFinder; + _project = module.ParentDeclaration; + _module = module; + _parent = parent; + _expression = expression; + } + + public IBoundExpression Resolve() + { + string name = ExpressionName.GetName(_expression.name()); + IBoundExpression boundExpression = null; + boundExpression = ResolveProcedureNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveEnclosingModuleNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveEnclosingProjectNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveOtherProceduralModuleEnclosingProjectNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveReferencedProjectNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveModuleReferencedProjectNamespace(name); + if (boundExpression != null) + { + return boundExpression; + } + return null; + } + + private IBoundExpression ResolveProcedureNamespace(string name) + { + if (_parent.DeclarationType != DeclarationType.Function && _parent.DeclarationType != DeclarationType.Procedure) + { + return null; + } + /* Namespace tier 1: + Procedure namespace: A local variable, reference parameter binding or constant whose implicit + or explicit definition precedes this expression in an enclosing procedure. + */ + var localVariable = _declarationFinder.FindMemberEnclosingProcedure(_parent, name, DeclarationType.Variable); + if (localVariable != null) + { + return new SimpleNameExpression(localVariable, ExpressionClassification.Variable, _expression); + } + // + var parameter = _declarationFinder.FindMemberEnclosingProcedure(_parent, name, DeclarationType.Parameter); + if (parameter != null) + { + return new SimpleNameExpression(parameter, ExpressionClassification.Variable, _expression); + } + var constant = _declarationFinder.FindMemberEnclosingProcedure(_parent, name, DeclarationType.Constant); + if (constant != null) + { + return new SimpleNameExpression(constant, ExpressionClassification.Value, _expression); + } + return null; + } + + private IBoundExpression ResolveEnclosingModuleNamespace(string name) + { + /* Namespace tier 2: + Enclosing Module namespace: A variable, constant, Enum type, Enum member, property, + function or subroutine defined at the module-level in the enclosing module. + */ + var moduleVariable = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Variable); + if (moduleVariable != null) + { + return new SimpleNameExpression(moduleVariable, ExpressionClassification.Variable, _expression); + } + var moduleConstant = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Constant); + if (moduleConstant != null) + { + return new SimpleNameExpression(moduleConstant, ExpressionClassification.Variable, _expression); + } + var enumType = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Enumeration); + if (enumType != null) + { + return new SimpleNameExpression(enumType, ExpressionClassification.Type, _expression); + } + var enumMember = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.EnumerationMember); + if (enumMember != null) + { + return new SimpleNameExpression(enumMember, ExpressionClassification.Value, _expression); + } + var property = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Property); + if (property != null) + { + return new SimpleNameExpression(property, ExpressionClassification.Property, _expression); + } + var function = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Function); + if (function != null) + { + return new SimpleNameExpression(function, ExpressionClassification.Function, _expression); + } + var subroutine = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Procedure); + if (subroutine != null) + { + return new SimpleNameExpression(subroutine, ExpressionClassification.Subroutine, _expression); + } + return null; + } + + private IBoundExpression ResolveEnclosingProjectNamespace(string name) + { + /* Namespace tier 3: + Enclosing Project namespace: The enclosing project itself, a referenced project, or a + procedural module contained in the enclosing project. + */ + if (_declarationFinder.IsMatch(_project.Project.Name, name)) + { + return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression); + } + var referencedProject = _declarationFinder.FindReferencedProject(_project, name); + if (referencedProject != null) + { + return new SimpleNameExpression(referencedProject, ExpressionClassification.Project, _expression); + } + var proceduralModuleEnclosingProject = _declarationFinder.FindModuleEnclosingProjectWithoutEnclosingModule(_project, _module, name, DeclarationType.ProceduralModule); + if (proceduralModuleEnclosingProject != null) + { + return new SimpleNameExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _expression); + } + return null; + } + + private IBoundExpression ResolveOtherProceduralModuleEnclosingProjectNamespace(string name) + { + /* Namespace tier 4: + Other Procedural Module in Enclosing Project namespace: An accessible variable, constant, + Enum type, Enum member, property, function or subroutine defined in a procedural module + within the enclosing project other than the enclosing module. + */ + var accessibleVariable = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Variable); + if (accessibleVariable != null) + { + return new SimpleNameExpression(accessibleVariable, ExpressionClassification.Variable, _expression); + } + var accessibleConstant = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Constant); + if (accessibleConstant != null) + { + return new SimpleNameExpression(accessibleConstant, ExpressionClassification.Variable, _expression); + } + var accessibleType = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Enumeration); + if (accessibleType != null) + { + return new SimpleNameExpression(accessibleType, ExpressionClassification.Type, _expression); + } + var accessibleMember = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.EnumerationMember); + if (accessibleMember != null) + { + return new SimpleNameExpression(accessibleMember, ExpressionClassification.Value, _expression); + } + var accessibleProperty = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Property); + if (accessibleProperty != null) + { + return new SimpleNameExpression(accessibleProperty, ExpressionClassification.Property, _expression); + } + var accessibleFunction = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Function); + if (accessibleFunction != null) + { + return new SimpleNameExpression(accessibleFunction, ExpressionClassification.Function, _expression); + } + var accessibleSubroutine = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Procedure); + if (accessibleSubroutine != null) + { + return new SimpleNameExpression(accessibleSubroutine, ExpressionClassification.Subroutine, _expression); + } + return null; + } + + private IBoundExpression ResolveReferencedProjectNamespace(string name) + { + /* Namespace tier 5: + Referenced Project namespace: An accessible procedural module contained in a referenced + project. + */ + var accessibleModule = _declarationFinder.FindModuleReferencedProject(_project, _module, name, DeclarationType.ProceduralModule); + if (accessibleModule != null) + { + return new SimpleNameExpression(accessibleModule, ExpressionClassification.ProceduralModule, _expression); + } + return null; + } + + private IBoundExpression ResolveModuleReferencedProjectNamespace(string name) + { + /* Namespace tier 6: + Module in Referenced Project namespace: An accessible variable, constant, Enum type, + Enum member, property, function or subroutine defined in a procedural module or as a member + of the default instance of a global class module within a referenced project. + */ + + // Part 1: Procedural module as parent + var accessibleVariable = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Variable); + if (accessibleVariable != null) + { + return new SimpleNameExpression(accessibleVariable, ExpressionClassification.Variable, _expression); + } + var accessibleConstant = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Constant); + if (accessibleConstant != null) + { + return new SimpleNameExpression(accessibleConstant, ExpressionClassification.Variable, _expression); + } + var accessibleType = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Enumeration); + if (accessibleType != null) + { + return new SimpleNameExpression(accessibleType, ExpressionClassification.Type, _expression); + } + var accessibleMember = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.EnumerationMember); + if (accessibleMember != null) + { + return new SimpleNameExpression(accessibleMember, ExpressionClassification.Value, _expression); + } + var accessibleProperty = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Property); + if (accessibleProperty != null) + { + return new SimpleNameExpression(accessibleProperty, ExpressionClassification.Property, _expression); + } + var accessibleFunction = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Function); + if (accessibleFunction != null) + { + return new SimpleNameExpression(accessibleFunction, ExpressionClassification.Function, _expression); + } + var accessibleSubroutine = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Procedure); + if (accessibleSubroutine != null) + { + return new SimpleNameExpression(accessibleSubroutine, ExpressionClassification.Subroutine, _expression); + } + + // Part 2: Global class module as parent + var globalClassModuleVariable = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Variable); + if (globalClassModuleVariable != null) + { + return new SimpleNameExpression(globalClassModuleVariable, ExpressionClassification.Variable, _expression); + } + var globalClassModuleConstant = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Constant); + if (globalClassModuleConstant != null) + { + return new SimpleNameExpression(globalClassModuleConstant, ExpressionClassification.Variable, _expression); + } + var globalClassModuleType = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Enumeration); + if (globalClassModuleType != null) + { + return new SimpleNameExpression(globalClassModuleType, ExpressionClassification.Type, _expression); + } + var globalClassModuleMember = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.EnumerationMember); + if (globalClassModuleMember != null) + { + return new SimpleNameExpression(globalClassModuleMember, ExpressionClassification.Value, _expression); + } + var globalClassModuleProperty = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Property); + if (globalClassModuleProperty != null) + { + return new SimpleNameExpression(globalClassModuleProperty, ExpressionClassification.Property, _expression); + } + var globalClassModuleFunction = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Function); + if (globalClassModuleFunction != null) + { + return new SimpleNameExpression(globalClassModuleFunction, ExpressionClassification.Function, _expression); + } + var globalClassModuleSubroutine = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Procedure); + if (globalClassModuleSubroutine != null) + { + return new SimpleNameExpression(globalClassModuleSubroutine, ExpressionClassification.Subroutine, _expression); + } + return null; + } + } +} diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 1eb77702f7..1f934d7abd 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -81,6 +81,7 @@ + diff --git a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs index e76bce4427..82d6c7c510 100644 --- a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs @@ -53,5 +53,18 @@ public bool IsExposed return _isExposed || attributeIsExposed; } } + + public bool IsGlobalClassModule + { + get + { + IEnumerable value; + if (Attributes.TryGetValue("VB_GlobalNamespace", out value)) + { + return value.Single() == "True"; + } + return false; + } + } } } diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 66959c45fe..2b4c540c5a 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -31,6 +31,7 @@ public DeclarationFinder( : declaration.IdentifierName.ToLowerInvariant() }) .ToDictionary(grouping => grouping.Key.IdentifierName, grouping => grouping.ToArray()); + var ok = declarations.Where(a => a.IdentifierName == "Modul1").ToList(); } private readonly HashSet _projectScopePublicModifiers = @@ -233,6 +234,16 @@ public Declaration FindMemberEnclosingModule(Declaration callingProject, Declara return match; } + public Declaration FindMemberEnclosingProcedure(Declaration enclosingProcedure, string memberName, DeclarationType memberType) + { + var allMatches = MatchName(memberName); + var memberMatches = allMatches.Where(m => + m.DeclarationType.HasFlag(memberType) + && enclosingProcedure.Equals(m.ParentDeclaration)); + var match = memberMatches.FirstOrDefault(); + return match; + } + public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) { return FindMemberEnclosedProjectWithoutEnclosingModule(callingProject, callingModule, callingParent, memberName, memberType, DeclarationType.Module); @@ -271,6 +282,22 @@ public Declaration FindMemberReferencedProject(Declaration callingProject, Decla return match; } + public Declaration FindMemberReferencedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, DeclarationType moduleType, string memberName, DeclarationType memberType) + { + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetMemberModule(p).DeclarationType == moduleType); + var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); + var match = accessibleMembers.FirstOrDefault(); + return match; + } + + public Declaration FindMemberReferencedProjectInGlobalClassModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) + { + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetMemberModule(p).DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)Declaration.GetMemberModule(p)).IsGlobalClassModule); + var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); + var match = accessibleMembers.FirstOrDefault(); + return match; + } + public Declaration FindMemberReferencedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration memberModule, string memberName, DeclarationType memberType) { var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && memberModule.Equals(Declaration.GetMemberModule(p))); diff --git a/Rubberduck.Parsing/Symbols/DeclarationType.cs b/Rubberduck.Parsing/Symbols/DeclarationType.cs index a6156c198e..4a0c8603a1 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationType.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationType.cs @@ -24,10 +24,10 @@ public enum DeclarationType Variable = 1 << 16, Constant = 1 << 17, Enumeration = 1 << 18, - EnumerationMember = 1 << 19 | Constant, + EnumerationMember = 1 << 19, Event = 1 << 20, UserDefinedType = 1 << 21, - UserDefinedTypeMember = 1 << 22 | Variable, + UserDefinedTypeMember = 1 << 22, LibraryFunction = 1 << 23 | Function, LibraryProcedure = 1 << 24 | Procedure, LineLabel = 1 << 25 diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index ec2cbfd9b0..01100d59c7 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -194,7 +194,7 @@ public override void EnterResumeStmt(VBAParser.ResumeStmtContext context) public override void EnterFieldLength(VBAParser.FieldLengthContext context) { - _resolver.Resolve(context); + //_resolver.Resolve(context); } public override void EnterVsAssign(VBAParser.VsAssignContext context) diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 926f3e5229..833d98099a 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -953,7 +953,18 @@ public void Resolve(VBAParser.AsTypeClauseContext context) } var baseType = asType.baseType(); if (baseType != null) - { + { + // Fixed-Length strings can have a constant-name as length that is a simple-name-expression that also has to be resolved. + var length = context.fieldLength(); + if (context.fieldLength() != null && context.fieldLength().identifier() != null) + { + var constantName = context.fieldLength().identifier(); + var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentScope, constantName.GetText()); + if (constantNameExpression != null) + { + _boundExpressionVisitor.AddIdentifierReferences(constantNameExpression, declaration => CreateReference(constantName, declaration)); + } + } return; } string typeExpression = asType.complexType().GetText(); From 619203443ce7160f1784746b7e41ed37a3e19aff Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 30 Apr 2016 13:23:14 +0200 Subject: [PATCH 02/72] add tests for precedence --- .../Binding/SimpleNameDefaultBinding.cs | 8 +- .../Binding/SimpleNameDefaultBindingTests.cs | 187 ++++++++++++++++++ RubberduckTests/RubberduckTests.csproj | 1 + 3 files changed, 192 insertions(+), 4 deletions(-) create mode 100644 RubberduckTests/Binding/SimpleNameDefaultBindingTests.cs diff --git a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs index 4868ef134b..c8fbe717c1 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs @@ -62,14 +62,14 @@ public IBoundExpression Resolve() private IBoundExpression ResolveProcedureNamespace(string name) { - if (_parent.DeclarationType != DeclarationType.Function && _parent.DeclarationType != DeclarationType.Procedure) - { - return null; - } /* Namespace tier 1: Procedure namespace: A local variable, reference parameter binding or constant whose implicit or explicit definition precedes this expression in an enclosing procedure. */ + if (_parent.DeclarationType != DeclarationType.Function && _parent.DeclarationType != DeclarationType.Procedure) + { + return null; + } var localVariable = _declarationFinder.FindMemberEnclosingProcedure(_parent, name, DeclarationType.Variable); if (localVariable != null) { diff --git a/RubberduckTests/Binding/SimpleNameDefaultBindingTests.cs b/RubberduckTests/Binding/SimpleNameDefaultBindingTests.cs new file mode 100644 index 0000000000..8b84aca92d --- /dev/null +++ b/RubberduckTests/Binding/SimpleNameDefaultBindingTests.cs @@ -0,0 +1,187 @@ +using Microsoft.Vbe.Interop; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Rubberduck.Parsing.Symbols; +using Rubberduck.Parsing.VBA; +using RubberduckTests.Mocks; +using System; +using System.Linq; + +namespace RubberduckTests.Binding +{ + [TestClass] + public class SimpleNameDefaultBindingTests + { + private const string BINDING_TARGET_NAME = "BindingTarget"; + private const string TEST_CLASS_NAME = "TestClass"; + private const string REFERENCED_PROJECT_FILEPATH = @"C:\Temp\ReferencedProjectA"; + + [TestClass] + public class ResolverTests + { + [TestMethod] + public void EnclosingProcedureComesBeforeEnclosingModule() + { + string testCode = string.Format(@" +Public Sub Test() + Dim {0} As Long + Dim a As String * {0} +End Sub", BINDING_TARGET_NAME); + + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(BINDING_TARGET_NAME, vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, testCode); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Variable && d.IdentifierName == BINDING_TARGET_NAME); + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void EnclosingModuleComesBeforeEnclosingProject() + { + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(BINDING_TARGET_NAME, vbext_ProjectProtection.vbext_pp_none); + string code = CreateEnumType(BINDING_TARGET_NAME) + Environment.NewLine + CreateTestProcedure(BINDING_TARGET_NAME); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Enumeration && d.IdentifierName == BINDING_TARGET_NAME); + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void EnclosingProjectComesBeforeOtherModuleInEnclosingProject() + { + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(BINDING_TARGET_NAME, vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, CreateTestProcedure(BINDING_TARGET_NAME)); + enclosingProjectBuilder.AddComponent("AnyModule", vbext_ComponentType.vbext_ct_StdModule, CreateEnumType(BINDING_TARGET_NAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.IdentifierName == BINDING_TARGET_NAME); + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void OtherModuleInEnclosingProjectComesBeforeReferencedProjectModule() + { + var builder = new MockVbeBuilder(); + const string REFERENCED_PROJECT_NAME = "AnyReferencedProjectName"; + + var referencedProjectBuilder = builder.ProjectBuilder(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH, vbext_ProjectProtection.vbext_pp_none); + referencedProjectBuilder.AddComponent(BINDING_TARGET_NAME, vbext_ComponentType.vbext_ct_ClassModule, string.Empty); + var referencedProject = referencedProjectBuilder.Build(); + builder.AddProject(referencedProject); + + var enclosingProjectBuilder = builder.ProjectBuilder("AnyProjectName", vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddReference(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, CreateTestProcedure(BINDING_TARGET_NAME)); + enclosingProjectBuilder.AddComponent("AnyModule", vbext_ComponentType.vbext_ct_StdModule, CreateEnumType(BINDING_TARGET_NAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Enumeration && d.IdentifierName == BINDING_TARGET_NAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void ReferencedProjectModuleComesBeforeReferencedProjectType() + { + var builder = new MockVbeBuilder(); + const string REFERENCED_PROJECT_NAME = "AnyReferencedProjectName"; + + var referencedProjectBuilder = builder.ProjectBuilder(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH, vbext_ProjectProtection.vbext_pp_none); + referencedProjectBuilder.AddComponent(BINDING_TARGET_NAME, vbext_ComponentType.vbext_ct_StdModule, CreateEnumType(BINDING_TARGET_NAME)); + var referencedProject = referencedProjectBuilder.Build(); + builder.AddProject(referencedProject); + + var enclosingProjectBuilder = builder.ProjectBuilder("AnyProjectName", vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddReference(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, CreateTestProcedure(BINDING_TARGET_NAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.ProceduralModule && d.IdentifierName == BINDING_TARGET_NAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void ReferencedProjectClassNotMarkedAsGlobalClassModuleIsNotReferenced() + { + var builder = new MockVbeBuilder(); + const string REFERENCED_PROJECT_NAME = "AnyReferencedProjectName"; + + var referencedProjectBuilder = builder.ProjectBuilder(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH, vbext_ProjectProtection.vbext_pp_none); + referencedProjectBuilder.AddComponent("AnyName", vbext_ComponentType.vbext_ct_ClassModule, CreateEnumType(BINDING_TARGET_NAME)); + var referencedProject = referencedProjectBuilder.Build(); + builder.AddProject(referencedProject); + + var enclosingProjectBuilder = builder.ProjectBuilder("AnyProjectName", vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddReference(REFERENCED_PROJECT_NAME, REFERENCED_PROJECT_FILEPATH); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, CreateTestProcedure(BINDING_TARGET_NAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Enumeration && d.IdentifierName == BINDING_TARGET_NAME); + + Assert.AreEqual(0, declaration.References.Count()); + } + + private static RubberduckParserState Parse(Moq.Mock vbe) + { + var parser = MockParser.Create(vbe.Object, new RubberduckParserState()); + parser.Parse(); + if (parser.State.Status != ParserState.Ready) + { + Assert.Inconclusive("Parser state should be 'Ready', but returns '{0}'.", parser.State.Status); + } + var state = parser.State; + return state; + } + + private string CreateTestProcedure(string bindingTarget) + { + return string.Format(@" +Public Sub Test() + Dim a As String * {0} +End Sub +", bindingTarget); + } + + private string CreateEnumType(string typeName) + { + return string.Format(@" +Public Enum {0} + TestEnumMember +End Enum +", typeName); + } + + private string CreateUdt(string typeName) + { + return string.Format(@" +Public Type {0} + TestTypeMember As String +End Type +", typeName); + } + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index a0047380d9..04e264ce5f 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -80,6 +80,7 @@ + From 29ddebc6ee48b2b701aa80d07d0e769eeca7e7b1 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 30 Apr 2016 20:04:41 +0200 Subject: [PATCH 03/72] implement member access expression default binding context + type annotation pass --- .../RemoveExplicitCallStatmentQuickFix.cs | 10 +- .../Binding/DefaultBindingContext.cs | 22 +- .../Binding/MemberAccessDefaultBinding.cs | 413 ++ .../MemberAccessProcedurePointerBinding.cs | 6 +- .../Binding/MemberAccessTypeBinding.cs | 8 +- .../Binding/ProcedurePointerBindingContext.cs | 6 +- .../Binding/SimpleNameDefaultBinding.cs | 5 +- .../SimpleNameProcedurePointerBinding.cs | 7 +- .../Binding/SimpleNameTypeBinding.cs | 7 +- .../Binding/TypeBindingContext.cs | 6 +- .../Binding/VBAExpressionParser.cs | 1456 ++-- .../Binding/VBAExpressionParser.g4 | 14 +- .../VBAExpressionParserBaseListener.cs | 13 + .../Binding/VBAExpressionParserBaseVisitor.cs | 11 + .../Binding/VBAExpressionParserListener.cs | 11 + .../Binding/VBAExpressionParserVisitor.cs | 7 + Rubberduck.Parsing/Grammar/VBAParser.cs | 6057 ++++++++--------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 12 +- .../Grammar/VBAParserBaseListener.cs | 34 +- .../Grammar/VBAParserBaseVisitor.cs | 26 +- .../Grammar/VBAParserListener.cs | 34 +- .../Grammar/VBAParserVisitor.cs | 20 +- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 2 + .../Symbols/AccessibilityCheck.cs | 8 +- .../Symbols/BoundExpressionVisitor.cs | 6 +- Rubberduck.Parsing/Symbols/Declaration.cs | 198 +- .../Symbols/DeclarationFinder.cs | 52 +- .../Symbols/DeclarationSymbolsListener.cs | 10 +- .../Symbols/IdentifierReference.cs | 25 +- .../Symbols/IdentifierReferenceListener.cs | 8 +- .../Symbols/IdentifierReferenceResolver.cs | 56 +- .../Symbols/ParameterDeclaration.cs | 6 +- .../Symbols/ProceduralModuleDeclaration.cs | 2 +- .../Symbols/ProjectDeclaration.cs | 2 +- .../ReferencedDeclarationsCollector.cs | 13 +- .../Symbols/TypeAnnotationPass.cs | 49 + Rubberduck.Parsing/VBA/RubberduckParser.cs | 15 +- .../MemberAccessDefaultBindingTests.cs | 128 + .../Binding/MemberAccessTypeBindingTests.cs | 4 +- RubberduckTests/RubberduckTests.csproj | 1 + 40 files changed, 4832 insertions(+), 3938 deletions(-) create mode 100644 Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs create mode 100644 RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs diff --git a/RetailCoder.VBE/Inspections/RemoveExplicitCallStatmentQuickFix.cs b/RetailCoder.VBE/Inspections/RemoveExplicitCallStatmentQuickFix.cs index 2ed327e85a..58a5e17c2a 100644 --- a/RetailCoder.VBE/Inspections/RemoveExplicitCallStatmentQuickFix.cs +++ b/RetailCoder.VBE/Inspections/RemoveExplicitCallStatmentQuickFix.cs @@ -25,15 +25,15 @@ public override void Fix() string procedure; VBAParser.ArgsCallContext arguments; - if (context.eCS_MemberProcedureCall() != null) + if (context.explicitCallStmtExpression() is VBAParser.ECS_MemberCallContext) { - procedure = context.eCS_MemberProcedureCall().identifier().GetText(); - arguments = context.eCS_MemberProcedureCall().argsCall(); + procedure = ((VBAParser.ECS_MemberCallContext)context.explicitCallStmtExpression()).identifier().GetText(); + arguments = ((VBAParser.ECS_MemberCallContext)context.explicitCallStmtExpression()).argsCall(); } else { - procedure = context.eCS_ProcedureCall().identifier().GetText(); - arguments = context.eCS_ProcedureCall().argsCall(); + procedure = ((VBAParser.ECS_ProcedureCallContext)context.explicitCallStmtExpression()).identifier().GetText(); + arguments = ((VBAParser.ECS_ProcedureCallContext)context.explicitCallStmtExpression()).argsCall(); } module.DeleteLines(selection.StartLine, selection.LineCount); diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index add7eca5d1..21ccd328f7 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -69,7 +69,21 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { - return new SimpleNameDefaultBinding(_declarationFinder, module, parent, expression); + return new SimpleNameDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) @@ -79,21 +93,21 @@ private IExpressionBinding VisitTypeContext(Declaration module, Declaration pare private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { - return new SimpleNameTypeBinding(_declarationFinder, module, parent, expression); + return new SimpleNameTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessTypeBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessTypeBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } } } diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs new file mode 100644 index 0000000000..832c2c13ce --- /dev/null +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -0,0 +1,413 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class MemberAccessDefaultBinding : IExpressionBinding + { + private readonly DeclarationFinder _declarationFinder; + private readonly Declaration _project; + private readonly Declaration _module; + private readonly Declaration _parent; + private readonly VBAExpressionParser.MemberAccessExpressionContext _memberAccessExpression; + private readonly VBAExpressionParser.MemberAccessExprContext _memberAccessExpr; + private readonly IExpressionBinding _lExpressionBinding; + + public MemberAccessDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + VBAExpressionParser.MemberAccessExpressionContext expression, + IExpressionBinding lExpressionBinding) + { + _declarationFinder = declarationFinder; + _project = project; + _module = module; + _parent = parent; + _memberAccessExpression = expression; + _lExpressionBinding = lExpressionBinding; + } + + public MemberAccessDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + VBAExpressionParser.MemberAccessExprContext expression, + IExpressionBinding lExpressionBinding) + { + _declarationFinder = declarationFinder; + _project = project; + _module = module; + _parent = parent; + _memberAccessExpr = expression; + _lExpressionBinding = lExpressionBinding; + } + + private ParserRuleContext GetExpressionContext() + { + if (_memberAccessExpression != null) + { + return _memberAccessExpression; + } + return _memberAccessExpr; + } + + private string GetUnrestrictedName() + { + if (_memberAccessExpression != null) + { + return ExpressionName.GetName(_memberAccessExpression.unrestrictedName()); + } + return ExpressionName.GetName(_memberAccessExpr.unrestrictedName()); + } + + public IBoundExpression Resolve() + { + IBoundExpression boundExpression = null; + var lExpression = _lExpressionBinding.Resolve(); + if (lExpression == null) + { + return null; + } + string unrestrictedName = GetUnrestrictedName(); + boundExpression = ResolveLExpressionIsVariablePropertyOrFunction(lExpression, unrestrictedName); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsUnbound(lExpression, unrestrictedName); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsProject(lExpression, unrestrictedName); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsProceduralModule(lExpression, unrestrictedName); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsEnum(lExpression, unrestrictedName); + if (boundExpression != null) + { + return boundExpression; + } + return null; + } + + private IBoundExpression ResolveLExpressionIsVariablePropertyOrFunction(IBoundExpression lExpression, string name) + { + /* + + is classified as a variable, a property or a function and one of the following is + true: + 1. The declared type of is a UDT type or specific class, this type has an accessible + member named , either does not specify a type + character or specifies a type character whose associated type matches the declared type of + the member, and one of the following is true: + + 1.1 The member is a variable, property or function. In this case, the member access expression + is classified as a variable, property or function, respectively, refers to the member, and has + the same declared type as the member. + + 1.2 The member is a subroutine. In this case, the member access expression is classified as a + subroutine and refers to the member. + + + 2. The declared type of is Object or Variant. In this case, the member access + expression is classified as an unbound member and has a declared type of Variant. + */ + if ( + lExpression.Classification != ExpressionClassification.Variable + && lExpression.Classification != ExpressionClassification.Property + && lExpression.Classification != ExpressionClassification.Function) + { + return null; + } + var lExpressionDeclaration = lExpression.ReferencedDeclaration; + var referencedType = lExpressionDeclaration.AsTypeDeclaration; + if (referencedType == null) + { + return null; + } + if (referencedType.DeclarationType != DeclarationType.UserDefinedType && referencedType.DeclarationType != DeclarationType.ClassModule) + { + return null; + } + var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Variable); + if (variable != null) + { + return new MemberAccessExpression(variable, ExpressionClassification.Variable, GetExpressionContext(), lExpression); + } + var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Property); + if (property != null) + { + return new MemberAccessExpression(property, ExpressionClassification.Property, GetExpressionContext(), lExpression); + } + var function = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Function); + if (function != null) + { + return new MemberAccessExpression(function, ExpressionClassification.Function, GetExpressionContext(), lExpression); + } + var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Procedure); + if (subroutine != null) + { + return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, GetExpressionContext(), lExpression); + } + // Note: To not have to deal with declared types we simply assume that no match means unbound member. + // This way the rest of the member access expression can still be bound. + return new MemberAccessExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + } + + private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpression, string name) + { + if (lExpression.Classification != ExpressionClassification.Unbound) + { + return null; + } + return new MemberAccessExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + } + + private IBoundExpression ResolveLExpressionIsProject(IBoundExpression lExpression, string name) + { + /* + is classified as a project, this project is either the enclosing project or a + referenced project, and one of the following is true: + - refers to the enclosing project and is either the name of + the enclosing project or a referenced project. In this case, the member access expression is + classified as a project and refers to the specified project. + - The project has an accessible procedural module named . In this case, the + member access expression is classified as a procedural module and refers to the specified + procedural module. + - The project does not have an accessible procedural module named and + exactly one of the procedural modules within the project has an accessible member named + , either does not specify a type character or + specifies a type character whose associated type matches the declared type of the member, + and one of the following is true: + - The member is a variable, property or function. In this case, the member access expression + is classified as a variable, property or function, respectively, refers to the member, and has + the same declared type as the member. + - The member is a subroutine. In this case, the member access expression is classified as a + subroutine and refers to the member. + - The member is a value. In this case, the member access expression is classified as a value + with the same declared type as the member. + */ + if (lExpression.Classification != ExpressionClassification.Project) + { + return null; + } + IBoundExpression boundExpression = null; + var referencedProject = lExpression.ReferencedDeclaration; + bool lExpressionIsEnclosingProject = _project.Equals(referencedProject); + boundExpression = ResolveProject(lExpression, name); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveProceduralModule(lExpressionIsEnclosingProject, lExpression, name, referencedProject); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Property, ExpressionClassification.Property); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Function, ExpressionClassification.Function); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Procedure, ExpressionClassification.Subroutine); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Constant, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Enumeration, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.EnumerationMember, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + return boundExpression; + } + + private IBoundExpression ResolveProject(IBoundExpression lExpression, string name) + { + if (_declarationFinder.IsMatch(_project.ProjectName, name)) + { + return new MemberAccessExpression(_project, ExpressionClassification.Project, GetExpressionContext(), lExpression); + } + var referencedProjectRightOfDot = _declarationFinder.FindReferencedProject(_project, name); + if (referencedProjectRightOfDot != null) + { + return new MemberAccessExpression(referencedProjectRightOfDot, ExpressionClassification.Project, GetExpressionContext(), lExpression); + } + return null; + } + + private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, string name, Declaration referencedProject) + { + if (lExpressionIsEnclosingProject) + { + if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, name)) + { + return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + } + var proceduralModuleEnclosingProject = _declarationFinder.FindModuleEnclosingProjectWithoutEnclosingModule(_project, _module, name, DeclarationType.ProceduralModule); + if (proceduralModuleEnclosingProject != null) + { + return new MemberAccessExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + } + } + else + { + var proceduralModuleInReferencedProject = _declarationFinder.FindModuleReferencedProject(_project, _module, referencedProject, name, DeclarationType.ProceduralModule); + if (proceduralModuleInReferencedProject != null) + { + return new MemberAccessExpression(proceduralModuleInReferencedProject, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + } + } + return null; + } + + private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, string name, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) + { + if (lExpressionIsEnclosingProject) + { + var foundType = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, memberType); + if (foundType != null) + { + return new MemberAccessExpression(foundType, classification, GetExpressionContext(), lExpression); + } + var accessibleType = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, memberType); + if (accessibleType != null) + { + return new MemberAccessExpression(accessibleType, classification, GetExpressionContext(), lExpression); + } + } + else + { + var referencedProjectType = _declarationFinder.FindMemberReferencedProject(_project, _module, _parent, referencedProject, name, memberType); + if (referencedProjectType != null) + { + return new MemberAccessExpression(referencedProjectType, classification, GetExpressionContext(), lExpression); + } + } + return null; + } + + private IBoundExpression ResolveLExpressionIsProceduralModule(IBoundExpression lExpression, string name) + { + /* + is classified as a procedural module, this procedural module has an accessible + member named , either does not specify a type + character or specifies a type character whose associated type matches the declared type of the + member, and one of the following is true: + - The member is a variable, property or function. In this case, the member access expression is + classified as a variable, property or function, respectively, and has the same declared type as + the member. + - The member is a subroutine. In this case, the member access expression is classified as a + subroutine. + - The member is a value. In this case, the member access expression is classified as a value with + the same declared type as the member. + */ + if (lExpression.Classification != ExpressionClassification.ProceduralModule) + { + return null; + } + IBoundExpression boundExpression = null; + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Variable, ExpressionClassification.Variable); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Function, ExpressionClassification.Function); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Procedure, ExpressionClassification.Subroutine); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Constant, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Enumeration, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.EnumerationMember, ExpressionClassification.Value); + if (boundExpression != null) + { + return boundExpression; + } + return boundExpression; + } + + private IBoundExpression ResolveMemberInModule(IBoundExpression lExpression, string name, Declaration module, DeclarationType memberType, ExpressionClassification classification) + { + var enclosingProjectType = _declarationFinder.FindMemberEnclosedProjectInModule(_project, _module, _parent, module, name, memberType); + if (enclosingProjectType != null) + { + return new MemberAccessExpression(enclosingProjectType, classification, GetExpressionContext(), lExpression); + } + + var referencedProjectType = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, module, name, memberType); + if (referencedProjectType != null) + { + return new MemberAccessExpression(referencedProjectType, classification, GetExpressionContext(), lExpression); + } + return null; + } + + private IBoundExpression ResolveLExpressionIsEnum(IBoundExpression lExpression, string name) + { + /* + is classified as a type, this type is an Enum type, and this type has an enum + member named . In this case, the member access expression is classified + as a value with the same declared type as the enum member. + */ + if (lExpression.Classification != ExpressionClassification.Type && lExpression.ReferencedDeclaration.DeclarationType != DeclarationType.Enumeration) + { + return null; + } + var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, lExpression.ReferencedDeclaration, name, DeclarationType.EnumerationMember); + if (enumMember != null) + { + return new MemberAccessExpression(enumMember, ExpressionClassification.Value, GetExpressionContext(), lExpression); + } + return null; + } + } +} diff --git a/Rubberduck.Parsing/Binding/MemberAccessProcedurePointerBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessProcedurePointerBinding.cs index 27e7af82ac..3f97609d04 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessProcedurePointerBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessProcedurePointerBinding.cs @@ -15,13 +15,14 @@ public sealed class MemberAccessProcedurePointerBinding : IExpressionBinding public MemberAccessProcedurePointerBinding( DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IExpressionBinding lExpressionBinding) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _memberAccessExpression = expression; @@ -30,13 +31,14 @@ public MemberAccessProcedurePointerBinding( public MemberAccessProcedurePointerBinding( DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IExpressionBinding lExpressionBinding) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _memberAccessExpr = expression; diff --git a/Rubberduck.Parsing/Binding/MemberAccessTypeBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessTypeBinding.cs index 7ff9d8adf4..fd8fa3e8cd 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessTypeBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessTypeBinding.cs @@ -15,13 +15,14 @@ public sealed class MemberAccessTypeBinding : IExpressionBinding public MemberAccessTypeBinding( DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IExpressionBinding lExpressionBinding) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _memberAccessExpression = expression; @@ -30,13 +31,14 @@ public MemberAccessTypeBinding( public MemberAccessTypeBinding( DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IExpressionBinding lExpressionBinding) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _memberAccessExpr = expression; @@ -123,7 +125,7 @@ private IBoundExpression ResolveProject(IBoundExpression lExpression, string nam the enclosing project or a referenced project. In this case, the member access expression is classified as a project and refers to the specified project. */ - if (_declarationFinder.IsMatch(_project.Project.Name, name)) + if (_declarationFinder.IsMatch(_project.ProjectName, name)) { return new MemberAccessExpression(_project, ExpressionClassification.Project, GetExpressionContext(), lExpression); } diff --git a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs index 31984893dc..c52e6a92b1 100644 --- a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs +++ b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs @@ -37,21 +37,21 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { - return new SimpleNameProcedurePointerBinding(_declarationFinder, module, parent, expression); + return new SimpleNameProcedurePointerBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessProcedurePointerBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessProcedurePointerBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessProcedurePointerBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessProcedurePointerBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } } } diff --git a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs index c8fbe717c1..5ea830b9af 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs @@ -12,12 +12,13 @@ public sealed class SimpleNameDefaultBinding : IExpressionBinding public SimpleNameDefaultBinding( DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _expression = expression; @@ -139,7 +140,7 @@ private IBoundExpression ResolveEnclosingProjectNamespace(string name) Enclosing Project namespace: The enclosing project itself, a referenced project, or a procedural module contained in the enclosing project. */ - if (_declarationFinder.IsMatch(_project.Project.Name, name)) + if (_declarationFinder.IsMatch(_project.ProjectName, name)) { return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression); } diff --git a/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs index 7a97af24b4..18c9e8c9be 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs @@ -11,13 +11,14 @@ public sealed class SimpleNameProcedurePointerBinding : IExpressionBinding private readonly VBAExpressionParser.SimpleNameExpressionContext _expression; public SimpleNameProcedurePointerBinding( - DeclarationFinder declarationFinder, + DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _expression = expression; @@ -71,7 +72,7 @@ private IBoundExpression ResolveEnclosingProject(string name) Enclosing Project namespace: The enclosing project itself or a procedural module contained in the enclosing project. */ - if (_declarationFinder.IsMatch(_project.Project.Name, name)) + if (_declarationFinder.IsMatch(_project.ProjectName, name)) { return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression); } diff --git a/Rubberduck.Parsing/Binding/SimpleNameTypeBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameTypeBinding.cs index eea6d04771..35b6fc6042 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameTypeBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameTypeBinding.cs @@ -11,13 +11,14 @@ public sealed class SimpleNameTypeBinding : IExpressionBinding private readonly VBAExpressionParser.SimpleNameExpressionContext _expression; public SimpleNameTypeBinding( - DeclarationFinder declarationFinder, + DeclarationFinder declarationFinder, + Declaration project, Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { _declarationFinder = declarationFinder; - _project = module.ParentDeclaration; + _project = project; _module = module; _parent = parent; _expression = expression; @@ -76,7 +77,7 @@ private IBoundExpression ResolveEnclosingProject(string name) Enclosing Project namespace: The enclosing project itself, a referenced project, or a procedural module or class module contained in the enclosing project. */ - if (_declarationFinder.IsMatch(_project.Project.Name, name)) + if (_declarationFinder.IsMatch(_project.ProjectName, name)) { return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression); } diff --git a/Rubberduck.Parsing/Binding/TypeBindingContext.cs b/Rubberduck.Parsing/Binding/TypeBindingContext.cs index 5abd225ad7..2b8c69730b 100644 --- a/Rubberduck.Parsing/Binding/TypeBindingContext.cs +++ b/Rubberduck.Parsing/Binding/TypeBindingContext.cs @@ -37,21 +37,21 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) { - return new SimpleNameTypeBinding(_declarationFinder, module, parent, expression); + return new SimpleNameTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessTypeBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) { dynamic lExpression = expression.lExpression(); var lExpressionBinding = Visit(module, parent, lExpression); - return new MemberAccessTypeBinding(_declarationFinder, module, parent, expression, lExpressionBinding); + return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } } } diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs index 5c822103d0..ec2e46de14 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs @@ -69,7 +69,7 @@ public const int R_SQUARE_BRACKET=242, IMPLEMENTS=125, UNTIL=211, DEBUG=20, DEFCUR=78, CLNGPTR=14, LONGLONG=29, DECLARE=73, DEFDATE=76, FIX=23, LEN=27, REDIM=179, LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12, FOREIGNNAME=259, - OBJECT=260; + OBJECT=260, COLLECTION=261; public static readonly string[] tokenNames = { "", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", @@ -105,7 +105,8 @@ public const int "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER", - "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "FOREIGNNAME", "OBJECT" + "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "FOREIGNNAME", "OBJECT", + "COLLECTION" }; public const int RULE_startRule = 0, RULE_unrestrictedName = 1, RULE_name = 2, RULE_reservedIdentifierName = 3, @@ -123,9 +124,9 @@ public const int RULE_addressOfExpression = 37, RULE_procedurePointerExpression = 38, RULE_reservedIdentifier = 39, RULE_statementKeyword = 40, RULE_remKeyword = 41, RULE_markerKeyword = 42, RULE_operatorIdentifier = 43, RULE_reservedName = 44, RULE_reservedProcedureName = 45, - RULE_specialForm = 46, RULE_reservedTypeIdentifier = 47, RULE_literalIdentifier = 48, - RULE_booleanLiteralIdentifier = 49, RULE_objectLiteralIdentifier = 50, - RULE_variantLiteralIdentifier = 51, RULE_whiteSpace = 52; + RULE_specialForm = 46, RULE_reservedTypeIdentifier = 47, RULE_uncategorizedKeyword = 48, + RULE_literalIdentifier = 49, RULE_booleanLiteralIdentifier = 50, RULE_objectLiteralIdentifier = 51, + RULE_variantLiteralIdentifier = 52, RULE_whiteSpace = 53; public static readonly string[] ruleNames = { "startRule", "unrestrictedName", "name", "reservedIdentifierName", "reservedUntypedName", "reservedTypedName", "untypedName", "typedName", "typedNameValue", "typeSuffix", @@ -139,8 +140,9 @@ public const int "definedTypeExpression", "addressOfExpression", "procedurePointerExpression", "reservedIdentifier", "statementKeyword", "remKeyword", "markerKeyword", "operatorIdentifier", "reservedName", "reservedProcedureName", "specialForm", - "reservedTypeIdentifier", "literalIdentifier", "booleanLiteralIdentifier", - "objectLiteralIdentifier", "variantLiteralIdentifier", "whiteSpace" + "reservedTypeIdentifier", "uncategorizedKeyword", "literalIdentifier", + "booleanLiteralIdentifier", "objectLiteralIdentifier", "variantLiteralIdentifier", + "whiteSpace" }; public override string GrammarFileName { get { return "VBAExpressionParser.g4"; } } @@ -188,8 +190,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 106; expression(0); - State = 107; Match(Eof); + State = 108; expression(0); + State = 109; Match(Eof); } } catch (RecognitionException re) { @@ -235,19 +237,19 @@ public UnrestrictedNameContext unrestrictedName() { UnrestrictedNameContext _localctx = new UnrestrictedNameContext(_ctx, State); EnterRule(_localctx, 2, RULE_unrestrictedName); try { - State = 111; + State = 113; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 109; name(); + State = 111; name(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 110; reservedIdentifierName(); + State = 112; reservedIdentifierName(); } break; } @@ -295,19 +297,19 @@ public NameContext name() { NameContext _localctx = new NameContext(_ctx, State); EnterRule(_localctx, 4, RULE_name); try { - State = 115; + State = 117; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 113; untypedName(); + State = 115; untypedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 114; typedName(); + State = 116; typedName(); } break; } @@ -355,19 +357,19 @@ public ReservedIdentifierNameContext reservedIdentifierName() { ReservedIdentifierNameContext _localctx = new ReservedIdentifierNameContext(_ctx, State); EnterRule(_localctx, 6, RULE_reservedIdentifierName); try { - State = 119; + State = 121; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 117; reservedUntypedName(); + State = 119; reservedUntypedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 118; reservedTypedName(); + State = 120; reservedTypedName(); } break; } @@ -414,7 +416,7 @@ public ReservedUntypedNameContext reservedUntypedName() { try { EnterOuterAlt(_localctx, 1); { - State = 121; reservedIdentifier(); + State = 123; reservedIdentifier(); } } catch (RecognitionException re) { @@ -462,8 +464,8 @@ public ReservedTypedNameContext reservedTypedName() { try { EnterOuterAlt(_localctx, 1); { - State = 123; reservedIdentifier(); - State = 124; typeSuffix(); + State = 125; reservedIdentifier(); + State = 126; typeSuffix(); } } catch (RecognitionException re) { @@ -478,11 +480,15 @@ public ReservedTypedNameContext reservedTypedName() { } public partial class UntypedNameContext : ParserRuleContext { + public UncategorizedKeywordContext uncategorizedKeyword() { + return GetRuleContext(0); + } public ITerminalNode FOREIGNNAME() { return GetToken(VBAExpressionParser.FOREIGNNAME, 0); } public SpecialFormContext specialForm() { return GetRuleContext(0); } public ITerminalNode OBJECT() { return GetToken(VBAExpressionParser.OBJECT, 0); } + public ITerminalNode ERROR() { return GetToken(VBAExpressionParser.ERROR, 0); } public OptionCompareArgumentContext optionCompareArgument() { return GetRuleContext(0); } @@ -515,47 +521,61 @@ public UntypedNameContext untypedName() { UntypedNameContext _localctx = new UntypedNameContext(_ctx, State); EnterRule(_localctx, 12, RULE_untypedName); try { - State = 132; + State = 136; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 126; Match(IDENTIFIER); + State = 128; Match(IDENTIFIER); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 127; Match(FOREIGNNAME); + State = 129; Match(FOREIGNNAME); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 128; reservedProcedureName(); + State = 130; reservedProcedureName(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 129; specialForm(); + State = 131; specialForm(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 130; optionCompareArgument(); + State = 132; optionCompareArgument(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 131; Match(OBJECT); + State = 133; Match(OBJECT); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 134; uncategorizedKeyword(); + } + break; + + case 8: + EnterOuterAlt(_localctx, 8); + { + State = 135; Match(ERROR); } break; } @@ -605,8 +625,8 @@ public TypedNameContext typedName() { try { EnterOuterAlt(_localctx, 1); { - State = 134; typedNameValue(); - State = 135; typeSuffix(); + State = 138; typedNameValue(); + State = 139; typeSuffix(); } } catch (RecognitionException re) { @@ -621,10 +641,14 @@ public TypedNameContext typedName() { } public partial class TypedNameValueContext : ParserRuleContext { + public UncategorizedKeywordContext uncategorizedKeyword() { + return GetRuleContext(0); + } public SpecialFormContext specialForm() { return GetRuleContext(0); } public ITerminalNode OBJECT() { return GetToken(VBAExpressionParser.OBJECT, 0); } + public ITerminalNode ERROR() { return GetToken(VBAExpressionParser.ERROR, 0); } public OptionCompareArgumentContext optionCompareArgument() { return GetRuleContext(0); } @@ -657,40 +681,54 @@ public TypedNameValueContext typedNameValue() { TypedNameValueContext _localctx = new TypedNameValueContext(_ctx, State); EnterRule(_localctx, 16, RULE_typedNameValue); try { - State = 142; + State = 148; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 137; Match(IDENTIFIER); + State = 141; Match(IDENTIFIER); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 138; reservedProcedureName(); + State = 142; reservedProcedureName(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 139; specialForm(); + State = 143; specialForm(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 140; optionCompareArgument(); + State = 144; optionCompareArgument(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 141; Match(OBJECT); + State = 145; Match(OBJECT); + } + break; + + case 6: + EnterOuterAlt(_localctx, 6); + { + State = 146; uncategorizedKeyword(); + } + break; + + case 7: + EnterOuterAlt(_localctx, 7); + { + State = 147; Match(ERROR); } break; } @@ -742,7 +780,7 @@ public TypeSuffixContext typeSuffix() { try { EnterOuterAlt(_localctx, 1); { - State = 144; + State = 150; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -793,7 +831,7 @@ public OptionCompareArgumentContext optionCompareArgument() { try { EnterOuterAlt(_localctx, 1); { - State = 146; + State = 152; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -851,69 +889,69 @@ public BuiltInTypeContext builtInType() { EnterRule(_localctx, 22, RULE_builtInType); int _la; try { - State = 169; + State = 175; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 148; reservedTypeIdentifier(); + State = 154; reservedTypeIdentifier(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 149; Match(L_SQUARE_BRACKET); - State = 151; + State = 155; Match(L_SQUARE_BRACKET); + State = 157; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 150; whiteSpace(); + State = 156; whiteSpace(); } } - State = 153; reservedTypeIdentifier(); - State = 155; + State = 159; reservedTypeIdentifier(); + State = 161; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 154; whiteSpace(); + State = 160; whiteSpace(); } } - State = 157; Match(R_SQUARE_BRACKET); + State = 163; Match(R_SQUARE_BRACKET); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 159; Match(OBJECT); + State = 165; Match(OBJECT); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 160; Match(L_SQUARE_BRACKET); - State = 162; + State = 166; Match(L_SQUARE_BRACKET); + State = 168; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 161; whiteSpace(); + State = 167; whiteSpace(); } } - State = 164; Match(OBJECT); - State = 166; + State = 170; Match(OBJECT); + State = 172; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 165; whiteSpace(); + State = 171; whiteSpace(); } } - State = 168; Match(R_SQUARE_BRACKET); + State = 174; Match(R_SQUARE_BRACKET); } break; } @@ -1465,7 +1503,7 @@ private ExpressionContext expression(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 196; + State = 202; switch (_input.La(1)) { case MINUS: { @@ -1473,16 +1511,16 @@ private ExpressionContext expression(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 172; Match(MINUS); - State = 174; + State = 178; Match(MINUS); + State = 180; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 173; whiteSpace(); + State = 179; whiteSpace(); } } - State = 176; expression(14); + State = 182; expression(14); } break; case NOT: @@ -1490,16 +1528,16 @@ private ExpressionContext expression(int _p) { _localctx = new LogicalNotOpContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 177; Match(NOT); - State = 179; + State = 183; Match(NOT); + State = 185; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 178; whiteSpace(); + State = 184; whiteSpace(); } } - State = 181; expression(7); + State = 187; expression(7); } break; case ABS: @@ -1536,20 +1574,48 @@ private ExpressionContext expression(int _p) { case UBOUND: case EXCLAMATIONPOINT: case DOT: + case ALIAS: + case ATTRIBUTE: + case APPACTIVATE: + case BEGIN: + case BEEP: case BINARY: + case CHDIR: + case CHDRIVE: + case CLASS: case DATABASE: + case DELETESETTING: + case ERROR: + case FILECOPY: case INPUT: + case KILL: + case LOAD: + case LIB: case ME: case MID: + case MKDIR: + case NAME: + case ON: + case RANDOMIZE: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case TAB: case TEXT: + case TIME: + case UNLOAD: + case VERSION: case IDENTIFIER: case FOREIGNNAME: case OBJECT: + case COLLECTION: { _localctx = new LExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 182; lExpression(0); + State = 188; lExpression(0); } break; case LPAREN: @@ -1557,25 +1623,25 @@ private ExpressionContext expression(int _p) { _localctx = new ParenthesizedExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 183; Match(LPAREN); - State = 185; + State = 189; Match(LPAREN); + State = 191; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 184; whiteSpace(); + State = 190; whiteSpace(); } } - State = 187; expression(0); - State = 189; + State = 193; expression(0); + State = 195; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 188; whiteSpace(); + State = 194; whiteSpace(); } } - State = 191; Match(RPAREN); + State = 197; Match(RPAREN); } break; case TYPEOF: @@ -1583,7 +1649,7 @@ private ExpressionContext expression(int _p) { _localctx = new TypeOfIsExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 193; typeOfIsExpression(); + State = 199; typeOfIsExpression(); } break; case NEW: @@ -1591,7 +1657,7 @@ private ExpressionContext expression(int _p) { _localctx = new NewExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 194; newExpression(); + State = 200; newExpression(); } break; case EMPTY: @@ -1609,14 +1675,14 @@ private ExpressionContext expression(int _p) { _localctx = new LiteralExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 195; literalExpression(); + State = 201; literalExpression(); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.Lt(-1); - State = 308; + State = 314; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,40,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -1624,32 +1690,32 @@ private ExpressionContext expression(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 306; + State = 312; switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { case 1: { _localctx = new PowOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 198; + State = 204; if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); - State = 200; + State = 206; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 199; whiteSpace(); + State = 205; whiteSpace(); } } - State = 202; Match(POW); - State = 204; + State = 208; Match(POW); + State = 210; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 203; whiteSpace(); + State = 209; whiteSpace(); } } - State = 206; expression(16); + State = 212; expression(16); } break; @@ -1657,31 +1723,31 @@ private ExpressionContext expression(int _p) { { _localctx = new MultOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 207; + State = 213; if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); - State = 209; + State = 215; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 208; whiteSpace(); + State = 214; whiteSpace(); } } - State = 211; + State = 217; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 213; + State = 219; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 212; whiteSpace(); + State = 218; whiteSpace(); } } - State = 215; expression(14); + State = 221; expression(14); } break; @@ -1689,26 +1755,26 @@ private ExpressionContext expression(int _p) { { _localctx = new IntDivOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 216; + State = 222; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 218; + State = 224; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 217; whiteSpace(); + State = 223; whiteSpace(); } } - State = 220; Match(INTDIV); - State = 222; + State = 226; Match(INTDIV); + State = 228; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 221; whiteSpace(); + State = 227; whiteSpace(); } } - State = 224; expression(13); + State = 230; expression(13); } break; @@ -1716,26 +1782,26 @@ private ExpressionContext expression(int _p) { { _localctx = new ModOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 225; + State = 231; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 227; + State = 233; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 226; whiteSpace(); + State = 232; whiteSpace(); } } - State = 229; Match(MOD); - State = 231; + State = 235; Match(MOD); + State = 237; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 230; whiteSpace(); + State = 236; whiteSpace(); } } - State = 233; expression(12); + State = 239; expression(12); } break; @@ -1743,31 +1809,31 @@ private ExpressionContext expression(int _p) { { _localctx = new AddOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 234; + State = 240; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 236; + State = 242; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 235; whiteSpace(); + State = 241; whiteSpace(); } } - State = 238; + State = 244; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 240; + State = 246; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 239; whiteSpace(); + State = 245; whiteSpace(); } } - State = 242; expression(11); + State = 248; expression(11); } break; @@ -1775,26 +1841,26 @@ private ExpressionContext expression(int _p) { { _localctx = new ConcatOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 243; + State = 249; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 245; + State = 251; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 244; whiteSpace(); + State = 250; whiteSpace(); } } - State = 247; Match(AMPERSAND); - State = 249; + State = 253; Match(AMPERSAND); + State = 255; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 248; whiteSpace(); + State = 254; whiteSpace(); } } - State = 251; expression(10); + State = 257; expression(10); } break; @@ -1802,31 +1868,31 @@ private ExpressionContext expression(int _p) { { _localctx = new RelationalOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 252; + State = 258; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 254; + State = 260; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 253; whiteSpace(); + State = 259; whiteSpace(); } } - State = 256; + State = 262; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 258; + State = 264; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 257; whiteSpace(); + State = 263; whiteSpace(); } } - State = 260; expression(9); + State = 266; expression(9); } break; @@ -1834,26 +1900,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalAndOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 261; + State = 267; if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 263; + State = 269; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 262; whiteSpace(); + State = 268; whiteSpace(); } } - State = 265; Match(AND); - State = 267; + State = 271; Match(AND); + State = 273; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 266; whiteSpace(); + State = 272; whiteSpace(); } } - State = 269; expression(7); + State = 275; expression(7); } break; @@ -1861,26 +1927,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalOrOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 270; + State = 276; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 272; + State = 278; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 271; whiteSpace(); + State = 277; whiteSpace(); } } - State = 274; Match(OR); - State = 276; + State = 280; Match(OR); + State = 282; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 275; whiteSpace(); + State = 281; whiteSpace(); } } - State = 278; expression(6); + State = 284; expression(6); } break; @@ -1888,26 +1954,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalXorOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 279; + State = 285; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 281; + State = 287; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 280; whiteSpace(); + State = 286; whiteSpace(); } } - State = 283; Match(XOR); - State = 285; + State = 289; Match(XOR); + State = 291; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 284; whiteSpace(); + State = 290; whiteSpace(); } } - State = 287; expression(5); + State = 293; expression(5); } break; @@ -1915,26 +1981,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalEqvOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 288; + State = 294; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 290; + State = 296; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 289; whiteSpace(); + State = 295; whiteSpace(); } } - State = 292; Match(EQV); - State = 294; + State = 298; Match(EQV); + State = 300; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 293; whiteSpace(); + State = 299; whiteSpace(); } } - State = 296; expression(4); + State = 302; expression(4); } break; @@ -1942,32 +2008,32 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalImpOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 297; + State = 303; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 299; + State = 305; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 298; whiteSpace(); + State = 304; whiteSpace(); } } - State = 301; Match(IMP); - State = 303; + State = 307; Match(IMP); + State = 309; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 302; whiteSpace(); + State = 308; whiteSpace(); } } - State = 305; expression(3); + State = 311; expression(3); } break; } } } - State = 310; + State = 316; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,40,_ctx); } @@ -2021,7 +2087,7 @@ public LiteralExpressionContext literalExpression() { LiteralExpressionContext _localctx = new LiteralExpressionContext(_ctx, State); EnterRule(_localctx, 26, RULE_literalExpression); try { - State = 318; + State = 324; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -2029,19 +2095,19 @@ public LiteralExpressionContext literalExpression() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 311; numberLiteral(); + State = 317; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 312; Match(DATELITERAL); + State = 318; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 313; Match(STRINGLITERAL); + State = 319; Match(STRINGLITERAL); } break; case EMPTY: @@ -2051,12 +2117,12 @@ public LiteralExpressionContext literalExpression() { case TRUE: EnterOuterAlt(_localctx, 4); { - State = 314; literalIdentifier(); - State = 316; + State = 320; literalIdentifier(); + State = 322; switch ( Interpreter.AdaptivePredict(_input,41,_ctx) ) { case 1: { - State = 315; typeSuffix(); + State = 321; typeSuffix(); } break; } @@ -2110,7 +2176,7 @@ public NumberLiteralContext numberLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 320; + State = 326; _la = _input.La(1); if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -2169,25 +2235,25 @@ public ParenthesizedExpressionContext parenthesizedExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 322; Match(LPAREN); - State = 324; + State = 328; Match(LPAREN); + State = 330; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 323; whiteSpace(); + State = 329; whiteSpace(); } } - State = 326; expression(0); - State = 328; + State = 332; expression(0); + State = 334; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 327; whiteSpace(); + State = 333; whiteSpace(); } } - State = 330; Match(RPAREN); + State = 336; Match(RPAREN); } } catch (RecognitionException re) { @@ -2243,13 +2309,13 @@ public TypeOfIsExpressionContext typeOfIsExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 332; Match(TYPEOF); - State = 333; whiteSpace(); - State = 334; expression(0); - State = 335; whiteSpace(); - State = 336; Match(IS); - State = 337; whiteSpace(); - State = 338; typeExpression(); + State = 338; Match(TYPEOF); + State = 339; whiteSpace(); + State = 340; expression(0); + State = 341; whiteSpace(); + State = 342; Match(IS); + State = 343; whiteSpace(); + State = 344; typeExpression(); } } catch (RecognitionException re) { @@ -2298,9 +2364,9 @@ public NewExpressionContext newExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 340; Match(NEW); - State = 341; whiteSpace(); - State = 342; typeExpression(); + State = 346; Match(NEW); + State = 347; whiteSpace(); + State = 348; typeExpression(); } } catch (RecognitionException re) { @@ -2485,7 +2551,7 @@ private LExpressionContext lExpression(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 348; + State = 354; switch (_input.La(1)) { case ME: { @@ -2493,7 +2559,7 @@ private LExpressionContext lExpression(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 345; instanceExpression(); + State = 351; instanceExpression(); } break; case ABS: @@ -2528,19 +2594,47 @@ private LExpressionContext lExpression(int _p) { case SCALE: case SGN: case UBOUND: + case ALIAS: + case ATTRIBUTE: + case APPACTIVATE: + case BEGIN: + case BEEP: case BINARY: + case CHDIR: + case CHDRIVE: + case CLASS: case DATABASE: + case DELETESETTING: + case ERROR: + case FILECOPY: case INPUT: + case KILL: + case LOAD: + case LIB: case MID: + case MKDIR: + case NAME: + case ON: + case RANDOMIZE: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case TAB: case TEXT: + case TIME: + case UNLOAD: + case VERSION: case IDENTIFIER: case FOREIGNNAME: case OBJECT: + case COLLECTION: { _localctx = new SimpleNameExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 346; simpleNameExpression(); + State = 352; simpleNameExpression(); } break; case EXCLAMATIONPOINT: @@ -2549,14 +2643,14 @@ private LExpressionContext lExpression(int _p) { _localctx = new WithExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 347; withExpression(); + State = 353; withExpression(); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.Lt(-1); - State = 389; + State = 395; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,52,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -2564,48 +2658,48 @@ private LExpressionContext lExpression(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 387; + State = 393; switch ( Interpreter.AdaptivePredict(_input,51,_ctx) ) { case 1: { _localctx = new IndexExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 350; + State = 356; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 352; + State = 358; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 351; whiteSpace(); + State = 357; whiteSpace(); } } - State = 354; Match(LPAREN); - State = 356; + State = 360; Match(LPAREN); + State = 362; switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { case 1: { - State = 355; whiteSpace(); + State = 361; whiteSpace(); } break; } - State = 359; + State = 365; switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 358; argumentList(); + State = 364; argumentList(); } break; } - State = 362; + State = 368; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 361; whiteSpace(); + State = 367; whiteSpace(); } } - State = 364; Match(RPAREN); + State = 370; Match(RPAREN); } break; @@ -2613,10 +2707,10 @@ private LExpressionContext lExpression(int _p) { { _localctx = new MemberAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 365; + State = 371; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 366; Match(DOT); - State = 367; unrestrictedName(); + State = 372; Match(DOT); + State = 373; unrestrictedName(); } break; @@ -2624,19 +2718,19 @@ private LExpressionContext lExpression(int _p) { { _localctx = new MemberAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 368; + State = 374; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 369; Match(LINE_CONTINUATION); - State = 371; + State = 375; Match(LINE_CONTINUATION); + State = 377; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 370; whiteSpace(); + State = 376; whiteSpace(); } } - State = 373; Match(DOT); - State = 374; unrestrictedName(); + State = 379; Match(DOT); + State = 380; unrestrictedName(); } break; @@ -2644,10 +2738,10 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 375; + State = 381; if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 376; Match(EXCLAMATIONPOINT); - State = 377; unrestrictedName(); + State = 382; Match(EXCLAMATIONPOINT); + State = 383; unrestrictedName(); } break; @@ -2655,11 +2749,11 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 378; + State = 384; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 379; Match(LINE_CONTINUATION); - State = 380; Match(EXCLAMATIONPOINT); - State = 381; unrestrictedName(); + State = 385; Match(LINE_CONTINUATION); + State = 386; Match(EXCLAMATIONPOINT); + State = 387; unrestrictedName(); } break; @@ -2667,18 +2761,18 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 382; + State = 388; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 383; Match(LINE_CONTINUATION); - State = 384; Match(EXCLAMATIONPOINT); - State = 385; Match(LINE_CONTINUATION); - State = 386; unrestrictedName(); + State = 389; Match(LINE_CONTINUATION); + State = 390; Match(EXCLAMATIONPOINT); + State = 391; Match(LINE_CONTINUATION); + State = 392; unrestrictedName(); } break; } } } - State = 391; + State = 397; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,52,_ctx); } @@ -2733,32 +2827,32 @@ public MemberAccessExpressionContext memberAccessExpression() { EnterRule(_localctx, 38, RULE_memberAccessExpression); int _la; try { - State = 404; + State = 410; switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 392; lExpression(0); - State = 393; Match(DOT); - State = 394; unrestrictedName(); + State = 398; lExpression(0); + State = 399; Match(DOT); + State = 400; unrestrictedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 396; lExpression(0); - State = 397; Match(LINE_CONTINUATION); - State = 399; + State = 402; lExpression(0); + State = 403; Match(LINE_CONTINUATION); + State = 405; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 398; whiteSpace(); + State = 404; whiteSpace(); } } - State = 401; Match(DOT); - State = 402; unrestrictedName(); + State = 407; Match(DOT); + State = 408; unrestrictedName(); } break; } @@ -2817,41 +2911,41 @@ public IndexExpressionContext indexExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 406; lExpression(0); - State = 408; + State = 412; lExpression(0); + State = 414; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 407; whiteSpace(); + State = 413; whiteSpace(); } } - State = 410; Match(LPAREN); - State = 412; + State = 416; Match(LPAREN); + State = 418; switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { case 1: { - State = 411; whiteSpace(); + State = 417; whiteSpace(); } break; } - State = 415; + State = 421; switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: { - State = 414; argumentList(); + State = 420; argumentList(); } break; } - State = 418; + State = 424; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 417; whiteSpace(); + State = 423; whiteSpace(); } } - State = 420; Match(RPAREN); + State = 426; Match(RPAREN); } } catch (RecognitionException re) { @@ -2902,35 +2996,35 @@ public DictionaryAccessExpressionContext dictionaryAccessExpression() { DictionaryAccessExpressionContext _localctx = new DictionaryAccessExpressionContext(_ctx, State); EnterRule(_localctx, 42, RULE_dictionaryAccessExpression); try { - State = 437; + State = 443; switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 422; lExpression(0); - State = 423; Match(EXCLAMATIONPOINT); - State = 424; unrestrictedName(); + State = 428; lExpression(0); + State = 429; Match(EXCLAMATIONPOINT); + State = 430; unrestrictedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 426; lExpression(0); - State = 427; Match(LINE_CONTINUATION); - State = 428; Match(EXCLAMATIONPOINT); - State = 429; unrestrictedName(); + State = 432; lExpression(0); + State = 433; Match(LINE_CONTINUATION); + State = 434; Match(EXCLAMATIONPOINT); + State = 435; unrestrictedName(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 431; lExpression(0); - State = 432; Match(LINE_CONTINUATION); - State = 433; Match(EXCLAMATIONPOINT); - State = 434; Match(LINE_CONTINUATION); - State = 435; unrestrictedName(); + State = 437; lExpression(0); + State = 438; Match(LINE_CONTINUATION); + State = 439; Match(EXCLAMATIONPOINT); + State = 440; Match(LINE_CONTINUATION); + State = 441; unrestrictedName(); } break; } @@ -2977,7 +3071,7 @@ public ArgumentListContext argumentList() { try { EnterOuterAlt(_localctx, 1); { - State = 439; positionalOrNamedArgumentList(); + State = 445; positionalOrNamedArgumentList(); } } catch (RecognitionException re) { @@ -3041,97 +3135,97 @@ public PositionalOrNamedArgumentListContext positionalOrNamedArgumentList() { int _la; try { int _alt; - State = 473; + State = 479; switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 453; + State = 459; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 442; + State = 448; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 71)) & ~0x3f) == 0 && ((1L << (_la - 71)) & ((1L << (DATABASE - 71)) | (1L << (EMPTY - 71)) | (1L << (FALSE - 71)) | (1L << (INPUT - 71)))) != 0) || ((((_la - 143)) & ~0x3f) == 0 && ((1L << (_la - 143)) & ((1L << (ME - 143)) | (1L << (MID - 143)) | (1L << (NEW - 143)) | (1L << (NOT - 143)) | (1L << (NOTHING - 143)) | (1L << (NULL - 143)) | (1L << (TEXT - 143)) | (1L << (TRUE - 143)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (TYPEOF - 208)) | (1L << (LPAREN - 208)) | (1L << (MINUS - 208)) | (1L << (STRINGLITERAL - 208)) | (1L << (OCTLITERAL - 208)) | (1L << (HEXLITERAL - 208)) | (1L << (FLOATLITERAL - 208)) | (1L << (INTEGERLITERAL - 208)) | (1L << (DATELITERAL - 208)) | (1L << (IDENTIFIER - 208)) | (1L << (FOREIGNNAME - 208)) | (1L << (OBJECT - 208)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (EMPTY - 66)) | (1L << (ERROR - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (INPUT - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TEXT - 201)) | (1L << (TIME - 201)) | (1L << (TRUE - 201)) | (1L << (TYPEOF - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (LPAREN - 201)) | (1L << (MINUS - 201)) | (1L << (STRINGLITERAL - 201)) | (1L << (OCTLITERAL - 201)) | (1L << (HEXLITERAL - 201)) | (1L << (FLOATLITERAL - 201)) | (1L << (INTEGERLITERAL - 201)) | (1L << (DATELITERAL - 201)) | (1L << (IDENTIFIER - 201)) | (1L << (FOREIGNNAME - 201)) | (1L << (OBJECT - 201)) | (1L << (COLLECTION - 201)))) != 0)) { { - State = 441; positionalArgument(); + State = 447; positionalArgument(); } } - State = 445; + State = 451; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 444; whiteSpace(); + State = 450; whiteSpace(); } } - State = 447; Match(COMMA); - State = 449; + State = 453; Match(COMMA); + State = 455; switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { case 1: { - State = 448; whiteSpace(); + State = 454; whiteSpace(); } break; } } } } - State = 455; + State = 461; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); } - State = 456; requiredPositionalArgument(); + State = 462; requiredPositionalArgument(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 469; + State = 475; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,67,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 458; + State = 464; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 71)) & ~0x3f) == 0 && ((1L << (_la - 71)) & ((1L << (DATABASE - 71)) | (1L << (EMPTY - 71)) | (1L << (FALSE - 71)) | (1L << (INPUT - 71)))) != 0) || ((((_la - 143)) & ~0x3f) == 0 && ((1L << (_la - 143)) & ((1L << (ME - 143)) | (1L << (MID - 143)) | (1L << (NEW - 143)) | (1L << (NOT - 143)) | (1L << (NOTHING - 143)) | (1L << (NULL - 143)) | (1L << (TEXT - 143)) | (1L << (TRUE - 143)))) != 0) || ((((_la - 208)) & ~0x3f) == 0 && ((1L << (_la - 208)) & ((1L << (TYPEOF - 208)) | (1L << (LPAREN - 208)) | (1L << (MINUS - 208)) | (1L << (STRINGLITERAL - 208)) | (1L << (OCTLITERAL - 208)) | (1L << (HEXLITERAL - 208)) | (1L << (FLOATLITERAL - 208)) | (1L << (INTEGERLITERAL - 208)) | (1L << (DATELITERAL - 208)) | (1L << (IDENTIFIER - 208)) | (1L << (FOREIGNNAME - 208)) | (1L << (OBJECT - 208)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (EMPTY - 66)) | (1L << (ERROR - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (INPUT - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TEXT - 201)) | (1L << (TIME - 201)) | (1L << (TRUE - 201)) | (1L << (TYPEOF - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (LPAREN - 201)) | (1L << (MINUS - 201)) | (1L << (STRINGLITERAL - 201)) | (1L << (OCTLITERAL - 201)) | (1L << (HEXLITERAL - 201)) | (1L << (FLOATLITERAL - 201)) | (1L << (INTEGERLITERAL - 201)) | (1L << (DATELITERAL - 201)) | (1L << (IDENTIFIER - 201)) | (1L << (FOREIGNNAME - 201)) | (1L << (OBJECT - 201)) | (1L << (COLLECTION - 201)))) != 0)) { { - State = 457; positionalArgument(); + State = 463; positionalArgument(); } } - State = 461; + State = 467; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 460; whiteSpace(); + State = 466; whiteSpace(); } } - State = 463; Match(COMMA); - State = 465; + State = 469; Match(COMMA); + State = 471; switch ( Interpreter.AdaptivePredict(_input,66,_ctx) ) { case 1: { - State = 464; whiteSpace(); + State = 470; whiteSpace(); } break; } } } } - State = 471; + State = 477; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,67,_ctx); } - State = 472; namedArgumentList(); + State = 478; namedArgumentList(); } break; } @@ -3178,7 +3272,7 @@ public PositionalArgumentContext positionalArgument() { try { EnterOuterAlt(_localctx, 1); { - State = 475; argumentExpression(); + State = 481; argumentExpression(); } } catch (RecognitionException re) { @@ -3223,7 +3317,7 @@ public RequiredPositionalArgumentContext requiredPositionalArgument() { try { EnterOuterAlt(_localctx, 1); { - State = 477; argumentExpression(); + State = 483; argumentExpression(); } } catch (RecognitionException re) { @@ -3283,36 +3377,36 @@ public NamedArgumentListContext namedArgumentList() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 479; namedArgument(); - State = 490; + State = 485; namedArgument(); + State = 496; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,71,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 481; + State = 487; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 480; whiteSpace(); + State = 486; whiteSpace(); } } - State = 483; Match(COMMA); - State = 485; + State = 489; Match(COMMA); + State = 491; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 484; whiteSpace(); + State = 490; whiteSpace(); } } - State = 487; namedArgument(); + State = 493; namedArgument(); } } } - State = 492; + State = 498; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,71,_ctx); } @@ -3371,25 +3465,25 @@ public NamedArgumentContext namedArgument() { try { EnterOuterAlt(_localctx, 1); { - State = 493; unrestrictedName(); - State = 495; + State = 499; unrestrictedName(); + State = 501; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 494; whiteSpace(); + State = 500; whiteSpace(); } } - State = 497; Match(ASSIGN); - State = 499; + State = 503; Match(ASSIGN); + State = 505; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 498; whiteSpace(); + State = 504; whiteSpace(); } } - State = 501; argumentExpression(); + State = 507; argumentExpression(); } } catch (RecognitionException re) { @@ -3440,7 +3534,7 @@ public ArgumentExpressionContext argumentExpression() { EnterRule(_localctx, 56, RULE_argumentExpression); int _la; try { - State = 509; + State = 515; switch (_input.La(1)) { case ABS: case ARRAY: @@ -3476,21 +3570,48 @@ public ArgumentExpressionContext argumentExpression() { case UBOUND: case EXCLAMATIONPOINT: case DOT: + case ALIAS: + case ATTRIBUTE: + case APPACTIVATE: + case BEGIN: + case BEEP: case BINARY: case BYVAL: + case CHDIR: + case CHDRIVE: + case CLASS: case DATABASE: + case DELETESETTING: case EMPTY: + case ERROR: case FALSE: + case FILECOPY: case INPUT: + case KILL: + case LOAD: + case LIB: case ME: case MID: + case MKDIR: + case NAME: case NEW: case NOT: case NOTHING: case NULL: + case ON: + case RANDOMIZE: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case TAB: case TEXT: + case TIME: case TRUE: case TYPEOF: + case UNLOAD: + case VERSION: case LPAREN: case MINUS: case STRINGLITERAL: @@ -3502,24 +3623,25 @@ public ArgumentExpressionContext argumentExpression() { case IDENTIFIER: case FOREIGNNAME: case OBJECT: + case COLLECTION: EnterOuterAlt(_localctx, 1); { - State = 505; + State = 511; _la = _input.La(1); if (_la==BYVAL) { { - State = 503; Match(BYVAL); - State = 504; whiteSpace(); + State = 509; Match(BYVAL); + State = 510; whiteSpace(); } } - State = 507; expression(0); + State = 513; expression(0); } break; case ADDRESSOF: EnterOuterAlt(_localctx, 2); { - State = 508; addressOfExpression(); + State = 514; addressOfExpression(); } break; default: @@ -3568,7 +3690,7 @@ public SimpleNameExpressionContext simpleNameExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 511; name(); + State = 517; name(); } } catch (RecognitionException re) { @@ -3611,7 +3733,7 @@ public InstanceExpressionContext instanceExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 513; Match(ME); + State = 519; Match(ME); } } catch (RecognitionException re) { @@ -3657,18 +3779,18 @@ public WithExpressionContext withExpression() { WithExpressionContext _localctx = new WithExpressionContext(_ctx, State); EnterRule(_localctx, 62, RULE_withExpression); try { - State = 517; + State = 523; switch (_input.La(1)) { case DOT: EnterOuterAlt(_localctx, 1); { - State = 515; withMemberAccessExpression(); + State = 521; withMemberAccessExpression(); } break; case EXCLAMATIONPOINT: EnterOuterAlt(_localctx, 2); { - State = 516; withDictionaryAccessExpression(); + State = 522; withDictionaryAccessExpression(); } break; default: @@ -3718,8 +3840,8 @@ public WithMemberAccessExpressionContext withMemberAccessExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 519; Match(DOT); - State = 520; unrestrictedName(); + State = 525; Match(DOT); + State = 526; unrestrictedName(); } } catch (RecognitionException re) { @@ -3765,8 +3887,8 @@ public WithDictionaryAccessExpressionContext withDictionaryAccessExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 522; Match(EXCLAMATIONPOINT); - State = 523; unrestrictedName(); + State = 528; Match(EXCLAMATIONPOINT); + State = 529; unrestrictedName(); } } catch (RecognitionException re) { @@ -3811,7 +3933,7 @@ public ConstantExpressionContext constantExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 525; expression(0); + State = 531; expression(0); } } catch (RecognitionException re) { @@ -3857,19 +3979,19 @@ public TypeExpressionContext typeExpression() { TypeExpressionContext _localctx = new TypeExpressionContext(_ctx, State); EnterRule(_localctx, 70, RULE_typeExpression); try { - State = 529; + State = 535; switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 527; builtInType(); + State = 533; builtInType(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 528; definedTypeExpression(); + State = 534; definedTypeExpression(); } break; } @@ -3917,19 +4039,19 @@ public DefinedTypeExpressionContext definedTypeExpression() { DefinedTypeExpressionContext _localctx = new DefinedTypeExpressionContext(_ctx, State); EnterRule(_localctx, 72, RULE_definedTypeExpression); try { - State = 533; + State = 539; switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 531; simpleNameExpression(); + State = 537; simpleNameExpression(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 532; memberAccessExpression(); + State = 538; memberAccessExpression(); } break; } @@ -3980,9 +4102,9 @@ public AddressOfExpressionContext addressOfExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 535; Match(ADDRESSOF); - State = 536; whiteSpace(); - State = 537; procedurePointerExpression(); + State = 541; Match(ADDRESSOF); + State = 542; whiteSpace(); + State = 543; procedurePointerExpression(); } } catch (RecognitionException re) { @@ -4028,19 +4150,19 @@ public ProcedurePointerExpressionContext procedurePointerExpression() { ProcedurePointerExpressionContext _localctx = new ProcedurePointerExpressionContext(_ctx, State); EnterRule(_localctx, 76, RULE_procedurePointerExpression); try { - State = 541; + State = 547; switch ( Interpreter.AdaptivePredict(_input,79,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 539; memberAccessExpression(); + State = 545; memberAccessExpression(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 540; simpleNameExpression(); + State = 546; simpleNameExpression(); } break; } @@ -4106,61 +4228,61 @@ public ReservedIdentifierContext reservedIdentifier() { ReservedIdentifierContext _localctx = new ReservedIdentifierContext(_ctx, State); EnterRule(_localctx, 78, RULE_reservedIdentifier); try { - State = 551; + State = 557; switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 543; statementKeyword(); + State = 549; statementKeyword(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 544; markerKeyword(); + State = 550; markerKeyword(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 545; operatorIdentifier(); + State = 551; operatorIdentifier(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 546; specialForm(); + State = 552; specialForm(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 547; reservedName(); + State = 553; reservedName(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 548; literalIdentifier(); + State = 554; literalIdentifier(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 549; remKeyword(); + State = 555; remKeyword(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 550; reservedTypeIdentifier(); + State = 556; reservedTypeIdentifier(); } break; } @@ -4299,7 +4421,7 @@ public StatementKeywordContext statementKeyword() { try { EnterOuterAlt(_localctx, 1); { - State = 553; + State = 559; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXIT) | (1L << OPTION) | (1L << ACCESS) | (1L << APPEND) | (1L << BINARY))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (LOCK - 132)) | (1L << (LOOP - 132)) | (1L << (LET - 132)) | (1L << (LINE_INPUT - 132)) | (1L << (LOCK_READ - 132)) | (1L << (LOCK_WRITE - 132)) | (1L << (LOCK_READ_WRITE - 132)) | (1L << (LSET - 132)) | (1L << (NEXT - 132)) | (1L << (ON - 132)) | (1L << (ON_ERROR - 132)) | (1L << (OPEN - 132)) | (1L << (OUTPUT - 132)) | (1L << (PRINT - 132)) | (1L << (PRIVATE - 132)) | (1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (READ_WRITE - 132)) | (1L << (REDIM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RSET - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SET - 132)) | (1L << (SHARED - 132)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (STATIC - 196)) | (1L << (STEP - 196)) | (1L << (STOP - 196)) | (1L << (SUB - 196)) | (1L << (TYPE - 196)) | (1L << (UNLOCK - 196)) | (1L << (WEND - 196)) | (1L << (WHILE - 196)) | (1L << (WIDTH - 196)) | (1L << (WITH - 196)) | (1L << (WRITE - 196)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4347,7 +4469,7 @@ public RemKeywordContext remKeyword() { try { EnterOuterAlt(_localctx, 1); { - State = 555; Match(REM); + State = 561; Match(REM); } } catch (RecognitionException re) { @@ -4410,7 +4532,7 @@ public MarkerKeywordContext markerKeyword() { try { EnterOuterAlt(_localctx, 1); { - State = 557; + State = 563; _la = _input.La(1); if ( !(((((_la - 2)) & ~0x3f) == 0 && ((1L << (_la - 2)) & ((1L << (ANY - 2)) | (1L << (AS - 2)) | (1L << (BYVAL - 2)) | (1L << (BYREF - 2)) | (1L << (CASE - 2)))) != 0) || ((((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & ((1L << (EACH - 91)) | (1L << (ELSE - 91)) | (1L << (IN - 91)) | (1L << (NEW - 91)))) != 0) || ((((_la - 157)) & ~0x3f) == 0 && ((1L << (_la - 157)) & ((1L << (OPTIONAL - 157)) | (1L << (PARAMARRAY - 157)) | (1L << (PRESERVE - 157)) | (1L << (SHARED - 157)) | (1L << (SPC - 157)) | (1L << (TAB - 157)) | (1L << (THEN - 157)) | (1L << (TO - 157)) | (1L << (UNTIL - 157)) | (1L << (WITHEVENTS - 157)) | (1L << (WRITE - 157)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4470,7 +4592,7 @@ public OperatorIdentifierContext operatorIdentifier() { try { EnterOuterAlt(_localctx, 1); { - State = 559; + State = 565; _la = _input.La(1); if ( !(_la==ADDRESSOF || _la==AND || ((((_la - 105)) & ~0x3f) == 0 && ((1L << (_la - 105)) & ((1L << (EQV - 105)) | (1L << (IMP - 105)) | (1L << (IS - 105)) | (1L << (LIKE - 105)) | (1L << (MOD - 105)) | (1L << (NEW - 105)) | (1L << (NOT - 105)) | (1L << (OR - 105)))) != 0) || _la==TYPEOF || _la==XOR) ) { _errHandler.RecoverInline(this); @@ -4519,12 +4641,12 @@ public ReservedNameContext reservedName() { ReservedNameContext _localctx = new ReservedNameContext(_ctx, State); EnterRule(_localctx, 88, RULE_reservedName); try { - State = 563; + State = 569; switch (_input.La(1)) { case ME: EnterOuterAlt(_localctx, 1); { - State = 561; Match(ME); + State = 567; Match(ME); } break; case ABS: @@ -4557,7 +4679,7 @@ public ReservedNameContext reservedName() { case MID: EnterOuterAlt(_localctx, 2); { - State = 562; reservedProcedureName(); + State = 568; reservedProcedureName(); } break; default: @@ -4632,7 +4754,7 @@ public ReservedProcedureNameContext reservedProcedureName() { try { EnterOuterAlt(_localctx, 1); { - State = 565; + State = 571; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INT) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN))) != 0) || _la==MID) ) { _errHandler.RecoverInline(this); @@ -4687,7 +4809,7 @@ public SpecialFormContext specialForm() { try { EnterOuterAlt(_localctx, 1); { - State = 567; + State = 573; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ARRAY) | (1L << CIRCLE) | (1L << INPUTB) | (1L << LBOUND) | (1L << SCALE) | (1L << UBOUND))) != 0) || _la==INPUT) ) { _errHandler.RecoverInline(this); @@ -4747,7 +4869,7 @@ public ReservedTypeIdentifierContext reservedTypeIdentifier() { try { EnterOuterAlt(_localctx, 1); { - State = 569; + State = 575; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4766,6 +4888,81 @@ public ReservedTypeIdentifierContext reservedTypeIdentifier() { return _localctx; } + public partial class UncategorizedKeywordContext : ParserRuleContext { + public ITerminalNode APPACTIVATE() { return GetToken(VBAExpressionParser.APPACTIVATE, 0); } + public ITerminalNode TIME() { return GetToken(VBAExpressionParser.TIME, 0); } + public ITerminalNode RMDIR() { return GetToken(VBAExpressionParser.RMDIR, 0); } + public ITerminalNode LOAD() { return GetToken(VBAExpressionParser.LOAD, 0); } + public ITerminalNode CHDIR() { return GetToken(VBAExpressionParser.CHDIR, 0); } + public ITerminalNode UNLOAD() { return GetToken(VBAExpressionParser.UNLOAD, 0); } + public ITerminalNode BEEP() { return GetToken(VBAExpressionParser.BEEP, 0); } + public ITerminalNode NAME() { return GetToken(VBAExpressionParser.NAME, 0); } + public ITerminalNode DELETESETTING() { return GetToken(VBAExpressionParser.DELETESETTING, 0); } + public ITerminalNode BEGIN() { return GetToken(VBAExpressionParser.BEGIN, 0); } + public ITerminalNode KILL() { return GetToken(VBAExpressionParser.KILL, 0); } + public ITerminalNode CHDRIVE() { return GetToken(VBAExpressionParser.CHDRIVE, 0); } + public ITerminalNode VERSION() { return GetToken(VBAExpressionParser.VERSION, 0); } + public ITerminalNode ON() { return GetToken(VBAExpressionParser.ON, 0); } + public ITerminalNode COLLECTION() { return GetToken(VBAExpressionParser.COLLECTION, 0); } + public ITerminalNode SETATTR() { return GetToken(VBAExpressionParser.SETATTR, 0); } + public ITerminalNode SAVEPICTURE() { return GetToken(VBAExpressionParser.SAVEPICTURE, 0); } + public ITerminalNode FILECOPY() { return GetToken(VBAExpressionParser.FILECOPY, 0); } + public ITerminalNode TAB() { return GetToken(VBAExpressionParser.TAB, 0); } + public ITerminalNode LIB() { return GetToken(VBAExpressionParser.LIB, 0); } + public ITerminalNode SAVESETTING() { return GetToken(VBAExpressionParser.SAVESETTING, 0); } + public ITerminalNode SENDKEYS() { return GetToken(VBAExpressionParser.SENDKEYS, 0); } + public ITerminalNode ALIAS() { return GetToken(VBAExpressionParser.ALIAS, 0); } + public ITerminalNode ATTRIBUTE() { return GetToken(VBAExpressionParser.ATTRIBUTE, 0); } + public ITerminalNode CLASS() { return GetToken(VBAExpressionParser.CLASS, 0); } + public ITerminalNode RANDOMIZE() { return GetToken(VBAExpressionParser.RANDOMIZE, 0); } + public ITerminalNode MKDIR() { return GetToken(VBAExpressionParser.MKDIR, 0); } + public UncategorizedKeywordContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_uncategorizedKeyword; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAExpressionParserListener typedListener = listener as IVBAExpressionParserListener; + if (typedListener != null) typedListener.EnterUncategorizedKeyword(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAExpressionParserListener typedListener = listener as IVBAExpressionParserListener; + if (typedListener != null) typedListener.ExitUncategorizedKeyword(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAExpressionParserVisitor typedVisitor = visitor as IVBAExpressionParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitUncategorizedKeyword(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public UncategorizedKeywordContext uncategorizedKeyword() { + UncategorizedKeywordContext _localctx = new UncategorizedKeywordContext(_ctx, State); + EnterRule(_localctx, 96, RULE_uncategorizedKeyword); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 577; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DELETESETTING - 66)) | (1L << (FILECOPY - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TIME - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (COLLECTION - 201)))) != 0)) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + public partial class LiteralIdentifierContext : ParserRuleContext { public ObjectLiteralIdentifierContext objectLiteralIdentifier() { return GetRuleContext(0); @@ -4799,28 +4996,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralIdentifierContext literalIdentifier() { LiteralIdentifierContext _localctx = new LiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 96, RULE_literalIdentifier); + EnterRule(_localctx, 98, RULE_literalIdentifier); try { - State = 574; + State = 582; switch (_input.La(1)) { case FALSE: case TRUE: EnterOuterAlt(_localctx, 1); { - State = 571; booleanLiteralIdentifier(); + State = 579; booleanLiteralIdentifier(); } break; case NOTHING: EnterOuterAlt(_localctx, 2); { - State = 572; objectLiteralIdentifier(); + State = 580; objectLiteralIdentifier(); } break; case EMPTY: case NULL: EnterOuterAlt(_localctx, 3); { - State = 573; variantLiteralIdentifier(); + State = 581; variantLiteralIdentifier(); } break; default: @@ -4864,12 +5061,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BooleanLiteralIdentifierContext booleanLiteralIdentifier() { BooleanLiteralIdentifierContext _localctx = new BooleanLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 98, RULE_booleanLiteralIdentifier); + EnterRule(_localctx, 100, RULE_booleanLiteralIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 576; + State = 584; _la = _input.La(1); if ( !(_la==FALSE || _la==TRUE) ) { _errHandler.RecoverInline(this); @@ -4913,11 +5110,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ObjectLiteralIdentifierContext objectLiteralIdentifier() { ObjectLiteralIdentifierContext _localctx = new ObjectLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 100, RULE_objectLiteralIdentifier); + EnterRule(_localctx, 102, RULE_objectLiteralIdentifier); try { EnterOuterAlt(_localctx, 1); { - State = 578; Match(NOTHING); + State = 586; Match(NOTHING); } } catch (RecognitionException re) { @@ -4957,12 +5154,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariantLiteralIdentifierContext variantLiteralIdentifier() { VariantLiteralIdentifierContext _localctx = new VariantLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 102, RULE_variantLiteralIdentifier); + EnterRule(_localctx, 104, RULE_variantLiteralIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 580; + State = 588; _la = _input.La(1); if ( !(_la==EMPTY || _la==NULL) ) { _errHandler.RecoverInline(this); @@ -5013,13 +5210,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 104, RULE_whiteSpace); + EnterRule(_localctx, 106, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 583; + State = 591; _errHandler.Sync(this); _alt = 1; do { @@ -5027,7 +5224,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 582; + State = 590; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -5039,7 +5236,7 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 585; + State = 593; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,83,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -5110,7 +5307,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x106\x24E\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x107\x256\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -5118,267 +5315,274 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { "\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 \t \x4!"+ "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t"+ "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32"+ - "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x3\x2\x3\x2"+ - "\x3\x2\x3\x3\x3\x3\x5\x3r\n\x3\x3\x4\x3\x4\x5\x4v\n\x4\x3\x5\x3\x5\x5"+ - "\x5z\n\x5\x3\x6\x3\x6\x3\a\x3\a\x3\a\x3\b\x3\b\x3\b\x3\b\x3\b\x3\b\x5"+ - "\b\x87\n\b\x3\t\x3\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x91\n\n\x3\v\x3"+ - "\v\x3\f\x3\f\x3\r\x3\r\x3\r\x5\r\x9A\n\r\x3\r\x3\r\x5\r\x9E\n\r\x3\r\x3"+ - "\r\x3\r\x3\r\x3\r\x5\r\xA5\n\r\x3\r\x3\r\x5\r\xA9\n\r\x3\r\x5\r\xAC\n"+ - "\r\x3\xE\x3\xE\x3\xE\x5\xE\xB1\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xB6\n\xE\x3"+ - "\xE\x3\xE\x3\xE\x3\xE\x5\xE\xBC\n\xE\x3\xE\x3\xE\x5\xE\xC0\n\xE\x3\xE"+ - "\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xC7\n\xE\x3\xE\x3\xE\x5\xE\xCB\n\xE\x3"+ - "\xE\x3\xE\x5\xE\xCF\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xD4\n\xE\x3\xE\x3\xE"+ - "\x5\xE\xD8\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xDD\n\xE\x3\xE\x3\xE\x5\xE\xE1"+ - "\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xE6\n\xE\x3\xE\x3\xE\x5\xE\xEA\n\xE\x3\xE"+ - "\x3\xE\x3\xE\x5\xE\xEF\n\xE\x3\xE\x3\xE\x5\xE\xF3\n\xE\x3\xE\x3\xE\x3"+ - "\xE\x5\xE\xF8\n\xE\x3\xE\x3\xE\x5\xE\xFC\n\xE\x3\xE\x3\xE\x3\xE\x5\xE"+ - "\x101\n\xE\x3\xE\x3\xE\x5\xE\x105\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x10A\n"+ - "\xE\x3\xE\x3\xE\x5\xE\x10E\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x113\n\xE\x3\xE"+ - "\x3\xE\x5\xE\x117\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x11C\n\xE\x3\xE\x3\xE\x5"+ - "\xE\x120\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x125\n\xE\x3\xE\x3\xE\x5\xE\x129"+ - "\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x12E\n\xE\x3\xE\x3\xE\x5\xE\x132\n\xE\x3"+ - "\xE\a\xE\x135\n\xE\f\xE\xE\xE\x138\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x5\xF\x13F\n\xF\x5\xF\x141\n\xF\x3\x10\x3\x10\x3\x11\x3\x11\x5\x11\x147"+ - "\n\x11\x3\x11\x3\x11\x5\x11\x14B\n\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3"+ - "\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3"+ - "\x14\x3\x14\x3\x14\x3\x14\x5\x14\x15F\n\x14\x3\x14\x3\x14\x5\x14\x163"+ - "\n\x14\x3\x14\x3\x14\x5\x14\x167\n\x14\x3\x14\x5\x14\x16A\n\x14\x3\x14"+ - "\x5\x14\x16D\n\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x5"+ - "\x14\x176\n\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14"+ - "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\a\x14\x186\n\x14\f\x14\xE\x14"+ - "\x189\v\x14\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x192"+ - "\n\x15\x3\x15\x3\x15\x3\x15\x5\x15\x197\n\x15\x3\x16\x3\x16\x5\x16\x19B"+ - "\n\x16\x3\x16\x3\x16\x5\x16\x19F\n\x16\x3\x16\x5\x16\x1A2\n\x16\x3\x16"+ - "\x5\x16\x1A5\n\x16\x3\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3"+ - "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5"+ - "\x17\x1B8\n\x17\x3\x18\x3\x18\x3\x19\x5\x19\x1BD\n\x19\x3\x19\x5\x19\x1C0"+ - "\n\x19\x3\x19\x3\x19\x5\x19\x1C4\n\x19\a\x19\x1C6\n\x19\f\x19\xE\x19\x1C9"+ - "\v\x19\x3\x19\x3\x19\x5\x19\x1CD\n\x19\x3\x19\x5\x19\x1D0\n\x19\x3\x19"+ - "\x3\x19\x5\x19\x1D4\n\x19\a\x19\x1D6\n\x19\f\x19\xE\x19\x1D9\v\x19\x3"+ - "\x19\x5\x19\x1DC\n\x19\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x5\x1C"+ - "\x1E4\n\x1C\x3\x1C\x3\x1C\x5\x1C\x1E8\n\x1C\x3\x1C\a\x1C\x1EB\n\x1C\f"+ - "\x1C\xE\x1C\x1EE\v\x1C\x3\x1D\x3\x1D\x5\x1D\x1F2\n\x1D\x3\x1D\x3\x1D\x5"+ - "\x1D\x1F6\n\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x1FC\n\x1E\x3\x1E\x3"+ - "\x1E\x5\x1E\x200\n\x1E\x3\x1F\x3\x1F\x3 \x3 \x3!\x3!\x5!\x208\n!\x3\""+ - "\x3\"\x3\"\x3#\x3#\x3#\x3$\x3$\x3%\x3%\x5%\x214\n%\x3&\x3&\x5&\x218\n"+ - "&\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x5(\x220\n(\x3)\x3)\x3)\x3)\x3)\x3)\x3)"+ - "\x3)\x5)\x22A\n)\x3*\x3*\x3+\x3+\x3,\x3,\x3-\x3-\x3.\x3.\x5.\x236\n.\x3"+ - "/\x3/\x3\x30\x3\x30\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x5\x32\x241\n\x32"+ - "\x3\x33\x3\x33\x3\x34\x3\x34\x3\x35\x3\x35\x3\x36\x6\x36\x24A\n\x36\r"+ - "\x36\xE\x36\x24B\x3\x36\x2\x2\x4\x1A&\x37\x2\x2\x4\x2\x6\x2\b\x2\n\x2"+ - "\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2"+ - "\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<"+ - "\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z"+ - "\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2\x2\x11\x5\x2,,.\x32\xEC"+ - "\xEC\x5\x2==II\xCC\xCC\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2"+ - "\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2\xF6\xF9(\x2\x18\x18$$\x33"+ - "\x33\x39\x39==\x42\x43GHKXZ[^_\x63\x63\x65\x65hjlsv}\x7F\x7F\x81\x81\x86"+ - "\x86\x88\x89\x8C\x90\x96\x96\x9B\x9C\x9E\x9E\xA5\xA5\xA8\xA9\xAE\xB0\xB2"+ - "\xB5\xB7\xB9\xBB\xBB\xBE\xBF\xC1\xC1\xC3\xC3\xC6\xC8\xCA\xCA\xD1\xD1\xD4"+ - "\xD4\xD8\xDB\xDD\xDD\x12\x2\x4\x4::?@\x43\x43]^\x80\x80\x97\x97\x9F\x9F"+ - "\xA6\xA7\xC3\xC3\xC5\xC5\xCB\xCB\xCD\xCD\xCF\xCF\xD5\xD5\xDC\xDD\r\x2"+ - "\x34\x34\x36\x36kk~~\x82\x82\x8B\x8B\x94\x94\x97\x98\xA4\xA4\xD2\xD2\xDE"+ - "\xDE\f\x2\x3\x3\x6\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x92\x92"+ - "\t\x2\x5\x5\r\r\x1A\x1A\x1C\x1C&&((\x81\x81\r\x2\x13\x13\x1F >>\x41\x41"+ - "JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6\x4\x2tt\xD0\xD0\x4\x2`"+ - "`\x9A\x9A\x4\x2\x100\x100\x102\x102\x293\x2l\x3\x2\x2\x2\x4q\x3\x2\x2"+ - "\x2\x6u\x3\x2\x2\x2\by\x3\x2\x2\x2\n{\x3\x2\x2\x2\f}\x3\x2\x2\x2\xE\x86"+ - "\x3\x2\x2\x2\x10\x88\x3\x2\x2\x2\x12\x90\x3\x2\x2\x2\x14\x92\x3\x2\x2"+ - "\x2\x16\x94\x3\x2\x2\x2\x18\xAB\x3\x2\x2\x2\x1A\xC6\x3\x2\x2\x2\x1C\x140"+ - "\x3\x2\x2\x2\x1E\x142\x3\x2\x2\x2 \x144\x3\x2\x2\x2\"\x14E\x3\x2\x2\x2"+ - "$\x156\x3\x2\x2\x2&\x15E\x3\x2\x2\x2(\x196\x3\x2\x2\x2*\x198\x3\x2\x2"+ - "\x2,\x1B7\x3\x2\x2\x2.\x1B9\x3\x2\x2\x2\x30\x1DB\x3\x2\x2\x2\x32\x1DD"+ - "\x3\x2\x2\x2\x34\x1DF\x3\x2\x2\x2\x36\x1E1\x3\x2\x2\x2\x38\x1EF\x3\x2"+ - "\x2\x2:\x1FF\x3\x2\x2\x2<\x201\x3\x2\x2\x2>\x203\x3\x2\x2\x2@\x207\x3"+ - "\x2\x2\x2\x42\x209\x3\x2\x2\x2\x44\x20C\x3\x2\x2\x2\x46\x20F\x3\x2\x2"+ - "\x2H\x213\x3\x2\x2\x2J\x217\x3\x2\x2\x2L\x219\x3\x2\x2\x2N\x21F\x3\x2"+ - "\x2\x2P\x229\x3\x2\x2\x2R\x22B\x3\x2\x2\x2T\x22D\x3\x2\x2\x2V\x22F\x3"+ - "\x2\x2\x2X\x231\x3\x2\x2\x2Z\x235\x3\x2\x2\x2\\\x237\x3\x2\x2\x2^\x239"+ - "\x3\x2\x2\x2`\x23B\x3\x2\x2\x2\x62\x240\x3\x2\x2\x2\x64\x242\x3\x2\x2"+ - "\x2\x66\x244\x3\x2\x2\x2h\x246\x3\x2\x2\x2j\x249\x3\x2\x2\x2lm\x5\x1A"+ - "\xE\x2mn\a\x2\x2\x3n\x3\x3\x2\x2\x2or\x5\x6\x4\x2pr\x5\b\x5\x2qo\x3\x2"+ - "\x2\x2qp\x3\x2\x2\x2r\x5\x3\x2\x2\x2sv\x5\xE\b\x2tv\x5\x10\t\x2us\x3\x2"+ - "\x2\x2ut\x3\x2\x2\x2v\a\x3\x2\x2\x2wz\x5\n\x6\x2xz\x5\f\a\x2yw\x3\x2\x2"+ - "\x2yx\x3\x2\x2\x2z\t\x3\x2\x2\x2{|\x5P)\x2|\v\x3\x2\x2\x2}~\x5P)\x2~\x7F"+ - "\x5\x14\v\x2\x7F\r\x3\x2\x2\x2\x80\x87\a\x101\x2\x2\x81\x87\a\x105\x2"+ - "\x2\x82\x87\x5\\/\x2\x83\x87\x5^\x30\x2\x84\x87\x5\x16\f\x2\x85\x87\a"+ - "\x106\x2\x2\x86\x80\x3\x2\x2\x2\x86\x81\x3\x2\x2\x2\x86\x82\x3\x2\x2\x2"+ - "\x86\x83\x3\x2\x2\x2\x86\x84\x3\x2\x2\x2\x86\x85\x3\x2\x2\x2\x87\xF\x3"+ - "\x2\x2\x2\x88\x89\x5\x12\n\x2\x89\x8A\x5\x14\v\x2\x8A\x11\x3\x2\x2\x2"+ - "\x8B\x91\a\x101\x2\x2\x8C\x91\x5\\/\x2\x8D\x91\x5^\x30\x2\x8E\x91\x5\x16"+ - "\f\x2\x8F\x91\a\x106\x2\x2\x90\x8B\x3\x2\x2\x2\x90\x8C\x3\x2\x2\x2\x90"+ - "\x8D\x3\x2\x2\x2\x90\x8E\x3\x2\x2\x2\x90\x8F\x3\x2\x2\x2\x91\x13\x3\x2"+ - "\x2\x2\x92\x93\t\x2\x2\x2\x93\x15\x3\x2\x2\x2\x94\x95\t\x3\x2\x2\x95\x17"+ - "\x3\x2\x2\x2\x96\xAC\x5`\x31\x2\x97\x99\a\xF3\x2\x2\x98\x9A\x5j\x36\x2"+ - "\x99\x98\x3\x2\x2\x2\x99\x9A\x3\x2\x2\x2\x9A\x9B\x3\x2\x2\x2\x9B\x9D\x5"+ - "`\x31\x2\x9C\x9E\x5j\x36\x2\x9D\x9C\x3\x2\x2\x2\x9D\x9E\x3\x2\x2\x2\x9E"+ - "\x9F\x3\x2\x2\x2\x9F\xA0\a\xF4\x2\x2\xA0\xAC\x3\x2\x2\x2\xA1\xAC\a\x106"+ - "\x2\x2\xA2\xA4\a\xF3\x2\x2\xA3\xA5\x5j\x36\x2\xA4\xA3\x3\x2\x2\x2\xA4"+ - "\xA5\x3\x2\x2\x2\xA5\xA6\x3\x2\x2\x2\xA6\xA8\a\x106\x2\x2\xA7\xA9\x5j"+ - "\x36\x2\xA8\xA7\x3\x2\x2\x2\xA8\xA9\x3\x2\x2\x2\xA9\xAA\x3\x2\x2\x2\xAA"+ - "\xAC\a\xF4\x2\x2\xAB\x96\x3\x2\x2\x2\xAB\x97\x3\x2\x2\x2\xAB\xA1\x3\x2"+ - "\x2\x2\xAB\xA2\x3\x2\x2\x2\xAC\x19\x3\x2\x2\x2\xAD\xAE\b\xE\x1\x2\xAE"+ - "\xB0\a\xE8\x2\x2\xAF\xB1\x5j\x36\x2\xB0\xAF\x3\x2\x2\x2\xB0\xB1\x3\x2"+ - "\x2\x2\xB1\xB2\x3\x2\x2\x2\xB2\xC7\x5\x1A\xE\x10\xB3\xB5\a\x98\x2\x2\xB4"+ - "\xB6\x5j\x36\x2\xB5\xB4\x3\x2\x2\x2\xB5\xB6\x3\x2\x2\x2\xB6\xB7\x3\x2"+ - "\x2\x2\xB7\xC7\x5\x1A\xE\t\xB8\xC7\x5&\x14\x2\xB9\xBB\a\xE6\x2\x2\xBA"+ - "\xBC\x5j\x36\x2\xBB\xBA\x3\x2\x2\x2\xBB\xBC\x3\x2\x2\x2\xBC\xBD\x3\x2"+ - "\x2\x2\xBD\xBF\x5\x1A\xE\x2\xBE\xC0\x5j\x36\x2\xBF\xBE\x3\x2\x2\x2\xBF"+ - "\xC0\x3\x2\x2\x2\xC0\xC1\x3\x2\x2\x2\xC1\xC2\a\xED\x2\x2\xC2\xC7\x3\x2"+ - "\x2\x2\xC3\xC7\x5\"\x12\x2\xC4\xC7\x5$\x13\x2\xC5\xC7\x5\x1C\xF\x2\xC6"+ - "\xAD\x3\x2\x2\x2\xC6\xB3\x3\x2\x2\x2\xC6\xB8\x3\x2\x2\x2\xC6\xB9\x3\x2"+ - "\x2\x2\xC6\xC3\x3\x2\x2\x2\xC6\xC4\x3\x2\x2\x2\xC6\xC5\x3\x2\x2\x2\xC7"+ - "\x136\x3\x2\x2\x2\xC8\xCA\f\x11\x2\x2\xC9\xCB\x5j\x36\x2\xCA\xC9\x3\x2"+ - "\x2\x2\xCA\xCB\x3\x2\x2\x2\xCB\xCC\x3\x2\x2\x2\xCC\xCE\a\xEC\x2\x2\xCD"+ - "\xCF\x5j\x36\x2\xCE\xCD\x3\x2\x2\x2\xCE\xCF\x3\x2\x2\x2\xCF\xD0\x3\x2"+ - "\x2\x2\xD0\x135\x5\x1A\xE\x12\xD1\xD3\f\xF\x2\x2\xD2\xD4\x5j\x36\x2\xD3"+ - "\xD2\x3\x2\x2\x2\xD3\xD4\x3\x2\x2\x2\xD4\xD5\x3\x2\x2\x2\xD5\xD7\t\x4"+ - "\x2\x2\xD6\xD8\x5j\x36\x2\xD7\xD6\x3\x2\x2\x2\xD7\xD8\x3\x2\x2\x2\xD8"+ - "\xD9\x3\x2\x2\x2\xD9\x135\x5\x1A\xE\x10\xDA\xDC\f\xE\x2\x2\xDB\xDD\x5"+ - "j\x36\x2\xDC\xDB\x3\x2\x2\x2\xDC\xDD\x3\x2\x2\x2\xDD\xDE\x3\x2\x2\x2\xDE"+ - "\xE0\a\xE1\x2\x2\xDF\xE1\x5j\x36\x2\xE0\xDF\x3\x2\x2\x2\xE0\xE1\x3\x2"+ - "\x2\x2\xE1\xE2\x3\x2\x2\x2\xE2\x135\x5\x1A\xE\xF\xE3\xE5\f\r\x2\x2\xE4"+ - "\xE6\x5j\x36\x2\xE5\xE4\x3\x2\x2\x2\xE5\xE6\x3\x2\x2\x2\xE6\xE7\x3\x2"+ - "\x2\x2\xE7\xE9\a\x94\x2\x2\xE8\xEA\x5j\x36\x2\xE9\xE8\x3\x2\x2\x2\xE9"+ - "\xEA\x3\x2\x2\x2\xEA\xEB\x3\x2\x2\x2\xEB\x135\x5\x1A\xE\xE\xEC\xEE\f\f"+ - "\x2\x2\xED\xEF\x5j\x36\x2\xEE\xED\x3\x2\x2\x2\xEE\xEF\x3\x2\x2\x2\xEF"+ - "\xF0\x3\x2\x2\x2\xF0\xF2\t\x5\x2\x2\xF1\xF3\x5j\x36\x2\xF2\xF1\x3\x2\x2"+ - "\x2\xF2\xF3\x3\x2\x2\x2\xF3\xF4\x3\x2\x2\x2\xF4\x135\x5\x1A\xE\r\xF5\xF7"+ - "\f\v\x2\x2\xF6\xF8\x5j\x36\x2\xF7\xF6\x3\x2\x2\x2\xF7\xF8\x3\x2\x2\x2"+ - "\xF8\xF9\x3\x2\x2\x2\xF9\xFB\a\x32\x2\x2\xFA\xFC\x5j\x36\x2\xFB\xFA\x3"+ - "\x2\x2\x2\xFB\xFC\x3\x2\x2\x2\xFC\xFD\x3\x2\x2\x2\xFD\x135\x5\x1A\xE\f"+ - "\xFE\x100\f\n\x2\x2\xFF\x101\x5j\x36\x2\x100\xFF\x3\x2\x2\x2\x100\x101"+ - "\x3\x2\x2\x2\x101\x102\x3\x2\x2\x2\x102\x104\t\x6\x2\x2\x103\x105\x5j"+ - "\x36\x2\x104\x103\x3\x2\x2\x2\x104\x105\x3\x2\x2\x2\x105\x106\x3\x2\x2"+ - "\x2\x106\x135\x5\x1A\xE\v\x107\x109\f\b\x2\x2\x108\x10A\x5j\x36\x2\x109"+ - "\x108\x3\x2\x2\x2\x109\x10A\x3\x2\x2\x2\x10A\x10B\x3\x2\x2\x2\x10B\x10D"+ - "\a\x36\x2\x2\x10C\x10E\x5j\x36\x2\x10D\x10C\x3\x2\x2\x2\x10D\x10E\x3\x2"+ - "\x2\x2\x10E\x10F\x3\x2\x2\x2\x10F\x135\x5\x1A\xE\t\x110\x112\f\a\x2\x2"+ - "\x111\x113\x5j\x36\x2\x112\x111\x3\x2\x2\x2\x112\x113\x3\x2\x2\x2\x113"+ - "\x114\x3\x2\x2\x2\x114\x116\a\xA4\x2\x2\x115\x117\x5j\x36\x2\x116\x115"+ - "\x3\x2\x2\x2\x116\x117\x3\x2\x2\x2\x117\x118\x3\x2\x2\x2\x118\x135\x5"+ - "\x1A\xE\b\x119\x11B\f\x6\x2\x2\x11A\x11C\x5j\x36\x2\x11B\x11A\x3\x2\x2"+ - "\x2\x11B\x11C\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D\x11F\a\xDE\x2\x2"+ - "\x11E\x120\x5j\x36\x2\x11F\x11E\x3\x2\x2\x2\x11F\x120\x3\x2\x2\x2\x120"+ - "\x121\x3\x2\x2\x2\x121\x135\x5\x1A\xE\a\x122\x124\f\x5\x2\x2\x123\x125"+ - "\x5j\x36\x2\x124\x123\x3\x2\x2\x2\x124\x125\x3\x2\x2\x2\x125\x126\x3\x2"+ - "\x2\x2\x126\x128\ak\x2\x2\x127\x129\x5j\x36\x2\x128\x127\x3\x2\x2\x2\x128"+ - "\x129\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A\x135\x5\x1A\xE\x6\x12B\x12D"+ - "\f\x4\x2\x2\x12C\x12E\x5j\x36\x2\x12D\x12C\x3\x2\x2\x2\x12D\x12E\x3\x2"+ - "\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x131\a~\x2\x2\x130\x132\x5j\x36\x2\x131"+ - "\x130\x3\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135"+ - "\x5\x1A\xE\x5\x134\xC8\x3\x2\x2\x2\x134\xD1\x3\x2\x2\x2\x134\xDA\x3\x2"+ - "\x2\x2\x134\xE3\x3\x2\x2\x2\x134\xEC\x3\x2\x2\x2\x134\xF5\x3\x2\x2\x2"+ - "\x134\xFE\x3\x2\x2\x2\x134\x107\x3\x2\x2\x2\x134\x110\x3\x2\x2\x2\x134"+ - "\x119\x3\x2\x2\x2\x134\x122\x3\x2\x2\x2\x134\x12B\x3\x2\x2\x2\x135\x138"+ - "\x3\x2\x2\x2\x136\x134\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x1B\x3\x2"+ - "\x2\x2\x138\x136\x3\x2\x2\x2\x139\x141\x5\x1E\x10\x2\x13A\x141\a\xFA\x2"+ - "\x2\x13B\x141\a\xF5\x2\x2\x13C\x13E\x5\x62\x32\x2\x13D\x13F\x5\x14\v\x2"+ - "\x13E\x13D\x3\x2\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x3\x2\x2\x2\x140"+ - "\x139\x3\x2\x2\x2\x140\x13A\x3\x2\x2\x2\x140\x13B\x3\x2\x2\x2\x140\x13C"+ - "\x3\x2\x2\x2\x141\x1D\x3\x2\x2\x2\x142\x143\t\a\x2\x2\x143\x1F\x3\x2\x2"+ - "\x2\x144\x146\a\xE6\x2\x2\x145\x147\x5j\x36\x2\x146\x145\x3\x2\x2\x2\x146"+ - "\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2\x148\x14A\x5\x1A\xE\x2\x149\x14B"+ - "\x5j\x36\x2\x14A\x149\x3\x2\x2\x2\x14A\x14B\x3\x2\x2\x2\x14B\x14C\x3\x2"+ - "\x2\x2\x14C\x14D\a\xED\x2\x2\x14D!\x3\x2\x2\x2\x14E\x14F\a\xD2\x2\x2\x14F"+ - "\x150\x5j\x36\x2\x150\x151\x5\x1A\xE\x2\x151\x152\x5j\x36\x2\x152\x153"+ - "\a\x82\x2\x2\x153\x154\x5j\x36\x2\x154\x155\x5H%\x2\x155#\x3\x2\x2\x2"+ - "\x156\x157\a\x97\x2\x2\x157\x158\x5j\x36\x2\x158\x159\x5H%\x2\x159%\x3"+ - "\x2\x2\x2\x15A\x15B\b\x14\x1\x2\x15B\x15F\x5> \x2\x15C\x15F\x5<\x1F\x2"+ - "\x15D\x15F\x5@!\x2\x15E\x15A\x3\x2\x2\x2\x15E\x15C\x3\x2\x2\x2\x15E\x15D"+ - "\x3\x2\x2\x2\x15F\x187\x3\x2\x2\x2\x160\x162\f\v\x2\x2\x161\x163\x5j\x36"+ - "\x2\x162\x161\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3\x2\x2\x2"+ - "\x164\x166\a\xE6\x2\x2\x165\x167\x5j\x36\x2\x166\x165\x3\x2\x2\x2\x166"+ - "\x167\x3\x2\x2\x2\x167\x169\x3\x2\x2\x2\x168\x16A\x5.\x18\x2\x169\x168"+ - "\x3\x2\x2\x2\x169\x16A\x3\x2\x2\x2\x16A\x16C\x3\x2\x2\x2\x16B\x16D\x5"+ - "j\x36\x2\x16C\x16B\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16E\x3\x2\x2"+ - "\x2\x16E\x186\a\xED\x2\x2\x16F\x170\f\n\x2\x2\x170\x171\a-\x2\x2\x171"+ - "\x186\x5\x4\x3\x2\x172\x173\f\t\x2\x2\x173\x175\a\x102\x2\x2\x174\x176"+ - "\x5j\x36\x2\x175\x174\x3\x2\x2\x2\x175\x176\x3\x2\x2\x2\x176\x177\x3\x2"+ - "\x2\x2\x177\x178\a-\x2\x2\x178\x186\x5\x4\x3\x2\x179\x17A\f\b\x2\x2\x17A"+ - "\x17B\a,\x2\x2\x17B\x186\x5\x4\x3\x2\x17C\x17D\f\a\x2\x2\x17D\x17E\a\x102"+ - "\x2\x2\x17E\x17F\a,\x2\x2\x17F\x186\x5\x4\x3\x2\x180\x181\f\x6\x2\x2\x181"+ - "\x182\a\x102\x2\x2\x182\x183\a,\x2\x2\x183\x184\a\x102\x2\x2\x184\x186"+ - "\x5\x4\x3\x2\x185\x160\x3\x2\x2\x2\x185\x16F\x3\x2\x2\x2\x185\x172\x3"+ - "\x2\x2\x2\x185\x179\x3\x2\x2\x2\x185\x17C\x3\x2\x2\x2\x185\x180\x3\x2"+ - "\x2\x2\x186\x189\x3\x2\x2\x2\x187\x185\x3\x2\x2\x2\x187\x188\x3\x2\x2"+ - "\x2\x188\'\x3\x2\x2\x2\x189\x187\x3\x2\x2\x2\x18A\x18B\x5&\x14\x2\x18B"+ - "\x18C\a-\x2\x2\x18C\x18D\x5\x4\x3\x2\x18D\x197\x3\x2\x2\x2\x18E\x18F\x5"+ - "&\x14\x2\x18F\x191\a\x102\x2\x2\x190\x192\x5j\x36\x2\x191\x190\x3\x2\x2"+ - "\x2\x191\x192\x3\x2\x2\x2\x192\x193\x3\x2\x2\x2\x193\x194\a-\x2\x2\x194"+ - "\x195\x5\x4\x3\x2\x195\x197\x3\x2\x2\x2\x196\x18A\x3\x2\x2\x2\x196\x18E"+ - "\x3\x2\x2\x2\x197)\x3\x2\x2\x2\x198\x19A\x5&\x14\x2\x199\x19B\x5j\x36"+ - "\x2\x19A\x199\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2\x19B\x19C\x3\x2\x2\x2"+ - "\x19C\x19E\a\xE6\x2\x2\x19D\x19F\x5j\x36\x2\x19E\x19D\x3\x2\x2\x2\x19E"+ - "\x19F\x3\x2\x2\x2\x19F\x1A1\x3\x2\x2\x2\x1A0\x1A2\x5.\x18\x2\x1A1\x1A0"+ - "\x3\x2\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A4\x3\x2\x2\x2\x1A3\x1A5\x5"+ - "j\x36\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A6\x3\x2\x2"+ - "\x2\x1A6\x1A7\a\xED\x2\x2\x1A7+\x3\x2\x2\x2\x1A8\x1A9\x5&\x14\x2\x1A9"+ - "\x1AA\a,\x2\x2\x1AA\x1AB\x5\x4\x3\x2\x1AB\x1B8\x3\x2\x2\x2\x1AC\x1AD\x5"+ - "&\x14\x2\x1AD\x1AE\a\x102\x2\x2\x1AE\x1AF\a,\x2\x2\x1AF\x1B0\x5\x4\x3"+ - "\x2\x1B0\x1B8\x3\x2\x2\x2\x1B1\x1B2\x5&\x14\x2\x1B2\x1B3\a\x102\x2\x2"+ - "\x1B3\x1B4\a,\x2\x2\x1B4\x1B5\a\x102\x2\x2\x1B5\x1B6\x5\x4\x3\x2\x1B6"+ - "\x1B8\x3\x2\x2\x2\x1B7\x1A8\x3\x2\x2\x2\x1B7\x1AC\x3\x2\x2\x2\x1B7\x1B1"+ - "\x3\x2\x2\x2\x1B8-\x3\x2\x2\x2\x1B9\x1BA\x5\x30\x19\x2\x1BA/\x3\x2\x2"+ - "\x2\x1BB\x1BD\x5\x32\x1A\x2\x1BC\x1BB\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2\x2"+ - "\x1BD\x1BF\x3\x2\x2\x2\x1BE\x1C0\x5j\x36\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF"+ - "\x1C0\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2\x1C2\x1C4\x5"+ - "j\x36\x2\x1C3\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C6\x3\x2\x2"+ - "\x2\x1C5\x1BC\x3\x2\x2\x2\x1C6\x1C9\x3\x2\x2\x2\x1C7\x1C5\x3\x2\x2\x2"+ - "\x1C7\x1C8\x3\x2\x2\x2\x1C8\x1CA\x3\x2\x2\x2\x1C9\x1C7\x3\x2\x2\x2\x1CA"+ - "\x1DC\x5\x34\x1B\x2\x1CB\x1CD\x5\x32\x1A\x2\x1CC\x1CB\x3\x2\x2\x2\x1CC"+ - "\x1CD\x3\x2\x2\x2\x1CD\x1CF\x3\x2\x2\x2\x1CE\x1D0\x5j\x36\x2\x1CF\x1CE"+ - "\x3\x2\x2\x2\x1CF\x1D0\x3\x2\x2\x2\x1D0\x1D1\x3\x2\x2\x2\x1D1\x1D3\a)"+ - "\x2\x2\x1D2\x1D4\x5j\x36\x2\x1D3\x1D2\x3\x2\x2\x2\x1D3\x1D4\x3\x2\x2\x2"+ - "\x1D4\x1D6\x3\x2\x2\x2\x1D5\x1CC\x3\x2\x2\x2\x1D6\x1D9\x3\x2\x2\x2\x1D7"+ - "\x1D5\x3\x2\x2\x2\x1D7\x1D8\x3\x2\x2\x2\x1D8\x1DA\x3\x2\x2\x2\x1D9\x1D7"+ - "\x3\x2\x2\x2\x1DA\x1DC\x5\x36\x1C\x2\x1DB\x1C7\x3\x2\x2\x2\x1DB\x1D7\x3"+ - "\x2\x2\x2\x1DC\x31\x3\x2\x2\x2\x1DD\x1DE\x5:\x1E\x2\x1DE\x33\x3\x2\x2"+ - "\x2\x1DF\x1E0\x5:\x1E\x2\x1E0\x35\x3\x2\x2\x2\x1E1\x1EC\x5\x38\x1D\x2"+ - "\x1E2\x1E4\x5j\x36\x2\x1E3\x1E2\x3\x2\x2\x2\x1E3\x1E4\x3\x2\x2\x2\x1E4"+ - "\x1E5\x3\x2\x2\x2\x1E5\x1E7\a)\x2\x2\x1E6\x1E8\x5j\x36\x2\x1E7\x1E6\x3"+ - "\x2\x2\x2\x1E7\x1E8\x3\x2\x2\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1EB\x5\x38"+ - "\x1D\x2\x1EA\x1E3\x3\x2\x2\x2\x1EB\x1EE\x3\x2\x2\x2\x1EC\x1EA\x3\x2\x2"+ - "\x2\x1EC\x1ED\x3\x2\x2\x2\x1ED\x37\x3\x2\x2\x2\x1EE\x1EC\x3\x2\x2\x2\x1EF"+ - "\x1F1\x5\x4\x3\x2\x1F0\x1F2\x5j\x36\x2\x1F1\x1F0\x3\x2\x2\x2\x1F1\x1F2"+ - "\x3\x2\x2\x2\x1F2\x1F3\x3\x2\x2\x2\x1F3\x1F5\a\xDF\x2\x2\x1F4\x1F6\x5"+ - "j\x36\x2\x1F5\x1F4\x3\x2\x2\x2\x1F5\x1F6\x3\x2\x2\x2\x1F6\x1F7\x3\x2\x2"+ - "\x2\x1F7\x1F8\x5:\x1E\x2\x1F8\x39\x3\x2\x2\x2\x1F9\x1FA\a?\x2\x2\x1FA"+ - "\x1FC\x5j\x36\x2\x1FB\x1F9\x3\x2\x2\x2\x1FB\x1FC\x3\x2\x2\x2\x1FC\x1FD"+ - "\x3\x2\x2\x2\x1FD\x200\x5\x1A\xE\x2\x1FE\x200\x5L\'\x2\x1FF\x1FB\x3\x2"+ - "\x2\x2\x1FF\x1FE\x3\x2\x2\x2\x200;\x3\x2\x2\x2\x201\x202\x5\x6\x4\x2\x202"+ - "=\x3\x2\x2\x2\x203\x204\a\x91\x2\x2\x204?\x3\x2\x2\x2\x205\x208\x5\x42"+ - "\"\x2\x206\x208\x5\x44#\x2\x207\x205\x3\x2\x2\x2\x207\x206\x3\x2\x2\x2"+ - "\x208\x41\x3\x2\x2\x2\x209\x20A\a-\x2\x2\x20A\x20B\x5\x4\x3\x2\x20B\x43"+ - "\x3\x2\x2\x2\x20C\x20D\a,\x2\x2\x20D\x20E\x5\x4\x3\x2\x20E\x45\x3\x2\x2"+ - "\x2\x20F\x210\x5\x1A\xE\x2\x210G\x3\x2\x2\x2\x211\x214\x5\x18\r\x2\x212"+ - "\x214\x5J&\x2\x213\x211\x3\x2\x2\x2\x213\x212\x3\x2\x2\x2\x214I\x3\x2"+ - "\x2\x2\x215\x218\x5<\x1F\x2\x216\x218\x5(\x15\x2\x217\x215\x3\x2\x2\x2"+ - "\x217\x216\x3\x2\x2\x2\x218K\x3\x2\x2\x2\x219\x21A\a\x34\x2\x2\x21A\x21B"+ - "\x5j\x36\x2\x21B\x21C\x5N(\x2\x21CM\x3\x2\x2\x2\x21D\x220\x5(\x15\x2\x21E"+ - "\x220\x5<\x1F\x2\x21F\x21D\x3\x2\x2\x2\x21F\x21E\x3\x2\x2\x2\x220O\x3"+ - "\x2\x2\x2\x221\x22A\x5R*\x2\x222\x22A\x5V,\x2\x223\x22A\x5X-\x2\x224\x22A"+ - "\x5^\x30\x2\x225\x22A\x5Z.\x2\x226\x22A\x5\x62\x32\x2\x227\x22A\x5T+\x2"+ - "\x228\x22A\x5`\x31\x2\x229\x221\x3\x2\x2\x2\x229\x222\x3\x2\x2\x2\x229"+ - "\x223\x3\x2\x2\x2\x229\x224\x3\x2\x2\x2\x229\x225\x3\x2\x2\x2\x229\x226"+ - "\x3\x2\x2\x2\x229\x227\x3\x2\x2\x2\x229\x228\x3\x2\x2\x2\x22AQ\x3\x2\x2"+ - "\x2\x22B\x22C\t\b\x2\x2\x22CS\x3\x2\x2\x2\x22D\x22E\a\xB6\x2\x2\x22EU"+ - "\x3\x2\x2\x2\x22F\x230\t\t\x2\x2\x230W\x3\x2\x2\x2\x231\x232\t\n\x2\x2"+ - "\x232Y\x3\x2\x2\x2\x233\x236\a\x91\x2\x2\x234\x236\x5\\/\x2\x235\x233"+ - "\x3\x2\x2\x2\x235\x234\x3\x2\x2\x2\x236[\x3\x2\x2\x2\x237\x238\t\v\x2"+ - "\x2\x238]\x3\x2\x2\x2\x239\x23A\t\f\x2\x2\x23A_\x3\x2\x2\x2\x23B\x23C"+ - "\t\r\x2\x2\x23C\x61\x3\x2\x2\x2\x23D\x241\x5\x64\x33\x2\x23E\x241\x5\x66"+ - "\x34\x2\x23F\x241\x5h\x35\x2\x240\x23D\x3\x2\x2\x2\x240\x23E\x3\x2\x2"+ - "\x2\x240\x23F\x3\x2\x2\x2\x241\x63\x3\x2\x2\x2\x242\x243\t\xE\x2\x2\x243"+ - "\x65\x3\x2\x2\x2\x244\x245\a\x99\x2\x2\x245g\x3\x2\x2\x2\x246\x247\t\xF"+ - "\x2\x2\x247i\x3\x2\x2\x2\x248\x24A\t\x10\x2\x2\x249\x248\x3\x2\x2\x2\x24A"+ - "\x24B\x3\x2\x2\x2\x24B\x249\x3\x2\x2\x2\x24B\x24C\x3\x2\x2\x2\x24Ck\x3"+ - "\x2\x2\x2Vquy\x86\x90\x99\x9D\xA4\xA8\xAB\xB0\xB5\xBB\xBF\xC6\xCA\xCE"+ - "\xD3\xD7\xDC\xE0\xE5\xE9\xEE\xF2\xF7\xFB\x100\x104\x109\x10D\x112\x116"+ - "\x11B\x11F\x124\x128\x12D\x131\x134\x136\x13E\x140\x146\x14A\x15E\x162"+ - "\x166\x169\x16C\x175\x185\x187\x191\x196\x19A\x19E\x1A1\x1A4\x1B7\x1BC"+ - "\x1BF\x1C3\x1C7\x1CC\x1CF\x1D3\x1D7\x1DB\x1E3\x1E7\x1EC\x1F1\x1F5\x1FB"+ - "\x1FF\x207\x213\x217\x21F\x229\x235\x240\x24B"; + "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37"+ + "\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x5\x3t\n\x3\x3\x4\x3\x4\x5\x4x\n\x4\x3"+ + "\x5\x3\x5\x5\x5|\n\x5\x3\x6\x3\x6\x3\a\x3\a\x3\a\x3\b\x3\b\x3\b\x3\b\x3"+ + "\b\x3\b\x3\b\x3\b\x5\b\x8B\n\b\x3\t\x3\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3\n"+ + "\x3\n\x3\n\x5\n\x97\n\n\x3\v\x3\v\x3\f\x3\f\x3\r\x3\r\x3\r\x5\r\xA0\n"+ + "\r\x3\r\x3\r\x5\r\xA4\n\r\x3\r\x3\r\x3\r\x3\r\x3\r\x5\r\xAB\n\r\x3\r\x3"+ + "\r\x5\r\xAF\n\r\x3\r\x5\r\xB2\n\r\x3\xE\x3\xE\x3\xE\x5\xE\xB7\n\xE\x3"+ + "\xE\x3\xE\x3\xE\x5\xE\xBC\n\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xC2\n\xE"+ + "\x3\xE\x3\xE\x5\xE\xC6\n\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xCD\n"+ + "\xE\x3\xE\x3\xE\x5\xE\xD1\n\xE\x3\xE\x3\xE\x5\xE\xD5\n\xE\x3\xE\x3\xE"+ + "\x3\xE\x5\xE\xDA\n\xE\x3\xE\x3\xE\x5\xE\xDE\n\xE\x3\xE\x3\xE\x3\xE\x5"+ + "\xE\xE3\n\xE\x3\xE\x3\xE\x5\xE\xE7\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xEC\n"+ + "\xE\x3\xE\x3\xE\x5\xE\xF0\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xF5\n\xE\x3\xE"+ + "\x3\xE\x5\xE\xF9\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xFE\n\xE\x3\xE\x3\xE\x5"+ + "\xE\x102\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x107\n\xE\x3\xE\x3\xE\x5\xE\x10B"+ + "\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x110\n\xE\x3\xE\x3\xE\x5\xE\x114\n\xE\x3"+ + "\xE\x3\xE\x3\xE\x5\xE\x119\n\xE\x3\xE\x3\xE\x5\xE\x11D\n\xE\x3\xE\x3\xE"+ + "\x3\xE\x5\xE\x122\n\xE\x3\xE\x3\xE\x5\xE\x126\n\xE\x3\xE\x3\xE\x3\xE\x5"+ + "\xE\x12B\n\xE\x3\xE\x3\xE\x5\xE\x12F\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x134"+ + "\n\xE\x3\xE\x3\xE\x5\xE\x138\n\xE\x3\xE\a\xE\x13B\n\xE\f\xE\xE\xE\x13E"+ + "\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x145\n\xF\x5\xF\x147\n\xF\x3"+ + "\x10\x3\x10\x3\x11\x3\x11\x5\x11\x14D\n\x11\x3\x11\x3\x11\x5\x11\x151"+ + "\n\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12"+ + "\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14"+ + "\x165\n\x14\x3\x14\x3\x14\x5\x14\x169\n\x14\x3\x14\x3\x14\x5\x14\x16D"+ + "\n\x14\x3\x14\x5\x14\x170\n\x14\x3\x14\x5\x14\x173\n\x14\x3\x14\x3\x14"+ + "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x17C\n\x14\x3\x14\x3\x14\x3"+ + "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3"+ + "\x14\x3\x14\a\x14\x18C\n\x14\f\x14\xE\x14\x18F\v\x14\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x198\n\x15\x3\x15\x3\x15\x3\x15"+ + "\x5\x15\x19D\n\x15\x3\x16\x3\x16\x5\x16\x1A1\n\x16\x3\x16\x3\x16\x5\x16"+ + "\x1A5\n\x16\x3\x16\x5\x16\x1A8\n\x16\x3\x16\x5\x16\x1AB\n\x16\x3\x16\x3"+ + "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3"+ + "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x1BE\n\x17\x3\x18\x3\x18"+ + "\x3\x19\x5\x19\x1C3\n\x19\x3\x19\x5\x19\x1C6\n\x19\x3\x19\x3\x19\x5\x19"+ + "\x1CA\n\x19\a\x19\x1CC\n\x19\f\x19\xE\x19\x1CF\v\x19\x3\x19\x3\x19\x5"+ + "\x19\x1D3\n\x19\x3\x19\x5\x19\x1D6\n\x19\x3\x19\x3\x19\x5\x19\x1DA\n\x19"+ + "\a\x19\x1DC\n\x19\f\x19\xE\x19\x1DF\v\x19\x3\x19\x5\x19\x1E2\n\x19\x3"+ + "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x5\x1C\x1EA\n\x1C\x3\x1C\x3\x1C"+ + "\x5\x1C\x1EE\n\x1C\x3\x1C\a\x1C\x1F1\n\x1C\f\x1C\xE\x1C\x1F4\v\x1C\x3"+ + "\x1D\x3\x1D\x5\x1D\x1F8\n\x1D\x3\x1D\x3\x1D\x5\x1D\x1FC\n\x1D\x3\x1D\x3"+ + "\x1D\x3\x1E\x3\x1E\x5\x1E\x202\n\x1E\x3\x1E\x3\x1E\x5\x1E\x206\n\x1E\x3"+ + "\x1F\x3\x1F\x3 \x3 \x3!\x3!\x5!\x20E\n!\x3\"\x3\"\x3\"\x3#\x3#\x3#\x3"+ + "$\x3$\x3%\x3%\x5%\x21A\n%\x3&\x3&\x5&\x21E\n&\x3\'\x3\'\x3\'\x3\'\x3("+ + "\x3(\x5(\x226\n(\x3)\x3)\x3)\x3)\x3)\x3)\x3)\x3)\x5)\x230\n)\x3*\x3*\x3"+ + "+\x3+\x3,\x3,\x3-\x3-\x3.\x3.\x5.\x23C\n.\x3/\x3/\x3\x30\x3\x30\x3\x31"+ + "\x3\x31\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x5\x33\x249\n\x33\x3\x34\x3"+ + "\x34\x3\x35\x3\x35\x3\x36\x3\x36\x3\x37\x6\x37\x252\n\x37\r\x37\xE\x37"+ + "\x253\x3\x37\x2\x2\x4\x1A&\x38\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2"+ + "\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2"+ + "&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2"+ + "\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2"+ + "`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2\x2\x12\x5\x2,,.\x32\xEC\xEC\x5\x2"+ + "==II\xCC\xCC\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82"+ + "\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2\xF6\xF9(\x2\x18\x18$$\x33\x33\x39"+ + "\x39==\x42\x43GHKXZ[^_\x63\x63\x65\x65hjlsv}\x7F\x7F\x81\x81\x86\x86\x88"+ + "\x89\x8C\x90\x96\x96\x9B\x9C\x9E\x9E\xA5\xA5\xA8\xA9\xAE\xB0\xB2\xB5\xB7"+ + "\xB9\xBB\xBB\xBE\xBF\xC1\xC1\xC3\xC3\xC6\xC8\xCA\xCA\xD1\xD1\xD4\xD4\xD8"+ + "\xDB\xDD\xDD\x12\x2\x4\x4::?@\x43\x43]^\x80\x80\x97\x97\x9F\x9F\xA6\xA7"+ + "\xC3\xC3\xC5\xC5\xCB\xCB\xCD\xCD\xCF\xCF\xD5\xD5\xDC\xDD\r\x2\x34\x34"+ + "\x36\x36kk~~\x82\x82\x8B\x8B\x94\x94\x97\x98\xA4\xA4\xD2\xD2\xDE\xDE\f"+ + "\x2\x3\x3\x6\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x92\x92\t\x2"+ + "\x5\x5\r\r\x1A\x1A\x1C\x1C&&((\x81\x81\r\x2\x13\x13\x1F >>\x41\x41JJ\\"+ + "\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6\x17\x2\x35\x35\x37\x38;<\x44"+ + "\x46YYuu\x84\x85\x8A\x8A\x93\x93\x95\x95\x9B\x9B\xB1\xB1\xBA\xBA\xBC\xBD"+ + "\xC0\xC0\xC2\xC2\xCB\xCB\xCE\xCE\xD3\xD3\xD7\xD7\x107\x107\x4\x2tt\xD0"+ + "\xD0\x4\x2``\x9A\x9A\x4\x2\x100\x100\x102\x102\x29E\x2n\x3\x2\x2\x2\x4"+ + "s\x3\x2\x2\x2\x6w\x3\x2\x2\x2\b{\x3\x2\x2\x2\n}\x3\x2\x2\x2\f\x7F\x3\x2"+ + "\x2\x2\xE\x8A\x3\x2\x2\x2\x10\x8C\x3\x2\x2\x2\x12\x96\x3\x2\x2\x2\x14"+ + "\x98\x3\x2\x2\x2\x16\x9A\x3\x2\x2\x2\x18\xB1\x3\x2\x2\x2\x1A\xCC\x3\x2"+ + "\x2\x2\x1C\x146\x3\x2\x2\x2\x1E\x148\x3\x2\x2\x2 \x14A\x3\x2\x2\x2\"\x154"+ + "\x3\x2\x2\x2$\x15C\x3\x2\x2\x2&\x164\x3\x2\x2\x2(\x19C\x3\x2\x2\x2*\x19E"+ + "\x3\x2\x2\x2,\x1BD\x3\x2\x2\x2.\x1BF\x3\x2\x2\x2\x30\x1E1\x3\x2\x2\x2"+ + "\x32\x1E3\x3\x2\x2\x2\x34\x1E5\x3\x2\x2\x2\x36\x1E7\x3\x2\x2\x2\x38\x1F5"+ + "\x3\x2\x2\x2:\x205\x3\x2\x2\x2<\x207\x3\x2\x2\x2>\x209\x3\x2\x2\x2@\x20D"+ + "\x3\x2\x2\x2\x42\x20F\x3\x2\x2\x2\x44\x212\x3\x2\x2\x2\x46\x215\x3\x2"+ + "\x2\x2H\x219\x3\x2\x2\x2J\x21D\x3\x2\x2\x2L\x21F\x3\x2\x2\x2N\x225\x3"+ + "\x2\x2\x2P\x22F\x3\x2\x2\x2R\x231\x3\x2\x2\x2T\x233\x3\x2\x2\x2V\x235"+ + "\x3\x2\x2\x2X\x237\x3\x2\x2\x2Z\x23B\x3\x2\x2\x2\\\x23D\x3\x2\x2\x2^\x23F"+ + "\x3\x2\x2\x2`\x241\x3\x2\x2\x2\x62\x243\x3\x2\x2\x2\x64\x248\x3\x2\x2"+ + "\x2\x66\x24A\x3\x2\x2\x2h\x24C\x3\x2\x2\x2j\x24E\x3\x2\x2\x2l\x251\x3"+ + "\x2\x2\x2no\x5\x1A\xE\x2op\a\x2\x2\x3p\x3\x3\x2\x2\x2qt\x5\x6\x4\x2rt"+ + "\x5\b\x5\x2sq\x3\x2\x2\x2sr\x3\x2\x2\x2t\x5\x3\x2\x2\x2ux\x5\xE\b\x2v"+ + "x\x5\x10\t\x2wu\x3\x2\x2\x2wv\x3\x2\x2\x2x\a\x3\x2\x2\x2y|\x5\n\x6\x2"+ + "z|\x5\f\a\x2{y\x3\x2\x2\x2{z\x3\x2\x2\x2|\t\x3\x2\x2\x2}~\x5P)\x2~\v\x3"+ + "\x2\x2\x2\x7F\x80\x5P)\x2\x80\x81\x5\x14\v\x2\x81\r\x3\x2\x2\x2\x82\x8B"+ + "\a\x101\x2\x2\x83\x8B\a\x105\x2\x2\x84\x8B\x5\\/\x2\x85\x8B\x5^\x30\x2"+ + "\x86\x8B\x5\x16\f\x2\x87\x8B\a\x106\x2\x2\x88\x8B\x5\x62\x32\x2\x89\x8B"+ + "\am\x2\x2\x8A\x82\x3\x2\x2\x2\x8A\x83\x3\x2\x2\x2\x8A\x84\x3\x2\x2\x2"+ + "\x8A\x85\x3\x2\x2\x2\x8A\x86\x3\x2\x2\x2\x8A\x87\x3\x2\x2\x2\x8A\x88\x3"+ + "\x2\x2\x2\x8A\x89\x3\x2\x2\x2\x8B\xF\x3\x2\x2\x2\x8C\x8D\x5\x12\n\x2\x8D"+ + "\x8E\x5\x14\v\x2\x8E\x11\x3\x2\x2\x2\x8F\x97\a\x101\x2\x2\x90\x97\x5\\"+ + "/\x2\x91\x97\x5^\x30\x2\x92\x97\x5\x16\f\x2\x93\x97\a\x106\x2\x2\x94\x97"+ + "\x5\x62\x32\x2\x95\x97\am\x2\x2\x96\x8F\x3\x2\x2\x2\x96\x90\x3\x2\x2\x2"+ + "\x96\x91\x3\x2\x2\x2\x96\x92\x3\x2\x2\x2\x96\x93\x3\x2\x2\x2\x96\x94\x3"+ + "\x2\x2\x2\x96\x95\x3\x2\x2\x2\x97\x13\x3\x2\x2\x2\x98\x99\t\x2\x2\x2\x99"+ + "\x15\x3\x2\x2\x2\x9A\x9B\t\x3\x2\x2\x9B\x17\x3\x2\x2\x2\x9C\xB2\x5`\x31"+ + "\x2\x9D\x9F\a\xF3\x2\x2\x9E\xA0\x5l\x37\x2\x9F\x9E\x3\x2\x2\x2\x9F\xA0"+ + "\x3\x2\x2\x2\xA0\xA1\x3\x2\x2\x2\xA1\xA3\x5`\x31\x2\xA2\xA4\x5l\x37\x2"+ + "\xA3\xA2\x3\x2\x2\x2\xA3\xA4\x3\x2\x2\x2\xA4\xA5\x3\x2\x2\x2\xA5\xA6\a"+ + "\xF4\x2\x2\xA6\xB2\x3\x2\x2\x2\xA7\xB2\a\x106\x2\x2\xA8\xAA\a\xF3\x2\x2"+ + "\xA9\xAB\x5l\x37\x2\xAA\xA9\x3\x2\x2\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAC\x3"+ + "\x2\x2\x2\xAC\xAE\a\x106\x2\x2\xAD\xAF\x5l\x37\x2\xAE\xAD\x3\x2\x2\x2"+ + "\xAE\xAF\x3\x2\x2\x2\xAF\xB0\x3\x2\x2\x2\xB0\xB2\a\xF4\x2\x2\xB1\x9C\x3"+ + "\x2\x2\x2\xB1\x9D\x3\x2\x2\x2\xB1\xA7\x3\x2\x2\x2\xB1\xA8\x3\x2\x2\x2"+ + "\xB2\x19\x3\x2\x2\x2\xB3\xB4\b\xE\x1\x2\xB4\xB6\a\xE8\x2\x2\xB5\xB7\x5"+ + "l\x37\x2\xB6\xB5\x3\x2\x2\x2\xB6\xB7\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2\xB8"+ + "\xCD\x5\x1A\xE\x10\xB9\xBB\a\x98\x2\x2\xBA\xBC\x5l\x37\x2\xBB\xBA\x3\x2"+ + "\x2\x2\xBB\xBC\x3\x2\x2\x2\xBC\xBD\x3\x2\x2\x2\xBD\xCD\x5\x1A\xE\t\xBE"+ + "\xCD\x5&\x14\x2\xBF\xC1\a\xE6\x2\x2\xC0\xC2\x5l\x37\x2\xC1\xC0\x3\x2\x2"+ + "\x2\xC1\xC2\x3\x2\x2\x2\xC2\xC3\x3\x2\x2\x2\xC3\xC5\x5\x1A\xE\x2\xC4\xC6"+ + "\x5l\x37\x2\xC5\xC4\x3\x2\x2\x2\xC5\xC6\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2"+ + "\xC7\xC8\a\xED\x2\x2\xC8\xCD\x3\x2\x2\x2\xC9\xCD\x5\"\x12\x2\xCA\xCD\x5"+ + "$\x13\x2\xCB\xCD\x5\x1C\xF\x2\xCC\xB3\x3\x2\x2\x2\xCC\xB9\x3\x2\x2\x2"+ + "\xCC\xBE\x3\x2\x2\x2\xCC\xBF\x3\x2\x2\x2\xCC\xC9\x3\x2\x2\x2\xCC\xCA\x3"+ + "\x2\x2\x2\xCC\xCB\x3\x2\x2\x2\xCD\x13C\x3\x2\x2\x2\xCE\xD0\f\x11\x2\x2"+ + "\xCF\xD1\x5l\x37\x2\xD0\xCF\x3\x2\x2\x2\xD0\xD1\x3\x2\x2\x2\xD1\xD2\x3"+ + "\x2\x2\x2\xD2\xD4\a\xEC\x2\x2\xD3\xD5\x5l\x37\x2\xD4\xD3\x3\x2\x2\x2\xD4"+ + "\xD5\x3\x2\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\x13B\x5\x1A\xE\x12\xD7\xD9\f"+ + "\xF\x2\x2\xD8\xDA\x5l\x37\x2\xD9\xD8\x3\x2\x2\x2\xD9\xDA\x3\x2\x2\x2\xDA"+ + "\xDB\x3\x2\x2\x2\xDB\xDD\t\x4\x2\x2\xDC\xDE\x5l\x37\x2\xDD\xDC\x3\x2\x2"+ + "\x2\xDD\xDE\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\x13B\x5\x1A\xE\x10\xE0"+ + "\xE2\f\xE\x2\x2\xE1\xE3\x5l\x37\x2\xE2\xE1\x3\x2\x2\x2\xE2\xE3\x3\x2\x2"+ + "\x2\xE3\xE4\x3\x2\x2\x2\xE4\xE6\a\xE1\x2\x2\xE5\xE7\x5l\x37\x2\xE6\xE5"+ + "\x3\x2\x2\x2\xE6\xE7\x3\x2\x2\x2\xE7\xE8\x3\x2\x2\x2\xE8\x13B\x5\x1A\xE"+ + "\xF\xE9\xEB\f\r\x2\x2\xEA\xEC\x5l\x37\x2\xEB\xEA\x3\x2\x2\x2\xEB\xEC\x3"+ + "\x2\x2\x2\xEC\xED\x3\x2\x2\x2\xED\xEF\a\x94\x2\x2\xEE\xF0\x5l\x37\x2\xEF"+ + "\xEE\x3\x2\x2\x2\xEF\xF0\x3\x2\x2\x2\xF0\xF1\x3\x2\x2\x2\xF1\x13B\x5\x1A"+ + "\xE\xE\xF2\xF4\f\f\x2\x2\xF3\xF5\x5l\x37\x2\xF4\xF3\x3\x2\x2\x2\xF4\xF5"+ + "\x3\x2\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF8\t\x5\x2\x2\xF7\xF9\x5l\x37\x2"+ + "\xF8\xF7\x3\x2\x2\x2\xF8\xF9\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x13B"+ + "\x5\x1A\xE\r\xFB\xFD\f\v\x2\x2\xFC\xFE\x5l\x37\x2\xFD\xFC\x3\x2\x2\x2"+ + "\xFD\xFE\x3\x2\x2\x2\xFE\xFF\x3\x2\x2\x2\xFF\x101\a\x32\x2\x2\x100\x102"+ + "\x5l\x37\x2\x101\x100\x3\x2\x2\x2\x101\x102\x3\x2\x2\x2\x102\x103\x3\x2"+ + "\x2\x2\x103\x13B\x5\x1A\xE\f\x104\x106\f\n\x2\x2\x105\x107\x5l\x37\x2"+ + "\x106\x105\x3\x2\x2\x2\x106\x107\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108"+ + "\x10A\t\x6\x2\x2\x109\x10B\x5l\x37\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B"+ + "\x3\x2\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x13B\x5\x1A\xE\v\x10D\x10F\f\b"+ + "\x2\x2\x10E\x110\x5l\x37\x2\x10F\x10E\x3\x2\x2\x2\x10F\x110\x3\x2\x2\x2"+ + "\x110\x111\x3\x2\x2\x2\x111\x113\a\x36\x2\x2\x112\x114\x5l\x37\x2\x113"+ + "\x112\x3\x2\x2\x2\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x13B"+ + "\x5\x1A\xE\t\x116\x118\f\a\x2\x2\x117\x119\x5l\x37\x2\x118\x117\x3\x2"+ + "\x2\x2\x118\x119\x3\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11C\a\xA4\x2"+ + "\x2\x11B\x11D\x5l\x37\x2\x11C\x11B\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D"+ + "\x11E\x3\x2\x2\x2\x11E\x13B\x5\x1A\xE\b\x11F\x121\f\x6\x2\x2\x120\x122"+ + "\x5l\x37\x2\x121\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2"+ + "\x2\x2\x123\x125\a\xDE\x2\x2\x124\x126\x5l\x37\x2\x125\x124\x3\x2\x2\x2"+ + "\x125\x126\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x13B\x5\x1A\xE\a\x128"+ + "\x12A\f\x5\x2\x2\x129\x12B\x5l\x37\x2\x12A\x129\x3\x2\x2\x2\x12A\x12B"+ + "\x3\x2\x2\x2\x12B\x12C\x3\x2\x2\x2\x12C\x12E\ak\x2\x2\x12D\x12F\x5l\x37"+ + "\x2\x12E\x12D\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x130\x3\x2\x2\x2"+ + "\x130\x13B\x5\x1A\xE\x6\x131\x133\f\x4\x2\x2\x132\x134\x5l\x37\x2\x133"+ + "\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x137"+ + "\a~\x2\x2\x136\x138\x5l\x37\x2\x137\x136\x3\x2\x2\x2\x137\x138\x3\x2\x2"+ + "\x2\x138\x139\x3\x2\x2\x2\x139\x13B\x5\x1A\xE\x5\x13A\xCE\x3\x2\x2\x2"+ + "\x13A\xD7\x3\x2\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xE9\x3\x2\x2\x2\x13A\xF2"+ + "\x3\x2\x2\x2\x13A\xFB\x3\x2\x2\x2\x13A\x104\x3\x2\x2\x2\x13A\x10D\x3\x2"+ + "\x2\x2\x13A\x116\x3\x2\x2\x2\x13A\x11F\x3\x2\x2\x2\x13A\x128\x3\x2\x2"+ + "\x2\x13A\x131\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2"+ + "\x13C\x13D\x3\x2\x2\x2\x13D\x1B\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F"+ + "\x147\x5\x1E\x10\x2\x140\x147\a\xFA\x2\x2\x141\x147\a\xF5\x2\x2\x142\x144"+ + "\x5\x64\x33\x2\x143\x145\x5\x14\v\x2\x144\x143\x3\x2\x2\x2\x144\x145\x3"+ + "\x2\x2\x2\x145\x147\x3\x2\x2\x2\x146\x13F\x3\x2\x2\x2\x146\x140\x3\x2"+ + "\x2\x2\x146\x141\x3\x2\x2\x2\x146\x142\x3\x2\x2\x2\x147\x1D\x3\x2\x2\x2"+ + "\x148\x149\t\a\x2\x2\x149\x1F\x3\x2\x2\x2\x14A\x14C\a\xE6\x2\x2\x14B\x14D"+ + "\x5l\x37\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2"+ + "\x2\x2\x14E\x150\x5\x1A\xE\x2\x14F\x151\x5l\x37\x2\x150\x14F\x3\x2\x2"+ + "\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\a\xED\x2\x2"+ + "\x153!\x3\x2\x2\x2\x154\x155\a\xD2\x2\x2\x155\x156\x5l\x37\x2\x156\x157"+ + "\x5\x1A\xE\x2\x157\x158\x5l\x37\x2\x158\x159\a\x82\x2\x2\x159\x15A\x5"+ + "l\x37\x2\x15A\x15B\x5H%\x2\x15B#\x3\x2\x2\x2\x15C\x15D\a\x97\x2\x2\x15D"+ + "\x15E\x5l\x37\x2\x15E\x15F\x5H%\x2\x15F%\x3\x2\x2\x2\x160\x161\b\x14\x1"+ + "\x2\x161\x165\x5> \x2\x162\x165\x5<\x1F\x2\x163\x165\x5@!\x2\x164\x160"+ + "\x3\x2\x2\x2\x164\x162\x3\x2\x2\x2\x164\x163\x3\x2\x2\x2\x165\x18D\x3"+ + "\x2\x2\x2\x166\x168\f\v\x2\x2\x167\x169\x5l\x37\x2\x168\x167\x3\x2\x2"+ + "\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3\x2\x2\x2\x16A\x16C\a\xE6\x2\x2"+ + "\x16B\x16D\x5l\x37\x2\x16C\x16B\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D"+ + "\x16F\x3\x2\x2\x2\x16E\x170\x5.\x18\x2\x16F\x16E\x3\x2\x2\x2\x16F\x170"+ + "\x3\x2\x2\x2\x170\x172\x3\x2\x2\x2\x171\x173\x5l\x37\x2\x172\x171\x3\x2"+ + "\x2\x2\x172\x173\x3\x2\x2\x2\x173\x174\x3\x2\x2\x2\x174\x18C\a\xED\x2"+ + "\x2\x175\x176\f\n\x2\x2\x176\x177\a-\x2\x2\x177\x18C\x5\x4\x3\x2\x178"+ + "\x179\f\t\x2\x2\x179\x17B\a\x102\x2\x2\x17A\x17C\x5l\x37\x2\x17B\x17A"+ + "\x3\x2\x2\x2\x17B\x17C\x3\x2\x2\x2\x17C\x17D\x3\x2\x2\x2\x17D\x17E\a-"+ + "\x2\x2\x17E\x18C\x5\x4\x3\x2\x17F\x180\f\b\x2\x2\x180\x181\a,\x2\x2\x181"+ + "\x18C\x5\x4\x3\x2\x182\x183\f\a\x2\x2\x183\x184\a\x102\x2\x2\x184\x185"+ + "\a,\x2\x2\x185\x18C\x5\x4\x3\x2\x186\x187\f\x6\x2\x2\x187\x188\a\x102"+ + "\x2\x2\x188\x189\a,\x2\x2\x189\x18A\a\x102\x2\x2\x18A\x18C\x5\x4\x3\x2"+ + "\x18B\x166\x3\x2\x2\x2\x18B\x175\x3\x2\x2\x2\x18B\x178\x3\x2\x2\x2\x18B"+ + "\x17F\x3\x2\x2\x2\x18B\x182\x3\x2\x2\x2\x18B\x186\x3\x2\x2\x2\x18C\x18F"+ + "\x3\x2\x2\x2\x18D\x18B\x3\x2\x2\x2\x18D\x18E\x3\x2\x2\x2\x18E\'\x3\x2"+ + "\x2\x2\x18F\x18D\x3\x2\x2\x2\x190\x191\x5&\x14\x2\x191\x192\a-\x2\x2\x192"+ + "\x193\x5\x4\x3\x2\x193\x19D\x3\x2\x2\x2\x194\x195\x5&\x14\x2\x195\x197"+ + "\a\x102\x2\x2\x196\x198\x5l\x37\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3"+ + "\x2\x2\x2\x198\x199\x3\x2\x2\x2\x199\x19A\a-\x2\x2\x19A\x19B\x5\x4\x3"+ + "\x2\x19B\x19D\x3\x2\x2\x2\x19C\x190\x3\x2\x2\x2\x19C\x194\x3\x2\x2\x2"+ + "\x19D)\x3\x2\x2\x2\x19E\x1A0\x5&\x14\x2\x19F\x1A1\x5l\x37\x2\x1A0\x19F"+ + "\x3\x2\x2\x2\x1A0\x1A1\x3\x2\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A4\a\xE6"+ + "\x2\x2\x1A3\x1A5\x5l\x37\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2"+ + "\x1A5\x1A7\x3\x2\x2\x2\x1A6\x1A8\x5.\x18\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7"+ + "\x1A8\x3\x2\x2\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1AB\x5l\x37\x2\x1AA\x1A9"+ + "\x3\x2\x2\x2\x1AA\x1AB\x3\x2\x2\x2\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\a\xED"+ + "\x2\x2\x1AD+\x3\x2\x2\x2\x1AE\x1AF\x5&\x14\x2\x1AF\x1B0\a,\x2\x2\x1B0"+ + "\x1B1\x5\x4\x3\x2\x1B1\x1BE\x3\x2\x2\x2\x1B2\x1B3\x5&\x14\x2\x1B3\x1B4"+ + "\a\x102\x2\x2\x1B4\x1B5\a,\x2\x2\x1B5\x1B6\x5\x4\x3\x2\x1B6\x1BE\x3\x2"+ + "\x2\x2\x1B7\x1B8\x5&\x14\x2\x1B8\x1B9\a\x102\x2\x2\x1B9\x1BA\a,\x2\x2"+ + "\x1BA\x1BB\a\x102\x2\x2\x1BB\x1BC\x5\x4\x3\x2\x1BC\x1BE\x3\x2\x2\x2\x1BD"+ + "\x1AE\x3\x2\x2\x2\x1BD\x1B2\x3\x2\x2\x2\x1BD\x1B7\x3\x2\x2\x2\x1BE-\x3"+ + "\x2\x2\x2\x1BF\x1C0\x5\x30\x19\x2\x1C0/\x3\x2\x2\x2\x1C1\x1C3\x5\x32\x1A"+ + "\x2\x1C2\x1C1\x3\x2\x2\x2\x1C2\x1C3\x3\x2\x2\x2\x1C3\x1C5\x3\x2\x2\x2"+ + "\x1C4\x1C6\x5l\x37\x2\x1C5\x1C4\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2\x1C6"+ + "\x1C7\x3\x2\x2\x2\x1C7\x1C9\a)\x2\x2\x1C8\x1CA\x5l\x37\x2\x1C9\x1C8\x3"+ + "\x2\x2\x2\x1C9\x1CA\x3\x2\x2\x2\x1CA\x1CC\x3\x2\x2\x2\x1CB\x1C2\x3\x2"+ + "\x2\x2\x1CC\x1CF\x3\x2\x2\x2\x1CD\x1CB\x3\x2\x2\x2\x1CD\x1CE\x3\x2\x2"+ + "\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CD\x3\x2\x2\x2\x1D0\x1E2\x5\x34\x1B\x2"+ + "\x1D1\x1D3\x5\x32\x1A\x2\x1D2\x1D1\x3\x2\x2\x2\x1D2\x1D3\x3\x2\x2\x2\x1D3"+ + "\x1D5\x3\x2\x2\x2\x1D4\x1D6\x5l\x37\x2\x1D5\x1D4\x3\x2\x2\x2\x1D5\x1D6"+ + "\x3\x2\x2\x2\x1D6\x1D7\x3\x2\x2\x2\x1D7\x1D9\a)\x2\x2\x1D8\x1DA\x5l\x37"+ + "\x2\x1D9\x1D8\x3\x2\x2\x2\x1D9\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3\x2\x2\x2"+ + "\x1DB\x1D2\x3\x2\x2\x2\x1DC\x1DF\x3\x2\x2\x2\x1DD\x1DB\x3\x2\x2\x2\x1DD"+ + "\x1DE\x3\x2\x2\x2\x1DE\x1E0\x3\x2\x2\x2\x1DF\x1DD\x3\x2\x2\x2\x1E0\x1E2"+ + "\x5\x36\x1C\x2\x1E1\x1CD\x3\x2\x2\x2\x1E1\x1DD\x3\x2\x2\x2\x1E2\x31\x3"+ + "\x2\x2\x2\x1E3\x1E4\x5:\x1E\x2\x1E4\x33\x3\x2\x2\x2\x1E5\x1E6\x5:\x1E"+ + "\x2\x1E6\x35\x3\x2\x2\x2\x1E7\x1F2\x5\x38\x1D\x2\x1E8\x1EA\x5l\x37\x2"+ + "\x1E9\x1E8\x3\x2\x2\x2\x1E9\x1EA\x3\x2\x2\x2\x1EA\x1EB\x3\x2\x2\x2\x1EB"+ + "\x1ED\a)\x2\x2\x1EC\x1EE\x5l\x37\x2\x1ED\x1EC\x3\x2\x2\x2\x1ED\x1EE\x3"+ + "\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF\x1F1\x5\x38\x1D\x2\x1F0\x1E9\x3\x2"+ + "\x2\x2\x1F1\x1F4\x3\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F2\x1F3\x3\x2\x2"+ + "\x2\x1F3\x37\x3\x2\x2\x2\x1F4\x1F2\x3\x2\x2\x2\x1F5\x1F7\x5\x4\x3\x2\x1F6"+ + "\x1F8\x5l\x37\x2\x1F7\x1F6\x3\x2\x2\x2\x1F7\x1F8\x3\x2\x2\x2\x1F8\x1F9"+ + "\x3\x2\x2\x2\x1F9\x1FB\a\xDF\x2\x2\x1FA\x1FC\x5l\x37\x2\x1FB\x1FA\x3\x2"+ + "\x2\x2\x1FB\x1FC\x3\x2\x2\x2\x1FC\x1FD\x3\x2\x2\x2\x1FD\x1FE\x5:\x1E\x2"+ + "\x1FE\x39\x3\x2\x2\x2\x1FF\x200\a?\x2\x2\x200\x202\x5l\x37\x2\x201\x1FF"+ + "\x3\x2\x2\x2\x201\x202\x3\x2\x2\x2\x202\x203\x3\x2\x2\x2\x203\x206\x5"+ + "\x1A\xE\x2\x204\x206\x5L\'\x2\x205\x201\x3\x2\x2\x2\x205\x204\x3\x2\x2"+ + "\x2\x206;\x3\x2\x2\x2\x207\x208\x5\x6\x4\x2\x208=\x3\x2\x2\x2\x209\x20A"+ + "\a\x91\x2\x2\x20A?\x3\x2\x2\x2\x20B\x20E\x5\x42\"\x2\x20C\x20E\x5\x44"+ + "#\x2\x20D\x20B\x3\x2\x2\x2\x20D\x20C\x3\x2\x2\x2\x20E\x41\x3\x2\x2\x2"+ + "\x20F\x210\a-\x2\x2\x210\x211\x5\x4\x3\x2\x211\x43\x3\x2\x2\x2\x212\x213"+ + "\a,\x2\x2\x213\x214\x5\x4\x3\x2\x214\x45\x3\x2\x2\x2\x215\x216\x5\x1A"+ + "\xE\x2\x216G\x3\x2\x2\x2\x217\x21A\x5\x18\r\x2\x218\x21A\x5J&\x2\x219"+ + "\x217\x3\x2\x2\x2\x219\x218\x3\x2\x2\x2\x21AI\x3\x2\x2\x2\x21B\x21E\x5"+ + "<\x1F\x2\x21C\x21E\x5(\x15\x2\x21D\x21B\x3\x2\x2\x2\x21D\x21C\x3\x2\x2"+ + "\x2\x21EK\x3\x2\x2\x2\x21F\x220\a\x34\x2\x2\x220\x221\x5l\x37\x2\x221"+ + "\x222\x5N(\x2\x222M\x3\x2\x2\x2\x223\x226\x5(\x15\x2\x224\x226\x5<\x1F"+ + "\x2\x225\x223\x3\x2\x2\x2\x225\x224\x3\x2\x2\x2\x226O\x3\x2\x2\x2\x227"+ + "\x230\x5R*\x2\x228\x230\x5V,\x2\x229\x230\x5X-\x2\x22A\x230\x5^\x30\x2"+ + "\x22B\x230\x5Z.\x2\x22C\x230\x5\x64\x33\x2\x22D\x230\x5T+\x2\x22E\x230"+ + "\x5`\x31\x2\x22F\x227\x3\x2\x2\x2\x22F\x228\x3\x2\x2\x2\x22F\x229\x3\x2"+ + "\x2\x2\x22F\x22A\x3\x2\x2\x2\x22F\x22B\x3\x2\x2\x2\x22F\x22C\x3\x2\x2"+ + "\x2\x22F\x22D\x3\x2\x2\x2\x22F\x22E\x3\x2\x2\x2\x230Q\x3\x2\x2\x2\x231"+ + "\x232\t\b\x2\x2\x232S\x3\x2\x2\x2\x233\x234\a\xB6\x2\x2\x234U\x3\x2\x2"+ + "\x2\x235\x236\t\t\x2\x2\x236W\x3\x2\x2\x2\x237\x238\t\n\x2\x2\x238Y\x3"+ + "\x2\x2\x2\x239\x23C\a\x91\x2\x2\x23A\x23C\x5\\/\x2\x23B\x239\x3\x2\x2"+ + "\x2\x23B\x23A\x3\x2\x2\x2\x23C[\x3\x2\x2\x2\x23D\x23E\t\v\x2\x2\x23E]"+ + "\x3\x2\x2\x2\x23F\x240\t\f\x2\x2\x240_\x3\x2\x2\x2\x241\x242\t\r\x2\x2"+ + "\x242\x61\x3\x2\x2\x2\x243\x244\t\xE\x2\x2\x244\x63\x3\x2\x2\x2\x245\x249"+ + "\x5\x66\x34\x2\x246\x249\x5h\x35\x2\x247\x249\x5j\x36\x2\x248\x245\x3"+ + "\x2\x2\x2\x248\x246\x3\x2\x2\x2\x248\x247\x3\x2\x2\x2\x249\x65\x3\x2\x2"+ + "\x2\x24A\x24B\t\xF\x2\x2\x24Bg\x3\x2\x2\x2\x24C\x24D\a\x99\x2\x2\x24D"+ + "i\x3\x2\x2\x2\x24E\x24F\t\x10\x2\x2\x24Fk\x3\x2\x2\x2\x250\x252\t\x11"+ + "\x2\x2\x251\x250\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253\x251\x3\x2\x2"+ + "\x2\x253\x254\x3\x2\x2\x2\x254m\x3\x2\x2\x2Vsw{\x8A\x96\x9F\xA3\xAA\xAE"+ + "\xB1\xB6\xBB\xC1\xC5\xCC\xD0\xD4\xD9\xDD\xE2\xE6\xEB\xEF\xF4\xF8\xFD\x101"+ + "\x106\x10A\x10F\x113\x118\x11C\x121\x125\x12A\x12E\x133\x137\x13A\x13C"+ + "\x144\x146\x14C\x150\x164\x168\x16C\x16F\x172\x17B\x18B\x18D\x197\x19C"+ + "\x1A0\x1A4\x1A7\x1AA\x1BD\x1C2\x1C5\x1C9\x1CD\x1D2\x1D5\x1D9\x1DD\x1E1"+ + "\x1E9\x1ED\x1F2\x1F7\x1FB\x201\x205\x20D\x219\x21D\x225\x22F\x23B\x248"+ + "\x253"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 index 9fc3fd52a1..1e7123770b 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 @@ -30,9 +30,9 @@ name : untypedName | typedName; reservedIdentifierName : reservedUntypedName | reservedTypedName; reservedUntypedName : reservedIdentifier; reservedTypedName : reservedIdentifier typeSuffix; -untypedName : IDENTIFIER | FOREIGNNAME | reservedProcedureName | specialForm | optionCompareArgument | OBJECT; +untypedName : IDENTIFIER | FOREIGNNAME | reservedProcedureName | specialForm | optionCompareArgument | OBJECT | uncategorizedKeyword | ERROR; typedName : typedNameValue typeSuffix; -typedNameValue : IDENTIFIER | reservedProcedureName | specialForm | optionCompareArgument | OBJECT; +typedNameValue : IDENTIFIER | reservedProcedureName | specialForm | optionCompareArgument | OBJECT | uncategorizedKeyword | ERROR; typeSuffix : PERCENT | AMPERSAND | POW | EXCLAMATIONPOINT | HASH | AT | DOLLAR; optionCompareArgument : BINARY | TEXT | DATABASE; @@ -350,6 +350,16 @@ reservedTypeIdentifier : | STRING | VARIANT ; + +uncategorizedKeyword : + ALIAS | ATTRIBUTE | APPACTIVATE | + BEEP | BEGIN | CLASS | CHDIR | CHDRIVE | COLLECTION | DELETESETTING | + FILECOPY | KILL | LOAD | LIB | MKDIR | NAME | ON | + RANDOMIZE | RMDIR | + SAVEPICTURE | SAVESETTING | SENDKEYS | SETATTR | + TAB | TIME | UNLOAD | VERSION +; + literalIdentifier : booleanLiteralIdentifier | objectLiteralIdentifier | variantLiteralIdentifier; booleanLiteralIdentifier : TRUE | FALSE; objectLiteralIdentifier : NOTHING; diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs index b4b3e50f88..849fa03fee 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs @@ -813,6 +813,19 @@ public virtual void EnterTypeExpression([NotNull] VBAExpressionParser.TypeExpres /// The parse tree. public virtual void ExitTypeExpression([NotNull] VBAExpressionParser.TypeExpressionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs index 6a61a8dde9..7cb5f27cb0 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs @@ -692,6 +692,17 @@ public partial class VBAExpressionParserBaseVisitor : AbstractParseTreeV /// The visitor result. public virtual Result VisitTypeExpression([NotNull] VBAExpressionParser.TypeExpressionContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs index b4acec7383..362f8d4cd0 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs @@ -731,6 +731,17 @@ public interface IVBAExpressionParserListener : IParseTreeListener { /// The parse tree. void ExitTypeExpression([NotNull] VBAExpressionParser.TypeExpressionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs index f792681152..9bc02386ca 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs @@ -471,6 +471,13 @@ public interface IVBAExpressionParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitTypeExpression([NotNull] VBAExpressionParser.TypeExpressionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitUncategorizedKeyword([NotNull] VBAExpressionParser.UncategorizedKeywordContext context); + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 25d2137b96..9c9074bb6b 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -137,20 +137,20 @@ public const int RULE_variableStmt = 95, RULE_variableListStmt = 96, RULE_variableSubStmt = 97, RULE_whileWendStmt = 98, RULE_widthStmt = 99, RULE_withStmt = 100, RULE_withStmtExpression = 101, RULE_writeStmt = 102, RULE_fileNumber = 103, RULE_explicitCallStmt = 104, - RULE_eCS_ProcedureCall = 105, RULE_eCS_MemberProcedureCall = 106, RULE_implicitCallStmt_InBlock = 107, - RULE_iCS_B_MemberProcedureCall = 108, RULE_iCS_B_ProcedureCall = 109, - RULE_implicitCallStmt_InStmt = 110, RULE_iCS_S_VariableOrProcedureCall = 111, - RULE_iCS_S_ProcedureOrArrayCall = 112, RULE_iCS_S_MembersCall = 113, RULE_iCS_S_MemberCall = 114, - RULE_iCS_S_DictionaryCall = 115, RULE_argsCall = 116, RULE_argCall = 117, - RULE_dictionaryCallStmt = 118, RULE_argList = 119, RULE_arg = 120, RULE_argDefaultValue = 121, - RULE_subscripts = 122, RULE_subscript = 123, RULE_identifier = 124, RULE_asTypeClause = 125, - RULE_baseType = 126, RULE_comparisonOperator = 127, RULE_complexType = 128, - RULE_fieldLength = 129, RULE_letterrange = 130, RULE_lineLabel = 131, - RULE_literal = 132, RULE_numberLiteral = 133, RULE_type = 134, RULE_typeHint = 135, - RULE_visibility = 136, RULE_keyword = 137, RULE_endOfLine = 138, RULE_endOfStatement = 139, - RULE_remComment = 140, RULE_comment = 141, RULE_annotationList = 142, - RULE_annotation = 143, RULE_annotationName = 144, RULE_annotationArgList = 145, - RULE_annotationArg = 146, RULE_whiteSpace = 147; + RULE_explicitCallStmtExpression = 105, RULE_implicitCallStmt_InBlock = 106, + RULE_iCS_B_MemberProcedureCall = 107, RULE_iCS_B_ProcedureCall = 108, + RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, + RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_MembersCall = 112, RULE_iCS_S_MemberCall = 113, + RULE_iCS_S_DictionaryCall = 114, RULE_argsCall = 115, RULE_argCall = 116, + RULE_dictionaryCallStmt = 117, RULE_argList = 118, RULE_arg = 119, RULE_argDefaultValue = 120, + RULE_subscripts = 121, RULE_subscript = 122, RULE_identifier = 123, RULE_asTypeClause = 124, + RULE_baseType = 125, RULE_comparisonOperator = 126, RULE_complexType = 127, + RULE_fieldLength = 128, RULE_letterrange = 129, RULE_lineLabel = 130, + RULE_literal = 131, RULE_numberLiteral = 132, RULE_type = 133, RULE_typeHint = 134, + RULE_visibility = 135, RULE_keyword = 136, RULE_endOfLine = 137, RULE_endOfStatement = 138, + RULE_remComment = 139, RULE_comment = 140, RULE_annotationList = 141, + RULE_annotation = 142, RULE_annotationName = 143, RULE_annotationArgList = 144, + RULE_annotationArg = 145, RULE_whiteSpace = 146; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", @@ -172,7 +172,7 @@ public const int "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "unloadStmt", "unlockStmt", "valueStmt", "typeOfIsExpression", "variableStmt", "variableListStmt", "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "withStmtExpression", - "writeStmt", "fileNumber", "explicitCallStmt", "eCS_ProcedureCall", "eCS_MemberProcedureCall", + "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", @@ -229,8 +229,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 296; module(); - State = 297; Match(Eof); + State = 294; module(); + State = 295; Match(Eof); } } catch (RecognitionException re) { @@ -300,65 +300,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 300; + State = 298; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 299; whiteSpace(); + State = 297; whiteSpace(); } break; } - State = 302; endOfStatement(); - State = 306; + State = 300; endOfStatement(); + State = 304; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 303; moduleHeader(); - State = 304; endOfStatement(); + State = 301; moduleHeader(); + State = 302; endOfStatement(); } break; } - State = 309; + State = 307; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 308; moduleConfig(); + State = 306; moduleConfig(); } break; } - State = 311; endOfStatement(); - State = 313; + State = 309; endOfStatement(); + State = 311; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 312; moduleAttributes(); + State = 310; moduleAttributes(); } break; } - State = 315; endOfStatement(); - State = 317; + State = 313; endOfStatement(); + State = 315; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 316; moduleDeclarations(); + State = 314; moduleDeclarations(); } break; } - State = 319; endOfStatement(); - State = 321; + State = 317; endOfStatement(); + State = 319; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 320; moduleBody(); + State = 318; moduleBody(); } break; } - State = 323; endOfStatement(); - State = 325; + State = 321; endOfStatement(); + State = 323; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 324; whiteSpace(); + State = 322; whiteSpace(); } } @@ -417,26 +417,26 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 327; Match(VERSION); - State = 328; whiteSpace(); - State = 329; numberLiteral(); - State = 331; + State = 325; Match(VERSION); + State = 326; whiteSpace(); + State = 327; numberLiteral(); + State = 329; switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: { - State = 330; whiteSpace(); + State = 328; whiteSpace(); } break; } - State = 334; + State = 332; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { - State = 333; Match(CLASS); + State = 331; Match(CLASS); } break; } - State = 336; endOfStatement(); + State = 334; endOfStatement(); } } catch (RecognitionException re) { @@ -500,28 +500,28 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 338; Match(BEGIN); - State = 346; + State = 336; Match(BEGIN); + State = 344; switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { case 1: { + State = 337; whiteSpace(); + State = 338; Match(GUIDLITERAL); State = 339; whiteSpace(); - State = 340; Match(GUIDLITERAL); - State = 341; whiteSpace(); - State = 342; identifier(); - State = 344; + State = 340; identifier(); + State = 342; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: { - State = 343; whiteSpace(); + State = 341; whiteSpace(); } break; } } break; } - State = 348; endOfStatement(); - State = 350; + State = 346; endOfStatement(); + State = 348; _errHandler.Sync(this); _alt = 1; do { @@ -529,18 +529,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 349; moduleConfigElement(); + State = 347; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 352; + State = 350; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 354; Match(END); + State = 352; Match(END); } } catch (RecognitionException re) { @@ -603,45 +603,45 @@ public ModuleConfigElementContext moduleConfigElement() { try { EnterOuterAlt(_localctx, 1); { - State = 356; identifier(); - State = 360; + State = 354; identifier(); + State = 358; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 357; whiteSpace(); + State = 355; whiteSpace(); } } - State = 362; + State = 360; _errHandler.Sync(this); _la = _input.La(1); } - State = 363; Match(EQ); - State = 367; + State = 361; Match(EQ); + State = 365; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 364; whiteSpace(); + State = 362; whiteSpace(); } } - State = 369; + State = 367; _errHandler.Sync(this); _la = _input.La(1); } - State = 370; literal(); - State = 373; + State = 368; literal(); + State = 371; switch ( Interpreter.AdaptivePredict(_input,14,_ctx) ) { case 1: { - State = 371; Match(COLON); - State = 372; numberLiteral(); + State = 369; Match(COLON); + State = 370; numberLiteral(); } break; } - State = 375; endOfStatement(); + State = 373; endOfStatement(); } } catch (RecognitionException re) { @@ -696,7 +696,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 380; + State = 378; _errHandler.Sync(this); _alt = 1; do { @@ -704,15 +704,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 377; attributeStmt(); - State = 378; endOfStatement(); + State = 375; attributeStmt(); + State = 376; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 382; + State = 380; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -770,24 +770,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 384; moduleDeclarationsElement(); - State = 390; + State = 382; moduleDeclarationsElement(); + State = 388; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 385; endOfStatement(); - State = 386; moduleDeclarationsElement(); + State = 383; endOfStatement(); + State = 384; moduleDeclarationsElement(); } } } - State = 392; + State = 390; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); } - State = 393; endOfStatement(); + State = 391; endOfStatement(); } } catch (RecognitionException re) { @@ -900,24 +900,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 405; + State = 403; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 395; Match(OPTION_BASE); - State = 396; whiteSpace(); - State = 397; numberLiteral(); + State = 393; Match(OPTION_BASE); + State = 394; whiteSpace(); + State = 395; numberLiteral(); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 399; Match(OPTION_COMPARE); - State = 400; whiteSpace(); - State = 401; + State = 397; Match(OPTION_COMPARE); + State = 398; whiteSpace(); + State = 399; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -929,14 +929,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 403; Match(OPTION_EXPLICIT); + State = 401; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 404; Match(OPTION_PRIVATE_MODULE); + State = 402; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -1004,61 +1004,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 415; + State = 413; switch ( Interpreter.AdaptivePredict(_input,18,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 407; declareStmt(); + State = 405; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 408; enumerationStmt(); + State = 406; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 409; eventStmt(); + State = 407; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 410; constStmt(); + State = 408; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 411; implementsStmt(); + State = 409; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 412; variableStmt(); + State = 410; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 413; moduleOption(); + State = 411; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 414; typeStmt(); + State = 412; typeStmt(); } break; } @@ -1115,24 +1115,24 @@ public ModuleBodyContext moduleBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 417; moduleBodyElement(); - State = 423; + State = 415; moduleBodyElement(); + State = 421; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 418; endOfStatement(); - State = 419; moduleBodyElement(); + State = 416; endOfStatement(); + State = 417; moduleBodyElement(); } } } - State = 425; + State = 423; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); } - State = 426; endOfStatement(); + State = 424; endOfStatement(); } } catch (RecognitionException re) { @@ -1187,40 +1187,40 @@ public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 433; + State = 431; switch ( Interpreter.AdaptivePredict(_input,20,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 428; functionStmt(); + State = 426; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 429; propertyGetStmt(); + State = 427; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 430; propertySetStmt(); + State = 428; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 431; propertyLetStmt(); + State = 429; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 432; subStmt(); + State = 430; subStmt(); } break; } @@ -1287,56 +1287,56 @@ public AttributeStmtContext attributeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 435; Match(ATTRIBUTE); - State = 436; whiteSpace(); - State = 437; implicitCallStmt_InStmt(); - State = 439; + State = 433; Match(ATTRIBUTE); + State = 434; whiteSpace(); + State = 435; implicitCallStmt_InStmt(); + State = 437; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 438; whiteSpace(); + State = 436; whiteSpace(); } } - State = 441; Match(EQ); - State = 443; + State = 439; Match(EQ); + State = 441; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 442; whiteSpace(); + State = 440; whiteSpace(); } } - State = 445; literal(); - State = 456; + State = 443; literal(); + State = 454; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 447; + State = 445; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 446; whiteSpace(); + State = 444; whiteSpace(); } } - State = 449; Match(COMMA); - State = 451; + State = 447; Match(COMMA); + State = 449; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 450; whiteSpace(); + State = 448; whiteSpace(); } } - State = 453; literal(); + State = 451; literal(); } } } - State = 458; + State = 456; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); } @@ -1394,24 +1394,24 @@ public BlockContext block() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 459; blockStmt(); - State = 465; + State = 457; blockStmt(); + State = 463; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 460; endOfStatement(); - State = 461; blockStmt(); + State = 458; endOfStatement(); + State = 459; blockStmt(); } } } - State = 467; + State = 465; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); } - State = 468; endOfStatement(); + State = 466; endOfStatement(); } } catch (RecognitionException re) { @@ -1649,467 +1649,467 @@ public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); EnterRule(_localctx, 26, RULE_blockStmt); try { - State = 536; + State = 534; switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 470; lineLabel(); + State = 468; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 471; appactivateStmt(); + State = 469; appactivateStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 472; attributeStmt(); + State = 470; attributeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 473; beepStmt(); + State = 471; beepStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 474; chdirStmt(); + State = 472; chdirStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 475; chdriveStmt(); + State = 473; chdriveStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 476; closeStmt(); + State = 474; closeStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 477; constStmt(); + State = 475; constStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 478; dateStmt(); + State = 476; dateStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 479; deleteSettingStmt(); + State = 477; deleteSettingStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 480; deftypeStmt(); + State = 478; deftypeStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 481; doLoopStmt(); + State = 479; doLoopStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 482; endStmt(); + State = 480; endStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 483; eraseStmt(); + State = 481; eraseStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 484; errorStmt(); + State = 482; errorStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 485; exitStmt(); + State = 483; exitStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 486; explicitCallStmt(); + State = 484; explicitCallStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 487; filecopyStmt(); + State = 485; filecopyStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 488; forEachStmt(); + State = 486; forEachStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 489; forNextStmt(); + State = 487; forNextStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 490; getStmt(); + State = 488; getStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 491; goSubStmt(); + State = 489; goSubStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 492; goToStmt(); + State = 490; goToStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 493; ifThenElseStmt(); + State = 491; ifThenElseStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 494; implementsStmt(); + State = 492; implementsStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 495; inputStmt(); + State = 493; inputStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 496; killStmt(); + State = 494; killStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 497; letStmt(); + State = 495; letStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 498; lineInputStmt(); + State = 496; lineInputStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 499; loadStmt(); + State = 497; loadStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 500; lockStmt(); + State = 498; lockStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 501; lsetStmt(); + State = 499; lsetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 502; midStmt(); + State = 500; midStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 503; mkdirStmt(); + State = 501; mkdirStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 504; nameStmt(); + State = 502; nameStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 505; onErrorStmt(); + State = 503; onErrorStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 506; onGoToStmt(); + State = 504; onGoToStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 507; onGoSubStmt(); + State = 505; onGoSubStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 508; openStmt(); + State = 506; openStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 509; printStmt(); + State = 507; printStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 510; putStmt(); + State = 508; putStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 511; raiseEventStmt(); + State = 509; raiseEventStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 512; randomizeStmt(); + State = 510; randomizeStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 513; redimStmt(); + State = 511; redimStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 514; resetStmt(); + State = 512; resetStmt(); } break; case 46: EnterOuterAlt(_localctx, 46); { - State = 515; resumeStmt(); + State = 513; resumeStmt(); } break; case 47: EnterOuterAlt(_localctx, 47); { - State = 516; returnStmt(); + State = 514; returnStmt(); } break; case 48: EnterOuterAlt(_localctx, 48); { - State = 517; rmdirStmt(); + State = 515; rmdirStmt(); } break; case 49: EnterOuterAlt(_localctx, 49); { - State = 518; rsetStmt(); + State = 516; rsetStmt(); } break; case 50: EnterOuterAlt(_localctx, 50); { - State = 519; savepictureStmt(); + State = 517; savepictureStmt(); } break; case 51: EnterOuterAlt(_localctx, 51); { - State = 520; saveSettingStmt(); + State = 518; saveSettingStmt(); } break; case 52: EnterOuterAlt(_localctx, 52); { - State = 521; seekStmt(); + State = 519; seekStmt(); } break; case 53: EnterOuterAlt(_localctx, 53); { - State = 522; selectCaseStmt(); + State = 520; selectCaseStmt(); } break; case 54: EnterOuterAlt(_localctx, 54); { - State = 523; sendkeysStmt(); + State = 521; sendkeysStmt(); } break; case 55: EnterOuterAlt(_localctx, 55); { - State = 524; setattrStmt(); + State = 522; setattrStmt(); } break; case 56: EnterOuterAlt(_localctx, 56); { - State = 525; setStmt(); + State = 523; setStmt(); } break; case 57: EnterOuterAlt(_localctx, 57); { - State = 526; stopStmt(); + State = 524; stopStmt(); } break; case 58: EnterOuterAlt(_localctx, 58); { - State = 527; timeStmt(); + State = 525; timeStmt(); } break; case 59: EnterOuterAlt(_localctx, 59); { - State = 528; unloadStmt(); + State = 526; unloadStmt(); } break; case 60: EnterOuterAlt(_localctx, 60); { - State = 529; unlockStmt(); + State = 527; unlockStmt(); } break; case 61: EnterOuterAlt(_localctx, 61); { - State = 530; variableStmt(); + State = 528; variableStmt(); } break; case 62: EnterOuterAlt(_localctx, 62); { - State = 531; whileWendStmt(); + State = 529; whileWendStmt(); } break; case 63: EnterOuterAlt(_localctx, 63); { - State = 532; widthStmt(); + State = 530; widthStmt(); } break; case 64: EnterOuterAlt(_localctx, 64); { - State = 533; withStmt(); + State = 531; withStmt(); } break; case 65: EnterOuterAlt(_localctx, 65); { - State = 534; writeStmt(); + State = 532; writeStmt(); } break; case 66: EnterOuterAlt(_localctx, 66); { - State = 535; implicitCallStmt_InBlock(); + State = 533; implicitCallStmt_InBlock(); } break; } @@ -2168,31 +2168,31 @@ public AppactivateStmtContext appactivateStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 538; Match(APPACTIVATE); - State = 539; whiteSpace(); - State = 540; valueStmt(0); - State = 549; + State = 536; Match(APPACTIVATE); + State = 537; whiteSpace(); + State = 538; valueStmt(0); + State = 547; switch ( Interpreter.AdaptivePredict(_input,30,_ctx) ) { case 1: { - State = 542; + State = 540; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 541; whiteSpace(); + State = 539; whiteSpace(); } } - State = 544; Match(COMMA); - State = 546; + State = 542; Match(COMMA); + State = 544; switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 545; whiteSpace(); + State = 543; whiteSpace(); } break; } - State = 548; valueStmt(0); + State = 546; valueStmt(0); } break; } @@ -2238,7 +2238,7 @@ public BeepStmtContext beepStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 551; Match(BEEP); + State = 549; Match(BEEP); } } catch (RecognitionException re) { @@ -2287,9 +2287,9 @@ public ChdirStmtContext chdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 553; Match(CHDIR); - State = 554; whiteSpace(); - State = 555; valueStmt(0); + State = 551; Match(CHDIR); + State = 552; whiteSpace(); + State = 553; valueStmt(0); } } catch (RecognitionException re) { @@ -2338,9 +2338,9 @@ public ChdriveStmtContext chdriveStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 557; Match(CHDRIVE); - State = 558; whiteSpace(); - State = 559; valueStmt(0); + State = 555; Match(CHDRIVE); + State = 556; whiteSpace(); + State = 557; valueStmt(0); } } catch (RecognitionException re) { @@ -2401,42 +2401,42 @@ public CloseStmtContext closeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 561; Match(CLOSE); - State = 577; + State = 559; Match(CLOSE); + State = 575; switch ( Interpreter.AdaptivePredict(_input,34,_ctx) ) { case 1: { - State = 562; whiteSpace(); - State = 563; fileNumber(); - State = 574; + State = 560; whiteSpace(); + State = 561; fileNumber(); + State = 572; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,33,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 565; + State = 563; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 564; whiteSpace(); + State = 562; whiteSpace(); } } - State = 567; Match(COMMA); - State = 569; + State = 565; Match(COMMA); + State = 567; switch ( Interpreter.AdaptivePredict(_input,32,_ctx) ) { case 1: { - State = 568; whiteSpace(); + State = 566; whiteSpace(); } break; } - State = 571; fileNumber(); + State = 569; fileNumber(); } } } - State = 576; + State = 574; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,33,_ctx); } @@ -2506,47 +2506,47 @@ public ConstStmtContext constStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 582; + State = 580; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 579; visibility(); - State = 580; whiteSpace(); + State = 577; visibility(); + State = 578; whiteSpace(); } } - State = 584; Match(CONST); - State = 585; whiteSpace(); - State = 586; constSubStmt(); - State = 597; + State = 582; Match(CONST); + State = 583; whiteSpace(); + State = 584; constSubStmt(); + State = 595; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,38,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 588; + State = 586; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 587; whiteSpace(); + State = 585; whiteSpace(); } } - State = 590; Match(COMMA); - State = 592; + State = 588; Match(COMMA); + State = 590; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 591; whiteSpace(); + State = 589; whiteSpace(); } } - State = 594; constSubStmt(); + State = 592; constSubStmt(); } } } - State = 599; + State = 597; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,38,_ctx); } @@ -2611,42 +2611,42 @@ public ConstSubStmtContext constSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 600; identifier(); - State = 602; + State = 598; identifier(); + State = 600; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 601; typeHint(); + State = 599; typeHint(); } } - State = 607; + State = 605; switch ( Interpreter.AdaptivePredict(_input,40,_ctx) ) { case 1: { - State = 604; whiteSpace(); - State = 605; asTypeClause(); + State = 602; whiteSpace(); + State = 603; asTypeClause(); } break; } - State = 610; + State = 608; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 609; whiteSpace(); + State = 607; whiteSpace(); } } - State = 612; Match(EQ); - State = 614; + State = 610; Match(EQ); + State = 612; switch ( Interpreter.AdaptivePredict(_input,42,_ctx) ) { case 1: { - State = 613; whiteSpace(); + State = 611; whiteSpace(); } break; } - State = 616; valueStmt(0); + State = 614; valueStmt(0); } } catch (RecognitionException re) { @@ -2700,25 +2700,25 @@ public DateStmtContext dateStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 618; Match(DATE); - State = 620; + State = 616; Match(DATE); + State = 618; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 619; whiteSpace(); + State = 617; whiteSpace(); } } - State = 622; Match(EQ); - State = 624; + State = 620; Match(EQ); + State = 622; switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { case 1: { - State = 623; whiteSpace(); + State = 621; whiteSpace(); } break; } - State = 626; valueStmt(0); + State = 624; valueStmt(0); } } catch (RecognitionException re) { @@ -2795,37 +2795,37 @@ public DeclareStmtContext declareStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 631; + State = 629; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 628; visibility(); - State = 629; whiteSpace(); + State = 626; visibility(); + State = 627; whiteSpace(); } } - State = 633; Match(DECLARE); - State = 634; whiteSpace(); - State = 637; + State = 631; Match(DECLARE); + State = 632; whiteSpace(); + State = 635; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 635; Match(PTRSAFE); - State = 636; whiteSpace(); + State = 633; Match(PTRSAFE); + State = 634; whiteSpace(); } } - State = 644; + State = 642; switch (_input.La(1)) { case FUNCTION: { { - State = 639; Match(FUNCTION); - State = 641; + State = 637; Match(FUNCTION); + State = 639; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 640; typeHint(); + State = 638; typeHint(); } } @@ -2834,59 +2834,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 643; Match(SUB); + State = 641; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 646; whiteSpace(); - State = 647; identifier(); - State = 649; + State = 644; whiteSpace(); + State = 645; identifier(); + State = 647; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 648; typeHint(); + State = 646; typeHint(); } } + State = 649; whiteSpace(); + State = 650; Match(LIB); State = 651; whiteSpace(); - State = 652; Match(LIB); - State = 653; whiteSpace(); - State = 654; Match(STRINGLITERAL); - State = 660; + State = 652; Match(STRINGLITERAL); + State = 658; switch ( Interpreter.AdaptivePredict(_input,50,_ctx) ) { case 1: { + State = 653; whiteSpace(); + State = 654; Match(ALIAS); State = 655; whiteSpace(); - State = 656; Match(ALIAS); - State = 657; whiteSpace(); - State = 658; Match(STRINGLITERAL); + State = 656; Match(STRINGLITERAL); } break; } - State = 666; + State = 664; switch ( Interpreter.AdaptivePredict(_input,52,_ctx) ) { case 1: { - State = 663; + State = 661; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 662; whiteSpace(); + State = 660; whiteSpace(); } } - State = 665; argList(); + State = 663; argList(); } break; } - State = 671; + State = 669; switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { case 1: { - State = 668; whiteSpace(); - State = 669; asTypeClause(); + State = 666; whiteSpace(); + State = 667; asTypeClause(); } break; } @@ -2962,43 +2962,43 @@ public DeftypeStmtContext deftypeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 673; + State = 671; _la = _input.La(1); if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (DEFBOOL - 74)) | (1L << (DEFBYTE - 74)) | (1L << (DEFDATE - 74)) | (1L << (DEFDBL - 74)) | (1L << (DEFCUR - 74)) | (1L << (DEFINT - 74)) | (1L << (DEFLNG - 74)) | (1L << (DEFLNGLNG - 74)) | (1L << (DEFLNGPTR - 74)) | (1L << (DEFOBJ - 74)) | (1L << (DEFSNG - 74)) | (1L << (DEFSTR - 74)) | (1L << (DEFVAR - 74)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 674; whiteSpace(); - State = 675; letterrange(); - State = 686; + State = 672; whiteSpace(); + State = 673; letterrange(); + State = 684; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,56,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 677; + State = 675; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 676; whiteSpace(); + State = 674; whiteSpace(); } } - State = 679; Match(COMMA); - State = 681; + State = 677; Match(COMMA); + State = 679; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 680; whiteSpace(); + State = 678; whiteSpace(); } } - State = 683; letterrange(); + State = 681; letterrange(); } } } - State = 688; + State = 686; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,56,_ctx); } @@ -3059,19 +3059,19 @@ public DeleteSettingStmtContext deleteSettingStmt() { EnterRule(_localctx, 48, RULE_deleteSettingStmt); int _la; try { - State = 727; + State = 725; switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 689; Match(DELETESETTING); - State = 690; whiteSpace(); - State = 691; valueStmt(0); - State = 693; + State = 687; Match(DELETESETTING); + State = 688; whiteSpace(); + State = 689; valueStmt(0); + State = 691; switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: { - State = 692; whiteSpace(); + State = 690; whiteSpace(); } break; } @@ -3081,72 +3081,72 @@ public DeleteSettingStmtContext deleteSettingStmt() { case 2: EnterOuterAlt(_localctx, 2); { - State = 695; Match(DELETESETTING); - State = 696; whiteSpace(); - State = 697; valueStmt(0); - State = 699; + State = 693; Match(DELETESETTING); + State = 694; whiteSpace(); + State = 695; valueStmt(0); + State = 697; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 698; whiteSpace(); + State = 696; whiteSpace(); } } - State = 701; Match(COMMA); - State = 703; + State = 699; Match(COMMA); + State = 701; switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 702; whiteSpace(); + State = 700; whiteSpace(); } break; } - State = 705; valueStmt(0); + State = 703; valueStmt(0); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 707; Match(DELETESETTING); - State = 708; whiteSpace(); - State = 709; valueStmt(0); - State = 711; + State = 705; Match(DELETESETTING); + State = 706; whiteSpace(); + State = 707; valueStmt(0); + State = 709; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 710; whiteSpace(); + State = 708; whiteSpace(); } } - State = 713; Match(COMMA); - State = 715; + State = 711; Match(COMMA); + State = 713; switch ( Interpreter.AdaptivePredict(_input,61,_ctx) ) { case 1: { - State = 714; whiteSpace(); + State = 712; whiteSpace(); } break; } - State = 717; valueStmt(0); - State = 719; + State = 715; valueStmt(0); + State = 717; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 718; whiteSpace(); + State = 716; whiteSpace(); } } - State = 721; Match(COMMA); - State = 723; + State = 719; Match(COMMA); + State = 721; switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { case 1: { - State = 722; whiteSpace(); + State = 720; whiteSpace(); } break; } - State = 725; valueStmt(0); + State = 723; valueStmt(0); } break; } @@ -3208,74 +3208,74 @@ public DoLoopStmtContext doLoopStmt() { EnterRule(_localctx, 50, RULE_doLoopStmt); int _la; try { - State = 758; + State = 756; switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 729; Match(DO); - State = 730; endOfStatement(); - State = 732; + State = 727; Match(DO); + State = 728; endOfStatement(); + State = 730; switch ( Interpreter.AdaptivePredict(_input,65,_ctx) ) { case 1: { - State = 731; block(); + State = 729; block(); } break; } - State = 734; Match(LOOP); + State = 732; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 736; Match(DO); - State = 737; whiteSpace(); - State = 738; + State = 734; Match(DO); + State = 735; whiteSpace(); + State = 736; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 739; whiteSpace(); - State = 740; valueStmt(0); - State = 741; endOfStatement(); - State = 743; + State = 737; whiteSpace(); + State = 738; valueStmt(0); + State = 739; endOfStatement(); + State = 741; switch ( Interpreter.AdaptivePredict(_input,66,_ctx) ) { case 1: { - State = 742; block(); + State = 740; block(); } break; } - State = 745; Match(LOOP); + State = 743; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 747; Match(DO); - State = 748; endOfStatement(); - State = 750; + State = 745; Match(DO); + State = 746; endOfStatement(); + State = 748; switch ( Interpreter.AdaptivePredict(_input,67,_ctx) ) { case 1: { - State = 749; block(); + State = 747; block(); } break; } - State = 752; Match(LOOP); - State = 753; whiteSpace(); - State = 754; + State = 750; Match(LOOP); + State = 751; whiteSpace(); + State = 752; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 755; whiteSpace(); - State = 756; valueStmt(0); + State = 753; whiteSpace(); + State = 754; valueStmt(0); } break; } @@ -3320,7 +3320,7 @@ public EndStmtContext endStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 760; Match(END); + State = 758; Match(END); } } catch (RecognitionException re) { @@ -3386,33 +3386,33 @@ public EnumerationStmtContext enumerationStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 765; + State = 763; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 762; visibility(); - State = 763; whiteSpace(); + State = 760; visibility(); + State = 761; whiteSpace(); } } - State = 767; Match(ENUM); - State = 768; whiteSpace(); - State = 769; identifier(); - State = 770; endOfStatement(); - State = 774; + State = 765; Match(ENUM); + State = 766; whiteSpace(); + State = 767; identifier(); + State = 768; endOfStatement(); + State = 772; _errHandler.Sync(this); _la = _input.La(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==COLLECTION) { { { - State = 771; enumerationStmt_Constant(); + State = 769; enumerationStmt_Constant(); } } - State = 776; + State = 774; _errHandler.Sync(this); _la = _input.La(1); } - State = 777; Match(END_ENUM); + State = 775; Match(END_ENUM); } } catch (RecognitionException re) { @@ -3471,33 +3471,33 @@ public EnumerationStmt_ConstantContext enumerationStmt_Constant() { try { EnterOuterAlt(_localctx, 1); { - State = 779; identifier(); - State = 788; + State = 777; identifier(); + State = 786; switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { case 1: { - State = 781; + State = 779; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 780; whiteSpace(); + State = 778; whiteSpace(); } } - State = 783; Match(EQ); - State = 785; + State = 781; Match(EQ); + State = 783; switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 784; whiteSpace(); + State = 782; whiteSpace(); } break; } - State = 787; valueStmt(0); + State = 785; valueStmt(0); } break; } - State = 790; endOfStatement(); + State = 788; endOfStatement(); } } catch (RecognitionException re) { @@ -3558,38 +3558,38 @@ public EraseStmtContext eraseStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 792; Match(ERASE); - State = 793; whiteSpace(); - State = 794; valueStmt(0); - State = 805; + State = 790; Match(ERASE); + State = 791; whiteSpace(); + State = 792; valueStmt(0); + State = 803; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,76,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 796; + State = 794; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 795; whiteSpace(); + State = 793; whiteSpace(); } } - State = 798; Match(COMMA); - State = 800; + State = 796; Match(COMMA); + State = 798; switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { case 1: { - State = 799; whiteSpace(); + State = 797; whiteSpace(); } break; } - State = 802; valueStmt(0); + State = 800; valueStmt(0); } } } - State = 807; + State = 805; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,76,_ctx); } @@ -3641,9 +3641,9 @@ public ErrorStmtContext errorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 808; Match(ERROR); - State = 809; whiteSpace(); - State = 810; valueStmt(0); + State = 806; Match(ERROR); + State = 807; whiteSpace(); + State = 808; valueStmt(0); } } catch (RecognitionException re) { @@ -3702,27 +3702,27 @@ public EventStmtContext eventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 815; + State = 813; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 812; visibility(); - State = 813; whiteSpace(); + State = 810; visibility(); + State = 811; whiteSpace(); } } - State = 817; Match(EVENT); - State = 818; whiteSpace(); - State = 819; identifier(); - State = 821; + State = 815; Match(EVENT); + State = 816; whiteSpace(); + State = 817; identifier(); + State = 819; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 820; whiteSpace(); + State = 818; whiteSpace(); } } - State = 823; argList(); + State = 821; argList(); } } catch (RecognitionException re) { @@ -3770,7 +3770,7 @@ public ExitStmtContext exitStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 825; + State = 823; _la = _input.La(1); if ( !(((((_la - 109)) & ~0x3f) == 0 && ((1L << (_la - 109)) & ((1L << (EXIT_DO - 109)) | (1L << (EXIT_FOR - 109)) | (1L << (EXIT_FUNCTION - 109)) | (1L << (EXIT_PROPERTY - 109)) | (1L << (EXIT_SUB - 109)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3832,27 +3832,27 @@ public FilecopyStmtContext filecopyStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 827; Match(FILECOPY); - State = 828; whiteSpace(); - State = 829; valueStmt(0); - State = 831; + State = 825; Match(FILECOPY); + State = 826; whiteSpace(); + State = 827; valueStmt(0); + State = 829; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 830; whiteSpace(); + State = 828; whiteSpace(); } } - State = 833; Match(COMMA); - State = 835; + State = 831; Match(COMMA); + State = 833; switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: { - State = 834; whiteSpace(); + State = 832; whiteSpace(); } break; } - State = 837; valueStmt(0); + State = 835; valueStmt(0); } } catch (RecognitionException re) { @@ -3923,39 +3923,39 @@ public ForEachStmtContext forEachStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 839; Match(FOR); + State = 837; Match(FOR); + State = 838; whiteSpace(); + State = 839; Match(EACH); State = 840; whiteSpace(); - State = 841; Match(EACH); - State = 842; whiteSpace(); - State = 843; identifier(); - State = 845; + State = 841; identifier(); + State = 843; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 844; typeHint(); + State = 842; typeHint(); } } + State = 845; whiteSpace(); + State = 846; Match(IN); State = 847; whiteSpace(); - State = 848; Match(IN); - State = 849; whiteSpace(); - State = 850; valueStmt(0); - State = 851; endOfStatement(); - State = 853; + State = 848; valueStmt(0); + State = 849; endOfStatement(); + State = 851; switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { case 1: { - State = 852; block(); + State = 850; block(); } break; } - State = 855; Match(NEXT); - State = 859; + State = 853; Match(NEXT); + State = 857; switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: { - State = 856; whiteSpace(); - State = 857; identifier(); + State = 854; whiteSpace(); + State = 855; identifier(); } break; } @@ -4039,80 +4039,80 @@ public ForNextStmtContext forNextStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 861; Match(FOR); - State = 862; whiteSpace(); - State = 863; identifier(); - State = 865; + State = 859; Match(FOR); + State = 860; whiteSpace(); + State = 861; identifier(); + State = 863; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 864; typeHint(); + State = 862; typeHint(); } } - State = 870; + State = 868; switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { case 1: { - State = 867; whiteSpace(); - State = 868; asTypeClause(); + State = 865; whiteSpace(); + State = 866; asTypeClause(); } break; } - State = 873; + State = 871; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 872; whiteSpace(); + State = 870; whiteSpace(); } } - State = 875; Match(EQ); - State = 877; + State = 873; Match(EQ); + State = 875; switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 876; whiteSpace(); + State = 874; whiteSpace(); } break; } - State = 879; valueStmt(0); + State = 877; valueStmt(0); + State = 878; whiteSpace(); + State = 879; Match(TO); State = 880; whiteSpace(); - State = 881; Match(TO); - State = 882; whiteSpace(); - State = 883; valueStmt(0); - State = 889; + State = 881; valueStmt(0); + State = 887; switch ( Interpreter.AdaptivePredict(_input,88,_ctx) ) { case 1: { + State = 882; whiteSpace(); + State = 883; Match(STEP); State = 884; whiteSpace(); - State = 885; Match(STEP); - State = 886; whiteSpace(); - State = 887; valueStmt(0); + State = 885; valueStmt(0); } break; } - State = 891; endOfStatement(); - State = 893; + State = 889; endOfStatement(); + State = 891; switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { case 1: { - State = 892; block(); + State = 890; block(); } break; } - State = 895; Match(NEXT); - State = 901; + State = 893; Match(NEXT); + State = 899; switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 896; whiteSpace(); - State = 897; identifier(); - State = 899; + State = 894; whiteSpace(); + State = 895; identifier(); + State = 897; switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: { - State = 898; typeHint(); + State = 896; typeHint(); } break; } @@ -4191,84 +4191,84 @@ public FunctionStmtContext functionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 906; + State = 904; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 903; visibility(); - State = 904; whiteSpace(); + State = 901; visibility(); + State = 902; whiteSpace(); } } - State = 910; + State = 908; _la = _input.La(1); if (_la==STATIC) { { - State = 908; Match(STATIC); - State = 909; whiteSpace(); + State = 906; Match(STATIC); + State = 907; whiteSpace(); } } - State = 912; Match(FUNCTION); - State = 914; + State = 910; Match(FUNCTION); + State = 912; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 913; whiteSpace(); + State = 911; whiteSpace(); } } - State = 916; identifier(); - State = 918; + State = 914; identifier(); + State = 916; switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 917; typeHint(); + State = 915; typeHint(); } break; } - State = 924; + State = 922; switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { case 1: { - State = 921; + State = 919; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 920; whiteSpace(); + State = 918; whiteSpace(); } } - State = 923; argList(); + State = 921; argList(); } break; } - State = 930; + State = 928; switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 927; + State = 925; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 926; whiteSpace(); + State = 924; whiteSpace(); } } - State = 929; asTypeClause(); + State = 927; asTypeClause(); } break; } - State = 932; endOfStatement(); - State = 934; + State = 930; endOfStatement(); + State = 932; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 933; block(); + State = 931; block(); } } - State = 936; Match(END_FUNCTION); + State = 934; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4331,52 +4331,52 @@ public GetStmtContext getStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 938; Match(GET); - State = 939; whiteSpace(); - State = 940; fileNumber(); - State = 942; + State = 936; Match(GET); + State = 937; whiteSpace(); + State = 938; fileNumber(); + State = 940; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 941; whiteSpace(); + State = 939; whiteSpace(); } } - State = 944; Match(COMMA); - State = 946; + State = 942; Match(COMMA); + State = 944; switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { case 1: { - State = 945; whiteSpace(); + State = 943; whiteSpace(); } break; } - State = 949; + State = 947; switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { case 1: { - State = 948; valueStmt(0); + State = 946; valueStmt(0); } break; } - State = 952; + State = 950; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 951; whiteSpace(); + State = 949; whiteSpace(); } } - State = 954; Match(COMMA); - State = 956; + State = 952; Match(COMMA); + State = 954; switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: { - State = 955; whiteSpace(); + State = 953; whiteSpace(); } break; } - State = 958; valueStmt(0); + State = 956; valueStmt(0); } } catch (RecognitionException re) { @@ -4425,9 +4425,9 @@ public GoSubStmtContext goSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 960; Match(GOSUB); - State = 961; whiteSpace(); - State = 962; valueStmt(0); + State = 958; Match(GOSUB); + State = 959; whiteSpace(); + State = 960; valueStmt(0); } } catch (RecognitionException re) { @@ -4476,9 +4476,9 @@ public GoToStmtContext goToStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 964; Match(GOTO); - State = 965; whiteSpace(); - State = 966; valueStmt(0); + State = 962; Match(GOTO); + State = 963; whiteSpace(); + State = 964; valueStmt(0); } } catch (RecognitionException re) { @@ -4574,27 +4574,27 @@ public IfThenElseStmtContext ifThenElseStmt() { EnterRule(_localctx, 80, RULE_ifThenElseStmt); int _la; try { - State = 994; + State = 992; switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 968; Match(IF); + State = 966; Match(IF); + State = 967; whiteSpace(); + State = 968; ifConditionStmt(); State = 969; whiteSpace(); - State = 970; ifConditionStmt(); + State = 970; Match(THEN); State = 971; whiteSpace(); - State = 972; Match(THEN); - State = 973; whiteSpace(); - State = 974; blockStmt(); - State = 980; + State = 972; blockStmt(); + State = 978; switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { case 1: { + State = 973; whiteSpace(); + State = 974; Match(ELSE); State = 975; whiteSpace(); - State = 976; Match(ELSE); - State = 977; whiteSpace(); - State = 978; blockStmt(); + State = 976; blockStmt(); } break; } @@ -4605,29 +4605,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 982; ifBlockStmt(); - State = 986; + State = 980; ifBlockStmt(); + State = 984; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 983; ifElseIfBlockStmt(); + State = 981; ifElseIfBlockStmt(); } } - State = 988; + State = 986; _errHandler.Sync(this); _la = _input.La(1); } - State = 990; + State = 988; _la = _input.La(1); if (_la==ELSE) { { - State = 989; ifElseBlockStmt(); + State = 987; ifElseBlockStmt(); } } - State = 992; Match(END_IF); + State = 990; Match(END_IF); } break; } @@ -4688,17 +4688,17 @@ public IfBlockStmtContext ifBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 996; Match(IF); + State = 994; Match(IF); + State = 995; whiteSpace(); + State = 996; ifConditionStmt(); State = 997; whiteSpace(); - State = 998; ifConditionStmt(); - State = 999; whiteSpace(); - State = 1000; Match(THEN); - State = 1001; endOfStatement(); - State = 1003; + State = 998; Match(THEN); + State = 999; endOfStatement(); + State = 1001; switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { case 1: { - State = 1002; block(); + State = 1000; block(); } break; } @@ -4746,7 +4746,7 @@ public IfConditionStmtContext ifConditionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1005; valueStmt(0); + State = 1003; valueStmt(0); } } catch (RecognitionException re) { @@ -4805,17 +4805,17 @@ public IfElseIfBlockStmtContext ifElseIfBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1007; Match(ELSEIF); + State = 1005; Match(ELSEIF); + State = 1006; whiteSpace(); + State = 1007; ifConditionStmt(); State = 1008; whiteSpace(); - State = 1009; ifConditionStmt(); - State = 1010; whiteSpace(); - State = 1011; Match(THEN); - State = 1012; endOfStatement(); - State = 1014; + State = 1009; Match(THEN); + State = 1010; endOfStatement(); + State = 1012; switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { case 1: { - State = 1013; block(); + State = 1011; block(); } break; } @@ -4867,13 +4867,13 @@ public IfElseBlockStmtContext ifElseBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1016; Match(ELSE); - State = 1017; endOfStatement(); - State = 1019; + State = 1014; Match(ELSE); + State = 1015; endOfStatement(); + State = 1017; switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { case 1: { - State = 1018; block(); + State = 1016; block(); } break; } @@ -4925,9 +4925,9 @@ public ImplementsStmtContext implementsStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1021; Match(IMPLEMENTS); - State = 1022; whiteSpace(); - State = 1023; valueStmt(0); + State = 1019; Match(IMPLEMENTS); + State = 1020; whiteSpace(); + State = 1021; valueStmt(0); } } catch (RecognitionException re) { @@ -4991,10 +4991,10 @@ public InputStmtContext inputStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1025; Match(INPUT); - State = 1026; whiteSpace(); - State = 1027; fileNumber(); - State = 1036; + State = 1023; Match(INPUT); + State = 1024; whiteSpace(); + State = 1025; fileNumber(); + State = 1034; _errHandler.Sync(this); _alt = 1; do { @@ -5002,31 +5002,31 @@ public InputStmtContext inputStmt() { case 1: { { - State = 1029; + State = 1027; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1028; whiteSpace(); + State = 1026; whiteSpace(); } } - State = 1031; Match(COMMA); - State = 1033; + State = 1029; Match(COMMA); + State = 1031; switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { case 1: { - State = 1032; whiteSpace(); + State = 1030; whiteSpace(); } break; } - State = 1035; valueStmt(0); + State = 1033; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 1038; + State = 1036; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,115,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -5078,9 +5078,9 @@ public KillStmtContext killStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1040; Match(KILL); - State = 1041; whiteSpace(); - State = 1042; valueStmt(0); + State = 1038; Match(KILL); + State = 1039; whiteSpace(); + State = 1040; valueStmt(0); } } catch (RecognitionException re) { @@ -5137,34 +5137,34 @@ public LetStmtContext letStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1046; + State = 1044; switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 1044; Match(LET); - State = 1045; whiteSpace(); + State = 1042; Match(LET); + State = 1043; whiteSpace(); } break; } - State = 1048; implicitCallStmt_InStmt(); - State = 1050; + State = 1046; implicitCallStmt_InStmt(); + State = 1048; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1049; whiteSpace(); + State = 1047; whiteSpace(); } } - State = 1052; Match(EQ); - State = 1054; + State = 1050; Match(EQ); + State = 1052; switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1053; whiteSpace(); + State = 1051; whiteSpace(); } break; } - State = 1056; valueStmt(0); + State = 1054; valueStmt(0); } } catch (RecognitionException re) { @@ -5221,27 +5221,27 @@ public LineInputStmtContext lineInputStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1058; Match(LINE_INPUT); - State = 1059; whiteSpace(); - State = 1060; fileNumber(); - State = 1062; + State = 1056; Match(LINE_INPUT); + State = 1057; whiteSpace(); + State = 1058; fileNumber(); + State = 1060; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1061; whiteSpace(); + State = 1059; whiteSpace(); } } - State = 1064; Match(COMMA); - State = 1066; + State = 1062; Match(COMMA); + State = 1064; switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { case 1: { - State = 1065; whiteSpace(); + State = 1063; whiteSpace(); } break; } - State = 1068; valueStmt(0); + State = 1066; valueStmt(0); } } catch (RecognitionException re) { @@ -5290,9 +5290,9 @@ public LoadStmtContext loadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1070; Match(LOAD); - State = 1071; whiteSpace(); - State = 1072; valueStmt(0); + State = 1068; Match(LOAD); + State = 1069; whiteSpace(); + State = 1070; valueStmt(0); } } catch (RecognitionException re) { @@ -5350,39 +5350,39 @@ public LockStmtContext lockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1074; Match(LOCK); - State = 1075; whiteSpace(); - State = 1076; valueStmt(0); - State = 1092; + State = 1072; Match(LOCK); + State = 1073; whiteSpace(); + State = 1074; valueStmt(0); + State = 1090; switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1078; + State = 1076; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1077; whiteSpace(); + State = 1075; whiteSpace(); } } - State = 1080; Match(COMMA); - State = 1082; + State = 1078; Match(COMMA); + State = 1080; switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1081; whiteSpace(); + State = 1079; whiteSpace(); } break; } - State = 1084; valueStmt(0); - State = 1090; + State = 1082; valueStmt(0); + State = 1088; switch ( Interpreter.AdaptivePredict(_input,123,_ctx) ) { case 1: { + State = 1083; whiteSpace(); + State = 1084; Match(TO); State = 1085; whiteSpace(); - State = 1086; Match(TO); - State = 1087; whiteSpace(); - State = 1088; valueStmt(0); + State = 1086; valueStmt(0); } break; } @@ -5445,27 +5445,27 @@ public LsetStmtContext lsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1094; Match(LSET); - State = 1095; whiteSpace(); - State = 1096; implicitCallStmt_InStmt(); - State = 1098; + State = 1092; Match(LSET); + State = 1093; whiteSpace(); + State = 1094; implicitCallStmt_InStmt(); + State = 1096; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1097; whiteSpace(); + State = 1095; whiteSpace(); } } - State = 1100; Match(EQ); - State = 1102; + State = 1098; Match(EQ); + State = 1100; switch ( Interpreter.AdaptivePredict(_input,126,_ctx) ) { case 1: { - State = 1101; whiteSpace(); + State = 1099; whiteSpace(); } break; } - State = 1104; valueStmt(0); + State = 1102; valueStmt(0); } } catch (RecognitionException re) { @@ -5520,34 +5520,34 @@ public MidStmtContext midStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1106; Match(MID); - State = 1108; + State = 1104; Match(MID); + State = 1106; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1107; whiteSpace(); + State = 1105; whiteSpace(); } } - State = 1110; Match(LPAREN); - State = 1112; + State = 1108; Match(LPAREN); + State = 1110; switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { case 1: { - State = 1111; whiteSpace(); + State = 1109; whiteSpace(); } break; } - State = 1114; argsCall(); - State = 1116; + State = 1112; argsCall(); + State = 1114; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1115; whiteSpace(); + State = 1113; whiteSpace(); } } - State = 1118; Match(RPAREN); + State = 1116; Match(RPAREN); } } catch (RecognitionException re) { @@ -5596,9 +5596,9 @@ public MkdirStmtContext mkdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1120; Match(MKDIR); - State = 1121; whiteSpace(); - State = 1122; valueStmt(0); + State = 1118; Match(MKDIR); + State = 1119; whiteSpace(); + State = 1120; valueStmt(0); } } catch (RecognitionException re) { @@ -5654,13 +5654,13 @@ public NameStmtContext nameStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1124; Match(NAME); + State = 1122; Match(NAME); + State = 1123; whiteSpace(); + State = 1124; valueStmt(0); State = 1125; whiteSpace(); - State = 1126; valueStmt(0); + State = 1126; Match(AS); State = 1127; whiteSpace(); - State = 1128; Match(AS); - State = 1129; whiteSpace(); - State = 1130; valueStmt(0); + State = 1128; valueStmt(0); } } catch (RecognitionException re) { @@ -5717,27 +5717,27 @@ public OnErrorStmtContext onErrorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1132; + State = 1130; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1133; whiteSpace(); - State = 1142; + State = 1131; whiteSpace(); + State = 1140; switch (_input.La(1)) { case GOTO: { - State = 1134; Match(GOTO); - State = 1135; whiteSpace(); - State = 1136; valueStmt(0); + State = 1132; Match(GOTO); + State = 1133; whiteSpace(); + State = 1134; valueStmt(0); } break; case RESUME: { - State = 1138; Match(RESUME); - State = 1139; whiteSpace(); - State = 1140; Match(NEXT); + State = 1136; Match(RESUME); + State = 1137; whiteSpace(); + State = 1138; Match(NEXT); } break; default: @@ -5804,42 +5804,42 @@ public OnGoToStmtContext onGoToStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1144; Match(ON); + State = 1142; Match(ON); + State = 1143; whiteSpace(); + State = 1144; valueStmt(0); State = 1145; whiteSpace(); - State = 1146; valueStmt(0); + State = 1146; Match(GOTO); State = 1147; whiteSpace(); - State = 1148; Match(GOTO); - State = 1149; whiteSpace(); - State = 1150; valueStmt(0); - State = 1161; + State = 1148; valueStmt(0); + State = 1159; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,133,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1152; + State = 1150; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1151; whiteSpace(); + State = 1149; whiteSpace(); } } - State = 1154; Match(COMMA); - State = 1156; + State = 1152; Match(COMMA); + State = 1154; switch ( Interpreter.AdaptivePredict(_input,132,_ctx) ) { case 1: { - State = 1155; whiteSpace(); + State = 1153; whiteSpace(); } break; } - State = 1158; valueStmt(0); + State = 1156; valueStmt(0); } } } - State = 1163; + State = 1161; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,133,_ctx); } @@ -5904,42 +5904,42 @@ public OnGoSubStmtContext onGoSubStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1164; Match(ON); + State = 1162; Match(ON); + State = 1163; whiteSpace(); + State = 1164; valueStmt(0); State = 1165; whiteSpace(); - State = 1166; valueStmt(0); + State = 1166; Match(GOSUB); State = 1167; whiteSpace(); - State = 1168; Match(GOSUB); - State = 1169; whiteSpace(); - State = 1170; valueStmt(0); - State = 1181; + State = 1168; valueStmt(0); + State = 1179; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,136,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1172; + State = 1170; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1171; whiteSpace(); + State = 1169; whiteSpace(); } } - State = 1174; Match(COMMA); - State = 1176; + State = 1172; Match(COMMA); + State = 1174; switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { case 1: { - State = 1175; whiteSpace(); + State = 1173; whiteSpace(); } break; } - State = 1178; valueStmt(0); + State = 1176; valueStmt(0); } } } - State = 1183; + State = 1181; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,136,_ctx); } @@ -6018,26 +6018,26 @@ public OpenStmtContext openStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1184; Match(OPEN); + State = 1182; Match(OPEN); + State = 1183; whiteSpace(); + State = 1184; valueStmt(0); State = 1185; whiteSpace(); - State = 1186; valueStmt(0); + State = 1186; Match(FOR); State = 1187; whiteSpace(); - State = 1188; Match(FOR); - State = 1189; whiteSpace(); - State = 1190; + State = 1188; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 127)) & ~0x3f) == 0 && ((1L << (_la - 127)) & ((1L << (INPUT - 127)) | (1L << (OUTPUT - 127)) | (1L << (RANDOM - 127)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1196; + State = 1194; switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: { + State = 1189; whiteSpace(); + State = 1190; Match(ACCESS); State = 1191; whiteSpace(); - State = 1192; Match(ACCESS); - State = 1193; whiteSpace(); - State = 1194; + State = 1192; _la = _input.La(1); if ( !(((((_la - 177)) & ~0x3f) == 0 && ((1L << (_la - 177)) & ((1L << (READ - 177)) | (1L << (READ_WRITE - 177)) | (1L << (WRITE - 177)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6046,12 +6046,12 @@ public OpenStmtContext openStmt() { } break; } - State = 1201; + State = 1199; switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { case 1: { - State = 1198; whiteSpace(); - State = 1199; + State = 1196; whiteSpace(); + State = 1197; _la = _input.La(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (LOCK_READ - 139)) | (1L << (LOCK_WRITE - 139)) | (1L << (LOCK_READ_WRITE - 139)) | (1L << (SHARED - 139)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6060,34 +6060,34 @@ public OpenStmtContext openStmt() { } break; } + State = 1201; whiteSpace(); + State = 1202; Match(AS); State = 1203; whiteSpace(); - State = 1204; Match(AS); - State = 1205; whiteSpace(); - State = 1206; fileNumber(); - State = 1218; + State = 1204; fileNumber(); + State = 1216; switch ( Interpreter.AdaptivePredict(_input,141,_ctx) ) { case 1: { - State = 1207; whiteSpace(); - State = 1208; Match(LEN); - State = 1210; + State = 1205; whiteSpace(); + State = 1206; Match(LEN); + State = 1208; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1209; whiteSpace(); + State = 1207; whiteSpace(); } } - State = 1212; Match(EQ); - State = 1214; + State = 1210; Match(EQ); + State = 1212; switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1213; whiteSpace(); + State = 1211; whiteSpace(); } break; } - State = 1216; valueStmt(0); + State = 1214; valueStmt(0); } break; } @@ -6152,53 +6152,53 @@ public OutputListContext outputList() { int _la; try { int _alt; - State = 1253; + State = 1251; switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1220; outputList_Expression(); - State = 1233; + State = 1218; outputList_Expression(); + State = 1231; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,145,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1222; + State = 1220; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1221; whiteSpace(); + State = 1219; whiteSpace(); } } - State = 1224; + State = 1222; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1226; + State = 1224; switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { case 1: { - State = 1225; whiteSpace(); + State = 1223; whiteSpace(); } break; } - State = 1229; + State = 1227; switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { case 1: { - State = 1228; outputList_Expression(); + State = 1226; outputList_Expression(); } break; } } } } - State = 1235; + State = 1233; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,145,_ctx); } @@ -6208,15 +6208,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1237; + State = 1235; switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { case 1: { - State = 1236; outputList_Expression(); + State = 1234; outputList_Expression(); } break; } - State = 1249; + State = 1247; _errHandler.Sync(this); _alt = 1; do { @@ -6224,33 +6224,33 @@ public OutputListContext outputList() { case 1: { { - State = 1240; + State = 1238; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1239; whiteSpace(); + State = 1237; whiteSpace(); } } - State = 1242; + State = 1240; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1244; + State = 1242; switch ( Interpreter.AdaptivePredict(_input,148,_ctx) ) { case 1: { - State = 1243; whiteSpace(); + State = 1241; whiteSpace(); } break; } - State = 1247; + State = 1245; switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { case 1: { - State = 1246; outputList_Expression(); + State = 1244; outputList_Expression(); } break; } @@ -6260,7 +6260,7 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1251; + State = 1249; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,150,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -6322,55 +6322,55 @@ public OutputList_ExpressionContext outputList_Expression() { EnterRule(_localctx, 122, RULE_outputList_Expression); int _la; try { - State = 1272; + State = 1270; switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1255; valueStmt(0); + State = 1253; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1256; + State = 1254; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1270; + State = 1268; switch ( Interpreter.AdaptivePredict(_input,155,_ctx) ) { case 1: { - State = 1258; + State = 1256; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1257; whiteSpace(); + State = 1255; whiteSpace(); } } - State = 1260; Match(LPAREN); - State = 1262; + State = 1258; Match(LPAREN); + State = 1260; switch ( Interpreter.AdaptivePredict(_input,153,_ctx) ) { case 1: { - State = 1261; whiteSpace(); + State = 1259; whiteSpace(); } break; } - State = 1264; argsCall(); - State = 1266; + State = 1262; argsCall(); + State = 1264; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1265; whiteSpace(); + State = 1263; whiteSpace(); } } - State = 1268; Match(RPAREN); + State = 1266; Match(RPAREN); } break; } @@ -6432,31 +6432,31 @@ public PrintStmtContext printStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1274; Match(PRINT); - State = 1275; whiteSpace(); - State = 1276; fileNumber(); - State = 1278; + State = 1272; Match(PRINT); + State = 1273; whiteSpace(); + State = 1274; fileNumber(); + State = 1276; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1277; whiteSpace(); + State = 1275; whiteSpace(); } } - State = 1280; Match(COMMA); - State = 1285; + State = 1278; Match(COMMA); + State = 1283; switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { case 1: { - State = 1282; + State = 1280; switch ( Interpreter.AdaptivePredict(_input,158,_ctx) ) { case 1: { - State = 1281; whiteSpace(); + State = 1279; whiteSpace(); } break; } - State = 1284; outputList(); + State = 1282; outputList(); } break; } @@ -6532,70 +6532,70 @@ public PropertyGetStmtContext propertyGetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1290; + State = 1288; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1287; visibility(); - State = 1288; whiteSpace(); + State = 1285; visibility(); + State = 1286; whiteSpace(); } } - State = 1294; + State = 1292; _la = _input.La(1); if (_la==STATIC) { { - State = 1292; Match(STATIC); - State = 1293; whiteSpace(); + State = 1290; Match(STATIC); + State = 1291; whiteSpace(); } } - State = 1296; Match(PROPERTY_GET); - State = 1297; whiteSpace(); - State = 1298; identifier(); - State = 1300; + State = 1294; Match(PROPERTY_GET); + State = 1295; whiteSpace(); + State = 1296; identifier(); + State = 1298; switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { case 1: { - State = 1299; typeHint(); + State = 1297; typeHint(); } break; } - State = 1306; + State = 1304; switch ( Interpreter.AdaptivePredict(_input,164,_ctx) ) { case 1: { - State = 1303; + State = 1301; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1302; whiteSpace(); + State = 1300; whiteSpace(); } } - State = 1305; argList(); + State = 1303; argList(); } break; } - State = 1311; + State = 1309; switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { case 1: { - State = 1308; whiteSpace(); - State = 1309; asTypeClause(); + State = 1306; whiteSpace(); + State = 1307; asTypeClause(); } break; } - State = 1313; endOfStatement(); - State = 1315; + State = 1311; endOfStatement(); + State = 1313; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1314; block(); + State = 1312; block(); } } - State = 1317; Match(END_PROPERTY); + State = 1315; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6662,53 +6662,53 @@ public PropertySetStmtContext propertySetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1322; + State = 1320; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1319; visibility(); - State = 1320; whiteSpace(); + State = 1317; visibility(); + State = 1318; whiteSpace(); } } - State = 1326; + State = 1324; _la = _input.La(1); if (_la==STATIC) { { - State = 1324; Match(STATIC); - State = 1325; whiteSpace(); + State = 1322; Match(STATIC); + State = 1323; whiteSpace(); } } - State = 1328; Match(PROPERTY_SET); - State = 1329; whiteSpace(); - State = 1330; identifier(); - State = 1335; + State = 1326; Match(PROPERTY_SET); + State = 1327; whiteSpace(); + State = 1328; identifier(); + State = 1333; switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { case 1: { - State = 1332; + State = 1330; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1331; whiteSpace(); + State = 1329; whiteSpace(); } } - State = 1334; argList(); + State = 1332; argList(); } break; } - State = 1337; endOfStatement(); - State = 1339; + State = 1335; endOfStatement(); + State = 1337; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1338; block(); + State = 1336; block(); } } - State = 1341; Match(END_PROPERTY); + State = 1339; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6775,53 +6775,53 @@ public PropertyLetStmtContext propertyLetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1346; + State = 1344; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1343; visibility(); - State = 1344; whiteSpace(); + State = 1341; visibility(); + State = 1342; whiteSpace(); } } - State = 1350; + State = 1348; _la = _input.La(1); if (_la==STATIC) { { - State = 1348; Match(STATIC); - State = 1349; whiteSpace(); + State = 1346; Match(STATIC); + State = 1347; whiteSpace(); } } - State = 1352; Match(PROPERTY_LET); - State = 1353; whiteSpace(); - State = 1354; identifier(); - State = 1359; + State = 1350; Match(PROPERTY_LET); + State = 1351; whiteSpace(); + State = 1352; identifier(); + State = 1357; switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1356; + State = 1354; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1355; whiteSpace(); + State = 1353; whiteSpace(); } } - State = 1358; argList(); + State = 1356; argList(); } break; } - State = 1361; endOfStatement(); - State = 1363; + State = 1359; endOfStatement(); + State = 1361; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1362; block(); + State = 1360; block(); } } - State = 1365; Match(END_PROPERTY); + State = 1363; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6884,52 +6884,52 @@ public PutStmtContext putStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1367; Match(PUT); - State = 1368; whiteSpace(); - State = 1369; fileNumber(); - State = 1371; + State = 1365; Match(PUT); + State = 1366; whiteSpace(); + State = 1367; fileNumber(); + State = 1369; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1370; whiteSpace(); + State = 1368; whiteSpace(); } } - State = 1373; Match(COMMA); - State = 1375; + State = 1371; Match(COMMA); + State = 1373; switch ( Interpreter.AdaptivePredict(_input,178,_ctx) ) { case 1: { - State = 1374; whiteSpace(); + State = 1372; whiteSpace(); } break; } - State = 1378; + State = 1376; switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1377; valueStmt(0); + State = 1375; valueStmt(0); } break; } - State = 1381; + State = 1379; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1380; whiteSpace(); + State = 1378; whiteSpace(); } } - State = 1383; Match(COMMA); - State = 1385; + State = 1381; Match(COMMA); + State = 1383; switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1384; whiteSpace(); + State = 1382; whiteSpace(); } break; } - State = 1387; valueStmt(0); + State = 1385; valueStmt(0); } } catch (RecognitionException re) { @@ -6987,47 +6987,47 @@ public RaiseEventStmtContext raiseEventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1389; Match(RAISEEVENT); - State = 1390; whiteSpace(); - State = 1391; identifier(); - State = 1406; + State = 1387; Match(RAISEEVENT); + State = 1388; whiteSpace(); + State = 1389; identifier(); + State = 1404; switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { case 1: { - State = 1393; + State = 1391; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1392; whiteSpace(); + State = 1390; whiteSpace(); } } - State = 1395; Match(LPAREN); - State = 1397; + State = 1393; Match(LPAREN); + State = 1395; switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { case 1: { - State = 1396; whiteSpace(); + State = 1394; whiteSpace(); } break; } - State = 1403; + State = 1401; switch ( Interpreter.AdaptivePredict(_input,185,_ctx) ) { case 1: { - State = 1399; argsCall(); - State = 1401; + State = 1397; argsCall(); + State = 1399; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1400; whiteSpace(); + State = 1398; whiteSpace(); } } } break; } - State = 1405; Match(RPAREN); + State = 1403; Match(RPAREN); } break; } @@ -7079,13 +7079,13 @@ public RandomizeStmtContext randomizeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1408; Match(RANDOMIZE); - State = 1412; + State = 1406; Match(RANDOMIZE); + State = 1410; switch ( Interpreter.AdaptivePredict(_input,187,_ctx) ) { case 1: { - State = 1409; whiteSpace(); - State = 1410; valueStmt(0); + State = 1407; whiteSpace(); + State = 1408; valueStmt(0); } break; } @@ -7150,47 +7150,47 @@ public RedimStmtContext redimStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1414; Match(REDIM); - State = 1415; whiteSpace(); - State = 1418; + State = 1412; Match(REDIM); + State = 1413; whiteSpace(); + State = 1416; switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1416; Match(PRESERVE); - State = 1417; whiteSpace(); + State = 1414; Match(PRESERVE); + State = 1415; whiteSpace(); } break; } - State = 1420; redimSubStmt(); - State = 1431; + State = 1418; redimSubStmt(); + State = 1429; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,191,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1422; + State = 1420; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1421; whiteSpace(); + State = 1419; whiteSpace(); } } - State = 1424; Match(COMMA); - State = 1426; + State = 1422; Match(COMMA); + State = 1424; switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { case 1: { - State = 1425; whiteSpace(); + State = 1423; whiteSpace(); } break; } - State = 1428; redimSubStmt(); + State = 1426; redimSubStmt(); } } } - State = 1433; + State = 1431; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,191,_ctx); } @@ -7253,40 +7253,40 @@ public RedimSubStmtContext redimSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1434; implicitCallStmt_InStmt(); - State = 1436; + State = 1432; implicitCallStmt_InStmt(); + State = 1434; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1435; whiteSpace(); + State = 1433; whiteSpace(); } } - State = 1438; Match(LPAREN); - State = 1440; + State = 1436; Match(LPAREN); + State = 1438; switch ( Interpreter.AdaptivePredict(_input,193,_ctx) ) { case 1: { - State = 1439; whiteSpace(); + State = 1437; whiteSpace(); } break; } - State = 1442; subscripts(); - State = 1444; + State = 1440; subscripts(); + State = 1442; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1443; whiteSpace(); + State = 1441; whiteSpace(); } } - State = 1446; Match(RPAREN); - State = 1450; + State = 1444; Match(RPAREN); + State = 1448; switch ( Interpreter.AdaptivePredict(_input,195,_ctx) ) { case 1: { - State = 1447; whiteSpace(); - State = 1448; asTypeClause(); + State = 1445; whiteSpace(); + State = 1446; asTypeClause(); } break; } @@ -7332,7 +7332,7 @@ public ResetStmtContext resetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1452; Match(RESET); + State = 1450; Match(RESET); } } catch (RecognitionException re) { @@ -7382,23 +7382,23 @@ public ResumeStmtContext resumeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1454; Match(RESUME); - State = 1460; + State = 1452; Match(RESUME); + State = 1458; switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1455; whiteSpace(); - State = 1458; + State = 1453; whiteSpace(); + State = 1456; switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { case 1: { - State = 1456; Match(NEXT); + State = 1454; Match(NEXT); } break; case 2: { - State = 1457; identifier(); + State = 1455; identifier(); } break; } @@ -7447,7 +7447,7 @@ public ReturnStmtContext returnStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1462; Match(RETURN); + State = 1460; Match(RETURN); } } catch (RecognitionException re) { @@ -7496,9 +7496,9 @@ public RmdirStmtContext rmdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1464; Match(RMDIR); - State = 1465; whiteSpace(); - State = 1466; valueStmt(0); + State = 1462; Match(RMDIR); + State = 1463; whiteSpace(); + State = 1464; valueStmt(0); } } catch (RecognitionException re) { @@ -7555,27 +7555,27 @@ public RsetStmtContext rsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1468; Match(RSET); - State = 1469; whiteSpace(); - State = 1470; implicitCallStmt_InStmt(); - State = 1472; + State = 1466; Match(RSET); + State = 1467; whiteSpace(); + State = 1468; implicitCallStmt_InStmt(); + State = 1470; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1471; whiteSpace(); + State = 1469; whiteSpace(); } } - State = 1474; Match(EQ); - State = 1476; + State = 1472; Match(EQ); + State = 1474; switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { case 1: { - State = 1475; whiteSpace(); + State = 1473; whiteSpace(); } break; } - State = 1478; valueStmt(0); + State = 1476; valueStmt(0); } } catch (RecognitionException re) { @@ -7632,27 +7632,27 @@ public SavepictureStmtContext savepictureStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1480; Match(SAVEPICTURE); - State = 1481; whiteSpace(); - State = 1482; valueStmt(0); - State = 1484; + State = 1478; Match(SAVEPICTURE); + State = 1479; whiteSpace(); + State = 1480; valueStmt(0); + State = 1482; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1483; whiteSpace(); + State = 1481; whiteSpace(); } } - State = 1486; Match(COMMA); - State = 1488; + State = 1484; Match(COMMA); + State = 1486; switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { case 1: { - State = 1487; whiteSpace(); + State = 1485; whiteSpace(); } break; } - State = 1490; valueStmt(0); + State = 1488; valueStmt(0); } } catch (RecognitionException re) { @@ -7712,63 +7712,63 @@ public SaveSettingStmtContext saveSettingStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1492; Match(SAVESETTING); - State = 1493; whiteSpace(); - State = 1494; valueStmt(0); - State = 1496; + State = 1490; Match(SAVESETTING); + State = 1491; whiteSpace(); + State = 1492; valueStmt(0); + State = 1494; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1495; whiteSpace(); + State = 1493; whiteSpace(); } } - State = 1498; Match(COMMA); - State = 1500; + State = 1496; Match(COMMA); + State = 1498; switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1499; whiteSpace(); + State = 1497; whiteSpace(); } break; } - State = 1502; valueStmt(0); - State = 1504; + State = 1500; valueStmt(0); + State = 1502; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1503; whiteSpace(); + State = 1501; whiteSpace(); } } - State = 1506; Match(COMMA); - State = 1508; + State = 1504; Match(COMMA); + State = 1506; switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1507; whiteSpace(); + State = 1505; whiteSpace(); } break; } - State = 1510; valueStmt(0); - State = 1512; + State = 1508; valueStmt(0); + State = 1510; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1511; whiteSpace(); + State = 1509; whiteSpace(); } } - State = 1514; Match(COMMA); - State = 1516; + State = 1512; Match(COMMA); + State = 1514; switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { case 1: { - State = 1515; whiteSpace(); + State = 1513; whiteSpace(); } break; } - State = 1518; valueStmt(0); + State = 1516; valueStmt(0); } } catch (RecognitionException re) { @@ -7825,27 +7825,27 @@ public SeekStmtContext seekStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1520; Match(SEEK); - State = 1521; whiteSpace(); - State = 1522; fileNumber(); - State = 1524; + State = 1518; Match(SEEK); + State = 1519; whiteSpace(); + State = 1520; fileNumber(); + State = 1522; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1523; whiteSpace(); + State = 1521; whiteSpace(); } } - State = 1526; Match(COMMA); - State = 1528; + State = 1524; Match(COMMA); + State = 1526; switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: { - State = 1527; whiteSpace(); + State = 1525; whiteSpace(); } break; } - State = 1530; valueStmt(0); + State = 1528; valueStmt(0); } } catch (RecognitionException re) { @@ -7909,26 +7909,26 @@ public SelectCaseStmtContext selectCaseStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1532; Match(SELECT); + State = 1530; Match(SELECT); + State = 1531; whiteSpace(); + State = 1532; Match(CASE); State = 1533; whiteSpace(); - State = 1534; Match(CASE); - State = 1535; whiteSpace(); - State = 1536; valueStmt(0); - State = 1537; endOfStatement(); - State = 1541; + State = 1534; valueStmt(0); + State = 1535; endOfStatement(); + State = 1539; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1538; sC_Case(); + State = 1536; sC_Case(); } } - State = 1543; + State = 1541; _errHandler.Sync(this); _la = _input.La(1); } - State = 1544; Match(END_SELECT); + State = 1542; Match(END_SELECT); } } catch (RecognitionException re) { @@ -8038,31 +8038,31 @@ public SC_SelectionContext sC_Selection() { EnterRule(_localctx, 160, RULE_sC_Selection); int _la; try { - State = 1563; + State = 1561; switch ( Interpreter.AdaptivePredict(_input,213,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1546; Match(IS); - State = 1548; + State = 1544; Match(IS); + State = 1546; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1547; whiteSpace(); + State = 1545; whiteSpace(); } } - State = 1550; comparisonOperator(); - State = 1552; + State = 1548; comparisonOperator(); + State = 1550; switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1551; whiteSpace(); + State = 1549; whiteSpace(); } break; } - State = 1554; valueStmt(0); + State = 1552; valueStmt(0); } break; @@ -8070,11 +8070,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1556; valueStmt(0); + State = 1554; valueStmt(0); + State = 1555; whiteSpace(); + State = 1556; Match(TO); State = 1557; whiteSpace(); - State = 1558; Match(TO); - State = 1559; whiteSpace(); - State = 1560; valueStmt(0); + State = 1558; valueStmt(0); } break; @@ -8082,7 +8082,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1562; valueStmt(0); + State = 1560; valueStmt(0); } break; } @@ -8139,15 +8139,15 @@ public SC_CaseContext sC_Case() { try { EnterOuterAlt(_localctx, 1); { - State = 1565; Match(CASE); - State = 1566; whiteSpace(); - State = 1567; sC_Cond(); - State = 1568; endOfStatement(); - State = 1570; + State = 1563; Match(CASE); + State = 1564; whiteSpace(); + State = 1565; sC_Cond(); + State = 1566; endOfStatement(); + State = 1568; switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: { - State = 1569; block(); + State = 1567; block(); } break; } @@ -8233,13 +8233,13 @@ public SC_CondContext sC_Cond() { int _la; try { int _alt; - State = 1587; + State = 1585; switch ( Interpreter.AdaptivePredict(_input,218,_ctx) ) { case 1: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1572; Match(ELSE); + State = 1570; Match(ELSE); } break; @@ -8247,36 +8247,36 @@ public SC_CondContext sC_Cond() { _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1573; sC_Selection(); - State = 1584; + State = 1571; sC_Selection(); + State = 1582; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,217,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1575; + State = 1573; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1574; whiteSpace(); + State = 1572; whiteSpace(); } } - State = 1577; Match(COMMA); - State = 1579; + State = 1575; Match(COMMA); + State = 1577; switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1578; whiteSpace(); + State = 1576; whiteSpace(); } break; } - State = 1581; sC_Selection(); + State = 1579; sC_Selection(); } } } - State = 1586; + State = 1584; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,217,_ctx); } @@ -8338,31 +8338,31 @@ public SendkeysStmtContext sendkeysStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1589; Match(SENDKEYS); - State = 1590; whiteSpace(); - State = 1591; valueStmt(0); - State = 1600; + State = 1587; Match(SENDKEYS); + State = 1588; whiteSpace(); + State = 1589; valueStmt(0); + State = 1598; switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1593; + State = 1591; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1592; whiteSpace(); + State = 1590; whiteSpace(); } } - State = 1595; Match(COMMA); - State = 1597; + State = 1593; Match(COMMA); + State = 1595; switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { case 1: { - State = 1596; whiteSpace(); + State = 1594; whiteSpace(); } break; } - State = 1599; valueStmt(0); + State = 1597; valueStmt(0); } break; } @@ -8422,27 +8422,27 @@ public SetattrStmtContext setattrStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1602; Match(SETATTR); - State = 1603; whiteSpace(); - State = 1604; valueStmt(0); - State = 1606; + State = 1600; Match(SETATTR); + State = 1601; whiteSpace(); + State = 1602; valueStmt(0); + State = 1604; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1605; whiteSpace(); + State = 1603; whiteSpace(); } } - State = 1608; Match(COMMA); - State = 1610; + State = 1606; Match(COMMA); + State = 1608; switch ( Interpreter.AdaptivePredict(_input,223,_ctx) ) { case 1: { - State = 1609; whiteSpace(); + State = 1607; whiteSpace(); } break; } - State = 1612; valueStmt(0); + State = 1610; valueStmt(0); } } catch (RecognitionException re) { @@ -8499,27 +8499,27 @@ public SetStmtContext setStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1614; Match(SET); - State = 1615; whiteSpace(); - State = 1616; implicitCallStmt_InStmt(); - State = 1618; + State = 1612; Match(SET); + State = 1613; whiteSpace(); + State = 1614; implicitCallStmt_InStmt(); + State = 1616; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1617; whiteSpace(); + State = 1615; whiteSpace(); } } - State = 1620; Match(EQ); - State = 1622; + State = 1618; Match(EQ); + State = 1620; switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { case 1: { - State = 1621; whiteSpace(); + State = 1619; whiteSpace(); } break; } - State = 1624; valueStmt(0); + State = 1622; valueStmt(0); } } catch (RecognitionException re) { @@ -8562,7 +8562,7 @@ public StopStmtContext stopStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1626; Match(STOP); + State = 1624; Match(STOP); } } catch (RecognitionException re) { @@ -8629,60 +8629,60 @@ public SubStmtContext subStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1631; + State = 1629; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1628; visibility(); - State = 1629; whiteSpace(); + State = 1626; visibility(); + State = 1627; whiteSpace(); } } - State = 1635; + State = 1633; _la = _input.La(1); if (_la==STATIC) { { - State = 1633; Match(STATIC); - State = 1634; whiteSpace(); + State = 1631; Match(STATIC); + State = 1632; whiteSpace(); } } - State = 1637; Match(SUB); - State = 1639; + State = 1635; Match(SUB); + State = 1637; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1638; whiteSpace(); + State = 1636; whiteSpace(); } } - State = 1641; identifier(); - State = 1646; + State = 1639; identifier(); + State = 1644; switch ( Interpreter.AdaptivePredict(_input,230,_ctx) ) { case 1: { - State = 1643; + State = 1641; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1642; whiteSpace(); + State = 1640; whiteSpace(); } } - State = 1645; argList(); + State = 1643; argList(); } break; } - State = 1648; endOfStatement(); - State = 1650; + State = 1646; endOfStatement(); + State = 1648; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1649; block(); + State = 1647; block(); } } - State = 1652; Match(END_SUB); + State = 1650; Match(END_SUB); } } catch (RecognitionException re) { @@ -8736,25 +8736,25 @@ public TimeStmtContext timeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1654; Match(TIME); - State = 1656; + State = 1652; Match(TIME); + State = 1654; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1655; whiteSpace(); + State = 1653; whiteSpace(); } } - State = 1658; Match(EQ); - State = 1660; + State = 1656; Match(EQ); + State = 1658; switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1659; whiteSpace(); + State = 1657; whiteSpace(); } break; } - State = 1662; valueStmt(0); + State = 1660; valueStmt(0); } } catch (RecognitionException re) { @@ -8820,33 +8820,33 @@ public TypeStmtContext typeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1667; + State = 1665; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1664; visibility(); - State = 1665; whiteSpace(); + State = 1662; visibility(); + State = 1663; whiteSpace(); } } - State = 1669; Match(TYPE); - State = 1670; whiteSpace(); - State = 1671; identifier(); - State = 1672; endOfStatement(); - State = 1676; + State = 1667; Match(TYPE); + State = 1668; whiteSpace(); + State = 1669; identifier(); + State = 1670; endOfStatement(); + State = 1674; _errHandler.Sync(this); _la = _input.La(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==COLLECTION) { { { - State = 1673; typeStmt_Element(); + State = 1671; typeStmt_Element(); } } - State = 1678; + State = 1676; _errHandler.Sync(this); _la = _input.La(1); } - State = 1679; Match(END_TYPE); + State = 1677; Match(END_TYPE); } } catch (RecognitionException re) { @@ -8909,58 +8909,58 @@ public TypeStmt_ElementContext typeStmt_Element() { try { EnterOuterAlt(_localctx, 1); { - State = 1681; identifier(); - State = 1696; + State = 1679; identifier(); + State = 1694; switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { case 1: { - State = 1683; + State = 1681; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1682; whiteSpace(); + State = 1680; whiteSpace(); } } - State = 1685; Match(LPAREN); - State = 1690; + State = 1683; Match(LPAREN); + State = 1688; switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { case 1: { - State = 1687; + State = 1685; switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1686; whiteSpace(); + State = 1684; whiteSpace(); } break; } - State = 1689; subscripts(); + State = 1687; subscripts(); } break; } - State = 1693; + State = 1691; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1692; whiteSpace(); + State = 1690; whiteSpace(); } } - State = 1695; Match(RPAREN); + State = 1693; Match(RPAREN); } break; } - State = 1701; + State = 1699; switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1698; whiteSpace(); - State = 1699; asTypeClause(); + State = 1696; whiteSpace(); + State = 1697; asTypeClause(); } break; } - State = 1703; endOfStatement(); + State = 1701; endOfStatement(); } } catch (RecognitionException re) { @@ -9009,9 +9009,9 @@ public UnloadStmtContext unloadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1705; Match(UNLOAD); - State = 1706; whiteSpace(); - State = 1707; valueStmt(0); + State = 1703; Match(UNLOAD); + State = 1704; whiteSpace(); + State = 1705; valueStmt(0); } } catch (RecognitionException re) { @@ -9072,39 +9072,39 @@ public UnlockStmtContext unlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1709; Match(UNLOCK); - State = 1710; whiteSpace(); - State = 1711; fileNumber(); - State = 1727; + State = 1707; Match(UNLOCK); + State = 1708; whiteSpace(); + State = 1709; fileNumber(); + State = 1725; switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { case 1: { - State = 1713; + State = 1711; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1712; whiteSpace(); + State = 1710; whiteSpace(); } } - State = 1715; Match(COMMA); - State = 1717; + State = 1713; Match(COMMA); + State = 1715; switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1716; whiteSpace(); + State = 1714; whiteSpace(); } break; } - State = 1719; valueStmt(0); - State = 1725; + State = 1717; valueStmt(0); + State = 1723; switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { case 1: { + State = 1718; whiteSpace(); + State = 1719; Match(TO); State = 1720; whiteSpace(); - State = 1721; Match(TO); - State = 1722; whiteSpace(); - State = 1723; valueStmt(0); + State = 1721; valueStmt(0); } break; } @@ -9735,7 +9735,7 @@ private ValueStmtContext valueStmt(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1774; + State = 1772; switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { case 1: { @@ -9743,16 +9743,16 @@ private ValueStmtContext valueStmt(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 1730; Match(NEW); - State = 1732; + State = 1728; Match(NEW); + State = 1730; switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1731; whiteSpace(); + State = 1729; whiteSpace(); } break; } - State = 1734; valueStmt(19); + State = 1732; valueStmt(19); } break; @@ -9761,16 +9761,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1735; Match(ADDRESSOF); - State = 1737; + State = 1733; Match(ADDRESSOF); + State = 1735; switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { case 1: { - State = 1736; whiteSpace(); + State = 1734; whiteSpace(); } break; } - State = 1739; valueStmt(16); + State = 1737; valueStmt(16); } break; @@ -9779,25 +9779,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1740; implicitCallStmt_InStmt(); - State = 1742; + State = 1738; implicitCallStmt_InStmt(); + State = 1740; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1741; whiteSpace(); + State = 1739; whiteSpace(); } } - State = 1744; Match(ASSIGN); - State = 1746; + State = 1742; Match(ASSIGN); + State = 1744; switch ( Interpreter.AdaptivePredict(_input,249,_ctx) ) { case 1: { - State = 1745; whiteSpace(); + State = 1743; whiteSpace(); } break; } - State = 1748; valueStmt(15); + State = 1746; valueStmt(15); } break; @@ -9806,16 +9806,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1750; Match(MINUS); - State = 1752; + State = 1748; Match(MINUS); + State = 1750; switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { case 1: { - State = 1751; whiteSpace(); + State = 1749; whiteSpace(); } break; } - State = 1754; valueStmt(13); + State = 1752; valueStmt(13); } break; @@ -9824,16 +9824,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1755; Match(NOT); - State = 1757; + State = 1753; Match(NOT); + State = 1755; switch ( Interpreter.AdaptivePredict(_input,251,_ctx) ) { case 1: { - State = 1756; whiteSpace(); + State = 1754; whiteSpace(); } break; } - State = 1759; valueStmt(6); + State = 1757; valueStmt(6); } break; @@ -9842,7 +9842,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1760; literal(); + State = 1758; literal(); } break; @@ -9851,7 +9851,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1761; implicitCallStmt_InStmt(); + State = 1759; implicitCallStmt_InStmt(); } break; @@ -9860,25 +9860,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1762; Match(LPAREN); - State = 1764; + State = 1760; Match(LPAREN); + State = 1762; switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { case 1: { - State = 1763; whiteSpace(); + State = 1761; whiteSpace(); } break; } - State = 1766; valueStmt(0); - State = 1768; + State = 1764; valueStmt(0); + State = 1766; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1767; whiteSpace(); + State = 1765; whiteSpace(); } } - State = 1770; Match(RPAREN); + State = 1768; Match(RPAREN); } break; @@ -9887,7 +9887,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1772; typeOfIsExpression(); + State = 1770; typeOfIsExpression(); } break; @@ -9896,12 +9896,12 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1773; midStmt(); + State = 1771; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1886; + State = 1884; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,280,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -9909,32 +9909,32 @@ private ValueStmtContext valueStmt(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1884; + State = 1882; switch ( Interpreter.AdaptivePredict(_input,279,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1776; + State = 1774; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1778; + State = 1776; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1777; whiteSpace(); + State = 1775; whiteSpace(); } } - State = 1780; Match(POW); - State = 1782; + State = 1778; Match(POW); + State = 1780; switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1781; whiteSpace(); + State = 1779; whiteSpace(); } break; } - State = 1784; valueStmt(15); + State = 1782; valueStmt(15); } break; @@ -9942,31 +9942,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1785; + State = 1783; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1787; + State = 1785; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1786; whiteSpace(); + State = 1784; whiteSpace(); } } - State = 1789; + State = 1787; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1791; + State = 1789; switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1790; whiteSpace(); + State = 1788; whiteSpace(); } break; } - State = 1793; valueStmt(13); + State = 1791; valueStmt(13); } break; @@ -9974,26 +9974,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1794; + State = 1792; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1796; + State = 1794; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1795; whiteSpace(); + State = 1793; whiteSpace(); } } - State = 1798; Match(INTDIV); - State = 1800; + State = 1796; Match(INTDIV); + State = 1798; switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { case 1: { - State = 1799; whiteSpace(); + State = 1797; whiteSpace(); } break; } - State = 1802; valueStmt(12); + State = 1800; valueStmt(12); } break; @@ -10001,26 +10001,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1803; + State = 1801; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1805; + State = 1803; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1804; whiteSpace(); + State = 1802; whiteSpace(); } } - State = 1807; Match(MOD); - State = 1809; + State = 1805; Match(MOD); + State = 1807; switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1808; whiteSpace(); + State = 1806; whiteSpace(); } break; } - State = 1811; valueStmt(11); + State = 1809; valueStmt(11); } break; @@ -10028,31 +10028,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1812; + State = 1810; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1814; + State = 1812; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1813; whiteSpace(); + State = 1811; whiteSpace(); } } - State = 1816; + State = 1814; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1818; + State = 1816; switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { case 1: { - State = 1817; whiteSpace(); + State = 1815; whiteSpace(); } break; } - State = 1820; valueStmt(10); + State = 1818; valueStmt(10); } break; @@ -10060,26 +10060,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1821; + State = 1819; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1823; + State = 1821; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1822; whiteSpace(); + State = 1820; whiteSpace(); } } - State = 1825; Match(AMPERSAND); - State = 1827; + State = 1823; Match(AMPERSAND); + State = 1825; switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1826; whiteSpace(); + State = 1824; whiteSpace(); } break; } - State = 1829; valueStmt(9); + State = 1827; valueStmt(9); } break; @@ -10087,31 +10087,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1830; + State = 1828; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1832; + State = 1830; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1831; whiteSpace(); + State = 1829; whiteSpace(); } } - State = 1834; + State = 1832; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1836; + State = 1834; switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1835; whiteSpace(); + State = 1833; whiteSpace(); } break; } - State = 1838; valueStmt(8); + State = 1836; valueStmt(8); } break; @@ -10119,26 +10119,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1839; + State = 1837; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1841; + State = 1839; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1840; whiteSpace(); + State = 1838; whiteSpace(); } } - State = 1843; Match(AND); - State = 1845; + State = 1841; Match(AND); + State = 1843; switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { case 1: { - State = 1844; whiteSpace(); + State = 1842; whiteSpace(); } break; } - State = 1847; valueStmt(6); + State = 1845; valueStmt(6); } break; @@ -10146,26 +10146,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1848; + State = 1846; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1850; + State = 1848; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1849; whiteSpace(); + State = 1847; whiteSpace(); } } - State = 1852; Match(OR); - State = 1854; + State = 1850; Match(OR); + State = 1852; switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { case 1: { - State = 1853; whiteSpace(); + State = 1851; whiteSpace(); } break; } - State = 1856; valueStmt(5); + State = 1854; valueStmt(5); } break; @@ -10173,26 +10173,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1857; + State = 1855; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1859; + State = 1857; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1858; whiteSpace(); + State = 1856; whiteSpace(); } } - State = 1861; Match(XOR); - State = 1863; + State = 1859; Match(XOR); + State = 1861; switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { case 1: { - State = 1862; whiteSpace(); + State = 1860; whiteSpace(); } break; } - State = 1865; valueStmt(4); + State = 1863; valueStmt(4); } break; @@ -10200,26 +10200,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1866; + State = 1864; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1868; + State = 1866; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1867; whiteSpace(); + State = 1865; whiteSpace(); } } - State = 1870; Match(EQV); - State = 1872; + State = 1868; Match(EQV); + State = 1870; switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { case 1: { - State = 1871; whiteSpace(); + State = 1869; whiteSpace(); } break; } - State = 1874; valueStmt(3); + State = 1872; valueStmt(3); } break; @@ -10227,32 +10227,32 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1875; + State = 1873; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1877; + State = 1875; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1876; whiteSpace(); + State = 1874; whiteSpace(); } } - State = 1879; Match(IMP); - State = 1881; + State = 1877; Match(IMP); + State = 1879; switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { case 1: { - State = 1880; whiteSpace(); + State = 1878; whiteSpace(); } break; } - State = 1883; valueStmt(2); + State = 1881; valueStmt(2); } break; } } } - State = 1888; + State = 1886; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,280,_ctx); } @@ -10311,17 +10311,17 @@ public TypeOfIsExpressionContext typeOfIsExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1889; Match(TYPEOF); - State = 1890; whiteSpace(); - State = 1891; valueStmt(0); - State = 1897; + State = 1887; Match(TYPEOF); + State = 1888; whiteSpace(); + State = 1889; valueStmt(0); + State = 1895; switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { case 1: { + State = 1890; whiteSpace(); + State = 1891; Match(IS); State = 1892; whiteSpace(); - State = 1893; Match(IS); - State = 1894; whiteSpace(); - State = 1895; type(); + State = 1893; type(); } break; } @@ -10381,16 +10381,16 @@ public VariableStmtContext variableStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1902; + State = 1900; switch (_input.La(1)) { case DIM: { - State = 1899; Match(DIM); + State = 1897; Match(DIM); } break; case STATIC: { - State = 1900; Match(STATIC); + State = 1898; Match(STATIC); } break; case FRIEND: @@ -10398,23 +10398,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1901; visibility(); + State = 1899; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1904; whiteSpace(); - State = 1907; + State = 1902; whiteSpace(); + State = 1905; switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: { - State = 1905; Match(WITHEVENTS); - State = 1906; whiteSpace(); + State = 1903; Match(WITHEVENTS); + State = 1904; whiteSpace(); } break; } - State = 1909; variableListStmt(); + State = 1907; variableListStmt(); } } catch (RecognitionException re) { @@ -10474,36 +10474,36 @@ public VariableListStmtContext variableListStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1911; variableSubStmt(); - State = 1922; + State = 1909; variableSubStmt(); + State = 1920; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,286,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1913; + State = 1911; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1912; whiteSpace(); + State = 1910; whiteSpace(); } } - State = 1915; Match(COMMA); - State = 1917; + State = 1913; Match(COMMA); + State = 1915; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1916; whiteSpace(); + State = 1914; whiteSpace(); } } - State = 1919; variableSubStmt(); + State = 1917; variableSubStmt(); } } } - State = 1924; + State = 1922; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,286,_ctx); } @@ -10569,70 +10569,70 @@ public VariableSubStmtContext variableSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1925; identifier(); - State = 1943; + State = 1923; identifier(); + State = 1941; switch ( Interpreter.AdaptivePredict(_input,292,_ctx) ) { case 1: { - State = 1927; + State = 1925; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1926; whiteSpace(); + State = 1924; whiteSpace(); } } - State = 1929; Match(LPAREN); - State = 1931; + State = 1927; Match(LPAREN); + State = 1929; switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 1930; whiteSpace(); + State = 1928; whiteSpace(); } break; } - State = 1937; + State = 1935; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1933; subscripts(); - State = 1935; + State = 1931; subscripts(); + State = 1933; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1934; whiteSpace(); + State = 1932; whiteSpace(); } } } } - State = 1939; Match(RPAREN); - State = 1941; + State = 1937; Match(RPAREN); + State = 1939; switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1940; whiteSpace(); + State = 1938; whiteSpace(); } break; } } break; } - State = 1946; + State = 1944; switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { case 1: { - State = 1945; typeHint(); + State = 1943; typeHint(); } break; } - State = 1951; + State = 1949; switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 1948; whiteSpace(); - State = 1949; asTypeClause(); + State = 1946; whiteSpace(); + State = 1947; asTypeClause(); } break; } @@ -10691,19 +10691,19 @@ public WhileWendStmtContext whileWendStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1953; Match(WHILE); - State = 1954; whiteSpace(); - State = 1955; valueStmt(0); - State = 1956; endOfStatement(); - State = 1958; + State = 1951; Match(WHILE); + State = 1952; whiteSpace(); + State = 1953; valueStmt(0); + State = 1954; endOfStatement(); + State = 1956; switch ( Interpreter.AdaptivePredict(_input,295,_ctx) ) { case 1: { - State = 1957; block(); + State = 1955; block(); } break; } - State = 1960; Match(WEND); + State = 1958; Match(WEND); } } catch (RecognitionException re) { @@ -10760,27 +10760,27 @@ public WidthStmtContext widthStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1962; Match(WIDTH); - State = 1963; whiteSpace(); - State = 1964; fileNumber(); - State = 1966; + State = 1960; Match(WIDTH); + State = 1961; whiteSpace(); + State = 1962; fileNumber(); + State = 1964; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1965; whiteSpace(); + State = 1963; whiteSpace(); } } - State = 1968; Match(COMMA); - State = 1970; + State = 1966; Match(COMMA); + State = 1968; switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: { - State = 1969; whiteSpace(); + State = 1967; whiteSpace(); } break; } - State = 1972; valueStmt(0); + State = 1970; valueStmt(0); } } catch (RecognitionException re) { @@ -10837,19 +10837,19 @@ public WithStmtContext withStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1974; Match(WITH); - State = 1975; whiteSpace(); - State = 1976; withStmtExpression(); - State = 1977; endOfStatement(); - State = 1979; + State = 1972; Match(WITH); + State = 1973; whiteSpace(); + State = 1974; withStmtExpression(); + State = 1975; endOfStatement(); + State = 1977; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1978; block(); + State = 1976; block(); } } - State = 1981; Match(END_WITH); + State = 1979; Match(END_WITH); } } catch (RecognitionException re) { @@ -10901,20 +10901,20 @@ public WithStmtExpressionContext withStmtExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1988; + State = 1986; switch ( Interpreter.AdaptivePredict(_input,299,_ctx) ) { case 1: { - State = 1983; implicitCallStmt_InStmt(); + State = 1981; implicitCallStmt_InStmt(); } break; case 2: { { - State = 1984; Match(NEW); - State = 1985; whiteSpace(); - State = 1986; type(); + State = 1982; Match(NEW); + State = 1983; whiteSpace(); + State = 1984; type(); } } break; @@ -10975,31 +10975,31 @@ public WriteStmtContext writeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1990; Match(WRITE); - State = 1991; whiteSpace(); - State = 1992; fileNumber(); - State = 1994; + State = 1988; Match(WRITE); + State = 1989; whiteSpace(); + State = 1990; fileNumber(); + State = 1992; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1993; whiteSpace(); + State = 1991; whiteSpace(); } } - State = 1996; Match(COMMA); - State = 2001; + State = 1994; Match(COMMA); + State = 1999; switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { case 1: { - State = 1998; + State = 1996; switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { case 1: { - State = 1997; whiteSpace(); + State = 1995; whiteSpace(); } break; } - State = 2000; outputList(); + State = 1998; outputList(); } break; } @@ -11049,15 +11049,15 @@ public FileNumberContext fileNumber() { try { EnterOuterAlt(_localctx, 1); { - State = 2004; + State = 2002; _la = _input.La(1); if (_la==HASH) { { - State = 2003; Match(HASH); + State = 2001; Match(HASH); } } - State = 2006; valueStmt(0); + State = 2004; valueStmt(0); } } catch (RecognitionException re) { @@ -11072,11 +11072,12 @@ public FileNumberContext fileNumber() { } public partial class ExplicitCallStmtContext : ParserRuleContext { - public ECS_ProcedureCallContext eCS_ProcedureCall() { - return GetRuleContext(0); + public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } + public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { + return GetRuleContext(0); } - public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { - return GetRuleContext(0); + public WhiteSpaceContext whiteSpace() { + return GetRuleContext(0); } public ExplicitCallStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -11103,21 +11104,11 @@ public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); EnterRule(_localctx, 208, RULE_explicitCallStmt); try { - State = 2010; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 2008; eCS_ProcedureCall(); - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 2009; eCS_MemberProcedureCall(); - } - break; + EnterOuterAlt(_localctx, 1); + { + State = 2006; Match(CALL); + State = 2007; whiteSpace(); + State = 2008; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -11131,18 +11122,19 @@ public ExplicitCallStmtContext explicitCallStmt() { return _localctx; } - public partial class ECS_ProcedureCallContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode RPAREN(int i) { - return GetToken(VBAParser.RPAREN, i); + public partial class ExplicitCallStmtExpressionContext : ParserRuleContext { + public ExplicitCallStmtExpressionContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } - public TypeHintContext typeHint() { - return GetRuleContext(0); + public override int RuleIndex { get { return RULE_explicitCallStmtExpression; } } + + public ExplicitCallStmtExpressionContext() { } + public virtual void CopyFrom(ExplicitCallStmtExpressionContext context) { + base.CopyFrom(context); } + } + public partial class ECS_MemberCallContext : ExplicitCallStmtExpressionContext { public IReadOnlyList whiteSpace() { return GetRuleContexts(); } @@ -11153,129 +11145,55 @@ public ArgsCallContext argsCall() { public IdentifierContext identifier() { return GetRuleContext(0); } - public IReadOnlyList subscripts() { - return GetRuleContexts(); + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); } public SubscriptsContext subscripts(int i) { return GetRuleContext(i); } + public ITerminalNode DOT() { return GetToken(VBAParser.DOT, 0); } + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } public ITerminalNode LPAREN(int i) { return GetToken(VBAParser.LPAREN, i); } - public ECS_ProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eCS_ProcedureCall; } } + public ECS_MemberCallContext(ExplicitCallStmtExpressionContext context) { CopyFrom(context); } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterECS_ProcedureCall(this); + if (typedListener != null) typedListener.EnterECS_MemberCall(this); } public override void ExitRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitECS_ProcedureCall(this); + if (typedListener != null) typedListener.ExitECS_MemberCall(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitECS_ProcedureCall(this); + if (typedVisitor != null) return typedVisitor.VisitECS_MemberCall(this); else return visitor.VisitChildren(this); } } - - [RuleVersion(0)] - public ECS_ProcedureCallContext eCS_ProcedureCall() { - ECS_ProcedureCallContext _localctx = new ECS_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 210, RULE_eCS_ProcedureCall); - int _la; - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2012; Match(CALL); - State = 2013; whiteSpace(); - State = 2014; identifier(); - State = 2016; - switch ( Interpreter.AdaptivePredict(_input,305,_ctx) ) { - case 1: - { - State = 2015; typeHint(); - } - break; - } - State = 2031; - switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { - case 1: - { - State = 2019; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 2018; whiteSpace(); - } - } - - State = 2021; Match(LPAREN); - State = 2023; - switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { - case 1: - { - State = 2022; whiteSpace(); - } - break; - } - State = 2025; argsCall(); - State = 2027; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 2026; whiteSpace(); - } - } - - State = 2029; Match(RPAREN); - } - break; - } - State = 2042; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,311,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - { - State = 2034; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 2033; whiteSpace(); - } - } - - State = 2036; Match(LPAREN); - State = 2037; subscripts(); - State = 2038; Match(RPAREN); - } - } - } - State = 2044; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,311,_ctx); - } - } + public partial class ECS_ProcedureCallContext : ExplicitCallStmtExpressionContext { + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); } - finally { - ExitRule(); + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); } - return _localctx; - } - - public partial class ECS_MemberProcedureCallContext : ParserRuleContext { - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } @@ -11286,137 +11204,198 @@ public ArgsCallContext argsCall() { public IdentifierContext identifier() { return GetRuleContext(0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public IReadOnlyList subscripts() { + return GetRuleContexts(); } public SubscriptsContext subscripts(int i) { return GetRuleContext(i); } - public ITerminalNode DOT() { return GetToken(VBAParser.DOT, 0); } - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode RPAREN(int i) { - return GetToken(VBAParser.RPAREN, i); - } - public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } - public TypeHintContext typeHint() { - return GetRuleContext(0); - } - public IReadOnlyList subscripts() { - return GetRuleContexts(); - } public ITerminalNode LPAREN(int i) { return GetToken(VBAParser.LPAREN, i); } - public ECS_MemberProcedureCallContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_eCS_MemberProcedureCall; } } + public ECS_ProcedureCallContext(ExplicitCallStmtExpressionContext context) { CopyFrom(context); } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterECS_MemberProcedureCall(this); + if (typedListener != null) typedListener.EnterECS_ProcedureCall(this); } public override void ExitRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitECS_MemberProcedureCall(this); + if (typedListener != null) typedListener.ExitECS_ProcedureCall(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitECS_MemberProcedureCall(this); + if (typedVisitor != null) return typedVisitor.VisitECS_ProcedureCall(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public ECS_MemberProcedureCallContext eCS_MemberProcedureCall() { - ECS_MemberProcedureCallContext _localctx = new ECS_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 212, RULE_eCS_MemberProcedureCall); + public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { + ExplicitCallStmtExpressionContext _localctx = new ExplicitCallStmtExpressionContext(_ctx, State); + EnterRule(_localctx, 210, RULE_explicitCallStmtExpression); int _la; try { int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 2045; Match(CALL); - State = 2046; whiteSpace(); - State = 2048; - switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { - case 1: - { - State = 2047; implicitCallStmt_InStmt(); - } - break; - } - State = 2050; Match(DOT); - State = 2051; identifier(); - State = 2053; - switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { - case 1: - { - State = 2052; typeHint(); - } - break; - } - State = 2068; - switch ( Interpreter.AdaptivePredict(_input,317,_ctx) ) { + State = 2076; + switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { case 1: + _localctx = new ECS_MemberCallContext(_localctx); + EnterOuterAlt(_localctx, 1); { - State = 2056; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 2011; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + case 1: { - State = 2055; whiteSpace(); + State = 2010; implicitCallStmt_InStmt(); } + break; } - - State = 2058; Match(LPAREN); - State = 2060; - switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { + State = 2013; Match(DOT); + State = 2014; identifier(); + State = 2016; + switch ( Interpreter.AdaptivePredict(_input,305,_ctx) ) { case 1: { - State = 2059; whiteSpace(); + State = 2015; typeHint(); } break; } - State = 2062; argsCall(); - State = 2064; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 2031; + switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + case 1: { - State = 2063; whiteSpace(); + State = 2019; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2018; whiteSpace(); + } + } + + State = 2021; Match(LPAREN); + State = 2023; + switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { + case 1: + { + State = 2022; whiteSpace(); + } + break; + } + State = 2025; argsCall(); + State = 2027; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2026; whiteSpace(); + } } + + State = 2029; Match(RPAREN); + } + break; } + State = 2042; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,311,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2034; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2033; whiteSpace(); + } + } - State = 2066; Match(RPAREN); + State = 2036; Match(LPAREN); + State = 2037; subscripts(); + State = 2038; Match(RPAREN); + } + } + } + State = 2044; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,311,_ctx); + } } break; - } - State = 2079; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,319,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { + + case 2: + _localctx = new ECS_ProcedureCallContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 2045; identifier(); + State = 2047; + switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + case 1: { + State = 2046; typeHint(); + } + break; + } + State = 2062; + switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { + case 1: { - State = 2071; + State = 2050; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2049; whiteSpace(); + } + } + + State = 2052; Match(LPAREN); + State = 2054; + switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + case 1: + { + State = 2053; whiteSpace(); + } + break; + } + State = 2056; argsCall(); + State = 2058; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2070; whiteSpace(); + State = 2057; whiteSpace(); } } - State = 2073; Match(LPAREN); - State = 2074; subscripts(); - State = 2075; Match(RPAREN); + State = 2060; Match(RPAREN); } - } + break; } - State = 2081; + State = 2073; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,319,_ctx); - } + _alt = Interpreter.AdaptivePredict(_input,318,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2065; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2064; whiteSpace(); + } + } + + State = 2067; Match(LPAREN); + State = 2068; subscripts(); + State = 2069; Match(RPAREN); + } + } + } + State = 2075; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,318,_ctx); + } + } + break; } } catch (RecognitionException re) { @@ -11460,21 +11439,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 214, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); try { - State = 2084; + State = 2080; switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2082; iCS_B_MemberProcedureCall(); + State = 2078; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2083; iCS_B_ProcedureCall(); + State = 2079; iCS_B_ProcedureCall(); } break; } @@ -11550,93 +11529,93 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 216, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 214, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2087; + State = 2083; switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { case 1: { - State = 2086; implicitCallStmt_InStmt(); + State = 2082; implicitCallStmt_InStmt(); } break; } - State = 2090; + State = 2086; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2089; whiteSpace(); + State = 2085; whiteSpace(); } } - State = 2092; Match(DOT); - State = 2094; + State = 2088; Match(DOT); + State = 2090; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2093; whiteSpace(); + State = 2089; whiteSpace(); } } - State = 2096; identifier(); - State = 2098; + State = 2092; identifier(); + State = 2094; switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { case 1: { - State = 2097; typeHint(); + State = 2093; typeHint(); } break; } - State = 2103; + State = 2099; switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 2100; whiteSpace(); - State = 2101; argsCall(); + State = 2096; whiteSpace(); + State = 2097; argsCall(); } break; } - State = 2109; + State = 2105; switch ( Interpreter.AdaptivePredict(_input,327,_ctx) ) { case 1: { - State = 2106; + State = 2102; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2105; whiteSpace(); + State = 2101; whiteSpace(); } } - State = 2108; dictionaryCallStmt(); + State = 2104; dictionaryCallStmt(); } break; } - State = 2120; + State = 2116; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,329,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2112; + State = 2108; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2111; whiteSpace(); + State = 2107; whiteSpace(); } } - State = 2114; Match(LPAREN); - State = 2115; subscripts(); - State = 2116; Match(RPAREN); + State = 2110; Match(LPAREN); + State = 2111; subscripts(); + State = 2112; Match(RPAREN); } } } - State = 2122; + State = 2118; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,329,_ctx); } @@ -11703,44 +11682,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 218, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 216, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2123; identifier(); - State = 2127; + State = 2119; identifier(); + State = 2123; switch ( Interpreter.AdaptivePredict(_input,330,_ctx) ) { case 1: { - State = 2124; whiteSpace(); - State = 2125; argsCall(); + State = 2120; whiteSpace(); + State = 2121; argsCall(); } break; } - State = 2138; + State = 2134; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,332,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2130; + State = 2126; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2129; whiteSpace(); + State = 2125; whiteSpace(); } } - State = 2132; Match(LPAREN); - State = 2133; subscripts(); - State = 2134; Match(RPAREN); + State = 2128; Match(LPAREN); + State = 2129; subscripts(); + State = 2130; Match(RPAREN); } } } - State = 2140; + State = 2136; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,332,_ctx); } @@ -11793,35 +11772,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 220, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); try { - State = 2145; + State = 2141; switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2141; iCS_S_MembersCall(); + State = 2137; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2142; iCS_S_VariableOrProcedureCall(); + State = 2138; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2143; iCS_S_ProcedureOrArrayCall(); + State = 2139; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2144; iCS_S_DictionaryCall(); + State = 2140; iCS_S_DictionaryCall(); } break; } @@ -11890,59 +11869,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 222, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 220, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2147; identifier(); - State = 2149; + State = 2143; identifier(); + State = 2145; switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { case 1: { - State = 2148; typeHint(); + State = 2144; typeHint(); } break; } - State = 2155; + State = 2151; switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { case 1: { - State = 2152; + State = 2148; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2151; whiteSpace(); + State = 2147; whiteSpace(); } } - State = 2154; dictionaryCallStmt(); + State = 2150; dictionaryCallStmt(); } break; } - State = 2166; + State = 2162; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,338,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2158; + State = 2154; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2157; whiteSpace(); + State = 2153; whiteSpace(); } } - State = 2160; Match(LPAREN); - State = 2161; subscripts(); - State = 2162; Match(RPAREN); + State = 2156; Match(LPAREN); + State = 2157; subscripts(); + State = 2158; Match(RPAREN); } } } - State = 2168; + State = 2164; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,338,_ctx); } @@ -12018,106 +11997,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 224, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 222, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2171; + State = 2167; switch ( Interpreter.AdaptivePredict(_input,339,_ctx) ) { case 1: { - State = 2169; identifier(); + State = 2165; identifier(); } break; case 2: { - State = 2170; baseType(); + State = 2166; baseType(); } break; } - State = 2174; + State = 2170; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2173; typeHint(); + State = 2169; typeHint(); } } - State = 2177; + State = 2173; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2176; whiteSpace(); + State = 2172; whiteSpace(); } } - State = 2179; Match(LPAREN); - State = 2181; + State = 2175; Match(LPAREN); + State = 2177; switch ( Interpreter.AdaptivePredict(_input,342,_ctx) ) { case 1: { - State = 2180; whiteSpace(); + State = 2176; whiteSpace(); } break; } - State = 2187; + State = 2183; switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2183; argsCall(); - State = 2185; + State = 2179; argsCall(); + State = 2181; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2184; whiteSpace(); + State = 2180; whiteSpace(); } } } break; } - State = 2189; Match(RPAREN); - State = 2194; + State = 2185; Match(RPAREN); + State = 2190; switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { case 1: { - State = 2191; + State = 2187; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2190; whiteSpace(); + State = 2186; whiteSpace(); } } - State = 2193; dictionaryCallStmt(); + State = 2189; dictionaryCallStmt(); } break; } - State = 2205; + State = 2201; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,348,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2197; + State = 2193; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2196; whiteSpace(); + State = 2192; whiteSpace(); } } - State = 2199; Match(LPAREN); - State = 2200; subscripts(); - State = 2201; Match(RPAREN); + State = 2195; Match(LPAREN); + State = 2196; subscripts(); + State = 2197; Match(RPAREN); } } } - State = 2207; + State = 2203; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,348,_ctx); } @@ -12193,27 +12172,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 224, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2210; + State = 2206; switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { case 1: { - State = 2208; iCS_S_VariableOrProcedureCall(); + State = 2204; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2209; iCS_S_ProcedureOrArrayCall(); + State = 2205; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2216; + State = 2212; _errHandler.Sync(this); _alt = 1; do { @@ -12221,12 +12200,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2212; iCS_S_MemberCall(); - State = 2214; + State = 2208; iCS_S_MemberCall(); + State = 2210; switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { case 1: { - State = 2213; whiteSpace(); + State = 2209; whiteSpace(); } break; } @@ -12236,48 +12215,48 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2218; + State = 2214; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,351,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2224; + State = 2220; switch ( Interpreter.AdaptivePredict(_input,353,_ctx) ) { case 1: { - State = 2221; + State = 2217; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2220; whiteSpace(); + State = 2216; whiteSpace(); } } - State = 2223; dictionaryCallStmt(); + State = 2219; dictionaryCallStmt(); } break; } - State = 2235; + State = 2231; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,355,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2227; + State = 2223; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2226; whiteSpace(); + State = 2222; whiteSpace(); } } - State = 2229; Match(LPAREN); - State = 2230; subscripts(); - State = 2231; Match(RPAREN); + State = 2225; Match(LPAREN); + State = 2226; subscripts(); + State = 2227; Match(RPAREN); } } } - State = 2237; + State = 2233; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,355,_ctx); } @@ -12329,36 +12308,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 226, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2238; + State = 2234; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2240; + State = 2236; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2239; whiteSpace(); + State = 2235; whiteSpace(); } } - State = 2244; + State = 2240; switch ( Interpreter.AdaptivePredict(_input,357,_ctx) ) { case 1: { - State = 2242; iCS_S_VariableOrProcedureCall(); + State = 2238; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2243; iCS_S_ProcedureOrArrayCall(); + State = 2239; iCS_S_ProcedureOrArrayCall(); } break; } @@ -12405,20 +12384,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 230, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 228, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2247; + State = 2243; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2246; whiteSpace(); + State = 2242; whiteSpace(); } } - State = 2249; dictionaryCallStmt(); + State = 2245; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12476,98 +12455,98 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_argsCall); + EnterRule(_localctx, 230, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2263; + State = 2259; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,362,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2252; + State = 2248; switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2251; argCall(); + State = 2247; argCall(); } break; } - State = 2255; + State = 2251; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2254; whiteSpace(); + State = 2250; whiteSpace(); } } - State = 2257; + State = 2253; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2259; + State = 2255; switch ( Interpreter.AdaptivePredict(_input,361,_ctx) ) { case 1: { - State = 2258; whiteSpace(); + State = 2254; whiteSpace(); } break; } } } } - State = 2265; + State = 2261; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,362,_ctx); } - State = 2266; argCall(); - State = 2279; + State = 2262; argCall(); + State = 2275; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,366,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2268; + State = 2264; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2267; whiteSpace(); + State = 2263; whiteSpace(); } } - State = 2270; + State = 2266; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2272; + State = 2268; switch ( Interpreter.AdaptivePredict(_input,364,_ctx) ) { case 1: { - State = 2271; whiteSpace(); + State = 2267; whiteSpace(); } break; } - State = 2275; + State = 2271; switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2274; argCall(); + State = 2270; argCall(); } break; } } } } - State = 2281; + State = 2277; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,366,_ctx); } @@ -12619,42 +12598,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 234, RULE_argCall); + EnterRule(_localctx, 232, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2283; + State = 2279; switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2282; Match(LPAREN); + State = 2278; Match(LPAREN); } break; } - State = 2287; + State = 2283; switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { case 1: { - State = 2285; + State = 2281; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2286; whiteSpace(); + State = 2282; whiteSpace(); } break; } - State = 2290; + State = 2286; _la = _input.La(1); if (_la==RPAREN) { { - State = 2289; Match(RPAREN); + State = 2285; Match(RPAREN); } } - State = 2292; valueStmt(0); + State = 2288; valueStmt(0); } } catch (RecognitionException re) { @@ -12702,26 +12681,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 236, RULE_dictionaryCallStmt); + EnterRule(_localctx, 234, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2294; Match(EXCLAMATIONPOINT); - State = 2296; + State = 2290; Match(EXCLAMATIONPOINT); + State = 2292; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2295; whiteSpace(); + State = 2291; whiteSpace(); } } - State = 2298; identifier(); - State = 2300; + State = 2294; identifier(); + State = 2296; switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { case 1: { - State = 2299; typeHint(); + State = 2295; typeHint(); } break; } @@ -12780,70 +12759,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 238, RULE_argList); + EnterRule(_localctx, 236, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2302; Match(LPAREN); - State = 2320; + State = 2298; Match(LPAREN); + State = 2316; switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { case 1: { - State = 2304; + State = 2300; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2303; whiteSpace(); + State = 2299; whiteSpace(); } } - State = 2306; arg(); - State = 2317; + State = 2302; arg(); + State = 2313; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,375,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2308; + State = 2304; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2307; whiteSpace(); + State = 2303; whiteSpace(); } } - State = 2310; Match(COMMA); - State = 2312; + State = 2306; Match(COMMA); + State = 2308; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2311; whiteSpace(); + State = 2307; whiteSpace(); } } - State = 2314; arg(); + State = 2310; arg(); } } } - State = 2319; + State = 2315; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,375,_ctx); } } break; } - State = 2323; + State = 2319; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2322; whiteSpace(); + State = 2318; whiteSpace(); } } - State = 2325; Match(RPAREN); + State = 2321; Match(RPAREN); } } catch (RecognitionException re) { @@ -12905,106 +12884,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 240, RULE_arg); + EnterRule(_localctx, 238, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2329; + State = 2325; switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2327; Match(OPTIONAL); - State = 2328; whiteSpace(); + State = 2323; Match(OPTIONAL); + State = 2324; whiteSpace(); } break; } - State = 2333; + State = 2329; switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { case 1: { - State = 2331; + State = 2327; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2332; whiteSpace(); + State = 2328; whiteSpace(); } break; } - State = 2337; + State = 2333; switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { case 1: { - State = 2335; Match(PARAMARRAY); - State = 2336; whiteSpace(); + State = 2331; Match(PARAMARRAY); + State = 2332; whiteSpace(); } break; } - State = 2339; identifier(); - State = 2341; + State = 2335; identifier(); + State = 2337; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2340; typeHint(); + State = 2336; typeHint(); } } - State = 2351; + State = 2347; switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2344; + State = 2340; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2343; whiteSpace(); + State = 2339; whiteSpace(); } } - State = 2346; Match(LPAREN); - State = 2348; + State = 2342; Match(LPAREN); + State = 2344; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2347; whiteSpace(); + State = 2343; whiteSpace(); } } - State = 2350; Match(RPAREN); + State = 2346; Match(RPAREN); } break; } - State = 2357; + State = 2353; switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { case 1: { - State = 2354; + State = 2350; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2353; whiteSpace(); + State = 2349; whiteSpace(); } } - State = 2356; asTypeClause(); + State = 2352; asTypeClause(); } break; } - State = 2363; + State = 2359; switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { case 1: { - State = 2360; + State = 2356; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2359; whiteSpace(); + State = 2355; whiteSpace(); } } - State = 2362; argDefaultValue(); + State = 2358; argDefaultValue(); } break; } @@ -13052,20 +13031,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 242, RULE_argDefaultValue); + EnterRule(_localctx, 240, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2365; Match(EQ); - State = 2367; + State = 2361; Match(EQ); + State = 2363; switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { case 1: { - State = 2366; whiteSpace(); + State = 2362; whiteSpace(); } break; } - State = 2369; valueStmt(0); + State = 2365; valueStmt(0); } } catch (RecognitionException re) { @@ -13119,42 +13098,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 244, RULE_subscripts); + EnterRule(_localctx, 242, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2371; subscript(); - State = 2382; + State = 2367; subscript(); + State = 2378; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,392,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2373; + State = 2369; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2372; whiteSpace(); + State = 2368; whiteSpace(); } } - State = 2375; Match(COMMA); - State = 2377; + State = 2371; Match(COMMA); + State = 2373; switch ( Interpreter.AdaptivePredict(_input,391,_ctx) ) { case 1: { - State = 2376; whiteSpace(); + State = 2372; whiteSpace(); } break; } - State = 2379; subscript(); + State = 2375; subscript(); } } } - State = 2384; + State = 2380; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,392,_ctx); } @@ -13208,22 +13187,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 246, RULE_subscript); + EnterRule(_localctx, 244, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2390; + State = 2386; switch ( Interpreter.AdaptivePredict(_input,393,_ctx) ) { case 1: { - State = 2385; valueStmt(0); - State = 2386; whiteSpace(); - State = 2387; Match(TO); - State = 2388; whiteSpace(); + State = 2381; valueStmt(0); + State = 2382; whiteSpace(); + State = 2383; Match(TO); + State = 2384; whiteSpace(); } break; } - State = 2392; valueStmt(0); + State = 2388; valueStmt(0); } } catch (RecognitionException re) { @@ -13265,14 +13244,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); - EnterRule(_localctx, 248, RULE_identifier); + EnterRule(_localctx, 246, RULE_identifier); try { - State = 2396; + State = 2392; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2394; Match(IDENTIFIER); + State = 2390; Match(IDENTIFIER); } break; case ABS: @@ -13460,7 +13439,7 @@ public IdentifierContext identifier() { case COLLECTION: EnterOuterAlt(_localctx, 2); { - State = 2395; keyword(); + State = 2391; keyword(); } break; default: @@ -13516,43 +13495,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 250, RULE_asTypeClause); + EnterRule(_localctx, 248, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2398; Match(AS); - State = 2400; + State = 2394; Match(AS); + State = 2396; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2399; whiteSpace(); + State = 2395; whiteSpace(); } } - State = 2404; + State = 2400; switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { case 1: { - State = 2402; Match(NEW); - State = 2403; whiteSpace(); + State = 2398; Match(NEW); + State = 2399; whiteSpace(); } break; } - State = 2406; type(); - State = 2411; + State = 2402; type(); + State = 2407; switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2408; + State = 2404; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2407; whiteSpace(); + State = 2403; whiteSpace(); } } - State = 2410; fieldLength(); + State = 2406; fieldLength(); } break; } @@ -13605,12 +13584,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 252, RULE_baseType); + EnterRule(_localctx, 250, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2413; + State = 2409; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13661,12 +13640,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 254, RULE_comparisonOperator); + EnterRule(_localctx, 252, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2415; + State = 2411; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13723,31 +13702,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 256, RULE_complexType); + EnterRule(_localctx, 254, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2417; identifier(); - State = 2422; + State = 2413; identifier(); + State = 2418; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,399,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2418; + State = 2414; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2419; identifier(); + State = 2415; identifier(); } } } - State = 2424; + State = 2420; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,399,_ctx); } @@ -13798,28 +13777,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 258, RULE_fieldLength); + EnterRule(_localctx, 256, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2425; Match(MULT); - State = 2427; + State = 2421; Match(MULT); + State = 2423; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2426; whiteSpace(); + State = 2422; whiteSpace(); } } - State = 2431; + State = 2427; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2429; numberLiteral(); + State = 2425; numberLiteral(); } break; case ABS: @@ -14007,7 +13986,7 @@ public FieldLengthContext fieldLength() { case IDENTIFIER: case COLLECTION: { - State = 2430; identifier(); + State = 2426; identifier(); } break; default: @@ -14063,34 +14042,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 260, RULE_letterrange); + EnterRule(_localctx, 258, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2433; identifier(); - State = 2442; + State = 2429; identifier(); + State = 2438; switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { case 1: { - State = 2435; + State = 2431; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2434; whiteSpace(); + State = 2430; whiteSpace(); } } - State = 2437; Match(MINUS); - State = 2439; + State = 2433; Match(MINUS); + State = 2435; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2438; whiteSpace(); + State = 2434; whiteSpace(); } } - State = 2441; identifier(); + State = 2437; identifier(); } break; } @@ -14138,11 +14117,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 262, RULE_lineLabel); + EnterRule(_localctx, 260, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2446; + State = 2442; switch (_input.La(1)) { case ABS: case ANY: @@ -14329,7 +14308,7 @@ public LineLabelContext lineLabel() { case IDENTIFIER: case COLLECTION: { - State = 2444; identifier(); + State = 2440; identifier(); } break; case OCTLITERAL: @@ -14337,13 +14316,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2445; numberLiteral(); + State = 2441; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2448; Match(COLON); + State = 2444; Match(COLON); } } catch (RecognitionException re) { @@ -14391,9 +14370,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 264, RULE_literal); + EnterRule(_localctx, 262, RULE_literal); try { - State = 2458; + State = 2454; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -14401,49 +14380,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2450; numberLiteral(); + State = 2446; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2451; Match(DATELITERAL); + State = 2447; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2452; Match(STRINGLITERAL); + State = 2448; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2453; Match(TRUE); + State = 2449; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2454; Match(FALSE); + State = 2450; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2455; Match(NOTHING); + State = 2451; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2456; Match(NULL); + State = 2452; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2457; Match(EMPTY); + State = 2453; Match(EMPTY); } break; default: @@ -14489,12 +14468,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 266, RULE_numberLiteral); + EnterRule(_localctx, 264, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2460; + State = 2456; _la = _input.La(1); if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14551,47 +14530,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 268, RULE_type); + EnterRule(_localctx, 266, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2464; + State = 2460; switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2462; baseType(); + State = 2458; baseType(); } break; case 2: { - State = 2463; complexType(); + State = 2459; complexType(); } break; } - State = 2474; + State = 2470; switch ( Interpreter.AdaptivePredict(_input,410,_ctx) ) { case 1: { - State = 2467; + State = 2463; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2466; whiteSpace(); + State = 2462; whiteSpace(); } } - State = 2469; Match(LPAREN); - State = 2471; + State = 2465; Match(LPAREN); + State = 2467; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2470; whiteSpace(); + State = 2466; whiteSpace(); } } - State = 2473; Match(RPAREN); + State = 2469; Match(RPAREN); } break; } @@ -14639,12 +14618,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 270, RULE_typeHint); + EnterRule(_localctx, 268, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2476; + State = 2472; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -14691,12 +14670,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 272, RULE_visibility); + EnterRule(_localctx, 270, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2478; + State = 2474; _la = _input.La(1); if ( !(((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14925,12 +14904,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KeywordContext keyword() { KeywordContext _localctx = new KeywordContext(_ctx, State); - EnterRule(_localctx, 274, RULE_keyword); + EnterRule(_localctx, 272, RULE_keyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2480; + State = 2476; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)))) != 0) || _la==COLLECTION) ) { _errHandler.RecoverInline(this); @@ -14992,28 +14971,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 276, RULE_endOfLine); + EnterRule(_localctx, 274, RULE_endOfLine); int _la; try { int _alt; - State = 2501; + State = 2497; switch ( Interpreter.AdaptivePredict(_input,416,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2483; + State = 2479; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2482; whiteSpace(); + State = 2478; whiteSpace(); } } - State = 2492; + State = 2488; switch (_input.La(1)) { case NEWLINE: { - State = 2486; + State = 2482; _errHandler.Sync(this); _alt = 1; do { @@ -15021,14 +15000,14 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2485; Match(NEWLINE); + State = 2481; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2488; + State = 2484; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,412,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -15037,22 +15016,22 @@ public EndOfLineContext endOfLine() { case COMMENT: case SINGLEQUOTE: { - State = 2490; comment(); + State = 2486; comment(); } break; case REMCOMMENT: { - State = 2491; remComment(); + State = 2487; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2495; + State = 2491; switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { case 1: { - State = 2494; whiteSpace(); + State = 2490; whiteSpace(); } break; } @@ -15062,15 +15041,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2498; + State = 2494; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2497; whiteSpace(); + State = 2493; whiteSpace(); } } - State = 2500; annotationList(); + State = 2496; annotationList(); } break; } @@ -15126,42 +15105,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 278, RULE_endOfStatement); + EnterRule(_localctx, 276, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2513; + State = 2509; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,420,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2511; + State = 2507; switch ( Interpreter.AdaptivePredict(_input,419,_ctx) ) { case 1: { - State = 2503; endOfLine(); + State = 2499; endOfLine(); } break; case 2: { - State = 2505; + State = 2501; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2504; whiteSpace(); + State = 2500; whiteSpace(); } } - State = 2507; Match(COLON); - State = 2509; + State = 2503; Match(COLON); + State = 2505; switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: { - State = 2508; whiteSpace(); + State = 2504; whiteSpace(); } break; } @@ -15170,7 +15149,7 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2515; + State = 2511; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,420,_ctx); } @@ -15212,11 +15191,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 280, RULE_remComment); + EnterRule(_localctx, 278, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2516; Match(REMCOMMENT); + State = 2512; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15256,12 +15235,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 282, RULE_comment); + EnterRule(_localctx, 280, RULE_comment); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2518; + State = 2514; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -15311,22 +15290,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationListContext annotationList() { AnnotationListContext _localctx = new AnnotationListContext(_ctx, State); - EnterRule(_localctx, 284, RULE_annotationList); + EnterRule(_localctx, 282, RULE_annotationList); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2520; Match(SINGLEQUOTE); - State = 2522; + State = 2516; Match(SINGLEQUOTE); + State = 2518; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2521; annotation(); + State = 2517; annotation(); } } - State = 2524; + State = 2520; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -15374,17 +15353,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationContext annotation() { AnnotationContext _localctx = new AnnotationContext(_ctx, State); - EnterRule(_localctx, 286, RULE_annotation); + EnterRule(_localctx, 284, RULE_annotation); try { EnterOuterAlt(_localctx, 1); { - State = 2526; Match(AT); - State = 2527; annotationName(); - State = 2529; + State = 2522; Match(AT); + State = 2523; annotationName(); + State = 2525; switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { case 1: { - State = 2528; annotationArgList(); + State = 2524; annotationArgList(); } break; } @@ -15426,11 +15405,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationNameContext annotationName() { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, State); - EnterRule(_localctx, 288, RULE_annotationName); + EnterRule(_localctx, 286, RULE_annotationName); try { EnterOuterAlt(_localctx, 1); { - State = 2531; Match(IDENTIFIER); + State = 2527; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -15486,22 +15465,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgListContext annotationArgList() { AnnotationArgListContext _localctx = new AnnotationArgListContext(_ctx, State); - EnterRule(_localctx, 290, RULE_annotationArgList); + EnterRule(_localctx, 288, RULE_annotationArgList); int _la; try { int _alt; - State = 2594; + State = 2590; switch ( Interpreter.AdaptivePredict(_input,438,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2533; whiteSpace(); - State = 2534; annotationArg(); - State = 2536; + State = 2529; whiteSpace(); + State = 2530; annotationArg(); + State = 2532; switch ( Interpreter.AdaptivePredict(_input,423,_ctx) ) { case 1: { - State = 2535; whiteSpace(); + State = 2531; whiteSpace(); } break; } @@ -15511,9 +15490,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2538; whiteSpace(); - State = 2539; annotationArg(); - State = 2548; + State = 2534; whiteSpace(); + State = 2535; annotationArg(); + State = 2544; _errHandler.Sync(this); _alt = 1; do { @@ -15521,39 +15500,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2541; + State = 2537; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2540; whiteSpace(); + State = 2536; whiteSpace(); } } - State = 2543; Match(COMMA); - State = 2545; + State = 2539; Match(COMMA); + State = 2541; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2544; whiteSpace(); + State = 2540; whiteSpace(); } } - State = 2547; annotationArg(); + State = 2543; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2550; + State = 2546; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,426,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2553; + State = 2549; switch ( Interpreter.AdaptivePredict(_input,427,_ctx) ) { case 1: { - State = 2552; whiteSpace(); + State = 2548; whiteSpace(); } break; } @@ -15563,38 +15542,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2556; + State = 2552; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2555; whiteSpace(); + State = 2551; whiteSpace(); } } - State = 2558; Match(LPAREN); - State = 2560; + State = 2554; Match(LPAREN); + State = 2556; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2559; whiteSpace(); + State = 2555; whiteSpace(); } } - State = 2562; annotationArg(); - State = 2564; + State = 2558; annotationArg(); + State = 2560; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2563; whiteSpace(); + State = 2559; whiteSpace(); } } - State = 2566; Match(RPAREN); - State = 2568; + State = 2562; Match(RPAREN); + State = 2564; switch ( Interpreter.AdaptivePredict(_input,431,_ctx) ) { case 1: { - State = 2567; whiteSpace(); + State = 2563; whiteSpace(); } break; } @@ -15604,17 +15583,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2571; + State = 2567; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2570; whiteSpace(); + State = 2566; whiteSpace(); } } - State = 2573; Match(LPAREN); - State = 2574; annotationArg(); - State = 2583; + State = 2569; Match(LPAREN); + State = 2570; annotationArg(); + State = 2579; _errHandler.Sync(this); _alt = 1; do { @@ -15622,48 +15601,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2576; + State = 2572; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2575; whiteSpace(); + State = 2571; whiteSpace(); } } - State = 2578; Match(COMMA); - State = 2580; + State = 2574; Match(COMMA); + State = 2576; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2579; whiteSpace(); + State = 2575; whiteSpace(); } } - State = 2582; annotationArg(); + State = 2578; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2585; + State = 2581; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,435,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2588; + State = 2584; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2587; whiteSpace(); + State = 2583; whiteSpace(); } } - State = 2590; Match(RPAREN); - State = 2592; + State = 2586; Match(RPAREN); + State = 2588; switch ( Interpreter.AdaptivePredict(_input,437,_ctx) ) { case 1: { - State = 2591; whiteSpace(); + State = 2587; whiteSpace(); } break; } @@ -15710,14 +15689,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); - EnterRule(_localctx, 292, RULE_annotationArg); + EnterRule(_localctx, 290, RULE_annotationArg); try { - State = 2598; + State = 2594; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2596; Match(IDENTIFIER); + State = 2592; Match(IDENTIFIER); } break; case EMPTY: @@ -15733,7 +15712,7 @@ public AnnotationArgContext annotationArg() { case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2597; literal(); + State = 2593; literal(); } break; default: @@ -15783,13 +15762,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 294, RULE_whiteSpace); + EnterRule(_localctx, 292, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2601; + State = 2597; _errHandler.Sync(this); _alt = 1; do { @@ -15797,7 +15776,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2600; + State = 2596; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -15809,7 +15788,7 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2603; + State = 2599; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,440,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -15862,7 +15841,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA30\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA2C\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -15883,219 +15862,218 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92"+ - "\x4\x93\t\x93\x4\x94\t\x94\x4\x95\t\x95\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3"+ - "\x12F\n\x3\x3\x3\x3\x3\x3\x3\x3\x3\x5\x3\x135\n\x3\x3\x3\x5\x3\x138\n"+ - "\x3\x3\x3\x3\x3\x5\x3\x13C\n\x3\x3\x3\x3\x3\x5\x3\x140\n\x3\x3\x3\x3\x3"+ - "\x5\x3\x144\n\x3\x3\x3\x3\x3\x5\x3\x148\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5"+ - "\x4\x14E\n\x4\x3\x4\x5\x4\x151\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5"+ - "\x3\x5\x3\x5\x5\x5\x15B\n\x5\x5\x5\x15D\n\x5\x3\x5\x3\x5\x6\x5\x161\n"+ - "\x5\r\x5\xE\x5\x162\x3\x5\x3\x5\x3\x6\x3\x6\a\x6\x169\n\x6\f\x6\xE\x6"+ - "\x16C\v\x6\x3\x6\x3\x6\a\x6\x170\n\x6\f\x6\xE\x6\x173\v\x6\x3\x6\x3\x6"+ - "\x3\x6\x5\x6\x178\n\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6\a\x17F\n\a\r\a\xE"+ - "\a\x180\x3\b\x3\b\x3\b\x3\b\a\b\x187\n\b\f\b\xE\b\x18A\v\b\x3\b\x3\b\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x198\n\t\x3\n\x3"+ - "\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x5\n\x1A2\n\n\x3\v\x3\v\x3\v\x3\v\a\v"+ - "\x1A8\n\v\f\v\xE\v\x1AB\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x1B4"+ - "\n\f\x3\r\x3\r\x3\r\x3\r\x5\r\x1BA\n\r\x3\r\x3\r\x5\r\x1BE\n\r\x3\r\x3"+ - "\r\x5\r\x1C2\n\r\x3\r\x3\r\x5\r\x1C6\n\r\x3\r\a\r\x1C9\n\r\f\r\xE\r\x1CC"+ - "\v\r\x3\xE\x3\xE\x3\xE\x3\xE\a\xE\x1D2\n\xE\f\xE\xE\xE\x1D5\v\xE\x3\xE"+ - "\x3\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ + "\x4\x93\t\x93\x4\x94\t\x94\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x12D\n\x3\x3"+ + "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x133\n\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3\x3"+ + "\x5\x3\x13A\n\x3\x3\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n"+ + "\x3\x3\x3\x3\x3\x5\x3\x146\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x14C\n\x4"+ + "\x3\x4\x5\x4\x14F\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5"+ + "\x5\x5\x159\n\x5\x5\x5\x15B\n\x5\x3\x5\x3\x5\x6\x5\x15F\n\x5\r\x5\xE\x5"+ + "\x160\x3\x5\x3\x5\x3\x6\x3\x6\a\x6\x167\n\x6\f\x6\xE\x6\x16A\v\x6\x3\x6"+ + "\x3\x6\a\x6\x16E\n\x6\f\x6\xE\x6\x171\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x176"+ + "\n\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6\a\x17D\n\a\r\a\xE\a\x17E\x3\b\x3\b"+ + "\x3\b\x3\b\a\b\x185\n\b\f\b\xE\b\x188\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x196\n\t\x3\n\x3\n\x3\n\x3\n\x3"+ + "\n\x3\n\x3\n\x3\n\x5\n\x1A0\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x1A6\n\v\f\v\xE"+ + "\v\x1A9\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x1B2\n\f\x3\r\x3\r"+ + "\x3\r\x3\r\x5\r\x1B8\n\r\x3\r\x3\r\x5\r\x1BC\n\r\x3\r\x3\r\x5\r\x1C0\n"+ + "\r\x3\r\x3\r\x5\r\x1C4\n\r\x3\r\a\r\x1C7\n\r\f\r\xE\r\x1CA\v\r\x3\xE\x3"+ + "\xE\x3\xE\x3\xE\a\xE\x1D0\n\xE\f\xE\xE\xE\x1D3\v\xE\x3\xE\x3\xE\x3\xF"+ + "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x21B\n"+ - "\xF\x3\x10\x3\x10\x3\x10\x3\x10\x5\x10\x221\n\x10\x3\x10\x3\x10\x5\x10"+ - "\x225\n\x10\x3\x10\x5\x10\x228\n\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12"+ - "\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14"+ - "\x238\n\x14\x3\x14\x3\x14\x5\x14\x23C\n\x14\x3\x14\a\x14\x23F\n\x14\f"+ - "\x14\xE\x14\x242\v\x14\x5\x14\x244\n\x14\x3\x15\x3\x15\x3\x15\x5\x15\x249"+ - "\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x24F\n\x15\x3\x15\x3\x15\x5"+ - "\x15\x253\n\x15\x3\x15\a\x15\x256\n\x15\f\x15\xE\x15\x259\v\x15\x3\x16"+ - "\x3\x16\x5\x16\x25D\n\x16\x3\x16\x3\x16\x3\x16\x5\x16\x262\n\x16\x3\x16"+ - "\x5\x16\x265\n\x16\x3\x16\x3\x16\x5\x16\x269\n\x16\x3\x16\x3\x16\x3\x17"+ - "\x3\x17\x5\x17\x26F\n\x17\x3\x17\x3\x17\x5\x17\x273\n\x17\x3\x17\x3\x17"+ - "\x3\x18\x3\x18\x3\x18\x5\x18\x27A\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5"+ - "\x18\x280\n\x18\x3\x18\x3\x18\x5\x18\x284\n\x18\x3\x18\x5\x18\x287\n\x18"+ - "\x3\x18\x3\x18\x3\x18\x5\x18\x28C\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3"+ - "\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x297\n\x18\x3\x18\x5\x18\x29A"+ - "\n\x18\x3\x18\x5\x18\x29D\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x2A2\n\x18"+ - "\x3\x19\x3\x19\x3\x19\x3\x19\x5\x19\x2A8\n\x19\x3\x19\x3\x19\x5\x19\x2AC"+ - "\n\x19\x3\x19\a\x19\x2AF\n\x19\f\x19\xE\x19\x2B2\v\x19\x3\x1A\x3\x1A\x3"+ - "\x1A\x3\x1A\x5\x1A\x2B8\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2BE"+ - "\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2C2\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3"+ - "\x1A\x3\x1A\x5\x1A\x2CA\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2CE\n\x1A\x3\x1A\x3"+ - "\x1A\x5\x1A\x2D2\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D6\n\x1A\x3\x1A\x3\x1A\x5"+ - "\x1A\x2DA\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2DF\n\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2EA\n\x1B\x3\x1B"+ - "\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2F1\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x3\x1B\x5\x1B\x2F9\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D"+ - "\x5\x1D\x300\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x307\n\x1D"+ - "\f\x1D\xE\x1D\x30A\v\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x310\n\x1E"+ - "\x3\x1E\x3\x1E\x5\x1E\x314\n\x1E\x3\x1E\x5\x1E\x317\n\x1E\x3\x1E\x3\x1E"+ - "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x31F\n\x1F\x3\x1F\x3\x1F\x5\x1F\x323"+ - "\n\x1F\x3\x1F\a\x1F\x326\n\x1F\f\x1F\xE\x1F\x329\v\x1F\x3 \x3 \x3 \x3"+ - " \x3!\x3!\x3!\x5!\x332\n!\x3!\x3!\x3!\x3!\x5!\x338\n!\x3!\x3!\x3\"\x3"+ - "\"\x3#\x3#\x3#\x3#\x5#\x342\n#\x3#\x3#\x5#\x346\n#\x3#\x3#\x3$\x3$\x3"+ - "$\x3$\x3$\x3$\x5$\x350\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x358\n$\x3$\x3$"+ - "\x3$\x3$\x5$\x35E\n$\x3%\x3%\x3%\x3%\x5%\x364\n%\x3%\x3%\x3%\x5%\x369"+ - "\n%\x3%\x5%\x36C\n%\x3%\x3%\x5%\x370\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3"+ - "%\x3%\x3%\x5%\x37C\n%\x3%\x3%\x5%\x380\n%\x3%\x3%\x3%\x3%\x5%\x386\n%"+ - "\x5%\x388\n%\x3&\x3&\x3&\x5&\x38D\n&\x3&\x3&\x5&\x391\n&\x3&\x3&\x5&\x395"+ - "\n&\x3&\x3&\x5&\x399\n&\x3&\x5&\x39C\n&\x3&\x5&\x39F\n&\x3&\x5&\x3A2\n"+ - "&\x3&\x5&\x3A5\n&\x3&\x3&\x5&\x3A9\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'"+ - "\x3B1\n\'\x3\'\x3\'\x5\'\x3B5\n\'\x3\'\x5\'\x3B8\n\'\x3\'\x5\'\x3BB\n"+ - "\'\x3\'\x3\'\x5\'\x3BF\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3"+ - "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3D7\n*\x3*\x3*\a*\x3DB"+ - "\n*\f*\xE*\x3DE\v*\x3*\x5*\x3E1\n*\x3*\x3*\x5*\x3E5\n*\x3+\x3+\x3+\x3"+ - "+\x3+\x3+\x3+\x5+\x3EE\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3F9"+ - "\n-\x3.\x3.\x3.\x5.\x3FE\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30"+ - "\x5\x30\x408\n\x30\x3\x30\x3\x30\x5\x30\x40C\n\x30\x3\x30\x6\x30\x40F"+ - "\n\x30\r\x30\xE\x30\x410\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5"+ - "\x32\x419\n\x32\x3\x32\x3\x32\x5\x32\x41D\n\x32\x3\x32\x3\x32\x5\x32\x421"+ - "\n\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x429\n\x33\x3"+ - "\x33\x3\x33\x5\x33\x42D\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34"+ - "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x439\n\x35\x3\x35\x3\x35\x5\x35\x43D"+ - "\n\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x445\n\x35\x5"+ - "\x35\x447\n\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x44D\n\x36\x3\x36\x3"+ - "\x36\x5\x36\x451\n\x36\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x457\n\x37\x3"+ - "\x37\x3\x37\x5\x37\x45B\n\x37\x3\x37\x3\x37\x5\x37\x45F\n\x37\x3\x37\x3"+ - "\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ - "\x39\x3\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x479\n"+ - ":\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x5;\x483\n;\x3;\x3;\x5;\x487\n;\x3;"+ - "\a;\x48A\n;\f;\xE;\x48D\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x497\n"+ - "<\x3<\x3<\x5<\x49B\n<\x3<\a<\x49E\n<\f<\xE<\x4A1\v<\x3=\x3=\x3=\x3=\x3"+ - "=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4AF\n=\x3=\x3=\x3=\x5=\x4B4\n=\x3="+ - "\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4BD\n=\x3=\x3=\x5=\x4C1\n=\x3=\x3=\x5=\x4C5"+ - "\n=\x3>\x3>\x5>\x4C9\n>\x3>\x3>\x5>\x4CD\n>\x3>\x5>\x4D0\n>\a>\x4D2\n"+ - ">\f>\xE>\x4D5\v>\x3>\x5>\x4D8\n>\x3>\x5>\x4DB\n>\x3>\x3>\x5>\x4DF\n>\x3"+ - ">\x5>\x4E2\n>\x6>\x4E4\n>\r>\xE>\x4E5\x5>\x4E8\n>\x3?\x3?\x3?\x5?\x4ED"+ - "\n?\x3?\x3?\x5?\x4F1\n?\x3?\x3?\x5?\x4F5\n?\x3?\x3?\x5?\x4F9\n?\x5?\x4FB"+ - "\n?\x3@\x3@\x3@\x3@\x5@\x501\n@\x3@\x3@\x5@\x505\n@\x3@\x5@\x508\n@\x3"+ - "\x41\x3\x41\x3\x41\x5\x41\x50D\n\x41\x3\x41\x3\x41\x5\x41\x511\n\x41\x3"+ - "\x41\x3\x41\x3\x41\x3\x41\x5\x41\x517\n\x41\x3\x41\x5\x41\x51A\n\x41\x3"+ - "\x41\x5\x41\x51D\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x522\n\x41\x3\x41\x3"+ - "\x41\x5\x41\x526\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x52D"+ - "\n\x42\x3\x42\x3\x42\x5\x42\x531\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5"+ - "\x42\x537\n\x42\x3\x42\x5\x42\x53A\n\x42\x3\x42\x3\x42\x5\x42\x53E\n\x42"+ - "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x545\n\x43\x3\x43\x3\x43\x5"+ - "\x43\x549\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x54F\n\x43\x3\x43\x5"+ - "\x43\x552\n\x43\x3\x43\x3\x43\x5\x43\x556\n\x43\x3\x43\x3\x43\x3\x44\x3"+ - "\x44\x3\x44\x3\x44\x5\x44\x55E\n\x44\x3\x44\x3\x44\x5\x44\x562\n\x44\x3"+ - "\x44\x5\x44\x565\n\x44\x3\x44\x5\x44\x568\n\x44\x3\x44\x3\x44\x5\x44\x56C"+ - "\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x574\n\x45\x3"+ - "\x45\x3\x45\x5\x45\x578\n\x45\x3\x45\x3\x45\x5\x45\x57C\n\x45\x5\x45\x57E"+ - "\n\x45\x3\x45\x5\x45\x581\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x587"+ - "\n\x46\x3G\x3G\x3G\x3G\x5G\x58D\nG\x3G\x3G\x5G\x591\nG\x3G\x3G\x5G\x595"+ - "\nG\x3G\aG\x598\nG\fG\xEG\x59B\vG\x3H\x3H\x5H\x59F\nH\x3H\x3H\x5H\x5A3"+ - "\nH\x3H\x3H\x5H\x5A7\nH\x3H\x3H\x3H\x3H\x5H\x5AD\nH\x3I\x3I\x3J\x3J\x3"+ - "J\x3J\x5J\x5B5\nJ\x5J\x5B7\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M"+ - "\x5M\x5C3\nM\x3M\x3M\x5M\x5C7\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5CF\nN\x3"+ - "N\x3N\x5N\x5D3\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5DB\nO\x3O\x3O\x5O\x5DF"+ - "\nO\x3O\x3O\x5O\x5E3\nO\x3O\x3O\x5O\x5E7\nO\x3O\x3O\x5O\x5EB\nO\x3O\x3"+ - "O\x5O\x5EF\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5F7\nP\x3P\x3P\x5P\x5FB\nP"+ - "\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x606\nQ\fQ\xEQ\x609\vQ\x3Q\x3"+ - "Q\x3R\x3R\x5R\x60F\nR\x3R\x3R\x5R\x613\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R"+ - "\x3R\x3R\x5R\x61E\nR\x3S\x3S\x3S\x3S\x3S\x5S\x625\nS\x3T\x3T\x3T\x5T\x62A"+ - "\nT\x3T\x3T\x5T\x62E\nT\x3T\aT\x631\nT\fT\xET\x634\vT\x5T\x636\nT\x3U"+ - "\x3U\x3U\x3U\x5U\x63C\nU\x3U\x3U\x5U\x640\nU\x3U\x5U\x643\nU\x3V\x3V\x3"+ - "V\x3V\x5V\x649\nV\x3V\x3V\x5V\x64D\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x655"+ - "\nW\x3W\x3W\x5W\x659\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x662\nY\x3Y\x3"+ - "Y\x5Y\x666\nY\x3Y\x3Y\x5Y\x66A\nY\x3Y\x3Y\x5Y\x66E\nY\x3Y\x5Y\x671\nY"+ - "\x3Y\x3Y\x5Y\x675\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x67B\nZ\x3Z\x3Z\x5Z\x67F\nZ\x3"+ - "Z\x3Z\x3[\x3[\x3[\x5[\x686\n[\x3[\x3[\x3[\x3[\x3[\a[\x68D\n[\f[\xE[\x690"+ - "\v[\x3[\x3[\x3\\\x3\\\x5\\\x696\n\\\x3\\\x3\\\x5\\\x69A\n\\\x3\\\x5\\"+ - "\x69D\n\\\x3\\\x5\\\x6A0\n\\\x3\\\x5\\\x6A3\n\\\x3\\\x3\\\x3\\\x5\\\x6A8"+ - "\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6B4\n^\x3^\x3^\x5"+ - "^\x6B8\n^\x3^\x3^\x3^\x3^\x3^\x3^\x5^\x6C0\n^\x5^\x6C2\n^\x3_\x3_\x3_"+ - "\x5_\x6C7\n_\x3_\x3_\x3_\x5_\x6CC\n_\x3_\x3_\x3_\x5_\x6D1\n_\x3_\x3_\x5"+ - "_\x6D5\n_\x3_\x3_\x3_\x3_\x5_\x6DB\n_\x3_\x3_\x3_\x5_\x6E0\n_\x3_\x3_"+ - "\x3_\x3_\x3_\x5_\x6E7\n_\x3_\x3_\x5_\x6EB\n_\x3_\x3_\x3_\x3_\x5_\x6F1"+ - "\n_\x3_\x3_\x5_\x6F5\n_\x3_\x3_\x5_\x6F9\n_\x3_\x3_\x3_\x5_\x6FE\n_\x3"+ - "_\x3_\x5_\x702\n_\x3_\x3_\x3_\x5_\x707\n_\x3_\x3_\x5_\x70B\n_\x3_\x3_"+ - "\x3_\x5_\x710\n_\x3_\x3_\x5_\x714\n_\x3_\x3_\x3_\x5_\x719\n_\x3_\x3_\x5"+ - "_\x71D\n_\x3_\x3_\x3_\x5_\x722\n_\x3_\x3_\x5_\x726\n_\x3_\x3_\x3_\x5_"+ - "\x72B\n_\x3_\x3_\x5_\x72F\n_\x3_\x3_\x3_\x5_\x734\n_\x3_\x3_\x5_\x738"+ - "\n_\x3_\x3_\x3_\x5_\x73D\n_\x3_\x3_\x5_\x741\n_\x3_\x3_\x3_\x5_\x746\n"+ - "_\x3_\x3_\x5_\x74A\n_\x3_\x3_\x3_\x5_\x74F\n_\x3_\x3_\x5_\x753\n_\x3_"+ - "\x3_\x3_\x5_\x758\n_\x3_\x3_\x5_\x75C\n_\x3_\a_\x75F\n_\f_\xE_\x762\v"+ - "_\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x5`\x76C\n`\x3\x61\x3\x61\x3\x61\x5"+ - "\x61\x771\n\x61\x3\x61\x3\x61\x3\x61\x5\x61\x776\n\x61\x3\x61\x3\x61\x3"+ - "\x62\x3\x62\x5\x62\x77C\n\x62\x3\x62\x3\x62\x5\x62\x780\n\x62\x3\x62\a"+ - "\x62\x783\n\x62\f\x62\xE\x62\x786\v\x62\x3\x63\x3\x63\x5\x63\x78A\n\x63"+ - "\x3\x63\x3\x63\x5\x63\x78E\n\x63\x3\x63\x3\x63\x5\x63\x792\n\x63\x5\x63"+ - "\x794\n\x63\x3\x63\x3\x63\x5\x63\x798\n\x63\x5\x63\x79A\n\x63\x3\x63\x5"+ - "\x63\x79D\n\x63\x3\x63\x3\x63\x3\x63\x5\x63\x7A2\n\x63\x3\x64\x3\x64\x3"+ - "\x64\x3\x64\x3\x64\x5\x64\x7A9\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65"+ - "\x3\x65\x5\x65\x7B1\n\x65\x3\x65\x3\x65\x5\x65\x7B5\n\x65\x3\x65\x3\x65"+ - "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x7BE\n\x66\x3\x66\x3\x66\x3"+ - "g\x3g\x3g\x3g\x3g\x5g\x7C7\ng\x3h\x3h\x3h\x3h\x5h\x7CD\nh\x3h\x3h\x5h"+ - "\x7D1\nh\x3h\x5h\x7D4\nh\x3i\x5i\x7D7\ni\x3i\x3i\x3j\x3j\x5j\x7DD\nj\x3"+ - "k\x3k\x3k\x3k\x5k\x7E3\nk\x3k\x5k\x7E6\nk\x3k\x3k\x5k\x7EA\nk\x3k\x3k"+ - "\x5k\x7EE\nk\x3k\x3k\x5k\x7F2\nk\x3k\x5k\x7F5\nk\x3k\x3k\x3k\x3k\ak\x7FB"+ - "\nk\fk\xEk\x7FE\vk\x3l\x3l\x3l\x5l\x803\nl\x3l\x3l\x3l\x5l\x808\nl\x3"+ - "l\x5l\x80B\nl\x3l\x3l\x5l\x80F\nl\x3l\x3l\x5l\x813\nl\x3l\x3l\x5l\x817"+ - "\nl\x3l\x5l\x81A\nl\x3l\x3l\x3l\x3l\al\x820\nl\fl\xEl\x823\vl\x3m\x3m"+ - "\x5m\x827\nm\x3n\x5n\x82A\nn\x3n\x5n\x82D\nn\x3n\x3n\x5n\x831\nn\x3n\x3"+ - "n\x5n\x835\nn\x3n\x3n\x3n\x5n\x83A\nn\x3n\x5n\x83D\nn\x3n\x5n\x840\nn"+ - "\x3n\x5n\x843\nn\x3n\x3n\x3n\x3n\an\x849\nn\fn\xEn\x84C\vn\x3o\x3o\x3"+ - "o\x3o\x5o\x852\no\x3o\x5o\x855\no\x3o\x3o\x3o\x3o\ao\x85B\no\fo\xEo\x85E"+ - "\vo\x3p\x3p\x3p\x3p\x5p\x864\np\x3q\x3q\x5q\x868\nq\x3q\x5q\x86B\nq\x3"+ - "q\x5q\x86E\nq\x3q\x5q\x871\nq\x3q\x3q\x3q\x3q\aq\x877\nq\fq\xEq\x87A\v"+ - "q\x3r\x3r\x5r\x87E\nr\x3r\x5r\x881\nr\x3r\x5r\x884\nr\x3r\x3r\x5r\x888"+ - "\nr\x3r\x3r\x5r\x88C\nr\x5r\x88E\nr\x3r\x3r\x5r\x892\nr\x3r\x5r\x895\n"+ - "r\x3r\x5r\x898\nr\x3r\x3r\x3r\x3r\ar\x89E\nr\fr\xEr\x8A1\vr\x3s\x3s\x5"+ - "s\x8A5\ns\x3s\x3s\x5s\x8A9\ns\x6s\x8AB\ns\rs\xEs\x8AC\x3s\x5s\x8B0\ns"+ - "\x3s\x5s\x8B3\ns\x3s\x5s\x8B6\ns\x3s\x3s\x3s\x3s\as\x8BC\ns\fs\xEs\x8BF"+ - "\vs\x3t\x3t\x5t\x8C3\nt\x3t\x3t\x5t\x8C7\nt\x3u\x5u\x8CA\nu\x3u\x3u\x3"+ - "v\x5v\x8CF\nv\x3v\x5v\x8D2\nv\x3v\x3v\x5v\x8D6\nv\av\x8D8\nv\fv\xEv\x8DB"+ - "\vv\x3v\x3v\x5v\x8DF\nv\x3v\x3v\x5v\x8E3\nv\x3v\x5v\x8E6\nv\av\x8E8\n"+ - "v\fv\xEv\x8EB\vv\x3w\x5w\x8EE\nw\x3w\x3w\x5w\x8F2\nw\x3w\x5w\x8F5\nw\x3"+ - "w\x3w\x3x\x3x\x5x\x8FB\nx\x3x\x3x\x5x\x8FF\nx\x3y\x3y\x5y\x903\ny\x3y"+ - "\x3y\x5y\x907\ny\x3y\x3y\x5y\x90B\ny\x3y\ay\x90E\ny\fy\xEy\x911\vy\x5"+ - "y\x913\ny\x3y\x5y\x916\ny\x3y\x3y\x3z\x3z\x5z\x91C\nz\x3z\x3z\x5z\x920"+ - "\nz\x3z\x3z\x5z\x924\nz\x3z\x3z\x5z\x928\nz\x3z\x5z\x92B\nz\x3z\x3z\x5"+ - "z\x92F\nz\x3z\x5z\x932\nz\x3z\x5z\x935\nz\x3z\x5z\x938\nz\x3z\x5z\x93B"+ - "\nz\x3z\x5z\x93E\nz\x3{\x3{\x5{\x942\n{\x3{\x3{\x3|\x3|\x5|\x948\n|\x3"+ - "|\x3|\x5|\x94C\n|\x3|\a|\x94F\n|\f|\xE|\x952\v|\x3}\x3}\x3}\x3}\x3}\x5"+ - "}\x959\n}\x3}\x3}\x3~\x3~\x5~\x95F\n~\x3\x7F\x3\x7F\x5\x7F\x963\n\x7F"+ - "\x3\x7F\x3\x7F\x5\x7F\x967\n\x7F\x3\x7F\x3\x7F\x5\x7F\x96B\n\x7F\x3\x7F"+ - "\x5\x7F\x96E\n\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x82\a"+ - "\x82\x977\n\x82\f\x82\xE\x82\x97A\v\x82\x3\x83\x3\x83\x5\x83\x97E\n\x83"+ - "\x3\x83\x3\x83\x5\x83\x982\n\x83\x3\x84\x3\x84\x5\x84\x986\n\x84\x3\x84"+ - "\x3\x84\x5\x84\x98A\n\x84\x3\x84\x5\x84\x98D\n\x84\x3\x85\x3\x85\x5\x85"+ - "\x991\n\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ - "\x86\x3\x86\x5\x86\x99D\n\x86\x3\x87\x3\x87\x3\x88\x3\x88\x5\x88\x9A3"+ - "\n\x88\x3\x88\x5\x88\x9A6\n\x88\x3\x88\x3\x88\x5\x88\x9AA\n\x88\x3\x88"+ - "\x5\x88\x9AD\n\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3\x8C\x5"+ - "\x8C\x9B6\n\x8C\x3\x8C\x6\x8C\x9B9\n\x8C\r\x8C\xE\x8C\x9BA\x3\x8C\x3\x8C"+ - "\x5\x8C\x9BF\n\x8C\x3\x8C\x5\x8C\x9C2\n\x8C\x3\x8C\x5\x8C\x9C5\n\x8C\x3"+ - "\x8C\x5\x8C\x9C8\n\x8C\x3\x8D\x3\x8D\x5\x8D\x9CC\n\x8D\x3\x8D\x3\x8D\x5"+ - "\x8D\x9D0\n\x8D\a\x8D\x9D2\n\x8D\f\x8D\xE\x8D\x9D5\v\x8D\x3\x8E\x3\x8E"+ - "\x3\x8F\x3\x8F\x3\x90\x3\x90\x6\x90\x9DD\n\x90\r\x90\xE\x90\x9DE\x3\x91"+ - "\x3\x91\x3\x91\x5\x91\x9E4\n\x91\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x5"+ - "\x93\x9EB\n\x93\x3\x93\x3\x93\x3\x93\x5\x93\x9F0\n\x93\x3\x93\x3\x93\x5"+ - "\x93\x9F4\n\x93\x3\x93\x6\x93\x9F7\n\x93\r\x93\xE\x93\x9F8\x3\x93\x5\x93"+ - "\x9FC\n\x93\x3\x93\x5\x93\x9FF\n\x93\x3\x93\x3\x93\x5\x93\xA03\n\x93\x3"+ - "\x93\x3\x93\x5\x93\xA07\n\x93\x3\x93\x3\x93\x5\x93\xA0B\n\x93\x3\x93\x5"+ - "\x93\xA0E\n\x93\x3\x93\x3\x93\x3\x93\x5\x93\xA13\n\x93\x3\x93\x3\x93\x5"+ - "\x93\xA17\n\x93\x3\x93\x6\x93\xA1A\n\x93\r\x93\xE\x93\xA1B\x3\x93\x5\x93"+ - "\xA1F\n\x93\x3\x93\x3\x93\x5\x93\xA23\n\x93\x5\x93\xA25\n\x93\x3\x94\x3"+ - "\x94\x5\x94\xA29\n\x94\x3\x95\x6\x95\xA2C\n\x95\r\x95\xE\x95\xA2D\x3\x95"+ - "\x2\x2\x3\xBC\x96\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2"+ - "\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2"+ - ".\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2"+ - "\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64"+ - "\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82"+ - "\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96"+ - "\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA"+ - "\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE"+ - "\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2"+ - "\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6"+ - "\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA"+ - "\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C"+ - "\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E"+ - "\x2\x120\x2\x122\x2\x124\x2\x126\x2\x128\x2\x2\x19\x5\x2==II\xCC\xCC\x3"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x219\n\xF\x3\x10\x3"+ + "\x10\x3\x10\x3\x10\x5\x10\x21F\n\x10\x3\x10\x3\x10\x5\x10\x223\n\x10\x3"+ + "\x10\x5\x10\x226\n\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13"+ + "\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x236\n\x14\x3"+ + "\x14\x3\x14\x5\x14\x23A\n\x14\x3\x14\a\x14\x23D\n\x14\f\x14\xE\x14\x240"+ + "\v\x14\x5\x14\x242\n\x14\x3\x15\x3\x15\x3\x15\x5\x15\x247\n\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x5\x15\x24D\n\x15\x3\x15\x3\x15\x5\x15\x251\n\x15"+ + "\x3\x15\a\x15\x254\n\x15\f\x15\xE\x15\x257\v\x15\x3\x16\x3\x16\x5\x16"+ + "\x25B\n\x16\x3\x16\x3\x16\x3\x16\x5\x16\x260\n\x16\x3\x16\x5\x16\x263"+ + "\n\x16\x3\x16\x3\x16\x5\x16\x267\n\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5"+ + "\x17\x26D\n\x17\x3\x17\x3\x17\x5\x17\x271\n\x17\x3\x17\x3\x17\x3\x18\x3"+ + "\x18\x3\x18\x5\x18\x278\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x27E"+ + "\n\x18\x3\x18\x3\x18\x5\x18\x282\n\x18\x3\x18\x5\x18\x285\n\x18\x3\x18"+ + "\x3\x18\x3\x18\x5\x18\x28A\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3"+ + "\x18\x3\x18\x3\x18\x3\x18\x5\x18\x295\n\x18\x3\x18\x5\x18\x298\n\x18\x3"+ + "\x18\x5\x18\x29B\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x2A0\n\x18\x3\x19\x3"+ + "\x19\x3\x19\x3\x19\x5\x19\x2A6\n\x19\x3\x19\x3\x19\x5\x19\x2AA\n\x19\x3"+ + "\x19\a\x19\x2AD\n\x19\f\x19\xE\x19\x2B0\v\x19\x3\x1A\x3\x1A\x3\x1A\x3"+ + "\x1A\x5\x1A\x2B6\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2BC\n\x1A\x3"+ + "\x1A\x3\x1A\x5\x1A\x2C0\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A"+ + "\x5\x1A\x2C8\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2CC\n\x1A\x3\x1A\x3\x1A\x5\x1A"+ + "\x2D0\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D4\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D8"+ + "\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2DD\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2E8\n\x1B\x3\x1B\x3\x1B"+ + "\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2EF\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ + "\x1B\x3\x1B\x5\x1B\x2F7\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D"+ + "\x2FE\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x305\n\x1D\f\x1D"+ + "\xE\x1D\x308\v\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x30E\n\x1E\x3\x1E"+ + "\x3\x1E\x5\x1E\x312\n\x1E\x3\x1E\x5\x1E\x315\n\x1E\x3\x1E\x3\x1E\x3\x1F"+ + "\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x31D\n\x1F\x3\x1F\x3\x1F\x5\x1F\x321\n\x1F"+ + "\x3\x1F\a\x1F\x324\n\x1F\f\x1F\xE\x1F\x327\v\x1F\x3 \x3 \x3 \x3 \x3!\x3"+ + "!\x3!\x5!\x330\n!\x3!\x3!\x3!\x3!\x5!\x336\n!\x3!\x3!\x3\"\x3\"\x3#\x3"+ + "#\x3#\x3#\x5#\x340\n#\x3#\x3#\x5#\x344\n#\x3#\x3#\x3$\x3$\x3$\x3$\x3$"+ + "\x3$\x5$\x34E\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x356\n$\x3$\x3$\x3$\x3$\x5"+ + "$\x35C\n$\x3%\x3%\x3%\x3%\x5%\x362\n%\x3%\x3%\x3%\x5%\x367\n%\x3%\x5%"+ + "\x36A\n%\x3%\x3%\x5%\x36E\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5"+ + "%\x37A\n%\x3%\x3%\x5%\x37E\n%\x3%\x3%\x3%\x3%\x5%\x384\n%\x5%\x386\n%"+ + "\x3&\x3&\x3&\x5&\x38B\n&\x3&\x3&\x5&\x38F\n&\x3&\x3&\x5&\x393\n&\x3&\x3"+ + "&\x5&\x397\n&\x3&\x5&\x39A\n&\x3&\x5&\x39D\n&\x3&\x5&\x3A0\n&\x3&\x5&"+ + "\x3A3\n&\x3&\x3&\x5&\x3A7\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3AF\n\'"+ + "\x3\'\x3\'\x5\'\x3B3\n\'\x3\'\x5\'\x3B6\n\'\x3\'\x5\'\x3B9\n\'\x3\'\x3"+ + "\'\x5\'\x3BD\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3D5\n*\x3*\x3*\a*\x3D9\n*\f"+ + "*\xE*\x3DC\v*\x3*\x5*\x3DF\n*\x3*\x3*\x5*\x3E3\n*\x3+\x3+\x3+\x3+\x3+"+ + "\x3+\x3+\x5+\x3EC\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3F7\n-\x3"+ + ".\x3.\x3.\x5.\x3FC\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30"+ + "\x406\n\x30\x3\x30\x3\x30\x5\x30\x40A\n\x30\x3\x30\x6\x30\x40D\n\x30\r"+ + "\x30\xE\x30\x40E\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x417"+ + "\n\x32\x3\x32\x3\x32\x5\x32\x41B\n\x32\x3\x32\x3\x32\x5\x32\x41F\n\x32"+ + "\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x427\n\x33\x3\x33\x3"+ + "\x33\x5\x33\x42B\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35"+ + "\x3\x35\x3\x35\x3\x35\x5\x35\x437\n\x35\x3\x35\x3\x35\x5\x35\x43B\n\x35"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x443\n\x35\x5\x35\x445"+ + "\n\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x44B\n\x36\x3\x36\x3\x36\x5"+ + "\x36\x44F\n\x36\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x455\n\x37\x3\x37\x3"+ + "\x37\x5\x37\x459\n\x37\x3\x37\x3\x37\x5\x37\x45D\n\x37\x3\x37\x3\x37\x3"+ + "\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + "\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x477\n:\x3;\x3"+ + ";\x3;\x3;\x3;\x3;\x3;\x3;\x5;\x481\n;\x3;\x3;\x5;\x485\n;\x3;\a;\x488"+ + "\n;\f;\xE;\x48B\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x495\n<\x3<\x3"+ + "<\x5<\x499\n<\x3<\a<\x49C\n<\f<\xE<\x49F\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3"+ + "=\x3=\x3=\x3=\x3=\x3=\x5=\x4AD\n=\x3=\x3=\x3=\x5=\x4B2\n=\x3=\x3=\x3="+ + "\x3=\x3=\x3=\x3=\x5=\x4BB\n=\x3=\x3=\x5=\x4BF\n=\x3=\x3=\x5=\x4C3\n=\x3"+ + ">\x3>\x5>\x4C7\n>\x3>\x3>\x5>\x4CB\n>\x3>\x5>\x4CE\n>\a>\x4D0\n>\f>\xE"+ + ">\x4D3\v>\x3>\x5>\x4D6\n>\x3>\x5>\x4D9\n>\x3>\x3>\x5>\x4DD\n>\x3>\x5>"+ + "\x4E0\n>\x6>\x4E2\n>\r>\xE>\x4E3\x5>\x4E6\n>\x3?\x3?\x3?\x5?\x4EB\n?\x3"+ + "?\x3?\x5?\x4EF\n?\x3?\x3?\x5?\x4F3\n?\x3?\x3?\x5?\x4F7\n?\x5?\x4F9\n?"+ + "\x3@\x3@\x3@\x3@\x5@\x4FF\n@\x3@\x3@\x5@\x503\n@\x3@\x5@\x506\n@\x3\x41"+ + "\x3\x41\x3\x41\x5\x41\x50B\n\x41\x3\x41\x3\x41\x5\x41\x50F\n\x41\x3\x41"+ + "\x3\x41\x3\x41\x3\x41\x5\x41\x515\n\x41\x3\x41\x5\x41\x518\n\x41\x3\x41"+ + "\x5\x41\x51B\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x520\n\x41\x3\x41\x3\x41"+ + "\x5\x41\x524\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x52B\n\x42"+ + "\x3\x42\x3\x42\x5\x42\x52F\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x535"+ + "\n\x42\x3\x42\x5\x42\x538\n\x42\x3\x42\x3\x42\x5\x42\x53C\n\x42\x3\x42"+ + "\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x543\n\x43\x3\x43\x3\x43\x5\x43\x547"+ + "\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x54D\n\x43\x3\x43\x5\x43\x550"+ + "\n\x43\x3\x43\x3\x43\x5\x43\x554\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3"+ + "\x44\x3\x44\x5\x44\x55C\n\x44\x3\x44\x3\x44\x5\x44\x560\n\x44\x3\x44\x5"+ + "\x44\x563\n\x44\x3\x44\x5\x44\x566\n\x44\x3\x44\x3\x44\x5\x44\x56A\n\x44"+ + "\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x572\n\x45\x3\x45\x3"+ + "\x45\x5\x45\x576\n\x45\x3\x45\x3\x45\x5\x45\x57A\n\x45\x5\x45\x57C\n\x45"+ + "\x3\x45\x5\x45\x57F\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x585\n\x46"+ + "\x3G\x3G\x3G\x3G\x5G\x58B\nG\x3G\x3G\x5G\x58F\nG\x3G\x3G\x5G\x593\nG\x3"+ + "G\aG\x596\nG\fG\xEG\x599\vG\x3H\x3H\x5H\x59D\nH\x3H\x3H\x5H\x5A1\nH\x3"+ + "H\x3H\x5H\x5A5\nH\x3H\x3H\x3H\x3H\x5H\x5AB\nH\x3I\x3I\x3J\x3J\x3J\x3J"+ + "\x5J\x5B3\nJ\x5J\x5B5\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5C1"+ + "\nM\x3M\x3M\x5M\x5C5\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5CD\nN\x3N\x3N\x5"+ + "N\x5D1\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5D9\nO\x3O\x3O\x5O\x5DD\nO\x3O"+ + "\x3O\x5O\x5E1\nO\x3O\x3O\x5O\x5E5\nO\x3O\x3O\x5O\x5E9\nO\x3O\x3O\x5O\x5ED"+ + "\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5F5\nP\x3P\x3P\x5P\x5F9\nP\x3P\x3P\x3"+ + "Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x604\nQ\fQ\xEQ\x607\vQ\x3Q\x3Q\x3R\x3R\x5"+ + "R\x60D\nR\x3R\x3R\x5R\x611\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x5R"+ + "\x61C\nR\x3S\x3S\x3S\x3S\x3S\x5S\x623\nS\x3T\x3T\x3T\x5T\x628\nT\x3T\x3"+ + "T\x5T\x62C\nT\x3T\aT\x62F\nT\fT\xET\x632\vT\x5T\x634\nT\x3U\x3U\x3U\x3"+ + "U\x5U\x63A\nU\x3U\x3U\x5U\x63E\nU\x3U\x5U\x641\nU\x3V\x3V\x3V\x3V\x5V"+ + "\x647\nV\x3V\x3V\x5V\x64B\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x653\nW\x3W\x3"+ + "W\x5W\x657\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x660\nY\x3Y\x3Y\x5Y\x664"+ + "\nY\x3Y\x3Y\x5Y\x668\nY\x3Y\x3Y\x5Y\x66C\nY\x3Y\x5Y\x66F\nY\x3Y\x3Y\x5"+ + "Y\x673\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x679\nZ\x3Z\x3Z\x5Z\x67D\nZ\x3Z\x3Z\x3["+ + "\x3[\x3[\x5[\x684\n[\x3[\x3[\x3[\x3[\x3[\a[\x68B\n[\f[\xE[\x68E\v[\x3"+ + "[\x3[\x3\\\x3\\\x5\\\x694\n\\\x3\\\x3\\\x5\\\x698\n\\\x3\\\x5\\\x69B\n"+ + "\\\x3\\\x5\\\x69E\n\\\x3\\\x5\\\x6A1\n\\\x3\\\x3\\\x3\\\x5\\\x6A6\n\\"+ + "\x3\\\x3\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6B2\n^\x3^\x3^\x5^\x6B6"+ + "\n^\x3^\x3^\x3^\x3^\x3^\x3^\x5^\x6BE\n^\x5^\x6C0\n^\x3_\x3_\x3_\x5_\x6C5"+ + "\n_\x3_\x3_\x3_\x5_\x6CA\n_\x3_\x3_\x3_\x5_\x6CF\n_\x3_\x3_\x5_\x6D3\n"+ + "_\x3_\x3_\x3_\x3_\x5_\x6D9\n_\x3_\x3_\x3_\x5_\x6DE\n_\x3_\x3_\x3_\x3_"+ + "\x3_\x5_\x6E5\n_\x3_\x3_\x5_\x6E9\n_\x3_\x3_\x3_\x3_\x5_\x6EF\n_\x3_\x3"+ + "_\x5_\x6F3\n_\x3_\x3_\x5_\x6F7\n_\x3_\x3_\x3_\x5_\x6FC\n_\x3_\x3_\x5_"+ + "\x700\n_\x3_\x3_\x3_\x5_\x705\n_\x3_\x3_\x5_\x709\n_\x3_\x3_\x3_\x5_\x70E"+ + "\n_\x3_\x3_\x5_\x712\n_\x3_\x3_\x3_\x5_\x717\n_\x3_\x3_\x5_\x71B\n_\x3"+ + "_\x3_\x3_\x5_\x720\n_\x3_\x3_\x5_\x724\n_\x3_\x3_\x3_\x5_\x729\n_\x3_"+ + "\x3_\x5_\x72D\n_\x3_\x3_\x3_\x5_\x732\n_\x3_\x3_\x5_\x736\n_\x3_\x3_\x3"+ + "_\x5_\x73B\n_\x3_\x3_\x5_\x73F\n_\x3_\x3_\x3_\x5_\x744\n_\x3_\x3_\x5_"+ + "\x748\n_\x3_\x3_\x3_\x5_\x74D\n_\x3_\x3_\x5_\x751\n_\x3_\x3_\x3_\x5_\x756"+ + "\n_\x3_\x3_\x5_\x75A\n_\x3_\a_\x75D\n_\f_\xE_\x760\v_\x3`\x3`\x3`\x3`"+ + "\x3`\x3`\x3`\x3`\x5`\x76A\n`\x3\x61\x3\x61\x3\x61\x5\x61\x76F\n\x61\x3"+ + "\x61\x3\x61\x3\x61\x5\x61\x774\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62"+ + "\x77A\n\x62\x3\x62\x3\x62\x5\x62\x77E\n\x62\x3\x62\a\x62\x781\n\x62\f"+ + "\x62\xE\x62\x784\v\x62\x3\x63\x3\x63\x5\x63\x788\n\x63\x3\x63\x3\x63\x5"+ + "\x63\x78C\n\x63\x3\x63\x3\x63\x5\x63\x790\n\x63\x5\x63\x792\n\x63\x3\x63"+ + "\x3\x63\x5\x63\x796\n\x63\x5\x63\x798\n\x63\x3\x63\x5\x63\x79B\n\x63\x3"+ + "\x63\x3\x63\x3\x63\x5\x63\x7A0\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64"+ + "\x5\x64\x7A7\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x7AF"+ + "\n\x65\x3\x65\x3\x65\x5\x65\x7B3\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3"+ + "\x66\x3\x66\x3\x66\x5\x66\x7BC\n\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3"+ + "g\x5g\x7C5\ng\x3h\x3h\x3h\x3h\x5h\x7CB\nh\x3h\x3h\x5h\x7CF\nh\x3h\x5h"+ + "\x7D2\nh\x3i\x5i\x7D5\ni\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7DE\nk\x3k\x3"+ + "k\x3k\x5k\x7E3\nk\x3k\x5k\x7E6\nk\x3k\x3k\x5k\x7EA\nk\x3k\x3k\x5k\x7EE"+ + "\nk\x3k\x3k\x5k\x7F2\nk\x3k\x5k\x7F5\nk\x3k\x3k\x3k\x3k\ak\x7FB\nk\fk"+ + "\xEk\x7FE\vk\x3k\x3k\x5k\x802\nk\x3k\x5k\x805\nk\x3k\x3k\x5k\x809\nk\x3"+ + "k\x3k\x5k\x80D\nk\x3k\x3k\x5k\x811\nk\x3k\x5k\x814\nk\x3k\x3k\x3k\x3k"+ + "\ak\x81A\nk\fk\xEk\x81D\vk\x5k\x81F\nk\x3l\x3l\x5l\x823\nl\x3m\x5m\x826"+ + "\nm\x3m\x5m\x829\nm\x3m\x3m\x5m\x82D\nm\x3m\x3m\x5m\x831\nm\x3m\x3m\x3"+ + "m\x5m\x836\nm\x3m\x5m\x839\nm\x3m\x5m\x83C\nm\x3m\x5m\x83F\nm\x3m\x3m"+ + "\x3m\x3m\am\x845\nm\fm\xEm\x848\vm\x3n\x3n\x3n\x3n\x5n\x84E\nn\x3n\x5"+ + "n\x851\nn\x3n\x3n\x3n\x3n\an\x857\nn\fn\xEn\x85A\vn\x3o\x3o\x3o\x3o\x5"+ + "o\x860\no\x3p\x3p\x5p\x864\np\x3p\x5p\x867\np\x3p\x5p\x86A\np\x3p\x5p"+ + "\x86D\np\x3p\x3p\x3p\x3p\ap\x873\np\fp\xEp\x876\vp\x3q\x3q\x5q\x87A\n"+ + "q\x3q\x5q\x87D\nq\x3q\x5q\x880\nq\x3q\x3q\x5q\x884\nq\x3q\x3q\x5q\x888"+ + "\nq\x5q\x88A\nq\x3q\x3q\x5q\x88E\nq\x3q\x5q\x891\nq\x3q\x5q\x894\nq\x3"+ + "q\x3q\x3q\x3q\aq\x89A\nq\fq\xEq\x89D\vq\x3r\x3r\x5r\x8A1\nr\x3r\x3r\x5"+ + "r\x8A5\nr\x6r\x8A7\nr\rr\xEr\x8A8\x3r\x5r\x8AC\nr\x3r\x5r\x8AF\nr\x3r"+ + "\x5r\x8B2\nr\x3r\x3r\x3r\x3r\ar\x8B8\nr\fr\xEr\x8BB\vr\x3s\x3s\x5s\x8BF"+ + "\ns\x3s\x3s\x5s\x8C3\ns\x3t\x5t\x8C6\nt\x3t\x3t\x3u\x5u\x8CB\nu\x3u\x5"+ + "u\x8CE\nu\x3u\x3u\x5u\x8D2\nu\au\x8D4\nu\fu\xEu\x8D7\vu\x3u\x3u\x5u\x8DB"+ + "\nu\x3u\x3u\x5u\x8DF\nu\x3u\x5u\x8E2\nu\au\x8E4\nu\fu\xEu\x8E7\vu\x3v"+ + "\x5v\x8EA\nv\x3v\x3v\x5v\x8EE\nv\x3v\x5v\x8F1\nv\x3v\x3v\x3w\x3w\x5w\x8F7"+ + "\nw\x3w\x3w\x5w\x8FB\nw\x3x\x3x\x5x\x8FF\nx\x3x\x3x\x5x\x903\nx\x3x\x3"+ + "x\x5x\x907\nx\x3x\ax\x90A\nx\fx\xEx\x90D\vx\x5x\x90F\nx\x3x\x5x\x912\n"+ + "x\x3x\x3x\x3y\x3y\x5y\x918\ny\x3y\x3y\x5y\x91C\ny\x3y\x3y\x5y\x920\ny"+ + "\x3y\x3y\x5y\x924\ny\x3y\x5y\x927\ny\x3y\x3y\x5y\x92B\ny\x3y\x5y\x92E"+ + "\ny\x3y\x5y\x931\ny\x3y\x5y\x934\ny\x3y\x5y\x937\ny\x3y\x5y\x93A\ny\x3"+ + "z\x3z\x5z\x93E\nz\x3z\x3z\x3{\x3{\x5{\x944\n{\x3{\x3{\x5{\x948\n{\x3{"+ + "\a{\x94B\n{\f{\xE{\x94E\v{\x3|\x3|\x3|\x3|\x3|\x5|\x955\n|\x3|\x3|\x3"+ + "}\x3}\x5}\x95B\n}\x3~\x3~\x5~\x95F\n~\x3~\x3~\x5~\x963\n~\x3~\x3~\x5~"+ + "\x967\n~\x3~\x5~\x96A\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3"+ + "\x81\a\x81\x973\n\x81\f\x81\xE\x81\x976\v\x81\x3\x82\x3\x82\x5\x82\x97A"+ + "\n\x82\x3\x82\x3\x82\x5\x82\x97E\n\x82\x3\x83\x3\x83\x5\x83\x982\n\x83"+ + "\x3\x83\x3\x83\x5\x83\x986\n\x83\x3\x83\x5\x83\x989\n\x83\x3\x84\x3\x84"+ + "\x5\x84\x98D\n\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3"+ + "\x85\x3\x85\x3\x85\x5\x85\x999\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87"+ + "\x99F\n\x87\x3\x87\x5\x87\x9A2\n\x87\x3\x87\x3\x87\x5\x87\x9A6\n\x87\x3"+ + "\x87\x5\x87\x9A9\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B"+ + "\x5\x8B\x9B2\n\x8B\x3\x8B\x6\x8B\x9B5\n\x8B\r\x8B\xE\x8B\x9B6\x3\x8B\x3"+ + "\x8B\x5\x8B\x9BB\n\x8B\x3\x8B\x5\x8B\x9BE\n\x8B\x3\x8B\x5\x8B\x9C1\n\x8B"+ + "\x3\x8B\x5\x8B\x9C4\n\x8B\x3\x8C\x3\x8C\x5\x8C\x9C8\n\x8C\x3\x8C\x3\x8C"+ + "\x5\x8C\x9CC\n\x8C\a\x8C\x9CE\n\x8C\f\x8C\xE\x8C\x9D1\v\x8C\x3\x8D\x3"+ + "\x8D\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x6\x8F\x9D9\n\x8F\r\x8F\xE\x8F\x9DA\x3"+ + "\x90\x3\x90\x3\x90\x5\x90\x9E0\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92"+ + "\x5\x92\x9E7\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9EC\n\x92\x3\x92\x3\x92"+ + "\x5\x92\x9F0\n\x92\x3\x92\x6\x92\x9F3\n\x92\r\x92\xE\x92\x9F4\x3\x92\x5"+ + "\x92\x9F8\n\x92\x3\x92\x5\x92\x9FB\n\x92\x3\x92\x3\x92\x5\x92\x9FF\n\x92"+ + "\x3\x92\x3\x92\x5\x92\xA03\n\x92\x3\x92\x3\x92\x5\x92\xA07\n\x92\x3\x92"+ + "\x5\x92\xA0A\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\xA0F\n\x92\x3\x92\x3\x92"+ + "\x5\x92\xA13\n\x92\x3\x92\x6\x92\xA16\n\x92\r\x92\xE\x92\xA17\x3\x92\x5"+ + "\x92\xA1B\n\x92\x3\x92\x3\x92\x5\x92\xA1F\n\x92\x5\x92\xA21\n\x92\x3\x93"+ + "\x3\x93\x5\x93\xA25\n\x93\x3\x94\x6\x94\xA28\n\x94\r\x94\xE\x94\xA29\x3"+ + "\x94\x2\x2\x3\xBC\x95\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ + "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ + ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ + "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ + "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ + "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ + "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ + "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ + "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ + "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ + "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ + "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2"+ + "\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C"+ + "\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3"+ "\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81"+ "\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))+"+ "+\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a"+ @@ -16103,986 +16081,985 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x2?@\r\x2\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9"+ "\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE"+ "\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE"+ - "\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBC1\x2\x12A\x3\x2"+ - "\x2\x2\x4\x12E\x3\x2\x2\x2\x6\x149\x3\x2\x2\x2\b\x154\x3\x2\x2\x2\n\x166"+ - "\x3\x2\x2\x2\f\x17E\x3\x2\x2\x2\xE\x182\x3\x2\x2\x2\x10\x197\x3\x2\x2"+ - "\x2\x12\x1A1\x3\x2\x2\x2\x14\x1A3\x3\x2\x2\x2\x16\x1B3\x3\x2\x2\x2\x18"+ - "\x1B5\x3\x2\x2\x2\x1A\x1CD\x3\x2\x2\x2\x1C\x21A\x3\x2\x2\x2\x1E\x21C\x3"+ - "\x2\x2\x2 \x229\x3\x2\x2\x2\"\x22B\x3\x2\x2\x2$\x22F\x3\x2\x2\x2&\x233"+ - "\x3\x2\x2\x2(\x248\x3\x2\x2\x2*\x25A\x3\x2\x2\x2,\x26C\x3\x2\x2\x2.\x279"+ - "\x3\x2\x2\x2\x30\x2A3\x3\x2\x2\x2\x32\x2D9\x3\x2\x2\x2\x34\x2F8\x3\x2"+ - "\x2\x2\x36\x2FA\x3\x2\x2\x2\x38\x2FF\x3\x2\x2\x2:\x30D\x3\x2\x2\x2<\x31A"+ - "\x3\x2\x2\x2>\x32A\x3\x2\x2\x2@\x331\x3\x2\x2\x2\x42\x33B\x3\x2\x2\x2"+ - "\x44\x33D\x3\x2\x2\x2\x46\x349\x3\x2\x2\x2H\x35F\x3\x2\x2\x2J\x38C\x3"+ - "\x2\x2\x2L\x3AC\x3\x2\x2\x2N\x3C2\x3\x2\x2\x2P\x3C6\x3\x2\x2\x2R\x3E4"+ - "\x3\x2\x2\x2T\x3E6\x3\x2\x2\x2V\x3EF\x3\x2\x2\x2X\x3F1\x3\x2\x2\x2Z\x3FA"+ - "\x3\x2\x2\x2\\\x3FF\x3\x2\x2\x2^\x403\x3\x2\x2\x2`\x412\x3\x2\x2\x2\x62"+ - "\x418\x3\x2\x2\x2\x64\x424\x3\x2\x2\x2\x66\x430\x3\x2\x2\x2h\x434\x3\x2"+ - "\x2\x2j\x448\x3\x2\x2\x2l\x454\x3\x2\x2\x2n\x462\x3\x2\x2\x2p\x466\x3"+ - "\x2\x2\x2r\x46E\x3\x2\x2\x2t\x47A\x3\x2\x2\x2v\x48E\x3\x2\x2\x2x\x4A2"+ - "\x3\x2\x2\x2z\x4E7\x3\x2\x2\x2|\x4FA\x3\x2\x2\x2~\x4FC\x3\x2\x2\x2\x80"+ - "\x50C\x3\x2\x2\x2\x82\x52C\x3\x2\x2\x2\x84\x544\x3\x2\x2\x2\x86\x559\x3"+ - "\x2\x2\x2\x88\x56F\x3\x2\x2\x2\x8A\x582\x3\x2\x2\x2\x8C\x588\x3\x2\x2"+ - "\x2\x8E\x59C\x3\x2\x2\x2\x90\x5AE\x3\x2\x2\x2\x92\x5B0\x3\x2\x2\x2\x94"+ - "\x5B8\x3\x2\x2\x2\x96\x5BA\x3\x2\x2\x2\x98\x5BE\x3\x2\x2\x2\x9A\x5CA\x3"+ - "\x2\x2\x2\x9C\x5D6\x3\x2\x2\x2\x9E\x5F2\x3\x2\x2\x2\xA0\x5FE\x3\x2\x2"+ - "\x2\xA2\x61D\x3\x2\x2\x2\xA4\x61F\x3\x2\x2\x2\xA6\x635\x3\x2\x2\x2\xA8"+ - "\x637\x3\x2\x2\x2\xAA\x644\x3\x2\x2\x2\xAC\x650\x3\x2\x2\x2\xAE\x65C\x3"+ - "\x2\x2\x2\xB0\x661\x3\x2\x2\x2\xB2\x678\x3\x2\x2\x2\xB4\x685\x3\x2\x2"+ - "\x2\xB6\x693\x3\x2\x2\x2\xB8\x6AB\x3\x2\x2\x2\xBA\x6AF\x3\x2\x2\x2\xBC"+ - "\x6F0\x3\x2\x2\x2\xBE\x763\x3\x2\x2\x2\xC0\x770\x3\x2\x2\x2\xC2\x779\x3"+ - "\x2\x2\x2\xC4\x787\x3\x2\x2\x2\xC6\x7A3\x3\x2\x2\x2\xC8\x7AC\x3\x2\x2"+ - "\x2\xCA\x7B8\x3\x2\x2\x2\xCC\x7C6\x3\x2\x2\x2\xCE\x7C8\x3\x2\x2\x2\xD0"+ - "\x7D6\x3\x2\x2\x2\xD2\x7DC\x3\x2\x2\x2\xD4\x7DE\x3\x2\x2\x2\xD6\x7FF\x3"+ - "\x2\x2\x2\xD8\x826\x3\x2\x2\x2\xDA\x829\x3\x2\x2\x2\xDC\x84D\x3\x2\x2"+ - "\x2\xDE\x863\x3\x2\x2\x2\xE0\x865\x3\x2\x2\x2\xE2\x87D\x3\x2\x2\x2\xE4"+ - "\x8A4\x3\x2\x2\x2\xE6\x8C0\x3\x2\x2\x2\xE8\x8C9\x3\x2\x2\x2\xEA\x8D9\x3"+ - "\x2\x2\x2\xEC\x8ED\x3\x2\x2\x2\xEE\x8F8\x3\x2\x2\x2\xF0\x900\x3\x2\x2"+ - "\x2\xF2\x91B\x3\x2\x2\x2\xF4\x93F\x3\x2\x2\x2\xF6\x945\x3\x2\x2\x2\xF8"+ - "\x958\x3\x2\x2\x2\xFA\x95E\x3\x2\x2\x2\xFC\x960\x3\x2\x2\x2\xFE\x96F\x3"+ - "\x2\x2\x2\x100\x971\x3\x2\x2\x2\x102\x973\x3\x2\x2\x2\x104\x97B\x3\x2"+ - "\x2\x2\x106\x983\x3\x2\x2\x2\x108\x990\x3\x2\x2\x2\x10A\x99C\x3\x2\x2"+ - "\x2\x10C\x99E\x3\x2\x2\x2\x10E\x9A2\x3\x2\x2\x2\x110\x9AE\x3\x2\x2\x2"+ - "\x112\x9B0\x3\x2\x2\x2\x114\x9B2\x3\x2\x2\x2\x116\x9C7\x3\x2\x2\x2\x118"+ - "\x9D3\x3\x2\x2\x2\x11A\x9D6\x3\x2\x2\x2\x11C\x9D8\x3\x2\x2\x2\x11E\x9DA"+ - "\x3\x2\x2\x2\x120\x9E0\x3\x2\x2\x2\x122\x9E5\x3\x2\x2\x2\x124\xA24\x3"+ - "\x2\x2\x2\x126\xA28\x3\x2\x2\x2\x128\xA2B\x3\x2\x2\x2\x12A\x12B\x5\x4"+ - "\x3\x2\x12B\x12C\a\x2\x2\x3\x12C\x3\x3\x2\x2\x2\x12D\x12F\x5\x128\x95"+ - "\x2\x12E\x12D\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x130\x3\x2\x2\x2"+ - "\x130\x134\x5\x118\x8D\x2\x131\x132\x5\x6\x4\x2\x132\x133\x5\x118\x8D"+ - "\x2\x133\x135\x3\x2\x2\x2\x134\x131\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2"+ - "\x135\x137\x3\x2\x2\x2\x136\x138\x5\b\x5\x2\x137\x136\x3\x2\x2\x2\x137"+ - "\x138\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13B\x5\x118\x8D\x2\x13A"+ - "\x13C\x5\f\a\x2\x13B\x13A\x3\x2\x2\x2\x13B\x13C\x3\x2\x2\x2\x13C\x13D"+ - "\x3\x2\x2\x2\x13D\x13F\x5\x118\x8D\x2\x13E\x140\x5\xE\b\x2\x13F\x13E\x3"+ - "\x2\x2\x2\x13F\x140\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x5\x118"+ - "\x8D\x2\x142\x144\x5\x14\v\x2\x143\x142\x3\x2\x2\x2\x143\x144\x3\x2\x2"+ - "\x2\x144\x145\x3\x2\x2\x2\x145\x147\x5\x118\x8D\x2\x146\x148\x5\x128\x95"+ - "\x2\x147\x146\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2\x148\x5\x3\x2\x2\x2\x149"+ - "\x14A\a\xD7\x2\x2\x14A\x14B\x5\x128\x95\x2\x14B\x14D\x5\x10C\x87\x2\x14C"+ - "\x14E\x5\x128\x95\x2\x14D\x14C\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E"+ - "\x150\x3\x2\x2\x2\x14F\x151\a\x46\x2\x2\x150\x14F\x3\x2\x2\x2\x150\x151"+ - "\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\x5\x118\x8D\x2\x153\a\x3"+ - "\x2\x2\x2\x154\x15C\a;\x2\x2\x155\x156\x5\x128\x95\x2\x156\x157\a\x103"+ - "\x2\x2\x157\x158\x5\x128\x95\x2\x158\x15A\x5\xFA~\x2\x159\x15B\x5\x128"+ - "\x95\x2\x15A\x159\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15D\x3\x2\x2"+ - "\x2\x15C\x155\x3\x2\x2\x2\x15C\x15D\x3\x2\x2\x2\x15D\x15E\x3\x2\x2\x2"+ - "\x15E\x160\x5\x118\x8D\x2\x15F\x161\x5\n\x6\x2\x160\x15F\x3\x2\x2\x2\x161"+ - "\x162\x3\x2\x2\x2\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164"+ - "\x3\x2\x2\x2\x164\x165\ai\x2\x2\x165\t\x3\x2\x2\x2\x166\x16A\x5\xFA~\x2"+ - "\x167\x169\x5\x128\x95\x2\x168\x167\x3\x2\x2\x2\x169\x16C\x3\x2\x2\x2"+ - "\x16A\x168\x3\x2\x2\x2\x16A\x16B\x3\x2\x2\x2\x16B\x16D\x3\x2\x2\x2\x16C"+ - "\x16A\x3\x2\x2\x2\x16D\x171\a\xE2\x2\x2\x16E\x170\x5\x128\x95\x2\x16F"+ - "\x16E\x3\x2\x2\x2\x170\x173\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2\x171\x172"+ - "\x3\x2\x2\x2\x172\x174\x3\x2\x2\x2\x173\x171\x3\x2\x2\x2\x174\x177\x5"+ - "\x10A\x86\x2\x175\x176\a*\x2\x2\x176\x178\x5\x10C\x87\x2\x177\x175\x3"+ - "\x2\x2\x2\x177\x178\x3\x2\x2\x2\x178\x179\x3\x2\x2\x2\x179\x17A\x5\x118"+ - "\x8D\x2\x17A\v\x3\x2\x2\x2\x17B\x17C\x5\x18\r\x2\x17C\x17D\x5\x118\x8D"+ - "\x2\x17D\x17F\x3\x2\x2\x2\x17E\x17B\x3\x2\x2\x2\x17F\x180\x3\x2\x2\x2"+ - "\x180\x17E\x3\x2\x2\x2\x180\x181\x3\x2\x2\x2\x181\r\x3\x2\x2\x2\x182\x188"+ - "\x5\x12\n\x2\x183\x184\x5\x118\x8D\x2\x184\x185\x5\x12\n\x2\x185\x187"+ - "\x3\x2\x2\x2\x186\x183\x3\x2\x2\x2\x187\x18A\x3\x2\x2\x2\x188\x186\x3"+ - "\x2\x2\x2\x188\x189\x3\x2\x2\x2\x189\x18B\x3\x2\x2\x2\x18A\x188\x3\x2"+ - "\x2\x2\x18B\x18C\x5\x118\x8D\x2\x18C\xF\x3\x2\x2\x2\x18D\x18E\a\xA0\x2"+ - "\x2\x18E\x18F\x5\x128\x95\x2\x18F\x190\x5\x10C\x87\x2\x190\x198\x3\x2"+ - "\x2\x2\x191\x192\a\xA2\x2\x2\x192\x193\x5\x128\x95\x2\x193\x194\t\x2\x2"+ - "\x2\x194\x198\x3\x2\x2\x2\x195\x198\a\xA1\x2\x2\x196\x198\a\xA3\x2\x2"+ - "\x197\x18D\x3\x2\x2\x2\x197\x191\x3\x2\x2\x2\x197\x195\x3\x2\x2\x2\x197"+ - "\x196\x3\x2\x2\x2\x198\x11\x3\x2\x2\x2\x199\x1A2\x5.\x18\x2\x19A\x1A2"+ - "\x5\x38\x1D\x2\x19B\x1A2\x5@!\x2\x19C\x1A2\x5(\x15\x2\x19D\x1A2\x5\\/"+ - "\x2\x19E\x1A2\x5\xC0\x61\x2\x19F\x1A2\x5\x10\t\x2\x1A0\x1A2\x5\xB4[\x2"+ - "\x1A1\x199\x3\x2\x2\x2\x1A1\x19A\x3\x2\x2\x2\x1A1\x19B\x3\x2\x2\x2\x1A1"+ - "\x19C\x3\x2\x2\x2\x1A1\x19D\x3\x2\x2\x2\x1A1\x19E\x3\x2\x2\x2\x1A1\x19F"+ - "\x3\x2\x2\x2\x1A1\x1A0\x3\x2\x2\x2\x1A2\x13\x3\x2\x2\x2\x1A3\x1A9\x5\x16"+ - "\f\x2\x1A4\x1A5\x5\x118\x8D\x2\x1A5\x1A6\x5\x16\f\x2\x1A6\x1A8\x3\x2\x2"+ - "\x2\x1A7\x1A4\x3\x2\x2\x2\x1A8\x1AB\x3\x2\x2\x2\x1A9\x1A7\x3\x2\x2\x2"+ - "\x1A9\x1AA\x3\x2\x2\x2\x1AA\x1AC\x3\x2\x2\x2\x1AB\x1A9\x3\x2\x2\x2\x1AC"+ - "\x1AD\x5\x118\x8D\x2\x1AD\x15\x3\x2\x2\x2\x1AE\x1B4\x5J&\x2\x1AF\x1B4"+ - "\x5\x80\x41\x2\x1B0\x1B4\x5\x82\x42\x2\x1B1\x1B4\x5\x84\x43\x2\x1B2\x1B4"+ - "\x5\xB0Y\x2\x1B3\x1AE\x3\x2\x2\x2\x1B3\x1AF\x3\x2\x2\x2\x1B3\x1B0\x3\x2"+ - "\x2\x2\x1B3\x1B1\x3\x2\x2\x2\x1B3\x1B2\x3\x2\x2\x2\x1B4\x17\x3\x2\x2\x2"+ - "\x1B5\x1B6\a\x37\x2\x2\x1B6\x1B7\x5\x128\x95\x2\x1B7\x1B9\x5\xDEp\x2\x1B8"+ - "\x1BA\x5\x128\x95\x2\x1B9\x1B8\x3\x2\x2\x2\x1B9\x1BA\x3\x2\x2\x2\x1BA"+ - "\x1BB\x3\x2\x2\x2\x1BB\x1BD\a\xE2\x2\x2\x1BC\x1BE\x5\x128\x95\x2\x1BD"+ - "\x1BC\x3\x2\x2\x2\x1BD\x1BE\x3\x2\x2\x2\x1BE\x1BF\x3\x2\x2\x2\x1BF\x1CA"+ - "\x5\x10A\x86\x2\x1C0\x1C2\x5\x128\x95\x2\x1C1\x1C0\x3\x2\x2\x2\x1C1\x1C2"+ - "\x3\x2\x2\x2\x1C2\x1C3\x3\x2\x2\x2\x1C3\x1C5\a)\x2\x2\x1C4\x1C6\x5\x128"+ - "\x95\x2\x1C5\x1C4\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2\x1C6\x1C7\x3\x2\x2"+ - "\x2\x1C7\x1C9\x5\x10A\x86\x2\x1C8\x1C1\x3\x2\x2\x2\x1C9\x1CC\x3\x2\x2"+ - "\x2\x1CA\x1C8\x3\x2\x2\x2\x1CA\x1CB\x3\x2\x2\x2\x1CB\x19\x3\x2\x2\x2\x1CC"+ - "\x1CA\x3\x2\x2\x2\x1CD\x1D3\x5\x1C\xF\x2\x1CE\x1CF\x5\x118\x8D\x2\x1CF"+ - "\x1D0\x5\x1C\xF\x2\x1D0\x1D2\x3\x2\x2\x2\x1D1\x1CE\x3\x2\x2\x2\x1D2\x1D5"+ - "\x3\x2\x2\x2\x1D3\x1D1\x3\x2\x2\x2\x1D3\x1D4\x3\x2\x2\x2\x1D4\x1D6\x3"+ - "\x2\x2\x2\x1D5\x1D3\x3\x2\x2\x2\x1D6\x1D7\x5\x118\x8D\x2\x1D7\x1B\x3\x2"+ - "\x2\x2\x1D8\x21B\x5\x108\x85\x2\x1D9\x21B\x5\x1E\x10\x2\x1DA\x21B\x5\x18"+ - "\r\x2\x1DB\x21B\x5 \x11\x2\x1DC\x21B\x5\"\x12\x2\x1DD\x21B\x5$\x13\x2"+ - "\x1DE\x21B\x5&\x14\x2\x1DF\x21B\x5(\x15\x2\x1E0\x21B\x5,\x17\x2\x1E1\x21B"+ - "\x5\x32\x1A\x2\x1E2\x21B\x5\x30\x19\x2\x1E3\x21B\x5\x34\x1B\x2\x1E4\x21B"+ - "\x5\x36\x1C\x2\x1E5\x21B\x5<\x1F\x2\x1E6\x21B\x5> \x2\x1E7\x21B\x5\x42"+ - "\"\x2\x1E8\x21B\x5\xD2j\x2\x1E9\x21B\x5\x44#\x2\x1EA\x21B\x5\x46$\x2\x1EB"+ - "\x21B\x5H%\x2\x1EC\x21B\x5L\'\x2\x1ED\x21B\x5N(\x2\x1EE\x21B\x5P)\x2\x1EF"+ - "\x21B\x5R*\x2\x1F0\x21B\x5\\/\x2\x1F1\x21B\x5^\x30\x2\x1F2\x21B\x5`\x31"+ - "\x2\x1F3\x21B\x5\x62\x32\x2\x1F4\x21B\x5\x64\x33\x2\x1F5\x21B\x5\x66\x34"+ - "\x2\x1F6\x21B\x5h\x35\x2\x1F7\x21B\x5j\x36\x2\x1F8\x21B\x5l\x37\x2\x1F9"+ - "\x21B\x5n\x38\x2\x1FA\x21B\x5p\x39\x2\x1FB\x21B\x5r:\x2\x1FC\x21B\x5t"+ - ";\x2\x1FD\x21B\x5v<\x2\x1FE\x21B\x5x=\x2\x1FF\x21B\x5~@\x2\x200\x21B\x5"+ - "\x86\x44\x2\x201\x21B\x5\x88\x45\x2\x202\x21B\x5\x8A\x46\x2\x203\x21B"+ - "\x5\x8CG\x2\x204\x21B\x5\x90I\x2\x205\x21B\x5\x92J\x2\x206\x21B\x5\x94"+ - "K\x2\x207\x21B\x5\x96L\x2\x208\x21B\x5\x98M\x2\x209\x21B\x5\x9AN\x2\x20A"+ - "\x21B\x5\x9CO\x2\x20B\x21B\x5\x9EP\x2\x20C\x21B\x5\xA0Q\x2\x20D\x21B\x5"+ - "\xA8U\x2\x20E\x21B\x5\xAAV\x2\x20F\x21B\x5\xACW\x2\x210\x21B\x5\xAEX\x2"+ - "\x211\x21B\x5\xB2Z\x2\x212\x21B\x5\xB8]\x2\x213\x21B\x5\xBA^\x2\x214\x21B"+ - "\x5\xC0\x61\x2\x215\x21B\x5\xC6\x64\x2\x216\x21B\x5\xC8\x65\x2\x217\x21B"+ - "\x5\xCA\x66\x2\x218\x21B\x5\xCEh\x2\x219\x21B\x5\xD8m\x2\x21A\x1D8\x3"+ - "\x2\x2\x2\x21A\x1D9\x3\x2\x2\x2\x21A\x1DA\x3\x2\x2\x2\x21A\x1DB\x3\x2"+ - "\x2\x2\x21A\x1DC\x3\x2\x2\x2\x21A\x1DD\x3\x2\x2\x2\x21A\x1DE\x3\x2\x2"+ - "\x2\x21A\x1DF\x3\x2\x2\x2\x21A\x1E0\x3\x2\x2\x2\x21A\x1E1\x3\x2\x2\x2"+ - "\x21A\x1E2\x3\x2\x2\x2\x21A\x1E3\x3\x2\x2\x2\x21A\x1E4\x3\x2\x2\x2\x21A"+ - "\x1E5\x3\x2\x2\x2\x21A\x1E6\x3\x2\x2\x2\x21A\x1E7\x3\x2\x2\x2\x21A\x1E8"+ - "\x3\x2\x2\x2\x21A\x1E9\x3\x2\x2\x2\x21A\x1EA\x3\x2\x2\x2\x21A\x1EB\x3"+ - "\x2\x2\x2\x21A\x1EC\x3\x2\x2\x2\x21A\x1ED\x3\x2\x2\x2\x21A\x1EE\x3\x2"+ - "\x2\x2\x21A\x1EF\x3\x2\x2\x2\x21A\x1F0\x3\x2\x2\x2\x21A\x1F1\x3\x2\x2"+ - "\x2\x21A\x1F2\x3\x2\x2\x2\x21A\x1F3\x3\x2\x2\x2\x21A\x1F4\x3\x2\x2\x2"+ - "\x21A\x1F5\x3\x2\x2\x2\x21A\x1F6\x3\x2\x2\x2\x21A\x1F7\x3\x2\x2\x2\x21A"+ - "\x1F8\x3\x2\x2\x2\x21A\x1F9\x3\x2\x2\x2\x21A\x1FA\x3\x2\x2\x2\x21A\x1FB"+ - "\x3\x2\x2\x2\x21A\x1FC\x3\x2\x2\x2\x21A\x1FD\x3\x2\x2\x2\x21A\x1FE\x3"+ - "\x2\x2\x2\x21A\x1FF\x3\x2\x2\x2\x21A\x200\x3\x2\x2\x2\x21A\x201\x3\x2"+ - "\x2\x2\x21A\x202\x3\x2\x2\x2\x21A\x203\x3\x2\x2\x2\x21A\x204\x3\x2\x2"+ - "\x2\x21A\x205\x3\x2\x2\x2\x21A\x206\x3\x2\x2\x2\x21A\x207\x3\x2\x2\x2"+ - "\x21A\x208\x3\x2\x2\x2\x21A\x209\x3\x2\x2\x2\x21A\x20A\x3\x2\x2\x2\x21A"+ - "\x20B\x3\x2\x2\x2\x21A\x20C\x3\x2\x2\x2\x21A\x20D\x3\x2\x2\x2\x21A\x20E"+ - "\x3\x2\x2\x2\x21A\x20F\x3\x2\x2\x2\x21A\x210\x3\x2\x2\x2\x21A\x211\x3"+ - "\x2\x2\x2\x21A\x212\x3\x2\x2\x2\x21A\x213\x3\x2\x2\x2\x21A\x214\x3\x2"+ - "\x2\x2\x21A\x215\x3\x2\x2\x2\x21A\x216\x3\x2\x2\x2\x21A\x217\x3\x2\x2"+ - "\x2\x21A\x218\x3\x2\x2\x2\x21A\x219\x3\x2\x2\x2\x21B\x1D\x3\x2\x2\x2\x21C"+ - "\x21D\a\x38\x2\x2\x21D\x21E\x5\x128\x95\x2\x21E\x227\x5\xBC_\x2\x21F\x221"+ - "\x5\x128\x95\x2\x220\x21F\x3\x2\x2\x2\x220\x221\x3\x2\x2\x2\x221\x222"+ - "\x3\x2\x2\x2\x222\x224\a)\x2\x2\x223\x225\x5\x128\x95\x2\x224\x223\x3"+ - "\x2\x2\x2\x224\x225\x3\x2\x2\x2\x225\x226\x3\x2\x2\x2\x226\x228\x5\xBC"+ - "_\x2\x227\x220\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228\x1F\x3\x2\x2\x2"+ - "\x229\x22A\a<\x2\x2\x22A!\x3\x2\x2\x2\x22B\x22C\a\x44\x2\x2\x22C\x22D"+ - "\x5\x128\x95\x2\x22D\x22E\x5\xBC_\x2\x22E#\x3\x2\x2\x2\x22F\x230\a\x45"+ - "\x2\x2\x230\x231\x5\x128\x95\x2\x231\x232\x5\xBC_\x2\x232%\x3\x2\x2\x2"+ - "\x233\x243\aG\x2\x2\x234\x235\x5\x128\x95\x2\x235\x240\x5\xD0i\x2\x236"+ - "\x238\x5\x128\x95\x2\x237\x236\x3\x2\x2\x2\x237\x238\x3\x2\x2\x2\x238"+ - "\x239\x3\x2\x2\x2\x239\x23B\a)\x2\x2\x23A\x23C\x5\x128\x95\x2\x23B\x23A"+ - "\x3\x2\x2\x2\x23B\x23C\x3\x2\x2\x2\x23C\x23D\x3\x2\x2\x2\x23D\x23F\x5"+ - "\xD0i\x2\x23E\x237\x3\x2\x2\x2\x23F\x242\x3\x2\x2\x2\x240\x23E\x3\x2\x2"+ - "\x2\x240\x241\x3\x2\x2\x2\x241\x244\x3\x2\x2\x2\x242\x240\x3\x2\x2\x2"+ - "\x243\x234\x3\x2\x2\x2\x243\x244\x3\x2\x2\x2\x244\'\x3\x2\x2\x2\x245\x246"+ - "\x5\x112\x8A\x2\x246\x247\x5\x128\x95\x2\x247\x249\x3\x2\x2\x2\x248\x245"+ - "\x3\x2\x2\x2\x248\x249\x3\x2\x2\x2\x249\x24A\x3\x2\x2\x2\x24A\x24B\aH"+ - "\x2\x2\x24B\x24C\x5\x128\x95\x2\x24C\x257\x5*\x16\x2\x24D\x24F\x5\x128"+ - "\x95\x2\x24E\x24D\x3\x2\x2\x2\x24E\x24F\x3\x2\x2\x2\x24F\x250\x3\x2\x2"+ - "\x2\x250\x252\a)\x2\x2\x251\x253\x5\x128\x95\x2\x252\x251\x3\x2\x2\x2"+ - "\x252\x253\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254\x256\x5*\x16\x2\x255"+ - "\x24E\x3\x2\x2\x2\x256\x259\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x257\x258"+ - "\x3\x2\x2\x2\x258)\x3\x2\x2\x2\x259\x257\x3\x2\x2\x2\x25A\x25C\x5\xFA"+ - "~\x2\x25B\x25D\x5\x110\x89\x2\x25C\x25B\x3\x2\x2\x2\x25C\x25D\x3\x2\x2"+ - "\x2\x25D\x261\x3\x2\x2\x2\x25E\x25F\x5\x128\x95\x2\x25F\x260\x5\xFC\x7F"+ - "\x2\x260\x262\x3\x2\x2\x2\x261\x25E\x3\x2\x2\x2\x261\x262\x3\x2\x2\x2"+ - "\x262\x264\x3\x2\x2\x2\x263\x265\x5\x128\x95\x2\x264\x263\x3\x2\x2\x2"+ - "\x264\x265\x3\x2\x2\x2\x265\x266\x3\x2\x2\x2\x266\x268\a\xE2\x2\x2\x267"+ - "\x269\x5\x128\x95\x2\x268\x267\x3\x2\x2\x2\x268\x269\x3\x2\x2\x2\x269"+ - "\x26A\x3\x2\x2\x2\x26A\x26B\x5\xBC_\x2\x26B+\x3\x2\x2\x2\x26C\x26E\aJ"+ - "\x2\x2\x26D\x26F\x5\x128\x95\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3\x2"+ - "\x2\x2\x26F\x270\x3\x2\x2\x2\x270\x272\a\xE2\x2\x2\x271\x273\x5\x128\x95"+ - "\x2\x272\x271\x3\x2\x2\x2\x272\x273\x3\x2\x2\x2\x273\x274\x3\x2\x2\x2"+ - "\x274\x275\x5\xBC_\x2\x275-\x3\x2\x2\x2\x276\x277\x5\x112\x8A\x2\x277"+ - "\x278\x5\x128\x95\x2\x278\x27A\x3\x2\x2\x2\x279\x276\x3\x2\x2\x2\x279"+ - "\x27A\x3\x2\x2\x2\x27A\x27B\x3\x2\x2\x2\x27B\x27C\aK\x2\x2\x27C\x27F\x5"+ - "\x128\x95\x2\x27D\x27E\a\xAD\x2\x2\x27E\x280\x5\x128\x95\x2\x27F\x27D"+ - "\x3\x2\x2\x2\x27F\x280\x3\x2\x2\x2\x280\x286\x3\x2\x2\x2\x281\x283\ax"+ - "\x2\x2\x282\x284\x5\x110\x89\x2\x283\x282\x3\x2\x2\x2\x283\x284\x3\x2"+ - "\x2\x2\x284\x287\x3\x2\x2\x2\x285\x287\a\xCA\x2\x2\x286\x281\x3\x2\x2"+ - "\x2\x286\x285\x3\x2\x2\x2\x287\x288\x3\x2\x2\x2\x288\x289\x5\x128\x95"+ - "\x2\x289\x28B\x5\xFA~\x2\x28A\x28C\x5\x110\x89\x2\x28B\x28A\x3\x2\x2\x2"+ - "\x28B\x28C\x3\x2\x2\x2\x28C\x28D\x3\x2\x2\x2\x28D\x28E\x5\x128\x95\x2"+ - "\x28E\x28F\a\x8A\x2\x2\x28F\x290\x5\x128\x95\x2\x290\x296\a\xF5\x2\x2"+ - "\x291\x292\x5\x128\x95\x2\x292\x293\a\x35\x2\x2\x293\x294\x5\x128\x95"+ - "\x2\x294\x295\a\xF5\x2\x2\x295\x297\x3\x2\x2\x2\x296\x291\x3\x2\x2\x2"+ - "\x296\x297\x3\x2\x2\x2\x297\x29C\x3\x2\x2\x2\x298\x29A\x5\x128\x95\x2"+ - "\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2\x2\x29A\x29B\x3\x2\x2\x2\x29B"+ - "\x29D\x5\xF0y\x2\x29C\x299\x3\x2\x2\x2\x29C\x29D\x3\x2\x2\x2\x29D\x2A1"+ - "\x3\x2\x2\x2\x29E\x29F\x5\x128\x95\x2\x29F\x2A0\x5\xFC\x7F\x2\x2A0\x2A2"+ - "\x3\x2\x2\x2\x2A1\x29E\x3\x2\x2\x2\x2A1\x2A2\x3\x2\x2\x2\x2A2/\x3\x2\x2"+ - "\x2\x2A3\x2A4\t\x3\x2\x2\x2A4\x2A5\x5\x128\x95\x2\x2A5\x2B0\x5\x106\x84"+ - "\x2\x2A6\x2A8\x5\x128\x95\x2\x2A7\x2A6\x3\x2\x2\x2\x2A7\x2A8\x3\x2\x2"+ - "\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AB\a)\x2\x2\x2AA\x2AC\x5\x128\x95\x2"+ - "\x2AB\x2AA\x3\x2\x2\x2\x2AB\x2AC\x3\x2\x2\x2\x2AC\x2AD\x3\x2\x2\x2\x2AD"+ - "\x2AF\x5\x106\x84\x2\x2AE\x2A7\x3\x2\x2\x2\x2AF\x2B2\x3\x2\x2\x2\x2B0"+ - "\x2AE\x3\x2\x2\x2\x2B0\x2B1\x3\x2\x2\x2\x2B1\x31\x3\x2\x2\x2\x2B2\x2B0"+ - "\x3\x2\x2\x2\x2B3\x2B4\aY\x2\x2\x2B4\x2B5\x5\x128\x95\x2\x2B5\x2B7\x5"+ - "\xBC_\x2\x2B6\x2B8\x5\x128\x95\x2\x2B7\x2B6\x3\x2\x2\x2\x2B7\x2B8\x3\x2"+ - "\x2\x2\x2B8\x2DA\x3\x2\x2\x2\x2B9\x2BA\aY\x2\x2\x2BA\x2BB\x5\x128\x95"+ - "\x2\x2BB\x2BD\x5\xBC_\x2\x2BC\x2BE\x5\x128\x95\x2\x2BD\x2BC\x3\x2\x2\x2"+ - "\x2BD\x2BE\x3\x2\x2\x2\x2BE\x2BF\x3\x2\x2\x2\x2BF\x2C1\a)\x2\x2\x2C0\x2C2"+ - "\x5\x128\x95\x2\x2C1\x2C0\x3\x2\x2\x2\x2C1\x2C2\x3\x2\x2\x2\x2C2\x2C3"+ - "\x3\x2\x2\x2\x2C3\x2C4\x5\xBC_\x2\x2C4\x2DA\x3\x2\x2\x2\x2C5\x2C6\aY\x2"+ - "\x2\x2C6\x2C7\x5\x128\x95\x2\x2C7\x2C9\x5\xBC_\x2\x2C8\x2CA\x5\x128\x95"+ - "\x2\x2C9\x2C8\x3\x2\x2\x2\x2C9\x2CA\x3\x2\x2\x2\x2CA\x2CB\x3\x2\x2\x2"+ - "\x2CB\x2CD\a)\x2\x2\x2CC\x2CE\x5\x128\x95\x2\x2CD\x2CC\x3\x2\x2\x2\x2CD"+ - "\x2CE\x3\x2\x2\x2\x2CE\x2CF\x3\x2\x2\x2\x2CF\x2D1\x5\xBC_\x2\x2D0\x2D2"+ - "\x5\x128\x95\x2\x2D1\x2D0\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D3"+ - "\x3\x2\x2\x2\x2D3\x2D5\a)\x2\x2\x2D4\x2D6\x5\x128\x95\x2\x2D5\x2D4\x3"+ - "\x2\x2\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D7\x3\x2\x2\x2\x2D7\x2D8\x5\xBC"+ - "_\x2\x2D8\x2DA\x3\x2\x2\x2\x2D9\x2B3\x3\x2\x2\x2\x2D9\x2B9\x3\x2\x2\x2"+ - "\x2D9\x2C5\x3\x2\x2\x2\x2DA\x33\x3\x2\x2\x2\x2DB\x2DC\a[\x2\x2\x2DC\x2DE"+ - "\x5\x118\x8D\x2\x2DD\x2DF\x5\x1A\xE\x2\x2DE\x2DD\x3\x2\x2\x2\x2DE\x2DF"+ - "\x3\x2\x2\x2\x2DF\x2E0\x3\x2\x2\x2\x2E0\x2E1\a\x88\x2\x2\x2E1\x2F9\x3"+ - "\x2\x2\x2\x2E2\x2E3\a[\x2\x2\x2E3\x2E4\x5\x128\x95\x2\x2E4\x2E5\t\x4\x2"+ - "\x2\x2E5\x2E6\x5\x128\x95\x2\x2E6\x2E7\x5\xBC_\x2\x2E7\x2E9\x5\x118\x8D"+ - "\x2\x2E8\x2EA\x5\x1A\xE\x2\x2E9\x2E8\x3\x2\x2\x2\x2E9\x2EA\x3\x2\x2\x2"+ - "\x2EA\x2EB\x3\x2\x2\x2\x2EB\x2EC\a\x88\x2\x2\x2EC\x2F9\x3\x2\x2\x2\x2ED"+ - "\x2EE\a[\x2\x2\x2EE\x2F0\x5\x118\x8D\x2\x2EF\x2F1\x5\x1A\xE\x2\x2F0\x2EF"+ - "\x3\x2\x2\x2\x2F0\x2F1\x3\x2\x2\x2\x2F1\x2F2\x3\x2\x2\x2\x2F2\x2F3\a\x88"+ - "\x2\x2\x2F3\x2F4\x5\x128\x95\x2\x2F4\x2F5\t\x4\x2\x2\x2F5\x2F6\x5\x128"+ - "\x95\x2\x2F6\x2F7\x5\xBC_\x2\x2F7\x2F9\x3\x2\x2\x2\x2F8\x2DB\x3\x2\x2"+ - "\x2\x2F8\x2E2\x3\x2\x2\x2\x2F8\x2ED\x3\x2\x2\x2\x2F9\x35\x3\x2\x2\x2\x2FA"+ - "\x2FB\ai\x2\x2\x2FB\x37\x3\x2\x2\x2\x2FC\x2FD\x5\x112\x8A\x2\x2FD\x2FE"+ - "\x5\x128\x95\x2\x2FE\x300\x3\x2\x2\x2\x2FF\x2FC\x3\x2\x2\x2\x2FF\x300"+ - "\x3\x2\x2\x2\x300\x301\x3\x2\x2\x2\x301\x302\aj\x2\x2\x302\x303\x5\x128"+ - "\x95\x2\x303\x304\x5\xFA~\x2\x304\x308\x5\x118\x8D\x2\x305\x307\x5:\x1E"+ - "\x2\x306\x305\x3\x2\x2\x2\x307\x30A\x3\x2\x2\x2\x308\x306\x3\x2\x2\x2"+ - "\x308\x309\x3\x2\x2\x2\x309\x30B\x3\x2\x2\x2\x30A\x308\x3\x2\x2\x2\x30B"+ - "\x30C\a\x61\x2\x2\x30C\x39\x3\x2\x2\x2\x30D\x316\x5\xFA~\x2\x30E\x310"+ - "\x5\x128\x95\x2\x30F\x30E\x3\x2\x2\x2\x30F\x310\x3\x2\x2\x2\x310\x311"+ - "\x3\x2\x2\x2\x311\x313\a\xE2\x2\x2\x312\x314\x5\x128\x95\x2\x313\x312"+ - "\x3\x2\x2\x2\x313\x314\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315\x317\x5"+ - "\xBC_\x2\x316\x30F\x3\x2\x2\x2\x316\x317\x3\x2\x2\x2\x317\x318\x3\x2\x2"+ - "\x2\x318\x319\x5\x118\x8D\x2\x319;\x3\x2\x2\x2\x31A\x31B\al\x2\x2\x31B"+ - "\x31C\x5\x128\x95\x2\x31C\x327\x5\xBC_\x2\x31D\x31F\x5\x128\x95\x2\x31E"+ - "\x31D\x3\x2\x2\x2\x31E\x31F\x3\x2\x2\x2\x31F\x320\x3\x2\x2\x2\x320\x322"+ - "\a)\x2\x2\x321\x323\x5\x128\x95\x2\x322\x321\x3\x2\x2\x2\x322\x323\x3"+ - "\x2\x2\x2\x323\x324\x3\x2\x2\x2\x324\x326\x5\xBC_\x2\x325\x31E\x3\x2\x2"+ - "\x2\x326\x329\x3\x2\x2\x2\x327\x325\x3\x2\x2\x2\x327\x328\x3\x2\x2\x2"+ - "\x328=\x3\x2\x2\x2\x329\x327\x3\x2\x2\x2\x32A\x32B\am\x2\x2\x32B\x32C"+ - "\x5\x128\x95\x2\x32C\x32D\x5\xBC_\x2\x32D?\x3\x2\x2\x2\x32E\x32F\x5\x112"+ - "\x8A\x2\x32F\x330\x5\x128\x95\x2\x330\x332\x3\x2\x2\x2\x331\x32E\x3\x2"+ - "\x2\x2\x331\x332\x3\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x334\an\x2\x2"+ - "\x334\x335\x5\x128\x95\x2\x335\x337\x5\xFA~\x2\x336\x338\x5\x128\x95\x2"+ - "\x337\x336\x3\x2\x2\x2\x337\x338\x3\x2\x2\x2\x338\x339\x3\x2\x2\x2\x339"+ - "\x33A\x5\xF0y\x2\x33A\x41\x3\x2\x2\x2\x33B\x33C\t\x5\x2\x2\x33C\x43\x3"+ - "\x2\x2\x2\x33D\x33E\au\x2\x2\x33E\x33F\x5\x128\x95\x2\x33F\x341\x5\xBC"+ - "_\x2\x340\x342\x5\x128\x95\x2\x341\x340\x3\x2\x2\x2\x341\x342\x3\x2\x2"+ - "\x2\x342\x343\x3\x2\x2\x2\x343\x345\a)\x2\x2\x344\x346\x5\x128\x95\x2"+ - "\x345\x344\x3\x2\x2\x2\x345\x346\x3\x2\x2\x2\x346\x347\x3\x2\x2\x2\x347"+ - "\x348\x5\xBC_\x2\x348\x45\x3\x2\x2\x2\x349\x34A\aw\x2\x2\x34A\x34B\x5"+ - "\x128\x95\x2\x34B\x34C\a]\x2\x2\x34C\x34D\x5\x128\x95\x2\x34D\x34F\x5"+ - "\xFA~\x2\x34E\x350\x5\x110\x89\x2\x34F\x34E\x3\x2\x2\x2\x34F\x350\x3\x2"+ - "\x2\x2\x350\x351\x3\x2\x2\x2\x351\x352\x5\x128\x95\x2\x352\x353\a\x80"+ - "\x2\x2\x353\x354\x5\x128\x95\x2\x354\x355\x5\xBC_\x2\x355\x357\x5\x118"+ - "\x8D\x2\x356\x358\x5\x1A\xE\x2\x357\x356\x3\x2\x2\x2\x357\x358\x3\x2\x2"+ - "\x2\x358\x359\x3\x2\x2\x2\x359\x35D\a\x96\x2\x2\x35A\x35B\x5\x128\x95"+ - "\x2\x35B\x35C\x5\xFA~\x2\x35C\x35E\x3\x2\x2\x2\x35D\x35A\x3\x2\x2\x2\x35D"+ - "\x35E\x3\x2\x2\x2\x35EG\x3\x2\x2\x2\x35F\x360\aw\x2\x2\x360\x361\x5\x128"+ - "\x95\x2\x361\x363\x5\xFA~\x2\x362\x364\x5\x110\x89\x2\x363\x362\x3\x2"+ - "\x2\x2\x363\x364\x3\x2\x2\x2\x364\x368\x3\x2\x2\x2\x365\x366\x5\x128\x95"+ - "\x2\x366\x367\x5\xFC\x7F\x2\x367\x369\x3\x2\x2\x2\x368\x365\x3\x2\x2\x2"+ - "\x368\x369\x3\x2\x2\x2\x369\x36B\x3\x2\x2\x2\x36A\x36C\x5\x128\x95\x2"+ - "\x36B\x36A\x3\x2\x2\x2\x36B\x36C\x3\x2\x2\x2\x36C\x36D\x3\x2\x2\x2\x36D"+ - "\x36F\a\xE2\x2\x2\x36E\x370\x5\x128\x95\x2\x36F\x36E\x3\x2\x2\x2\x36F"+ - "\x370\x3\x2\x2\x2\x370\x371\x3\x2\x2\x2\x371\x372\x5\xBC_\x2\x372\x373"+ - "\x5\x128\x95\x2\x373\x374\a\xCF\x2\x2\x374\x375\x5\x128\x95\x2\x375\x37B"+ - "\x5\xBC_\x2\x376\x377\x5\x128\x95\x2\x377\x378\a\xC7\x2\x2\x378\x379\x5"+ - "\x128\x95\x2\x379\x37A\x5\xBC_\x2\x37A\x37C\x3\x2\x2\x2\x37B\x376\x3\x2"+ - "\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37D\x3\x2\x2\x2\x37D\x37F\x5\x118\x8D"+ - "\x2\x37E\x380\x5\x1A\xE\x2\x37F\x37E\x3\x2\x2\x2\x37F\x380\x3\x2\x2\x2"+ - "\x380\x381\x3\x2\x2\x2\x381\x387\a\x96\x2\x2\x382\x383\x5\x128\x95\x2"+ - "\x383\x385\x5\xFA~\x2\x384\x386\x5\x110\x89\x2\x385\x384\x3\x2\x2\x2\x385"+ - "\x386\x3\x2\x2\x2\x386\x388\x3\x2\x2\x2\x387\x382\x3\x2\x2\x2\x387\x388"+ - "\x3\x2\x2\x2\x388I\x3\x2\x2\x2\x389\x38A\x5\x112\x8A\x2\x38A\x38B\x5\x128"+ - "\x95\x2\x38B\x38D\x3\x2\x2\x2\x38C\x389\x3\x2\x2\x2\x38C\x38D\x3\x2\x2"+ - "\x2\x38D\x390\x3\x2\x2\x2\x38E\x38F\a\xC6\x2\x2\x38F\x391\x5\x128\x95"+ - "\x2\x390\x38E\x3\x2\x2\x2\x390\x391\x3\x2\x2\x2\x391\x392\x3\x2\x2\x2"+ - "\x392\x394\ax\x2\x2\x393\x395\x5\x128\x95\x2\x394\x393\x3\x2\x2\x2\x394"+ - "\x395\x3\x2\x2\x2\x395\x396\x3\x2\x2\x2\x396\x398\x5\xFA~\x2\x397\x399"+ - "\x5\x110\x89\x2\x398\x397\x3\x2\x2\x2\x398\x399\x3\x2\x2\x2\x399\x39E"+ - "\x3\x2\x2\x2\x39A\x39C\x5\x128\x95\x2\x39B\x39A\x3\x2\x2\x2\x39B\x39C"+ - "\x3\x2\x2\x2\x39C\x39D\x3\x2\x2\x2\x39D\x39F\x5\xF0y\x2\x39E\x39B\x3\x2"+ - "\x2\x2\x39E\x39F\x3\x2\x2\x2\x39F\x3A4\x3\x2\x2\x2\x3A0\x3A2\x5\x128\x95"+ - "\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2"+ - "\x3A3\x3A5\x5\xFC\x7F\x2\x3A4\x3A1\x3\x2\x2\x2\x3A4\x3A5\x3\x2\x2\x2\x3A5"+ - "\x3A6\x3\x2\x2\x2\x3A6\x3A8\x5\x118\x8D\x2\x3A7\x3A9\x5\x1A\xE\x2\x3A8"+ - "\x3A7\x3\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AA\x3\x2\x2\x2\x3AA\x3AB"+ - "\a\x62\x2\x2\x3ABK\x3\x2\x2\x2\x3AC\x3AD\ay\x2\x2\x3AD\x3AE\x5\x128\x95"+ - "\x2\x3AE\x3B0\x5\xD0i\x2\x3AF\x3B1\x5\x128\x95\x2\x3B0\x3AF\x3\x2\x2\x2"+ - "\x3B0\x3B1\x3\x2\x2\x2\x3B1\x3B2\x3\x2\x2\x2\x3B2\x3B4\a)\x2\x2\x3B3\x3B5"+ - "\x5\x128\x95\x2\x3B4\x3B3\x3\x2\x2\x2\x3B4\x3B5\x3\x2\x2\x2\x3B5\x3B7"+ - "\x3\x2\x2\x2\x3B6\x3B8\x5\xBC_\x2\x3B7\x3B6\x3\x2\x2\x2\x3B7\x3B8\x3\x2"+ - "\x2\x2\x3B8\x3BA\x3\x2\x2\x2\x3B9\x3BB\x5\x128\x95\x2\x3BA\x3B9\x3\x2"+ - "\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB\x3BC\x3\x2\x2\x2\x3BC\x3BE\a)\x2\x2"+ - "\x3BD\x3BF\x5\x128\x95\x2\x3BE\x3BD\x3\x2\x2\x2\x3BE\x3BF\x3\x2\x2\x2"+ - "\x3BF\x3C0\x3\x2\x2\x2\x3C0\x3C1\x5\xBC_\x2\x3C1M\x3\x2\x2\x2\x3C2\x3C3"+ - "\a{\x2\x2\x3C3\x3C4\x5\x128\x95\x2\x3C4\x3C5\x5\xBC_\x2\x3C5O\x3\x2\x2"+ - "\x2\x3C6\x3C7\a|\x2\x2\x3C7\x3C8\x5\x128\x95\x2\x3C8\x3C9\x5\xBC_\x2\x3C9"+ - "Q\x3\x2\x2\x2\x3CA\x3CB\a}\x2\x2\x3CB\x3CC\x5\x128\x95\x2\x3CC\x3CD\x5"+ - "V,\x2\x3CD\x3CE\x5\x128\x95\x2\x3CE\x3CF\a\xCD\x2\x2\x3CF\x3D0\x5\x128"+ - "\x95\x2\x3D0\x3D6\x5\x1C\xF\x2\x3D1\x3D2\x5\x128\x95\x2\x3D2\x3D3\a^\x2"+ - "\x2\x3D3\x3D4\x5\x128\x95\x2\x3D4\x3D5\x5\x1C\xF\x2\x3D5\x3D7\x3\x2\x2"+ - "\x2\x3D6\x3D1\x3\x2\x2\x2\x3D6\x3D7\x3\x2\x2\x2\x3D7\x3E5\x3\x2\x2\x2"+ - "\x3D8\x3DC\x5T+\x2\x3D9\x3DB\x5X-\x2\x3DA\x3D9\x3\x2\x2\x2\x3DB\x3DE\x3"+ - "\x2\x2\x2\x3DC\x3DA\x3\x2\x2\x2\x3DC\x3DD\x3\x2\x2\x2\x3DD\x3E0\x3\x2"+ - "\x2\x2\x3DE\x3DC\x3\x2\x2\x2\x3DF\x3E1\x5Z.\x2\x3E0\x3DF\x3\x2\x2\x2\x3E0"+ - "\x3E1\x3\x2\x2\x2\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\a\x63\x2\x2\x3E3\x3E5"+ - "\x3\x2\x2\x2\x3E4\x3CA\x3\x2\x2\x2\x3E4\x3D8\x3\x2\x2\x2\x3E5S\x3\x2\x2"+ - "\x2\x3E6\x3E7\a}\x2\x2\x3E7\x3E8\x5\x128\x95\x2\x3E8\x3E9\x5V,\x2\x3E9"+ - "\x3EA\x5\x128\x95\x2\x3EA\x3EB\a\xCD\x2\x2\x3EB\x3ED\x5\x118\x8D\x2\x3EC"+ - "\x3EE\x5\x1A\xE\x2\x3ED\x3EC\x3\x2\x2\x2\x3ED\x3EE\x3\x2\x2\x2\x3EEU\x3"+ - "\x2\x2\x2\x3EF\x3F0\x5\xBC_\x2\x3F0W\x3\x2\x2\x2\x3F1\x3F2\a_\x2\x2\x3F2"+ - "\x3F3\x5\x128\x95\x2\x3F3\x3F4\x5V,\x2\x3F4\x3F5\x5\x128\x95\x2\x3F5\x3F6"+ - "\a\xCD\x2\x2\x3F6\x3F8\x5\x118\x8D\x2\x3F7\x3F9\x5\x1A\xE\x2\x3F8\x3F7"+ - "\x3\x2\x2\x2\x3F8\x3F9\x3\x2\x2\x2\x3F9Y\x3\x2\x2\x2\x3FA\x3FB\a^\x2\x2"+ - "\x3FB\x3FD\x5\x118\x8D\x2\x3FC\x3FE\x5\x1A\xE\x2\x3FD\x3FC\x3\x2\x2\x2"+ - "\x3FD\x3FE\x3\x2\x2\x2\x3FE[\x3\x2\x2\x2\x3FF\x400\a\x7F\x2\x2\x400\x401"+ - "\x5\x128\x95\x2\x401\x402\x5\xBC_\x2\x402]\x3\x2\x2\x2\x403\x404\a\x81"+ - "\x2\x2\x404\x405\x5\x128\x95\x2\x405\x40E\x5\xD0i\x2\x406\x408\x5\x128"+ - "\x95\x2\x407\x406\x3\x2\x2\x2\x407\x408\x3\x2\x2\x2\x408\x409\x3\x2\x2"+ - "\x2\x409\x40B\a)\x2\x2\x40A\x40C\x5\x128\x95\x2\x40B\x40A\x3\x2\x2\x2"+ - "\x40B\x40C\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40F\x5\xBC_\x2\x40E"+ - "\x407\x3\x2\x2\x2\x40F\x410\x3\x2\x2\x2\x410\x40E\x3\x2\x2\x2\x410\x411"+ - "\x3\x2\x2\x2\x411_\x3\x2\x2\x2\x412\x413\a\x84\x2\x2\x413\x414\x5\x128"+ - "\x95\x2\x414\x415\x5\xBC_\x2\x415\x61\x3\x2\x2\x2\x416\x417\a\x89\x2\x2"+ - "\x417\x419\x5\x128\x95\x2\x418\x416\x3\x2\x2\x2\x418\x419\x3\x2\x2\x2"+ - "\x419\x41A\x3\x2\x2\x2\x41A\x41C\x5\xDEp\x2\x41B\x41D\x5\x128\x95\x2\x41C"+ - "\x41B\x3\x2\x2\x2\x41C\x41D\x3\x2\x2\x2\x41D\x41E\x3\x2\x2\x2\x41E\x420"+ - "\a\xE2\x2\x2\x41F\x421\x5\x128\x95\x2\x420\x41F\x3\x2\x2\x2\x420\x421"+ - "\x3\x2\x2\x2\x421\x422\x3\x2\x2\x2\x422\x423\x5\xBC_\x2\x423\x63\x3\x2"+ - "\x2\x2\x424\x425\a\x8C\x2\x2\x425\x426\x5\x128\x95\x2\x426\x428\x5\xD0"+ - "i\x2\x427\x429\x5\x128\x95\x2\x428\x427\x3\x2\x2\x2\x428\x429\x3\x2\x2"+ - "\x2\x429\x42A\x3\x2\x2\x2\x42A\x42C\a)\x2\x2\x42B\x42D\x5\x128\x95\x2"+ - "\x42C\x42B\x3\x2\x2\x2\x42C\x42D\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E"+ - "\x42F\x5\xBC_\x2\x42F\x65\x3\x2\x2\x2\x430\x431\a\x85\x2\x2\x431\x432"+ - "\x5\x128\x95\x2\x432\x433\x5\xBC_\x2\x433g\x3\x2\x2\x2\x434\x435\a\x86"+ - "\x2\x2\x435\x436\x5\x128\x95\x2\x436\x446\x5\xBC_\x2\x437\x439\x5\x128"+ - "\x95\x2\x438\x437\x3\x2\x2\x2\x438\x439\x3\x2\x2\x2\x439\x43A\x3\x2\x2"+ - "\x2\x43A\x43C\a)\x2\x2\x43B\x43D\x5\x128\x95\x2\x43C\x43B\x3\x2\x2\x2"+ - "\x43C\x43D\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x444\x5\xBC_\x2\x43F"+ - "\x440\x5\x128\x95\x2\x440\x441\a\xCF\x2\x2\x441\x442\x5\x128\x95\x2\x442"+ - "\x443\x5\xBC_\x2\x443\x445\x3\x2\x2\x2\x444\x43F\x3\x2\x2\x2\x444\x445"+ - "\x3\x2\x2\x2\x445\x447\x3\x2\x2\x2\x446\x438\x3\x2\x2\x2\x446\x447\x3"+ - "\x2\x2\x2\x447i\x3\x2\x2\x2\x448\x449\a\x90\x2\x2\x449\x44A\x5\x128\x95"+ - "\x2\x44A\x44C\x5\xDEp\x2\x44B\x44D\x5\x128\x95\x2\x44C\x44B\x3\x2\x2\x2"+ - "\x44C\x44D\x3\x2\x2\x2\x44D\x44E\x3\x2\x2\x2\x44E\x450\a\xE2\x2\x2\x44F"+ - "\x451\x5\x128\x95\x2\x450\x44F\x3\x2\x2\x2\x450\x451\x3\x2\x2\x2\x451"+ - "\x452\x3\x2\x2\x2\x452\x453\x5\xBC_\x2\x453k\x3\x2\x2\x2\x454\x456\a\x92"+ - "\x2\x2\x455\x457\x5\x128\x95\x2\x456\x455\x3\x2\x2\x2\x456\x457\x3\x2"+ - "\x2\x2\x457\x458\x3\x2\x2\x2\x458\x45A\a\xE6\x2\x2\x459\x45B\x5\x128\x95"+ - "\x2\x45A\x459\x3\x2\x2\x2\x45A\x45B\x3\x2\x2\x2\x45B\x45C\x3\x2\x2\x2"+ - "\x45C\x45E\x5\xEAv\x2\x45D\x45F\x5\x128\x95\x2\x45E\x45D\x3\x2\x2\x2\x45E"+ - "\x45F\x3\x2\x2\x2\x45F\x460\x3\x2\x2\x2\x460\x461\a\xED\x2\x2\x461m\x3"+ - "\x2\x2\x2\x462\x463\a\x93\x2\x2\x463\x464\x5\x128\x95\x2\x464\x465\x5"+ - "\xBC_\x2\x465o\x3\x2\x2\x2\x466\x467\a\x95\x2\x2\x467\x468\x5\x128\x95"+ - "\x2\x468\x469\x5\xBC_\x2\x469\x46A\x5\x128\x95\x2\x46A\x46B\a:\x2\x2\x46B"+ - "\x46C\x5\x128\x95\x2\x46C\x46D\x5\xBC_\x2\x46Dq\x3\x2\x2\x2\x46E\x46F"+ - "\t\x6\x2\x2\x46F\x478\x5\x128\x95\x2\x470\x471\a|\x2\x2\x471\x472\x5\x128"+ - "\x95\x2\x472\x473\x5\xBC_\x2\x473\x479\x3\x2\x2\x2\x474\x475\a\xB8\x2"+ - "\x2\x475\x476\x5\x128\x95\x2\x476\x477\a\x96\x2\x2\x477\x479\x3\x2\x2"+ - "\x2\x478\x470\x3\x2\x2\x2\x478\x474\x3\x2\x2\x2\x479s\x3\x2\x2\x2\x47A"+ - "\x47B\a\x9B\x2\x2\x47B\x47C\x5\x128\x95\x2\x47C\x47D\x5\xBC_\x2\x47D\x47E"+ - "\x5\x128\x95\x2\x47E\x47F\a|\x2\x2\x47F\x480\x5\x128\x95\x2\x480\x48B"+ - "\x5\xBC_\x2\x481\x483\x5\x128\x95\x2\x482\x481\x3\x2\x2\x2\x482\x483\x3"+ - "\x2\x2\x2\x483\x484\x3\x2\x2\x2\x484\x486\a)\x2\x2\x485\x487\x5\x128\x95"+ - "\x2\x486\x485\x3\x2\x2\x2\x486\x487\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2"+ - "\x488\x48A\x5\xBC_\x2\x489\x482\x3\x2\x2\x2\x48A\x48D\x3\x2\x2\x2\x48B"+ - "\x489\x3\x2\x2\x2\x48B\x48C\x3\x2\x2\x2\x48Cu\x3\x2\x2\x2\x48D\x48B\x3"+ - "\x2\x2\x2\x48E\x48F\a\x9B\x2\x2\x48F\x490\x5\x128\x95\x2\x490\x491\x5"+ - "\xBC_\x2\x491\x492\x5\x128\x95\x2\x492\x493\a{\x2\x2\x493\x494\x5\x128"+ - "\x95\x2\x494\x49F\x5\xBC_\x2\x495\x497\x5\x128\x95\x2\x496\x495\x3\x2"+ - "\x2\x2\x496\x497\x3\x2\x2\x2\x497\x498\x3\x2\x2\x2\x498\x49A\a)\x2\x2"+ - "\x499\x49B\x5\x128\x95\x2\x49A\x499\x3\x2\x2\x2\x49A\x49B\x3\x2\x2\x2"+ - "\x49B\x49C\x3\x2\x2\x2\x49C\x49E\x5\xBC_\x2\x49D\x496\x3\x2\x2\x2\x49E"+ - "\x4A1\x3\x2\x2\x2\x49F\x49D\x3\x2\x2\x2\x49F\x4A0\x3\x2\x2\x2\x4A0w\x3"+ - "\x2\x2\x2\x4A1\x49F\x3\x2\x2\x2\x4A2\x4A3\a\x9E\x2\x2\x4A3\x4A4\x5\x128"+ - "\x95\x2\x4A4\x4A5\x5\xBC_\x2\x4A5\x4A6\x5\x128\x95\x2\x4A6\x4A7\aw\x2"+ - "\x2\x4A7\x4A8\x5\x128\x95\x2\x4A8\x4AE\t\a\x2\x2\x4A9\x4AA\x5\x128\x95"+ - "\x2\x4AA\x4AB\a\x33\x2\x2\x4AB\x4AC\x5\x128\x95\x2\x4AC\x4AD\t\b\x2\x2"+ - "\x4AD\x4AF\x3\x2\x2\x2\x4AE\x4A9\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF"+ - "\x4B3\x3\x2\x2\x2\x4B0\x4B1\x5\x128\x95\x2\x4B1\x4B2\t\t\x2\x2\x4B2\x4B4"+ - "\x3\x2\x2\x2\x4B3\x4B0\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B5\x3"+ - "\x2\x2\x2\x4B5\x4B6\x5\x128\x95\x2\x4B6\x4B7\a:\x2\x2\x4B7\x4B8\x5\x128"+ - "\x95\x2\x4B8\x4C4\x5\xD0i\x2\x4B9\x4BA\x5\x128\x95\x2\x4BA\x4BC\a\x1D"+ - "\x2\x2\x4BB\x4BD\x5\x128\x95\x2\x4BC\x4BB\x3\x2\x2\x2\x4BC\x4BD\x3\x2"+ - "\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BE\x4C0\a\xE2\x2\x2\x4BF\x4C1\x5\x128\x95"+ - "\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C2\x3\x2\x2\x2"+ - "\x4C2\x4C3\x5\xBC_\x2\x4C3\x4C5\x3\x2\x2\x2\x4C4\x4B9\x3\x2\x2\x2\x4C4"+ - "\x4C5\x3\x2\x2\x2\x4C5y\x3\x2\x2\x2\x4C6\x4D3\x5|?\x2\x4C7\x4C9\x5\x128"+ - "\x95\x2\x4C8\x4C7\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9\x4CA\x3\x2\x2"+ - "\x2\x4CA\x4CC\t\n\x2\x2\x4CB\x4CD\x5\x128\x95\x2\x4CC\x4CB\x3\x2\x2\x2"+ - "\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CF\x3\x2\x2\x2\x4CE\x4D0\x5|?\x2\x4CF\x4CE"+ - "\x3\x2\x2\x2\x4CF\x4D0\x3\x2\x2\x2\x4D0\x4D2\x3\x2\x2\x2\x4D1\x4C8\x3"+ - "\x2\x2\x2\x4D2\x4D5\x3\x2\x2\x2\x4D3\x4D1\x3\x2\x2\x2\x4D3\x4D4\x3\x2"+ - "\x2\x2\x4D4\x4E8\x3\x2\x2\x2\x4D5\x4D3\x3\x2\x2\x2\x4D6\x4D8\x5|?\x2\x4D7"+ - "\x4D6\x3\x2\x2\x2\x4D7\x4D8\x3\x2\x2\x2\x4D8\x4E3\x3\x2\x2\x2\x4D9\x4DB"+ - "\x5\x128\x95\x2\x4DA\x4D9\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DC"+ - "\x3\x2\x2\x2\x4DC\x4DE\t\n\x2\x2\x4DD\x4DF\x5\x128\x95\x2\x4DE\x4DD\x3"+ - "\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1\x3\x2\x2\x2\x4E0\x4E2\x5|?\x2"+ - "\x4E1\x4E0\x3\x2\x2\x2\x4E1\x4E2\x3\x2\x2\x2\x4E2\x4E4\x3\x2\x2\x2\x4E3"+ - "\x4DA\x3\x2\x2\x2\x4E4\x4E5\x3\x2\x2\x2\x4E5\x4E3\x3\x2\x2\x2\x4E5\x4E6"+ - "\x3\x2\x2\x2\x4E6\x4E8\x3\x2\x2\x2\x4E7\x4C6\x3\x2\x2\x2\x4E7\x4D7\x3"+ - "\x2\x2\x2\x4E8{\x3\x2\x2\x2\x4E9\x4FB\x5\xBC_\x2\x4EA\x4F8\t\v\x2\x2\x4EB"+ - "\x4ED\x5\x128\x95\x2\x4EC\x4EB\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED"+ - "\x4EE\x3\x2\x2\x2\x4EE\x4F0\a\xE6\x2\x2\x4EF\x4F1\x5\x128\x95\x2\x4F0"+ - "\x4EF\x3\x2\x2\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F4"+ - "\x5\xEAv\x2\x4F3\x4F5\x5\x128\x95\x2\x4F4\x4F3\x3\x2\x2\x2\x4F4\x4F5\x3"+ - "\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7\a\xED\x2\x2\x4F7\x4F9\x3\x2"+ - "\x2\x2\x4F8\x4EC\x3\x2\x2\x2\x4F8\x4F9\x3\x2\x2\x2\x4F9\x4FB\x3\x2\x2"+ - "\x2\x4FA\x4E9\x3\x2\x2\x2\x4FA\x4EA\x3\x2\x2\x2\x4FB}\x3\x2\x2\x2\x4FC"+ - "\x4FD\a\xA8\x2\x2\x4FD\x4FE\x5\x128\x95\x2\x4FE\x500\x5\xD0i\x2\x4FF\x501"+ - "\x5\x128\x95\x2\x500\x4FF\x3\x2\x2\x2\x500\x501\x3\x2\x2\x2\x501\x502"+ - "\x3\x2\x2\x2\x502\x507\a)\x2\x2\x503\x505\x5\x128\x95\x2\x504\x503\x3"+ - "\x2\x2\x2\x504\x505\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x508\x5z>\x2"+ - "\x507\x504\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x7F\x3\x2\x2\x2\x509"+ - "\x50A\x5\x112\x8A\x2\x50A\x50B\x5\x128\x95\x2\x50B\x50D\x3\x2\x2\x2\x50C"+ - "\x509\x3\x2\x2\x2\x50C\x50D\x3\x2\x2\x2\x50D\x510\x3\x2\x2\x2\x50E\x50F"+ - "\a\xC6\x2\x2\x50F\x511\x5\x128\x95\x2\x510\x50E\x3\x2\x2\x2\x510\x511"+ - "\x3\x2\x2\x2\x511\x512\x3\x2\x2\x2\x512\x513\a\xAA\x2\x2\x513\x514\x5"+ - "\x128\x95\x2\x514\x516\x5\xFA~\x2\x515\x517\x5\x110\x89\x2\x516\x515\x3"+ - "\x2\x2\x2\x516\x517\x3\x2\x2\x2\x517\x51C\x3\x2\x2\x2\x518\x51A\x5\x128"+ - "\x95\x2\x519\x518\x3\x2\x2\x2\x519\x51A\x3\x2\x2\x2\x51A\x51B\x3\x2\x2"+ - "\x2\x51B\x51D\x5\xF0y\x2\x51C\x519\x3\x2\x2\x2\x51C\x51D\x3\x2\x2\x2\x51D"+ - "\x521\x3\x2\x2\x2\x51E\x51F\x5\x128\x95\x2\x51F\x520\x5\xFC\x7F\x2\x520"+ - "\x522\x3\x2\x2\x2\x521\x51E\x3\x2\x2\x2\x521\x522\x3\x2\x2\x2\x522\x523"+ - "\x3\x2\x2\x2\x523\x525\x5\x118\x8D\x2\x524\x526\x5\x1A\xE\x2\x525\x524"+ - "\x3\x2\x2\x2\x525\x526\x3\x2\x2\x2\x526\x527\x3\x2\x2\x2\x527\x528\a\x64"+ - "\x2\x2\x528\x81\x3\x2\x2\x2\x529\x52A\x5\x112\x8A\x2\x52A\x52B\x5\x128"+ - "\x95\x2\x52B\x52D\x3\x2\x2\x2\x52C\x529\x3\x2\x2\x2\x52C\x52D\x3\x2\x2"+ - "\x2\x52D\x530\x3\x2\x2\x2\x52E\x52F\a\xC6\x2\x2\x52F\x531\x5\x128\x95"+ - "\x2\x530\x52E\x3\x2\x2\x2\x530\x531\x3\x2\x2\x2\x531\x532\x3\x2\x2\x2"+ - "\x532\x533\a\xAC\x2\x2\x533\x534\x5\x128\x95\x2\x534\x539\x5\xFA~\x2\x535"+ - "\x537\x5\x128\x95\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537"+ - "\x538\x3\x2\x2\x2\x538\x53A\x5\xF0y\x2\x539\x536\x3\x2\x2\x2\x539\x53A"+ - "\x3\x2\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53D\x5\x118\x8D\x2\x53C\x53E"+ - "\x5\x1A\xE\x2\x53D\x53C\x3\x2\x2\x2\x53D\x53E\x3\x2\x2\x2\x53E\x53F\x3"+ - "\x2\x2\x2\x53F\x540\a\x64\x2\x2\x540\x83\x3\x2\x2\x2\x541\x542\x5\x112"+ - "\x8A\x2\x542\x543\x5\x128\x95\x2\x543\x545\x3\x2\x2\x2\x544\x541\x3\x2"+ - "\x2\x2\x544\x545\x3\x2\x2\x2\x545\x548\x3\x2\x2\x2\x546\x547\a\xC6\x2"+ - "\x2\x547\x549\x5\x128\x95\x2\x548\x546\x3\x2\x2\x2\x548\x549\x3\x2\x2"+ - "\x2\x549\x54A\x3\x2\x2\x2\x54A\x54B\a\xAB\x2\x2\x54B\x54C\x5\x128\x95"+ - "\x2\x54C\x551\x5\xFA~\x2\x54D\x54F\x5\x128\x95\x2\x54E\x54D\x3\x2\x2\x2"+ - "\x54E\x54F\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x552\x5\xF0y\x2\x551"+ - "\x54E\x3\x2\x2\x2\x551\x552\x3\x2\x2\x2\x552\x553\x3\x2\x2\x2\x553\x555"+ - "\x5\x118\x8D\x2\x554\x556\x5\x1A\xE\x2\x555\x554\x3\x2\x2\x2\x555\x556"+ - "\x3\x2\x2\x2\x556\x557\x3\x2\x2\x2\x557\x558\a\x64\x2\x2\x558\x85\x3\x2"+ - "\x2\x2\x559\x55A\a\xAF\x2\x2\x55A\x55B\x5\x128\x95\x2\x55B\x55D\x5\xD0"+ - "i\x2\x55C\x55E\x5\x128\x95\x2\x55D\x55C\x3\x2\x2\x2\x55D\x55E\x3\x2\x2"+ - "\x2\x55E\x55F\x3\x2\x2\x2\x55F\x561\a)\x2\x2\x560\x562\x5\x128\x95\x2"+ - "\x561\x560\x3\x2\x2\x2\x561\x562\x3\x2\x2\x2\x562\x564\x3\x2\x2\x2\x563"+ - "\x565\x5\xBC_\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565\x567"+ - "\x3\x2\x2\x2\x566\x568\x5\x128\x95\x2\x567\x566\x3\x2\x2\x2\x567\x568"+ - "\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569\x56B\a)\x2\x2\x56A\x56C\x5\x128"+ - "\x95\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C\x3\x2\x2\x2\x56C\x56D\x3\x2\x2"+ - "\x2\x56D\x56E\x5\xBC_\x2\x56E\x87\x3\x2\x2\x2\x56F\x570\a\xB2\x2\x2\x570"+ - "\x571\x5\x128\x95\x2\x571\x580\x5\xFA~\x2\x572\x574\x5\x128\x95\x2\x573"+ - "\x572\x3\x2\x2\x2\x573\x574\x3\x2\x2\x2\x574\x575\x3\x2\x2\x2\x575\x577"+ - "\a\xE6\x2\x2\x576\x578\x5\x128\x95\x2\x577\x576\x3\x2\x2\x2\x577\x578"+ - "\x3\x2\x2\x2\x578\x57D\x3\x2\x2\x2\x579\x57B\x5\xEAv\x2\x57A\x57C\x5\x128"+ - "\x95\x2\x57B\x57A\x3\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57E\x3\x2\x2"+ - "\x2\x57D\x579\x3\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x57F\x3\x2\x2\x2"+ - "\x57F\x581\a\xED\x2\x2\x580\x573\x3\x2\x2\x2\x580\x581\x3\x2\x2\x2\x581"+ - "\x89\x3\x2\x2\x2\x582\x586\a\xB1\x2\x2\x583\x584\x5\x128\x95\x2\x584\x585"+ - "\x5\xBC_\x2\x585\x587\x3\x2\x2\x2\x586\x583\x3\x2\x2\x2\x586\x587\x3\x2"+ - "\x2\x2\x587\x8B\x3\x2\x2\x2\x588\x589\a\xB5\x2\x2\x589\x58C\x5\x128\x95"+ - "\x2\x58A\x58B\a\xA7\x2\x2\x58B\x58D\x5\x128\x95\x2\x58C\x58A\x3\x2\x2"+ - "\x2\x58C\x58D\x3\x2\x2\x2\x58D\x58E\x3\x2\x2\x2\x58E\x599\x5\x8EH\x2\x58F"+ - "\x591\x5\x128\x95\x2\x590\x58F\x3\x2\x2\x2\x590\x591\x3\x2\x2\x2\x591"+ - "\x592\x3\x2\x2\x2\x592\x594\a)\x2\x2\x593\x595\x5\x128\x95\x2\x594\x593"+ - "\x3\x2\x2\x2\x594\x595\x3\x2\x2\x2\x595\x596\x3\x2\x2\x2\x596\x598\x5"+ - "\x8EH\x2\x597\x590\x3\x2\x2\x2\x598\x59B\x3\x2\x2\x2\x599\x597\x3\x2\x2"+ - "\x2\x599\x59A\x3\x2\x2\x2\x59A\x8D\x3\x2\x2\x2\x59B\x599\x3\x2\x2\x2\x59C"+ - "\x59E\x5\xDEp\x2\x59D\x59F\x5\x128\x95\x2\x59E\x59D\x3\x2\x2\x2\x59E\x59F"+ - "\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A2\a\xE6\x2\x2\x5A1\x5A3\x5"+ - "\x128\x95\x2\x5A2\x5A1\x3\x2\x2\x2\x5A2\x5A3\x3\x2\x2\x2\x5A3\x5A4\x3"+ - "\x2\x2\x2\x5A4\x5A6\x5\xF6|\x2\x5A5\x5A7\x5\x128\x95\x2\x5A6\x5A5\x3\x2"+ - "\x2\x2\x5A6\x5A7\x3\x2\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8\x5AC\a\xED\x2"+ - "\x2\x5A9\x5AA\x5\x128\x95\x2\x5AA\x5AB\x5\xFC\x7F\x2\x5AB\x5AD\x3\x2\x2"+ - "\x2\x5AC\x5A9\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x8F\x3\x2\x2\x2\x5AE"+ - "\x5AF\a\xB7\x2\x2\x5AF\x91\x3\x2\x2\x2\x5B0\x5B6\a\xB8\x2\x2\x5B1\x5B4"+ - "\x5\x128\x95\x2\x5B2\x5B5\a\x96\x2\x2\x5B3\x5B5\x5\xFA~\x2\x5B4\x5B2\x3"+ - "\x2\x2\x2\x5B4\x5B3\x3\x2\x2\x2\x5B5\x5B7\x3\x2\x2\x2\x5B6\x5B1\x3\x2"+ - "\x2\x2\x5B6\x5B7\x3\x2\x2\x2\x5B7\x93\x3\x2\x2\x2\x5B8\x5B9\a\xB9\x2\x2"+ - "\x5B9\x95\x3\x2\x2\x2\x5BA\x5BB\a\xBA\x2\x2\x5BB\x5BC\x5\x128\x95\x2\x5BC"+ - "\x5BD\x5\xBC_\x2\x5BD\x97\x3\x2\x2\x2\x5BE\x5BF\a\xBB\x2\x2\x5BF\x5C0"+ - "\x5\x128\x95\x2\x5C0\x5C2\x5\xDEp\x2\x5C1\x5C3\x5\x128\x95\x2\x5C2\x5C1"+ - "\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2\x2\x5C3\x5C4\x3\x2\x2\x2\x5C4\x5C6\a\xE2"+ - "\x2\x2\x5C5\x5C7\x5\x128\x95\x2\x5C6\x5C5\x3\x2\x2\x2\x5C6\x5C7\x3\x2"+ - "\x2\x2\x5C7\x5C8\x3\x2\x2\x2\x5C8\x5C9\x5\xBC_\x2\x5C9\x99\x3\x2\x2\x2"+ - "\x5CA\x5CB\a\xBC\x2\x2\x5CB\x5CC\x5\x128\x95\x2\x5CC\x5CE\x5\xBC_\x2\x5CD"+ - "\x5CF\x5\x128\x95\x2\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF"+ - "\x5D0\x3\x2\x2\x2\x5D0\x5D2\a)\x2\x2\x5D1\x5D3\x5\x128\x95\x2\x5D2\x5D1"+ - "\x3\x2\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D5\x5"+ - "\xBC_\x2\x5D5\x9B\x3\x2\x2\x2\x5D6\x5D7\a\xBD\x2\x2\x5D7\x5D8\x5\x128"+ - "\x95\x2\x5D8\x5DA\x5\xBC_\x2\x5D9\x5DB\x5\x128\x95\x2\x5DA\x5D9\x3\x2"+ - "\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2\x2\x5DC\x5DE\a)\x2\x2"+ - "\x5DD\x5DF\x5\x128\x95\x2\x5DE\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2\x2\x2"+ - "\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E2\x5\xBC_\x2\x5E1\x5E3\x5\x128\x95\x2\x5E2"+ - "\x5E1\x3\x2\x2\x2\x5E2\x5E3\x3\x2\x2\x2\x5E3\x5E4\x3\x2\x2\x2\x5E4\x5E6"+ - "\a)\x2\x2\x5E5\x5E7\x5\x128\x95\x2\x5E6\x5E5\x3\x2\x2\x2\x5E6\x5E7\x3"+ - "\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5EA\x5\xBC_\x2\x5E9\x5EB\x5\x128"+ - "\x95\x2\x5EA\x5E9\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2\x2\x5EB\x5EC\x3\x2\x2"+ - "\x2\x5EC\x5EE\a)\x2\x2\x5ED\x5EF\x5\x128\x95\x2\x5EE\x5ED\x3\x2\x2\x2"+ - "\x5EE\x5EF\x3\x2\x2\x2\x5EF\x5F0\x3\x2\x2\x2\x5F0\x5F1\x5\xBC_\x2\x5F1"+ - "\x9D\x3\x2\x2\x2\x5F2\x5F3\a\xBE\x2\x2\x5F3\x5F4\x5\x128\x95\x2\x5F4\x5F6"+ - "\x5\xD0i\x2\x5F5\x5F7\x5\x128\x95\x2\x5F6\x5F5\x3\x2\x2\x2\x5F6\x5F7\x3"+ - "\x2\x2\x2\x5F7\x5F8\x3\x2\x2\x2\x5F8\x5FA\a)\x2\x2\x5F9\x5FB\x5\x128\x95"+ - "\x2\x5FA\x5F9\x3\x2\x2\x2\x5FA\x5FB\x3\x2\x2\x2\x5FB\x5FC\x3\x2\x2\x2"+ - "\x5FC\x5FD\x5\xBC_\x2\x5FD\x9F\x3\x2\x2\x2\x5FE\x5FF\a\xBF\x2\x2\x5FF"+ - "\x600\x5\x128\x95\x2\x600\x601\a\x43\x2\x2\x601\x602\x5\x128\x95\x2\x602"+ - "\x603\x5\xBC_\x2\x603\x607\x5\x118\x8D\x2\x604\x606\x5\xA4S\x2\x605\x604"+ - "\x3\x2\x2\x2\x606\x609\x3\x2\x2\x2\x607\x605\x3\x2\x2\x2\x607\x608\x3"+ - "\x2\x2\x2\x608\x60A\x3\x2\x2\x2\x609\x607\x3\x2\x2\x2\x60A\x60B\a\x65"+ - "\x2\x2\x60B\xA1\x3\x2\x2\x2\x60C\x60E\a\x82\x2\x2\x60D\x60F\x5\x128\x95"+ - "\x2\x60E\x60D\x3\x2\x2\x2\x60E\x60F\x3\x2\x2\x2\x60F\x610\x3\x2\x2\x2"+ - "\x610\x612\x5\x100\x81\x2\x611\x613\x5\x128\x95\x2\x612\x611\x3\x2\x2"+ - "\x2\x612\x613\x3\x2\x2\x2\x613\x614\x3\x2\x2\x2\x614\x615\x5\xBC_\x2\x615"+ - "\x61E\x3\x2\x2\x2\x616\x617\x5\xBC_\x2\x617\x618\x5\x128\x95\x2\x618\x619"+ - "\a\xCF\x2\x2\x619\x61A\x5\x128\x95\x2\x61A\x61B\x5\xBC_\x2\x61B\x61E\x3"+ - "\x2\x2\x2\x61C\x61E\x5\xBC_\x2\x61D\x60C\x3\x2\x2\x2\x61D\x616\x3\x2\x2"+ - "\x2\x61D\x61C\x3\x2\x2\x2\x61E\xA3\x3\x2\x2\x2\x61F\x620\a\x43\x2\x2\x620"+ - "\x621\x5\x128\x95\x2\x621\x622\x5\xA6T\x2\x622\x624\x5\x118\x8D\x2\x623"+ - "\x625\x5\x1A\xE\x2\x624\x623\x3\x2\x2\x2\x624\x625\x3\x2\x2\x2\x625\xA5"+ - "\x3\x2\x2\x2\x626\x636\a^\x2\x2\x627\x632\x5\xA2R\x2\x628\x62A\x5\x128"+ - "\x95\x2\x629\x628\x3\x2\x2\x2\x629\x62A\x3\x2\x2\x2\x62A\x62B\x3\x2\x2"+ - "\x2\x62B\x62D\a)\x2\x2\x62C\x62E\x5\x128\x95\x2\x62D\x62C\x3\x2\x2\x2"+ - "\x62D\x62E\x3\x2\x2\x2\x62E\x62F\x3\x2\x2\x2\x62F\x631\x5\xA2R\x2\x630"+ - "\x629\x3\x2\x2\x2\x631\x634\x3\x2\x2\x2\x632\x630\x3\x2\x2\x2\x632\x633"+ - "\x3\x2\x2\x2\x633\x636\x3\x2\x2\x2\x634\x632\x3\x2\x2\x2\x635\x626\x3"+ - "\x2\x2\x2\x635\x627\x3\x2\x2\x2\x636\xA7\x3\x2\x2\x2\x637\x638\a\xC0\x2"+ - "\x2\x638\x639\x5\x128\x95\x2\x639\x642\x5\xBC_\x2\x63A\x63C\x5\x128\x95"+ - "\x2\x63B\x63A\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\x63D\x3\x2\x2\x2"+ - "\x63D\x63F\a)\x2\x2\x63E\x640\x5\x128\x95\x2\x63F\x63E\x3\x2\x2\x2\x63F"+ - "\x640\x3\x2\x2\x2\x640\x641\x3\x2\x2\x2\x641\x643\x5\xBC_\x2\x642\x63B"+ - "\x3\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\xA9\x3\x2\x2\x2\x644\x645\a\xC2"+ - "\x2\x2\x645\x646\x5\x128\x95\x2\x646\x648\x5\xBC_\x2\x647\x649\x5\x128"+ - "\x95\x2\x648\x647\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64A\x3\x2\x2"+ - "\x2\x64A\x64C\a)\x2\x2\x64B\x64D\x5\x128\x95\x2\x64C\x64B\x3\x2\x2\x2"+ - "\x64C\x64D\x3\x2\x2\x2\x64D\x64E\x3\x2\x2\x2\x64E\x64F\x5\xBC_\x2\x64F"+ - "\xAB\x3\x2\x2\x2\x650\x651\a\xC1\x2\x2\x651\x652\x5\x128\x95\x2\x652\x654"+ - "\x5\xDEp\x2\x653\x655\x5\x128\x95\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3"+ - "\x2\x2\x2\x655\x656\x3\x2\x2\x2\x656\x658\a\xE2\x2\x2\x657\x659\x5\x128"+ - "\x95\x2\x658\x657\x3\x2\x2\x2\x658\x659\x3\x2\x2\x2\x659\x65A\x3\x2\x2"+ - "\x2\x65A\x65B\x5\xBC_\x2\x65B\xAD\x3\x2\x2\x2\x65C\x65D\a\xC8\x2\x2\x65D"+ - "\xAF\x3\x2\x2\x2\x65E\x65F\x5\x112\x8A\x2\x65F\x660\x5\x128\x95\x2\x660"+ - "\x662\x3\x2\x2\x2\x661\x65E\x3\x2\x2\x2\x661\x662\x3\x2\x2\x2\x662\x665"+ - "\x3\x2\x2\x2\x663\x664\a\xC6\x2\x2\x664\x666\x5\x128\x95\x2\x665\x663"+ - "\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2\x666\x667\x3\x2\x2\x2\x667\x669\a\xCA"+ - "\x2\x2\x668\x66A\x5\x128\x95\x2\x669\x668\x3\x2\x2\x2\x669\x66A\x3\x2"+ - "\x2\x2\x66A\x66B\x3\x2\x2\x2\x66B\x670\x5\xFA~\x2\x66C\x66E\x5\x128\x95"+ - "\x2\x66D\x66C\x3\x2\x2\x2\x66D\x66E\x3\x2\x2\x2\x66E\x66F\x3\x2\x2\x2"+ - "\x66F\x671\x5\xF0y\x2\x670\x66D\x3\x2\x2\x2\x670\x671\x3\x2\x2\x2\x671"+ - "\x672\x3\x2\x2\x2\x672\x674\x5\x118\x8D\x2\x673\x675\x5\x1A\xE\x2\x674"+ - "\x673\x3\x2\x2\x2\x674\x675\x3\x2\x2\x2\x675\x676\x3\x2\x2\x2\x676\x677"+ - "\a\x66\x2\x2\x677\xB1\x3\x2\x2\x2\x678\x67A\a\xCE\x2\x2\x679\x67B\x5\x128"+ - "\x95\x2\x67A\x679\x3\x2\x2\x2\x67A\x67B\x3\x2\x2\x2\x67B\x67C\x3\x2\x2"+ - "\x2\x67C\x67E\a\xE2\x2\x2\x67D\x67F\x5\x128\x95\x2\x67E\x67D\x3\x2\x2"+ - "\x2\x67E\x67F\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x681\x5\xBC_\x2\x681"+ - "\xB3\x3\x2\x2\x2\x682\x683\x5\x112\x8A\x2\x683\x684\x5\x128\x95\x2\x684"+ - "\x686\x3\x2\x2\x2\x685\x682\x3\x2\x2\x2\x685\x686\x3\x2\x2\x2\x686\x687"+ - "\x3\x2\x2\x2\x687\x688\a\xD1\x2\x2\x688\x689\x5\x128\x95\x2\x689\x68A"+ - "\x5\xFA~\x2\x68A\x68E\x5\x118\x8D\x2\x68B\x68D\x5\xB6\\\x2\x68C\x68B\x3"+ - "\x2\x2\x2\x68D\x690\x3\x2\x2\x2\x68E\x68C\x3\x2\x2\x2\x68E\x68F\x3\x2"+ - "\x2\x2\x68F\x691\x3\x2\x2\x2\x690\x68E\x3\x2\x2\x2\x691\x692\ag\x2\x2"+ - "\x692\xB5\x3\x2\x2\x2\x693\x6A2\x5\xFA~\x2\x694\x696\x5\x128\x95\x2\x695"+ - "\x694\x3\x2\x2\x2\x695\x696\x3\x2\x2\x2\x696\x697\x3\x2\x2\x2\x697\x69C"+ - "\a\xE6\x2\x2\x698\x69A\x5\x128\x95\x2\x699\x698\x3\x2\x2\x2\x699\x69A"+ - "\x3\x2\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69D\x5\xF6|\x2\x69C\x699\x3\x2"+ - "\x2\x2\x69C\x69D\x3\x2\x2\x2\x69D\x69F\x3\x2\x2\x2\x69E\x6A0\x5\x128\x95"+ - "\x2\x69F\x69E\x3\x2\x2\x2\x69F\x6A0\x3\x2\x2\x2\x6A0\x6A1\x3\x2\x2\x2"+ - "\x6A1\x6A3\a\xED\x2\x2\x6A2\x695\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3"+ - "\x6A7\x3\x2\x2\x2\x6A4\x6A5\x5\x128\x95\x2\x6A5\x6A6\x5\xFC\x7F\x2\x6A6"+ - "\x6A8\x3\x2\x2\x2\x6A7\x6A4\x3\x2\x2\x2\x6A7\x6A8\x3\x2\x2\x2\x6A8\x6A9"+ - "\x3\x2\x2\x2\x6A9\x6AA\x5\x118\x8D\x2\x6AA\xB7\x3\x2\x2\x2\x6AB\x6AC\a"+ - "\xD3\x2\x2\x6AC\x6AD\x5\x128\x95\x2\x6AD\x6AE\x5\xBC_\x2\x6AE\xB9\x3\x2"+ - "\x2\x2\x6AF\x6B0\a\xD4\x2\x2\x6B0\x6B1\x5\x128\x95\x2\x6B1\x6C1\x5\xD0"+ - "i\x2\x6B2\x6B4\x5\x128\x95\x2\x6B3\x6B2\x3\x2\x2\x2\x6B3\x6B4\x3\x2\x2"+ - "\x2\x6B4\x6B5\x3\x2\x2\x2\x6B5\x6B7\a)\x2\x2\x6B6\x6B8\x5\x128\x95\x2"+ - "\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9"+ - "\x6BF\x5\xBC_\x2\x6BA\x6BB\x5\x128\x95\x2\x6BB\x6BC\a\xCF\x2\x2\x6BC\x6BD"+ - "\x5\x128\x95\x2\x6BD\x6BE\x5\xBC_\x2\x6BE\x6C0\x3\x2\x2\x2\x6BF\x6BA\x3"+ - "\x2\x2\x2\x6BF\x6C0\x3\x2\x2\x2\x6C0\x6C2\x3\x2\x2\x2\x6C1\x6B3\x3\x2"+ - "\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\xBB\x3\x2\x2\x2\x6C3\x6C4\b_\x1\x2\x6C4"+ - "\x6C6\a\x97\x2\x2\x6C5\x6C7\x5\x128\x95\x2\x6C6\x6C5\x3\x2\x2\x2\x6C6"+ - "\x6C7\x3\x2\x2\x2\x6C7\x6C8\x3\x2\x2\x2\x6C8\x6F1\x5\xBC_\x15\x6C9\x6CB"+ - "\a\x34\x2\x2\x6CA\x6CC\x5\x128\x95\x2\x6CB\x6CA\x3\x2\x2\x2\x6CB\x6CC"+ - "\x3\x2\x2\x2\x6CC\x6CD\x3\x2\x2\x2\x6CD\x6F1\x5\xBC_\x12\x6CE\x6D0\x5"+ - "\xDEp\x2\x6CF\x6D1\x5\x128\x95\x2\x6D0\x6CF\x3\x2\x2\x2\x6D0\x6D1\x3\x2"+ - "\x2\x2\x6D1\x6D2\x3\x2\x2\x2\x6D2\x6D4\a\xDF\x2\x2\x6D3\x6D5\x5\x128\x95"+ - "\x2\x6D4\x6D3\x3\x2\x2\x2\x6D4\x6D5\x3\x2\x2\x2\x6D5\x6D6\x3\x2\x2\x2"+ - "\x6D6\x6D7\x5\xBC_\x11\x6D7\x6F1\x3\x2\x2\x2\x6D8\x6DA\a\xE8\x2\x2\x6D9"+ - "\x6DB\x5\x128\x95\x2\x6DA\x6D9\x3\x2\x2\x2\x6DA\x6DB\x3\x2\x2\x2\x6DB"+ - "\x6DC\x3\x2\x2\x2\x6DC\x6F1\x5\xBC_\xF\x6DD\x6DF\a\x98\x2\x2\x6DE\x6E0"+ - "\x5\x128\x95\x2\x6DF\x6DE\x3\x2\x2\x2\x6DF\x6E0\x3\x2\x2\x2\x6E0\x6E1"+ - "\x3\x2\x2\x2\x6E1\x6F1\x5\xBC_\b\x6E2\x6F1\x5\x10A\x86\x2\x6E3\x6F1\x5"+ - "\xDEp\x2\x6E4\x6E6\a\xE6\x2\x2\x6E5\x6E7\x5\x128\x95\x2\x6E6\x6E5\x3\x2"+ - "\x2\x2\x6E6\x6E7\x3\x2\x2\x2\x6E7\x6E8\x3\x2\x2\x2\x6E8\x6EA\x5\xBC_\x2"+ - "\x6E9\x6EB\x5\x128\x95\x2\x6EA\x6E9\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2"+ - "\x6EB\x6EC\x3\x2\x2\x2\x6EC\x6ED\a\xED\x2\x2\x6ED\x6F1\x3\x2\x2\x2\x6EE"+ - "\x6F1\x5\xBE`\x2\x6EF\x6F1\x5l\x37\x2\x6F0\x6C3\x3\x2\x2\x2\x6F0\x6C9"+ - "\x3\x2\x2\x2\x6F0\x6CE\x3\x2\x2\x2\x6F0\x6D8\x3\x2\x2\x2\x6F0\x6DD\x3"+ - "\x2\x2\x2\x6F0\x6E2\x3\x2\x2\x2\x6F0\x6E3\x3\x2\x2\x2\x6F0\x6E4\x3\x2"+ - "\x2\x2\x6F0\x6EE\x3\x2\x2\x2\x6F0\x6EF\x3\x2\x2\x2\x6F1\x760\x3\x2\x2"+ - "\x2\x6F2\x6F4\f\x10\x2\x2\x6F3\x6F5\x5\x128\x95\x2\x6F4\x6F3\x3\x2\x2"+ - "\x2\x6F4\x6F5\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2\x6F6\x6F8\a\xEC\x2\x2"+ - "\x6F7\x6F9\x5\x128\x95\x2\x6F8\x6F7\x3\x2\x2\x2\x6F8\x6F9\x3\x2\x2\x2"+ - "\x6F9\x6FA\x3\x2\x2\x2\x6FA\x75F\x5\xBC_\x11\x6FB\x6FD\f\xE\x2\x2\x6FC"+ - "\x6FE\x5\x128\x95\x2\x6FD\x6FC\x3\x2\x2\x2\x6FD\x6FE\x3\x2\x2\x2\x6FE"+ - "\x6FF\x3\x2\x2\x2\x6FF\x701\t\f\x2\x2\x700\x702\x5\x128\x95\x2\x701\x700"+ - "\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x703\x3\x2\x2\x2\x703\x75F\x5"+ - "\xBC_\xF\x704\x706\f\r\x2\x2\x705\x707\x5\x128\x95\x2\x706\x705\x3\x2"+ - "\x2\x2\x706\x707\x3\x2\x2\x2\x707\x708\x3\x2\x2\x2\x708\x70A\a\xE1\x2"+ - "\x2\x709\x70B\x5\x128\x95\x2\x70A\x709\x3\x2\x2\x2\x70A\x70B\x3\x2\x2"+ - "\x2\x70B\x70C\x3\x2\x2\x2\x70C\x75F\x5\xBC_\xE\x70D\x70F\f\f\x2\x2\x70E"+ - "\x710\x5\x128\x95\x2\x70F\x70E\x3\x2\x2\x2\x70F\x710\x3\x2\x2\x2\x710"+ - "\x711\x3\x2\x2\x2\x711\x713\a\x94\x2\x2\x712\x714\x5\x128\x95\x2\x713"+ - "\x712\x3\x2\x2\x2\x713\x714\x3\x2\x2\x2\x714\x715\x3\x2\x2\x2\x715\x75F"+ - "\x5\xBC_\r\x716\x718\f\v\x2\x2\x717\x719\x5\x128\x95\x2\x718\x717\x3\x2"+ - "\x2\x2\x718\x719\x3\x2\x2\x2\x719\x71A\x3\x2\x2\x2\x71A\x71C\t\r\x2\x2"+ - "\x71B\x71D\x5\x128\x95\x2\x71C\x71B\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2"+ - "\x71D\x71E\x3\x2\x2\x2\x71E\x75F\x5\xBC_\f\x71F\x721\f\n\x2\x2\x720\x722"+ - "\x5\x128\x95\x2\x721\x720\x3\x2\x2\x2\x721\x722\x3\x2\x2\x2\x722\x723"+ - "\x3\x2\x2\x2\x723\x725\a\x32\x2\x2\x724\x726\x5\x128\x95\x2\x725\x724"+ - "\x3\x2\x2\x2\x725\x726\x3\x2\x2\x2\x726\x727\x3\x2\x2\x2\x727\x75F\x5"+ - "\xBC_\v\x728\x72A\f\t\x2\x2\x729\x72B\x5\x128\x95\x2\x72A\x729\x3\x2\x2"+ - "\x2\x72A\x72B\x3\x2\x2\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72E\t\xE\x2\x2\x72D"+ - "\x72F\x5\x128\x95\x2\x72E\x72D\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2\x72F"+ - "\x730\x3\x2\x2\x2\x730\x75F\x5\xBC_\n\x731\x733\f\a\x2\x2\x732\x734\x5"+ - "\x128\x95\x2\x733\x732\x3\x2\x2\x2\x733\x734\x3\x2\x2\x2\x734\x735\x3"+ - "\x2\x2\x2\x735\x737\a\x36\x2\x2\x736\x738\x5\x128\x95\x2\x737\x736\x3"+ - "\x2\x2\x2\x737\x738\x3\x2\x2\x2\x738\x739\x3\x2\x2\x2\x739\x75F\x5\xBC"+ - "_\b\x73A\x73C\f\x6\x2\x2\x73B\x73D\x5\x128\x95\x2\x73C\x73B\x3\x2\x2\x2"+ - "\x73C\x73D\x3\x2\x2\x2\x73D\x73E\x3\x2\x2\x2\x73E\x740\a\xA4\x2\x2\x73F"+ - "\x741\x5\x128\x95\x2\x740\x73F\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741"+ - "\x742\x3\x2\x2\x2\x742\x75F\x5\xBC_\a\x743\x745\f\x5\x2\x2\x744\x746\x5"+ - "\x128\x95\x2\x745\x744\x3\x2\x2\x2\x745\x746\x3\x2\x2\x2\x746\x747\x3"+ - "\x2\x2\x2\x747\x749\a\xDE\x2\x2\x748\x74A\x5\x128\x95\x2\x749\x748\x3"+ - "\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A\x74B\x3\x2\x2\x2\x74B\x75F\x5\xBC"+ - "_\x6\x74C\x74E\f\x4\x2\x2\x74D\x74F\x5\x128\x95\x2\x74E\x74D\x3\x2\x2"+ - "\x2\x74E\x74F\x3\x2\x2\x2\x74F\x750\x3\x2\x2\x2\x750\x752\ak\x2\x2\x751"+ - "\x753\x5\x128\x95\x2\x752\x751\x3\x2\x2\x2\x752\x753\x3\x2\x2\x2\x753"+ - "\x754\x3\x2\x2\x2\x754\x75F\x5\xBC_\x5\x755\x757\f\x3\x2\x2\x756\x758"+ - "\x5\x128\x95\x2\x757\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2\x758\x759"+ - "\x3\x2\x2\x2\x759\x75B\a~\x2\x2\x75A\x75C\x5\x128\x95\x2\x75B\x75A\x3"+ - "\x2\x2\x2\x75B\x75C\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D\x75F\x5\xBC"+ - "_\x4\x75E\x6F2\x3\x2\x2\x2\x75E\x6FB\x3\x2\x2\x2\x75E\x704\x3\x2\x2\x2"+ - "\x75E\x70D\x3\x2\x2\x2\x75E\x716\x3\x2\x2\x2\x75E\x71F\x3\x2\x2\x2\x75E"+ - "\x728\x3\x2\x2\x2\x75E\x731\x3\x2\x2\x2\x75E\x73A\x3\x2\x2\x2\x75E\x743"+ - "\x3\x2\x2\x2\x75E\x74C\x3\x2\x2\x2\x75E\x755\x3\x2\x2\x2\x75F\x762\x3"+ - "\x2\x2\x2\x760\x75E\x3\x2\x2\x2\x760\x761\x3\x2\x2\x2\x761\xBD\x3\x2\x2"+ - "\x2\x762\x760\x3\x2\x2\x2\x763\x764\a\xD2\x2\x2\x764\x765\x5\x128\x95"+ - "\x2\x765\x76B\x5\xBC_\x2\x766\x767\x5\x128\x95\x2\x767\x768\a\x82\x2\x2"+ - "\x768\x769\x5\x128\x95\x2\x769\x76A\x5\x10E\x88\x2\x76A\x76C\x3\x2\x2"+ - "\x2\x76B\x766\x3\x2\x2\x2\x76B\x76C\x3\x2\x2\x2\x76C\xBF\x3\x2\x2\x2\x76D"+ - "\x771\aZ\x2\x2\x76E\x771\a\xC6\x2\x2\x76F\x771\x5\x112\x8A\x2\x770\x76D"+ - "\x3\x2\x2\x2\x770\x76E\x3\x2\x2\x2\x770\x76F\x3\x2\x2\x2\x771\x772\x3"+ - "\x2\x2\x2\x772\x775\x5\x128\x95\x2\x773\x774\a\xDC\x2\x2\x774\x776\x5"+ - "\x128\x95\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776\x777\x3"+ - "\x2\x2\x2\x777\x778\x5\xC2\x62\x2\x778\xC1\x3\x2\x2\x2\x779\x784\x5\xC4"+ - "\x63\x2\x77A\x77C\x5\x128\x95\x2\x77B\x77A\x3\x2\x2\x2\x77B\x77C\x3\x2"+ - "\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\x77F\a)\x2\x2\x77E\x780\x5\x128\x95"+ - "\x2\x77F\x77E\x3\x2\x2\x2\x77F\x780\x3\x2\x2\x2\x780\x781\x3\x2\x2\x2"+ - "\x781\x783\x5\xC4\x63\x2\x782\x77B\x3\x2\x2\x2\x783\x786\x3\x2\x2\x2\x784"+ - "\x782\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\xC3\x3\x2\x2\x2\x786\x784"+ - "\x3\x2\x2\x2\x787\x799\x5\xFA~\x2\x788\x78A\x5\x128\x95\x2\x789\x788\x3"+ - "\x2\x2\x2\x789\x78A\x3\x2\x2\x2\x78A\x78B\x3\x2\x2\x2\x78B\x78D\a\xE6"+ - "\x2\x2\x78C\x78E\x5\x128\x95\x2\x78D\x78C\x3\x2\x2\x2\x78D\x78E\x3\x2"+ - "\x2\x2\x78E\x793\x3\x2\x2\x2\x78F\x791\x5\xF6|\x2\x790\x792\x5\x128\x95"+ - "\x2\x791\x790\x3\x2\x2\x2\x791\x792\x3\x2\x2\x2\x792\x794\x3\x2\x2\x2"+ - "\x793\x78F\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795"+ - "\x797\a\xED\x2\x2\x796\x798\x5\x128\x95\x2\x797\x796\x3\x2\x2\x2\x797"+ - "\x798\x3\x2\x2\x2\x798\x79A\x3\x2\x2\x2\x799\x789\x3\x2\x2\x2\x799\x79A"+ - "\x3\x2\x2\x2\x79A\x79C\x3\x2\x2\x2\x79B\x79D\x5\x110\x89\x2\x79C\x79B"+ - "\x3\x2\x2\x2\x79C\x79D\x3\x2\x2\x2\x79D\x7A1\x3\x2\x2\x2\x79E\x79F\x5"+ - "\x128\x95\x2\x79F\x7A0\x5\xFC\x7F\x2\x7A0\x7A2\x3\x2\x2\x2\x7A1\x79E\x3"+ - "\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\xC5\x3\x2\x2\x2\x7A3\x7A4\a\xD9\x2"+ - "\x2\x7A4\x7A5\x5\x128\x95\x2\x7A5\x7A6\x5\xBC_\x2\x7A6\x7A8\x5\x118\x8D"+ - "\x2\x7A7\x7A9\x5\x1A\xE\x2\x7A8\x7A7\x3\x2\x2\x2\x7A8\x7A9\x3\x2\x2\x2"+ - "\x7A9\x7AA\x3\x2\x2\x2\x7AA\x7AB\a\xD8\x2\x2\x7AB\xC7\x3\x2\x2\x2\x7AC"+ - "\x7AD\a\xDA\x2\x2\x7AD\x7AE\x5\x128\x95\x2\x7AE\x7B0\x5\xD0i\x2\x7AF\x7B1"+ - "\x5\x128\x95\x2\x7B0\x7AF\x3\x2\x2\x2\x7B0\x7B1\x3\x2\x2\x2\x7B1\x7B2"+ - "\x3\x2\x2\x2\x7B2\x7B4\a)\x2\x2\x7B3\x7B5\x5\x128\x95\x2\x7B4\x7B3\x3"+ - "\x2\x2\x2\x7B4\x7B5\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2\x2\x7B6\x7B7\x5\xBC"+ - "_\x2\x7B7\xC9\x3\x2\x2\x2\x7B8\x7B9\a\xDB\x2\x2\x7B9\x7BA\x5\x128\x95"+ - "\x2\x7BA\x7BB\x5\xCCg\x2\x7BB\x7BD\x5\x118\x8D\x2\x7BC\x7BE\x5\x1A\xE"+ - "\x2\x7BD\x7BC\x3\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2\x7BE\x7BF\x3\x2\x2\x2"+ - "\x7BF\x7C0\ah\x2\x2\x7C0\xCB\x3\x2\x2\x2\x7C1\x7C7\x5\xDEp\x2\x7C2\x7C3"+ - "\a\x97\x2\x2\x7C3\x7C4\x5\x128\x95\x2\x7C4\x7C5\x5\x10E\x88\x2\x7C5\x7C7"+ - "\x3\x2\x2\x2\x7C6\x7C1\x3\x2\x2\x2\x7C6\x7C2\x3\x2\x2\x2\x7C7\xCD\x3\x2"+ - "\x2\x2\x7C8\x7C9\a\xDD\x2\x2\x7C9\x7CA\x5\x128\x95\x2\x7CA\x7CC\x5\xD0"+ - "i\x2\x7CB\x7CD\x5\x128\x95\x2\x7CC\x7CB\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2"+ - "\x2\x7CD\x7CE\x3\x2\x2\x2\x7CE\x7D3\a)\x2\x2\x7CF\x7D1\x5\x128\x95\x2"+ - "\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2"+ - "\x7D4\x5z>\x2\x7D3\x7D0\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\xCF\x3"+ - "\x2\x2\x2\x7D5\x7D7\a.\x2\x2\x7D6\x7D5\x3\x2\x2\x2\x7D6\x7D7\x3\x2\x2"+ - "\x2\x7D7\x7D8\x3\x2\x2\x2\x7D8\x7D9\x5\xBC_\x2\x7D9\xD1\x3\x2\x2\x2\x7DA"+ - "\x7DD\x5\xD4k\x2\x7DB\x7DD\x5\xD6l\x2\x7DC\x7DA\x3\x2\x2\x2\x7DC\x7DB"+ - "\x3\x2\x2\x2\x7DD\xD3\x3\x2\x2\x2\x7DE\x7DF\a\x42\x2\x2\x7DF\x7E0\x5\x128"+ - "\x95\x2\x7E0\x7E2\x5\xFA~\x2\x7E1\x7E3\x5\x110\x89\x2\x7E2\x7E1\x3\x2"+ - "\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7F1\x3\x2\x2\x2\x7E4\x7E6\x5\x128\x95"+ - "\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2"+ - "\x7E7\x7E9\a\xE6\x2\x2\x7E8\x7EA\x5\x128\x95\x2\x7E9\x7E8\x3\x2\x2\x2"+ - "\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2\x2\x7EB\x7ED\x5\xEAv\x2\x7EC"+ - "\x7EE\x5\x128\x95\x2\x7ED\x7EC\x3\x2\x2\x2\x7ED\x7EE\x3\x2\x2\x2\x7EE"+ - "\x7EF\x3\x2\x2\x2\x7EF\x7F0\a\xED\x2\x2\x7F0\x7F2\x3\x2\x2\x2\x7F1\x7E5"+ - "\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC\x3\x2\x2\x2\x7F3\x7F5\x5"+ - "\x128\x95\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\x3"+ - "\x2\x2\x2\x7F6\x7F7\a\xE6\x2\x2\x7F7\x7F8\x5\xF6|\x2\x7F8\x7F9\a\xED\x2"+ - "\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2\x2\x7FB\x7FE\x3\x2\x2\x2"+ - "\x7FC\x7FA\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\xD5\x3\x2\x2\x2\x7FE"+ - "\x7FC\x3\x2\x2\x2\x7FF\x800\a\x42\x2\x2\x800\x802\x5\x128\x95\x2\x801"+ - "\x803\x5\xDEp\x2\x802\x801\x3\x2\x2\x2\x802\x803\x3\x2\x2\x2\x803\x804"+ - "\x3\x2\x2\x2\x804\x805\a-\x2\x2\x805\x807\x5\xFA~\x2\x806\x808\x5\x110"+ - "\x89\x2\x807\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x816\x3\x2\x2"+ - "\x2\x809\x80B\x5\x128\x95\x2\x80A\x809\x3\x2\x2\x2\x80A\x80B\x3\x2\x2"+ - "\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80E\a\xE6\x2\x2\x80D\x80F\x5\x128\x95"+ - "\x2\x80E\x80D\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810\x3\x2\x2\x2"+ - "\x810\x812\x5\xEAv\x2\x811\x813\x5\x128\x95\x2\x812\x811\x3\x2\x2\x2\x812"+ - "\x813\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2\x814\x815\a\xED\x2\x2\x815\x817"+ - "\x3\x2\x2\x2\x816\x80A\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2\x817\x821\x3"+ - "\x2\x2\x2\x818\x81A\x5\x128\x95\x2\x819\x818\x3\x2\x2\x2\x819\x81A\x3"+ - "\x2\x2\x2\x81A\x81B\x3\x2\x2\x2\x81B\x81C\a\xE6\x2\x2\x81C\x81D\x5\xF6"+ - "|\x2\x81D\x81E\a\xED\x2\x2\x81E\x820\x3\x2\x2\x2\x81F\x819\x3\x2\x2\x2"+ - "\x820\x823\x3\x2\x2\x2\x821\x81F\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822"+ - "\xD7\x3\x2\x2\x2\x823\x821\x3\x2\x2\x2\x824\x827\x5\xDAn\x2\x825\x827"+ - "\x5\xDCo\x2\x826\x824\x3\x2\x2\x2\x826\x825\x3\x2\x2\x2\x827\xD9\x3\x2"+ - "\x2\x2\x828\x82A\x5\xDEp\x2\x829\x828\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2"+ - "\x82A\x82C\x3\x2\x2\x2\x82B\x82D\x5\x128\x95\x2\x82C\x82B\x3\x2\x2\x2"+ - "\x82C\x82D\x3\x2\x2\x2\x82D\x82E\x3\x2\x2\x2\x82E\x830\a-\x2\x2\x82F\x831"+ - "\x5\x128\x95\x2\x830\x82F\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x832"+ - "\x3\x2\x2\x2\x832\x834\x5\xFA~\x2\x833\x835\x5\x110\x89\x2\x834\x833\x3"+ - "\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835\x839\x3\x2\x2\x2\x836\x837\x5\x128"+ - "\x95\x2\x837\x838\x5\xEAv\x2\x838\x83A\x3\x2\x2\x2\x839\x836\x3\x2\x2"+ - "\x2\x839\x83A\x3\x2\x2\x2\x83A\x83F\x3\x2\x2\x2\x83B\x83D\x5\x128\x95"+ - "\x2\x83C\x83B\x3\x2\x2\x2\x83C\x83D\x3\x2\x2\x2\x83D\x83E\x3\x2\x2\x2"+ - "\x83E\x840\x5\xEEx\x2\x83F\x83C\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840"+ - "\x84A\x3\x2\x2\x2\x841\x843\x5\x128\x95\x2\x842\x841\x3\x2\x2\x2\x842"+ - "\x843\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x845\a\xE6\x2\x2\x845\x846"+ - "\x5\xF6|\x2\x846\x847\a\xED\x2\x2\x847\x849\x3\x2\x2\x2\x848\x842\x3\x2"+ - "\x2\x2\x849\x84C\x3\x2\x2\x2\x84A\x848\x3\x2\x2\x2\x84A\x84B\x3\x2\x2"+ - "\x2\x84B\xDB\x3\x2\x2\x2\x84C\x84A\x3\x2\x2\x2\x84D\x851\x5\xFA~\x2\x84E"+ - "\x84F\x5\x128\x95\x2\x84F\x850\x5\xEAv\x2\x850\x852\x3\x2\x2\x2\x851\x84E"+ - "\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x85C\x3\x2\x2\x2\x853\x855\x5"+ - "\x128\x95\x2\x854\x853\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2\x855\x856\x3"+ - "\x2\x2\x2\x856\x857\a\xE6\x2\x2\x857\x858\x5\xF6|\x2\x858\x859\a\xED\x2"+ - "\x2\x859\x85B\x3\x2\x2\x2\x85A\x854\x3\x2\x2\x2\x85B\x85E\x3\x2\x2\x2"+ - "\x85C\x85A\x3\x2\x2\x2\x85C\x85D\x3\x2\x2\x2\x85D\xDD\x3\x2\x2\x2\x85E"+ - "\x85C\x3\x2\x2\x2\x85F\x864\x5\xE4s\x2\x860\x864\x5\xE0q\x2\x861\x864"+ - "\x5\xE2r\x2\x862\x864\x5\xE8u\x2\x863\x85F\x3\x2\x2\x2\x863\x860\x3\x2"+ - "\x2\x2\x863\x861\x3\x2\x2\x2\x863\x862\x3\x2\x2\x2\x864\xDF\x3\x2\x2\x2"+ - "\x865\x867\x5\xFA~\x2\x866\x868\x5\x110\x89\x2\x867\x866\x3\x2\x2\x2\x867"+ - "\x868\x3\x2\x2\x2\x868\x86D\x3\x2\x2\x2\x869\x86B\x5\x128\x95\x2\x86A"+ - "\x869\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86E"+ - "\x5\xEEx\x2\x86D\x86A\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x878\x3\x2"+ - "\x2\x2\x86F\x871\x5\x128\x95\x2\x870\x86F\x3\x2\x2\x2\x870\x871\x3\x2"+ - "\x2\x2\x871\x872\x3\x2\x2\x2\x872\x873\a\xE6\x2\x2\x873\x874\x5\xF6|\x2"+ - "\x874\x875\a\xED\x2\x2\x875\x877\x3\x2\x2\x2\x876\x870\x3\x2\x2\x2\x877"+ - "\x87A\x3\x2\x2\x2\x878\x876\x3\x2\x2\x2\x878\x879\x3\x2\x2\x2\x879\xE1"+ - "\x3\x2\x2\x2\x87A\x878\x3\x2\x2\x2\x87B\x87E\x5\xFA~\x2\x87C\x87E\x5\xFE"+ - "\x80\x2\x87D\x87B\x3\x2\x2\x2\x87D\x87C\x3\x2\x2\x2\x87E\x880\x3\x2\x2"+ - "\x2\x87F\x881\x5\x110\x89\x2\x880\x87F\x3\x2\x2\x2\x880\x881\x3\x2\x2"+ - "\x2\x881\x883\x3\x2\x2\x2\x882\x884\x5\x128\x95\x2\x883\x882\x3\x2\x2"+ - "\x2\x883\x884\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887\a\xE6\x2\x2"+ - "\x886\x888\x5\x128\x95\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3\x2\x2\x2"+ - "\x888\x88D\x3\x2\x2\x2\x889\x88B\x5\xEAv\x2\x88A\x88C\x5\x128\x95\x2\x88B"+ - "\x88A\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x88E\x3\x2\x2\x2\x88D\x889"+ - "\x3\x2\x2\x2\x88D\x88E\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x894\a\xED"+ - "\x2\x2\x890\x892\x5\x128\x95\x2\x891\x890\x3\x2\x2\x2\x891\x892\x3\x2"+ - "\x2\x2\x892\x893\x3\x2\x2\x2\x893\x895\x5\xEEx\x2\x894\x891\x3\x2\x2\x2"+ - "\x894\x895\x3\x2\x2\x2\x895\x89F\x3\x2\x2\x2\x896\x898\x5\x128\x95\x2"+ - "\x897\x896\x3\x2\x2\x2\x897\x898\x3\x2\x2\x2\x898\x899\x3\x2\x2\x2\x899"+ - "\x89A\a\xE6\x2\x2\x89A\x89B\x5\xF6|\x2\x89B\x89C\a\xED\x2\x2\x89C\x89E"+ - "\x3\x2\x2\x2\x89D\x897\x3\x2\x2\x2\x89E\x8A1\x3\x2\x2\x2\x89F\x89D\x3"+ - "\x2\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\xE3\x3\x2\x2\x2\x8A1\x89F\x3\x2\x2"+ - "\x2\x8A2\x8A5\x5\xE0q\x2\x8A3\x8A5\x5\xE2r\x2\x8A4\x8A2\x3\x2\x2\x2\x8A4"+ - "\x8A3\x3\x2\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8AA\x3\x2\x2\x2\x8A6\x8A8"+ - "\x5\xE6t\x2\x8A7\x8A9\x5\x128\x95\x2\x8A8\x8A7\x3\x2\x2\x2\x8A8\x8A9\x3"+ - "\x2\x2\x2\x8A9\x8AB\x3\x2\x2\x2\x8AA\x8A6\x3\x2\x2\x2\x8AB\x8AC\x3\x2"+ - "\x2\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8B2\x3\x2\x2"+ - "\x2\x8AE\x8B0\x5\x128\x95\x2\x8AF\x8AE\x3\x2\x2\x2\x8AF\x8B0\x3\x2\x2"+ - "\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B3\x5\xEEx\x2\x8B2\x8AF\x3\x2\x2\x2\x8B2"+ - "\x8B3\x3\x2\x2\x2\x8B3\x8BD\x3\x2\x2\x2\x8B4\x8B6\x5\x128\x95\x2\x8B5"+ - "\x8B4\x3\x2\x2\x2\x8B5\x8B6\x3\x2\x2\x2\x8B6\x8B7\x3\x2\x2\x2\x8B7\x8B8"+ - "\a\xE6\x2\x2\x8B8\x8B9\x5\xF6|\x2\x8B9\x8BA\a\xED\x2\x2\x8BA\x8BC\x3\x2"+ - "\x2\x2\x8BB\x8B5\x3\x2\x2\x2\x8BC\x8BF\x3\x2\x2\x2\x8BD\x8BB\x3\x2\x2"+ - "\x2\x8BD\x8BE\x3\x2\x2\x2\x8BE\xE5\x3\x2\x2\x2\x8BF\x8BD\x3\x2\x2\x2\x8C0"+ - "\x8C2\t\xF\x2\x2\x8C1\x8C3\x5\x128\x95\x2\x8C2\x8C1\x3\x2\x2\x2\x8C2\x8C3"+ - "\x3\x2\x2\x2\x8C3\x8C6\x3\x2\x2\x2\x8C4\x8C7\x5\xE0q\x2\x8C5\x8C7\x5\xE2"+ - "r\x2\x8C6\x8C4\x3\x2\x2\x2\x8C6\x8C5\x3\x2\x2\x2\x8C7\xE7\x3\x2\x2\x2"+ - "\x8C8\x8CA\x5\x128\x95\x2\x8C9\x8C8\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2"+ - "\x8CA\x8CB\x3\x2\x2\x2\x8CB\x8CC\x5\xEEx\x2\x8CC\xE9\x3\x2\x2\x2\x8CD"+ - "\x8CF\x5\xECw\x2\x8CE\x8CD\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\x8D1"+ - "\x3\x2\x2\x2\x8D0\x8D2\x5\x128\x95\x2\x8D1\x8D0\x3\x2\x2\x2\x8D1\x8D2"+ - "\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2\x8D3\x8D5\t\n\x2\x2\x8D4\x8D6\x5\x128"+ - "\x95\x2\x8D5\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D8\x3\x2\x2"+ - "\x2\x8D7\x8CE\x3\x2\x2\x2\x8D8\x8DB\x3\x2\x2\x2\x8D9\x8D7\x3\x2\x2\x2"+ - "\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8D9\x3\x2\x2\x2\x8DC"+ - "\x8E9\x5\xECw\x2\x8DD\x8DF\x5\x128\x95\x2\x8DE\x8DD\x3\x2\x2\x2\x8DE\x8DF"+ - "\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8E2\t\n\x2\x2\x8E1\x8E3\x5\x128"+ - "\x95\x2\x8E2\x8E1\x3\x2\x2\x2\x8E2\x8E3\x3\x2\x2\x2\x8E3\x8E5\x3\x2\x2"+ - "\x2\x8E4\x8E6\x5\xECw\x2\x8E5\x8E4\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6"+ - "\x8E8\x3\x2\x2\x2\x8E7\x8DE\x3\x2\x2\x2\x8E8\x8EB\x3\x2\x2\x2\x8E9\x8E7"+ - "\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\xEB\x3\x2\x2\x2\x8EB\x8E9\x3\x2"+ - "\x2\x2\x8EC\x8EE\a\xE6\x2\x2\x8ED\x8EC\x3\x2\x2\x2\x8ED\x8EE\x3\x2\x2"+ - "\x2\x8EE\x8F1\x3\x2\x2\x2\x8EF\x8F0\t\x10\x2\x2\x8F0\x8F2\x5\x128\x95"+ - "\x2\x8F1\x8EF\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F4\x3\x2\x2\x2"+ - "\x8F3\x8F5\a\xED\x2\x2\x8F4\x8F3\x3\x2\x2\x2\x8F4\x8F5\x3\x2\x2\x2\x8F5"+ - "\x8F6\x3\x2\x2\x2\x8F6\x8F7\x5\xBC_\x2\x8F7\xED\x3\x2\x2\x2\x8F8\x8FA"+ - "\a,\x2\x2\x8F9\x8FB\x5\x128\x95\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3"+ - "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x8FE\x5\xFA~\x2\x8FD\x8FF\x5\x110"+ - "\x89\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\xEF\x3\x2\x2"+ - "\x2\x900\x912\a\xE6\x2\x2\x901\x903\x5\x128\x95\x2\x902\x901\x3\x2\x2"+ - "\x2\x902\x903\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x90F\x5\xF2z\x2\x905"+ - "\x907\x5\x128\x95\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907"+ - "\x908\x3\x2\x2\x2\x908\x90A\a)\x2\x2\x909\x90B\x5\x128\x95\x2\x90A\x909"+ - "\x3\x2\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90C\x3\x2\x2\x2\x90C\x90E\x5"+ - "\xF2z\x2\x90D\x906\x3\x2\x2\x2\x90E\x911\x3\x2\x2\x2\x90F\x90D\x3\x2\x2"+ - "\x2\x90F\x910\x3\x2\x2\x2\x910\x913\x3\x2\x2\x2\x911\x90F\x3\x2\x2\x2"+ - "\x912\x902\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x915\x3\x2\x2\x2\x914"+ - "\x916\x5\x128\x95\x2\x915\x914\x3\x2\x2\x2\x915\x916\x3\x2\x2\x2\x916"+ - "\x917\x3\x2\x2\x2\x917\x918\a\xED\x2\x2\x918\xF1\x3\x2\x2\x2\x919\x91A"+ - "\a\x9F\x2\x2\x91A\x91C\x5\x128\x95\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C"+ - "\x3\x2\x2\x2\x91C\x91F\x3\x2\x2\x2\x91D\x91E\t\x11\x2\x2\x91E\x920\x5"+ - "\x128\x95\x2\x91F\x91D\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x923\x3"+ - "\x2\x2\x2\x921\x922\a\xA6\x2\x2\x922\x924\x5\x128\x95\x2\x923\x921\x3"+ - "\x2\x2\x2\x923\x924\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2\x925\x927\x5\xFA"+ - "~\x2\x926\x928\x5\x110\x89\x2\x927\x926\x3\x2\x2\x2\x927\x928\x3\x2\x2"+ - "\x2\x928\x931\x3\x2\x2\x2\x929\x92B\x5\x128\x95\x2\x92A\x929\x3\x2\x2"+ - "\x2\x92A\x92B\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92E\a\xE6\x2\x2"+ - "\x92D\x92F\x5\x128\x95\x2\x92E\x92D\x3\x2\x2\x2\x92E\x92F\x3\x2\x2\x2"+ - "\x92F\x930\x3\x2\x2\x2\x930\x932\a\xED\x2\x2\x931\x92A\x3\x2\x2\x2\x931"+ - "\x932\x3\x2\x2\x2\x932\x937\x3\x2\x2\x2\x933\x935\x5\x128\x95\x2\x934"+ - "\x933\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\x936\x3\x2\x2\x2\x936\x938"+ - "\x5\xFC\x7F\x2\x937\x934\x3\x2\x2\x2\x937\x938\x3\x2\x2\x2\x938\x93D\x3"+ - "\x2\x2\x2\x939\x93B\x5\x128\x95\x2\x93A\x939\x3\x2\x2\x2\x93A\x93B\x3"+ - "\x2\x2\x2\x93B\x93C\x3\x2\x2\x2\x93C\x93E\x5\xF4{\x2\x93D\x93A\x3\x2\x2"+ - "\x2\x93D\x93E\x3\x2\x2\x2\x93E\xF3\x3\x2\x2\x2\x93F\x941\a\xE2\x2\x2\x940"+ - "\x942\x5\x128\x95\x2\x941\x940\x3\x2\x2\x2\x941\x942\x3\x2\x2\x2\x942"+ - "\x943\x3\x2\x2\x2\x943\x944\x5\xBC_\x2\x944\xF5\x3\x2\x2\x2\x945\x950"+ - "\x5\xF8}\x2\x946\x948\x5\x128\x95\x2\x947\x946\x3\x2\x2\x2\x947\x948\x3"+ - "\x2\x2\x2\x948\x949\x3\x2\x2\x2\x949\x94B\a)\x2\x2\x94A\x94C\x5\x128\x95"+ - "\x2\x94B\x94A\x3\x2\x2\x2\x94B\x94C\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2"+ - "\x94D\x94F\x5\xF8}\x2\x94E\x947\x3\x2\x2\x2\x94F\x952\x3\x2\x2\x2\x950"+ - "\x94E\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\xF7\x3\x2\x2\x2\x952\x950"+ - "\x3\x2\x2\x2\x953\x954\x5\xBC_\x2\x954\x955\x5\x128\x95\x2\x955\x956\a"+ - "\xCF\x2\x2\x956\x957\x5\x128\x95\x2\x957\x959\x3\x2\x2\x2\x958\x953\x3"+ - "\x2\x2\x2\x958\x959\x3\x2\x2\x2\x959\x95A\x3\x2\x2\x2\x95A\x95B\x5\xBC"+ - "_\x2\x95B\xF9\x3\x2\x2\x2\x95C\x95F\a\x101\x2\x2\x95D\x95F\x5\x114\x8B"+ - "\x2\x95E\x95C\x3\x2\x2\x2\x95E\x95D\x3\x2\x2\x2\x95F\xFB\x3\x2\x2\x2\x960"+ - "\x962\a:\x2\x2\x961\x963\x5\x128\x95\x2\x962\x961\x3\x2\x2\x2\x962\x963"+ - "\x3\x2\x2\x2\x963\x966\x3\x2\x2\x2\x964\x965\a\x97\x2\x2\x965\x967\x5"+ - "\x128\x95\x2\x966\x964\x3\x2\x2\x2\x966\x967\x3\x2\x2\x2\x967\x968\x3"+ - "\x2\x2\x2\x968\x96D\x5\x10E\x88\x2\x969\x96B\x5\x128\x95\x2\x96A\x969"+ - "\x3\x2\x2\x2\x96A\x96B\x3\x2\x2\x2\x96B\x96C\x3\x2\x2\x2\x96C\x96E\x5"+ - "\x104\x83\x2\x96D\x96A\x3\x2\x2\x2\x96D\x96E\x3\x2\x2\x2\x96E\xFD\x3\x2"+ - "\x2\x2\x96F\x970\t\x12\x2\x2\x970\xFF\x3\x2\x2\x2\x971\x972\t\xE\x2\x2"+ - "\x972\x101\x3\x2\x2\x2\x973\x978\x5\xFA~\x2\x974\x975\t\xF\x2\x2\x975"+ - "\x977\x5\xFA~\x2\x976\x974\x3\x2\x2\x2\x977\x97A\x3\x2\x2\x2\x978\x976"+ - "\x3\x2\x2\x2\x978\x979\x3\x2\x2\x2\x979\x103\x3\x2\x2\x2\x97A\x978\x3"+ - "\x2\x2\x2\x97B\x97D\a\xE9\x2\x2\x97C\x97E\x5\x128\x95\x2\x97D\x97C\x3"+ - "\x2\x2\x2\x97D\x97E\x3\x2\x2\x2\x97E\x981\x3\x2\x2\x2\x97F\x982\x5\x10C"+ - "\x87\x2\x980\x982\x5\xFA~\x2\x981\x97F\x3\x2\x2\x2\x981\x980\x3\x2\x2"+ - "\x2\x982\x105\x3\x2\x2\x2\x983\x98C\x5\xFA~\x2\x984\x986\x5\x128\x95\x2"+ - "\x985\x984\x3\x2\x2\x2\x985\x986\x3\x2\x2\x2\x986\x987\x3\x2\x2\x2\x987"+ - "\x989\a\xE8\x2\x2\x988\x98A\x5\x128\x95\x2\x989\x988\x3\x2\x2\x2\x989"+ - "\x98A\x3\x2\x2\x2\x98A\x98B\x3\x2\x2\x2\x98B\x98D\x5\xFA~\x2\x98C\x985"+ - "\x3\x2\x2\x2\x98C\x98D\x3\x2\x2\x2\x98D\x107\x3\x2\x2\x2\x98E\x991\x5"+ - "\xFA~\x2\x98F\x991\x5\x10C\x87\x2\x990\x98E\x3\x2\x2\x2\x990\x98F\x3\x2"+ - "\x2\x2\x991\x992\x3\x2\x2\x2\x992\x993\a*\x2\x2\x993\x109\x3\x2\x2\x2"+ - "\x994\x99D\x5\x10C\x87\x2\x995\x99D\a\xFA\x2\x2\x996\x99D\a\xF5\x2\x2"+ - "\x997\x99D\a\xD0\x2\x2\x998\x99D\at\x2\x2\x999\x99D\a\x99\x2\x2\x99A\x99D"+ - "\a\x9A\x2\x2\x99B\x99D\a`\x2\x2\x99C\x994\x3\x2\x2\x2\x99C\x995\x3\x2"+ - "\x2\x2\x99C\x996\x3\x2\x2\x2\x99C\x997\x3\x2\x2\x2\x99C\x998\x3\x2\x2"+ - "\x2\x99C\x999\x3\x2\x2\x2\x99C\x99A\x3\x2\x2\x2\x99C\x99B\x3\x2\x2\x2"+ - "\x99D\x10B\x3\x2\x2\x2\x99E\x99F\t\x13\x2\x2\x99F\x10D\x3\x2\x2\x2\x9A0"+ - "\x9A3\x5\xFE\x80\x2\x9A1\x9A3\x5\x102\x82\x2\x9A2\x9A0\x3\x2\x2\x2\x9A2"+ - "\x9A1\x3\x2\x2\x2\x9A3\x9AC\x3\x2\x2\x2\x9A4\x9A6\x5\x128\x95\x2\x9A5"+ - "\x9A4\x3\x2\x2\x2\x9A5\x9A6\x3\x2\x2\x2\x9A6\x9A7\x3\x2\x2\x2\x9A7\x9A9"+ - "\a\xE6\x2\x2\x9A8\x9AA\x5\x128\x95\x2\x9A9\x9A8\x3\x2\x2\x2\x9A9\x9AA"+ - "\x3\x2\x2\x2\x9AA\x9AB\x3\x2\x2\x2\x9AB\x9AD\a\xED\x2\x2\x9AC\x9A5\x3"+ - "\x2\x2\x2\x9AC\x9AD\x3\x2\x2\x2\x9AD\x10F\x3\x2\x2\x2\x9AE\x9AF\t\x14"+ - "\x2\x2\x9AF\x111\x3\x2\x2\x2\x9B0\x9B1\t\x15\x2\x2\x9B1\x113\x3\x2\x2"+ - "\x2\x9B2\x9B3\t\x16\x2\x2\x9B3\x115\x3\x2\x2\x2\x9B4\x9B6\x5\x128\x95"+ - "\x2\x9B5\x9B4\x3\x2\x2\x2\x9B5\x9B6\x3\x2\x2\x2\x9B6\x9BE\x3\x2\x2\x2"+ - "\x9B7\x9B9\a\xFB\x2\x2\x9B8\x9B7\x3\x2\x2\x2\x9B9\x9BA\x3\x2\x2\x2\x9BA"+ - "\x9B8\x3\x2\x2\x2\x9BA\x9BB\x3\x2\x2\x2\x9BB\x9BF\x3\x2\x2\x2\x9BC\x9BF"+ - "\x5\x11C\x8F\x2\x9BD\x9BF\x5\x11A\x8E\x2\x9BE\x9B8\x3\x2\x2\x2\x9BE\x9BC"+ - "\x3\x2\x2\x2\x9BE\x9BD\x3\x2\x2\x2\x9BF\x9C1\x3\x2\x2\x2\x9C0\x9C2\x5"+ - "\x128\x95\x2\x9C1\x9C0\x3\x2\x2\x2\x9C1\x9C2\x3\x2\x2\x2\x9C2\x9C8\x3"+ - "\x2\x2\x2\x9C3\x9C5\x5\x128\x95\x2\x9C4\x9C3\x3\x2\x2\x2\x9C4\x9C5\x3"+ - "\x2\x2\x2\x9C5\x9C6\x3\x2\x2\x2\x9C6\x9C8\x5\x11E\x90\x2\x9C7\x9B5\x3"+ - "\x2\x2\x2\x9C7\x9C4\x3\x2\x2\x2\x9C8\x117\x3\x2\x2\x2\x9C9\x9D2\x5\x116"+ - "\x8C\x2\x9CA\x9CC\x5\x128\x95\x2\x9CB\x9CA\x3\x2\x2\x2\x9CB\x9CC\x3\x2"+ - "\x2\x2\x9CC\x9CD\x3\x2\x2\x2\x9CD\x9CF\a*\x2\x2\x9CE\x9D0\x5\x128\x95"+ - "\x2\x9CF\x9CE\x3\x2\x2\x2\x9CF\x9D0\x3\x2\x2\x2\x9D0\x9D2\x3\x2\x2\x2"+ - "\x9D1\x9C9\x3\x2\x2\x2\x9D1\x9CB\x3\x2\x2\x2\x9D2\x9D5\x3\x2\x2\x2\x9D3"+ - "\x9D1\x3\x2\x2\x2\x9D3\x9D4\x3\x2\x2\x2\x9D4\x119\x3\x2\x2\x2\x9D5\x9D3"+ - "\x3\x2\x2\x2\x9D6\x9D7\a\xFC\x2\x2\x9D7\x11B\x3\x2\x2\x2\x9D8\x9D9\t\x17"+ - "\x2\x2\x9D9\x11D\x3\x2\x2\x2\x9DA\x9DC\a\xFE\x2\x2\x9DB\x9DD\x5\x120\x91"+ - "\x2\x9DC\x9DB\x3\x2\x2\x2\x9DD\x9DE\x3\x2\x2\x2\x9DE\x9DC\x3\x2\x2\x2"+ - "\x9DE\x9DF\x3\x2\x2\x2\x9DF\x11F\x3\x2\x2\x2\x9E0\x9E1\a/\x2\x2\x9E1\x9E3"+ - "\x5\x122\x92\x2\x9E2\x9E4\x5\x124\x93\x2\x9E3\x9E2\x3\x2\x2\x2\x9E3\x9E4"+ - "\x3\x2\x2\x2\x9E4\x121\x3\x2\x2\x2\x9E5\x9E6\a\x101\x2\x2\x9E6\x123\x3"+ - "\x2\x2\x2\x9E7\x9E8\x5\x128\x95\x2\x9E8\x9EA\x5\x126\x94\x2\x9E9\x9EB"+ - "\x5\x128\x95\x2\x9EA\x9E9\x3\x2\x2\x2\x9EA\x9EB\x3\x2\x2\x2\x9EB\xA25"+ - "\x3\x2\x2\x2\x9EC\x9ED\x5\x128\x95\x2\x9ED\x9F6\x5\x126\x94\x2\x9EE\x9F0"+ - "\x5\x128\x95\x2\x9EF\x9EE\x3\x2\x2\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F1"+ - "\x3\x2\x2\x2\x9F1\x9F3\a)\x2\x2\x9F2\x9F4\x5\x128\x95\x2\x9F3\x9F2\x3"+ - "\x2\x2\x2\x9F3\x9F4\x3\x2\x2\x2\x9F4\x9F5\x3\x2\x2\x2\x9F5\x9F7\x5\x126"+ - "\x94\x2\x9F6\x9EF\x3\x2\x2\x2\x9F7\x9F8\x3\x2\x2\x2\x9F8\x9F6\x3\x2\x2"+ - "\x2\x9F8\x9F9\x3\x2\x2\x2\x9F9\x9FB\x3\x2\x2\x2\x9FA\x9FC\x5\x128\x95"+ - "\x2\x9FB\x9FA\x3\x2\x2\x2\x9FB\x9FC\x3\x2\x2\x2\x9FC\xA25\x3\x2\x2\x2"+ - "\x9FD\x9FF\x5\x128\x95\x2\x9FE\x9FD\x3\x2\x2\x2\x9FE\x9FF\x3\x2\x2\x2"+ - "\x9FF\xA00\x3\x2\x2\x2\xA00\xA02\a\xE6\x2\x2\xA01\xA03\x5\x128\x95\x2"+ - "\xA02\xA01\x3\x2\x2\x2\xA02\xA03\x3\x2\x2\x2\xA03\xA04\x3\x2\x2\x2\xA04"+ - "\xA06\x5\x126\x94\x2\xA05\xA07\x5\x128\x95\x2\xA06\xA05\x3\x2\x2\x2\xA06"+ - "\xA07\x3\x2\x2\x2\xA07\xA08\x3\x2\x2\x2\xA08\xA0A\a\xED\x2\x2\xA09\xA0B"+ - "\x5\x128\x95\x2\xA0A\xA09\x3\x2\x2\x2\xA0A\xA0B\x3\x2\x2\x2\xA0B\xA25"+ - "\x3\x2\x2\x2\xA0C\xA0E\x5\x128\x95\x2\xA0D\xA0C\x3\x2\x2\x2\xA0D\xA0E"+ - "\x3\x2\x2\x2\xA0E\xA0F\x3\x2\x2\x2\xA0F\xA10\a\xE6\x2\x2\xA10\xA19\x5"+ - "\x126\x94\x2\xA11\xA13\x5\x128\x95\x2\xA12\xA11\x3\x2\x2\x2\xA12\xA13"+ - "\x3\x2\x2\x2\xA13\xA14\x3\x2\x2\x2\xA14\xA16\a)\x2\x2\xA15\xA17\x5\x128"+ - "\x95\x2\xA16\xA15\x3\x2\x2\x2\xA16\xA17\x3\x2\x2\x2\xA17\xA18\x3\x2\x2"+ - "\x2\xA18\xA1A\x5\x126\x94\x2\xA19\xA12\x3\x2\x2\x2\xA1A\xA1B\x3\x2\x2"+ - "\x2\xA1B\xA19\x3\x2\x2\x2\xA1B\xA1C\x3\x2\x2\x2\xA1C\xA1E\x3\x2\x2\x2"+ - "\xA1D\xA1F\x5\x128\x95\x2\xA1E\xA1D\x3\x2\x2\x2\xA1E\xA1F\x3\x2\x2\x2"+ - "\xA1F\xA20\x3\x2\x2\x2\xA20\xA22\a\xED\x2\x2\xA21\xA23\x5\x128\x95\x2"+ - "\xA22\xA21\x3\x2\x2\x2\xA22\xA23\x3\x2\x2\x2\xA23\xA25\x3\x2\x2\x2\xA24"+ - "\x9E7\x3\x2\x2\x2\xA24\x9EC\x3\x2\x2\x2\xA24\x9FE\x3\x2\x2\x2\xA24\xA0D"+ - "\x3\x2\x2\x2\xA25\x125\x3\x2\x2\x2\xA26\xA29\a\x101\x2\x2\xA27\xA29\x5"+ - "\x10A\x86\x2\xA28\xA26\x3\x2\x2\x2\xA28\xA27\x3\x2\x2\x2\xA29\x127\x3"+ - "\x2\x2\x2\xA2A\xA2C\t\x18\x2\x2\xA2B\xA2A\x3\x2\x2\x2\xA2C\xA2D\x3\x2"+ - "\x2\x2\xA2D\xA2B\x3\x2\x2\x2\xA2D\xA2E\x3\x2\x2\x2\xA2E\x129\x3\x2\x2"+ - "\x2\x1BB\x12E\x134\x137\x13B\x13F\x143\x147\x14D\x150\x15A\x15C\x162\x16A"+ - "\x171\x177\x180\x188\x197\x1A1\x1A9\x1B3\x1B9\x1BD\x1C1\x1C5\x1CA\x1D3"+ - "\x21A\x220\x224\x227\x237\x23B\x240\x243\x248\x24E\x252\x257\x25C\x261"+ - "\x264\x268\x26E\x272\x279\x27F\x283\x286\x28B\x296\x299\x29C\x2A1\x2A7"+ - "\x2AB\x2B0\x2B7\x2BD\x2C1\x2C9\x2CD\x2D1\x2D5\x2D9\x2DE\x2E9\x2F0\x2F8"+ - "\x2FF\x308\x30F\x313\x316\x31E\x322\x327\x331\x337\x341\x345\x34F\x357"+ - "\x35D\x363\x368\x36B\x36F\x37B\x37F\x385\x387\x38C\x390\x394\x398\x39B"+ - "\x39E\x3A1\x3A4\x3A8\x3B0\x3B4\x3B7\x3BA\x3BE\x3D6\x3DC\x3E0\x3E4\x3ED"+ - "\x3F8\x3FD\x407\x40B\x410\x418\x41C\x420\x428\x42C\x438\x43C\x444\x446"+ - "\x44C\x450\x456\x45A\x45E\x478\x482\x486\x48B\x496\x49A\x49F\x4AE\x4B3"+ - "\x4BC\x4C0\x4C4\x4C8\x4CC\x4CF\x4D3\x4D7\x4DA\x4DE\x4E1\x4E5\x4E7\x4EC"+ - "\x4F0\x4F4\x4F8\x4FA\x500\x504\x507\x50C\x510\x516\x519\x51C\x521\x525"+ - "\x52C\x530\x536\x539\x53D\x544\x548\x54E\x551\x555\x55D\x561\x564\x567"+ - "\x56B\x573\x577\x57B\x57D\x580\x586\x58C\x590\x594\x599\x59E\x5A2\x5A6"+ - "\x5AC\x5B4\x5B6\x5C2\x5C6\x5CE\x5D2\x5DA\x5DE\x5E2\x5E6\x5EA\x5EE\x5F6"+ - "\x5FA\x607\x60E\x612\x61D\x624\x629\x62D\x632\x635\x63B\x63F\x642\x648"+ - "\x64C\x654\x658\x661\x665\x669\x66D\x670\x674\x67A\x67E\x685\x68E\x695"+ - "\x699\x69C\x69F\x6A2\x6A7\x6B3\x6B7\x6BF\x6C1\x6C6\x6CB\x6D0\x6D4\x6DA"+ - "\x6DF\x6E6\x6EA\x6F0\x6F4\x6F8\x6FD\x701\x706\x70A\x70F\x713\x718\x71C"+ - "\x721\x725\x72A\x72E\x733\x737\x73C\x740\x745\x749\x74E\x752\x757\x75B"+ - "\x75E\x760\x76B\x770\x775\x77B\x77F\x784\x789\x78D\x791\x793\x797\x799"+ - "\x79C\x7A1\x7A8\x7B0\x7B4\x7BD\x7C6\x7CC\x7D0\x7D3\x7D6\x7DC\x7E2\x7E5"+ - "\x7E9\x7ED\x7F1\x7F4\x7FC\x802\x807\x80A\x80E\x812\x816\x819\x821\x826"+ - "\x829\x82C\x830\x834\x839\x83C\x83F\x842\x84A\x851\x854\x85C\x863\x867"+ - "\x86A\x86D\x870\x878\x87D\x880\x883\x887\x88B\x88D\x891\x894\x897\x89F"+ - "\x8A4\x8A8\x8AC\x8AF\x8B2\x8B5\x8BD\x8C2\x8C6\x8C9\x8CE\x8D1\x8D5\x8D9"+ - "\x8DE\x8E2\x8E5\x8E9\x8ED\x8F1\x8F4\x8FA\x8FE\x902\x906\x90A\x90F\x912"+ - "\x915\x91B\x91F\x923\x927\x92A\x92E\x931\x934\x937\x93A\x93D\x941\x947"+ - "\x94B\x950\x958\x95E\x962\x966\x96A\x96D\x978\x97D\x981\x985\x989\x98C"+ - "\x990\x99C\x9A2\x9A5\x9A9\x9AC\x9B5\x9BA\x9BE\x9C1\x9C4\x9C7\x9CB\x9CF"+ - "\x9D1\x9D3\x9DE\x9E3\x9EA\x9EF\x9F3\x9F8\x9FB\x9FE\xA02\xA06\xA0A\xA0D"+ - "\xA12\xA16\xA1B\xA1E\xA22\xA24\xA28\xA2D"; + "\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBBE\x2\x128\x3\x2"+ + "\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x152\x3\x2\x2\x2\n\x164"+ + "\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180\x3\x2\x2\x2\x10\x195\x3\x2\x2"+ + "\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2\x2\x2\x16\x1B1\x3\x2\x2\x2\x18"+ + "\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3"+ + "\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231"+ + "\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277"+ + "\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2"+ + "\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318"+ + "\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2"+ + "\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2\x2\x2H\x35D\x3\x2\x2\x2J\x38A\x3"+ + "\x2\x2\x2L\x3AA\x3\x2\x2\x2N\x3C0\x3\x2\x2\x2P\x3C4\x3\x2\x2\x2R\x3E2"+ + "\x3\x2\x2\x2T\x3E4\x3\x2\x2\x2V\x3ED\x3\x2\x2\x2X\x3EF\x3\x2\x2\x2Z\x3F8"+ + "\x3\x2\x2\x2\\\x3FD\x3\x2\x2\x2^\x401\x3\x2\x2\x2`\x410\x3\x2\x2\x2\x62"+ + "\x416\x3\x2\x2\x2\x64\x422\x3\x2\x2\x2\x66\x42E\x3\x2\x2\x2h\x432\x3\x2"+ + "\x2\x2j\x446\x3\x2\x2\x2l\x452\x3\x2\x2\x2n\x460\x3\x2\x2\x2p\x464\x3"+ + "\x2\x2\x2r\x46C\x3\x2\x2\x2t\x478\x3\x2\x2\x2v\x48C\x3\x2\x2\x2x\x4A0"+ + "\x3\x2\x2\x2z\x4E5\x3\x2\x2\x2|\x4F8\x3\x2\x2\x2~\x4FA\x3\x2\x2\x2\x80"+ + "\x50A\x3\x2\x2\x2\x82\x52A\x3\x2\x2\x2\x84\x542\x3\x2\x2\x2\x86\x557\x3"+ + "\x2\x2\x2\x88\x56D\x3\x2\x2\x2\x8A\x580\x3\x2\x2\x2\x8C\x586\x3\x2\x2"+ + "\x2\x8E\x59A\x3\x2\x2\x2\x90\x5AC\x3\x2\x2\x2\x92\x5AE\x3\x2\x2\x2\x94"+ + "\x5B6\x3\x2\x2\x2\x96\x5B8\x3\x2\x2\x2\x98\x5BC\x3\x2\x2\x2\x9A\x5C8\x3"+ + "\x2\x2\x2\x9C\x5D4\x3\x2\x2\x2\x9E\x5F0\x3\x2\x2\x2\xA0\x5FC\x3\x2\x2"+ + "\x2\xA2\x61B\x3\x2\x2\x2\xA4\x61D\x3\x2\x2\x2\xA6\x633\x3\x2\x2\x2\xA8"+ + "\x635\x3\x2\x2\x2\xAA\x642\x3\x2\x2\x2\xAC\x64E\x3\x2\x2\x2\xAE\x65A\x3"+ + "\x2\x2\x2\xB0\x65F\x3\x2\x2\x2\xB2\x676\x3\x2\x2\x2\xB4\x683\x3\x2\x2"+ + "\x2\xB6\x691\x3\x2\x2\x2\xB8\x6A9\x3\x2\x2\x2\xBA\x6AD\x3\x2\x2\x2\xBC"+ + "\x6EE\x3\x2\x2\x2\xBE\x761\x3\x2\x2\x2\xC0\x76E\x3\x2\x2\x2\xC2\x777\x3"+ + "\x2\x2\x2\xC4\x785\x3\x2\x2\x2\xC6\x7A1\x3\x2\x2\x2\xC8\x7AA\x3\x2\x2"+ + "\x2\xCA\x7B6\x3\x2\x2\x2\xCC\x7C4\x3\x2\x2\x2\xCE\x7C6\x3\x2\x2\x2\xD0"+ + "\x7D4\x3\x2\x2\x2\xD2\x7D8\x3\x2\x2\x2\xD4\x81E\x3\x2\x2\x2\xD6\x822\x3"+ + "\x2\x2\x2\xD8\x825\x3\x2\x2\x2\xDA\x849\x3\x2\x2\x2\xDC\x85F\x3\x2\x2"+ + "\x2\xDE\x861\x3\x2\x2\x2\xE0\x879\x3\x2\x2\x2\xE2\x8A0\x3\x2\x2\x2\xE4"+ + "\x8BC\x3\x2\x2\x2\xE6\x8C5\x3\x2\x2\x2\xE8\x8D5\x3\x2\x2\x2\xEA\x8E9\x3"+ + "\x2\x2\x2\xEC\x8F4\x3\x2\x2\x2\xEE\x8FC\x3\x2\x2\x2\xF0\x917\x3\x2\x2"+ + "\x2\xF2\x93B\x3\x2\x2\x2\xF4\x941\x3\x2\x2\x2\xF6\x954\x3\x2\x2\x2\xF8"+ + "\x95A\x3\x2\x2\x2\xFA\x95C\x3\x2\x2\x2\xFC\x96B\x3\x2\x2\x2\xFE\x96D\x3"+ + "\x2\x2\x2\x100\x96F\x3\x2\x2\x2\x102\x977\x3\x2\x2\x2\x104\x97F\x3\x2"+ + "\x2\x2\x106\x98C\x3\x2\x2\x2\x108\x998\x3\x2\x2\x2\x10A\x99A\x3\x2\x2"+ + "\x2\x10C\x99E\x3\x2\x2\x2\x10E\x9AA\x3\x2\x2\x2\x110\x9AC\x3\x2\x2\x2"+ + "\x112\x9AE\x3\x2\x2\x2\x114\x9C3\x3\x2\x2\x2\x116\x9CF\x3\x2\x2\x2\x118"+ + "\x9D2\x3\x2\x2\x2\x11A\x9D4\x3\x2\x2\x2\x11C\x9D6\x3\x2\x2\x2\x11E\x9DC"+ + "\x3\x2\x2\x2\x120\x9E1\x3\x2\x2\x2\x122\xA20\x3\x2\x2\x2\x124\xA24\x3"+ + "\x2\x2\x2\x126\xA27\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ + "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5\x126\x94\x2\x12C\x12B\x3\x2\x2\x2"+ + "\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x116\x8C\x2"+ + "\x12F\x130\x5\x6\x4\x2\x130\x131\x5\x116\x8C\x2\x131\x133\x3\x2\x2\x2"+ + "\x132\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134"+ + "\x136\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137"+ + "\x3\x2\x2\x2\x137\x139\x5\x116\x8C\x2\x138\x13A\x5\f\a\x2\x139\x138\x3"+ + "\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116"+ + "\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ + "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x116\x8C\x2\x140\x142\x5\x14\v"+ + "\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2"+ + "\x143\x145\x5\x116\x8C\x2\x144\x146\x5\x126\x94\x2\x145\x144\x3\x2\x2"+ + "\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xD7\x2\x2\x148"+ + "\x149\x5\x126\x94\x2\x149\x14B\x5\x10A\x86\x2\x14A\x14C\x5\x126\x94\x2"+ + "\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D"+ + "\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150"+ + "\x3\x2\x2\x2\x150\x151\x5\x116\x8C\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;"+ + "\x2\x2\x153\x154\x5\x126\x94\x2\x154\x155\a\x103\x2\x2\x155\x156\x5\x126"+ + "\x94\x2\x156\x158\x5\xF8}\x2\x157\x159\x5\x126\x94\x2\x158\x157\x3\x2"+ + "\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2"+ + "\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C"+ + "\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160"+ + "\x15E\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163"+ + "\ai\x2\x2\x163\t\x3\x2\x2\x2\x164\x168\x5\xF8}\x2\x165\x167\x5\x126\x94"+ + "\x2\x166\x165\x3\x2\x2\x2\x167\x16A\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2"+ + "\x168\x169\x3\x2\x2\x2\x169\x16B\x3\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B"+ + "\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E"+ + "\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170\x172"+ + "\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2\x172\x175\x5\x108\x85\x2\x173\x174"+ + "\a*\x2\x2\x174\x176\x5\x10A\x86\x2\x175\x173\x3\x2\x2\x2\x175\x176\x3"+ + "\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177\x178\x5\x116\x8C\x2\x178\v\x3\x2"+ + "\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B\x5\x116\x8C\x2\x17B\x17D\x3\x2"+ + "\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17C\x3\x2\x2"+ + "\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2\x2\x2\x180\x186\x5\x12\n\x2\x181"+ + "\x182\x5\x116\x8C\x2\x182\x183\x5\x12\n\x2\x183\x185\x3\x2\x2\x2\x184"+ + "\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2\x186\x184\x3\x2\x2\x2\x186\x187"+ + "\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188\x186\x3\x2\x2\x2\x189\x18A\x5"+ + "\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C\a\xA0\x2\x2\x18C\x18D\x5\x126"+ + "\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196\x3\x2\x2\x2\x18F\x190\a\xA2"+ + "\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192\t\x2\x2\x2\x192\x196\x3\x2\x2"+ + "\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3\x2\x2\x195\x18B\x3\x2\x2\x2"+ + "\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2\x2\x195\x194\x3\x2\x2\x2\x196"+ + "\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198\x1A0\x5\x38\x1D\x2\x199\x1A0"+ + "\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5\\/\x2\x19C\x1A0\x5\xC0\x61"+ + "\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4[\x2\x19F\x197\x3\x2\x2\x2\x19F"+ + "\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2\x19F\x19A\x3\x2\x2\x2\x19F\x19B"+ + "\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F\x19D\x3\x2\x2\x2\x19F\x19E\x3"+ + "\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7\x5\x16\f\x2\x1A2\x1A3\x5\x116"+ + "\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2"+ + "\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2"+ + "\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2\x2\x2\x1AA\x1AB\x5\x116\x8C\x2"+ + "\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2"+ + "\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC"+ + "\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3"+ + "\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2"+ + "\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94"+ + "\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2"+ + "\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126\x94\x2\x1BB\x1BA\x3\x2\x2\x2"+ + "\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2\x2\x1BD\x1C8\x5\x108\x85\x2"+ + "\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2"+ + "\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2\x1C2\x1C4\x5\x126\x94\x2\x1C3"+ + "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7"+ + "\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6"+ + "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2"+ + "\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C"+ + "\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2"+ + "\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2"+ + "\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6"+ + "\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9"+ + "\x219\x5 \x11\x2\x1DA\x219\x5\"\x12\x2\x1DB\x219\x5$\x13\x2\x1DC\x219"+ + "\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE\x219\x5,\x17\x2\x1DF\x219\x5\x32"+ + "\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36"+ + "\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6"+ + "\x219\x5\xD2j\x2\x1E7\x219\x5\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5"+ + "H%\x2\x1EA\x219\x5L\'\x2\x1EB\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219"+ + "\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2"+ + "\x1F1\x219\x5\x62\x32\x2\x1F2\x219\x5\x64\x33\x2\x1F3\x219\x5\x66\x34"+ + "\x2\x1F4\x219\x5h\x35\x2\x1F5\x219\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7"+ + "\x219\x5n\x38\x2\x1F8\x219\x5p\x39\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t"+ + ";\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5"+ + "\x86\x44\x2\x1FF\x219\x5\x88\x45\x2\x200\x219\x5\x8A\x46\x2\x201\x219"+ + "\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203\x219\x5\x92J\x2\x204\x219\x5\x94"+ + "K\x2\x205\x219\x5\x96L\x2\x206\x219\x5\x98M\x2\x207\x219\x5\x9AN\x2\x208"+ + "\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2\x20A\x219\x5\xA0Q\x2\x20B\x219\x5"+ + "\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219\x5\xACW\x2\x20E\x219\x5\xAEX\x2"+ + "\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8]\x2\x211\x219\x5\xBA^\x2\x212\x219"+ + "\x5\xC0\x61\x2\x213\x219\x5\xC6\x64\x2\x214\x219\x5\xC8\x65\x2\x215\x219"+ + "\x5\xCA\x66\x2\x216\x219\x5\xCEh\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3"+ + "\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2"+ + "\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB\x3\x2\x2\x2\x218\x1DC\x3\x2\x2"+ + "\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3\x2\x2\x2\x218\x1DF\x3\x2\x2\x2"+ + "\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2\x2\x2\x218\x1E2\x3\x2\x2\x2\x218"+ + "\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6"+ + "\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3"+ + "\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2"+ + "\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE\x3\x2\x2\x2\x218\x1EF\x3\x2\x2"+ + "\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3\x2\x2\x2\x218\x1F2\x3\x2\x2\x2"+ + "\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2\x2\x2\x218\x1F5\x3\x2\x2\x2\x218"+ + "\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9"+ + "\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3"+ + "\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2"+ + "\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201\x3\x2\x2\x2\x218\x202\x3\x2\x2"+ + "\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3\x2\x2\x2\x218\x205\x3\x2\x2\x2"+ + "\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2\x2\x2\x218\x208\x3\x2\x2\x2\x218"+ + "\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2\x2\x218\x20B\x3\x2\x2\x2\x218\x20C"+ + "\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2\x218\x20E\x3\x2\x2\x2\x218\x20F\x3"+ + "\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218\x211\x3\x2\x2\x2\x218\x212\x3\x2"+ + "\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214\x3\x2\x2\x2\x218\x215\x3\x2\x2"+ + "\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A"+ + "\x21B\a\x38\x2\x2\x21B\x21C\x5\x126\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F"+ + "\x5\x126\x94\x2\x21E\x21D\x3\x2\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220"+ + "\x3\x2\x2\x2\x220\x222\a)\x2\x2\x221\x223\x5\x126\x94\x2\x222\x221\x3"+ + "\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC"+ + "_\x2\x225\x21E\x3\x2\x2\x2\x225\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2"+ + "\x227\x228\a<\x2\x2\x228!\x3\x2\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B"+ + "\x5\x126\x94\x2\x22B\x22C\x5\xBC_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45"+ + "\x2\x2\x22E\x22F\x5\x126\x94\x2\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2"+ + "\x231\x241\aG\x2\x2\x232\x233\x5\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234"+ + "\x236\x5\x126\x94\x2\x235\x234\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236"+ + "\x237\x3\x2\x2\x2\x237\x239\a)\x2\x2\x238\x23A\x5\x126\x94\x2\x239\x238"+ + "\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5"+ + "\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2"+ + "\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2"+ + "\x241\x232\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244"+ + "\x5\x110\x89\x2\x244\x245\x5\x126\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243"+ + "\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH"+ + "\x2\x2\x249\x24A\x5\x126\x94\x2\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126"+ + "\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2"+ + "\x2\x24E\x250\a)\x2\x2\x24F\x251\x5\x126\x94\x2\x250\x24F\x3\x2\x2\x2"+ + "\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x254\x5*\x16\x2\x253"+ + "\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2\x2\x255\x253\x3\x2\x2\x2\x255\x256"+ + "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x258\x25A\x5\xF8"+ + "}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259\x3\x2\x2\x2\x25A\x25B\x3\x2\x2"+ + "\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5\x126\x94\x2\x25D\x25E\x5\xFA~\x2"+ + "\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2\x260"+ + "\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94\x2\x262\x261\x3\x2\x2\x2\x262"+ + "\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\a\xE2\x2\x2\x265\x267"+ + "\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2\x266\x267\x3\x2\x2\x2\x267\x268"+ + "\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2"+ + "\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3\x2\x2\x2\x26C\x26D\x3\x2\x2\x2"+ + "\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2\x2\x2\x26F\x271\x5\x126\x94\x2"+ + "\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272"+ + "\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274\x275\x5\x110\x89\x2\x275\x276"+ + "\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277\x274\x3\x2\x2\x2\x277\x278"+ + "\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\aK\x2\x2\x27A\x27D\x5\x126"+ + "\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5\x126\x94\x2\x27D\x27B\x3\x2"+ + "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3\x2\x2\x2\x27F\x281\ax\x2\x2"+ + "\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2"+ + "\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2\x2\x284\x27F\x3\x2\x2\x2\x284"+ + "\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x287\x5\x126\x94\x2\x287"+ + "\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2\x289\x288\x3\x2\x2\x2\x289\x28A"+ + "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\x5\x126\x94\x2\x28C\x28D"+ + "\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E\x294\a\xF5\x2\x2\x28F\x290"+ + "\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291\x292\x5\x126\x94\x2\x292\x293"+ + "\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294\x28F\x3\x2\x2\x2\x294\x295\x3"+ + "\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298\x5\x126\x94\x2\x297\x296\x3"+ + "\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299\x3\x2\x2\x2\x299\x29B\x5\xEE"+ + "x\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29F\x3\x2\x2\x2"+ + "\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA~\x2\x29E\x2A0\x3\x2\x2\x2\x29F"+ + "\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t"+ + "\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3\x2AE\x5\x104\x83\x2\x2A4\x2A6"+ + "\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2A7"+ + "\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5\x126\x94\x2\x2A9\x2A8\x3"+ + "\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3\x2\x2\x2\x2AB\x2AD\x5\x104"+ + "\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3\x2\x2\x2\x2AE\x2AC\x3\x2\x2"+ + "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1"+ + "\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6"+ + "\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2D8"+ + "\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5\x126\x94\x2\x2B9\x2BB\x5"+ + "\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3\x2\x2\x2\x2BB\x2BC\x3\x2"+ + "\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2\x2\x2BE\x2C0\x5\x126\x94"+ + "\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2"+ + "\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3\x2C4\aY\x2\x2\x2C4\x2C5"+ + "\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8\x5\x126\x94\x2\x2C7\x2C6"+ + "\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9\x3\x2\x2\x2\x2C9\x2CB\a)"+ + "\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3\x2\x2\x2\x2CB\x2CC\x3\x2"+ + "\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x126\x94"+ + "\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2"+ + "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ + "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x5\xBC_\x2\x2D6\x2D8"+ + "\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7\x3\x2\x2\x2\x2D7\x2C3\x3"+ + "\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2\x2\x2DA\x2DC\x5\x116\x8C"+ + "\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2"+ + "\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2\x2DF\x2F7\x3\x2\x2\x2\x2E0"+ + "\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2\x2E3\t\x4\x2\x2\x2E3\x2E4"+ + "\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7\x5\x116\x8C\x2\x2E6\x2E8"+ + "\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3"+ + "\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3\x2\x2\x2\x2EB\x2EC\a[\x2"+ + "\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A\xE\x2\x2EE\x2ED\x3\x2\x2"+ + "\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F1\a\x88\x2\x2"+ + "\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2\x2F3\x2F4\x5\x126\x94\x2"+ + "\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6\x2D9\x3\x2\x2\x2\x2F6"+ + "\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35\x3\x2\x2\x2\x2F8\x2F9"+ + "\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110\x89\x2\x2FB\x2FC\x5\x126"+ + "\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3\x2\x2"+ + "\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2\x300\x301\x5\x126\x94\x2"+ + "\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2\x303\x305\x5:\x1E\x2\x304"+ + "\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306\x304\x3\x2\x2\x2\x306\x307"+ + "\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306\x3\x2\x2\x2\x309\x30A\a\x61"+ + "\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8}\x2\x30C\x30E\x5\x126\x94"+ + "\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2"+ + "\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94\x2\x311\x310\x3\x2\x2\x2"+ + "\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x315\x5\xBC_\x2\x314"+ + "\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ + "\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319\al\x2\x2\x319\x31A\x5\x126"+ + "\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126\x94\x2\x31C\x31B\x3\x2"+ + "\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2\x31E\x320\a)\x2\x2"+ + "\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2"+ + "\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323\x31C\x3\x2\x2\x2\x324"+ + "\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326=\x3"+ + "\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2\x329\x32A\x5\x126\x94"+ + "\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C\x32D\x5\x110\x89\x2\x32D"+ + "\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F\x32C\x3\x2\x2\x2\x32F"+ + "\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\an\x2\x2\x332\x333\x5"+ + "\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126\x94\x2\x335\x334\x3"+ + "\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xEE"+ + "x\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A\x43\x3\x2\x2\x2\x33B"+ + "\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F\x5\xBC_\x2\x33E\x340"+ + "\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341"+ + "\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94\x2\x343\x342\x3"+ + "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x5\xBC"+ + "_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349\x5\x126\x94\x2"+ + "\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34D\x5\xF8}\x2\x34C"+ + "\x34E\x5\x10E\x88\x2\x34D\x34C\x3\x2\x2\x2\x34D\x34E\x3\x2\x2\x2\x34E"+ + "\x34F\x3\x2\x2\x2\x34F\x350\x5\x126\x94\x2\x350\x351\a\x80\x2\x2\x351"+ + "\x352\x5\x126\x94\x2\x352\x353\x5\xBC_\x2\x353\x355\x5\x116\x8C\x2\x354"+ + "\x356\x5\x1A\xE\x2\x355\x354\x3\x2\x2\x2\x355\x356\x3\x2\x2\x2\x356\x357"+ + "\x3\x2\x2\x2\x357\x35B\a\x96\x2\x2\x358\x359\x5\x126\x94\x2\x359\x35A"+ + "\x5\xF8}\x2\x35A\x35C\x3\x2\x2\x2\x35B\x358\x3\x2\x2\x2\x35B\x35C\x3\x2"+ + "\x2\x2\x35CG\x3\x2\x2\x2\x35D\x35E\aw\x2\x2\x35E\x35F\x5\x126\x94\x2\x35F"+ + "\x361\x5\xF8}\x2\x360\x362\x5\x10E\x88\x2\x361\x360\x3\x2\x2\x2\x361\x362"+ + "\x3\x2\x2\x2\x362\x366\x3\x2\x2\x2\x363\x364\x5\x126\x94\x2\x364\x365"+ + "\x5\xFA~\x2\x365\x367\x3\x2\x2\x2\x366\x363\x3\x2\x2\x2\x366\x367\x3\x2"+ + "\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369\x368\x3\x2"+ + "\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36D\a\xE2\x2"+ + "\x2\x36C\x36E\x5\x126\x94\x2\x36D\x36C\x3\x2\x2\x2\x36D\x36E\x3\x2\x2"+ + "\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBC_\x2\x370\x371\x5\x126\x94\x2"+ + "\x371\x372\a\xCF\x2\x2\x372\x373\x5\x126\x94\x2\x373\x379\x5\xBC_\x2\x374"+ + "\x375\x5\x126\x94\x2\x375\x376\a\xC7\x2\x2\x376\x377\x5\x126\x94\x2\x377"+ + "\x378\x5\xBC_\x2\x378\x37A\x3\x2\x2\x2\x379\x374\x3\x2\x2\x2\x379\x37A"+ + "\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37D\x5\x116\x8C\x2\x37C\x37E"+ + "\x5\x1A\xE\x2\x37D\x37C\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x37F\x3"+ + "\x2\x2\x2\x37F\x385\a\x96\x2\x2\x380\x381\x5\x126\x94\x2\x381\x383\x5"+ + "\xF8}\x2\x382\x384\x5\x10E\x88\x2\x383\x382\x3\x2\x2\x2\x383\x384\x3\x2"+ + "\x2\x2\x384\x386\x3\x2\x2\x2\x385\x380\x3\x2\x2\x2\x385\x386\x3\x2\x2"+ + "\x2\x386I\x3\x2\x2\x2\x387\x388\x5\x110\x89\x2\x388\x389\x5\x126\x94\x2"+ + "\x389\x38B\x3\x2\x2\x2\x38A\x387\x3\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B"+ + "\x38E\x3\x2\x2\x2\x38C\x38D\a\xC6\x2\x2\x38D\x38F\x5\x126\x94\x2\x38E"+ + "\x38C\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x392"+ + "\ax\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392\x393\x3"+ + "\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xF8}\x2\x395\x397\x5\x10E"+ + "\x88\x2\x396\x395\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x39C\x3\x2\x2"+ + "\x2\x398\x39A\x5\x126\x94\x2\x399\x398\x3\x2\x2\x2\x399\x39A\x3\x2\x2"+ + "\x2\x39A\x39B\x3\x2\x2\x2\x39B\x39D\x5\xEEx\x2\x39C\x399\x3\x2\x2\x2\x39C"+ + "\x39D\x3\x2\x2\x2\x39D\x3A2\x3\x2\x2\x2\x39E\x3A0\x5\x126\x94\x2\x39F"+ + "\x39E\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2\x3A1\x3A3"+ + "\x5\xFA~\x2\x3A2\x39F\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3\x3A4\x3\x2"+ + "\x2\x2\x3A4\x3A6\x5\x116\x8C\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6\x3A5\x3\x2"+ + "\x2\x2\x3A6\x3A7\x3\x2\x2\x2\x3A7\x3A8\x3\x2\x2\x2\x3A8\x3A9\a\x62\x2"+ + "\x2\x3A9K\x3\x2\x2\x2\x3AA\x3AB\ay\x2\x2\x3AB\x3AC\x5\x126\x94\x2\x3AC"+ + "\x3AE\x5\xD0i\x2\x3AD\x3AF\x5\x126\x94\x2\x3AE\x3AD\x3\x2\x2\x2\x3AE\x3AF"+ + "\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B2\a)\x2\x2\x3B1\x3B3\x5\x126"+ + "\x94\x2\x3B2\x3B1\x3\x2\x2\x2\x3B2\x3B3\x3\x2\x2\x2\x3B3\x3B5\x3\x2\x2"+ + "\x2\x3B4\x3B6\x5\xBC_\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2\x2\x2\x3B6"+ + "\x3B8\x3\x2\x2\x2\x3B7\x3B9\x5\x126\x94\x2\x3B8\x3B7\x3\x2\x2\x2\x3B8"+ + "\x3B9\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BC\a)\x2\x2\x3BB\x3BD\x5"+ + "\x126\x94\x2\x3BC\x3BB\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2\x2\x3BD\x3BE\x3"+ + "\x2\x2\x2\x3BE\x3BF\x5\xBC_\x2\x3BFM\x3\x2\x2\x2\x3C0\x3C1\a{\x2\x2\x3C1"+ + "\x3C2\x5\x126\x94\x2\x3C2\x3C3\x5\xBC_\x2\x3C3O\x3\x2\x2\x2\x3C4\x3C5"+ + "\a|\x2\x2\x3C5\x3C6\x5\x126\x94\x2\x3C6\x3C7\x5\xBC_\x2\x3C7Q\x3\x2\x2"+ + "\x2\x3C8\x3C9\a}\x2\x2\x3C9\x3CA\x5\x126\x94\x2\x3CA\x3CB\x5V,\x2\x3CB"+ + "\x3CC\x5\x126\x94\x2\x3CC\x3CD\a\xCD\x2\x2\x3CD\x3CE\x5\x126\x94\x2\x3CE"+ + "\x3D4\x5\x1C\xF\x2\x3CF\x3D0\x5\x126\x94\x2\x3D0\x3D1\a^\x2\x2\x3D1\x3D2"+ + "\x5\x126\x94\x2\x3D2\x3D3\x5\x1C\xF\x2\x3D3\x3D5\x3\x2\x2\x2\x3D4\x3CF"+ + "\x3\x2\x2\x2\x3D4\x3D5\x3\x2\x2\x2\x3D5\x3E3\x3\x2\x2\x2\x3D6\x3DA\x5"+ + "T+\x2\x3D7\x3D9\x5X-\x2\x3D8\x3D7\x3\x2\x2\x2\x3D9\x3DC\x3\x2\x2\x2\x3DA"+ + "\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DE\x3\x2\x2\x2\x3DC\x3DA"+ + "\x3\x2\x2\x2\x3DD\x3DF\x5Z.\x2\x3DE\x3DD\x3\x2\x2\x2\x3DE\x3DF\x3\x2\x2"+ + "\x2\x3DF\x3E0\x3\x2\x2\x2\x3E0\x3E1\a\x63\x2\x2\x3E1\x3E3\x3\x2\x2\x2"+ + "\x3E2\x3C8\x3\x2\x2\x2\x3E2\x3D6\x3\x2\x2\x2\x3E3S\x3\x2\x2\x2\x3E4\x3E5"+ + "\a}\x2\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\x5V,\x2\x3E7\x3E8\x5\x126"+ + "\x94\x2\x3E8\x3E9\a\xCD\x2\x2\x3E9\x3EB\x5\x116\x8C\x2\x3EA\x3EC\x5\x1A"+ + "\xE\x2\x3EB\x3EA\x3\x2\x2\x2\x3EB\x3EC\x3\x2\x2\x2\x3ECU\x3\x2\x2\x2\x3ED"+ + "\x3EE\x5\xBC_\x2\x3EEW\x3\x2\x2\x2\x3EF\x3F0\a_\x2\x2\x3F0\x3F1\x5\x126"+ + "\x94\x2\x3F1\x3F2\x5V,\x2\x3F2\x3F3\x5\x126\x94\x2\x3F3\x3F4\a\xCD\x2"+ + "\x2\x3F4\x3F6\x5\x116\x8C\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5\x3\x2\x2"+ + "\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7Y\x3\x2\x2\x2\x3F8\x3F9\a^\x2\x2\x3F9\x3FB"+ + "\x5\x116\x8C\x2\x3FA\x3FC\x5\x1A\xE\x2\x3FB\x3FA\x3\x2\x2\x2\x3FB\x3FC"+ + "\x3\x2\x2\x2\x3FC[\x3\x2\x2\x2\x3FD\x3FE\a\x7F\x2\x2\x3FE\x3FF\x5\x126"+ + "\x94\x2\x3FF\x400\x5\xBC_\x2\x400]\x3\x2\x2\x2\x401\x402\a\x81\x2\x2\x402"+ + "\x403\x5\x126\x94\x2\x403\x40C\x5\xD0i\x2\x404\x406\x5\x126\x94\x2\x405"+ + "\x404\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406\x407\x3\x2\x2\x2\x407\x409"+ + "\a)\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x408\x3\x2\x2\x2\x409\x40A\x3"+ + "\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5\xBC_\x2\x40C\x405\x3\x2\x2"+ + "\x2\x40D\x40E\x3\x2\x2\x2\x40E\x40C\x3\x2\x2\x2\x40E\x40F\x3\x2\x2\x2"+ + "\x40F_\x3\x2\x2\x2\x410\x411\a\x84\x2\x2\x411\x412\x5\x126\x94\x2\x412"+ + "\x413\x5\xBC_\x2\x413\x61\x3\x2\x2\x2\x414\x415\a\x89\x2\x2\x415\x417"+ + "\x5\x126\x94\x2\x416\x414\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x418"+ + "\x3\x2\x2\x2\x418\x41A\x5\xDCo\x2\x419\x41B\x5\x126\x94\x2\x41A\x419\x3"+ + "\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\a\xE2"+ + "\x2\x2\x41D\x41F\x5\x126\x94\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2"+ + "\x2\x2\x41F\x420\x3\x2\x2\x2\x420\x421\x5\xBC_\x2\x421\x63\x3\x2\x2\x2"+ + "\x422\x423\a\x8C\x2\x2\x423\x424\x5\x126\x94\x2\x424\x426\x5\xD0i\x2\x425"+ + "\x427\x5\x126\x94\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2\x427"+ + "\x428\x3\x2\x2\x2\x428\x42A\a)\x2\x2\x429\x42B\x5\x126\x94\x2\x42A\x429"+ + "\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C\x42D\x5"+ + "\xBC_\x2\x42D\x65\x3\x2\x2\x2\x42E\x42F\a\x85\x2\x2\x42F\x430\x5\x126"+ + "\x94\x2\x430\x431\x5\xBC_\x2\x431g\x3\x2\x2\x2\x432\x433\a\x86\x2\x2\x433"+ + "\x434\x5\x126\x94\x2\x434\x444\x5\xBC_\x2\x435\x437\x5\x126\x94\x2\x436"+ + "\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2\x437\x438\x3\x2\x2\x2\x438\x43A"+ + "\a)\x2\x2\x439\x43B\x5\x126\x94\x2\x43A\x439\x3\x2\x2\x2\x43A\x43B\x3"+ + "\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x442\x5\xBC_\x2\x43D\x43E\x5\x126"+ + "\x94\x2\x43E\x43F\a\xCF\x2\x2\x43F\x440\x5\x126\x94\x2\x440\x441\x5\xBC"+ + "_\x2\x441\x443\x3\x2\x2\x2\x442\x43D\x3\x2\x2\x2\x442\x443\x3\x2\x2\x2"+ + "\x443\x445\x3\x2\x2\x2\x444\x436\x3\x2\x2\x2\x444\x445\x3\x2\x2\x2\x445"+ + "i\x3\x2\x2\x2\x446\x447\a\x90\x2\x2\x447\x448\x5\x126\x94\x2\x448\x44A"+ + "\x5\xDCo\x2\x449\x44B\x5\x126\x94\x2\x44A\x449\x3\x2\x2\x2\x44A\x44B\x3"+ + "\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44E\a\xE2\x2\x2\x44D\x44F\x5\x126"+ + "\x94\x2\x44E\x44D\x3\x2\x2\x2\x44E\x44F\x3\x2\x2\x2\x44F\x450\x3\x2\x2"+ + "\x2\x450\x451\x5\xBC_\x2\x451k\x3\x2\x2\x2\x452\x454\a\x92\x2\x2\x453"+ + "\x455\x5\x126\x94\x2\x454\x453\x3\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455"+ + "\x456\x3\x2\x2\x2\x456\x458\a\xE6\x2\x2\x457\x459\x5\x126\x94\x2\x458"+ + "\x457\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45A\x3\x2\x2\x2\x45A\x45C"+ + "\x5\xE8u\x2\x45B\x45D\x5\x126\x94\x2\x45C\x45B\x3\x2\x2\x2\x45C\x45D\x3"+ + "\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xED\x2\x2\x45Fm\x3\x2\x2\x2"+ + "\x460\x461\a\x93\x2\x2\x461\x462\x5\x126\x94\x2\x462\x463\x5\xBC_\x2\x463"+ + "o\x3\x2\x2\x2\x464\x465\a\x95\x2\x2\x465\x466\x5\x126\x94\x2\x466\x467"+ + "\x5\xBC_\x2\x467\x468\x5\x126\x94\x2\x468\x469\a:\x2\x2\x469\x46A\x5\x126"+ + "\x94\x2\x46A\x46B\x5\xBC_\x2\x46Bq\x3\x2\x2\x2\x46C\x46D\t\x6\x2\x2\x46D"+ + "\x476\x5\x126\x94\x2\x46E\x46F\a|\x2\x2\x46F\x470\x5\x126\x94\x2\x470"+ + "\x471\x5\xBC_\x2\x471\x477\x3\x2\x2\x2\x472\x473\a\xB8\x2\x2\x473\x474"+ + "\x5\x126\x94\x2\x474\x475\a\x96\x2\x2\x475\x477\x3\x2\x2\x2\x476\x46E"+ + "\x3\x2\x2\x2\x476\x472\x3\x2\x2\x2\x477s\x3\x2\x2\x2\x478\x479\a\x9B\x2"+ + "\x2\x479\x47A\x5\x126\x94\x2\x47A\x47B\x5\xBC_\x2\x47B\x47C\x5\x126\x94"+ + "\x2\x47C\x47D\a|\x2\x2\x47D\x47E\x5\x126\x94\x2\x47E\x489\x5\xBC_\x2\x47F"+ + "\x481\x5\x126\x94\x2\x480\x47F\x3\x2\x2\x2\x480\x481\x3\x2\x2\x2\x481"+ + "\x482\x3\x2\x2\x2\x482\x484\a)\x2\x2\x483\x485\x5\x126\x94\x2\x484\x483"+ + "\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3\x2\x2\x2\x486\x488\x5"+ + "\xBC_\x2\x487\x480\x3\x2\x2\x2\x488\x48B\x3\x2\x2\x2\x489\x487\x3\x2\x2"+ + "\x2\x489\x48A\x3\x2\x2\x2\x48Au\x3\x2\x2\x2\x48B\x489\x3\x2\x2\x2\x48C"+ + "\x48D\a\x9B\x2\x2\x48D\x48E\x5\x126\x94\x2\x48E\x48F\x5\xBC_\x2\x48F\x490"+ + "\x5\x126\x94\x2\x490\x491\a{\x2\x2\x491\x492\x5\x126\x94\x2\x492\x49D"+ + "\x5\xBC_\x2\x493\x495\x5\x126\x94\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3"+ + "\x2\x2\x2\x495\x496\x3\x2\x2\x2\x496\x498\a)\x2\x2\x497\x499\x5\x126\x94"+ + "\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2"+ + "\x49A\x49C\x5\xBC_\x2\x49B\x494\x3\x2\x2\x2\x49C\x49F\x3\x2\x2\x2\x49D"+ + "\x49B\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2\x49Ew\x3\x2\x2\x2\x49F\x49D\x3"+ + "\x2\x2\x2\x4A0\x4A1\a\x9E\x2\x2\x4A1\x4A2\x5\x126\x94\x2\x4A2\x4A3\x5"+ + "\xBC_\x2\x4A3\x4A4\x5\x126\x94\x2\x4A4\x4A5\aw\x2\x2\x4A5\x4A6\x5\x126"+ + "\x94\x2\x4A6\x4AC\t\a\x2\x2\x4A7\x4A8\x5\x126\x94\x2\x4A8\x4A9\a\x33\x2"+ + "\x2\x4A9\x4AA\x5\x126\x94\x2\x4AA\x4AB\t\b\x2\x2\x4AB\x4AD\x3\x2\x2\x2"+ + "\x4AC\x4A7\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4B1\x3\x2\x2\x2\x4AE"+ + "\x4AF\x5\x126\x94\x2\x4AF\x4B0\t\t\x2\x2\x4B0\x4B2\x3\x2\x2\x2\x4B1\x4AE"+ + "\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x5"+ + "\x126\x94\x2\x4B4\x4B5\a:\x2\x2\x4B5\x4B6\x5\x126\x94\x2\x4B6\x4C2\x5"+ + "\xD0i\x2\x4B7\x4B8\x5\x126\x94\x2\x4B8\x4BA\a\x1D\x2\x2\x4B9\x4BB\x5\x126"+ + "\x94\x2\x4BA\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2"+ + "\x2\x4BC\x4BE\a\xE2\x2\x2\x4BD\x4BF\x5\x126\x94\x2\x4BE\x4BD\x3\x2\x2"+ + "\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF\x4C0\x3\x2\x2\x2\x4C0\x4C1\x5\xBC_\x2\x4C1"+ + "\x4C3\x3\x2\x2\x2\x4C2\x4B7\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3y\x3"+ + "\x2\x2\x2\x4C4\x4D1\x5|?\x2\x4C5\x4C7\x5\x126\x94\x2\x4C6\x4C5\x3\x2\x2"+ + "\x2\x4C6\x4C7\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\t\n\x2\x2\x4C9"+ + "\x4CB\x5\x126\x94\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB"+ + "\x4CD\x3\x2\x2\x2\x4CC\x4CE\x5|?\x2\x4CD\x4CC\x3\x2\x2\x2\x4CD\x4CE\x3"+ + "\x2\x2\x2\x4CE\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3\x2\x2\x2\x4D0\x4D3\x3\x2"+ + "\x2\x2\x4D1\x4CF\x3\x2\x2\x2\x4D1\x4D2\x3\x2\x2\x2\x4D2\x4E6\x3\x2\x2"+ + "\x2\x4D3\x4D1\x3\x2\x2\x2\x4D4\x4D6\x5|?\x2\x4D5\x4D4\x3\x2\x2\x2\x4D5"+ + "\x4D6\x3\x2\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9\x5\x126\x94\x2\x4D8"+ + "\x4D7\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DC"+ + "\t\n\x2\x2\x4DB\x4DD\x5\x126\x94\x2\x4DC\x4DB\x3\x2\x2\x2\x4DC\x4DD\x3"+ + "\x2\x2\x2\x4DD\x4DF\x3\x2\x2\x2\x4DE\x4E0\x5|?\x2\x4DF\x4DE\x3\x2\x2\x2"+ + "\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1\x4D8\x3\x2\x2\x2\x4E2"+ + "\x4E3\x3\x2\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2\x2\x4E4\x4E6"+ + "\x3\x2\x2\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3\x2\x2\x2\x4E6{\x3\x2\x2"+ + "\x2\x4E7\x4F9\x5\xBC_\x2\x4E8\x4F6\t\v\x2\x2\x4E9\x4EB\x5\x126\x94\x2"+ + "\x4EA\x4E9\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC"+ + "\x4EE\a\xE6\x2\x2\x4ED\x4EF\x5\x126\x94\x2\x4EE\x4ED\x3\x2\x2\x2\x4EE"+ + "\x4EF\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2\x5\xE8u\x2\x4F1\x4F3"+ + "\x5\x126\x94\x2\x4F2\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F4"+ + "\x3\x2\x2\x2\x4F4\x4F5\a\xED\x2\x2\x4F5\x4F7\x3\x2\x2\x2\x4F6\x4EA\x3"+ + "\x2\x2\x2\x4F6\x4F7\x3\x2\x2\x2\x4F7\x4F9\x3\x2\x2\x2\x4F8\x4E7\x3\x2"+ + "\x2\x2\x4F8\x4E8\x3\x2\x2\x2\x4F9}\x3\x2\x2\x2\x4FA\x4FB\a\xA8\x2\x2\x4FB"+ + "\x4FC\x5\x126\x94\x2\x4FC\x4FE\x5\xD0i\x2\x4FD\x4FF\x5\x126\x94\x2\x4FE"+ + "\x4FD\x3\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500\x505"+ + "\a)\x2\x2\x501\x503\x5\x126\x94\x2\x502\x501\x3\x2\x2\x2\x502\x503\x3"+ + "\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x506\x5z>\x2\x505\x502\x3\x2\x2\x2"+ + "\x505\x506\x3\x2\x2\x2\x506\x7F\x3\x2\x2\x2\x507\x508\x5\x110\x89\x2\x508"+ + "\x509\x5\x126\x94\x2\x509\x50B\x3\x2\x2\x2\x50A\x507\x3\x2\x2\x2\x50A"+ + "\x50B\x3\x2\x2\x2\x50B\x50E\x3\x2\x2\x2\x50C\x50D\a\xC6\x2\x2\x50D\x50F"+ + "\x5\x126\x94\x2\x50E\x50C\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510"+ + "\x3\x2\x2\x2\x510\x511\a\xAA\x2\x2\x511\x512\x5\x126\x94\x2\x512\x514"+ + "\x5\xF8}\x2\x513\x515\x5\x10E\x88\x2\x514\x513\x3\x2\x2\x2\x514\x515\x3"+ + "\x2\x2\x2\x515\x51A\x3\x2\x2\x2\x516\x518\x5\x126\x94\x2\x517\x516\x3"+ + "\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2\x2\x519\x51B\x5\xEE"+ + "x\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51F\x3\x2\x2\x2"+ + "\x51C\x51D\x5\x126\x94\x2\x51D\x51E\x5\xFA~\x2\x51E\x520\x3\x2\x2\x2\x51F"+ + "\x51C\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\x3\x2\x2\x2\x521\x523"+ + "\x5\x116\x8C\x2\x522\x524\x5\x1A\xE\x2\x523\x522\x3\x2\x2\x2\x523\x524"+ + "\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526\a\x64\x2\x2\x526\x81\x3\x2"+ + "\x2\x2\x527\x528\x5\x110\x89\x2\x528\x529\x5\x126\x94\x2\x529\x52B\x3"+ + "\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52E\x3\x2"+ + "\x2\x2\x52C\x52D\a\xC6\x2\x2\x52D\x52F\x5\x126\x94\x2\x52E\x52C\x3\x2"+ + "\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531\a\xAC\x2"+ + "\x2\x531\x532\x5\x126\x94\x2\x532\x537\x5\xF8}\x2\x533\x535\x5\x126\x94"+ + "\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2\x535\x536\x3\x2\x2\x2"+ + "\x536\x538\x5\xEEx\x2\x537\x534\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2\x538"+ + "\x539\x3\x2\x2\x2\x539\x53B\x5\x116\x8C\x2\x53A\x53C\x5\x1A\xE\x2\x53B"+ + "\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D\x3\x2\x2\x2\x53D\x53E"+ + "\a\x64\x2\x2\x53E\x83\x3\x2\x2\x2\x53F\x540\x5\x110\x89\x2\x540\x541\x5"+ + "\x126\x94\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2\x2\x2\x542\x543\x3"+ + "\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xC6\x2\x2\x545\x547\x5\x126"+ + "\x94\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2"+ + "\x2\x548\x549\a\xAB\x2\x2\x549\x54A\x5\x126\x94\x2\x54A\x54F\x5\xF8}\x2"+ + "\x54B\x54D\x5\x126\x94\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2\x2\x2"+ + "\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xEEx\x2\x54F\x54C\x3\x2\x2\x2\x54F"+ + "\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553\x5\x116\x8C\x2\x552"+ + "\x554\x5\x1A\xE\x2\x553\x552\x3\x2\x2\x2\x553\x554\x3\x2\x2\x2\x554\x555"+ + "\x3\x2\x2\x2\x555\x556\a\x64\x2\x2\x556\x85\x3\x2\x2\x2\x557\x558\a\xAF"+ + "\x2\x2\x558\x559\x5\x126\x94\x2\x559\x55B\x5\xD0i\x2\x55A\x55C\x5\x126"+ + "\x94\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x55D\x3\x2\x2"+ + "\x2\x55D\x55F\a)\x2\x2\x55E\x560\x5\x126\x94\x2\x55F\x55E\x3\x2\x2\x2"+ + "\x55F\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561\x563\x5\xBC_\x2\x562"+ + "\x561\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565\x3\x2\x2\x2\x564\x566"+ + "\x5\x126\x94\x2\x565\x564\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2\x566\x567"+ + "\x3\x2\x2\x2\x567\x569\a)\x2\x2\x568\x56A\x5\x126\x94\x2\x569\x568\x3"+ + "\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2\x2\x56B\x56C\x5\xBC"+ + "_\x2\x56C\x87\x3\x2\x2\x2\x56D\x56E\a\xB2\x2\x2\x56E\x56F\x5\x126\x94"+ + "\x2\x56F\x57E\x5\xF8}\x2\x570\x572\x5\x126\x94\x2\x571\x570\x3\x2\x2\x2"+ + "\x571\x572\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575\a\xE6\x2\x2\x574"+ + "\x576\x5\x126\x94\x2\x575\x574\x3\x2\x2\x2\x575\x576\x3\x2\x2\x2\x576"+ + "\x57B\x3\x2\x2\x2\x577\x579\x5\xE8u\x2\x578\x57A\x5\x126\x94\x2\x579\x578"+ + "\x3\x2\x2\x2\x579\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2\x2\x57B\x577\x3"+ + "\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x57F\a\xED"+ + "\x2\x2\x57E\x571\x3\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F\x89\x3\x2\x2\x2"+ + "\x580\x584\a\xB1\x2\x2\x581\x582\x5\x126\x94\x2\x582\x583\x5\xBC_\x2\x583"+ + "\x585\x3\x2\x2\x2\x584\x581\x3\x2\x2\x2\x584\x585\x3\x2\x2\x2\x585\x8B"+ + "\x3\x2\x2\x2\x586\x587\a\xB5\x2\x2\x587\x58A\x5\x126\x94\x2\x588\x589"+ + "\a\xA7\x2\x2\x589\x58B\x5\x126\x94\x2\x58A\x588\x3\x2\x2\x2\x58A\x58B"+ + "\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x597\x5\x8EH\x2\x58D\x58F\x5\x126"+ + "\x94\x2\x58E\x58D\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F\x590\x3\x2\x2"+ + "\x2\x590\x592\a)\x2\x2\x591\x593\x5\x126\x94\x2\x592\x591\x3\x2\x2\x2"+ + "\x592\x593\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594\x596\x5\x8EH\x2\x595"+ + "\x58E\x3\x2\x2\x2\x596\x599\x3\x2\x2\x2\x597\x595\x3\x2\x2\x2\x597\x598"+ + "\x3\x2\x2\x2\x598\x8D\x3\x2\x2\x2\x599\x597\x3\x2\x2\x2\x59A\x59C\x5\xDC"+ + "o\x2\x59B\x59D\x5\x126\x94\x2\x59C\x59B\x3\x2\x2\x2\x59C\x59D\x3\x2\x2"+ + "\x2\x59D\x59E\x3\x2\x2\x2\x59E\x5A0\a\xE6\x2\x2\x59F\x5A1\x5\x126\x94"+ + "\x2\x5A0\x59F\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x3\x2\x2\x2"+ + "\x5A2\x5A4\x5\xF4{\x2\x5A3\x5A5\x5\x126\x94\x2\x5A4\x5A3\x3\x2\x2\x2\x5A4"+ + "\x5A5\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2\x5A6\x5AA\a\xED\x2\x2\x5A7\x5A8"+ + "\x5\x126\x94\x2\x5A8\x5A9\x5\xFA~\x2\x5A9\x5AB\x3\x2\x2\x2\x5AA\x5A7\x3"+ + "\x2\x2\x2\x5AA\x5AB\x3\x2\x2\x2\x5AB\x8F\x3\x2\x2\x2\x5AC\x5AD\a\xB7\x2"+ + "\x2\x5AD\x91\x3\x2\x2\x2\x5AE\x5B4\a\xB8\x2\x2\x5AF\x5B2\x5\x126\x94\x2"+ + "\x5B0\x5B3\a\x96\x2\x2\x5B1\x5B3\x5\xF8}\x2\x5B2\x5B0\x3\x2\x2\x2\x5B2"+ + "\x5B1\x3\x2\x2\x2\x5B3\x5B5\x3\x2\x2\x2\x5B4\x5AF\x3\x2\x2\x2\x5B4\x5B5"+ + "\x3\x2\x2\x2\x5B5\x93\x3\x2\x2\x2\x5B6\x5B7\a\xB9\x2\x2\x5B7\x95\x3\x2"+ + "\x2\x2\x5B8\x5B9\a\xBA\x2\x2\x5B9\x5BA\x5\x126\x94\x2\x5BA\x5BB\x5\xBC"+ + "_\x2\x5BB\x97\x3\x2\x2\x2\x5BC\x5BD\a\xBB\x2\x2\x5BD\x5BE\x5\x126\x94"+ + "\x2\x5BE\x5C0\x5\xDCo\x2\x5BF\x5C1\x5\x126\x94\x2\x5C0\x5BF\x3\x2\x2\x2"+ + "\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C4\a\xE2\x2\x2\x5C3"+ + "\x5C5\x5\x126\x94\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5"+ + "\x5C6\x3\x2\x2\x2\x5C6\x5C7\x5\xBC_\x2\x5C7\x99\x3\x2\x2\x2\x5C8\x5C9"+ + "\a\xBC\x2\x2\x5C9\x5CA\x5\x126\x94\x2\x5CA\x5CC\x5\xBC_\x2\x5CB\x5CD\x5"+ + "\x126\x94\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CE\x3"+ + "\x2\x2\x2\x5CE\x5D0\a)\x2\x2\x5CF\x5D1\x5\x126\x94\x2\x5D0\x5CF\x3\x2"+ + "\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x5\xBC_\x2"+ + "\x5D3\x9B\x3\x2\x2\x2\x5D4\x5D5\a\xBD\x2\x2\x5D5\x5D6\x5\x126\x94\x2\x5D6"+ + "\x5D8\x5\xBC_\x2\x5D7\x5D9\x5\x126\x94\x2\x5D8\x5D7\x3\x2\x2\x2\x5D8\x5D9"+ + "\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DC\a)\x2\x2\x5DB\x5DD\x5\x126"+ + "\x94\x2\x5DC\x5DB\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DE\x3\x2\x2"+ + "\x2\x5DE\x5E0\x5\xBC_\x2\x5DF\x5E1\x5\x126\x94\x2\x5E0\x5DF\x3\x2\x2\x2"+ + "\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E4\a)\x2\x2\x5E3\x5E5"+ + "\x5\x126\x94\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5\x3\x2\x2\x2\x5E5\x5E6"+ + "\x3\x2\x2\x2\x5E6\x5E8\x5\xBC_\x2\x5E7\x5E9\x5\x126\x94\x2\x5E8\x5E7\x3"+ + "\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2\x2\x5EA\x5EC\a)\x2"+ + "\x2\x5EB\x5ED\x5\x126\x94\x2\x5EC\x5EB\x3\x2\x2\x2\x5EC\x5ED\x3\x2\x2"+ + "\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x5\xBC_\x2\x5EF\x9D\x3\x2\x2\x2\x5F0"+ + "\x5F1\a\xBE\x2\x2\x5F1\x5F2\x5\x126\x94\x2\x5F2\x5F4\x5\xD0i\x2\x5F3\x5F5"+ + "\x5\x126\x94\x2\x5F4\x5F3\x3\x2\x2\x2\x5F4\x5F5\x3\x2\x2\x2\x5F5\x5F6"+ + "\x3\x2\x2\x2\x5F6\x5F8\a)\x2\x2\x5F7\x5F9\x5\x126\x94\x2\x5F8\x5F7\x3"+ + "\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB\x5\xBC"+ + "_\x2\x5FB\x9F\x3\x2\x2\x2\x5FC\x5FD\a\xBF\x2\x2\x5FD\x5FE\x5\x126\x94"+ + "\x2\x5FE\x5FF\a\x43\x2\x2\x5FF\x600\x5\x126\x94\x2\x600\x601\x5\xBC_\x2"+ + "\x601\x605\x5\x116\x8C\x2\x602\x604\x5\xA4S\x2\x603\x602\x3\x2\x2\x2\x604"+ + "\x607\x3\x2\x2\x2\x605\x603\x3\x2\x2\x2\x605\x606\x3\x2\x2\x2\x606\x608"+ + "\x3\x2\x2\x2\x607\x605\x3\x2\x2\x2\x608\x609\a\x65\x2\x2\x609\xA1\x3\x2"+ + "\x2\x2\x60A\x60C\a\x82\x2\x2\x60B\x60D\x5\x126\x94\x2\x60C\x60B\x3\x2"+ + "\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x610\x5\xFE\x80"+ + "\x2\x60F\x611\x5\x126\x94\x2\x610\x60F\x3\x2\x2\x2\x610\x611\x3\x2\x2"+ + "\x2\x611\x612\x3\x2\x2\x2\x612\x613\x5\xBC_\x2\x613\x61C\x3\x2\x2\x2\x614"+ + "\x615\x5\xBC_\x2\x615\x616\x5\x126\x94\x2\x616\x617\a\xCF\x2\x2\x617\x618"+ + "\x5\x126\x94\x2\x618\x619\x5\xBC_\x2\x619\x61C\x3\x2\x2\x2\x61A\x61C\x5"+ + "\xBC_\x2\x61B\x60A\x3\x2\x2\x2\x61B\x614\x3\x2\x2\x2\x61B\x61A\x3\x2\x2"+ + "\x2\x61C\xA3\x3\x2\x2\x2\x61D\x61E\a\x43\x2\x2\x61E\x61F\x5\x126\x94\x2"+ + "\x61F\x620\x5\xA6T\x2\x620\x622\x5\x116\x8C\x2\x621\x623\x5\x1A\xE\x2"+ + "\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\xA5\x3\x2\x2\x2\x624"+ + "\x634\a^\x2\x2\x625\x630\x5\xA2R\x2\x626\x628\x5\x126\x94\x2\x627\x626"+ + "\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B\a)"+ + "\x2\x2\x62A\x62C\x5\x126\x94\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C\x3\x2"+ + "\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x62F\x5\xA2R\x2\x62E\x627\x3\x2\x2\x2"+ + "\x62F\x632\x3\x2\x2\x2\x630\x62E\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631"+ + "\x634\x3\x2\x2\x2\x632\x630\x3\x2\x2\x2\x633\x624\x3\x2\x2\x2\x633\x625"+ + "\x3\x2\x2\x2\x634\xA7\x3\x2\x2\x2\x635\x636\a\xC0\x2\x2\x636\x637\x5\x126"+ + "\x94\x2\x637\x640\x5\xBC_\x2\x638\x63A\x5\x126\x94\x2\x639\x638\x3\x2"+ + "\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a)\x2\x2"+ + "\x63C\x63E\x5\x126\x94\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2"+ + "\x63E\x63F\x3\x2\x2\x2\x63F\x641\x5\xBC_\x2\x640\x639\x3\x2\x2\x2\x640"+ + "\x641\x3\x2\x2\x2\x641\xA9\x3\x2\x2\x2\x642\x643\a\xC2\x2\x2\x643\x644"+ + "\x5\x126\x94\x2\x644\x646\x5\xBC_\x2\x645\x647\x5\x126\x94\x2\x646\x645"+ + "\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x64A\a)"+ + "\x2\x2\x649\x64B\x5\x126\x94\x2\x64A\x649\x3\x2\x2\x2\x64A\x64B\x3\x2"+ + "\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x5\xBC_\x2\x64D\xAB\x3\x2\x2\x2"+ + "\x64E\x64F\a\xC1\x2\x2\x64F\x650\x5\x126\x94\x2\x650\x652\x5\xDCo\x2\x651"+ + "\x653\x5\x126\x94\x2\x652\x651\x3\x2\x2\x2\x652\x653\x3\x2\x2\x2\x653"+ + "\x654\x3\x2\x2\x2\x654\x656\a\xE2\x2\x2\x655\x657\x5\x126\x94\x2\x656"+ + "\x655\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\x658\x3\x2\x2\x2\x658\x659"+ + "\x5\xBC_\x2\x659\xAD\x3\x2\x2\x2\x65A\x65B\a\xC8\x2\x2\x65B\xAF\x3\x2"+ + "\x2\x2\x65C\x65D\x5\x110\x89\x2\x65D\x65E\x5\x126\x94\x2\x65E\x660\x3"+ + "\x2\x2\x2\x65F\x65C\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x663\x3\x2"+ + "\x2\x2\x661\x662\a\xC6\x2\x2\x662\x664\x5\x126\x94\x2\x663\x661\x3\x2"+ + "\x2\x2\x663\x664\x3\x2\x2\x2\x664\x665\x3\x2\x2\x2\x665\x667\a\xCA\x2"+ + "\x2\x666\x668\x5\x126\x94\x2\x667\x666\x3\x2\x2\x2\x667\x668\x3\x2\x2"+ + "\x2\x668\x669\x3\x2\x2\x2\x669\x66E\x5\xF8}\x2\x66A\x66C\x5\x126\x94\x2"+ + "\x66B\x66A\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D"+ + "\x66F\x5\xEEx\x2\x66E\x66B\x3\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F\x670"+ + "\x3\x2\x2\x2\x670\x672\x5\x116\x8C\x2\x671\x673\x5\x1A\xE\x2\x672\x671"+ + "\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675\a\x66"+ + "\x2\x2\x675\xB1\x3\x2\x2\x2\x676\x678\a\xCE\x2\x2\x677\x679\x5\x126\x94"+ + "\x2\x678\x677\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x67A\x3\x2\x2\x2"+ + "\x67A\x67C\a\xE2\x2\x2\x67B\x67D\x5\x126\x94\x2\x67C\x67B\x3\x2\x2\x2"+ + "\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x5\xBC_\x2\x67F"+ + "\xB3\x3\x2\x2\x2\x680\x681\x5\x110\x89\x2\x681\x682\x5\x126\x94\x2\x682"+ + "\x684\x3\x2\x2\x2\x683\x680\x3\x2\x2\x2\x683\x684\x3\x2\x2\x2\x684\x685"+ + "\x3\x2\x2\x2\x685\x686\a\xD1\x2\x2\x686\x687\x5\x126\x94\x2\x687\x688"+ + "\x5\xF8}\x2\x688\x68C\x5\x116\x8C\x2\x689\x68B\x5\xB6\\\x2\x68A\x689\x3"+ + "\x2\x2\x2\x68B\x68E\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2\x68C\x68D\x3\x2"+ + "\x2\x2\x68D\x68F\x3\x2\x2\x2\x68E\x68C\x3\x2\x2\x2\x68F\x690\ag\x2\x2"+ + "\x690\xB5\x3\x2\x2\x2\x691\x6A0\x5\xF8}\x2\x692\x694\x5\x126\x94\x2\x693"+ + "\x692\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x695\x3\x2\x2\x2\x695\x69A"+ + "\a\xE6\x2\x2\x696\x698\x5\x126\x94\x2\x697\x696\x3\x2\x2\x2\x697\x698"+ + "\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69B\x5\xF4{\x2\x69A\x697\x3\x2"+ + "\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69D\x3\x2\x2\x2\x69C\x69E\x5\x126\x94"+ + "\x2\x69D\x69C\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2\x69E\x69F\x3\x2\x2\x2"+ + "\x69F\x6A1\a\xED\x2\x2\x6A0\x693\x3\x2\x2\x2\x6A0\x6A1\x3\x2\x2\x2\x6A1"+ + "\x6A5\x3\x2\x2\x2\x6A2\x6A3\x5\x126\x94\x2\x6A3\x6A4\x5\xFA~\x2\x6A4\x6A6"+ + "\x3\x2\x2\x2\x6A5\x6A2\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A7\x3"+ + "\x2\x2\x2\x6A7\x6A8\x5\x116\x8C\x2\x6A8\xB7\x3\x2\x2\x2\x6A9\x6AA\a\xD3"+ + "\x2\x2\x6AA\x6AB\x5\x126\x94\x2\x6AB\x6AC\x5\xBC_\x2\x6AC\xB9\x3\x2\x2"+ + "\x2\x6AD\x6AE\a\xD4\x2\x2\x6AE\x6AF\x5\x126\x94\x2\x6AF\x6BF\x5\xD0i\x2"+ + "\x6B0\x6B2\x5\x126\x94\x2\x6B1\x6B0\x3\x2\x2\x2\x6B1\x6B2\x3\x2\x2\x2"+ + "\x6B2\x6B3\x3\x2\x2\x2\x6B3\x6B5\a)\x2\x2\x6B4\x6B6\x5\x126\x94\x2\x6B5"+ + "\x6B4\x3\x2\x2\x2\x6B5\x6B6\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2\x2\x6B7\x6BD"+ + "\x5\xBC_\x2\x6B8\x6B9\x5\x126\x94\x2\x6B9\x6BA\a\xCF\x2\x2\x6BA\x6BB\x5"+ + "\x126\x94\x2\x6BB\x6BC\x5\xBC_\x2\x6BC\x6BE\x3\x2\x2\x2\x6BD\x6B8\x3\x2"+ + "\x2\x2\x6BD\x6BE\x3\x2\x2\x2\x6BE\x6C0\x3\x2\x2\x2\x6BF\x6B1\x3\x2\x2"+ + "\x2\x6BF\x6C0\x3\x2\x2\x2\x6C0\xBB\x3\x2\x2\x2\x6C1\x6C2\b_\x1\x2\x6C2"+ + "\x6C4\a\x97\x2\x2\x6C3\x6C5\x5\x126\x94\x2\x6C4\x6C3\x3\x2\x2\x2\x6C4"+ + "\x6C5\x3\x2\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6EF\x5\xBC_\x15\x6C7\x6C9"+ + "\a\x34\x2\x2\x6C8\x6CA\x5\x126\x94\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA"+ + "\x3\x2\x2\x2\x6CA\x6CB\x3\x2\x2\x2\x6CB\x6EF\x5\xBC_\x12\x6CC\x6CE\x5"+ + "\xDCo\x2\x6CD\x6CF\x5\x126\x94\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2"+ + "\x2\x2\x6CF\x6D0\x3\x2\x2\x2\x6D0\x6D2\a\xDF\x2\x2\x6D1\x6D3\x5\x126\x94"+ + "\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2"+ + "\x6D4\x6D5\x5\xBC_\x11\x6D5\x6EF\x3\x2\x2\x2\x6D6\x6D8\a\xE8\x2\x2\x6D7"+ + "\x6D9\x5\x126\x94\x2\x6D8\x6D7\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9"+ + "\x6DA\x3\x2\x2\x2\x6DA\x6EF\x5\xBC_\xF\x6DB\x6DD\a\x98\x2\x2\x6DC\x6DE"+ + "\x5\x126\x94\x2\x6DD\x6DC\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6DF"+ + "\x3\x2\x2\x2\x6DF\x6EF\x5\xBC_\b\x6E0\x6EF\x5\x108\x85\x2\x6E1\x6EF\x5"+ + "\xDCo\x2\x6E2\x6E4\a\xE6\x2\x2\x6E3\x6E5\x5\x126\x94\x2\x6E4\x6E3\x3\x2"+ + "\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2\x6E6\x6E8\x5\xBC_\x2"+ + "\x6E7\x6E9\x5\x126\x94\x2\x6E8\x6E7\x3\x2\x2\x2\x6E8\x6E9\x3\x2\x2\x2"+ + "\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\a\xED\x2\x2\x6EB\x6EF\x3\x2\x2\x2\x6EC"+ + "\x6EF\x5\xBE`\x2\x6ED\x6EF\x5l\x37\x2\x6EE\x6C1\x3\x2\x2\x2\x6EE\x6C7"+ + "\x3\x2\x2\x2\x6EE\x6CC\x3\x2\x2\x2\x6EE\x6D6\x3\x2\x2\x2\x6EE\x6DB\x3"+ + "\x2\x2\x2\x6EE\x6E0\x3\x2\x2\x2\x6EE\x6E1\x3\x2\x2\x2\x6EE\x6E2\x3\x2"+ + "\x2\x2\x6EE\x6EC\x3\x2\x2\x2\x6EE\x6ED\x3\x2\x2\x2\x6EF\x75E\x3\x2\x2"+ + "\x2\x6F0\x6F2\f\x10\x2\x2\x6F1\x6F3\x5\x126\x94\x2\x6F2\x6F1\x3\x2\x2"+ + "\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a\xEC\x2\x2"+ + "\x6F5\x6F7\x5\x126\x94\x2\x6F6\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2"+ + "\x6F7\x6F8\x3\x2\x2\x2\x6F8\x75D\x5\xBC_\x11\x6F9\x6FB\f\xE\x2\x2\x6FA"+ + "\x6FC\x5\x126\x94\x2\x6FB\x6FA\x3\x2\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC"+ + "\x6FD\x3\x2\x2\x2\x6FD\x6FF\t\f\x2\x2\x6FE\x700\x5\x126\x94\x2\x6FF\x6FE"+ + "\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x75D\x5"+ + "\xBC_\xF\x702\x704\f\r\x2\x2\x703\x705\x5\x126\x94\x2\x704\x703\x3\x2"+ + "\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706\x3\x2\x2\x2\x706\x708\a\xE1\x2"+ + "\x2\x707\x709\x5\x126\x94\x2\x708\x707\x3\x2\x2\x2\x708\x709\x3\x2\x2"+ + "\x2\x709\x70A\x3\x2\x2\x2\x70A\x75D\x5\xBC_\xE\x70B\x70D\f\f\x2\x2\x70C"+ + "\x70E\x5\x126\x94\x2\x70D\x70C\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E"+ + "\x70F\x3\x2\x2\x2\x70F\x711\a\x94\x2\x2\x710\x712\x5\x126\x94\x2\x711"+ + "\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3\x2\x2\x2\x713\x75D"+ + "\x5\xBC_\r\x714\x716\f\v\x2\x2\x715\x717\x5\x126\x94\x2\x716\x715\x3\x2"+ + "\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2\x718\x71A\t\r\x2\x2"+ + "\x719\x71B\x5\x126\x94\x2\x71A\x719\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2"+ + "\x71B\x71C\x3\x2\x2\x2\x71C\x75D\x5\xBC_\f\x71D\x71F\f\n\x2\x2\x71E\x720"+ + "\x5\x126\x94\x2\x71F\x71E\x3\x2\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x721"+ + "\x3\x2\x2\x2\x721\x723\a\x32\x2\x2\x722\x724\x5\x126\x94\x2\x723\x722"+ + "\x3\x2\x2\x2\x723\x724\x3\x2\x2\x2\x724\x725\x3\x2\x2\x2\x725\x75D\x5"+ + "\xBC_\v\x726\x728\f\t\x2\x2\x727\x729\x5\x126\x94\x2\x728\x727\x3\x2\x2"+ + "\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72C\t\xE\x2\x2\x72B"+ + "\x72D\x5\x126\x94\x2\x72C\x72B\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D"+ + "\x72E\x3\x2\x2\x2\x72E\x75D\x5\xBC_\n\x72F\x731\f\a\x2\x2\x730\x732\x5"+ + "\x126\x94\x2\x731\x730\x3\x2\x2\x2\x731\x732\x3\x2\x2\x2\x732\x733\x3"+ + "\x2\x2\x2\x733\x735\a\x36\x2\x2\x734\x736\x5\x126\x94\x2\x735\x734\x3"+ + "\x2\x2\x2\x735\x736\x3\x2\x2\x2\x736\x737\x3\x2\x2\x2\x737\x75D\x5\xBC"+ + "_\b\x738\x73A\f\x6\x2\x2\x739\x73B\x5\x126\x94\x2\x73A\x739\x3\x2\x2\x2"+ + "\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C\x73E\a\xA4\x2\x2\x73D"+ + "\x73F\x5\x126\x94\x2\x73E\x73D\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F"+ + "\x740\x3\x2\x2\x2\x740\x75D\x5\xBC_\a\x741\x743\f\x5\x2\x2\x742\x744\x5"+ + "\x126\x94\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x745\x3"+ + "\x2\x2\x2\x745\x747\a\xDE\x2\x2\x746\x748\x5\x126\x94\x2\x747\x746\x3"+ + "\x2\x2\x2\x747\x748\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2\x749\x75D\x5\xBC"+ + "_\x6\x74A\x74C\f\x4\x2\x2\x74B\x74D\x5\x126\x94\x2\x74C\x74B\x3\x2\x2"+ + "\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x750\ak\x2\x2\x74F"+ + "\x751\x5\x126\x94\x2\x750\x74F\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751"+ + "\x752\x3\x2\x2\x2\x752\x75D\x5\xBC_\x5\x753\x755\f\x3\x2\x2\x754\x756"+ + "\x5\x126\x94\x2\x755\x754\x3\x2\x2\x2\x755\x756\x3\x2\x2\x2\x756\x757"+ + "\x3\x2\x2\x2\x757\x759\a~\x2\x2\x758\x75A\x5\x126\x94\x2\x759\x758\x3"+ + "\x2\x2\x2\x759\x75A\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x75D\x5\xBC"+ + "_\x4\x75C\x6F0\x3\x2\x2\x2\x75C\x6F9\x3\x2\x2\x2\x75C\x702\x3\x2\x2\x2"+ + "\x75C\x70B\x3\x2\x2\x2\x75C\x714\x3\x2\x2\x2\x75C\x71D\x3\x2\x2\x2\x75C"+ + "\x726\x3\x2\x2\x2\x75C\x72F\x3\x2\x2\x2\x75C\x738\x3\x2\x2\x2\x75C\x741"+ + "\x3\x2\x2\x2\x75C\x74A\x3\x2\x2\x2\x75C\x753\x3\x2\x2\x2\x75D\x760\x3"+ + "\x2\x2\x2\x75E\x75C\x3\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\xBD\x3\x2\x2"+ + "\x2\x760\x75E\x3\x2\x2\x2\x761\x762\a\xD2\x2\x2\x762\x763\x5\x126\x94"+ + "\x2\x763\x769\x5\xBC_\x2\x764\x765\x5\x126\x94\x2\x765\x766\a\x82\x2\x2"+ + "\x766\x767\x5\x126\x94\x2\x767\x768\x5\x10C\x87\x2\x768\x76A\x3\x2\x2"+ + "\x2\x769\x764\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\xBF\x3\x2\x2\x2\x76B"+ + "\x76F\aZ\x2\x2\x76C\x76F\a\xC6\x2\x2\x76D\x76F\x5\x110\x89\x2\x76E\x76B"+ + "\x3\x2\x2\x2\x76E\x76C\x3\x2\x2\x2\x76E\x76D\x3\x2\x2\x2\x76F\x770\x3"+ + "\x2\x2\x2\x770\x773\x5\x126\x94\x2\x771\x772\a\xDC\x2\x2\x772\x774\x5"+ + "\x126\x94\x2\x773\x771\x3\x2\x2\x2\x773\x774\x3\x2\x2\x2\x774\x775\x3"+ + "\x2\x2\x2\x775\x776\x5\xC2\x62\x2\x776\xC1\x3\x2\x2\x2\x777\x782\x5\xC4"+ + "\x63\x2\x778\x77A\x5\x126\x94\x2\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2"+ + "\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77D\a)\x2\x2\x77C\x77E\x5\x126\x94"+ + "\x2\x77D\x77C\x3\x2\x2\x2\x77D\x77E\x3\x2\x2\x2\x77E\x77F\x3\x2\x2\x2"+ + "\x77F\x781\x5\xC4\x63\x2\x780\x779\x3\x2\x2\x2\x781\x784\x3\x2\x2\x2\x782"+ + "\x780\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\xC3\x3\x2\x2\x2\x784\x782"+ + "\x3\x2\x2\x2\x785\x797\x5\xF8}\x2\x786\x788\x5\x126\x94\x2\x787\x786\x3"+ + "\x2\x2\x2\x787\x788\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x78B\a\xE6"+ + "\x2\x2\x78A\x78C\x5\x126\x94\x2\x78B\x78A\x3\x2\x2\x2\x78B\x78C\x3\x2"+ + "\x2\x2\x78C\x791\x3\x2\x2\x2\x78D\x78F\x5\xF4{\x2\x78E\x790\x5\x126\x94"+ + "\x2\x78F\x78E\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790\x792\x3\x2\x2\x2"+ + "\x791\x78D\x3\x2\x2\x2\x791\x792\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793"+ + "\x795\a\xED\x2\x2\x794\x796\x5\x126\x94\x2\x795\x794\x3\x2\x2\x2\x795"+ + "\x796\x3\x2\x2\x2\x796\x798\x3\x2\x2\x2\x797\x787\x3\x2\x2\x2\x797\x798"+ + "\x3\x2\x2\x2\x798\x79A\x3\x2\x2\x2\x799\x79B\x5\x10E\x88\x2\x79A\x799"+ + "\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79F\x3\x2\x2\x2\x79C\x79D\x5"+ + "\x126\x94\x2\x79D\x79E\x5\xFA~\x2\x79E\x7A0\x3\x2\x2\x2\x79F\x79C\x3\x2"+ + "\x2\x2\x79F\x7A0\x3\x2\x2\x2\x7A0\xC5\x3\x2\x2\x2\x7A1\x7A2\a\xD9\x2\x2"+ + "\x7A2\x7A3\x5\x126\x94\x2\x7A3\x7A4\x5\xBC_\x2\x7A4\x7A6\x5\x116\x8C\x2"+ + "\x7A5\x7A7\x5\x1A\xE\x2\x7A6\x7A5\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7"+ + "\x7A8\x3\x2\x2\x2\x7A8\x7A9\a\xD8\x2\x2\x7A9\xC7\x3\x2\x2\x2\x7AA\x7AB"+ + "\a\xDA\x2\x2\x7AB\x7AC\x5\x126\x94\x2\x7AC\x7AE\x5\xD0i\x2\x7AD\x7AF\x5"+ + "\x126\x94\x2\x7AE\x7AD\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x3"+ + "\x2\x2\x2\x7B0\x7B2\a)\x2\x2\x7B1\x7B3\x5\x126\x94\x2\x7B2\x7B1\x3\x2"+ + "\x2\x2\x7B2\x7B3\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B5\x5\xBC_\x2"+ + "\x7B5\xC9\x3\x2\x2\x2\x7B6\x7B7\a\xDB\x2\x2\x7B7\x7B8\x5\x126\x94\x2\x7B8"+ + "\x7B9\x5\xCCg\x2\x7B9\x7BB\x5\x116\x8C\x2\x7BA\x7BC\x5\x1A\xE\x2\x7BB"+ + "\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BE"+ + "\ah\x2\x2\x7BE\xCB\x3\x2\x2\x2\x7BF\x7C5\x5\xDCo\x2\x7C0\x7C1\a\x97\x2"+ + "\x2\x7C1\x7C2\x5\x126\x94\x2\x7C2\x7C3\x5\x10C\x87\x2\x7C3\x7C5\x3\x2"+ + "\x2\x2\x7C4\x7BF\x3\x2\x2\x2\x7C4\x7C0\x3\x2\x2\x2\x7C5\xCD\x3\x2\x2\x2"+ + "\x7C6\x7C7\a\xDD\x2\x2\x7C7\x7C8\x5\x126\x94\x2\x7C8\x7CA\x5\xD0i\x2\x7C9"+ + "\x7CB\x5\x126\x94\x2\x7CA\x7C9\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB"+ + "\x7CC\x3\x2\x2\x2\x7CC\x7D1\a)\x2\x2\x7CD\x7CF\x5\x126\x94\x2\x7CE\x7CD"+ + "\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0\x7D2\x5"+ + "z>\x2\x7D1\x7CE\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\xCF\x3\x2\x2\x2"+ + "\x7D3\x7D5\a.\x2\x2\x7D4\x7D3\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D6"+ + "\x3\x2\x2\x2\x7D6\x7D7\x5\xBC_\x2\x7D7\xD1\x3\x2\x2\x2\x7D8\x7D9\a\x42"+ + "\x2\x2\x7D9\x7DA\x5\x126\x94\x2\x7DA\x7DB\x5\xD4k\x2\x7DB\xD3\x3\x2\x2"+ + "\x2\x7DC\x7DE\x5\xDCo\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE"+ + "\x7DF\x3\x2\x2\x2\x7DF\x7E0\a-\x2\x2\x7E0\x7E2\x5\xF8}\x2\x7E1\x7E3\x5"+ + "\x10E\x88\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7F1\x3"+ + "\x2\x2\x2\x7E4\x7E6\x5\x126\x94\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3"+ + "\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x7E9\a\xE6\x2\x2\x7E8\x7EA\x5\x126"+ + "\x94\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2"+ + "\x2\x7EB\x7ED\x5\xE8u\x2\x7EC\x7EE\x5\x126\x94\x2\x7ED\x7EC\x3\x2\x2\x2"+ + "\x7ED\x7EE\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F0\a\xED\x2\x2\x7F0"+ + "\x7F2\x3\x2\x2\x2\x7F1\x7E5\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC"+ + "\x3\x2\x2\x2\x7F3\x7F5\x5\x126\x94\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5"+ + "\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\a\xE6\x2\x2\x7F7\x7F8\x5"+ + "\xF4{\x2\x7F8\x7F9\a\xED\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2"+ + "\x2\x7FB\x7FE\x3\x2\x2\x2\x7FC\x7FA\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2"+ + "\x7FD\x81F\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2\x7FF\x801\x5\xF8}\x2\x800"+ + "\x802\x5\x10E\x88\x2\x801\x800\x3\x2\x2\x2\x801\x802\x3\x2\x2\x2\x802"+ + "\x810\x3\x2\x2\x2\x803\x805\x5\x126\x94\x2\x804\x803\x3\x2\x2\x2\x804"+ + "\x805\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x808\a\xE6\x2\x2\x807\x809"+ + "\x5\x126\x94\x2\x808\x807\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80A"+ + "\x3\x2\x2\x2\x80A\x80C\x5\xE8u\x2\x80B\x80D\x5\x126\x94\x2\x80C\x80B\x3"+ + "\x2\x2\x2\x80C\x80D\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F\a\xED"+ + "\x2\x2\x80F\x811\x3\x2\x2\x2\x810\x804\x3\x2\x2\x2\x810\x811\x3\x2\x2"+ + "\x2\x811\x81B\x3\x2\x2\x2\x812\x814\x5\x126\x94\x2\x813\x812\x3\x2\x2"+ + "\x2\x813\x814\x3\x2\x2\x2\x814\x815\x3\x2\x2\x2\x815\x816\a\xE6\x2\x2"+ + "\x816\x817\x5\xF4{\x2\x817\x818\a\xED\x2\x2\x818\x81A\x3\x2\x2\x2\x819"+ + "\x813\x3\x2\x2\x2\x81A\x81D\x3\x2\x2\x2\x81B\x819\x3\x2\x2\x2\x81B\x81C"+ + "\x3\x2\x2\x2\x81C\x81F\x3\x2\x2\x2\x81D\x81B\x3\x2\x2\x2\x81E\x7DD\x3"+ + "\x2\x2\x2\x81E\x7FF\x3\x2\x2\x2\x81F\xD5\x3\x2\x2\x2\x820\x823\x5\xD8"+ + "m\x2\x821\x823\x5\xDAn\x2\x822\x820\x3\x2\x2\x2\x822\x821\x3\x2\x2\x2"+ + "\x823\xD7\x3\x2\x2\x2\x824\x826\x5\xDCo\x2\x825\x824\x3\x2\x2\x2\x825"+ + "\x826\x3\x2\x2\x2\x826\x828\x3\x2\x2\x2\x827\x829\x5\x126\x94\x2\x828"+ + "\x827\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82C"+ + "\a-\x2\x2\x82B\x82D\x5\x126\x94\x2\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3"+ + "\x2\x2\x2\x82D\x82E\x3\x2\x2\x2\x82E\x830\x5\xF8}\x2\x82F\x831\x5\x10E"+ + "\x88\x2\x830\x82F\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x835\x3\x2\x2"+ + "\x2\x832\x833\x5\x126\x94\x2\x833\x834\x5\xE8u\x2\x834\x836\x3\x2\x2\x2"+ + "\x835\x832\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836\x83B\x3\x2\x2\x2\x837"+ + "\x839\x5\x126\x94\x2\x838\x837\x3\x2\x2\x2\x838\x839\x3\x2\x2\x2\x839"+ + "\x83A\x3\x2\x2\x2\x83A\x83C\x5\xECw\x2\x83B\x838\x3\x2\x2\x2\x83B\x83C"+ + "\x3\x2\x2\x2\x83C\x846\x3\x2\x2\x2\x83D\x83F\x5\x126\x94\x2\x83E\x83D"+ + "\x3\x2\x2\x2\x83E\x83F\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\a\xE6"+ + "\x2\x2\x841\x842\x5\xF4{\x2\x842\x843\a\xED\x2\x2\x843\x845\x3\x2\x2\x2"+ + "\x844\x83E\x3\x2\x2\x2\x845\x848\x3\x2\x2\x2\x846\x844\x3\x2\x2\x2\x846"+ + "\x847\x3\x2\x2\x2\x847\xD9\x3\x2\x2\x2\x848\x846\x3\x2\x2\x2\x849\x84D"+ + "\x5\xF8}\x2\x84A\x84B\x5\x126\x94\x2\x84B\x84C\x5\xE8u\x2\x84C\x84E\x3"+ + "\x2\x2\x2\x84D\x84A\x3\x2\x2\x2\x84D\x84E\x3\x2\x2\x2\x84E\x858\x3\x2"+ + "\x2\x2\x84F\x851\x5\x126\x94\x2\x850\x84F\x3\x2\x2\x2\x850\x851\x3\x2"+ + "\x2\x2\x851\x852\x3\x2\x2\x2\x852\x853\a\xE6\x2\x2\x853\x854\x5\xF4{\x2"+ + "\x854\x855\a\xED\x2\x2\x855\x857\x3\x2\x2\x2\x856\x850\x3\x2\x2\x2\x857"+ + "\x85A\x3\x2\x2\x2\x858\x856\x3\x2\x2\x2\x858\x859\x3\x2\x2\x2\x859\xDB"+ + "\x3\x2\x2\x2\x85A\x858\x3\x2\x2\x2\x85B\x860\x5\xE2r\x2\x85C\x860\x5\xDE"+ + "p\x2\x85D\x860\x5\xE0q\x2\x85E\x860\x5\xE6t\x2\x85F\x85B\x3\x2\x2\x2\x85F"+ + "\x85C\x3\x2\x2\x2\x85F\x85D\x3\x2\x2\x2\x85F\x85E\x3\x2\x2\x2\x860\xDD"+ + "\x3\x2\x2\x2\x861\x863\x5\xF8}\x2\x862\x864\x5\x10E\x88\x2\x863\x862\x3"+ + "\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x869\x3\x2\x2\x2\x865\x867\x5\x126"+ + "\x94\x2\x866\x865\x3\x2\x2\x2\x866\x867\x3\x2\x2\x2\x867\x868\x3\x2\x2"+ + "\x2\x868\x86A\x5\xECw\x2\x869\x866\x3\x2\x2\x2\x869\x86A\x3\x2\x2\x2\x86A"+ + "\x874\x3\x2\x2\x2\x86B\x86D\x5\x126\x94\x2\x86C\x86B\x3\x2\x2\x2\x86C"+ + "\x86D\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x86F\a\xE6\x2\x2\x86F\x870"+ + "\x5\xF4{\x2\x870\x871\a\xED\x2\x2\x871\x873\x3\x2\x2\x2\x872\x86C\x3\x2"+ + "\x2\x2\x873\x876\x3\x2\x2\x2\x874\x872\x3\x2\x2\x2\x874\x875\x3\x2\x2"+ + "\x2\x875\xDF\x3\x2\x2\x2\x876\x874\x3\x2\x2\x2\x877\x87A\x5\xF8}\x2\x878"+ + "\x87A\x5\xFC\x7F\x2\x879\x877\x3\x2\x2\x2\x879\x878\x3\x2\x2\x2\x87A\x87C"+ + "\x3\x2\x2\x2\x87B\x87D\x5\x10E\x88\x2\x87C\x87B\x3\x2\x2\x2\x87C\x87D"+ + "\x3\x2\x2\x2\x87D\x87F\x3\x2\x2\x2\x87E\x880\x5\x126\x94\x2\x87F\x87E"+ + "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\a\xE6"+ + "\x2\x2\x882\x884\x5\x126\x94\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2"+ + "\x2\x2\x884\x889\x3\x2\x2\x2\x885\x887\x5\xE8u\x2\x886\x888\x5\x126\x94"+ + "\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3\x2\x2\x2\x888\x88A\x3\x2\x2\x2"+ + "\x889\x885\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B"+ + "\x890\a\xED\x2\x2\x88C\x88E\x5\x126\x94\x2\x88D\x88C\x3\x2\x2\x2\x88D"+ + "\x88E\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x891\x5\xECw\x2\x890\x88D"+ + "\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2\x891\x89B\x3\x2\x2\x2\x892\x894\x5"+ + "\x126\x94\x2\x893\x892\x3\x2\x2\x2\x893\x894\x3\x2\x2\x2\x894\x895\x3"+ + "\x2\x2\x2\x895\x896\a\xE6\x2\x2\x896\x897\x5\xF4{\x2\x897\x898\a\xED\x2"+ + "\x2\x898\x89A\x3\x2\x2\x2\x899\x893\x3\x2\x2\x2\x89A\x89D\x3\x2\x2\x2"+ + "\x89B\x899\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\xE1\x3\x2\x2\x2\x89D"+ + "\x89B\x3\x2\x2\x2\x89E\x8A1\x5\xDEp\x2\x89F\x8A1\x5\xE0q\x2\x8A0\x89E"+ + "\x3\x2\x2\x2\x8A0\x89F\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A6\x3"+ + "\x2\x2\x2\x8A2\x8A4\x5\xE4s\x2\x8A3\x8A5\x5\x126\x94\x2\x8A4\x8A3\x3\x2"+ + "\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8A7\x3\x2\x2\x2\x8A6\x8A2\x3\x2\x2"+ + "\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A6\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2"+ + "\x8A9\x8AE\x3\x2\x2\x2\x8AA\x8AC\x5\x126\x94\x2\x8AB\x8AA\x3\x2\x2\x2"+ + "\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF\x5\xECw\x2\x8AE"+ + "\x8AB\x3\x2\x2\x2\x8AE\x8AF\x3\x2\x2\x2\x8AF\x8B9\x3\x2\x2\x2\x8B0\x8B2"+ + "\x5\x126\x94\x2\x8B1\x8B0\x3\x2\x2\x2\x8B1\x8B2\x3\x2\x2\x2\x8B2\x8B3"+ + "\x3\x2\x2\x2\x8B3\x8B4\a\xE6\x2\x2\x8B4\x8B5\x5\xF4{\x2\x8B5\x8B6\a\xED"+ + "\x2\x2\x8B6\x8B8\x3\x2\x2\x2\x8B7\x8B1\x3\x2\x2\x2\x8B8\x8BB\x3\x2\x2"+ + "\x2\x8B9\x8B7\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\xE3\x3\x2\x2\x2\x8BB"+ + "\x8B9\x3\x2\x2\x2\x8BC\x8BE\t\xF\x2\x2\x8BD\x8BF\x5\x126\x94\x2\x8BE\x8BD"+ + "\x3\x2\x2\x2\x8BE\x8BF\x3\x2\x2\x2\x8BF\x8C2\x3\x2\x2\x2\x8C0\x8C3\x5"+ + "\xDEp\x2\x8C1\x8C3\x5\xE0q\x2\x8C2\x8C0\x3\x2\x2\x2\x8C2\x8C1\x3\x2\x2"+ + "\x2\x8C3\xE5\x3\x2\x2\x2\x8C4\x8C6\x5\x126\x94\x2\x8C5\x8C4\x3\x2\x2\x2"+ + "\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7\x8C8\x5\xECw\x2\x8C8"+ + "\xE7\x3\x2\x2\x2\x8C9\x8CB\x5\xEAv\x2\x8CA\x8C9\x3\x2\x2\x2\x8CA\x8CB"+ + "\x3\x2\x2\x2\x8CB\x8CD\x3\x2\x2\x2\x8CC\x8CE\x5\x126\x94\x2\x8CD\x8CC"+ + "\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\x8D1\t\n"+ + "\x2\x2\x8D0\x8D2\x5\x126\x94\x2\x8D1\x8D0\x3\x2\x2\x2\x8D1\x8D2\x3\x2"+ + "\x2\x2\x8D2\x8D4\x3\x2\x2\x2\x8D3\x8CA\x3\x2\x2\x2\x8D4\x8D7\x3\x2\x2"+ + "\x2\x8D5\x8D3\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D8\x3\x2\x2\x2"+ + "\x8D7\x8D5\x3\x2\x2\x2\x8D8\x8E5\x5\xEAv\x2\x8D9\x8DB\x5\x126\x94\x2\x8DA"+ + "\x8D9\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DE"+ + "\t\n\x2\x2\x8DD\x8DF\x5\x126\x94\x2\x8DE\x8DD\x3\x2\x2\x2\x8DE\x8DF\x3"+ + "\x2\x2\x2\x8DF\x8E1\x3\x2\x2\x2\x8E0\x8E2\x5\xEAv\x2\x8E1\x8E0\x3\x2\x2"+ + "\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8E4\x3\x2\x2\x2\x8E3\x8DA\x3\x2\x2\x2"+ + "\x8E4\x8E7\x3\x2\x2\x2\x8E5\x8E3\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6"+ + "\xE9\x3\x2\x2\x2\x8E7\x8E5\x3\x2\x2\x2\x8E8\x8EA\a\xE6\x2\x2\x8E9\x8E8"+ + "\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8ED\x3\x2\x2\x2\x8EB\x8EC\t\x10"+ + "\x2\x2\x8EC\x8EE\x5\x126\x94\x2\x8ED\x8EB\x3\x2\x2\x2\x8ED\x8EE\x3\x2"+ + "\x2\x2\x8EE\x8F0\x3\x2\x2\x2\x8EF\x8F1\a\xED\x2\x2\x8F0\x8EF\x3\x2\x2"+ + "\x2\x8F0\x8F1\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F3\x5\xBC_\x2\x8F3"+ + "\xEB\x3\x2\x2\x2\x8F4\x8F6\a,\x2\x2\x8F5\x8F7\x5\x126\x94\x2\x8F6\x8F5"+ + "\x3\x2\x2\x2\x8F6\x8F7\x3\x2\x2\x2\x8F7\x8F8\x3\x2\x2\x2\x8F8\x8FA\x5"+ + "\xF8}\x2\x8F9\x8FB\x5\x10E\x88\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3\x2"+ + "\x2\x2\x8FB\xED\x3\x2\x2\x2\x8FC\x90E\a\xE6\x2\x2\x8FD\x8FF\x5\x126\x94"+ + "\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2"+ + "\x900\x90B\x5\xF0y\x2\x901\x903\x5\x126\x94\x2\x902\x901\x3\x2\x2\x2\x902"+ + "\x903\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x906\a)\x2\x2\x905\x907\x5"+ + "\x126\x94\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x908\x3"+ + "\x2\x2\x2\x908\x90A\x5\xF0y\x2\x909\x902\x3\x2\x2\x2\x90A\x90D\x3\x2\x2"+ + "\x2\x90B\x909\x3\x2\x2\x2\x90B\x90C\x3\x2\x2\x2\x90C\x90F\x3\x2\x2\x2"+ + "\x90D\x90B\x3\x2\x2\x2\x90E\x8FE\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ + "\x911\x3\x2\x2\x2\x910\x912\x5\x126\x94\x2\x911\x910\x3\x2\x2\x2\x911"+ + "\x912\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x914\a\xED\x2\x2\x914\xEF"+ + "\x3\x2\x2\x2\x915\x916\a\x9F\x2\x2\x916\x918\x5\x126\x94\x2\x917\x915"+ + "\x3\x2\x2\x2\x917\x918\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x91A\t\x11"+ + "\x2\x2\x91A\x91C\x5\x126\x94\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C\x3\x2"+ + "\x2\x2\x91C\x91F\x3\x2\x2\x2\x91D\x91E\a\xA6\x2\x2\x91E\x920\x5\x126\x94"+ + "\x2\x91F\x91D\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x921\x3\x2\x2\x2"+ + "\x921\x923\x5\xF8}\x2\x922\x924\x5\x10E\x88\x2\x923\x922\x3\x2\x2\x2\x923"+ + "\x924\x3\x2\x2\x2\x924\x92D\x3\x2\x2\x2\x925\x927\x5\x126\x94\x2\x926"+ + "\x925\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2\x928\x92A"+ + "\a\xE6\x2\x2\x929\x92B\x5\x126\x94\x2\x92A\x929\x3\x2\x2\x2\x92A\x92B"+ + "\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92E\a\xED\x2\x2\x92D\x926\x3"+ + "\x2\x2\x2\x92D\x92E\x3\x2\x2\x2\x92E\x933\x3\x2\x2\x2\x92F\x931\x5\x126"+ + "\x94\x2\x930\x92F\x3\x2\x2\x2\x930\x931\x3\x2\x2\x2\x931\x932\x3\x2\x2"+ + "\x2\x932\x934\x5\xFA~\x2\x933\x930\x3\x2\x2\x2\x933\x934\x3\x2\x2\x2\x934"+ + "\x939\x3\x2\x2\x2\x935\x937\x5\x126\x94\x2\x936\x935\x3\x2\x2\x2\x936"+ + "\x937\x3\x2\x2\x2\x937\x938\x3\x2\x2\x2\x938\x93A\x5\xF2z\x2\x939\x936"+ + "\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\xF1\x3\x2\x2\x2\x93B\x93D\a\xE2"+ + "\x2\x2\x93C\x93E\x5\x126\x94\x2\x93D\x93C\x3\x2\x2\x2\x93D\x93E\x3\x2"+ + "\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\x5\xBC_\x2\x940\xF3\x3\x2\x2\x2"+ + "\x941\x94C\x5\xF6|\x2\x942\x944\x5\x126\x94\x2\x943\x942\x3\x2\x2\x2\x943"+ + "\x944\x3\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x947\a)\x2\x2\x946\x948\x5"+ + "\x126\x94\x2\x947\x946\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\x949\x3"+ + "\x2\x2\x2\x949\x94B\x5\xF6|\x2\x94A\x943\x3\x2\x2\x2\x94B\x94E\x3\x2\x2"+ + "\x2\x94C\x94A\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D\xF5\x3\x2\x2\x2\x94E"+ + "\x94C\x3\x2\x2\x2\x94F\x950\x5\xBC_\x2\x950\x951\x5\x126\x94\x2\x951\x952"+ + "\a\xCF\x2\x2\x952\x953\x5\x126\x94\x2\x953\x955\x3\x2\x2\x2\x954\x94F"+ + "\x3\x2\x2\x2\x954\x955\x3\x2\x2\x2\x955\x956\x3\x2\x2\x2\x956\x957\x5"+ + "\xBC_\x2\x957\xF7\x3\x2\x2\x2\x958\x95B\a\x101\x2\x2\x959\x95B\x5\x112"+ + "\x8A\x2\x95A\x958\x3\x2\x2\x2\x95A\x959\x3\x2\x2\x2\x95B\xF9\x3\x2\x2"+ + "\x2\x95C\x95E\a:\x2\x2\x95D\x95F\x5\x126\x94\x2\x95E\x95D\x3\x2\x2\x2"+ + "\x95E\x95F\x3\x2\x2\x2\x95F\x962\x3\x2\x2\x2\x960\x961\a\x97\x2\x2\x961"+ + "\x963\x5\x126\x94\x2\x962\x960\x3\x2\x2\x2\x962\x963\x3\x2\x2\x2\x963"+ + "\x964\x3\x2\x2\x2\x964\x969\x5\x10C\x87\x2\x965\x967\x5\x126\x94\x2\x966"+ + "\x965\x3\x2\x2\x2\x966\x967\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968\x96A"+ + "\x5\x102\x82\x2\x969\x966\x3\x2\x2\x2\x969\x96A\x3\x2\x2\x2\x96A\xFB\x3"+ + "\x2\x2\x2\x96B\x96C\t\x12\x2\x2\x96C\xFD\x3\x2\x2\x2\x96D\x96E\t\xE\x2"+ + "\x2\x96E\xFF\x3\x2\x2\x2\x96F\x974\x5\xF8}\x2\x970\x971\t\xF\x2\x2\x971"+ + "\x973\x5\xF8}\x2\x972\x970\x3\x2\x2\x2\x973\x976\x3\x2\x2\x2\x974\x972"+ + "\x3\x2\x2\x2\x974\x975\x3\x2\x2\x2\x975\x101\x3\x2\x2\x2\x976\x974\x3"+ + "\x2\x2\x2\x977\x979\a\xE9\x2\x2\x978\x97A\x5\x126\x94\x2\x979\x978\x3"+ + "\x2\x2\x2\x979\x97A\x3\x2\x2\x2\x97A\x97D\x3\x2\x2\x2\x97B\x97E\x5\x10A"+ + "\x86\x2\x97C\x97E\x5\xF8}\x2\x97D\x97B\x3\x2\x2\x2\x97D\x97C\x3\x2\x2"+ + "\x2\x97E\x103\x3\x2\x2\x2\x97F\x988\x5\xF8}\x2\x980\x982\x5\x126\x94\x2"+ + "\x981\x980\x3\x2\x2\x2\x981\x982\x3\x2\x2\x2\x982\x983\x3\x2\x2\x2\x983"+ + "\x985\a\xE8\x2\x2\x984\x986\x5\x126\x94\x2\x985\x984\x3\x2\x2\x2\x985"+ + "\x986\x3\x2\x2\x2\x986\x987\x3\x2\x2\x2\x987\x989\x5\xF8}\x2\x988\x981"+ + "\x3\x2\x2\x2\x988\x989\x3\x2\x2\x2\x989\x105\x3\x2\x2\x2\x98A\x98D\x5"+ + "\xF8}\x2\x98B\x98D\x5\x10A\x86\x2\x98C\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2"+ + "\x2\x2\x98D\x98E\x3\x2\x2\x2\x98E\x98F\a*\x2\x2\x98F\x107\x3\x2\x2\x2"+ + "\x990\x999\x5\x10A\x86\x2\x991\x999\a\xFA\x2\x2\x992\x999\a\xF5\x2\x2"+ + "\x993\x999\a\xD0\x2\x2\x994\x999\at\x2\x2\x995\x999\a\x99\x2\x2\x996\x999"+ + "\a\x9A\x2\x2\x997\x999\a`\x2\x2\x998\x990\x3\x2\x2\x2\x998\x991\x3\x2"+ + "\x2\x2\x998\x992\x3\x2\x2\x2\x998\x993\x3\x2\x2\x2\x998\x994\x3\x2\x2"+ + "\x2\x998\x995\x3\x2\x2\x2\x998\x996\x3\x2\x2\x2\x998\x997\x3\x2\x2\x2"+ + "\x999\x109\x3\x2\x2\x2\x99A\x99B\t\x13\x2\x2\x99B\x10B\x3\x2\x2\x2\x99C"+ + "\x99F\x5\xFC\x7F\x2\x99D\x99F\x5\x100\x81\x2\x99E\x99C\x3\x2\x2\x2\x99E"+ + "\x99D\x3\x2\x2\x2\x99F\x9A8\x3\x2\x2\x2\x9A0\x9A2\x5\x126\x94\x2\x9A1"+ + "\x9A0\x3\x2\x2\x2\x9A1\x9A2\x3\x2\x2\x2\x9A2\x9A3\x3\x2\x2\x2\x9A3\x9A5"+ + "\a\xE6\x2\x2\x9A4\x9A6\x5\x126\x94\x2\x9A5\x9A4\x3\x2\x2\x2\x9A5\x9A6"+ + "\x3\x2\x2\x2\x9A6\x9A7\x3\x2\x2\x2\x9A7\x9A9\a\xED\x2\x2\x9A8\x9A1\x3"+ + "\x2\x2\x2\x9A8\x9A9\x3\x2\x2\x2\x9A9\x10D\x3\x2\x2\x2\x9AA\x9AB\t\x14"+ + "\x2\x2\x9AB\x10F\x3\x2\x2\x2\x9AC\x9AD\t\x15\x2\x2\x9AD\x111\x3\x2\x2"+ + "\x2\x9AE\x9AF\t\x16\x2\x2\x9AF\x113\x3\x2\x2\x2\x9B0\x9B2\x5\x126\x94"+ + "\x2\x9B1\x9B0\x3\x2\x2\x2\x9B1\x9B2\x3\x2\x2\x2\x9B2\x9BA\x3\x2\x2\x2"+ + "\x9B3\x9B5\a\xFB\x2\x2\x9B4\x9B3\x3\x2\x2\x2\x9B5\x9B6\x3\x2\x2\x2\x9B6"+ + "\x9B4\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2\x9B7\x9BB\x3\x2\x2\x2\x9B8\x9BB"+ + "\x5\x11A\x8E\x2\x9B9\x9BB\x5\x118\x8D\x2\x9BA\x9B4\x3\x2\x2\x2\x9BA\x9B8"+ + "\x3\x2\x2\x2\x9BA\x9B9\x3\x2\x2\x2\x9BB\x9BD\x3\x2\x2\x2\x9BC\x9BE\x5"+ + "\x126\x94\x2\x9BD\x9BC\x3\x2\x2\x2\x9BD\x9BE\x3\x2\x2\x2\x9BE\x9C4\x3"+ + "\x2\x2\x2\x9BF\x9C1\x5\x126\x94\x2\x9C0\x9BF\x3\x2\x2\x2\x9C0\x9C1\x3"+ + "\x2\x2\x2\x9C1\x9C2\x3\x2\x2\x2\x9C2\x9C4\x5\x11C\x8F\x2\x9C3\x9B1\x3"+ + "\x2\x2\x2\x9C3\x9C0\x3\x2\x2\x2\x9C4\x115\x3\x2\x2\x2\x9C5\x9CE\x5\x114"+ + "\x8B\x2\x9C6\x9C8\x5\x126\x94\x2\x9C7\x9C6\x3\x2\x2\x2\x9C7\x9C8\x3\x2"+ + "\x2\x2\x9C8\x9C9\x3\x2\x2\x2\x9C9\x9CB\a*\x2\x2\x9CA\x9CC\x5\x126\x94"+ + "\x2\x9CB\x9CA\x3\x2\x2\x2\x9CB\x9CC\x3\x2\x2\x2\x9CC\x9CE\x3\x2\x2\x2"+ + "\x9CD\x9C5\x3\x2\x2\x2\x9CD\x9C7\x3\x2\x2\x2\x9CE\x9D1\x3\x2\x2\x2\x9CF"+ + "\x9CD\x3\x2\x2\x2\x9CF\x9D0\x3\x2\x2\x2\x9D0\x117\x3\x2\x2\x2\x9D1\x9CF"+ + "\x3\x2\x2\x2\x9D2\x9D3\a\xFC\x2\x2\x9D3\x119\x3\x2\x2\x2\x9D4\x9D5\t\x17"+ + "\x2\x2\x9D5\x11B\x3\x2\x2\x2\x9D6\x9D8\a\xFE\x2\x2\x9D7\x9D9\x5\x11E\x90"+ + "\x2\x9D8\x9D7\x3\x2\x2\x2\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9D8\x3\x2\x2\x2"+ + "\x9DA\x9DB\x3\x2\x2\x2\x9DB\x11D\x3\x2\x2\x2\x9DC\x9DD\a/\x2\x2\x9DD\x9DF"+ + "\x5\x120\x91\x2\x9DE\x9E0\x5\x122\x92\x2\x9DF\x9DE\x3\x2\x2\x2\x9DF\x9E0"+ + "\x3\x2\x2\x2\x9E0\x11F\x3\x2\x2\x2\x9E1\x9E2\a\x101\x2\x2\x9E2\x121\x3"+ + "\x2\x2\x2\x9E3\x9E4\x5\x126\x94\x2\x9E4\x9E6\x5\x124\x93\x2\x9E5\x9E7"+ + "\x5\x126\x94\x2\x9E6\x9E5\x3\x2\x2\x2\x9E6\x9E7\x3\x2\x2\x2\x9E7\xA21"+ + "\x3\x2\x2\x2\x9E8\x9E9\x5\x126\x94\x2\x9E9\x9F2\x5\x124\x93\x2\x9EA\x9EC"+ + "\x5\x126\x94\x2\x9EB\x9EA\x3\x2\x2\x2\x9EB\x9EC\x3\x2\x2\x2\x9EC\x9ED"+ + "\x3\x2\x2\x2\x9ED\x9EF\a)\x2\x2\x9EE\x9F0\x5\x126\x94\x2\x9EF\x9EE\x3"+ + "\x2\x2\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F1\x3\x2\x2\x2\x9F1\x9F3\x5\x124"+ + "\x93\x2\x9F2\x9EB\x3\x2\x2\x2\x9F3\x9F4\x3\x2\x2\x2\x9F4\x9F2\x3\x2\x2"+ + "\x2\x9F4\x9F5\x3\x2\x2\x2\x9F5\x9F7\x3\x2\x2\x2\x9F6\x9F8\x5\x126\x94"+ + "\x2\x9F7\x9F6\x3\x2\x2\x2\x9F7\x9F8\x3\x2\x2\x2\x9F8\xA21\x3\x2\x2\x2"+ + "\x9F9\x9FB\x5\x126\x94\x2\x9FA\x9F9\x3\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2"+ + "\x9FB\x9FC\x3\x2\x2\x2\x9FC\x9FE\a\xE6\x2\x2\x9FD\x9FF\x5\x126\x94\x2"+ + "\x9FE\x9FD\x3\x2\x2\x2\x9FE\x9FF\x3\x2\x2\x2\x9FF\xA00\x3\x2\x2\x2\xA00"+ + "\xA02\x5\x124\x93\x2\xA01\xA03\x5\x126\x94\x2\xA02\xA01\x3\x2\x2\x2\xA02"+ + "\xA03\x3\x2\x2\x2\xA03\xA04\x3\x2\x2\x2\xA04\xA06\a\xED\x2\x2\xA05\xA07"+ + "\x5\x126\x94\x2\xA06\xA05\x3\x2\x2\x2\xA06\xA07\x3\x2\x2\x2\xA07\xA21"+ + "\x3\x2\x2\x2\xA08\xA0A\x5\x126\x94\x2\xA09\xA08\x3\x2\x2\x2\xA09\xA0A"+ + "\x3\x2\x2\x2\xA0A\xA0B\x3\x2\x2\x2\xA0B\xA0C\a\xE6\x2\x2\xA0C\xA15\x5"+ + "\x124\x93\x2\xA0D\xA0F\x5\x126\x94\x2\xA0E\xA0D\x3\x2\x2\x2\xA0E\xA0F"+ + "\x3\x2\x2\x2\xA0F\xA10\x3\x2\x2\x2\xA10\xA12\a)\x2\x2\xA11\xA13\x5\x126"+ + "\x94\x2\xA12\xA11\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA14\x3\x2\x2"+ + "\x2\xA14\xA16\x5\x124\x93\x2\xA15\xA0E\x3\x2\x2\x2\xA16\xA17\x3\x2\x2"+ + "\x2\xA17\xA15\x3\x2\x2\x2\xA17\xA18\x3\x2\x2\x2\xA18\xA1A\x3\x2\x2\x2"+ + "\xA19\xA1B\x5\x126\x94\x2\xA1A\xA19\x3\x2\x2\x2\xA1A\xA1B\x3\x2\x2\x2"+ + "\xA1B\xA1C\x3\x2\x2\x2\xA1C\xA1E\a\xED\x2\x2\xA1D\xA1F\x5\x126\x94\x2"+ + "\xA1E\xA1D\x3\x2\x2\x2\xA1E\xA1F\x3\x2\x2\x2\xA1F\xA21\x3\x2\x2\x2\xA20"+ + "\x9E3\x3\x2\x2\x2\xA20\x9E8\x3\x2\x2\x2\xA20\x9FA\x3\x2\x2\x2\xA20\xA09"+ + "\x3\x2\x2\x2\xA21\x123\x3\x2\x2\x2\xA22\xA25\a\x101\x2\x2\xA23\xA25\x5"+ + "\x108\x85\x2\xA24\xA22\x3\x2\x2\x2\xA24\xA23\x3\x2\x2\x2\xA25\x125\x3"+ + "\x2\x2\x2\xA26\xA28\t\x18\x2\x2\xA27\xA26\x3\x2\x2\x2\xA28\xA29\x3\x2"+ + "\x2\x2\xA29\xA27\x3\x2\x2\x2\xA29\xA2A\x3\x2\x2\x2\xA2A\x127\x3\x2\x2"+ + "\x2\x1BB\x12C\x132\x135\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168"+ + "\x16F\x175\x17E\x186\x195\x19F\x1A7\x1B1\x1B7\x1BB\x1BF\x1C3\x1C8\x1D1"+ + "\x218\x21E\x222\x225\x235\x239\x23E\x241\x246\x24C\x250\x255\x25A\x25F"+ + "\x262\x266\x26C\x270\x277\x27D\x281\x284\x289\x294\x297\x29A\x29F\x2A5"+ + "\x2A9\x2AE\x2B5\x2BB\x2BF\x2C7\x2CB\x2CF\x2D3\x2D7\x2DC\x2E7\x2EE\x2F6"+ + "\x2FD\x306\x30D\x311\x314\x31C\x320\x325\x32F\x335\x33F\x343\x34D\x355"+ + "\x35B\x361\x366\x369\x36D\x379\x37D\x383\x385\x38A\x38E\x392\x396\x399"+ + "\x39C\x39F\x3A2\x3A6\x3AE\x3B2\x3B5\x3B8\x3BC\x3D4\x3DA\x3DE\x3E2\x3EB"+ + "\x3F6\x3FB\x405\x409\x40E\x416\x41A\x41E\x426\x42A\x436\x43A\x442\x444"+ + "\x44A\x44E\x454\x458\x45C\x476\x480\x484\x489\x494\x498\x49D\x4AC\x4B1"+ + "\x4BA\x4BE\x4C2\x4C6\x4CA\x4CD\x4D1\x4D5\x4D8\x4DC\x4DF\x4E3\x4E5\x4EA"+ + "\x4EE\x4F2\x4F6\x4F8\x4FE\x502\x505\x50A\x50E\x514\x517\x51A\x51F\x523"+ + "\x52A\x52E\x534\x537\x53B\x542\x546\x54C\x54F\x553\x55B\x55F\x562\x565"+ + "\x569\x571\x575\x579\x57B\x57E\x584\x58A\x58E\x592\x597\x59C\x5A0\x5A4"+ + "\x5AA\x5B2\x5B4\x5C0\x5C4\x5CC\x5D0\x5D8\x5DC\x5E0\x5E4\x5E8\x5EC\x5F4"+ + "\x5F8\x605\x60C\x610\x61B\x622\x627\x62B\x630\x633\x639\x63D\x640\x646"+ + "\x64A\x652\x656\x65F\x663\x667\x66B\x66E\x672\x678\x67C\x683\x68C\x693"+ + "\x697\x69A\x69D\x6A0\x6A5\x6B1\x6B5\x6BD\x6BF\x6C4\x6C9\x6CE\x6D2\x6D8"+ + "\x6DD\x6E4\x6E8\x6EE\x6F2\x6F6\x6FB\x6FF\x704\x708\x70D\x711\x716\x71A"+ + "\x71F\x723\x728\x72C\x731\x735\x73A\x73E\x743\x747\x74C\x750\x755\x759"+ + "\x75C\x75E\x769\x76E\x773\x779\x77D\x782\x787\x78B\x78F\x791\x795\x797"+ + "\x79A\x79F\x7A6\x7AE\x7B2\x7BB\x7C4\x7CA\x7CE\x7D1\x7D4\x7DD\x7E2\x7E5"+ + "\x7E9\x7ED\x7F1\x7F4\x7FC\x801\x804\x808\x80C\x810\x813\x81B\x81E\x822"+ + "\x825\x828\x82C\x830\x835\x838\x83B\x83E\x846\x84D\x850\x858\x85F\x863"+ + "\x866\x869\x86C\x874\x879\x87C\x87F\x883\x887\x889\x88D\x890\x893\x89B"+ + "\x8A0\x8A4\x8A8\x8AB\x8AE\x8B1\x8B9\x8BE\x8C2\x8C5\x8CA\x8CD\x8D1\x8D5"+ + "\x8DA\x8DE\x8E1\x8E5\x8E9\x8ED\x8F0\x8F6\x8FA\x8FE\x902\x906\x90B\x90E"+ + "\x911\x917\x91B\x91F\x923\x926\x92A\x92D\x930\x933\x936\x939\x93D\x943"+ + "\x947\x94C\x954\x95A\x95E\x962\x966\x969\x974\x979\x97D\x981\x985\x988"+ + "\x98C\x998\x99E\x9A1\x9A5\x9A8\x9B1\x9B6\x9BA\x9BD\x9C0\x9C3\x9C7\x9CB"+ + "\x9CD\x9CF\x9DA\x9DF\x9E6\x9EB\x9EF\x9F4\x9F7\x9FA\x9FE\xA02\xA06\xA09"+ + "\xA0E\xA12\xA17\xA1A\xA1E\xA20\xA24\xA29"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index 1e2723d0e9..2aae799836 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -460,14 +460,12 @@ writeStmt : WRITE whiteSpace fileNumber whiteSpace? COMMA (whiteSpace? outputLis fileNumber : HASH? valueStmt; -explicitCallStmt : - eCS_ProcedureCall - | eCS_MemberProcedureCall -; - -eCS_ProcedureCall : CALL whiteSpace identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)*; +explicitCallStmt : CALL whiteSpace explicitCallStmtExpression; -eCS_MemberProcedureCall : CALL whiteSpace implicitCallStmt_InStmt? DOT identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)*; +explicitCallStmtExpression : + implicitCallStmt_InStmt? DOT identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)* # ECS_MemberCall + | identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)* # ECS_ProcedureCall +; implicitCallStmt_InBlock : iCS_B_MemberProcedureCall diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs index 51edf2a84a..12bffd8d4a 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs @@ -85,19 +85,6 @@ public virtual void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context) /// The parse tree. public virtual void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -163,6 +150,19 @@ public virtual void EnterTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementCo /// The parse tree. public virtual void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -372,17 +372,17 @@ public virtual void EnterFieldLength([NotNull] VBAParser.FieldLengthContext cont public virtual void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context) { } /// - /// Enter a parse tree produced by . + /// Enter a parse tree produced by . /// The default implementation does nothing. /// /// The parse tree. - public virtual void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + public virtual void EnterECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context) { } /// - /// Exit a parse tree produced by . + /// Exit a parse tree produced by . /// The default implementation does nothing. /// /// The parse tree. - public virtual void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { } + public virtual void ExitECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context) { } /// /// Enter a parse tree produced by . diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs index 09998cec9d..7621c41061 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs @@ -76,17 +76,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -142,6 +131,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -319,7 +319,7 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitor - /// Visit a parse tree produced by . + /// Visit a parse tree produced by . /// /// The default implementation returns the result of calling /// on . @@ -327,7 +327,7 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitor /// The parse tree. /// The visitor result. - public virtual Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context) { return VisitChildren(context); } + public virtual Result VisitECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context) { return VisitChildren(context); } /// /// Visit a parse tree produced by . diff --git a/Rubberduck.Parsing/Grammar/VBAParserListener.cs b/Rubberduck.Parsing/Grammar/VBAParserListener.cs index 8854da9959..7cc19bb763 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserListener.cs @@ -73,17 +73,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - /// /// Enter a parse tree produced by . /// @@ -139,6 +128,19 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); + /// + /// Enter a parse tree produced by the ECS_ProcedureCall + /// labeled alternative in . + /// + /// The parse tree. + void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + /// + /// Exit a parse tree produced by the ECS_ProcedureCall + /// labeled alternative in . + /// + /// The parse tree. + void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + /// /// Enter a parse tree produced by . /// @@ -322,15 +324,17 @@ public interface IVBAParserListener : IParseTreeListener { void ExitFieldLength([NotNull] VBAParser.FieldLengthContext context); /// - /// Enter a parse tree produced by . + /// Enter a parse tree produced by the ECS_MemberCall + /// labeled alternative in . /// /// The parse tree. - void EnterECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + void EnterECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context); /// - /// Exit a parse tree produced by . + /// Exit a parse tree produced by the ECS_MemberCall + /// labeled alternative in . /// /// The parse tree. - void ExitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + void ExitECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context); /// /// Enter a parse tree produced by . diff --git a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs index 05c14b907f..df98476483 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs @@ -58,13 +58,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitECS_MemberProcedureCall([NotNull] VBAParser.ECS_MemberProcedureCallContext context); - /// /// Visit a parse tree produced by . /// @@ -100,6 +93,14 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitTypeStmt_Element([NotNull] VBAParser.TypeStmt_ElementContext context); + /// + /// Visit a parse tree produced by the ECS_ProcedureCall + /// labeled alternative in . + /// + /// The parse tree. + /// The visitor result. + Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + /// /// Visit a parse tree produced by . /// @@ -216,11 +217,12 @@ public interface IVBAParserVisitor : IParseTreeVisitor { Result VisitFieldLength([NotNull] VBAParser.FieldLengthContext context); /// - /// Visit a parse tree produced by . + /// Visit a parse tree produced by the ECS_MemberCall + /// labeled alternative in . /// /// The parse tree. /// The visitor result. - Result VisitECS_ProcedureCall([NotNull] VBAParser.ECS_ProcedureCallContext context); + Result VisitECS_MemberCall([NotNull] VBAParser.ECS_MemberCallContext context); /// /// Visit a parse tree produced by . diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 1f934d7abd..5e689c6fff 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -81,6 +81,7 @@ + @@ -209,6 +210,7 @@ + diff --git a/Rubberduck.Parsing/Symbols/AccessibilityCheck.cs b/Rubberduck.Parsing/Symbols/AccessibilityCheck.cs index 585cda0694..539129183a 100644 --- a/Rubberduck.Parsing/Symbols/AccessibilityCheck.cs +++ b/Rubberduck.Parsing/Symbols/AccessibilityCheck.cs @@ -63,7 +63,13 @@ public static bool IsMemberAccessible(Declaration callingProject, Declaration ca { return calleeHasSameParent; } - var memberModule = Declaration.GetMemberModule(calleeMember); + var memberModule = Declaration.GetModuleParent(calleeMember); + // TODO: Fix this? + // Assume null = built in declaration which is always accessible. + if (memberModule == null) + { + return true; + } if (IsModuleAccessible(callingProject, callingModule, memberModule) && calleeMember.ParentScopeDeclaration.DeclarationType.HasFlag(DeclarationType.Module)) { if (calleeMember.DeclarationType.HasFlag(DeclarationType.EnumerationMember) || calleeMember.DeclarationType.HasFlag(DeclarationType.UserDefinedTypeMember)) diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 295d931216..931bb9847c 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -18,7 +18,11 @@ private void Visit(SimpleNameExpression expression, Func referenceCreator) { Visit((dynamic)expression.LExpression, referenceCreator); - expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + // Expressions could be unbound thus not have a referenced declaration. The lexpression might still be bindable though. + if (expression.Classification != ExpressionClassification.Unbound) + { + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + } } private void Visit(NewExpression expression, Func referenceCreator) diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index 56ee1e16e5..6aae78bcf8 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -19,6 +19,23 @@ namespace Rubberduck.Parsing.Symbols [DebuggerDisplay("({DeclarationType}) {Accessibility} {IdentifierName} As {AsTypeName} | {Selection}")] public class Declaration : IEquatable { + private static readonly string[] _baseTypes = new string[] + { + "BOOLEAN", + "BYTE", + "CURRENCY", + "DATE", + "DOUBLE", + "INTEGER", + "LONG", + "LONGLONG", + "LONGPTR", + "SINGLE", + "STRING", + "VARIANT", + "OBJECT" + }; + public Declaration( QualifiedMemberName qualifiedName, Declaration parentDeclaration, @@ -42,33 +59,33 @@ public Declaration( } public Declaration( - QualifiedMemberName qualifiedName, - Declaration parentDeclaration, + QualifiedMemberName qualifiedName, + Declaration parentDeclaration, string parentScope, - string asTypeName, - bool isSelfAssigned, + string asTypeName, + bool isSelfAssigned, bool isWithEvents, - Accessibility accessibility, - DeclarationType declarationType, + Accessibility accessibility, + DeclarationType declarationType, bool isBuiltIn = true, - IEnumerable annotations = null, + IEnumerable annotations = null, Attributes attributes = null) - :this(qualifiedName, parentDeclaration, parentScope, asTypeName, isSelfAssigned, isWithEvents, accessibility, declarationType, null, Selection.Home, isBuiltIn, annotations, attributes) - {} + : this(qualifiedName, parentDeclaration, parentScope, asTypeName, isSelfAssigned, isWithEvents, accessibility, declarationType, null, Selection.Home, isBuiltIn, annotations, attributes) + { } public Declaration( - QualifiedMemberName qualifiedName, - Declaration parentDeclaration, + QualifiedMemberName qualifiedName, + Declaration parentDeclaration, string parentScope, - string asTypeName, - bool isSelfAssigned, + string asTypeName, + bool isSelfAssigned, bool isWithEvents, - Accessibility accessibility, - DeclarationType declarationType, - ParserRuleContext context, - Selection selection, + Accessibility accessibility, + DeclarationType declarationType, + ParserRuleContext context, + Selection selection, bool isBuiltIn = false, - IEnumerable annotations = null, + IEnumerable annotations = null, Attributes attributes = null) { _qualifiedName = qualifiedName; @@ -105,30 +122,30 @@ public Declaration( _customFolder = result; } - public static Declaration GetMemberModule(Declaration member) + public static Declaration GetModuleParent(Declaration declaration) { - if (member.ParentDeclaration == null) + if (declaration == null) { return null; } - if (member.ParentDeclaration.DeclarationType == DeclarationType.ClassModule || member.ParentDeclaration.DeclarationType == DeclarationType.ProceduralModule) + if (declaration.DeclarationType == DeclarationType.ClassModule || declaration.DeclarationType == DeclarationType.ProceduralModule) { - return member.ParentDeclaration; + return declaration; } - return GetMemberModule(member.ParentDeclaration); + return GetModuleParent(declaration.ParentDeclaration); } - public static Declaration GetMemberProject(Declaration declaration) + public static Declaration GetProjectParent(Declaration declaration) { - if (declaration.ParentDeclaration == null) + if (declaration == null) { return null; } - if (declaration.ParentDeclaration.DeclarationType == DeclarationType.Project) + if (declaration.DeclarationType == DeclarationType.Project) { - return declaration.ParentDeclaration; + return declaration; } - return GetMemberProject(declaration.ParentDeclaration); + return GetProjectParent(declaration.ParentDeclaration); } private readonly bool _isBuiltIn; @@ -274,9 +291,9 @@ public void AddReference(IdentifierReference reference) return; } - if (reference.Context.Parent != _context + if (reference.Context.Parent != _context && !_references.Select(r => r.Context).Contains(reference.Context.Parent) - && !_references.Any(r => r.QualifiedModuleName == reference.QualifiedModuleName + && !_references.Any(r => r.QualifiedModuleName == reference.QualifiedModuleName && r.Selection.StartLine == reference.Selection.StartLine && r.Selection.EndLine == reference.Selection.EndLine && r.Selection.StartColumn == reference.Selection.StartColumn @@ -321,6 +338,19 @@ public void AddMemberCall(IdentifierReference reference) /// public string ProjectId { get { return _projectId; } } + public string ProjectName + { + get + { + if (Project != null) + { + return Project.Name; + } + // Referenced projects have their identifier name set as their project name. + return IdentifierName; + } + } + /// /// Gets the name of the VBComponent the declaration is made in. /// @@ -353,29 +383,39 @@ public void AddMemberCall(IdentifierReference reference) /// and Variant if applicable but unspecified. /// public string AsTypeName { get { return _asTypeName; } } + + public bool AsTypeIsBaseType + { + get + { + return string.IsNullOrWhiteSpace(AsTypeName) || _baseTypes.Contains(_asTypeName.ToUpperInvariant()); + } + } + + public Declaration AsTypeDeclaration { get; internal set; } private bool? _isArray; private readonly IReadOnlyList _neverArray = new[] { - DeclarationType.ClassModule, - DeclarationType.Control, - DeclarationType.Document, - DeclarationType.Enumeration, - DeclarationType.EnumerationMember, - DeclarationType.Event, - DeclarationType.Function, - DeclarationType.LibraryFunction, - DeclarationType.LibraryProcedure, - DeclarationType.LineLabel, - DeclarationType.ProceduralModule, - DeclarationType.ModuleOption, - DeclarationType.Project, - DeclarationType.Procedure, - DeclarationType.PropertyGet, - DeclarationType.PropertyLet, - DeclarationType.PropertyLet, - DeclarationType.UserDefinedType, + DeclarationType.ClassModule, + DeclarationType.Control, + DeclarationType.Document, + DeclarationType.Enumeration, + DeclarationType.EnumerationMember, + DeclarationType.Event, + DeclarationType.Function, + DeclarationType.LibraryFunction, + DeclarationType.LibraryProcedure, + DeclarationType.LineLabel, + DeclarationType.ProceduralModule, + DeclarationType.ModuleOption, + DeclarationType.Project, + DeclarationType.Procedure, + DeclarationType.PropertyGet, + DeclarationType.PropertyLet, + DeclarationType.PropertyLet, + DeclarationType.UserDefinedType, DeclarationType.Constant, }; @@ -407,18 +447,18 @@ public virtual bool IsArray() private readonly IReadOnlyList _neverSpecified = new[] { - DeclarationType.Procedure, - DeclarationType.PropertyLet, - DeclarationType.PropertySet, - DeclarationType.UserDefinedType, - DeclarationType.ClassModule, - DeclarationType.Control, - DeclarationType.Enumeration, - DeclarationType.EnumerationMember, - DeclarationType.LibraryProcedure, - DeclarationType.LineLabel, - DeclarationType.ModuleOption, - DeclarationType.Project, + DeclarationType.Procedure, + DeclarationType.PropertyLet, + DeclarationType.PropertySet, + DeclarationType.UserDefinedType, + DeclarationType.ClassModule, + DeclarationType.Control, + DeclarationType.Enumeration, + DeclarationType.EnumerationMember, + DeclarationType.LibraryProcedure, + DeclarationType.LineLabel, + DeclarationType.ModuleOption, + DeclarationType.Project, }; public virtual bool IsTypeSpecified() @@ -465,19 +505,19 @@ public bool HasTypeHint() private readonly IReadOnlyList _neverHinted = new[] { - DeclarationType.ClassModule, - DeclarationType.LineLabel, - DeclarationType.ModuleOption, - DeclarationType.Project, - DeclarationType.Control, - DeclarationType.Enumeration, - DeclarationType.EnumerationMember, - DeclarationType.LibraryProcedure, - DeclarationType.Procedure, - DeclarationType.PropertyLet, - DeclarationType.PropertySet, + DeclarationType.ClassModule, + DeclarationType.LineLabel, + DeclarationType.ModuleOption, + DeclarationType.Project, + DeclarationType.Control, + DeclarationType.Enumeration, + DeclarationType.EnumerationMember, + DeclarationType.LibraryProcedure, + DeclarationType.Procedure, + DeclarationType.PropertyLet, + DeclarationType.PropertySet, DeclarationType.UserDefinedType, - DeclarationType.UserDefinedTypeMember, + DeclarationType.UserDefinedTypeMember, }; public bool HasTypeHint(out string token) @@ -491,7 +531,7 @@ public bool HasTypeHint(out string token) try { - var hint = ((dynamic) Context).typeHint(); + var hint = ((dynamic)Context).typeHint(); token = hint == null ? null : hint.GetText(); _hasTypeHint = hint != null; return _hasTypeHint.Value; @@ -596,12 +636,12 @@ public override int GetHashCode() unchecked { var hash = 17; - hash = hash*23 + QualifiedName.QualifiedModuleName.GetHashCode(); - hash = hash*23 + _identifierName.GetHashCode(); - hash = hash*23 + _declarationType.GetHashCode(); - hash = hash*23 + Scope.GetHashCode(); - hash = hash*23 + _parentScope.GetHashCode(); - hash = hash*23 + _selection.GetHashCode(); + hash = hash * 23 + QualifiedName.QualifiedModuleName.GetHashCode(); + hash = hash * 23 + _identifierName.GetHashCode(); + hash = hash * 23 + _declarationType.GetHashCode(); + hash = hash * 23 + Scope.GetHashCode(); + hash = hash * 23 + _parentScope.GetHashCode(); + hash = hash * 23 + _selection.GetHashCode(); return hash; } } diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 2b4c540c5a..3b2be743f4 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -12,6 +12,7 @@ public class DeclarationFinder { private readonly IDictionary _comments; private readonly IDictionary _annotations; + private readonly IReadOnlyList _declarations; private readonly IDictionary _declarationsByName; public DeclarationFinder( @@ -23,6 +24,7 @@ public DeclarationFinder( .ToDictionary(grouping => grouping.Key, grouping => grouping.ToArray()); _annotations = annotations.GroupBy(node => node.QualifiedSelection.QualifiedName) .ToDictionary(grouping => grouping.Key, grouping => grouping.ToArray()); + _declarations = declarations; _declarationsByName = declarations.GroupBy(declaration => new { IdentifierName = declaration.Project != null && @@ -31,7 +33,6 @@ public DeclarationFinder( : declaration.IdentifierName.ToLowerInvariant() }) .ToDictionary(grouping => grouping.Key.IdentifierName, grouping => grouping.ToArray()); - var ok = declarations.Where(a => a.IdentifierName == "Modul1").ToList(); } private readonly HashSet _projectScopePublicModifiers = @@ -43,6 +44,16 @@ public DeclarationFinder( Accessibility.Implicit, }); + public IEnumerable FindDeclarationsWithNonBaseAsType() + { + return _declarations + .Where(d => + !string.IsNullOrWhiteSpace(d.AsTypeName) + && !d.AsTypeIsBaseType + && d.DeclarationType != DeclarationType.Project + && !d.DeclarationType.HasFlag(DeclarationType.Module)).ToList(); + } + public IEnumerable ModuleComments(QualifiedModuleName module) { CommentNode[] result; @@ -199,7 +210,7 @@ public Declaration FindModuleEnclosingProjectWithoutEnclosingModule(Declaration var nameMatches = MatchName(calleeModuleName); var moduleMatches = nameMatches.Where(m => m.DeclarationType.HasFlag(moduleType) - && Declaration.GetMemberProject(m).Equals(callingProject) + && Declaration.GetProjectParent(m).Equals(callingProject) && !m.Equals(callingModule)); var accessibleModules = moduleMatches.Where(calledModule => AccessibilityCheck.IsModuleAccessible(callingProject, callingModule, calledModule)); var match = accessibleModules.FirstOrDefault(); @@ -216,19 +227,30 @@ public Declaration FindModuleReferencedProject(Declaration callingProject, Decla public Declaration FindModuleReferencedProject(Declaration callingProject, Declaration callingModule, Declaration referencedProject, string calleeModuleName, DeclarationType moduleType) { - var moduleMatches = FindAllInReferencedProjectByPriority(callingProject, calleeModuleName, p => referencedProject.Equals(Declaration.GetMemberProject(p)) && p.DeclarationType.HasFlag(moduleType)); + var moduleMatches = FindAllInReferencedProjectByPriority(callingProject, calleeModuleName, p => referencedProject.Equals(Declaration.GetProjectParent(p)) && p.DeclarationType.HasFlag(moduleType)); var accessibleModules = moduleMatches.Where(calledModule => AccessibilityCheck.IsModuleAccessible(callingProject, callingModule, calledModule)); var match = accessibleModules.FirstOrDefault(); return match; } + public Declaration FindMemberWithParent(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) + { + var allMatches = MatchName(memberName); + var memberMatches = allMatches.Where(m => + m.DeclarationType.HasFlag(memberType) + && callingParent.Equals(m.ParentDeclaration)); + var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); + var match = accessibleMembers.FirstOrDefault(); + return match; + } + public Declaration FindMemberEnclosingModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) { var allMatches = MatchName(memberName); var memberMatches = allMatches.Where(m => m.DeclarationType.HasFlag(memberType) - && Declaration.GetMemberProject(m).Equals(callingProject) - && callingModule.Equals(Declaration.GetMemberModule(m))); + && Declaration.GetProjectParent(m).Equals(callingProject) + && callingModule.Equals(Declaration.GetModuleParent(m))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -254,9 +276,11 @@ public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration c var allMatches = MatchName(memberName); var memberMatches = allMatches.Where(m => m.DeclarationType.HasFlag(memberType) - && Declaration.GetMemberModule(m).DeclarationType.HasFlag(moduleType) - && Declaration.GetMemberProject(m).Equals(callingProject) - && !callingModule.Equals(Declaration.GetMemberModule(m))); + // TODO: Fix this? + // Assume no module = built-in, not checkable thus we conservatively include it in the matches. + && (Declaration.GetModuleParent(m) == null || Declaration.GetModuleParent(m).DeclarationType.HasFlag(moduleType)) + && Declaration.GetProjectParent(m).Equals(callingProject) + && !callingModule.Equals(Declaration.GetModuleParent(m))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -267,8 +291,8 @@ public Declaration FindMemberEnclosedProjectInModule(Declaration callingProject, var allMatches = MatchName(memberName); var memberMatches = allMatches.Where(m => m.DeclarationType.HasFlag(memberType) - && Declaration.GetMemberProject(m).Equals(callingProject) - && memberModule.Equals(Declaration.GetMemberModule(m))); + && Declaration.GetProjectParent(m).Equals(callingProject) + && memberModule.Equals(Declaration.GetModuleParent(m))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -284,7 +308,7 @@ public Declaration FindMemberReferencedProject(Declaration callingProject, Decla public Declaration FindMemberReferencedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, DeclarationType moduleType, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetMemberModule(p).DeclarationType == moduleType); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetModuleParent(p).DeclarationType == moduleType); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -292,7 +316,7 @@ public Declaration FindMemberReferencedProjectInModule(Declaration callingProjec public Declaration FindMemberReferencedProjectInGlobalClassModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetMemberModule(p).DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)Declaration.GetMemberModule(p)).IsGlobalClassModule); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetModuleParent(p).DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)Declaration.GetModuleParent(p)).IsGlobalClassModule); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -300,7 +324,7 @@ public Declaration FindMemberReferencedProjectInGlobalClassModule(Declaration ca public Declaration FindMemberReferencedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration memberModule, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && memberModule.Equals(Declaration.GetMemberModule(p))); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && memberModule.Equals(Declaration.GetModuleParent(p))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -308,7 +332,7 @@ public Declaration FindMemberReferencedProjectInModule(Declaration callingProjec public Declaration FindMemberReferencedProject(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration referencedProject, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && referencedProject.Equals(Declaration.GetMemberProject(p))); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && referencedProject.Equals(Declaration.GetProjectParent(p))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index 40f39f8df0..5a577234d6 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -256,7 +256,6 @@ public override void EnterSubStmt(VBAParser.SubStmtContext context) { return; } - var name = context.identifier().GetText(); var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.Procedure, context, context.identifier().GetSelection()); OnNewDeclaration(declaration); @@ -282,7 +281,6 @@ public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context) var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Function, context, context.identifier().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); @@ -307,7 +305,6 @@ public override void EnterPropertyGetStmt(VBAParser.PropertyGetStmtContext conte var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.PropertyGet, context, context.identifier().GetSelection()); OnNewDeclaration(declaration); @@ -399,7 +396,6 @@ public override void EnterDeclareStmt(VBAParser.DeclareStmtContext context) ? Tokens.Variant : asTypeClause.type().GetText() : null; - var selection = nameContext.GetSelection(); var declarationType = hasReturnType @@ -426,7 +422,6 @@ public override void EnterArgList(VBAParser.ArgListContext context) var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var identifier = argContext.identifier(); if (identifier == null) { @@ -456,11 +451,10 @@ public override void EnterVariableSubStmt(VBAParser.VariableSubStmtContext conte var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var withEvents = parent.WITHEVENTS() != null; var selfAssigned = asTypeClause != null && asTypeClause.NEW() != null; - OnNewDeclaration(CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), selfAssigned, withEvents)); + OnNewDeclaration(CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), selfAssigned, withEvents)); } public override void EnterConstSubStmt(VBAParser.ConstSubStmtContext context) @@ -472,7 +466,6 @@ public override void EnterConstSubStmt(VBAParser.ConstSubStmtContext context) var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var identifier = context.identifier(); if (identifier == null) { @@ -512,7 +505,6 @@ public override void EnterTypeStmt_Element(VBAParser.TypeStmt_ElementContext con var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - OnNewDeclaration(CreateDeclaration(context.identifier().GetText(), asTypeName, Accessibility.Implicit, DeclarationType.UserDefinedTypeMember, context, context.identifier().GetSelection())); } diff --git a/Rubberduck.Parsing/Symbols/IdentifierReference.cs b/Rubberduck.Parsing/Symbols/IdentifierReference.cs index 679537ab73..463ea6903b 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReference.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReference.cs @@ -80,30 +80,7 @@ public bool IsInspectionDisabled(string inspectionName) public bool HasExplicitCallStatement() { - var memberProcedureCall = Context.Parent as VBAParser.ECS_MemberProcedureCallContext; - var procedureCall = Context.Parent as VBAParser.ECS_ProcedureCallContext; - - return HasExplicitCallStatement(memberProcedureCall) || HasExplicitCallStatement(procedureCall); - } - - private bool HasExplicitCallStatement(VBAParser.ECS_MemberProcedureCallContext call) - { - if (call == null) - { - return false; - } - var statement = call.CALL(); - return statement != null && statement.Symbol.Text == Tokens.Call; - } - - private bool HasExplicitCallStatement(VBAParser.ECS_ProcedureCallContext call) - { - if (call == null) - { - return false; - } - var statement = call.CALL(); - return statement != null && statement.Symbol.Text == Tokens.Call; + return Context.Parent is VBAParser.ExplicitCallStmtContext; } private bool? _hasTypeHint; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index 01100d59c7..bf1b48986a 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -1,3 +1,4 @@ +using Antlr4.Runtime.Misc; using Rubberduck.Parsing.Grammar; namespace Rubberduck.Parsing.Symbols @@ -101,7 +102,12 @@ public override void ExitWithStmt(VBAParser.WithStmtContext context) { _resolver.ExitWithBlock(); } - + + public override void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterICS_B_ProcedureCall(VBAParser.ICS_B_ProcedureCallContext context) { _resolver.Resolve(context); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 833d98099a..4135fa481f 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -122,7 +122,7 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) if (baseType == null) { string typeExpression = expr.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentScope, typeExpression); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(type.complexType(), declaration)); @@ -642,12 +642,7 @@ private Declaration ResolveInternal(VBAParser.ICS_S_MembersCallContext context, if (member == null && parent != null) { - var parentComTypeName = string.Empty; - var property = parent.QualifiedName.QualifiedModuleName.Component.Properties.Item("Parent"); - if (property != null) - { - parentComTypeName = ComHelper.GetTypeName(property.Object); - } + var parentComTypeName = GetParentComTypeName(parent); // if the member can't be found on the parentType, maybe we're looking at a document or form module? parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); @@ -756,12 +751,7 @@ public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) { if (parentScope != null) { - var parentComTypeName = string.Empty; - var property = parentScope.QualifiedName.QualifiedModuleName.Component.Properties.Item("Parent"); - if (property != null) - { - parentComTypeName = ComHelper.GetTypeName(property.Object); - } + var parentComTypeName = GetParentComTypeName(parentScope); // if the member can't be found on the parentType, maybe we're looking at a document or form module? parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); @@ -862,13 +852,7 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) if (member == null && parent != null) { - var parentComTypeName = string.Empty; - var property = parent.QualifiedName.QualifiedModuleName.Component.Properties.Item("Parent"); - if (property != null) - { - parentComTypeName = ComHelper.GetTypeName(property.Object); - } - + var parentComTypeName = GetParentComTypeName(parent); // if the member can't be found on the parentType, maybe we're looking at a document or form module? var parentType = _declarationFinder.FindClass(null, parentComTypeName); member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) @@ -894,6 +878,20 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) _alreadyResolved.Add(context); } + private string GetParentComTypeName(Declaration declaration) + { + if (declaration.QualifiedName.QualifiedModuleName.Component == null) + { + return string.Empty; + } + var property = declaration.QualifiedName.QualifiedModuleName.Component.Properties.OfType().Where(p => p.Name == "Parent").FirstOrDefault(); + if (property != null) + { + return ComHelper.GetTypeName(property.Object); + } + return string.Empty; + } + private VBAParser.IdentifierContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) { if (callContext == null) @@ -944,6 +942,16 @@ public void Resolve(VBAParser.SetStmtContext context) ResolveInternal(leftSide, _currentScope, ContextAccessorType.AssignReference, false, true); } + public void Resolve(VBAParser.ExplicitCallStmtContext context) + { + var expression = context.explicitCallStmtExpression().GetText(); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression); + if (boundExpression != null) + { + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.explicitCallStmtExpression(), declaration)); + } + } + public void Resolve(VBAParser.AsTypeClauseContext context) { var asType = context.type(); @@ -959,7 +967,7 @@ public void Resolve(VBAParser.AsTypeClauseContext context) if (context.fieldLength() != null && context.fieldLength().identifier() != null) { var constantName = context.fieldLength().identifier(); - var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentScope, constantName.GetText()); + var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, constantName.GetText()); if (constantNameExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(constantNameExpression, declaration => CreateReference(constantName, declaration)); @@ -968,7 +976,7 @@ public void Resolve(VBAParser.AsTypeClauseContext context) return; } string typeExpression = asType.complexType().GetText(); - var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentScope, typeExpression); + var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, typeExpression); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(asType.complexType(), declaration)); @@ -1027,7 +1035,7 @@ public void Resolve(VBAParser.ForEachStmtContext context) public void Resolve(VBAParser.ImplementsStmtContext context) { - var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentScope, context.valueStmt().GetText()); + var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, context.valueStmt().GetText()); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); @@ -1036,7 +1044,7 @@ public void Resolve(VBAParser.ImplementsStmtContext context) public void Resolve(VBAParser.VsAddressOfContext context) { - var boundExpression = _bindingService.ResolveProcedurePointer(_moduleDeclaration, _currentScope, context.valueStmt().GetText()); + var boundExpression = _bindingService.ResolveProcedurePointer(_moduleDeclaration, _currentParent, context.valueStmt().GetText()); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); diff --git a/Rubberduck.Parsing/Symbols/ParameterDeclaration.cs b/Rubberduck.Parsing/Symbols/ParameterDeclaration.cs index 6cb06960f2..6c76710002 100644 --- a/Rubberduck.Parsing/Symbols/ParameterDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ParameterDeclaration.cs @@ -15,7 +15,7 @@ public class ParameterDeclaration : Declaration /// public ParameterDeclaration(QualifiedMemberName qualifiedName, Declaration parentDeclaration, - string asTypeName, + string asTypeName, bool isOptional, bool isByRef, bool isArray = false, @@ -35,8 +35,8 @@ public ParameterDeclaration(QualifiedMemberName qualifiedName, Declaration parentDeclaration, ParserRuleContext context, Selection selection, - string asTypeName, - bool isOptional, + string asTypeName, + bool isOptional, bool isByRef, bool isArray = false, bool isParamArray = false) diff --git a/Rubberduck.Parsing/Symbols/ProceduralModuleDeclaration.cs b/Rubberduck.Parsing/Symbols/ProceduralModuleDeclaration.cs index 3522a65f34..54a2ebf1c7 100644 --- a/Rubberduck.Parsing/Symbols/ProceduralModuleDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ProceduralModuleDeclaration.cs @@ -11,7 +11,7 @@ public ProceduralModuleDeclaration( QualifiedMemberName qualifiedName, Declaration projectDeclaration, string name, - bool isBuiltIn, + bool isBuiltIn, IEnumerable annotations, Attributes attributes) : base( diff --git a/Rubberduck.Parsing/Symbols/ProjectDeclaration.cs b/Rubberduck.Parsing/Symbols/ProjectDeclaration.cs index f24a2d97fc..45b4719f12 100644 --- a/Rubberduck.Parsing/Symbols/ProjectDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ProjectDeclaration.cs @@ -15,7 +15,7 @@ public ProjectDeclaration( qualifiedName, null, (Declaration)null, - name, + name, false, false, Accessibility.Implicit, diff --git a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs index 6c80a76f60..adb553ef18 100644 --- a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs +++ b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs @@ -18,6 +18,7 @@ using TYPEFLAGS = System.Runtime.InteropServices.ComTypes.TYPEFLAGS; using VARDESC = System.Runtime.InteropServices.ComTypes.VARDESC; using Rubberduck.Parsing.Annotations; +using System.Linq; namespace Rubberduck.Parsing.Symbols { @@ -227,21 +228,21 @@ private Declaration CreateMemberDeclaration(out FUNCDESC memberDescriptor, TYPEK { IntPtr memberDescriptorPointer; info.GetFuncDesc(memberIndex, out memberDescriptorPointer); - memberDescriptor = (FUNCDESC) Marshal.PtrToStructure(memberDescriptorPointer, typeof (FUNCDESC)); + memberDescriptor = (FUNCDESC)Marshal.PtrToStructure(memberDescriptorPointer, typeof(FUNCDESC)); if (memberDescriptor.callconv != CALLCONV.CC_STDCALL) { memberDescriptor = new FUNCDESC(); - memberNames = new string[] {}; + memberNames = new string[] { }; return null; } memberNames = new string[255]; int namesArrayLength; info.GetNames(memberDescriptor.memid, memberNames, 255, out namesArrayLength); - + var memberName = memberNames[0]; - var funcValueType = (VarEnum) memberDescriptor.elemdescFunc.tdesc.vt; + var funcValueType = (VarEnum)memberDescriptor.elemdescFunc.tdesc.vt; var memberDeclarationType = GetDeclarationType(memberDescriptor, funcValueType, typeKind); var asTypeName = string.Empty; @@ -251,7 +252,7 @@ private Declaration CreateMemberDeclaration(out FUNCDESC memberDescriptor, TYPEK { try { - var asTypeDesc = (TYPEDESC) Marshal.PtrToStructure(memberDescriptor.elemdescFunc.tdesc.lpValue, typeof (TYPEDESC)); + var asTypeDesc = (TYPEDESC)Marshal.PtrToStructure(memberDescriptor.elemdescFunc.tdesc.lpValue, typeof(TYPEDESC)); asTypeName = GetTypeName(asTypeDesc, info); } catch @@ -264,7 +265,6 @@ private Declaration CreateMemberDeclaration(out FUNCDESC memberDescriptor, TYPEK asTypeName = funcValueType.ToString(); //TypeNames[VarEnum.VT_VARIANT]; } } - var attributes = new Attributes(); if (memberName == "_NewEnum" && ((FUNCFLAGS)memberDescriptor.wFuncFlags).HasFlag(FUNCFLAGS.FUNCFLAG_FNONBROWSABLE)) { @@ -306,7 +306,6 @@ private Declaration CreateFieldDeclaration(ITypeInfo info, int fieldIndex, Decla { asTypeName = TypeNames[VarEnum.VT_VARIANT]; } - return new Declaration(new QualifiedMemberName(typeQualifiedModuleName, fieldName), moduleDeclaration, moduleDeclaration, asTypeName, false, false, Accessibility.Global, memberType, null, Selection.Home); diff --git a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs new file mode 100644 index 0000000000..508ce881d8 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs @@ -0,0 +1,49 @@ +using Rubberduck.Parsing.Binding; +using System.Diagnostics; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class TypeAnnotationPass + { + private readonly DeclarationFinder _declarationFinder; + private readonly BindingService _bindingService; + private readonly BoundExpressionVisitor _boundExpressionVisitor; + + public TypeAnnotationPass(DeclarationFinder declarationFinder) + { + _declarationFinder = declarationFinder; + _bindingService = new BindingService( + new DefaultBindingContext(_declarationFinder), + new TypeBindingContext(_declarationFinder), + new ProcedurePointerBindingContext(_declarationFinder)); + _boundExpressionVisitor = new BoundExpressionVisitor(); + } + + public void Annotate() + { + Stopwatch stopwatch = Stopwatch.StartNew(); + foreach (var declaration in _declarationFinder.FindDeclarationsWithNonBaseAsType()) + { + AnnotateType(declaration); + } + stopwatch.Stop(); + Debug.WriteLine("Type annotations completed in {0}ms.", stopwatch.ElapsedMilliseconds); + } + + private void AnnotateType(Declaration declarationWithAsType) + { + string typeExpression = declarationWithAsType.AsTypeName; + var module = Declaration.GetModuleParent(declarationWithAsType); + if (module == null) + { + // TODO: Reference Collector does not add module, find workaround? + return; + } + var boundExpression = _bindingService.ResolveType(module, declarationWithAsType.ParentDeclaration, typeExpression); + if (boundExpression != null) + { + declarationWithAsType.AsTypeDeclaration = boundExpression.ReferencedDeclaration; + } + } + } +} \ No newline at end of file diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index 456a344ff3..f913561af8 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -519,7 +519,6 @@ private void ResolveReferences(DeclarationFinder finder, VBComponent component, { return; } - var qualifiedName = new QualifiedModuleName(component); Debug.WriteLine("Resolving identifier references in '{0}'... (thread {1})", qualifiedName.Name, Thread.CurrentThread.ManagedThreadId); var resolver = new IdentifierReferenceResolver(qualifiedName, finder); @@ -529,6 +528,7 @@ private void ResolveReferences(DeclarationFinder finder, VBComponent component, var walker = new ParseTreeWalker(); try { + new TypeAnnotationPass(finder).Annotate(); walker.Walk(listener, tree); state = ParserState.Ready; } @@ -551,19 +551,6 @@ private class ObsoleteCallStatementListener : VBAParserBaseListener public override void ExitExplicitCallStmt(VBAParser.ExplicitCallStmtContext context) { - var procedureCall = context.eCS_ProcedureCall(); - if (procedureCall != null) - { - if (procedureCall.CALL() != null) - { - _contexts.Add(context); - return; - } - } - - var memberCall = context.eCS_MemberProcedureCall(); - if (memberCall == null) return; - if (memberCall.CALL() == null) return; _contexts.Add(context); } } diff --git a/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs b/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs new file mode 100644 index 0000000000..f9f4f7eac6 --- /dev/null +++ b/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs @@ -0,0 +1,128 @@ +using Microsoft.Vbe.Interop; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Rubberduck.Parsing.Symbols; +using Rubberduck.Parsing.VBA; +using RubberduckTests.Mocks; +using System; +using System.Linq; + +namespace RubberduckTests.Binding +{ + [TestClass] + public class MemberAccessDefaultBindingTests + { + private const string BINDING_TARGET_LEXPRESSION = "BindingTarget"; + private const string BINDING_TARGET_UNRESTRICTEDNAME = "UnrestrictedName"; + private const string TEST_CLASS_NAME = "TestClass"; + private const string REFERENCED_PROJECT_FILEPATH = @"C:\Temp\ReferencedProjectA"; + + [TestClass] + public class ResolverTests + { + [TestMethod] + public void LExpressionIsVariablePropertyOrFunction() + { + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder("Any Project", vbext_ProjectProtection.vbext_pp_none); + string code = string.Format("Public Sub Test() {0} Dim {1} As {2} {0} Call {1}.{3} {0}End Sub", Environment.NewLine, "AnyName", BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); + enclosingProjectBuilder.AddComponent(BINDING_TARGET_LEXPRESSION, vbext_ComponentType.vbext_ct_ClassModule, CreateFunction(BINDING_TARGET_UNRESTRICTEDNAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void LExpressionIsProject() + { + const string PROJECT_NAME = "AnyProject"; + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(PROJECT_NAME, vbext_ProjectProtection.vbext_pp_none); + string code = string.Format("Public Sub Test() {0} Call {1}.{2} {0}End Sub", Environment.NewLine, PROJECT_NAME, BINDING_TARGET_UNRESTRICTEDNAME); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); + enclosingProjectBuilder.AddComponent("Anymodulename", vbext_ComponentType.vbext_ct_StdModule, CreateFunction(BINDING_TARGET_UNRESTRICTEDNAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void LExpressionIsProceduralModule() + { + const string PROJECT_NAME = "AnyProject"; + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(PROJECT_NAME, vbext_ProjectProtection.vbext_pp_none); + string code = string.Format("Public Sub Test() {0} Call {1}.{2} {0}End Sub", Environment.NewLine, BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); + enclosingProjectBuilder.AddComponent(BINDING_TARGET_LEXPRESSION, vbext_ComponentType.vbext_ct_StdModule, CreateFunction(BINDING_TARGET_UNRESTRICTEDNAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void LExpressionIsEnum() + { + const string PROJECT_NAME = "AnyProject"; + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder(PROJECT_NAME, vbext_ProjectProtection.vbext_pp_none); + string code = string.Format("Public Sub Test() {0} Call {1}.{2} {0}End Sub", Environment.NewLine, BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME); + enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); + enclosingProjectBuilder.AddComponent("AnyModule", vbext_ComponentType.vbext_ct_StdModule, CreateEnumType(BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME)); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.EnumerationMember && d.IdentifierName == BINDING_TARGET_UNRESTRICTEDNAME); + + Assert.AreEqual(1, declaration.References.Count()); + } + + private static RubberduckParserState Parse(Moq.Mock vbe) + { + var parser = MockParser.Create(vbe.Object, new RubberduckParserState()); + parser.Parse(); + if (parser.State.Status != ParserState.Ready) + { + Assert.Inconclusive("Parser state should be 'Ready', but returns '{0}'.", parser.State.Status); + } + var state = parser.State; + return state; + } + + private string CreateFunction(string functionName) + { + return string.Format(@" +Public Function {0}() As Variant + TestEnumMember +End Function +", functionName); + } + + private string CreateEnumType(string typeName, string memberName) + { + return string.Format(@" +Public Enum {0} + {1} +End Enum +", typeName, memberName); + } + } + } +} diff --git a/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs b/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs index 2906bc5e4a..dee289f013 100644 --- a/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs +++ b/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs @@ -29,7 +29,7 @@ public void LExpressionIsProjectAndUnrestrictedNameIsProject() var vbe = builder.Build(); var state = Parse(vbe); - var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.Project.Name == BINDING_TARGET_NAME); + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.ProjectName == BINDING_TARGET_NAME); // lExpression adds one reference, the MemberAcecssExpression adds another one. Assert.AreEqual(1, declaration.References.Count()); @@ -132,7 +132,7 @@ public void NestedMemberAccessExpressions() Declaration declaration; - declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.Project.Name == PROJECT_NAME); + declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.ProjectName == PROJECT_NAME); Assert.AreEqual(1, declaration.References.Count(), "Project reference expected"); declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.ClassModule && d.IdentifierName == CLASS_NAME); diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index 04e264ce5f..facbf6bfa1 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -77,6 +77,7 @@ + From 2681a456f14934234a7ce59f5723f3fc90e8127b Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sat, 30 Apr 2016 21:24:56 +0200 Subject: [PATCH 04/72] add function/procedure/property declarations + link parameters with their parent + link default member with class --- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 7 + .../Symbols/ClassModuleDeclaration.cs | 2 + Rubberduck.Parsing/Symbols/Declaration.cs | 27 ++-- .../Symbols/DeclarationSymbolsListener.cs | 35 ++++- .../Symbols/FunctionDeclaration.cs | 75 +++++++++++ .../Symbols/ICanBeDefaultMember.cs | 7 + .../Symbols/IDeclarationWithParameter.cs | 10 ++ .../Symbols/PropertyGetDeclaration.cs | 75 +++++++++++ .../Symbols/PropertyLetDeclaration.cs | 76 +++++++++++ .../Symbols/PropertySetDeclaration.cs | 75 +++++++++++ .../ReferencedDeclarationsCollector.cs | 126 +++++++++++++++--- .../Symbols/SubroutineDeclaration.cs | 75 +++++++++++ 12 files changed, 552 insertions(+), 38 deletions(-) create mode 100644 Rubberduck.Parsing/Symbols/FunctionDeclaration.cs create mode 100644 Rubberduck.Parsing/Symbols/ICanBeDefaultMember.cs create mode 100644 Rubberduck.Parsing/Symbols/IDeclarationWithParameter.cs create mode 100644 Rubberduck.Parsing/Symbols/PropertyGetDeclaration.cs create mode 100644 Rubberduck.Parsing/Symbols/PropertyLetDeclaration.cs create mode 100644 Rubberduck.Parsing/Symbols/PropertySetDeclaration.cs create mode 100644 Rubberduck.Parsing/Symbols/SubroutineDeclaration.cs diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 5e689c6fff..3313feb40d 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -210,6 +210,13 @@ + + + + + + + diff --git a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs index 82d6c7c510..32cdb39914 100644 --- a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs @@ -66,5 +66,7 @@ public bool IsGlobalClassModule return false; } } + + public Declaration DefaultMember { get; internal set; } } } diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index 6aae78bcf8..8e1282a899 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -122,6 +122,14 @@ public Declaration( _customFolder = result; } + public static bool HasParameter(DeclarationType declarationType) + { + return + declarationType.HasFlag(DeclarationType.Property) + || declarationType == DeclarationType.Function + || declarationType == DeclarationType.Procedure; + } + public static Declaration GetModuleParent(Declaration declaration) { if (declaration == null) @@ -223,25 +231,6 @@ public bool HasPredeclaredId } } - /// - /// Gets an attribute value indicating whether a member is a class' default member. - /// If this value is true, any reference to an instance of the class it's the default member of, - /// should count as a member call to this member. - /// - public bool IsDefaultMember - { - get - { - IEnumerable value; - if (_attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) - { - return value.Single() == "0"; - } - - return false; - } - } - /// /// Gets an attribute value that contains the docstring for a member. /// diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index 5a577234d6..79c4e3fb66 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -160,6 +160,10 @@ private Declaration CreateDeclaration(string identifierName, string asTypeName, var isParamArray = argContext.PARAMARRAY() != null; var isArray = argContext.LPAREN() != null; result = new ParameterDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, context, selection, asTypeName, isOptional, isByRef, isArray, isParamArray); + if (Declaration.HasParameter(_parentDeclaration.DeclarationType)) + { + ((IDeclarationWithParameter)_parentDeclaration).Add(result); + } } else { @@ -171,7 +175,34 @@ private Declaration CreateDeclaration(string identifierName, string asTypeName, } var annotations = FindAnnotations(selection.StartLine); - result = new Declaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, selfAssigned, withEvents, accessibility, declarationType, context, selection, false, annotations, attributes); + if (declarationType == DeclarationType.Procedure) + { + result = new SubroutineDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); + } + else if (declarationType == DeclarationType.Function) + { + result = new FunctionDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); + } + else if (declarationType == DeclarationType.PropertyGet) + { + result = new PropertyGetDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); + } + else if (declarationType == DeclarationType.PropertySet) + { + result = new PropertySetDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); + } + else if (declarationType == DeclarationType.PropertyLet) + { + result = new PropertyLetDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); + } + else + { + result = new Declaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, selfAssigned, withEvents, accessibility, declarationType, context, selection, false, annotations, attributes); + } + if (_parentDeclaration.DeclarationType == DeclarationType.ClassModule && result is ICanBeDefaultMember && ((ICanBeDefaultMember)result).IsDefaultMember) + { + ((ClassModuleDeclaration)_parentDeclaration).DefaultMember = result; + } } OnNewDeclaration(result); @@ -454,7 +485,7 @@ public override void EnterVariableSubStmt(VBAParser.VariableSubStmtContext conte var withEvents = parent.WITHEVENTS() != null; var selfAssigned = asTypeClause != null && asTypeClause.NEW() != null; - OnNewDeclaration(CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), selfAssigned, withEvents)); + OnNewDeclaration(CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Variable, context, context.identifier().GetSelection(), selfAssigned, withEvents)); } public override void EnterConstSubStmt(VBAParser.ConstSubStmtContext context) diff --git a/Rubberduck.Parsing/Symbols/FunctionDeclaration.cs b/Rubberduck.Parsing/Symbols/FunctionDeclaration.cs new file mode 100644 index 0000000000..8a98b33189 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/FunctionDeclaration.cs @@ -0,0 +1,75 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Annotations; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class FunctionDeclaration : Declaration, IDeclarationWithParameter, ICanBeDefaultMember + { + private readonly List _parameters; + + public FunctionDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations, + Attributes attributes) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + DeclarationType.Function, + context, + selection, + isBuiltIn, + annotations, + attributes) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + + /// + /// Gets an attribute value indicating whether a member is a class' default member. + /// If this value is true, any reference to an instance of the class it's the default member of, + /// should count as a member call to this member. + /// + public bool IsDefaultMember + { + get + { + IEnumerable value; + if (Attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) + { + return value.Single() == "0"; + } + + return false; + } + } + } +} diff --git a/Rubberduck.Parsing/Symbols/ICanBeDefaultMember.cs b/Rubberduck.Parsing/Symbols/ICanBeDefaultMember.cs new file mode 100644 index 0000000000..d3a356b261 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/ICanBeDefaultMember.cs @@ -0,0 +1,7 @@ +namespace Rubberduck.Parsing.Symbols +{ + public interface ICanBeDefaultMember + { + bool IsDefaultMember { get; } + } +} diff --git a/Rubberduck.Parsing/Symbols/IDeclarationWithParameter.cs b/Rubberduck.Parsing/Symbols/IDeclarationWithParameter.cs new file mode 100644 index 0000000000..716d2b8279 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/IDeclarationWithParameter.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace Rubberduck.Parsing.Symbols +{ + public interface IDeclarationWithParameter + { + IEnumerable Parameters { get; } + void Add(Declaration parameter); + } +} diff --git a/Rubberduck.Parsing/Symbols/PropertyGetDeclaration.cs b/Rubberduck.Parsing/Symbols/PropertyGetDeclaration.cs new file mode 100644 index 0000000000..c4017141b4 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/PropertyGetDeclaration.cs @@ -0,0 +1,75 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Annotations; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class PropertyGetDeclaration : Declaration, IDeclarationWithParameter, ICanBeDefaultMember + { + private readonly List _parameters; + + public PropertyGetDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations, + Attributes attributes) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + DeclarationType.PropertyGet, + context, + selection, + isBuiltIn, + annotations, + attributes) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + + /// + /// Gets an attribute value indicating whether a member is a class' default member. + /// If this value is true, any reference to an instance of the class it's the default member of, + /// should count as a member call to this member. + /// + public bool IsDefaultMember + { + get + { + IEnumerable value; + if (Attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) + { + return value.Single() == "0"; + } + + return false; + } + } + } +} diff --git a/Rubberduck.Parsing/Symbols/PropertyLetDeclaration.cs b/Rubberduck.Parsing/Symbols/PropertyLetDeclaration.cs new file mode 100644 index 0000000000..962192efe9 --- /dev/null +++ b/Rubberduck.Parsing/Symbols/PropertyLetDeclaration.cs @@ -0,0 +1,76 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Annotations; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System; +using System.Linq; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class PropertyLetDeclaration : Declaration, IDeclarationWithParameter, ICanBeDefaultMember + { + private readonly List _parameters; + + public PropertyLetDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations, + Attributes attributes) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + DeclarationType.PropertyLet, + context, + selection, + isBuiltIn, + annotations, + attributes) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + + /// + /// Gets an attribute value indicating whether a member is a class' default member. + /// If this value is true, any reference to an instance of the class it's the default member of, + /// should count as a member call to this member. + /// + public bool IsDefaultMember + { + get + { + IEnumerable value; + if (Attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) + { + return value.Single() == "0"; + } + + return false; + } + } + } +} diff --git a/Rubberduck.Parsing/Symbols/PropertySetDeclaration.cs b/Rubberduck.Parsing/Symbols/PropertySetDeclaration.cs new file mode 100644 index 0000000000..0f331f36bf --- /dev/null +++ b/Rubberduck.Parsing/Symbols/PropertySetDeclaration.cs @@ -0,0 +1,75 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Annotations; +using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class PropertySetDeclaration : Declaration, IDeclarationWithParameter, ICanBeDefaultMember + { + private readonly List _parameters; + + public PropertySetDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations, + Attributes attributes) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + DeclarationType.PropertySet, + context, + selection, + isBuiltIn, + annotations, + attributes) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + + /// + /// Gets an attribute value indicating whether a member is a class' default member. + /// If this value is true, any reference to an instance of the class it's the default member of, + /// should count as a member call to this member. + /// + public bool IsDefaultMember + { + get + { + IEnumerable value; + if (Attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) + { + return value.Single() == "0"; + } + + return false; + } + } + } +} diff --git a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs index adb553ef18..3507047e52 100644 --- a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs +++ b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs @@ -84,7 +84,7 @@ private string GetTypeName(TYPEDESC desc, ITypeInfo info) switch (vt) { case VarEnum.VT_PTR: - tdesc = (TYPEDESC) Marshal.PtrToStructure(desc.lpValue, typeof (TYPEDESC)); + tdesc = (TYPEDESC)Marshal.PtrToStructure(desc.lpValue, typeof(TYPEDESC)); return GetTypeName(tdesc, info); case VarEnum.VT_USERDEFINED: unchecked @@ -95,7 +95,7 @@ private string GetTypeName(TYPEDESC desc, ITypeInfo info) return GetTypeName(refTypeInfo); } case VarEnum.VT_CARRAY: - tdesc = (TYPEDESC) Marshal.PtrToStructure(desc.lpValue, typeof (TYPEDESC)); + tdesc = (TYPEDESC)Marshal.PtrToStructure(desc.lpValue, typeof(TYPEDESC)); return GetTypeName(tdesc, info) + "()"; default: string result; @@ -144,7 +144,7 @@ public IEnumerable GetDeclarationsForReference(Reference reference) { typeLibrary.GetTypeInfo(i, out info); } - catch(NullReferenceException) + catch (NullReferenceException) { yield break; } @@ -173,7 +173,7 @@ public IEnumerable GetDeclarationsForReference(Reference reference) IntPtr typeAttributesPointer; info.GetTypeAttr(out typeAttributesPointer); - var typeAttributes = (TYPEATTR)Marshal.PtrToStructure(typeAttributesPointer, typeof (TYPEATTR)); + var typeAttributes = (TYPEATTR)Marshal.PtrToStructure(typeAttributesPointer, typeof(TYPEATTR)); //var implements = GetImplementedInterfaceNames(typeAttributes, info); var attributes = new Attributes(); @@ -196,7 +196,7 @@ public IEnumerable GetDeclarationsForReference(Reference reference) moduleDeclaration = new Declaration(typeQualifiedMemberName, projectDeclaration, projectDeclaration, typeName, false, false, Accessibility.Global, typeDeclarationType, null, Selection.Home, true, null, attributes); } yield return moduleDeclaration; - + for (var memberIndex = 0; memberIndex < typeAttributes.cFuncs; memberIndex++) { FUNCDESC memberDescriptor; @@ -206,13 +206,21 @@ public IEnumerable GetDeclarationsForReference(Reference reference) { continue; } - + if (moduleDeclaration.DeclarationType == DeclarationType.ClassModule && memberDeclaration is ICanBeDefaultMember && ((ICanBeDefaultMember)memberDeclaration).IsDefaultMember) + { + ((ClassModuleDeclaration)moduleDeclaration).DefaultMember = memberDeclaration; + } yield return memberDeclaration; var parameterCount = memberDescriptor.cParams - 1; for (var paramIndex = 0; paramIndex < parameterCount; paramIndex++) { - yield return CreateParameterDeclaration(memberNames, paramIndex, memberDescriptor, typeQualifiedModuleName, memberDeclaration); + var parameter = CreateParameterDeclaration(memberNames, paramIndex, memberDescriptor, typeQualifiedModuleName, memberDeclaration); + if (Declaration.HasParameter(memberDeclaration.DeclarationType)) + { + ((IDeclarationWithParameter)memberDeclaration).Add(parameter); + } + yield return parameter; } } @@ -220,7 +228,7 @@ public IEnumerable GetDeclarationsForReference(Reference reference) { yield return CreateFieldDeclaration(info, fieldIndex, typeDeclarationType, typeQualifiedModuleName, moduleDeclaration); } - } + } } private Declaration CreateMemberDeclaration(out FUNCDESC memberDescriptor, TYPEKIND typeKind, ITypeInfo info, int memberIndex, @@ -280,9 +288,93 @@ private Declaration CreateMemberDeclaration(out FUNCDESC memberDescriptor, TYPEK attributes.AddHiddenMemberAttribute(memberName); } - return new Declaration(new QualifiedMemberName(typeQualifiedModuleName, memberName), - moduleDeclaration, moduleDeclaration, asTypeName, false, false, Accessibility.Global, memberDeclarationType, - null, Selection.Home, true, null, attributes); + if (memberDeclarationType == DeclarationType.Procedure) + { + return new SubroutineDeclaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + Accessibility.Global, + null, + Selection.Home, + true, + null, + attributes); + } + else if (memberDeclarationType == DeclarationType.Function) + { + return new FunctionDeclaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + Accessibility.Global, + null, + Selection.Home, + true, + null, + attributes); + } + else if (memberDeclarationType == DeclarationType.PropertyGet) + { + return new PropertyGetDeclaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + Accessibility.Global, + null, + Selection.Home, + true, + null, + attributes); + } + else if (memberDeclarationType == DeclarationType.PropertySet) + { + return new PropertySetDeclaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + Accessibility.Global, + null, + Selection.Home, + true, + null, + attributes); + } + else if (memberDeclarationType == DeclarationType.PropertyLet) + { + return new PropertyLetDeclaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + Accessibility.Global, + null, + Selection.Home, + true, + null, + attributes); + } + else + { + return new Declaration( + new QualifiedMemberName(typeQualifiedModuleName, memberName), + moduleDeclaration, + moduleDeclaration, + asTypeName, + false, + false, + Accessibility.Global, + memberDeclarationType, + null, + Selection.Home, + true, + null, + attributes); + } } private Declaration CreateFieldDeclaration(ITypeInfo info, int fieldIndex, DeclarationType typeDeclarationType, @@ -291,14 +383,14 @@ private Declaration CreateFieldDeclaration(ITypeInfo info, int fieldIndex, Decla IntPtr ppVarDesc; info.GetVarDesc(fieldIndex, out ppVarDesc); - var varDesc = (VARDESC) Marshal.PtrToStructure(ppVarDesc, typeof (VARDESC)); + var varDesc = (VARDESC)Marshal.PtrToStructure(ppVarDesc, typeof(VARDESC)); var names = new string[255]; int namesArrayLength; info.GetNames(varDesc.memid, names, 255, out namesArrayLength); var fieldName = names[0]; - var fieldValueType = (VarEnum) varDesc.elemdescVar.tdesc.vt; + var fieldValueType = (VarEnum)varDesc.elemdescVar.tdesc.vt; var memberType = GetDeclarationType(varDesc, typeDeclarationType); string asTypeName; @@ -316,20 +408,20 @@ private static ParameterDeclaration CreateParameterDeclaration(IReadOnlyList _parameters; + + public SubroutineDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations, + Attributes attributes) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + DeclarationType.Procedure, + context, + selection, + isBuiltIn, + annotations, + attributes) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + + /// + /// Gets an attribute value indicating whether a member is a class' default member. + /// If this value is true, any reference to an instance of the class it's the default member of, + /// should count as a member call to this member. + /// + public bool IsDefaultMember + { + get + { + IEnumerable value; + if (Attributes.TryGetValue(IdentifierName + ".VB_UserMemId", out value)) + { + return value.Single() == "0"; + } + + return false; + } + } + } +} From 81b4b1be21b77180e6cb4c6489d2a420f017a267 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 00:06:24 +0200 Subject: [PATCH 05/72] implement index expressions in default binding context --- .../Common/DeclarationExtensions.cs | 4 +- .../Binding/DefaultBindingContext.cs | 14 + .../Binding/IndexDefaultBinding.cs | 302 ++++++++++++++++++ Rubberduck.Parsing/Binding/IndexExpression.cs | 28 ++ Rubberduck.Parsing/Rubberduck.Parsing.csproj | 2 + .../Symbols/BoundExpressionVisitor.cs | 10 + Rubberduck.Parsing/Symbols/Declaration.cs | 6 +- .../Symbols/TypeAnnotationPass.cs | 11 +- .../Binding/IndexDefaultBindingTests.cs | 101 ++++++ RubberduckTests/RubberduckTests.csproj | 1 + 10 files changed, 476 insertions(+), 3 deletions(-) create mode 100644 Rubberduck.Parsing/Binding/IndexDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/IndexExpression.cs create mode 100644 RubberduckTests/Binding/IndexDefaultBindingTests.cs diff --git a/RetailCoder.VBE/Common/DeclarationExtensions.cs b/RetailCoder.VBE/Common/DeclarationExtensions.cs index 772cc51e64..fb95892230 100644 --- a/RetailCoder.VBE/Common/DeclarationExtensions.cs +++ b/RetailCoder.VBE/Common/DeclarationExtensions.cs @@ -415,9 +415,11 @@ public static Declaration FindTarget(this IEnumerable declarations, { var items = declarations.ToList(); + // TODO: Due to the new binding mechanism this can have more than one match (e.g. in the case of index expressions + simple name expressions) + // Left as is for now because the binding is not fully integrated yet. var target = items .Where(item => !item.IsBuiltIn && validDeclarationTypes.Contains(item.DeclarationType)) - .SingleOrDefault(item => item.IsSelected(selection) + .FirstOrDefault(item => item.IsSelected(selection) || item.References.Any(r => r.IsSelected(selection))); if (target != null) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 21ccd328f7..4cc36c54c0 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -86,6 +86,20 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + } + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) { return VisitTypeContext(module, parent, expression.simpleNameExpression()); diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs new file mode 100644 index 0000000000..6ff34e28e1 --- /dev/null +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -0,0 +1,302 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; +using System.Linq; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class IndexDefaultBinding : IExpressionBinding + { + private readonly DeclarationFinder _declarationFinder; + private readonly Declaration _project; + private readonly Declaration _module; + private readonly Declaration _parent; + private readonly VBAExpressionParser.IndexExpressionContext _indexExpression; + private readonly VBAExpressionParser.IndexExprContext _indexExpr; + private readonly IExpressionBinding _lExpressionBinding; + + private const int DEFAULT_MEMBER_RECURSION_LIMIT = 32; + private int _defaultMemberRecursionLimitCounter = 0; + + public IndexDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + VBAExpressionParser.IndexExpressionContext expression, + IExpressionBinding lExpressionBinding) + { + _declarationFinder = declarationFinder; + _project = project; + _module = module; + _parent = parent; + _indexExpression = expression; + _lExpressionBinding = lExpressionBinding; + } + + public IndexDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + VBAExpressionParser.IndexExprContext expression, + IExpressionBinding lExpressionBinding) + { + _declarationFinder = declarationFinder; + _project = project; + _module = module; + _parent = parent; + _indexExpr = expression; + _lExpressionBinding = lExpressionBinding; + } + + private ParserRuleContext GetExpressionContext() + { + if (_indexExpression != null) + { + return _indexExpression; + } + return _indexExpr; + } + + private VBAExpressionParser.ArgumentListContext GetArgumentList() + { + if (_indexExpression != null) + { + return _indexExpression.argumentList(); + } + return _indexExpr.argumentList(); + } + + public IBoundExpression Resolve() + { + var lExpression = _lExpressionBinding.Resolve(); + return Resolve(lExpression); + } + + private IBoundExpression Resolve(IBoundExpression lExpression) + { + IBoundExpression boundExpression = null; + if (lExpression == null) + { + return null; + } + var argumentList = GetArgumentList(); + boundExpression = ResolveLExpressionIsVariablePropertyFunctionNoParameters(lExpression, argumentList); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsPropertyFunctionSubroutine(lExpression); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionIsUnbound(lExpression); + if (boundExpression != null) + { + return boundExpression; + } + return null; + } + + private IBoundExpression ResolveLExpressionIsVariablePropertyFunctionNoParameters(IBoundExpression lExpression, VBAExpressionParser.ArgumentListContext argumentList) + { + /* + is classified as a variable, or is classified as a property or function + with a parameter list that cannot accept any parameters and an that is not + empty, and one of the following is true (see below): + */ + bool isVariable = lExpression.Classification == ExpressionClassification.Variable; + bool propertyWithParameters = lExpression.Classification == ExpressionClassification.Property && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); + bool functionWithParameters = lExpression.Classification == ExpressionClassification.Function && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); + if (isVariable || + ((!propertyWithParameters || !functionWithParameters)) && HasArguments(argumentList)) + { + IBoundExpression boundExpression = null; + var asTypeName = lExpression.ReferencedDeclaration.AsTypeName; + var asTypeDeclaration = lExpression.ReferencedDeclaration.AsTypeDeclaration; + boundExpression = ResolveDefaultMember(lExpression, asTypeName, asTypeDeclaration); + if (boundExpression != null) + { + return boundExpression; + } + boundExpression = ResolveLExpressionDeclaredTypeIsArray(lExpression, asTypeDeclaration, argumentList); + if (boundExpression != null) + { + return boundExpression; + } + return boundExpression; + } + return null; + } + + private IBoundExpression ResolveDefaultMember(IBoundExpression lExpression, string asTypeName, Declaration asTypeDeclaration) + { + /* + The declared type of is Object or Variant, and contains no + named arguments. In this case, the index expression is classified as an unbound member with + a declared type of Variant, referencing with no member name. + */ + if (asTypeName != null && (asTypeName.ToUpperInvariant() == "VARIANT" || asTypeName.ToUpperInvariant() == "OBJECT")) + { + return new IndexExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + } + /* + The declared type of is a specific class, which has a public default Property + Get, Property Let, function or subroutine, and one of the following is true: + */ + bool hasDefaultMember = asTypeDeclaration != null + && asTypeDeclaration.DeclarationType == DeclarationType.ClassModule + && ((ClassModuleDeclaration)asTypeDeclaration).DefaultMember != null; + if (hasDefaultMember) + { + ClassModuleDeclaration classModule = (ClassModuleDeclaration)asTypeDeclaration; + Declaration defaultMember = classModule.DefaultMember; + bool isPropertyGetLetFunctionProcedure = + defaultMember.DeclarationType == DeclarationType.PropertyGet + || defaultMember.DeclarationType == DeclarationType.PropertyLet + || defaultMember.DeclarationType == DeclarationType.Function + || defaultMember.DeclarationType == DeclarationType.Procedure; + bool isPublic = + defaultMember.Accessibility == Accessibility.Global + || defaultMember.Accessibility == Accessibility.Implicit + || defaultMember.Accessibility == Accessibility.Public; + if (isPropertyGetLetFunctionProcedure && isPublic) + { + /** + This default member cannot accept any parameters. In this case, the static analysis restarts + recursively, as if this default member was specified instead for with the + same . + */ + if (((IDeclarationWithParameter)defaultMember).Parameters.Count() == 0) + { + // Recursion limit reached, abort. + if (DEFAULT_MEMBER_RECURSION_LIMIT == _defaultMemberRecursionLimitCounter) + { + return null; + } + _defaultMemberRecursionLimitCounter++; + ExpressionClassification classification; + if (defaultMember.DeclarationType.HasFlag(DeclarationType.Property)) + { + classification = ExpressionClassification.Property; + } + else if (defaultMember.DeclarationType == DeclarationType.Procedure) + { + classification = ExpressionClassification.Subroutine; + } + else + { + classification = ExpressionClassification.Function; + } + var defaultMemberAsLExpression = new SimpleNameExpression(defaultMember, classification, GetExpressionContext()); + return Resolve(defaultMemberAsLExpression); + } + else + { + /* + This default member’s parameter list is compatible with . In this case, the + index expression references this default member and takes on its classification and + declared type. + + Note: To not have to deal with implementing parameter compatibility ourselves we simply assume + that they are compatible otherwise it wouldn't have compiled in the VBE. + */ + return new IndexExpression(defaultMember, lExpression.Classification, GetExpressionContext(), lExpression); + } + } + } + return null; + } + + private IBoundExpression ResolveLExpressionDeclaredTypeIsArray(IBoundExpression lExpression, Declaration asTypeDeclaration, VBAExpressionParser.ArgumentListContext argumentList) + { + // TODO: Test this as soon as parser has as type fixed. + + /* + The declared type of is an array type, an empty argument list has not already + been specified for it, and one of the following is true: + */ + if (asTypeDeclaration != null && asTypeDeclaration.IsArray()) + { + /* + represents an empty argument list. In this case, the index expression + takes on the classification and declared type of and references the same + array. + */ + if (!HasArguments(argumentList)) + { + return new IndexExpression(asTypeDeclaration, lExpression.Classification, GetExpressionContext(), lExpression); + } + else + { + /* + represents an argument list with a number of positional arguments equal + to the rank of the array, and with no named arguments. In this case, the index expression + references an individual element of the array, is classified as a variable and has the + declared type of the array’s element type. + + Note: We assume this is the case without checking, enfored by the VBE. + */ + if (!HasNamedArguments(argumentList)) + { + return new IndexExpression(asTypeDeclaration, ExpressionClassification.Variable, GetExpressionContext(), lExpression); + } + } + } + return null; + } + + private IBoundExpression ResolveLExpressionIsPropertyFunctionSubroutine(IBoundExpression lExpression) + { + /* + is classified as a property or function and its parameter list is compatible with + . In this case, the index expression references and takes on its + classification and declared type. + + is classified as a subroutine and its parameter list is compatible with . In this case, the index expression references and takes on its classification + and declared type. + + Note: We assume compatibility through enforcement by the VBE. + */ + if (lExpression.Classification == ExpressionClassification.Property + || lExpression.Classification == ExpressionClassification.Function + || lExpression.Classification == ExpressionClassification.Subroutine) + { + return new IndexExpression(lExpression.ReferencedDeclaration, lExpression.Classification, GetExpressionContext(), lExpression); + } + return null; + } + + private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpression) + { + /* + is classified as an unbound member. In this case, the index expression references + , is classified as an unbound member and its declared type is Variant. + */ + if (lExpression.Classification == ExpressionClassification.Unbound) + { + return new IndexExpression(lExpression.ReferencedDeclaration, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + } + return null; + } + + private bool HasNamedArguments(VBAExpressionParser.ArgumentListContext argumentList) + { + var list = argumentList.positionalOrNamedArgumentList(); + return list.namedArgumentList() != null && list.namedArgumentList().namedArgument().Count > 0; + } + + private bool HasRequiredPositionalArgument(VBAExpressionParser.ArgumentListContext argumentList) + { + var list = argumentList.positionalOrNamedArgumentList(); + return list.requiredPositionalArgument() != null; + } + + private bool HasArguments(VBAExpressionParser.ArgumentListContext argumentList) + { + return HasRequiredPositionalArgument(argumentList) || HasNamedArguments(argumentList); + } + } +} diff --git a/Rubberduck.Parsing/Binding/IndexExpression.cs b/Rubberduck.Parsing/Binding/IndexExpression.cs new file mode 100644 index 0000000000..b4515417fa --- /dev/null +++ b/Rubberduck.Parsing/Binding/IndexExpression.cs @@ -0,0 +1,28 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class IndexExpression : BoundExpression + { + private readonly IBoundExpression _lExpression; + + public IndexExpression( + Declaration referencedDeclaration, + ExpressionClassification classification, + ParserRuleContext context, + IBoundExpression lExpression) + : base(referencedDeclaration, classification, context) + { + _lExpression = lExpression; + } + + public IBoundExpression LExpression + { + get + { + return _lExpression; + } + } + } +} diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 3313feb40d..bbf9d9c289 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -76,6 +76,8 @@ + + diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 931bb9847c..aa2d42a5bb 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -25,6 +25,16 @@ private void Visit(MemberAccessExpression expression, Func referenceCreator) + { + Visit((dynamic)expression.LExpression, referenceCreator); + // Expressions could be unbound thus not have a referenced declaration. The lexpression might still be bindable though. + if (expression.Classification != ExpressionClassification.Unbound) + { + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + } + } + private void Visit(NewExpression expression, Func referenceCreator) { // We don't need to add a reference to the NewExpression's referenced declaration since that's covered diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index 8e1282a899..84bf166700 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -279,7 +279,6 @@ public void AddReference(IdentifierReference reference) { return; } - if (reference.Context.Parent != _context && !_references.Select(r => r.Context).Contains(reference.Context.Parent) && !_references.Any(r => r.QualifiedModuleName == reference.QualifiedModuleName @@ -450,6 +449,11 @@ public virtual bool IsArray() DeclarationType.Project, }; + public VBAParser.AsTypeClauseContext GetAsTypeContext() + { + return (VBAParser.AsTypeClauseContext)((dynamic)Context).asTypeClause(); + } + public virtual bool IsTypeSpecified() { if (Context == null || _neverSpecified.Any(item => DeclarationType.HasFlag(item))) diff --git a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs index 508ce881d8..3e8194552b 100644 --- a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs +++ b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs @@ -32,7 +32,16 @@ public void Annotate() private void AnnotateType(Declaration declarationWithAsType) { - string typeExpression = declarationWithAsType.AsTypeName; + string typeExpression; + if (declarationWithAsType.IsTypeSpecified()) + { + var typeContext = declarationWithAsType.GetAsTypeContext(); + typeExpression = typeContext.type().complexType().GetText(); + } + else + { + return; + } var module = Declaration.GetModuleParent(declarationWithAsType); if (module == null) { diff --git a/RubberduckTests/Binding/IndexDefaultBindingTests.cs b/RubberduckTests/Binding/IndexDefaultBindingTests.cs new file mode 100644 index 0000000000..c9f274bab6 --- /dev/null +++ b/RubberduckTests/Binding/IndexDefaultBindingTests.cs @@ -0,0 +1,101 @@ +using Microsoft.Vbe.Interop; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Rubberduck.Parsing.Symbols; +using Rubberduck.Parsing.VBA; +using RubberduckTests.Mocks; +using System; +using System.Linq; + +namespace RubberduckTests.Binding +{ + [TestClass] + public class IndexDefaultBindingTests + { + private const string BINDING_TARGET_LEXPRESSION = "BindingTarget"; + private const string BINDING_TARGET_UNRESTRICTEDNAME = "UnrestrictedName"; + private const string TEST_CLASS_NAME = "TestClass"; + private const string REFERENCED_PROJECT_FILEPATH = @"C:\Temp\ReferencedProjectA"; + + [TestClass] + public class ResolverTests + { + [TestMethod] + public void RecursiveDefaultMember() + { + string callerModule = @" +Public Property Get Ok() As Klasse1 +End Property + +Public Sub Test() + Call Ok(1) +End Sub +"; + + string middleman = @" +Public Property Get Test1() As Klasse2 +End Property +"; + + string defaultMemberClass = @" +Public Property Get Test2(a As Integer) + Test2 = 2 +End Property +"; + + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder("Any Project", vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddComponent("AnyModule1", vbext_ComponentType.vbext_ct_StdModule, callerModule); + enclosingProjectBuilder.AddComponent("AnyClass", vbext_ComponentType.vbext_ct_ClassModule, middleman); + enclosingProjectBuilder.AddComponent("AnyClass2", vbext_ComponentType.vbext_ct_ClassModule, defaultMemberClass); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet && d.IdentifierName == "Test2"); + + Assert.AreEqual(1, declaration.References.Count()); + } + + [TestMethod] + public void NormalPropertyFunctionSubroutine() + { + string callerModule = @" +Public Sub Test() + Call Test1(1) +End Sub +"; + + string property = @" +Public Property Get Test1(a As Integer) As Long +End Property +"; + + var builder = new MockVbeBuilder(); + var enclosingProjectBuilder = builder.ProjectBuilder("Any Project", vbext_ProjectProtection.vbext_pp_none); + enclosingProjectBuilder.AddComponent("AnyModule1", vbext_ComponentType.vbext_ct_StdModule, callerModule); + enclosingProjectBuilder.AddComponent("AnyClass", vbext_ComponentType.vbext_ct_StdModule, property); + var enclosingProject = enclosingProjectBuilder.Build(); + builder.AddProject(enclosingProject); + var vbe = builder.Build(); + var state = Parse(vbe); + + var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.PropertyGet && d.IdentifierName == "Test1"); + + Assert.AreEqual(1, declaration.References.Count()); + } + + private static RubberduckParserState Parse(Moq.Mock vbe) + { + var parser = MockParser.Create(vbe.Object, new RubberduckParserState()); + parser.Parse(); + if (parser.State.Status != ParserState.Ready) + { + Assert.Inconclusive("Parser state should be 'Ready', but returns '{0}'.", parser.State.Status); + } + var state = parser.State; + return state; + } + } + } +} diff --git a/RubberduckTests/RubberduckTests.csproj b/RubberduckTests/RubberduckTests.csproj index facbf6bfa1..03f702235f 100644 --- a/RubberduckTests/RubberduckTests.csproj +++ b/RubberduckTests/RubberduckTests.csproj @@ -77,6 +77,7 @@ + From 4ab1957cc261300719d394ce7538cad9bcebe7e9 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 00:34:40 +0200 Subject: [PATCH 06/72] implement dictionary access expressions --- Rubberduck.Parsing/Binding/ArgumentList.cs | 44 ++++++++++ .../Binding/ArgumentListArgument.cs | 20 +++++ .../Binding/ArgumentListArgumentType.cs | 8 ++ .../Binding/DefaultBindingContext.cs | 28 ++++++ .../Binding/IndexDefaultBinding.cs | 87 +++++++++++++------ Rubberduck.Parsing/Rubberduck.Parsing.csproj | 3 + .../Symbols/IdentifierReferenceResolver.cs | 4 + 7 files changed, 167 insertions(+), 27 deletions(-) create mode 100644 Rubberduck.Parsing/Binding/ArgumentList.cs create mode 100644 Rubberduck.Parsing/Binding/ArgumentListArgument.cs create mode 100644 Rubberduck.Parsing/Binding/ArgumentListArgumentType.cs diff --git a/Rubberduck.Parsing/Binding/ArgumentList.cs b/Rubberduck.Parsing/Binding/ArgumentList.cs new file mode 100644 index 0000000000..85ad668c87 --- /dev/null +++ b/Rubberduck.Parsing/Binding/ArgumentList.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class ArgumentList + { + private readonly List _arguments; + + public ArgumentList() + { + _arguments = new List(); + } + + public void AddArgument(ArgumentListArgumentType argumentType) + { + _arguments.Add(new ArgumentListArgument(argumentType)); + } + + public bool HasArguments + { + get + { + return HasRequiredPositionalArgument|| HasNamedArguments; + } + } + + public bool HasNamedArguments + { + get + { + return _arguments.Any(a => a.ArgumentType == ArgumentListArgumentType.Named); + } + } + + public bool HasRequiredPositionalArgument + { + get + { + return _arguments.Any(a => a.ArgumentType == ArgumentListArgumentType.Positional); + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/ArgumentListArgument.cs b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs new file mode 100644 index 0000000000..df0e0dd692 --- /dev/null +++ b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs @@ -0,0 +1,20 @@ +namespace Rubberduck.Parsing.Binding +{ + public sealed class ArgumentListArgument + { + private readonly ArgumentListArgumentType _argumentType; + + public ArgumentListArgument(ArgumentListArgumentType argumentType) + { + _argumentType = argumentType; + } + + public ArgumentListArgumentType ArgumentType + { + get + { + return _argumentType; + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/ArgumentListArgumentType.cs b/Rubberduck.Parsing/Binding/ArgumentListArgumentType.cs new file mode 100644 index 0000000000..004163049d --- /dev/null +++ b/Rubberduck.Parsing/Binding/ArgumentListArgumentType.cs @@ -0,0 +1,8 @@ +namespace Rubberduck.Parsing.Binding +{ + public enum ArgumentListArgumentType + { + Positional, + Named + } +} diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 4cc36c54c0..38376ed78c 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -100,6 +100,34 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression) + { + /* + A dictionary access expression is syntactically translated into an index expression with the same + expression for and an argument list with a single positional argument with a + declared type of String and a value equal to the name value of . + */ + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + var fakeArgList = new ArgumentList(); + fakeArgList.AddArgument(ArgumentListArgumentType.Positional); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression) + { + /* + A dictionary access expression is syntactically translated into an index expression with the same + expression for and an argument list with a single positional argument with a + declared type of String and a value equal to the name value of . + */ + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression); + var fakeArgList = new ArgumentList(); + fakeArgList.AddArgument(ArgumentListArgumentType.Positional); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); + } + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) { return VisitTypeContext(module, parent, expression.simpleNameExpression()); diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index 6ff34e28e1..a1c304e76b 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -12,7 +12,9 @@ public sealed class IndexDefaultBinding : IExpressionBinding private readonly Declaration _parent; private readonly VBAExpressionParser.IndexExpressionContext _indexExpression; private readonly VBAExpressionParser.IndexExprContext _indexExpr; + private readonly ParserRuleContext _unknownOriginExpr; private readonly IExpressionBinding _lExpressionBinding; + private readonly ArgumentList _argumentList; private const int DEFAULT_MEMBER_RECURSION_LIMIT = 32; private int _defaultMemberRecursionLimitCounter = 0; @@ -31,6 +33,7 @@ public IndexDefaultBinding( _parent = parent; _indexExpression = expression; _lExpressionBinding = lExpressionBinding; + _argumentList = ConvertContextToArgumentList(GetArgumentListContext()); } public IndexDefaultBinding( @@ -47,6 +50,25 @@ public IndexDefaultBinding( _parent = parent; _indexExpr = expression; _lExpressionBinding = lExpressionBinding; + _argumentList = ConvertContextToArgumentList(GetArgumentListContext()); + } + + public IndexDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + ParserRuleContext expression, + IExpressionBinding lExpressionBinding, + ArgumentList argumentList) + { + _declarationFinder = declarationFinder; + _project = project; + _module = module; + _parent = parent; + _unknownOriginExpr = expression; + _lExpressionBinding = lExpressionBinding; + _argumentList = argumentList; } private ParserRuleContext GetExpressionContext() @@ -55,10 +77,14 @@ private ParserRuleContext GetExpressionContext() { return _indexExpression; } - return _indexExpr; + if (_indexExpr != null) + { + return _indexExpr; + } + return _unknownOriginExpr; } - private VBAExpressionParser.ArgumentListContext GetArgumentList() + private VBAExpressionParser.ArgumentListContext GetArgumentListContext() { if (_indexExpression != null) { @@ -67,6 +93,31 @@ private VBAExpressionParser.ArgumentListContext GetArgumentList() return _indexExpr.argumentList(); } + private ArgumentList ConvertContextToArgumentList(VBAExpressionParser.ArgumentListContext argumentList) + { + var convertedList = new ArgumentList(); + var list = argumentList.positionalOrNamedArgumentList(); + if (list.positionalArgument() != null) + { + foreach (var expr in list.positionalArgument()) + { + convertedList.AddArgument(ArgumentListArgumentType.Positional); + } + } + if (list.requiredPositionalArgument() != null) + { + convertedList.AddArgument(ArgumentListArgumentType.Positional); + } + if (list.namedArgumentList() != null) + { + foreach (var expr in list.namedArgumentList().namedArgument()) + { + convertedList.AddArgument(ArgumentListArgumentType.Named); + } + } + return convertedList; + } + public IBoundExpression Resolve() { var lExpression = _lExpressionBinding.Resolve(); @@ -80,8 +131,7 @@ private IBoundExpression Resolve(IBoundExpression lExpression) { return null; } - var argumentList = GetArgumentList(); - boundExpression = ResolveLExpressionIsVariablePropertyFunctionNoParameters(lExpression, argumentList); + boundExpression = ResolveLExpressionIsVariablePropertyFunctionNoParameters(lExpression); if (boundExpression != null) { return boundExpression; @@ -99,7 +149,7 @@ private IBoundExpression Resolve(IBoundExpression lExpression) return null; } - private IBoundExpression ResolveLExpressionIsVariablePropertyFunctionNoParameters(IBoundExpression lExpression, VBAExpressionParser.ArgumentListContext argumentList) + private IBoundExpression ResolveLExpressionIsVariablePropertyFunctionNoParameters(IBoundExpression lExpression) { /* is classified as a variable, or is classified as a property or function @@ -110,7 +160,7 @@ with a parameter list that cannot accept any parameters and an t bool propertyWithParameters = lExpression.Classification == ExpressionClassification.Property && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); bool functionWithParameters = lExpression.Classification == ExpressionClassification.Function && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); if (isVariable || - ((!propertyWithParameters || !functionWithParameters)) && HasArguments(argumentList)) + ((!propertyWithParameters || !functionWithParameters)) && _argumentList.HasArguments) { IBoundExpression boundExpression = null; var asTypeName = lExpression.ReferencedDeclaration.AsTypeName; @@ -120,7 +170,7 @@ with a parameter list that cannot accept any parameters and an t { return boundExpression; } - boundExpression = ResolveLExpressionDeclaredTypeIsArray(lExpression, asTypeDeclaration, argumentList); + boundExpression = ResolveLExpressionDeclaredTypeIsArray(lExpression, asTypeDeclaration); if (boundExpression != null) { return boundExpression; @@ -209,7 +259,7 @@ that they are compatible otherwise it wouldn't have compiled in the VBE. return null; } - private IBoundExpression ResolveLExpressionDeclaredTypeIsArray(IBoundExpression lExpression, Declaration asTypeDeclaration, VBAExpressionParser.ArgumentListContext argumentList) + private IBoundExpression ResolveLExpressionDeclaredTypeIsArray(IBoundExpression lExpression, Declaration asTypeDeclaration) { // TODO: Test this as soon as parser has as type fixed. @@ -224,7 +274,7 @@ private IBoundExpression ResolveLExpressionDeclaredTypeIsArray(IBoundExpression takes on the classification and declared type of and references the same array. */ - if (!HasArguments(argumentList)) + if (!_argumentList.HasArguments) { return new IndexExpression(asTypeDeclaration, lExpression.Classification, GetExpressionContext(), lExpression); } @@ -238,7 +288,7 @@ declared type of the array’s element type. Note: We assume this is the case without checking, enfored by the VBE. */ - if (!HasNamedArguments(argumentList)) + if (!_argumentList.HasNamedArguments) { return new IndexExpression(asTypeDeclaration, ExpressionClassification.Variable, GetExpressionContext(), lExpression); } @@ -281,22 +331,5 @@ private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpressio } return null; } - - private bool HasNamedArguments(VBAExpressionParser.ArgumentListContext argumentList) - { - var list = argumentList.positionalOrNamedArgumentList(); - return list.namedArgumentList() != null && list.namedArgumentList().namedArgument().Count > 0; - } - - private bool HasRequiredPositionalArgument(VBAExpressionParser.ArgumentListContext argumentList) - { - var list = argumentList.positionalOrNamedArgumentList(); - return list.requiredPositionalArgument() != null; - } - - private bool HasArguments(VBAExpressionParser.ArgumentListContext argumentList) - { - return HasRequiredPositionalArgument(argumentList) || HasNamedArguments(argumentList); - } } } diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index bbf9d9c289..7678b1b9f3 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -74,6 +74,9 @@ + + + diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 4135fa481f..25f5b3d3c2 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -835,6 +835,10 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) return; } + var expression = context.GetText(); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression); + + var chainedCalls = context.iCS_S_MemberCall(); foreach (var memberCall in chainedCalls) { From c0d229435cff7d37b3998e1bad515e81efdb9171 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 01:05:46 +0200 Subject: [PATCH 07/72] implement with expression binding resolution --- Rubberduck.Parsing/Binding/BindingService.cs | 15 +- .../Binding/DefaultBindingContext.cs | 105 ++++++---- Rubberduck.Parsing/Binding/IBindingContext.cs | 2 +- .../Binding/MemberAccessDefaultBinding.cs | 183 +++++++++--------- .../Binding/ProcedurePointerBindingContext.cs | 5 +- .../Binding/TypeBindingContext.cs | 5 +- .../Symbols/IdentifierReferenceResolver.cs | 21 +- 7 files changed, 193 insertions(+), 143 deletions(-) diff --git a/Rubberduck.Parsing/Binding/BindingService.cs b/Rubberduck.Parsing/Binding/BindingService.cs index 51d4e625fd..55035a865e 100644 --- a/Rubberduck.Parsing/Binding/BindingService.cs +++ b/Rubberduck.Parsing/Binding/BindingService.cs @@ -12,7 +12,7 @@ public sealed class BindingService public BindingService( IBindingContext defaultBindingContext, - IBindingContext typedBindingContext, + IBindingContext typedBindingContext, IBindingContext procedurePointerBindingContext) { _defaultBindingContext = defaultBindingContext; @@ -20,22 +20,27 @@ public BindingService( _procedurePointerBindingContext = procedurePointerBindingContext; } - public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression) + public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, string innerMostWithBlockVariableExpression) { var expr = Parse(expression); - return _defaultBindingContext.Resolve(module, parent, expr); + ParserRuleContext innerMostWithBlockVariableExpr = null; + if (!string.IsNullOrWhiteSpace(innerMostWithBlockVariableExpression)) + { + innerMostWithBlockVariableExpr = Parse(innerMostWithBlockVariableExpression); + } + return _defaultBindingContext.Resolve(module, parent, expr, innerMostWithBlockVariableExpr); } public IBoundExpression ResolveType(Declaration module, Declaration parent, string expression) { var expr = Parse(expression); - return _typedBindingContext.Resolve(module, parent, expr); + return _typedBindingContext.Resolve(module, parent, expr, null); } public IBoundExpression ResolveProcedurePointer(Declaration module, Declaration parent, string expression) { var expr = Parse(expression); - return _procedurePointerBindingContext.Resolve(module, parent, expr); + return _procedurePointerBindingContext.Resolve(module, parent, expr, null); } private VBAExpressionParser.ExpressionContext Parse(string expression) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 38376ed78c..b3c8d5a234 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -12,10 +12,10 @@ public DefaultBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic dynamicExpression = expression; - IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression); + IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression, innerMostWithVariableExpression); if (bindingTree != null) { return bindingTree.Resolve(); @@ -23,20 +23,20 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lexpr = expression.lExpression(); - return Visit(module, parent, lexpr); + return Visit(module, parent, lexpr, innerMostWithVariableExpression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression, ParserRuleContext innerMostWithVariableExpression) { - return Visit(module, parent, expression.newExpression()); + return Visit(module, parent, expression.newExpression(), innerMostWithVariableExpression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { - var typeExpressionBinding = Visit(module, parent, expression.typeExpression()); + var typeExpressionBinding = Visit(module, parent, expression.typeExpression(), innerMostWithVariableExpression); if (typeExpressionBinding == null) { return null; @@ -44,88 +44,115 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new NewTypeBinding(_declarationFinder, module, parent, expression, typeExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { if (expression.builtInType() != null) { return null; } - return Visit(module, parent, expression.definedTypeExpression()); + return Visit(module, parent, expression.definedTypeExpression(), innerMostWithVariableExpression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { if (expression.simpleNameExpression() != null) { return VisitTypeContext(module, parent, expression.simpleNameExpression()); } - return VisitTypeContext(module, parent, expression.memberAccessExpression()); + return VisitTypeContext(module, parent, expression.memberAccessExpression(), innerMostWithVariableExpression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression, ParserRuleContext innerMostWithVariableExpression) { - return Visit(module, parent, expression.simpleNameExpression()); + return Visit(module, parent, expression.simpleNameExpression(), innerMostWithVariableExpression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { return new SimpleNameDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); + return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + { + dynamic lExpression = expression.lExpression(); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); + return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + } + + private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, IExpressionBinding lExpressionBinding) { /* A dictionary access expression is syntactically translated into an index expression with the same expression for and an argument list with a single positional argument with a declared type of String and a value equal to the name value of . */ - dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); var fakeArgList = new ArgumentList(); fakeArgList.AddArgument(ArgumentListArgumentType.Positional); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExprContext expression, ParserRuleContext innerMostWithVariableExpression) + { + return Visit(module, parent, expression.withExpression(), innerMostWithVariableExpression); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { /* - A dictionary access expression is syntactically translated into an index expression with the same - expression for and an argument list with a single positional argument with a - declared type of String and a value equal to the name value of . + A or is + statically resolved as a normal member access or dictionary access expression, respectively, as if + the innermost enclosing With block variable was specified for . If there is no + enclosing With block, the is invalid. */ - dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); - var fakeArgList = new ArgumentList(); - fakeArgList.AddArgument(ArgumentListArgumentType.Positional); - return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); + if (innerMostWithVariableExpression == null) + { + return null; + } + dynamic lExpression = innerMostWithVariableExpression; + var lExpressionBinding = Visit(module, parent, lExpression, null); + if (expression.withMemberAccessExpression() != null) + { + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, innerMostWithVariableExpression, lExpressionBinding, expression.withMemberAccessExpression().unrestrictedName().GetText()); + } + else + { + return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + } } private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) @@ -138,17 +165,17 @@ private IExpressionBinding VisitTypeContext(Declaration module, Declaration pare return new SimpleNameTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression) + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression) + private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression); + var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } } diff --git a/Rubberduck.Parsing/Binding/IBindingContext.cs b/Rubberduck.Parsing/Binding/IBindingContext.cs index fe60dbcb06..ced5c63997 100644 --- a/Rubberduck.Parsing/Binding/IBindingContext.cs +++ b/Rubberduck.Parsing/Binding/IBindingContext.cs @@ -5,6 +5,6 @@ namespace Rubberduck.Parsing.Binding { public interface IBindingContext { - IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression); + IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression); } } diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs index 832c2c13ce..543025ebb5 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -9,8 +9,8 @@ public sealed class MemberAccessDefaultBinding : IExpressionBinding private readonly Declaration _project; private readonly Declaration _module; private readonly Declaration _parent; - private readonly VBAExpressionParser.MemberAccessExpressionContext _memberAccessExpression; - private readonly VBAExpressionParser.MemberAccessExprContext _memberAccessExpr; + private readonly ParserRuleContext _context; + private readonly string _name; private readonly IExpressionBinding _lExpressionBinding; public MemberAccessDefaultBinding( @@ -20,13 +20,15 @@ public MemberAccessDefaultBinding( Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IExpressionBinding lExpressionBinding) + : this( + declarationFinder, + project, + module, + parent, + expression, + lExpressionBinding, + ExpressionName.GetName(expression.unrestrictedName())) { - _declarationFinder = declarationFinder; - _project = project; - _module = module; - _parent = parent; - _memberAccessExpression = expression; - _lExpressionBinding = lExpressionBinding; } public MemberAccessDefaultBinding( @@ -36,33 +38,35 @@ public MemberAccessDefaultBinding( Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IExpressionBinding lExpressionBinding) + : this( + declarationFinder, + project, + module, + parent, + expression, + lExpressionBinding, + ExpressionName.GetName(expression.unrestrictedName())) + { + } + + public MemberAccessDefaultBinding( + DeclarationFinder declarationFinder, + Declaration project, + Declaration module, + Declaration parent, + ParserRuleContext expression, + IExpressionBinding lExpressionBinding, + string name) { _declarationFinder = declarationFinder; _project = project; _module = module; _parent = parent; - _memberAccessExpr = expression; + _context = expression; + _name = name; _lExpressionBinding = lExpressionBinding; } - private ParserRuleContext GetExpressionContext() - { - if (_memberAccessExpression != null) - { - return _memberAccessExpression; - } - return _memberAccessExpr; - } - - private string GetUnrestrictedName() - { - if (_memberAccessExpression != null) - { - return ExpressionName.GetName(_memberAccessExpression.unrestrictedName()); - } - return ExpressionName.GetName(_memberAccessExpr.unrestrictedName()); - } - public IBoundExpression Resolve() { IBoundExpression boundExpression = null; @@ -71,28 +75,27 @@ public IBoundExpression Resolve() { return null; } - string unrestrictedName = GetUnrestrictedName(); - boundExpression = ResolveLExpressionIsVariablePropertyOrFunction(lExpression, unrestrictedName); + boundExpression = ResolveLExpressionIsVariablePropertyOrFunction(lExpression); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsUnbound(lExpression, unrestrictedName); + boundExpression = ResolveLExpressionIsUnbound(lExpression); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsProject(lExpression, unrestrictedName); + boundExpression = ResolveLExpressionIsProject(lExpression); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsProceduralModule(lExpression, unrestrictedName); + boundExpression = ResolveLExpressionIsProceduralModule(lExpression); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsEnum(lExpression, unrestrictedName); + boundExpression = ResolveLExpressionIsEnum(lExpression); if (boundExpression != null) { return boundExpression; @@ -100,7 +103,7 @@ public IBoundExpression Resolve() return null; } - private IBoundExpression ResolveLExpressionIsVariablePropertyOrFunction(IBoundExpression lExpression, string name) + private IBoundExpression ResolveLExpressionIsVariablePropertyOrFunction(IBoundExpression lExpression) { /* @@ -139,41 +142,41 @@ expression is classified as an unbound member and has a declared type of Variant { return null; } - var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Variable); + var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Variable); if (variable != null) { - return new MemberAccessExpression(variable, ExpressionClassification.Variable, GetExpressionContext(), lExpression); + return new MemberAccessExpression(variable, ExpressionClassification.Variable, _context, lExpression); } - var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Property); + var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Property); if (property != null) { - return new MemberAccessExpression(property, ExpressionClassification.Property, GetExpressionContext(), lExpression); + return new MemberAccessExpression(property, ExpressionClassification.Property, _context, lExpression); } - var function = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Function); + var function = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Function); if (function != null) { - return new MemberAccessExpression(function, ExpressionClassification.Function, GetExpressionContext(), lExpression); + return new MemberAccessExpression(function, ExpressionClassification.Function, _context, lExpression); } - var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, name, DeclarationType.Procedure); + var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Procedure); if (subroutine != null) { - return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, GetExpressionContext(), lExpression); + return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, _context, lExpression); } // Note: To not have to deal with declared types we simply assume that no match means unbound member. // This way the rest of the member access expression can still be bound. - return new MemberAccessExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, lExpression); } - private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpression, string name) + private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpression) { if (lExpression.Classification != ExpressionClassification.Unbound) { return null; } - return new MemberAccessExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, lExpression); } - private IBoundExpression ResolveLExpressionIsProject(IBoundExpression lExpression, string name) + private IBoundExpression ResolveLExpressionIsProject(IBoundExpression lExpression) { /* is classified as a project, this project is either the enclosing project or a @@ -204,47 +207,47 @@ with the same declared type as the member. IBoundExpression boundExpression = null; var referencedProject = lExpression.ReferencedDeclaration; bool lExpressionIsEnclosingProject = _project.Equals(referencedProject); - boundExpression = ResolveProject(lExpression, name); + boundExpression = ResolveProject(lExpression); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveProceduralModule(lExpressionIsEnclosingProject, lExpression, name, referencedProject); + boundExpression = ResolveProceduralModule(lExpressionIsEnclosingProject, lExpression, referencedProject); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Property, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Function, ExpressionClassification.Function); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Function, ExpressionClassification.Function); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Procedure, ExpressionClassification.Subroutine); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Procedure, ExpressionClassification.Subroutine); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Constant, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Constant, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.Enumeration, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Enumeration, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, name, referencedProject, DeclarationType.EnumerationMember, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.EnumerationMember, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; @@ -252,72 +255,72 @@ with the same declared type as the member. return boundExpression; } - private IBoundExpression ResolveProject(IBoundExpression lExpression, string name) + private IBoundExpression ResolveProject(IBoundExpression lExpression) { - if (_declarationFinder.IsMatch(_project.ProjectName, name)) + if (_declarationFinder.IsMatch(_project.ProjectName, _name)) { - return new MemberAccessExpression(_project, ExpressionClassification.Project, GetExpressionContext(), lExpression); + return new MemberAccessExpression(_project, ExpressionClassification.Project, _context, lExpression); } - var referencedProjectRightOfDot = _declarationFinder.FindReferencedProject(_project, name); + var referencedProjectRightOfDot = _declarationFinder.FindReferencedProject(_project, _name); if (referencedProjectRightOfDot != null) { - return new MemberAccessExpression(referencedProjectRightOfDot, ExpressionClassification.Project, GetExpressionContext(), lExpression); + return new MemberAccessExpression(referencedProjectRightOfDot, ExpressionClassification.Project, _context, lExpression); } return null; } - private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, string name, Declaration referencedProject) + private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, Declaration referencedProject) { if (lExpressionIsEnclosingProject) { - if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, name)) + if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, _name)) { - return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, _context, lExpression); } - var proceduralModuleEnclosingProject = _declarationFinder.FindModuleEnclosingProjectWithoutEnclosingModule(_project, _module, name, DeclarationType.ProceduralModule); + var proceduralModuleEnclosingProject = _declarationFinder.FindModuleEnclosingProjectWithoutEnclosingModule(_project, _module, _name, DeclarationType.ProceduralModule); if (proceduralModuleEnclosingProject != null) { - return new MemberAccessExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + return new MemberAccessExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _context, lExpression); } } else { - var proceduralModuleInReferencedProject = _declarationFinder.FindModuleReferencedProject(_project, _module, referencedProject, name, DeclarationType.ProceduralModule); + var proceduralModuleInReferencedProject = _declarationFinder.FindModuleReferencedProject(_project, _module, referencedProject, _name, DeclarationType.ProceduralModule); if (proceduralModuleInReferencedProject != null) { - return new MemberAccessExpression(proceduralModuleInReferencedProject, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression); + return new MemberAccessExpression(proceduralModuleInReferencedProject, ExpressionClassification.ProceduralModule, _context, lExpression); } } return null; } - private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, string name, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) + private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) { if (lExpressionIsEnclosingProject) { - var foundType = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, memberType); + var foundType = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, _name, memberType); if (foundType != null) { - return new MemberAccessExpression(foundType, classification, GetExpressionContext(), lExpression); + return new MemberAccessExpression(foundType, classification, _context, lExpression); } - var accessibleType = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, memberType); + var accessibleType = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, _name, memberType); if (accessibleType != null) { - return new MemberAccessExpression(accessibleType, classification, GetExpressionContext(), lExpression); + return new MemberAccessExpression(accessibleType, classification, _context, lExpression); } } else { - var referencedProjectType = _declarationFinder.FindMemberReferencedProject(_project, _module, _parent, referencedProject, name, memberType); + var referencedProjectType = _declarationFinder.FindMemberReferencedProject(_project, _module, _parent, referencedProject, _name, memberType); if (referencedProjectType != null) { - return new MemberAccessExpression(referencedProjectType, classification, GetExpressionContext(), lExpression); + return new MemberAccessExpression(referencedProjectType, classification, _context, lExpression); } } return null; } - private IBoundExpression ResolveLExpressionIsProceduralModule(IBoundExpression lExpression, string name) + private IBoundExpression ResolveLExpressionIsProceduralModule(IBoundExpression lExpression) { /* is classified as a procedural module, this procedural module has an accessible @@ -337,37 +340,37 @@ the same declared type as the member. return null; } IBoundExpression boundExpression = null; - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Variable, ExpressionClassification.Variable); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Variable, ExpressionClassification.Variable); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Function, ExpressionClassification.Function); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Function, ExpressionClassification.Function); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Procedure, ExpressionClassification.Subroutine); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Procedure, ExpressionClassification.Subroutine); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Constant, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Constant, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.Enumeration, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Enumeration, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, name, lExpression.ReferencedDeclaration, DeclarationType.EnumerationMember, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.EnumerationMember, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; @@ -375,23 +378,23 @@ the same declared type as the member. return boundExpression; } - private IBoundExpression ResolveMemberInModule(IBoundExpression lExpression, string name, Declaration module, DeclarationType memberType, ExpressionClassification classification) + private IBoundExpression ResolveMemberInModule(IBoundExpression lExpression, Declaration module, DeclarationType memberType, ExpressionClassification classification) { - var enclosingProjectType = _declarationFinder.FindMemberEnclosedProjectInModule(_project, _module, _parent, module, name, memberType); + var enclosingProjectType = _declarationFinder.FindMemberEnclosedProjectInModule(_project, _module, _parent, module, _name, memberType); if (enclosingProjectType != null) { - return new MemberAccessExpression(enclosingProjectType, classification, GetExpressionContext(), lExpression); + return new MemberAccessExpression(enclosingProjectType, classification, _context, lExpression); } - var referencedProjectType = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, module, name, memberType); + var referencedProjectType = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, module, _name, memberType); if (referencedProjectType != null) { - return new MemberAccessExpression(referencedProjectType, classification, GetExpressionContext(), lExpression); + return new MemberAccessExpression(referencedProjectType, classification, _context, lExpression); } return null; } - private IBoundExpression ResolveLExpressionIsEnum(IBoundExpression lExpression, string name) + private IBoundExpression ResolveLExpressionIsEnum(IBoundExpression lExpression) { /* is classified as a type, this type is an Enum type, and this type has an enum @@ -402,10 +405,10 @@ as a value with the same declared type as the enum member. { return null; } - var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, lExpression.ReferencedDeclaration, name, DeclarationType.EnumerationMember); + var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, lExpression.ReferencedDeclaration, _name, DeclarationType.EnumerationMember); if (enumMember != null) { - return new MemberAccessExpression(enumMember, ExpressionClassification.Value, GetExpressionContext(), lExpression); + return new MemberAccessExpression(enumMember, ExpressionClassification.Value, _context, lExpression); } return null; } diff --git a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs index c52e6a92b1..138d697cd1 100644 --- a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs +++ b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs @@ -1,4 +1,5 @@ -using Antlr4.Runtime; +using System; +using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; namespace Rubberduck.Parsing.Binding @@ -12,7 +13,7 @@ public ProcedurePointerBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic dynamicExpression = expression; IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression); diff --git a/Rubberduck.Parsing/Binding/TypeBindingContext.cs b/Rubberduck.Parsing/Binding/TypeBindingContext.cs index 2b8c69730b..ea92257e18 100644 --- a/Rubberduck.Parsing/Binding/TypeBindingContext.cs +++ b/Rubberduck.Parsing/Binding/TypeBindingContext.cs @@ -1,4 +1,5 @@ -using Antlr4.Runtime; +using System; +using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; namespace Rubberduck.Parsing.Binding @@ -12,7 +13,7 @@ public TypeBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) { dynamic dynamicExpression = expression; IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 25f5b3d3c2..7dec1c5785 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -31,6 +31,7 @@ private enum ContextAccessorType private readonly IReadOnlyList _returningMemberTypes; private readonly Stack _withBlockQualifiers; + private readonly Stack _withBlockExpressions; private readonly HashSet _alreadyResolved; private readonly Declaration _moduleDeclaration; @@ -48,6 +49,7 @@ public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, Decl _qualifiedModuleName = qualifiedModuleName; _withBlockQualifiers = new Stack(); + _withBlockExpressions = new Stack(); _alreadyResolved = new HashSet(); _moduleTypes = new[] @@ -122,7 +124,7 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) if (baseType == null) { string typeExpression = expr.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression, GetInnerMostWithExpression()); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(type.complexType(), declaration)); @@ -132,11 +134,22 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) } // note: pushes null if unresolved _withBlockQualifiers.Push(qualifier); + _withBlockExpressions.Push(expr.GetText()); + } + + private string GetInnerMostWithExpression() + { + if (_withBlockExpressions.Any()) + { + return _withBlockExpressions.Peek(); + } + return null; } public void ExitWithBlock() { _withBlockQualifiers.Pop(); + _withBlockExpressions.Pop(); } private IdentifierReference CreateReference(ParserRuleContext callSiteContext, Declaration callee, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) @@ -836,7 +849,7 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) } var expression = context.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); var chainedCalls = context.iCS_S_MemberCall(); @@ -949,7 +962,7 @@ public void Resolve(VBAParser.SetStmtContext context) public void Resolve(VBAParser.ExplicitCallStmtContext context) { var expression = context.explicitCallStmtExpression().GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); if (boundExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.explicitCallStmtExpression(), declaration)); @@ -971,7 +984,7 @@ public void Resolve(VBAParser.AsTypeClauseContext context) if (context.fieldLength() != null && context.fieldLength().identifier() != null) { var constantName = context.fieldLength().identifier(); - var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, constantName.GetText()); + var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, constantName.GetText(), GetInnerMostWithExpression()); if (constantNameExpression != null) { _boundExpressionVisitor.AddIdentifierReferences(constantNameExpression, declaration => CreateReference(constantName, declaration)); From facce6b9e9d62ba3be858124dd6eb09887fb5286 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 15:41:01 +0200 Subject: [PATCH 08/72] add all other expression binding resolutions + allow expressions in with statements --- .../FunctionReturnValueNotUsedInspection.cs | 24 +- Rubberduck.Parsing/Binding/ArgumentList.cs | 12 +- .../Binding/ArgumentListArgument.cs | 18 +- .../Binding/BinaryOpDefaultBinding.cs | 37 + .../Binding/BinaryOpExpression.cs | 38 + Rubberduck.Parsing/Binding/BindingService.cs | 13 +- .../Binding/DefaultBindingContext.cs | 261 +- Rubberduck.Parsing/Binding/IBindingContext.cs | 3 +- .../Binding/IndexDefaultBinding.cs | 112 +- Rubberduck.Parsing/Binding/IndexExpression.cs | 13 +- .../Binding/InstanceDefaultBinding.cs | 24 + .../Binding/InstanceExpression.cs | 16 + .../Binding/LiteralDefaultBinding.cs | 19 + .../Binding/LiteralExpression.cs | 12 + .../Binding/MemberAccessDefaultBinding.cs | 127 +- Rubberduck.Parsing/Binding/NewExpression.cs | 3 +- .../Binding/ParenthesizedDefaultBinding.cs | 28 + .../Binding/ParenthesizedExpression.cs | 27 + .../Binding/ProcedurePointerBindingContext.cs | 31 +- .../Binding/TypeBindingContext.cs | 14 +- .../Binding/TypeOfIsDefaultBinding.cs | 34 + .../Binding/TypeOfIsExpression.cs | 38 + .../Binding/UnaryOpDefaultBinding.cs | 29 + .../Binding/UnaryOpExpression.cs | 27 + Rubberduck.Parsing/Grammar/VBAParser.cs | 2845 ++++++++--------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 3 +- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 14 +- .../Symbols/BoundExpressionVisitor.cs | 37 + .../Symbols/DeclarationFinder.cs | 2 +- .../Symbols/IdentifierReferenceListener.cs | 2 +- .../Symbols/IdentifierReferenceResolver.cs | 60 +- ...onHelper.cs => ParserRuleContextHelper.cs} | 2 +- .../Symbols/TypeAnnotationPass.cs | 15 +- ...nctionReturnValueNotUsedInspectionTests.cs | 2 +- ...rocedureShouldBeFunctionInspectionTests.cs | 1 + 35 files changed, 2224 insertions(+), 1719 deletions(-) create mode 100644 Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/BinaryOpExpression.cs create mode 100644 Rubberduck.Parsing/Binding/InstanceDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/InstanceExpression.cs create mode 100644 Rubberduck.Parsing/Binding/LiteralDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/LiteralExpression.cs create mode 100644 Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/ParenthesizedExpression.cs create mode 100644 Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/TypeOfIsExpression.cs create mode 100644 Rubberduck.Parsing/Binding/UnaryOpDefaultBinding.cs create mode 100644 Rubberduck.Parsing/Binding/UnaryOpExpression.cs rename Rubberduck.Parsing/Symbols/{BindingMigrationHelper.cs => ParserRuleContextHelper.cs} (89%) diff --git a/RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs b/RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs index 47749b2d7b..1ec2acac95 100644 --- a/RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs +++ b/RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs @@ -77,15 +77,17 @@ private IEnumerable GetReturnStatements(Declaration function) private bool IsReturnValueUsed(Declaration function) { - return function.References.Any(usage => - !IsReturnStatement(function, usage) && !IsAddressOfCall(usage) && !IsCallWithoutAssignment(usage)); + return function.References.Any( + usage => + !IsReturnStatement(function, usage) + && !IsAddressOfCall(usage) + && !IsExplicitCall(usage) + && !IsCallResultUsed(usage)); } private bool IsAddressOfCall(IdentifierReference usage) { - RuleContext current = usage.Context; - while (current != null && !(current is VBAParser.VsAddressOfContext)) current = current.Parent; - return current != null; + return ParserRuleContextHelper.HasParent(usage.Context); } private bool IsReturnStatement(Declaration function, IdentifierReference assignment) @@ -93,9 +95,17 @@ private bool IsReturnStatement(Declaration function, IdentifierReference assignm return assignment.ParentScoping.Equals(function); } - private bool IsCallWithoutAssignment(IdentifierReference usage) + private bool IsExplicitCall(IdentifierReference usage) { - return usage.Context.Parent != null && usage.Context.Parent.Parent is VBAParser.ImplicitCallStmt_InBlockContext; + return ParserRuleContextHelper.HasParent(usage.Context); + } + + private bool IsCallResultUsed(IdentifierReference usage) + { + return ParserRuleContextHelper.HasParent(usage.Context) + && !ParserRuleContextHelper.HasParent(usage.Context) + && !ParserRuleContextHelper.HasParent(usage.Context) + && !ParserRuleContextHelper.HasParent(usage.Context); } } } diff --git a/Rubberduck.Parsing/Binding/ArgumentList.cs b/Rubberduck.Parsing/Binding/ArgumentList.cs index 85ad668c87..8320040e07 100644 --- a/Rubberduck.Parsing/Binding/ArgumentList.cs +++ b/Rubberduck.Parsing/Binding/ArgumentList.cs @@ -12,9 +12,9 @@ public ArgumentList() _arguments = new List(); } - public void AddArgument(ArgumentListArgumentType argumentType) + public void AddArgument(IExpressionBinding binding, ArgumentListArgumentType argumentType) { - _arguments.Add(new ArgumentListArgument(argumentType)); + _arguments.Add(new ArgumentListArgument(binding, argumentType)); } public bool HasArguments @@ -40,5 +40,13 @@ public bool HasRequiredPositionalArgument return _arguments.Any(a => a.ArgumentType == ArgumentListArgumentType.Positional); } } + + public IReadOnlyList Arguments + { + get + { + return _arguments; + } + } } } diff --git a/Rubberduck.Parsing/Binding/ArgumentListArgument.cs b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs index df0e0dd692..1aac92f106 100644 --- a/Rubberduck.Parsing/Binding/ArgumentListArgument.cs +++ b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs @@ -2,10 +2,13 @@ { public sealed class ArgumentListArgument { + private readonly IExpressionBinding _binding; + private IBoundExpression _expression; private readonly ArgumentListArgumentType _argumentType; - public ArgumentListArgument(ArgumentListArgumentType argumentType) + public ArgumentListArgument(IExpressionBinding binding, ArgumentListArgumentType argumentType) { + _binding = binding; _argumentType = argumentType; } @@ -16,5 +19,18 @@ public ArgumentListArgumentType ArgumentType return _argumentType; } } + + public IBoundExpression Expression + { + get + { + return _expression; + } + } + + public void Resolve() + { + _expression = _binding.Resolve(); + } } } diff --git a/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs b/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs new file mode 100644 index 0000000000..f7943bd5f4 --- /dev/null +++ b/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs @@ -0,0 +1,37 @@ +using Antlr4.Runtime; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class BinaryOpDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + private readonly IExpressionBinding _left; + private readonly IExpressionBinding _right; + + public BinaryOpDefaultBinding( + ParserRuleContext context, + IExpressionBinding left, + IExpressionBinding right) + { + _context = context; + _left = left; + _right = right; + } + + public IBoundExpression Resolve() + { + // TODO: Allow broken trees? + var leftExpr = _left.Resolve(); + if (leftExpr == null) + { + return null; + } + var rightExpr = _right.Resolve(); + if (rightExpr == null) + { + return null; + } + return new BinaryOpExpression(null, _context, leftExpr, rightExpr); + } + } +} diff --git a/Rubberduck.Parsing/Binding/BinaryOpExpression.cs b/Rubberduck.Parsing/Binding/BinaryOpExpression.cs new file mode 100644 index 0000000000..ec37184ee9 --- /dev/null +++ b/Rubberduck.Parsing/Binding/BinaryOpExpression.cs @@ -0,0 +1,38 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class BinaryOpExpression : BoundExpression + { + private readonly IBoundExpression _left; + private readonly IBoundExpression _right; + + public BinaryOpExpression( + Declaration referencedDeclaration, + ParserRuleContext context, + IBoundExpression left, + IBoundExpression right) + : base(referencedDeclaration, ExpressionClassification.Value, context) + { + _left = left; + _right = right; + } + + public IBoundExpression Left + { + get + { + return _left; + } + } + + public IBoundExpression Right + { + get + { + return _right; + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/BindingService.cs b/Rubberduck.Parsing/Binding/BindingService.cs index 55035a865e..8d26bb8665 100644 --- a/Rubberduck.Parsing/Binding/BindingService.cs +++ b/Rubberduck.Parsing/Binding/BindingService.cs @@ -1,6 +1,7 @@ using Antlr4.Runtime; using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.Symbols; +using System; namespace Rubberduck.Parsing.Binding { @@ -20,15 +21,11 @@ public BindingService( _procedurePointerBindingContext = procedurePointerBindingContext; } - public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, string innerMostWithBlockVariableExpression) + public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, IBoundExpression withBlockVariable) { - var expr = Parse(expression); - ParserRuleContext innerMostWithBlockVariableExpr = null; - if (!string.IsNullOrWhiteSpace(innerMostWithBlockVariableExpression)) - { - innerMostWithBlockVariableExpr = Parse(innerMostWithBlockVariableExpression); - } - return _defaultBindingContext.Resolve(module, parent, expr, innerMostWithBlockVariableExpr); + // Trim the expression because the grammar allows whitespace in some places. + var expr = Parse(expression.Trim()); + return _defaultBindingContext.Resolve(module, parent, expr, withBlockVariable); } public IBoundExpression ResolveType(Declaration module, Declaration parent, string expression) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index b3c8d5a234..bc490cafd8 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -6,16 +6,22 @@ namespace Rubberduck.Parsing.Binding public sealed class DefaultBindingContext : IBindingContext { private readonly DeclarationFinder _declarationFinder; + private readonly IBindingContext _typeBindingContext; + private readonly IBindingContext _procedurePointerBindingContext; - public DefaultBindingContext(DeclarationFinder declarationFinder) + public DefaultBindingContext( + DeclarationFinder declarationFinder, + IBindingContext typeBindingContext, + IBindingContext procedurePointerBindingContext) { _declarationFinder = declarationFinder; + _typeBindingContext = typeBindingContext; + _procedurePointerBindingContext = procedurePointerBindingContext; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) { - dynamic dynamicExpression = expression; - IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression, innerMostWithVariableExpression); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); if (bindingTree != null) { return bindingTree.Resolve(); @@ -23,20 +29,26 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression, ParserRuleContext innerMostWithVariableExpression) + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + { + dynamic dynamicExpression = expression; + return Visit(module, parent, dynamicExpression, withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression, IBoundExpression withBlockVariable) { dynamic lexpr = expression.lExpression(); - return Visit(module, parent, lexpr, innerMostWithVariableExpression); + return Visit(module, parent, lexpr, withBlockVariable); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression, IBoundExpression withBlockVariable) { - return Visit(module, parent, expression.newExpression(), innerMostWithVariableExpression); + return Visit(module, parent, expression.newExpression(), withBlockVariable); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression, IBoundExpression withBlockVariable) { - var typeExpressionBinding = Visit(module, parent, expression.typeExpression(), innerMostWithVariableExpression); + var typeExpressionBinding = Visit(module, parent, expression.typeExpression(), withBlockVariable); if (typeExpressionBinding == null) { return null; @@ -44,77 +56,118 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new NewTypeBinding(_declarationFinder, module, parent, expression, typeExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression, IBoundExpression withBlockVariable) { if (expression.builtInType() != null) { return null; } - return Visit(module, parent, expression.definedTypeExpression(), innerMostWithVariableExpression); + return Visit(module, parent, expression.definedTypeExpression(), withBlockVariable); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression, IBoundExpression withBlockVariable) { if (expression.simpleNameExpression() != null) { - return VisitTypeContext(module, parent, expression.simpleNameExpression()); + return _typeBindingContext.BuildTree(module, parent, expression.simpleNameExpression(), withBlockVariable); } - return VisitTypeContext(module, parent, expression.memberAccessExpression(), innerMostWithVariableExpression); + return _typeBindingContext.BuildTree(module, parent, expression.memberAccessExpression(), withBlockVariable); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression, IBoundExpression withBlockVariable) { - return Visit(module, parent, expression.simpleNameExpression(), innerMostWithVariableExpression); + return Visit(module, parent, expression.simpleNameExpression(), withBlockVariable); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression, IBoundExpression withBlockVariable) { return new SimpleNameDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); + var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, argumentListBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); + var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, argumentListBinding); + } + + private ArgumentList VisitArgumentList(Declaration module, Declaration parent, VBAExpressionParser.ArgumentListContext argumentList, IBoundExpression withBlockVariable) + { + var convertedList = new ArgumentList(); + var list = argumentList.positionalOrNamedArgumentList(); + if (list.positionalArgument() != null) + { + foreach (var expr in list.positionalArgument()) + { + convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable), ArgumentListArgumentType.Positional); + } + } + if (list.requiredPositionalArgument() != null) + { + convertedList.AddArgument(VisitArgumentBinding(module, parent, list.requiredPositionalArgument().argumentExpression(), withBlockVariable), ArgumentListArgumentType.Positional); + } + if (list.namedArgumentList() != null) + { + foreach (var expr in list.namedArgumentList().namedArgument()) + { + convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable), ArgumentListArgumentType.Named); + } + } + return convertedList; + } + + private IExpressionBinding VisitArgumentBinding(Declaration module, Declaration parent, VBAExpressionParser.ArgumentExpressionContext argumentExpression, IBoundExpression withBlockVariable) + { + if (argumentExpression.expression() != null) + { + dynamic expr = argumentExpression.expression(); + return Visit(module, parent, expr, withBlockVariable); + } + else + { + dynamic expr = argumentExpression.addressOfExpression(); + return Visit(module, parent, expr, withBlockVariable); + } } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); + return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression, IBoundExpression withBlockVariable) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); + return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding); } - private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, IExpressionBinding lExpressionBinding) + private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext nameContext, IExpressionBinding lExpressionBinding) { /* A dictionary access expression is syntactically translated into an index expression with the same @@ -122,16 +175,28 @@ A dictionary access expression is syntactically translated into an index express declared type of String and a value equal to the name value of . */ var fakeArgList = new ArgumentList(); - fakeArgList.AddArgument(ArgumentListArgumentType.Positional); + fakeArgList.AddArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext nameContext, IBoundExpression lExpression) { - return Visit(module, parent, expression.withExpression(), innerMostWithVariableExpression); + /* + A dictionary access expression is syntactically translated into an index expression with the same + expression for and an argument list with a single positional argument with a + declared type of String and a value equal to the name value of . + */ + var fakeArgList = new ArgumentList(); + fakeArgList.AddArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpression, fakeArgList); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExprContext expression, IBoundExpression withBlockVariable) + { + return Visit(module, parent, expression.withExpression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.WithExpressionContext expression, IBoundExpression withBlockVariable) { /* A or is @@ -139,44 +204,122 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr the innermost enclosing With block variable was specified for . If there is no enclosing With block, the is invalid. */ - if (innerMostWithVariableExpression == null) - { - return null; - } - dynamic lExpression = innerMostWithVariableExpression; - var lExpressionBinding = Visit(module, parent, lExpression, null); if (expression.withMemberAccessExpression() != null) { - return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, innerMostWithVariableExpression, lExpressionBinding, expression.withMemberAccessExpression().unrestrictedName().GetText()); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, withBlockVariable, expression.withMemberAccessExpression().unrestrictedName().GetText()); } else { - return VisitDictionaryAccessExpression(module, parent, expression, lExpressionBinding); + return VisitDictionaryAccessExpression(module, parent, expression, expression.withDictionaryAccessExpression().unrestrictedName(), withBlockVariable); } } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExprContext expression, IBoundExpression withBlockVariable) { - return VisitTypeContext(module, parent, expression.simpleNameExpression()); + dynamic expressionParens = expression.expression(); + var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable); + return new ParenthesizedDefaultBinding(expression, expressionBinding); } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.PowOpContext expression, IBoundExpression withBlockVariable) { - return new SimpleNameTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MultOpContext expression, IBoundExpression withBlockVariable) { - dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); } - private IExpressionBinding VisitTypeContext(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, ParserRuleContext innerMostWithVariableExpression) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IntDivOpContext expression, IBoundExpression withBlockVariable) { - dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, innerMostWithVariableExpression); - return new MemberAccessTypeBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ConcatOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.RelationalOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalAndOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalOrOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalXorOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalEqvOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalImpOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.UnaryMinusOpContext expression, IBoundExpression withBlockVariable) + { + return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalNotOpContext expression, IBoundExpression withBlockVariable) + { + return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExprContext expression, IBoundExpression withBlockVariable) + { + return Visit(module, parent, expression.literalExpression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExprContext expression, IBoundExpression withBlockVariable) + { + return Visit(module, parent, expression.instanceExpression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExpressionContext expression, IBoundExpression withBlockVariable) + { + return new InstanceDefaultBinding(expression, module); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExpressionContext expression, IBoundExpression withBlockVariable) + { + return new LiteralDefaultBinding(expression); + } + + private IExpressionBinding VisitBinaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext left, ParserRuleContext right, IBoundExpression withBlockVariable) + { + dynamic leftExpr = left; + var leftBinding = Visit(module, parent, leftExpr, withBlockVariable); + dynamic rightExpr = right; + var rightBinding = Visit(module, parent, rightExpr, withBlockVariable); + return new BinaryOpDefaultBinding(context, leftBinding, rightBinding); + } + + private IExpressionBinding VisitUnaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext expr, IBoundExpression withBlockVariable) + { + dynamic exprExpr = expr; + var exprBinding = Visit(module, parent, exprExpr, withBlockVariable); + return new UnaryOpDefaultBinding(context, exprExpr); } } } diff --git a/Rubberduck.Parsing/Binding/IBindingContext.cs b/Rubberduck.Parsing/Binding/IBindingContext.cs index ced5c63997..193d17e854 100644 --- a/Rubberduck.Parsing/Binding/IBindingContext.cs +++ b/Rubberduck.Parsing/Binding/IBindingContext.cs @@ -5,6 +5,7 @@ namespace Rubberduck.Parsing.Binding { public interface IBindingContext { - IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression); + IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable); + IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable); } } diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index a1c304e76b..d00d46c726 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -10,10 +10,8 @@ public sealed class IndexDefaultBinding : IExpressionBinding private readonly Declaration _project; private readonly Declaration _module; private readonly Declaration _parent; - private readonly VBAExpressionParser.IndexExpressionContext _indexExpression; - private readonly VBAExpressionParser.IndexExprContext _indexExpr; - private readonly ParserRuleContext _unknownOriginExpr; - private readonly IExpressionBinding _lExpressionBinding; + private readonly ParserRuleContext _expression; + private readonly IBoundExpression _lExpression; private readonly ArgumentList _argumentList; private const int DEFAULT_MEMBER_RECURSION_LIMIT = 32; @@ -24,33 +22,18 @@ public IndexDefaultBinding( Declaration project, Declaration module, Declaration parent, - VBAExpressionParser.IndexExpressionContext expression, - IExpressionBinding lExpressionBinding) - { - _declarationFinder = declarationFinder; - _project = project; - _module = module; - _parent = parent; - _indexExpression = expression; - _lExpressionBinding = lExpressionBinding; - _argumentList = ConvertContextToArgumentList(GetArgumentListContext()); - } - - public IndexDefaultBinding( - DeclarationFinder declarationFinder, - Declaration project, - Declaration module, - Declaration parent, - VBAExpressionParser.IndexExprContext expression, - IExpressionBinding lExpressionBinding) + ParserRuleContext expression, + IExpressionBinding lExpressionBinding, + ArgumentList argumentList) + : this( + declarationFinder, + project, + module, + parent, + expression, + lExpressionBinding.Resolve(), + argumentList) { - _declarationFinder = declarationFinder; - _project = project; - _module = module; - _parent = parent; - _indexExpr = expression; - _lExpressionBinding = lExpressionBinding; - _argumentList = ConvertContextToArgumentList(GetArgumentListContext()); } public IndexDefaultBinding( @@ -59,69 +42,30 @@ public IndexDefaultBinding( Declaration module, Declaration parent, ParserRuleContext expression, - IExpressionBinding lExpressionBinding, + IBoundExpression lExpression, ArgumentList argumentList) { _declarationFinder = declarationFinder; _project = project; _module = module; _parent = parent; - _unknownOriginExpr = expression; - _lExpressionBinding = lExpressionBinding; + _expression = expression; + _lExpression = lExpression; _argumentList = argumentList; } - private ParserRuleContext GetExpressionContext() + private void ResolveArgumentList() { - if (_indexExpression != null) + foreach (var argument in _argumentList.Arguments) { - return _indexExpression; - } - if (_indexExpr != null) - { - return _indexExpr; - } - return _unknownOriginExpr; - } - - private VBAExpressionParser.ArgumentListContext GetArgumentListContext() - { - if (_indexExpression != null) - { - return _indexExpression.argumentList(); - } - return _indexExpr.argumentList(); - } - - private ArgumentList ConvertContextToArgumentList(VBAExpressionParser.ArgumentListContext argumentList) - { - var convertedList = new ArgumentList(); - var list = argumentList.positionalOrNamedArgumentList(); - if (list.positionalArgument() != null) - { - foreach (var expr in list.positionalArgument()) - { - convertedList.AddArgument(ArgumentListArgumentType.Positional); - } - } - if (list.requiredPositionalArgument() != null) - { - convertedList.AddArgument(ArgumentListArgumentType.Positional); - } - if (list.namedArgumentList() != null) - { - foreach (var expr in list.namedArgumentList().namedArgument()) - { - convertedList.AddArgument(ArgumentListArgumentType.Named); - } + argument.Resolve(); } - return convertedList; } public IBoundExpression Resolve() { - var lExpression = _lExpressionBinding.Resolve(); - return Resolve(lExpression); + ResolveArgumentList(); + return Resolve(_lExpression); } private IBoundExpression Resolve(IBoundExpression lExpression) @@ -189,7 +133,7 @@ private IBoundExpression ResolveDefaultMember(IBoundExpression lExpression, stri */ if (asTypeName != null && (asTypeName.ToUpperInvariant() == "VARIANT" || asTypeName.ToUpperInvariant() == "OBJECT")) { - return new IndexExpression(null, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + return new IndexExpression(null, ExpressionClassification.Unbound, _expression, lExpression, _argumentList); } /* The declared type of is a specific class, which has a public default Property @@ -239,7 +183,7 @@ private IBoundExpression ResolveDefaultMember(IBoundExpression lExpression, stri { classification = ExpressionClassification.Function; } - var defaultMemberAsLExpression = new SimpleNameExpression(defaultMember, classification, GetExpressionContext()); + var defaultMemberAsLExpression = new SimpleNameExpression(defaultMember, classification, _expression); return Resolve(defaultMemberAsLExpression); } else @@ -252,7 +196,7 @@ declared type. Note: To not have to deal with implementing parameter compatibility ourselves we simply assume that they are compatible otherwise it wouldn't have compiled in the VBE. */ - return new IndexExpression(defaultMember, lExpression.Classification, GetExpressionContext(), lExpression); + return new IndexExpression(defaultMember, lExpression.Classification, _expression, lExpression, _argumentList); } } } @@ -276,7 +220,7 @@ takes on the classification and declared type of and references t */ if (!_argumentList.HasArguments) { - return new IndexExpression(asTypeDeclaration, lExpression.Classification, GetExpressionContext(), lExpression); + return new IndexExpression(asTypeDeclaration, lExpression.Classification, _expression, lExpression, _argumentList); } else { @@ -290,7 +234,7 @@ declared type of the array’s element type. */ if (!_argumentList.HasNamedArguments) { - return new IndexExpression(asTypeDeclaration, ExpressionClassification.Variable, GetExpressionContext(), lExpression); + return new IndexExpression(asTypeDeclaration, ExpressionClassification.Variable, _expression, lExpression, _argumentList); } } } @@ -314,7 +258,7 @@ and declared type. || lExpression.Classification == ExpressionClassification.Function || lExpression.Classification == ExpressionClassification.Subroutine) { - return new IndexExpression(lExpression.ReferencedDeclaration, lExpression.Classification, GetExpressionContext(), lExpression); + return new IndexExpression(lExpression.ReferencedDeclaration, lExpression.Classification, _expression, lExpression, _argumentList); } return null; } @@ -327,7 +271,7 @@ private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpressio */ if (lExpression.Classification == ExpressionClassification.Unbound) { - return new IndexExpression(lExpression.ReferencedDeclaration, ExpressionClassification.Unbound, GetExpressionContext(), lExpression); + return new IndexExpression(lExpression.ReferencedDeclaration, ExpressionClassification.Unbound, _expression, lExpression, _argumentList); } return null; } diff --git a/Rubberduck.Parsing/Binding/IndexExpression.cs b/Rubberduck.Parsing/Binding/IndexExpression.cs index b4515417fa..30306159e4 100644 --- a/Rubberduck.Parsing/Binding/IndexExpression.cs +++ b/Rubberduck.Parsing/Binding/IndexExpression.cs @@ -6,15 +6,18 @@ namespace Rubberduck.Parsing.Binding public sealed class IndexExpression : BoundExpression { private readonly IBoundExpression _lExpression; + private readonly ArgumentList _argumentList; public IndexExpression( Declaration referencedDeclaration, ExpressionClassification classification, ParserRuleContext context, - IBoundExpression lExpression) + IBoundExpression lExpression, + ArgumentList argumentList) : base(referencedDeclaration, classification, context) { _lExpression = lExpression; + _argumentList = argumentList; } public IBoundExpression LExpression @@ -24,5 +27,13 @@ public IBoundExpression LExpression return _lExpression; } } + + public ArgumentList ArgumentList + { + get + { + return _argumentList; + } + } } } diff --git a/Rubberduck.Parsing/Binding/InstanceDefaultBinding.cs b/Rubberduck.Parsing/Binding/InstanceDefaultBinding.cs new file mode 100644 index 0000000000..8d08e98cff --- /dev/null +++ b/Rubberduck.Parsing/Binding/InstanceDefaultBinding.cs @@ -0,0 +1,24 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class InstanceDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + private readonly Declaration _module; + + public InstanceDefaultBinding( + ParserRuleContext context, + Declaration module) + { + _context = context; + _module = module; + } + + public IBoundExpression Resolve() + { + return new InstanceExpression(_module, _context); + } + } +} diff --git a/Rubberduck.Parsing/Binding/InstanceExpression.cs b/Rubberduck.Parsing/Binding/InstanceExpression.cs new file mode 100644 index 0000000000..8b694ae403 --- /dev/null +++ b/Rubberduck.Parsing/Binding/InstanceExpression.cs @@ -0,0 +1,16 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class InstanceExpression : BoundExpression + { + public InstanceExpression( + Declaration referencedDeclaration, + ParserRuleContext context) + // Note: According to MS VBAL actually a value(?) but we reclassify to bring it more in line with the rest of the binding process. + : base(referencedDeclaration, ExpressionClassification.Variable, context) + { + } + } +} diff --git a/Rubberduck.Parsing/Binding/LiteralDefaultBinding.cs b/Rubberduck.Parsing/Binding/LiteralDefaultBinding.cs new file mode 100644 index 0000000000..ea856e0c3b --- /dev/null +++ b/Rubberduck.Parsing/Binding/LiteralDefaultBinding.cs @@ -0,0 +1,19 @@ +using Antlr4.Runtime; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class LiteralDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + + public LiteralDefaultBinding(ParserRuleContext context) + { + _context = context; + } + + public IBoundExpression Resolve() + { + return new LiteralExpression(_context); + } + } +} diff --git a/Rubberduck.Parsing/Binding/LiteralExpression.cs b/Rubberduck.Parsing/Binding/LiteralExpression.cs new file mode 100644 index 0000000000..45cd18366d --- /dev/null +++ b/Rubberduck.Parsing/Binding/LiteralExpression.cs @@ -0,0 +1,12 @@ +using Antlr4.Runtime; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class LiteralExpression : BoundExpression + { + public LiteralExpression(ParserRuleContext context) + : base(null, ExpressionClassification.Value, context) + { + } + } +} diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs index 543025ebb5..8c8587de4c 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -11,7 +11,7 @@ public sealed class MemberAccessDefaultBinding : IExpressionBinding private readonly Declaration _parent; private readonly ParserRuleContext _context; private readonly string _name; - private readonly IExpressionBinding _lExpressionBinding; + private readonly IBoundExpression _lExpression; public MemberAccessDefaultBinding( DeclarationFinder declarationFinder, @@ -26,7 +26,7 @@ public MemberAccessDefaultBinding( module, parent, expression, - lExpressionBinding, + lExpressionBinding.Resolve(), ExpressionName.GetName(expression.unrestrictedName())) { } @@ -44,7 +44,7 @@ public MemberAccessDefaultBinding( module, parent, expression, - lExpressionBinding, + lExpressionBinding.Resolve(), ExpressionName.GetName(expression.unrestrictedName())) { } @@ -55,7 +55,7 @@ public MemberAccessDefaultBinding( Declaration module, Declaration parent, ParserRuleContext expression, - IExpressionBinding lExpressionBinding, + IBoundExpression lExpression, string name) { _declarationFinder = declarationFinder; @@ -63,39 +63,38 @@ public MemberAccessDefaultBinding( _module = module; _parent = parent; _context = expression; + _lExpression = lExpression; _name = name; - _lExpressionBinding = lExpressionBinding; } public IBoundExpression Resolve() { IBoundExpression boundExpression = null; - var lExpression = _lExpressionBinding.Resolve(); - if (lExpression == null) + if (_lExpression == null) { return null; } - boundExpression = ResolveLExpressionIsVariablePropertyOrFunction(lExpression); + boundExpression = ResolveLExpressionIsVariablePropertyOrFunction(); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsUnbound(lExpression); + boundExpression = ResolveLExpressionIsUnbound(); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsProject(lExpression); + boundExpression = ResolveLExpressionIsProject(); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsProceduralModule(lExpression); + boundExpression = ResolveLExpressionIsProceduralModule(); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveLExpressionIsEnum(lExpression); + boundExpression = ResolveLExpressionIsEnum(); if (boundExpression != null) { return boundExpression; @@ -103,7 +102,7 @@ public IBoundExpression Resolve() return null; } - private IBoundExpression ResolveLExpressionIsVariablePropertyOrFunction(IBoundExpression lExpression) + private IBoundExpression ResolveLExpressionIsVariablePropertyOrFunction() { /* @@ -126,13 +125,13 @@ subroutine and refers to the member. expression is classified as an unbound member and has a declared type of Variant. */ if ( - lExpression.Classification != ExpressionClassification.Variable - && lExpression.Classification != ExpressionClassification.Property - && lExpression.Classification != ExpressionClassification.Function) + _lExpression.Classification != ExpressionClassification.Variable + && _lExpression.Classification != ExpressionClassification.Property + && _lExpression.Classification != ExpressionClassification.Function) { return null; } - var lExpressionDeclaration = lExpression.ReferencedDeclaration; + var lExpressionDeclaration = _lExpression.ReferencedDeclaration; var referencedType = lExpressionDeclaration.AsTypeDeclaration; if (referencedType == null) { @@ -145,38 +144,38 @@ expression is classified as an unbound member and has a declared type of Variant var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Variable); if (variable != null) { - return new MemberAccessExpression(variable, ExpressionClassification.Variable, _context, lExpression); + return new MemberAccessExpression(variable, ExpressionClassification.Variable, _context, _lExpression); } var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Property); if (property != null) { - return new MemberAccessExpression(property, ExpressionClassification.Property, _context, lExpression); + return new MemberAccessExpression(property, ExpressionClassification.Property, _context, _lExpression); } var function = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Function); if (function != null) { - return new MemberAccessExpression(function, ExpressionClassification.Function, _context, lExpression); + return new MemberAccessExpression(function, ExpressionClassification.Function, _context, _lExpression); } var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Procedure); if (subroutine != null) { - return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, _context, lExpression); + return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, _context, _lExpression); } // Note: To not have to deal with declared types we simply assume that no match means unbound member. // This way the rest of the member access expression can still be bound. - return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, lExpression); + return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, _lExpression); } - private IBoundExpression ResolveLExpressionIsUnbound(IBoundExpression lExpression) + private IBoundExpression ResolveLExpressionIsUnbound() { - if (lExpression.Classification != ExpressionClassification.Unbound) + if (_lExpression.Classification != ExpressionClassification.Unbound) { return null; } - return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, lExpression); + return new MemberAccessExpression(null, ExpressionClassification.Unbound, _context, _lExpression); } - private IBoundExpression ResolveLExpressionIsProject(IBoundExpression lExpression) + private IBoundExpression ResolveLExpressionIsProject() { /* is classified as a project, this project is either the enclosing project or a @@ -200,54 +199,54 @@ subroutine and refers to the member. - The member is a value. In this case, the member access expression is classified as a value with the same declared type as the member. */ - if (lExpression.Classification != ExpressionClassification.Project) + if (_lExpression.Classification != ExpressionClassification.Project) { return null; } IBoundExpression boundExpression = null; - var referencedProject = lExpression.ReferencedDeclaration; + var referencedProject = _lExpression.ReferencedDeclaration; bool lExpressionIsEnclosingProject = _project.Equals(referencedProject); - boundExpression = ResolveProject(lExpression); + boundExpression = ResolveProject(); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveProceduralModule(lExpressionIsEnclosingProject, lExpression, referencedProject); + boundExpression = ResolveProceduralModule(lExpressionIsEnclosingProject, referencedProject); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Property, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Function, ExpressionClassification.Function); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Function, ExpressionClassification.Function); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Procedure, ExpressionClassification.Subroutine); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Procedure, ExpressionClassification.Subroutine); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Constant, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Constant, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.Enumeration, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Enumeration, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, lExpression, referencedProject, DeclarationType.EnumerationMember, ExpressionClassification.Value); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.EnumerationMember, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; @@ -255,32 +254,32 @@ with the same declared type as the member. return boundExpression; } - private IBoundExpression ResolveProject(IBoundExpression lExpression) + private IBoundExpression ResolveProject() { if (_declarationFinder.IsMatch(_project.ProjectName, _name)) { - return new MemberAccessExpression(_project, ExpressionClassification.Project, _context, lExpression); + return new MemberAccessExpression(_project, ExpressionClassification.Project, _context, _lExpression); } var referencedProjectRightOfDot = _declarationFinder.FindReferencedProject(_project, _name); if (referencedProjectRightOfDot != null) { - return new MemberAccessExpression(referencedProjectRightOfDot, ExpressionClassification.Project, _context, lExpression); + return new MemberAccessExpression(referencedProjectRightOfDot, ExpressionClassification.Project, _context, _lExpression); } return null; } - private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, Declaration referencedProject) + private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProject, Declaration referencedProject) { if (lExpressionIsEnclosingProject) { if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, _name)) { - return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, _context, lExpression); + return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, _context, _lExpression); } var proceduralModuleEnclosingProject = _declarationFinder.FindModuleEnclosingProjectWithoutEnclosingModule(_project, _module, _name, DeclarationType.ProceduralModule); if (proceduralModuleEnclosingProject != null) { - return new MemberAccessExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _context, lExpression); + return new MemberAccessExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _context, _lExpression); } } else @@ -288,25 +287,25 @@ private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProj var proceduralModuleInReferencedProject = _declarationFinder.FindModuleReferencedProject(_project, _module, referencedProject, _name, DeclarationType.ProceduralModule); if (proceduralModuleInReferencedProject != null) { - return new MemberAccessExpression(proceduralModuleInReferencedProject, ExpressionClassification.ProceduralModule, _context, lExpression); + return new MemberAccessExpression(proceduralModuleInReferencedProject, ExpressionClassification.ProceduralModule, _context, _lExpression); } } return null; } - private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, IBoundExpression lExpression, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) + private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) { if (lExpressionIsEnclosingProject) { var foundType = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, _name, memberType); if (foundType != null) { - return new MemberAccessExpression(foundType, classification, _context, lExpression); + return new MemberAccessExpression(foundType, classification, _context, _lExpression); } var accessibleType = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, _name, memberType); if (accessibleType != null) { - return new MemberAccessExpression(accessibleType, classification, _context, lExpression); + return new MemberAccessExpression(accessibleType, classification, _context, _lExpression); } } else @@ -314,13 +313,13 @@ private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEncl var referencedProjectType = _declarationFinder.FindMemberReferencedProject(_project, _module, _parent, referencedProject, _name, memberType); if (referencedProjectType != null) { - return new MemberAccessExpression(referencedProjectType, classification, _context, lExpression); + return new MemberAccessExpression(referencedProjectType, classification, _context, _lExpression); } } return null; } - private IBoundExpression ResolveLExpressionIsProceduralModule(IBoundExpression lExpression) + private IBoundExpression ResolveLExpressionIsProceduralModule() { /* is classified as a procedural module, this procedural module has an accessible @@ -335,42 +334,42 @@ the member. - The member is a value. In this case, the member access expression is classified as a value with the same declared type as the member. */ - if (lExpression.Classification != ExpressionClassification.ProceduralModule) + if (_lExpression.Classification != ExpressionClassification.ProceduralModule) { return null; } IBoundExpression boundExpression = null; - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Variable, ExpressionClassification.Variable); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Variable, ExpressionClassification.Variable); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Function, ExpressionClassification.Function); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Function, ExpressionClassification.Function); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Procedure, ExpressionClassification.Subroutine); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Procedure, ExpressionClassification.Subroutine); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Constant, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Constant, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.Enumeration, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Enumeration, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; } - boundExpression = ResolveMemberInModule(lExpression, lExpression.ReferencedDeclaration, DeclarationType.EnumerationMember, ExpressionClassification.Value); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.EnumerationMember, ExpressionClassification.Value); if (boundExpression != null) { return boundExpression; @@ -378,37 +377,37 @@ the same declared type as the member. return boundExpression; } - private IBoundExpression ResolveMemberInModule(IBoundExpression lExpression, Declaration module, DeclarationType memberType, ExpressionClassification classification) + private IBoundExpression ResolveMemberInModule(Declaration module, DeclarationType memberType, ExpressionClassification classification) { var enclosingProjectType = _declarationFinder.FindMemberEnclosedProjectInModule(_project, _module, _parent, module, _name, memberType); if (enclosingProjectType != null) { - return new MemberAccessExpression(enclosingProjectType, classification, _context, lExpression); + return new MemberAccessExpression(enclosingProjectType, classification, _context, _lExpression); } var referencedProjectType = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, module, _name, memberType); if (referencedProjectType != null) { - return new MemberAccessExpression(referencedProjectType, classification, _context, lExpression); + return new MemberAccessExpression(referencedProjectType, classification, _context, _lExpression); } return null; } - private IBoundExpression ResolveLExpressionIsEnum(IBoundExpression lExpression) + private IBoundExpression ResolveLExpressionIsEnum() { /* is classified as a type, this type is an Enum type, and this type has an enum member named . In this case, the member access expression is classified as a value with the same declared type as the enum member. */ - if (lExpression.Classification != ExpressionClassification.Type && lExpression.ReferencedDeclaration.DeclarationType != DeclarationType.Enumeration) + if (_lExpression.Classification != ExpressionClassification.Type && _lExpression.ReferencedDeclaration.DeclarationType != DeclarationType.Enumeration) { return null; } - var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, lExpression.ReferencedDeclaration, _name, DeclarationType.EnumerationMember); + var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, _lExpression.ReferencedDeclaration, _name, DeclarationType.EnumerationMember); if (enumMember != null) { - return new MemberAccessExpression(enumMember, ExpressionClassification.Value, _context, lExpression); + return new MemberAccessExpression(enumMember, ExpressionClassification.Value, _context, _lExpression); } return null; } diff --git a/Rubberduck.Parsing/Binding/NewExpression.cs b/Rubberduck.Parsing/Binding/NewExpression.cs index 8447b14f37..32f479e040 100644 --- a/Rubberduck.Parsing/Binding/NewExpression.cs +++ b/Rubberduck.Parsing/Binding/NewExpression.cs @@ -11,7 +11,8 @@ public NewExpression( Declaration referencedDeclaration, ParserRuleContext context, IBoundExpression typeExpression) - : base(referencedDeclaration, ExpressionClassification.Value, context) + // Marked as Variable instead of Value to integrate into rest of binding process. + : base(referencedDeclaration, ExpressionClassification.Variable, context) { _typeExpression = typeExpression; } diff --git a/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs b/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs new file mode 100644 index 0000000000..daeb14fe6f --- /dev/null +++ b/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs @@ -0,0 +1,28 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class ParenthesizedDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + private readonly IExpressionBinding _expressionBinding; + + public ParenthesizedDefaultBinding( + ParserRuleContext context, + IExpressionBinding expressionBinding) + { + _context = context; + } + + public IBoundExpression Resolve() + { + var expr = _expressionBinding.Resolve(); + if (expr == null) + { + return null; + } + return new ParenthesizedExpression(expr.ReferencedDeclaration, _context, expr); + } + } +} diff --git a/Rubberduck.Parsing/Binding/ParenthesizedExpression.cs b/Rubberduck.Parsing/Binding/ParenthesizedExpression.cs new file mode 100644 index 0000000000..5d600db14b --- /dev/null +++ b/Rubberduck.Parsing/Binding/ParenthesizedExpression.cs @@ -0,0 +1,27 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class ParenthesizedExpression : BoundExpression + { + private readonly IBoundExpression _expression; + + public ParenthesizedExpression( + Declaration referencedDeclaration, + ParserRuleContext context, + IBoundExpression expression) + : base(referencedDeclaration, ExpressionClassification.Value, context) + { + _expression = expression; + } + + public IBoundExpression Expression + { + get + { + return _expression; + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs index 138d697cd1..e0514c3f2b 100644 --- a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs +++ b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs @@ -1,5 +1,4 @@ -using System; -using Antlr4.Runtime; +using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; namespace Rubberduck.Parsing.Binding @@ -13,10 +12,9 @@ public ProcedurePointerBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) { - dynamic dynamicExpression = expression; - IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); if (bindingTree != null) { return bindingTree.Resolve(); @@ -24,6 +22,29 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + { + dynamic dynamicExpression = expression; + return Visit(module, parent, dynamicExpression); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddressOfExpressionContext expression) + { + return Visit(module, parent, expression.procedurePointerExpression()); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ProcedurePointerExpressionContext expression) + { + if (expression.memberAccessExpression() != null) + { + return Visit(module, parent, expression.memberAccessExpression()); + } + else + { + return Visit(module, parent, expression.simpleNameExpression()); + } + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression) { dynamic lexpr = expression.lExpression(); diff --git a/Rubberduck.Parsing/Binding/TypeBindingContext.cs b/Rubberduck.Parsing/Binding/TypeBindingContext.cs index ea92257e18..61457ab5f2 100644 --- a/Rubberduck.Parsing/Binding/TypeBindingContext.cs +++ b/Rubberduck.Parsing/Binding/TypeBindingContext.cs @@ -1,5 +1,4 @@ -using System; -using Antlr4.Runtime; +using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; namespace Rubberduck.Parsing.Binding @@ -13,10 +12,9 @@ public TypeBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext innerMostWithVariableExpression) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) { - dynamic dynamicExpression = expression; - IExpressionBinding bindingTree = Visit(module, parent, dynamicExpression); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); if (bindingTree != null) { return bindingTree.Resolve(); @@ -24,6 +22,12 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + { + dynamic dynamicExpression = expression; + return Visit(module, parent, dynamicExpression); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression) { dynamic lexpr = expression.lExpression(); diff --git a/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs b/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs new file mode 100644 index 0000000000..53c16b4466 --- /dev/null +++ b/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs @@ -0,0 +1,34 @@ +using Antlr4.Runtime; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class TypeOfIsDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + private readonly IExpressionBinding _expressionBinding; + private readonly IExpressionBinding _typeExpressionBinding; + + public TypeOfIsDefaultBinding( + ParserRuleContext context, + IExpressionBinding expressionBinding, + IExpressionBinding typeExpressionBinding) + { + _context = context; + } + + public IBoundExpression Resolve() + { + var expr = _expressionBinding.Resolve(); + if (expr == null) + { + return null; + } + var typeExpr = _typeExpressionBinding.Resolve(); + if (typeExpr == null) + { + return null; + } + return new TypeOfIsExpression(null, _context, expr, typeExpr); + } + } +} diff --git a/Rubberduck.Parsing/Binding/TypeOfIsExpression.cs b/Rubberduck.Parsing/Binding/TypeOfIsExpression.cs new file mode 100644 index 0000000000..0a48fc3664 --- /dev/null +++ b/Rubberduck.Parsing/Binding/TypeOfIsExpression.cs @@ -0,0 +1,38 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class TypeOfIsExpression : BoundExpression + { + private readonly IBoundExpression _expression; + private readonly IBoundExpression _typeExpression; + + public TypeOfIsExpression( + Declaration referencedDeclaration, + ParserRuleContext context, + IBoundExpression expression, + IBoundExpression typeExpression) + : base(referencedDeclaration, ExpressionClassification.Value, context) + { + _expression = expression; + _typeExpression = typeExpression; + } + + public IBoundExpression Expression + { + get + { + return _expression; + } + } + + public IBoundExpression TypeExpression + { + get + { + return _typeExpression; + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/UnaryOpDefaultBinding.cs b/Rubberduck.Parsing/Binding/UnaryOpDefaultBinding.cs new file mode 100644 index 0000000000..c8966e3126 --- /dev/null +++ b/Rubberduck.Parsing/Binding/UnaryOpDefaultBinding.cs @@ -0,0 +1,29 @@ +using Antlr4.Runtime; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class UnaryOpDefaultBinding : IExpressionBinding + { + private readonly ParserRuleContext _context; + private readonly IExpressionBinding _expr; + + public UnaryOpDefaultBinding( + ParserRuleContext context, + IExpressionBinding expr) + { + _context = context; + _expr = expr; + } + + public IBoundExpression Resolve() + { + // TODO: Allow broken trees? + var expr = _expr.Resolve(); + if (expr == null) + { + return null; + } + return new UnaryOpExpression(expr.ReferencedDeclaration, _context, expr); + } + } +} diff --git a/Rubberduck.Parsing/Binding/UnaryOpExpression.cs b/Rubberduck.Parsing/Binding/UnaryOpExpression.cs new file mode 100644 index 0000000000..bc7db1a2ad --- /dev/null +++ b/Rubberduck.Parsing/Binding/UnaryOpExpression.cs @@ -0,0 +1,27 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public sealed class UnaryOpExpression : BoundExpression + { + private readonly IBoundExpression _expr; + + public UnaryOpExpression( + Declaration referencedDeclaration, + ParserRuleContext context, + IBoundExpression expr) + : base(referencedDeclaration, ExpressionClassification.Value, context) + { + _expr = expr; + } + + public IBoundExpression Expr + { + get + { + return _expr; + } + } + } +} diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 9c9074bb6b..85ccc15ff7 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -10864,16 +10864,9 @@ public WithStmtContext withStmt() { } public partial class WithStmtExpressionContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public TypeContext type() { - return GetRuleContext(0); - } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public ValueStmtContext valueStmt() { + return GetRuleContext(0); } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } public WithStmtExpressionContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -10901,24 +10894,7 @@ public WithStmtExpressionContext withStmtExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1986; - switch ( Interpreter.AdaptivePredict(_input,299,_ctx) ) { - case 1: - { - State = 1981; implicitCallStmt_InStmt(); - } - break; - - case 2: - { - { - State = 1982; Match(NEW); - State = 1983; whiteSpace(); - State = 1984; type(); - } - } - break; - } + State = 1981; valueStmt(0); } } catch (RecognitionException re) { @@ -10975,31 +10951,31 @@ public WriteStmtContext writeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1988; Match(WRITE); - State = 1989; whiteSpace(); - State = 1990; fileNumber(); - State = 1992; + State = 1983; Match(WRITE); + State = 1984; whiteSpace(); + State = 1985; fileNumber(); + State = 1987; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1991; whiteSpace(); + State = 1986; whiteSpace(); } } - State = 1994; Match(COMMA); - State = 1999; - switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { + State = 1989; Match(COMMA); + State = 1994; + switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { case 1: { - State = 1996; - switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + State = 1991; + switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 1995; whiteSpace(); + State = 1990; whiteSpace(); } break; } - State = 1998; outputList(); + State = 1993; outputList(); } break; } @@ -11049,15 +11025,15 @@ public FileNumberContext fileNumber() { try { EnterOuterAlt(_localctx, 1); { - State = 2002; + State = 1997; _la = _input.La(1); if (_la==HASH) { { - State = 2001; Match(HASH); + State = 1996; Match(HASH); } } - State = 2004; valueStmt(0); + State = 1999; valueStmt(0); } } catch (RecognitionException re) { @@ -11106,9 +11082,9 @@ public ExplicitCallStmtContext explicitCallStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 2006; Match(CALL); - State = 2007; whiteSpace(); - State = 2008; explicitCallStmtExpression(); + State = 2001; Match(CALL); + State = 2002; whiteSpace(); + State = 2003; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -11236,88 +11212,88 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { int _la; try { int _alt; - State = 2076; - switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { + State = 2071; + switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 2011; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + State = 2006; + switch ( Interpreter.AdaptivePredict(_input,303,_ctx) ) { case 1: { - State = 2010; implicitCallStmt_InStmt(); + State = 2005; implicitCallStmt_InStmt(); } break; } - State = 2013; Match(DOT); - State = 2014; identifier(); - State = 2016; - switch ( Interpreter.AdaptivePredict(_input,305,_ctx) ) { + State = 2008; Match(DOT); + State = 2009; identifier(); + State = 2011; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { case 1: { - State = 2015; typeHint(); + State = 2010; typeHint(); } break; } - State = 2031; - switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + State = 2026; + switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { case 1: { - State = 2019; + State = 2014; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2018; whiteSpace(); + State = 2013; whiteSpace(); } } - State = 2021; Match(LPAREN); - State = 2023; - switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { + State = 2016; Match(LPAREN); + State = 2018; + switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { case 1: { - State = 2022; whiteSpace(); + State = 2017; whiteSpace(); } break; } - State = 2025; argsCall(); - State = 2027; + State = 2020; argsCall(); + State = 2022; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2026; whiteSpace(); + State = 2021; whiteSpace(); } } - State = 2029; Match(RPAREN); + State = 2024; Match(RPAREN); } break; } - State = 2042; + State = 2037; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,311,_ctx); + _alt = Interpreter.AdaptivePredict(_input,310,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2034; + State = 2029; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2033; whiteSpace(); + State = 2028; whiteSpace(); } } - State = 2036; Match(LPAREN); - State = 2037; subscripts(); - State = 2038; Match(RPAREN); + State = 2031; Match(LPAREN); + State = 2032; subscripts(); + State = 2033; Match(RPAREN); } } } - State = 2044; + State = 2039; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,311,_ctx); + _alt = Interpreter.AdaptivePredict(_input,310,_ctx); } } break; @@ -11326,73 +11302,73 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 2045; identifier(); - State = 2047; - switch ( Interpreter.AdaptivePredict(_input,312,_ctx) ) { + State = 2040; identifier(); + State = 2042; + switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { case 1: { - State = 2046; typeHint(); + State = 2041; typeHint(); } break; } - State = 2062; - switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { + State = 2057; + switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: { - State = 2050; + State = 2045; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2049; whiteSpace(); + State = 2044; whiteSpace(); } } - State = 2052; Match(LPAREN); - State = 2054; - switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + State = 2047; Match(LPAREN); + State = 2049; + switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { case 1: { - State = 2053; whiteSpace(); + State = 2048; whiteSpace(); } break; } - State = 2056; argsCall(); - State = 2058; + State = 2051; argsCall(); + State = 2053; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2057; whiteSpace(); + State = 2052; whiteSpace(); } } - State = 2060; Match(RPAREN); + State = 2055; Match(RPAREN); } break; } - State = 2073; + State = 2068; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,318,_ctx); + _alt = Interpreter.AdaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2065; + State = 2060; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2064; whiteSpace(); + State = 2059; whiteSpace(); } } - State = 2067; Match(LPAREN); - State = 2068; subscripts(); - State = 2069; Match(RPAREN); + State = 2062; Match(LPAREN); + State = 2063; subscripts(); + State = 2064; Match(RPAREN); } } } - State = 2075; + State = 2070; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,318,_ctx); + _alt = Interpreter.AdaptivePredict(_input,317,_ctx); } } break; @@ -11441,19 +11417,19 @@ public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); try { - State = 2080; - switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + State = 2075; + switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2078; iCS_B_MemberProcedureCall(); + State = 2073; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2079; iCS_B_ProcedureCall(); + State = 2074; iCS_B_ProcedureCall(); } break; } @@ -11535,89 +11511,89 @@ public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2083; - switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { + State = 2078; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: { - State = 2082; implicitCallStmt_InStmt(); + State = 2077; implicitCallStmt_InStmt(); } break; } - State = 2086; + State = 2081; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2085; whiteSpace(); + State = 2080; whiteSpace(); } } - State = 2088; Match(DOT); - State = 2090; + State = 2083; Match(DOT); + State = 2085; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2089; whiteSpace(); + State = 2084; whiteSpace(); } } - State = 2092; identifier(); - State = 2094; - switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { + State = 2087; identifier(); + State = 2089; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: { - State = 2093; typeHint(); + State = 2088; typeHint(); } break; } - State = 2099; - switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { + State = 2094; + switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { case 1: { - State = 2096; whiteSpace(); - State = 2097; argsCall(); + State = 2091; whiteSpace(); + State = 2092; argsCall(); } break; } - State = 2105; - switch ( Interpreter.AdaptivePredict(_input,327,_ctx) ) { + State = 2100; + switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { case 1: { - State = 2102; + State = 2097; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2101; whiteSpace(); + State = 2096; whiteSpace(); } } - State = 2104; dictionaryCallStmt(); + State = 2099; dictionaryCallStmt(); } break; } - State = 2116; + State = 2111; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,329,_ctx); + _alt = Interpreter.AdaptivePredict(_input,328,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2108; + State = 2103; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2107; whiteSpace(); + State = 2102; whiteSpace(); } } - State = 2110; Match(LPAREN); - State = 2111; subscripts(); - State = 2112; Match(RPAREN); + State = 2105; Match(LPAREN); + State = 2106; subscripts(); + State = 2107; Match(RPAREN); } } } - State = 2118; + State = 2113; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,329,_ctx); + _alt = Interpreter.AdaptivePredict(_input,328,_ctx); } } } @@ -11688,40 +11664,40 @@ public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2119; identifier(); - State = 2123; - switch ( Interpreter.AdaptivePredict(_input,330,_ctx) ) { + State = 2114; identifier(); + State = 2118; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2120; whiteSpace(); - State = 2121; argsCall(); + State = 2115; whiteSpace(); + State = 2116; argsCall(); } break; } - State = 2134; + State = 2129; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,332,_ctx); + _alt = Interpreter.AdaptivePredict(_input,331,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2126; + State = 2121; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2125; whiteSpace(); + State = 2120; whiteSpace(); } } - State = 2128; Match(LPAREN); - State = 2129; subscripts(); - State = 2130; Match(RPAREN); + State = 2123; Match(LPAREN); + State = 2124; subscripts(); + State = 2125; Match(RPAREN); } } } - State = 2136; + State = 2131; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,332,_ctx); + _alt = Interpreter.AdaptivePredict(_input,331,_ctx); } } } @@ -11774,33 +11750,33 @@ public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); try { - State = 2141; - switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { + State = 2136; + switch ( Interpreter.AdaptivePredict(_input,332,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2137; iCS_S_MembersCall(); + State = 2132; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2138; iCS_S_VariableOrProcedureCall(); + State = 2133; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2139; iCS_S_ProcedureOrArrayCall(); + State = 2134; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2140; iCS_S_DictionaryCall(); + State = 2135; iCS_S_DictionaryCall(); } break; } @@ -11875,55 +11851,55 @@ public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2143; identifier(); - State = 2145; - switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { + State = 2138; identifier(); + State = 2140; + switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { case 1: { - State = 2144; typeHint(); + State = 2139; typeHint(); } break; } - State = 2151; - switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { + State = 2146; + switch ( Interpreter.AdaptivePredict(_input,335,_ctx) ) { case 1: { - State = 2148; + State = 2143; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2147; whiteSpace(); + State = 2142; whiteSpace(); } } - State = 2150; dictionaryCallStmt(); + State = 2145; dictionaryCallStmt(); } break; } - State = 2162; + State = 2157; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,338,_ctx); + _alt = Interpreter.AdaptivePredict(_input,337,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2154; + State = 2149; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2153; whiteSpace(); + State = 2148; whiteSpace(); } } - State = 2156; Match(LPAREN); - State = 2157; subscripts(); - State = 2158; Match(RPAREN); + State = 2151; Match(LPAREN); + State = 2152; subscripts(); + State = 2153; Match(RPAREN); } } } - State = 2164; + State = 2159; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,338,_ctx); + _alt = Interpreter.AdaptivePredict(_input,337,_ctx); } } } @@ -12003,102 +11979,102 @@ public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2167; - switch ( Interpreter.AdaptivePredict(_input,339,_ctx) ) { + State = 2162; + switch ( Interpreter.AdaptivePredict(_input,338,_ctx) ) { case 1: { - State = 2165; identifier(); + State = 2160; identifier(); } break; case 2: { - State = 2166; baseType(); + State = 2161; baseType(); } break; } - State = 2170; + State = 2165; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2169; typeHint(); + State = 2164; typeHint(); } } - State = 2173; + State = 2168; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2172; whiteSpace(); + State = 2167; whiteSpace(); } } - State = 2175; Match(LPAREN); - State = 2177; - switch ( Interpreter.AdaptivePredict(_input,342,_ctx) ) { + State = 2170; Match(LPAREN); + State = 2172; + switch ( Interpreter.AdaptivePredict(_input,341,_ctx) ) { case 1: { - State = 2176; whiteSpace(); + State = 2171; whiteSpace(); } break; } - State = 2183; - switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + State = 2178; + switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { case 1: { - State = 2179; argsCall(); - State = 2181; + State = 2174; argsCall(); + State = 2176; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2180; whiteSpace(); + State = 2175; whiteSpace(); } } } break; } - State = 2185; Match(RPAREN); - State = 2190; - switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + State = 2180; Match(RPAREN); + State = 2185; + switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { case 1: { - State = 2187; + State = 2182; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2186; whiteSpace(); + State = 2181; whiteSpace(); } } - State = 2189; dictionaryCallStmt(); + State = 2184; dictionaryCallStmt(); } break; } - State = 2201; + State = 2196; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + _alt = Interpreter.AdaptivePredict(_input,347,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2193; + State = 2188; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2192; whiteSpace(); + State = 2187; whiteSpace(); } } - State = 2195; Match(LPAREN); - State = 2196; subscripts(); - State = 2197; Match(RPAREN); + State = 2190; Match(LPAREN); + State = 2191; subscripts(); + State = 2192; Match(RPAREN); } } } - State = 2203; + State = 2198; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + _alt = Interpreter.AdaptivePredict(_input,347,_ctx); } } } @@ -12178,21 +12154,21 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2206; - switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { + State = 2201; + switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { case 1: { - State = 2204; iCS_S_VariableOrProcedureCall(); + State = 2199; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2205; iCS_S_ProcedureOrArrayCall(); + State = 2200; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2212; + State = 2207; _errHandler.Sync(this); _alt = 1; do { @@ -12200,12 +12176,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2208; iCS_S_MemberCall(); - State = 2210; - switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { + State = 2203; iCS_S_MemberCall(); + State = 2205; + switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { case 1: { - State = 2209; whiteSpace(); + State = 2204; whiteSpace(); } break; } @@ -12215,50 +12191,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2214; + State = 2209; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,351,_ctx); + _alt = Interpreter.AdaptivePredict(_input,350,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2220; - switch ( Interpreter.AdaptivePredict(_input,353,_ctx) ) { + State = 2215; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { case 1: { - State = 2217; + State = 2212; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2216; whiteSpace(); + State = 2211; whiteSpace(); } } - State = 2219; dictionaryCallStmt(); + State = 2214; dictionaryCallStmt(); } break; } - State = 2231; + State = 2226; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,355,_ctx); + _alt = Interpreter.AdaptivePredict(_input,354,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2223; + State = 2218; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2222; whiteSpace(); + State = 2217; whiteSpace(); } } - State = 2225; Match(LPAREN); - State = 2226; subscripts(); - State = 2227; Match(RPAREN); + State = 2220; Match(LPAREN); + State = 2221; subscripts(); + State = 2222; Match(RPAREN); } } } - State = 2233; + State = 2228; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,355,_ctx); + _alt = Interpreter.AdaptivePredict(_input,354,_ctx); } } } @@ -12313,31 +12289,31 @@ public ICS_S_MemberCallContext iCS_S_MemberCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2234; + State = 2229; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2236; + State = 2231; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2235; whiteSpace(); + State = 2230; whiteSpace(); } } - State = 2240; - switch ( Interpreter.AdaptivePredict(_input,357,_ctx) ) { + State = 2235; + switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { case 1: { - State = 2238; iCS_S_VariableOrProcedureCall(); + State = 2233; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2239; iCS_S_ProcedureOrArrayCall(); + State = 2234; iCS_S_ProcedureOrArrayCall(); } break; } @@ -12389,15 +12365,15 @@ public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2243; + State = 2238; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2242; whiteSpace(); + State = 2237; whiteSpace(); } } - State = 2245; dictionaryCallStmt(); + State = 2240; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12461,94 +12437,94 @@ public ArgsCallContext argsCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2259; + State = 2254; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + _alt = Interpreter.AdaptivePredict(_input,361,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2248; - switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { + State = 2243; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2247; argCall(); + State = 2242; argCall(); } break; } - State = 2251; + State = 2246; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2250; whiteSpace(); + State = 2245; whiteSpace(); } } - State = 2253; + State = 2248; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2255; - switch ( Interpreter.AdaptivePredict(_input,361,_ctx) ) { + State = 2250; + switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { case 1: { - State = 2254; whiteSpace(); + State = 2249; whiteSpace(); } break; } } } } - State = 2261; + State = 2256; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,362,_ctx); + _alt = Interpreter.AdaptivePredict(_input,361,_ctx); } - State = 2262; argCall(); - State = 2275; + State = 2257; argCall(); + State = 2270; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,366,_ctx); + _alt = Interpreter.AdaptivePredict(_input,365,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2264; + State = 2259; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2263; whiteSpace(); + State = 2258; whiteSpace(); } } - State = 2266; + State = 2261; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2268; - switch ( Interpreter.AdaptivePredict(_input,364,_ctx) ) { + State = 2263; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2267; whiteSpace(); + State = 2262; whiteSpace(); } break; } - State = 2271; - switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { + State = 2266; + switch ( Interpreter.AdaptivePredict(_input,364,_ctx) ) { case 1: { - State = 2270; argCall(); + State = 2265; argCall(); } break; } } } } - State = 2277; + State = 2272; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,366,_ctx); + _alt = Interpreter.AdaptivePredict(_input,365,_ctx); } } } @@ -12603,37 +12579,37 @@ public ArgCallContext argCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2279; - switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + State = 2274; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { case 1: { - State = 2278; Match(LPAREN); + State = 2273; Match(LPAREN); } break; } - State = 2283; - switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { + State = 2278; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2281; + State = 2276; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2282; whiteSpace(); + State = 2277; whiteSpace(); } break; } - State = 2286; + State = 2281; _la = _input.La(1); if (_la==RPAREN) { { - State = 2285; Match(RPAREN); + State = 2280; Match(RPAREN); } } - State = 2288; valueStmt(0); + State = 2283; valueStmt(0); } } catch (RecognitionException re) { @@ -12686,21 +12662,21 @@ public DictionaryCallStmtContext dictionaryCallStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 2290; Match(EXCLAMATIONPOINT); - State = 2292; + State = 2285; Match(EXCLAMATIONPOINT); + State = 2287; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2291; whiteSpace(); + State = 2286; whiteSpace(); } } - State = 2294; identifier(); - State = 2296; - switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + State = 2289; identifier(); + State = 2291; + switch ( Interpreter.AdaptivePredict(_input,370,_ctx) ) { case 1: { - State = 2295; typeHint(); + State = 2290; typeHint(); } break; } @@ -12765,64 +12741,64 @@ public ArgListContext argList() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2298; Match(LPAREN); - State = 2316; - switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { + State = 2293; Match(LPAREN); + State = 2311; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { case 1: { - State = 2300; + State = 2295; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2299; whiteSpace(); + State = 2294; whiteSpace(); } } - State = 2302; arg(); - State = 2313; + State = 2297; arg(); + State = 2308; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,375,_ctx); + _alt = Interpreter.AdaptivePredict(_input,374,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2304; + State = 2299; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2303; whiteSpace(); + State = 2298; whiteSpace(); } } - State = 2306; Match(COMMA); - State = 2308; + State = 2301; Match(COMMA); + State = 2303; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2307; whiteSpace(); + State = 2302; whiteSpace(); } } - State = 2310; arg(); + State = 2305; arg(); } } } - State = 2315; + State = 2310; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,375,_ctx); + _alt = Interpreter.AdaptivePredict(_input,374,_ctx); } } break; } - State = 2319; + State = 2314; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2318; whiteSpace(); + State = 2313; whiteSpace(); } } - State = 2321; Match(RPAREN); + State = 2316; Match(RPAREN); } } catch (RecognitionException re) { @@ -12889,101 +12865,101 @@ public ArgContext arg() { try { EnterOuterAlt(_localctx, 1); { - State = 2325; - switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + State = 2320; + switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { case 1: { - State = 2323; Match(OPTIONAL); - State = 2324; whiteSpace(); + State = 2318; Match(OPTIONAL); + State = 2319; whiteSpace(); } break; } - State = 2329; - switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { + State = 2324; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2327; + State = 2322; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2328; whiteSpace(); + State = 2323; whiteSpace(); } break; } - State = 2333; - switch ( Interpreter.AdaptivePredict(_input,380,_ctx) ) { + State = 2328; + switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { case 1: { - State = 2331; Match(PARAMARRAY); - State = 2332; whiteSpace(); + State = 2326; Match(PARAMARRAY); + State = 2327; whiteSpace(); } break; } - State = 2335; identifier(); - State = 2337; + State = 2330; identifier(); + State = 2332; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2336; typeHint(); + State = 2331; typeHint(); } } - State = 2347; - switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { + State = 2342; + switch ( Interpreter.AdaptivePredict(_input,383,_ctx) ) { case 1: { - State = 2340; + State = 2335; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2339; whiteSpace(); + State = 2334; whiteSpace(); } } - State = 2342; Match(LPAREN); - State = 2344; + State = 2337; Match(LPAREN); + State = 2339; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2343; whiteSpace(); + State = 2338; whiteSpace(); } } - State = 2346; Match(RPAREN); + State = 2341; Match(RPAREN); } break; } - State = 2353; - switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + State = 2348; + switch ( Interpreter.AdaptivePredict(_input,385,_ctx) ) { case 1: { - State = 2350; + State = 2345; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2349; whiteSpace(); + State = 2344; whiteSpace(); } } - State = 2352; asTypeClause(); + State = 2347; asTypeClause(); } break; } - State = 2359; - switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { + State = 2354; + switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { case 1: { - State = 2356; + State = 2351; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2355; whiteSpace(); + State = 2350; whiteSpace(); } } - State = 2358; argDefaultValue(); + State = 2353; argDefaultValue(); } break; } @@ -13035,16 +13011,16 @@ public ArgDefaultValueContext argDefaultValue() { try { EnterOuterAlt(_localctx, 1); { - State = 2361; Match(EQ); - State = 2363; - switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { + State = 2356; Match(EQ); + State = 2358; + switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { case 1: { - State = 2362; whiteSpace(); + State = 2357; whiteSpace(); } break; } - State = 2365; valueStmt(0); + State = 2360; valueStmt(0); } } catch (RecognitionException re) { @@ -13104,38 +13080,38 @@ public SubscriptsContext subscripts() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2367; subscript(); - State = 2378; + State = 2362; subscript(); + State = 2373; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + _alt = Interpreter.AdaptivePredict(_input,391,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2369; + State = 2364; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2368; whiteSpace(); + State = 2363; whiteSpace(); } } - State = 2371; Match(COMMA); - State = 2373; - switch ( Interpreter.AdaptivePredict(_input,391,_ctx) ) { + State = 2366; Match(COMMA); + State = 2368; + switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2372; whiteSpace(); + State = 2367; whiteSpace(); } break; } - State = 2375; subscript(); + State = 2370; subscript(); } } } - State = 2380; + State = 2375; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,392,_ctx); + _alt = Interpreter.AdaptivePredict(_input,391,_ctx); } } } @@ -13191,18 +13167,18 @@ public SubscriptContext subscript() { try { EnterOuterAlt(_localctx, 1); { - State = 2386; - switch ( Interpreter.AdaptivePredict(_input,393,_ctx) ) { + State = 2381; + switch ( Interpreter.AdaptivePredict(_input,392,_ctx) ) { case 1: { - State = 2381; valueStmt(0); - State = 2382; whiteSpace(); - State = 2383; Match(TO); - State = 2384; whiteSpace(); + State = 2376; valueStmt(0); + State = 2377; whiteSpace(); + State = 2378; Match(TO); + State = 2379; whiteSpace(); } break; } - State = 2388; valueStmt(0); + State = 2383; valueStmt(0); } } catch (RecognitionException re) { @@ -13246,12 +13222,12 @@ public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); EnterRule(_localctx, 246, RULE_identifier); try { - State = 2392; + State = 2387; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2390; Match(IDENTIFIER); + State = 2385; Match(IDENTIFIER); } break; case ABS: @@ -13439,7 +13415,7 @@ public IdentifierContext identifier() { case COLLECTION: EnterOuterAlt(_localctx, 2); { - State = 2391; keyword(); + State = 2386; keyword(); } break; default: @@ -13500,38 +13476,38 @@ public AsTypeClauseContext asTypeClause() { try { EnterOuterAlt(_localctx, 1); { - State = 2394; Match(AS); - State = 2396; + State = 2389; Match(AS); + State = 2391; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2395; whiteSpace(); + State = 2390; whiteSpace(); } } - State = 2400; - switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { + State = 2395; + switch ( Interpreter.AdaptivePredict(_input,395,_ctx) ) { case 1: { - State = 2398; Match(NEW); - State = 2399; whiteSpace(); + State = 2393; Match(NEW); + State = 2394; whiteSpace(); } break; } - State = 2402; type(); - State = 2407; - switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + State = 2397; type(); + State = 2402; + switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { case 1: { - State = 2404; + State = 2399; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2403; whiteSpace(); + State = 2398; whiteSpace(); } } - State = 2406; fieldLength(); + State = 2401; fieldLength(); } break; } @@ -13589,7 +13565,7 @@ public BaseTypeContext baseType() { try { EnterOuterAlt(_localctx, 1); { - State = 2409; + State = 2404; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13645,7 +13621,7 @@ public ComparisonOperatorContext comparisonOperator() { try { EnterOuterAlt(_localctx, 1); { - State = 2411; + State = 2406; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13708,27 +13684,27 @@ public ComplexTypeContext complexType() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2413; identifier(); - State = 2418; + State = 2408; identifier(); + State = 2413; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,399,_ctx); + _alt = Interpreter.AdaptivePredict(_input,398,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2414; + State = 2409; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2415; identifier(); + State = 2410; identifier(); } } } - State = 2420; + State = 2415; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,399,_ctx); + _alt = Interpreter.AdaptivePredict(_input,398,_ctx); } } } @@ -13782,23 +13758,23 @@ public FieldLengthContext fieldLength() { try { EnterOuterAlt(_localctx, 1); { - State = 2421; Match(MULT); - State = 2423; + State = 2416; Match(MULT); + State = 2418; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2422; whiteSpace(); + State = 2417; whiteSpace(); } } - State = 2427; + State = 2422; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2425; numberLiteral(); + State = 2420; numberLiteral(); } break; case ABS: @@ -13986,7 +13962,7 @@ public FieldLengthContext fieldLength() { case IDENTIFIER: case COLLECTION: { - State = 2426; identifier(); + State = 2421; identifier(); } break; default: @@ -14047,29 +14023,29 @@ public LetterrangeContext letterrange() { try { EnterOuterAlt(_localctx, 1); { - State = 2429; identifier(); - State = 2438; - switch ( Interpreter.AdaptivePredict(_input,404,_ctx) ) { + State = 2424; identifier(); + State = 2433; + switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { case 1: { - State = 2431; + State = 2426; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2430; whiteSpace(); + State = 2425; whiteSpace(); } } - State = 2433; Match(MINUS); - State = 2435; + State = 2428; Match(MINUS); + State = 2430; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2434; whiteSpace(); + State = 2429; whiteSpace(); } } - State = 2437; identifier(); + State = 2432; identifier(); } break; } @@ -14121,7 +14097,7 @@ public LineLabelContext lineLabel() { try { EnterOuterAlt(_localctx, 1); { - State = 2442; + State = 2437; switch (_input.La(1)) { case ABS: case ANY: @@ -14308,7 +14284,7 @@ public LineLabelContext lineLabel() { case IDENTIFIER: case COLLECTION: { - State = 2440; identifier(); + State = 2435; identifier(); } break; case OCTLITERAL: @@ -14316,13 +14292,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2441; numberLiteral(); + State = 2436; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2444; Match(COLON); + State = 2439; Match(COLON); } } catch (RecognitionException re) { @@ -14372,7 +14348,7 @@ public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); EnterRule(_localctx, 262, RULE_literal); try { - State = 2454; + State = 2449; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -14380,49 +14356,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2446; numberLiteral(); + State = 2441; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2447; Match(DATELITERAL); + State = 2442; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2448; Match(STRINGLITERAL); + State = 2443; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2449; Match(TRUE); + State = 2444; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2450; Match(FALSE); + State = 2445; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2451; Match(NOTHING); + State = 2446; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2452; Match(NULL); + State = 2447; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2453; Match(EMPTY); + State = 2448; Match(EMPTY); } break; default: @@ -14473,7 +14449,7 @@ public NumberLiteralContext numberLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 2456; + State = 2451; _la = _input.La(1); if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14535,42 +14511,42 @@ public TypeContext type() { try { EnterOuterAlt(_localctx, 1); { - State = 2460; - switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { + State = 2455; + switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { case 1: { - State = 2458; baseType(); + State = 2453; baseType(); } break; case 2: { - State = 2459; complexType(); + State = 2454; complexType(); } break; } - State = 2470; - switch ( Interpreter.AdaptivePredict(_input,410,_ctx) ) { + State = 2465; + switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { case 1: { - State = 2463; + State = 2458; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2462; whiteSpace(); + State = 2457; whiteSpace(); } } - State = 2465; Match(LPAREN); - State = 2467; + State = 2460; Match(LPAREN); + State = 2462; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2466; whiteSpace(); + State = 2461; whiteSpace(); } } - State = 2469; Match(RPAREN); + State = 2464; Match(RPAREN); } break; } @@ -14623,7 +14599,7 @@ public TypeHintContext typeHint() { try { EnterOuterAlt(_localctx, 1); { - State = 2472; + State = 2467; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -14675,7 +14651,7 @@ public VisibilityContext visibility() { try { EnterOuterAlt(_localctx, 1); { - State = 2474; + State = 2469; _la = _input.La(1); if ( !(((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14909,7 +14885,7 @@ public KeywordContext keyword() { try { EnterOuterAlt(_localctx, 1); { - State = 2476; + State = 2471; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)))) != 0) || _la==COLLECTION) ) { _errHandler.RecoverInline(this); @@ -14975,24 +14951,24 @@ public EndOfLineContext endOfLine() { int _la; try { int _alt; - State = 2497; - switch ( Interpreter.AdaptivePredict(_input,416,_ctx) ) { + State = 2492; + switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2479; + State = 2474; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2478; whiteSpace(); + State = 2473; whiteSpace(); } } - State = 2488; + State = 2483; switch (_input.La(1)) { case NEWLINE: { - State = 2482; + State = 2477; _errHandler.Sync(this); _alt = 1; do { @@ -15000,38 +14976,38 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2481; Match(NEWLINE); + State = 2476; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2484; + State = 2479; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,412,_ctx); + _alt = Interpreter.AdaptivePredict(_input,411,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; case COMMENT: case SINGLEQUOTE: { - State = 2486; comment(); + State = 2481; comment(); } break; case REMCOMMENT: { - State = 2487; remComment(); + State = 2482; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2491; - switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { + State = 2486; + switch ( Interpreter.AdaptivePredict(_input,413,_ctx) ) { case 1: { - State = 2490; whiteSpace(); + State = 2485; whiteSpace(); } break; } @@ -15041,15 +15017,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2494; + State = 2489; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2493; whiteSpace(); + State = 2488; whiteSpace(); } } - State = 2496; annotationList(); + State = 2491; annotationList(); } break; } @@ -15111,36 +15087,36 @@ public EndOfStatementContext endOfStatement() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2509; + State = 2504; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,420,_ctx); + _alt = Interpreter.AdaptivePredict(_input,419,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2507; - switch ( Interpreter.AdaptivePredict(_input,419,_ctx) ) { + State = 2502; + switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: { - State = 2499; endOfLine(); + State = 2494; endOfLine(); } break; case 2: { - State = 2501; + State = 2496; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2500; whiteSpace(); + State = 2495; whiteSpace(); } } - State = 2503; Match(COLON); - State = 2505; - switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { + State = 2498; Match(COLON); + State = 2500; + switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { case 1: { - State = 2504; whiteSpace(); + State = 2499; whiteSpace(); } break; } @@ -15149,9 +15125,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2511; + State = 2506; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,420,_ctx); + _alt = Interpreter.AdaptivePredict(_input,419,_ctx); } } } @@ -15195,7 +15171,7 @@ public RemCommentContext remComment() { try { EnterOuterAlt(_localctx, 1); { - State = 2512; Match(REMCOMMENT); + State = 2507; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15240,7 +15216,7 @@ public CommentContext comment() { try { EnterOuterAlt(_localctx, 1); { - State = 2514; + State = 2509; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -15295,17 +15271,17 @@ public AnnotationListContext annotationList() { try { EnterOuterAlt(_localctx, 1); { - State = 2516; Match(SINGLEQUOTE); - State = 2518; + State = 2511; Match(SINGLEQUOTE); + State = 2513; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2517; annotation(); + State = 2512; annotation(); } } - State = 2520; + State = 2515; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -15357,13 +15333,13 @@ public AnnotationContext annotation() { try { EnterOuterAlt(_localctx, 1); { - State = 2522; Match(AT); - State = 2523; annotationName(); - State = 2525; - switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { + State = 2517; Match(AT); + State = 2518; annotationName(); + State = 2520; + switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { case 1: { - State = 2524; annotationArgList(); + State = 2519; annotationArgList(); } break; } @@ -15409,7 +15385,7 @@ public AnnotationNameContext annotationName() { try { EnterOuterAlt(_localctx, 1); { - State = 2527; Match(IDENTIFIER); + State = 2522; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -15469,18 +15445,18 @@ public AnnotationArgListContext annotationArgList() { int _la; try { int _alt; - State = 2590; - switch ( Interpreter.AdaptivePredict(_input,438,_ctx) ) { + State = 2585; + switch ( Interpreter.AdaptivePredict(_input,437,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2529; whiteSpace(); - State = 2530; annotationArg(); - State = 2532; - switch ( Interpreter.AdaptivePredict(_input,423,_ctx) ) { + State = 2524; whiteSpace(); + State = 2525; annotationArg(); + State = 2527; + switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { case 1: { - State = 2531; whiteSpace(); + State = 2526; whiteSpace(); } break; } @@ -15490,9 +15466,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2534; whiteSpace(); - State = 2535; annotationArg(); - State = 2544; + State = 2529; whiteSpace(); + State = 2530; annotationArg(); + State = 2539; _errHandler.Sync(this); _alt = 1; do { @@ -15500,39 +15476,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2537; + State = 2532; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2536; whiteSpace(); + State = 2531; whiteSpace(); } } - State = 2539; Match(COMMA); - State = 2541; + State = 2534; Match(COMMA); + State = 2536; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2540; whiteSpace(); + State = 2535; whiteSpace(); } } - State = 2543; annotationArg(); + State = 2538; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2546; + State = 2541; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,426,_ctx); + _alt = Interpreter.AdaptivePredict(_input,425,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2549; - switch ( Interpreter.AdaptivePredict(_input,427,_ctx) ) { + State = 2544; + switch ( Interpreter.AdaptivePredict(_input,426,_ctx) ) { case 1: { - State = 2548; whiteSpace(); + State = 2543; whiteSpace(); } break; } @@ -15542,38 +15518,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2552; + State = 2547; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2551; whiteSpace(); + State = 2546; whiteSpace(); } } - State = 2554; Match(LPAREN); - State = 2556; + State = 2549; Match(LPAREN); + State = 2551; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2555; whiteSpace(); + State = 2550; whiteSpace(); } } - State = 2558; annotationArg(); - State = 2560; + State = 2553; annotationArg(); + State = 2555; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2559; whiteSpace(); + State = 2554; whiteSpace(); } } - State = 2562; Match(RPAREN); - State = 2564; - switch ( Interpreter.AdaptivePredict(_input,431,_ctx) ) { + State = 2557; Match(RPAREN); + State = 2559; + switch ( Interpreter.AdaptivePredict(_input,430,_ctx) ) { case 1: { - State = 2563; whiteSpace(); + State = 2558; whiteSpace(); } break; } @@ -15583,17 +15559,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2567; + State = 2562; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2566; whiteSpace(); + State = 2561; whiteSpace(); } } - State = 2569; Match(LPAREN); - State = 2570; annotationArg(); - State = 2579; + State = 2564; Match(LPAREN); + State = 2565; annotationArg(); + State = 2574; _errHandler.Sync(this); _alt = 1; do { @@ -15601,48 +15577,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2572; + State = 2567; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2571; whiteSpace(); + State = 2566; whiteSpace(); } } - State = 2574; Match(COMMA); - State = 2576; + State = 2569; Match(COMMA); + State = 2571; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2575; whiteSpace(); + State = 2570; whiteSpace(); } } - State = 2578; annotationArg(); + State = 2573; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2581; + State = 2576; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,435,_ctx); + _alt = Interpreter.AdaptivePredict(_input,434,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2584; + State = 2579; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2583; whiteSpace(); + State = 2578; whiteSpace(); } } - State = 2586; Match(RPAREN); - State = 2588; - switch ( Interpreter.AdaptivePredict(_input,437,_ctx) ) { + State = 2581; Match(RPAREN); + State = 2583; + switch ( Interpreter.AdaptivePredict(_input,436,_ctx) ) { case 1: { - State = 2587; whiteSpace(); + State = 2582; whiteSpace(); } break; } @@ -15691,12 +15667,12 @@ public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); EnterRule(_localctx, 290, RULE_annotationArg); try { - State = 2594; + State = 2589; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2592; Match(IDENTIFIER); + State = 2587; Match(IDENTIFIER); } break; case EMPTY: @@ -15712,7 +15688,7 @@ public AnnotationArgContext annotationArg() { case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2593; literal(); + State = 2588; literal(); } break; default: @@ -15768,7 +15744,7 @@ public WhiteSpaceContext whiteSpace() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2597; + State = 2592; _errHandler.Sync(this); _alt = 1; do { @@ -15776,7 +15752,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2596; + State = 2591; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -15788,9 +15764,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2599; + State = 2594; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,440,_ctx); + _alt = Interpreter.AdaptivePredict(_input,439,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -15841,7 +15817,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA2C\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA27\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -16007,653 +15983,652 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x63\x3\x63\x3\x63\x5\x63\x7A0\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64"+ "\x5\x64\x7A7\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x7AF"+ "\n\x65\x3\x65\x3\x65\x5\x65\x7B3\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3"+ - "\x66\x3\x66\x3\x66\x5\x66\x7BC\n\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3"+ - "g\x5g\x7C5\ng\x3h\x3h\x3h\x3h\x5h\x7CB\nh\x3h\x3h\x5h\x7CF\nh\x3h\x5h"+ - "\x7D2\nh\x3i\x5i\x7D5\ni\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7DE\nk\x3k\x3"+ - "k\x3k\x5k\x7E3\nk\x3k\x5k\x7E6\nk\x3k\x3k\x5k\x7EA\nk\x3k\x3k\x5k\x7EE"+ - "\nk\x3k\x3k\x5k\x7F2\nk\x3k\x5k\x7F5\nk\x3k\x3k\x3k\x3k\ak\x7FB\nk\fk"+ - "\xEk\x7FE\vk\x3k\x3k\x5k\x802\nk\x3k\x5k\x805\nk\x3k\x3k\x5k\x809\nk\x3"+ - "k\x3k\x5k\x80D\nk\x3k\x3k\x5k\x811\nk\x3k\x5k\x814\nk\x3k\x3k\x3k\x3k"+ - "\ak\x81A\nk\fk\xEk\x81D\vk\x5k\x81F\nk\x3l\x3l\x5l\x823\nl\x3m\x5m\x826"+ - "\nm\x3m\x5m\x829\nm\x3m\x3m\x5m\x82D\nm\x3m\x3m\x5m\x831\nm\x3m\x3m\x3"+ - "m\x5m\x836\nm\x3m\x5m\x839\nm\x3m\x5m\x83C\nm\x3m\x5m\x83F\nm\x3m\x3m"+ - "\x3m\x3m\am\x845\nm\fm\xEm\x848\vm\x3n\x3n\x3n\x3n\x5n\x84E\nn\x3n\x5"+ - "n\x851\nn\x3n\x3n\x3n\x3n\an\x857\nn\fn\xEn\x85A\vn\x3o\x3o\x3o\x3o\x5"+ - "o\x860\no\x3p\x3p\x5p\x864\np\x3p\x5p\x867\np\x3p\x5p\x86A\np\x3p\x5p"+ - "\x86D\np\x3p\x3p\x3p\x3p\ap\x873\np\fp\xEp\x876\vp\x3q\x3q\x5q\x87A\n"+ - "q\x3q\x5q\x87D\nq\x3q\x5q\x880\nq\x3q\x3q\x5q\x884\nq\x3q\x3q\x5q\x888"+ - "\nq\x5q\x88A\nq\x3q\x3q\x5q\x88E\nq\x3q\x5q\x891\nq\x3q\x5q\x894\nq\x3"+ - "q\x3q\x3q\x3q\aq\x89A\nq\fq\xEq\x89D\vq\x3r\x3r\x5r\x8A1\nr\x3r\x3r\x5"+ - "r\x8A5\nr\x6r\x8A7\nr\rr\xEr\x8A8\x3r\x5r\x8AC\nr\x3r\x5r\x8AF\nr\x3r"+ - "\x5r\x8B2\nr\x3r\x3r\x3r\x3r\ar\x8B8\nr\fr\xEr\x8BB\vr\x3s\x3s\x5s\x8BF"+ - "\ns\x3s\x3s\x5s\x8C3\ns\x3t\x5t\x8C6\nt\x3t\x3t\x3u\x5u\x8CB\nu\x3u\x5"+ - "u\x8CE\nu\x3u\x3u\x5u\x8D2\nu\au\x8D4\nu\fu\xEu\x8D7\vu\x3u\x3u\x5u\x8DB"+ - "\nu\x3u\x3u\x5u\x8DF\nu\x3u\x5u\x8E2\nu\au\x8E4\nu\fu\xEu\x8E7\vu\x3v"+ - "\x5v\x8EA\nv\x3v\x3v\x5v\x8EE\nv\x3v\x5v\x8F1\nv\x3v\x3v\x3w\x3w\x5w\x8F7"+ - "\nw\x3w\x3w\x5w\x8FB\nw\x3x\x3x\x5x\x8FF\nx\x3x\x3x\x5x\x903\nx\x3x\x3"+ - "x\x5x\x907\nx\x3x\ax\x90A\nx\fx\xEx\x90D\vx\x5x\x90F\nx\x3x\x5x\x912\n"+ - "x\x3x\x3x\x3y\x3y\x5y\x918\ny\x3y\x3y\x5y\x91C\ny\x3y\x3y\x5y\x920\ny"+ - "\x3y\x3y\x5y\x924\ny\x3y\x5y\x927\ny\x3y\x3y\x5y\x92B\ny\x3y\x5y\x92E"+ - "\ny\x3y\x5y\x931\ny\x3y\x5y\x934\ny\x3y\x5y\x937\ny\x3y\x5y\x93A\ny\x3"+ - "z\x3z\x5z\x93E\nz\x3z\x3z\x3{\x3{\x5{\x944\n{\x3{\x3{\x5{\x948\n{\x3{"+ - "\a{\x94B\n{\f{\xE{\x94E\v{\x3|\x3|\x3|\x3|\x3|\x5|\x955\n|\x3|\x3|\x3"+ - "}\x3}\x5}\x95B\n}\x3~\x3~\x5~\x95F\n~\x3~\x3~\x5~\x963\n~\x3~\x3~\x5~"+ - "\x967\n~\x3~\x5~\x96A\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3"+ - "\x81\a\x81\x973\n\x81\f\x81\xE\x81\x976\v\x81\x3\x82\x3\x82\x5\x82\x97A"+ - "\n\x82\x3\x82\x3\x82\x5\x82\x97E\n\x82\x3\x83\x3\x83\x5\x83\x982\n\x83"+ - "\x3\x83\x3\x83\x5\x83\x986\n\x83\x3\x83\x5\x83\x989\n\x83\x3\x84\x3\x84"+ - "\x5\x84\x98D\n\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3"+ - "\x85\x3\x85\x3\x85\x5\x85\x999\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87"+ - "\x99F\n\x87\x3\x87\x5\x87\x9A2\n\x87\x3\x87\x3\x87\x5\x87\x9A6\n\x87\x3"+ - "\x87\x5\x87\x9A9\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B"+ - "\x5\x8B\x9B2\n\x8B\x3\x8B\x6\x8B\x9B5\n\x8B\r\x8B\xE\x8B\x9B6\x3\x8B\x3"+ - "\x8B\x5\x8B\x9BB\n\x8B\x3\x8B\x5\x8B\x9BE\n\x8B\x3\x8B\x5\x8B\x9C1\n\x8B"+ - "\x3\x8B\x5\x8B\x9C4\n\x8B\x3\x8C\x3\x8C\x5\x8C\x9C8\n\x8C\x3\x8C\x3\x8C"+ - "\x5\x8C\x9CC\n\x8C\a\x8C\x9CE\n\x8C\f\x8C\xE\x8C\x9D1\v\x8C\x3\x8D\x3"+ - "\x8D\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x6\x8F\x9D9\n\x8F\r\x8F\xE\x8F\x9DA\x3"+ - "\x90\x3\x90\x3\x90\x5\x90\x9E0\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92"+ - "\x5\x92\x9E7\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9EC\n\x92\x3\x92\x3\x92"+ - "\x5\x92\x9F0\n\x92\x3\x92\x6\x92\x9F3\n\x92\r\x92\xE\x92\x9F4\x3\x92\x5"+ - "\x92\x9F8\n\x92\x3\x92\x5\x92\x9FB\n\x92\x3\x92\x3\x92\x5\x92\x9FF\n\x92"+ - "\x3\x92\x3\x92\x5\x92\xA03\n\x92\x3\x92\x3\x92\x5\x92\xA07\n\x92\x3\x92"+ - "\x5\x92\xA0A\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\xA0F\n\x92\x3\x92\x3\x92"+ - "\x5\x92\xA13\n\x92\x3\x92\x6\x92\xA16\n\x92\r\x92\xE\x92\xA17\x3\x92\x5"+ - "\x92\xA1B\n\x92\x3\x92\x3\x92\x5\x92\xA1F\n\x92\x5\x92\xA21\n\x92\x3\x93"+ - "\x3\x93\x5\x93\xA25\n\x93\x3\x94\x6\x94\xA28\n\x94\r\x94\xE\x94\xA29\x3"+ - "\x94\x2\x2\x3\xBC\x95\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ - "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ - ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ - "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ - "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ - "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ - "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ - "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ - "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ - "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ - "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ - "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2"+ - "\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C"+ - "\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3"+ - "\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81"+ - "\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))+"+ - "+\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a"+ - "\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3"+ - "\x2?@\r\x2\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9"+ - "\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE"+ - "\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE"+ - "\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBBE\x2\x128\x3\x2"+ - "\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x152\x3\x2\x2\x2\n\x164"+ - "\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180\x3\x2\x2\x2\x10\x195\x3\x2\x2"+ - "\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2\x2\x2\x16\x1B1\x3\x2\x2\x2\x18"+ - "\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3"+ - "\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231"+ - "\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277"+ - "\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2"+ - "\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318"+ - "\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2"+ - "\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2\x2\x2H\x35D\x3\x2\x2\x2J\x38A\x3"+ - "\x2\x2\x2L\x3AA\x3\x2\x2\x2N\x3C0\x3\x2\x2\x2P\x3C4\x3\x2\x2\x2R\x3E2"+ - "\x3\x2\x2\x2T\x3E4\x3\x2\x2\x2V\x3ED\x3\x2\x2\x2X\x3EF\x3\x2\x2\x2Z\x3F8"+ - "\x3\x2\x2\x2\\\x3FD\x3\x2\x2\x2^\x401\x3\x2\x2\x2`\x410\x3\x2\x2\x2\x62"+ - "\x416\x3\x2\x2\x2\x64\x422\x3\x2\x2\x2\x66\x42E\x3\x2\x2\x2h\x432\x3\x2"+ - "\x2\x2j\x446\x3\x2\x2\x2l\x452\x3\x2\x2\x2n\x460\x3\x2\x2\x2p\x464\x3"+ - "\x2\x2\x2r\x46C\x3\x2\x2\x2t\x478\x3\x2\x2\x2v\x48C\x3\x2\x2\x2x\x4A0"+ - "\x3\x2\x2\x2z\x4E5\x3\x2\x2\x2|\x4F8\x3\x2\x2\x2~\x4FA\x3\x2\x2\x2\x80"+ - "\x50A\x3\x2\x2\x2\x82\x52A\x3\x2\x2\x2\x84\x542\x3\x2\x2\x2\x86\x557\x3"+ - "\x2\x2\x2\x88\x56D\x3\x2\x2\x2\x8A\x580\x3\x2\x2\x2\x8C\x586\x3\x2\x2"+ - "\x2\x8E\x59A\x3\x2\x2\x2\x90\x5AC\x3\x2\x2\x2\x92\x5AE\x3\x2\x2\x2\x94"+ - "\x5B6\x3\x2\x2\x2\x96\x5B8\x3\x2\x2\x2\x98\x5BC\x3\x2\x2\x2\x9A\x5C8\x3"+ - "\x2\x2\x2\x9C\x5D4\x3\x2\x2\x2\x9E\x5F0\x3\x2\x2\x2\xA0\x5FC\x3\x2\x2"+ - "\x2\xA2\x61B\x3\x2\x2\x2\xA4\x61D\x3\x2\x2\x2\xA6\x633\x3\x2\x2\x2\xA8"+ - "\x635\x3\x2\x2\x2\xAA\x642\x3\x2\x2\x2\xAC\x64E\x3\x2\x2\x2\xAE\x65A\x3"+ - "\x2\x2\x2\xB0\x65F\x3\x2\x2\x2\xB2\x676\x3\x2\x2\x2\xB4\x683\x3\x2\x2"+ - "\x2\xB6\x691\x3\x2\x2\x2\xB8\x6A9\x3\x2\x2\x2\xBA\x6AD\x3\x2\x2\x2\xBC"+ - "\x6EE\x3\x2\x2\x2\xBE\x761\x3\x2\x2\x2\xC0\x76E\x3\x2\x2\x2\xC2\x777\x3"+ - "\x2\x2\x2\xC4\x785\x3\x2\x2\x2\xC6\x7A1\x3\x2\x2\x2\xC8\x7AA\x3\x2\x2"+ - "\x2\xCA\x7B6\x3\x2\x2\x2\xCC\x7C4\x3\x2\x2\x2\xCE\x7C6\x3\x2\x2\x2\xD0"+ - "\x7D4\x3\x2\x2\x2\xD2\x7D8\x3\x2\x2\x2\xD4\x81E\x3\x2\x2\x2\xD6\x822\x3"+ - "\x2\x2\x2\xD8\x825\x3\x2\x2\x2\xDA\x849\x3\x2\x2\x2\xDC\x85F\x3\x2\x2"+ - "\x2\xDE\x861\x3\x2\x2\x2\xE0\x879\x3\x2\x2\x2\xE2\x8A0\x3\x2\x2\x2\xE4"+ - "\x8BC\x3\x2\x2\x2\xE6\x8C5\x3\x2\x2\x2\xE8\x8D5\x3\x2\x2\x2\xEA\x8E9\x3"+ - "\x2\x2\x2\xEC\x8F4\x3\x2\x2\x2\xEE\x8FC\x3\x2\x2\x2\xF0\x917\x3\x2\x2"+ - "\x2\xF2\x93B\x3\x2\x2\x2\xF4\x941\x3\x2\x2\x2\xF6\x954\x3\x2\x2\x2\xF8"+ - "\x95A\x3\x2\x2\x2\xFA\x95C\x3\x2\x2\x2\xFC\x96B\x3\x2\x2\x2\xFE\x96D\x3"+ - "\x2\x2\x2\x100\x96F\x3\x2\x2\x2\x102\x977\x3\x2\x2\x2\x104\x97F\x3\x2"+ - "\x2\x2\x106\x98C\x3\x2\x2\x2\x108\x998\x3\x2\x2\x2\x10A\x99A\x3\x2\x2"+ - "\x2\x10C\x99E\x3\x2\x2\x2\x10E\x9AA\x3\x2\x2\x2\x110\x9AC\x3\x2\x2\x2"+ - "\x112\x9AE\x3\x2\x2\x2\x114\x9C3\x3\x2\x2\x2\x116\x9CF\x3\x2\x2\x2\x118"+ - "\x9D2\x3\x2\x2\x2\x11A\x9D4\x3\x2\x2\x2\x11C\x9D6\x3\x2\x2\x2\x11E\x9DC"+ - "\x3\x2\x2\x2\x120\x9E1\x3\x2\x2\x2\x122\xA20\x3\x2\x2\x2\x124\xA24\x3"+ - "\x2\x2\x2\x126\xA27\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ - "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5\x126\x94\x2\x12C\x12B\x3\x2\x2\x2"+ - "\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x116\x8C\x2"+ - "\x12F\x130\x5\x6\x4\x2\x130\x131\x5\x116\x8C\x2\x131\x133\x3\x2\x2\x2"+ - "\x132\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134"+ - "\x136\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137"+ - "\x3\x2\x2\x2\x137\x139\x5\x116\x8C\x2\x138\x13A\x5\f\a\x2\x139\x138\x3"+ - "\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116"+ - "\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ - "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x116\x8C\x2\x140\x142\x5\x14\v"+ - "\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2"+ - "\x143\x145\x5\x116\x8C\x2\x144\x146\x5\x126\x94\x2\x145\x144\x3\x2\x2"+ - "\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xD7\x2\x2\x148"+ - "\x149\x5\x126\x94\x2\x149\x14B\x5\x10A\x86\x2\x14A\x14C\x5\x126\x94\x2"+ - "\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D"+ - "\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150"+ - "\x3\x2\x2\x2\x150\x151\x5\x116\x8C\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;"+ - "\x2\x2\x153\x154\x5\x126\x94\x2\x154\x155\a\x103\x2\x2\x155\x156\x5\x126"+ - "\x94\x2\x156\x158\x5\xF8}\x2\x157\x159\x5\x126\x94\x2\x158\x157\x3\x2"+ - "\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2"+ - "\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C"+ - "\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160"+ - "\x15E\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163"+ - "\ai\x2\x2\x163\t\x3\x2\x2\x2\x164\x168\x5\xF8}\x2\x165\x167\x5\x126\x94"+ - "\x2\x166\x165\x3\x2\x2\x2\x167\x16A\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2"+ - "\x168\x169\x3\x2\x2\x2\x169\x16B\x3\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B"+ - "\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E"+ - "\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170\x172"+ - "\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2\x172\x175\x5\x108\x85\x2\x173\x174"+ - "\a*\x2\x2\x174\x176\x5\x10A\x86\x2\x175\x173\x3\x2\x2\x2\x175\x176\x3"+ - "\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177\x178\x5\x116\x8C\x2\x178\v\x3\x2"+ - "\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B\x5\x116\x8C\x2\x17B\x17D\x3\x2"+ - "\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17C\x3\x2\x2"+ - "\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2\x2\x2\x180\x186\x5\x12\n\x2\x181"+ - "\x182\x5\x116\x8C\x2\x182\x183\x5\x12\n\x2\x183\x185\x3\x2\x2\x2\x184"+ - "\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2\x186\x184\x3\x2\x2\x2\x186\x187"+ - "\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188\x186\x3\x2\x2\x2\x189\x18A\x5"+ - "\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C\a\xA0\x2\x2\x18C\x18D\x5\x126"+ - "\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196\x3\x2\x2\x2\x18F\x190\a\xA2"+ - "\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192\t\x2\x2\x2\x192\x196\x3\x2\x2"+ - "\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3\x2\x2\x195\x18B\x3\x2\x2\x2"+ - "\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2\x2\x195\x194\x3\x2\x2\x2\x196"+ - "\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198\x1A0\x5\x38\x1D\x2\x199\x1A0"+ - "\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5\\/\x2\x19C\x1A0\x5\xC0\x61"+ - "\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4[\x2\x19F\x197\x3\x2\x2\x2\x19F"+ - "\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2\x19F\x19A\x3\x2\x2\x2\x19F\x19B"+ - "\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F\x19D\x3\x2\x2\x2\x19F\x19E\x3"+ - "\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7\x5\x16\f\x2\x1A2\x1A3\x5\x116"+ - "\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2"+ - "\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2"+ - "\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2\x2\x2\x1AA\x1AB\x5\x116\x8C\x2"+ - "\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2"+ - "\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC"+ - "\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3"+ - "\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2"+ - "\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94"+ - "\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2"+ - "\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126\x94\x2\x1BB\x1BA\x3\x2\x2\x2"+ - "\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2\x2\x1BD\x1C8\x5\x108\x85\x2"+ - "\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2"+ - "\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2\x1C2\x1C4\x5\x126\x94\x2\x1C3"+ - "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7"+ - "\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6"+ - "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2"+ - "\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C"+ - "\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2"+ - "\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2"+ - "\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6"+ - "\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9"+ - "\x219\x5 \x11\x2\x1DA\x219\x5\"\x12\x2\x1DB\x219\x5$\x13\x2\x1DC\x219"+ - "\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE\x219\x5,\x17\x2\x1DF\x219\x5\x32"+ - "\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36"+ - "\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6"+ - "\x219\x5\xD2j\x2\x1E7\x219\x5\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5"+ - "H%\x2\x1EA\x219\x5L\'\x2\x1EB\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219"+ - "\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2"+ - "\x1F1\x219\x5\x62\x32\x2\x1F2\x219\x5\x64\x33\x2\x1F3\x219\x5\x66\x34"+ - "\x2\x1F4\x219\x5h\x35\x2\x1F5\x219\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7"+ - "\x219\x5n\x38\x2\x1F8\x219\x5p\x39\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t"+ - ";\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5"+ - "\x86\x44\x2\x1FF\x219\x5\x88\x45\x2\x200\x219\x5\x8A\x46\x2\x201\x219"+ - "\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203\x219\x5\x92J\x2\x204\x219\x5\x94"+ - "K\x2\x205\x219\x5\x96L\x2\x206\x219\x5\x98M\x2\x207\x219\x5\x9AN\x2\x208"+ - "\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2\x20A\x219\x5\xA0Q\x2\x20B\x219\x5"+ - "\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219\x5\xACW\x2\x20E\x219\x5\xAEX\x2"+ - "\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8]\x2\x211\x219\x5\xBA^\x2\x212\x219"+ - "\x5\xC0\x61\x2\x213\x219\x5\xC6\x64\x2\x214\x219\x5\xC8\x65\x2\x215\x219"+ - "\x5\xCA\x66\x2\x216\x219\x5\xCEh\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3"+ - "\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2"+ - "\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB\x3\x2\x2\x2\x218\x1DC\x3\x2\x2"+ - "\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3\x2\x2\x2\x218\x1DF\x3\x2\x2\x2"+ - "\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2\x2\x2\x218\x1E2\x3\x2\x2\x2\x218"+ - "\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6"+ - "\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3"+ - "\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2"+ - "\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE\x3\x2\x2\x2\x218\x1EF\x3\x2\x2"+ - "\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3\x2\x2\x2\x218\x1F2\x3\x2\x2\x2"+ - "\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2\x2\x2\x218\x1F5\x3\x2\x2\x2\x218"+ - "\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9"+ - "\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3"+ - "\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2"+ - "\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201\x3\x2\x2\x2\x218\x202\x3\x2\x2"+ - "\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3\x2\x2\x2\x218\x205\x3\x2\x2\x2"+ - "\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2\x2\x2\x218\x208\x3\x2\x2\x2\x218"+ - "\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2\x2\x218\x20B\x3\x2\x2\x2\x218\x20C"+ - "\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2\x218\x20E\x3\x2\x2\x2\x218\x20F\x3"+ - "\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218\x211\x3\x2\x2\x2\x218\x212\x3\x2"+ - "\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214\x3\x2\x2\x2\x218\x215\x3\x2\x2"+ - "\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A"+ - "\x21B\a\x38\x2\x2\x21B\x21C\x5\x126\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F"+ - "\x5\x126\x94\x2\x21E\x21D\x3\x2\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220"+ - "\x3\x2\x2\x2\x220\x222\a)\x2\x2\x221\x223\x5\x126\x94\x2\x222\x221\x3"+ - "\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC"+ - "_\x2\x225\x21E\x3\x2\x2\x2\x225\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2"+ - "\x227\x228\a<\x2\x2\x228!\x3\x2\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B"+ - "\x5\x126\x94\x2\x22B\x22C\x5\xBC_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45"+ - "\x2\x2\x22E\x22F\x5\x126\x94\x2\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2"+ - "\x231\x241\aG\x2\x2\x232\x233\x5\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234"+ - "\x236\x5\x126\x94\x2\x235\x234\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236"+ - "\x237\x3\x2\x2\x2\x237\x239\a)\x2\x2\x238\x23A\x5\x126\x94\x2\x239\x238"+ - "\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5"+ - "\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2"+ - "\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2"+ - "\x241\x232\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244"+ - "\x5\x110\x89\x2\x244\x245\x5\x126\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243"+ - "\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH"+ - "\x2\x2\x249\x24A\x5\x126\x94\x2\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126"+ - "\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2"+ - "\x2\x24E\x250\a)\x2\x2\x24F\x251\x5\x126\x94\x2\x250\x24F\x3\x2\x2\x2"+ - "\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x254\x5*\x16\x2\x253"+ - "\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2\x2\x255\x253\x3\x2\x2\x2\x255\x256"+ - "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x258\x25A\x5\xF8"+ - "}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259\x3\x2\x2\x2\x25A\x25B\x3\x2\x2"+ - "\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5\x126\x94\x2\x25D\x25E\x5\xFA~\x2"+ - "\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2\x260"+ - "\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94\x2\x262\x261\x3\x2\x2\x2\x262"+ - "\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\a\xE2\x2\x2\x265\x267"+ - "\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2\x266\x267\x3\x2\x2\x2\x267\x268"+ - "\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2"+ - "\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3\x2\x2\x2\x26C\x26D\x3\x2\x2\x2"+ - "\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2\x2\x2\x26F\x271\x5\x126\x94\x2"+ - "\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272"+ - "\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274\x275\x5\x110\x89\x2\x275\x276"+ - "\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277\x274\x3\x2\x2\x2\x277\x278"+ - "\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\aK\x2\x2\x27A\x27D\x5\x126"+ - "\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5\x126\x94\x2\x27D\x27B\x3\x2"+ - "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3\x2\x2\x2\x27F\x281\ax\x2\x2"+ - "\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2"+ - "\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2\x2\x284\x27F\x3\x2\x2\x2\x284"+ - "\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x287\x5\x126\x94\x2\x287"+ - "\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2\x289\x288\x3\x2\x2\x2\x289\x28A"+ - "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\x5\x126\x94\x2\x28C\x28D"+ - "\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E\x294\a\xF5\x2\x2\x28F\x290"+ - "\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291\x292\x5\x126\x94\x2\x292\x293"+ - "\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294\x28F\x3\x2\x2\x2\x294\x295\x3"+ - "\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298\x5\x126\x94\x2\x297\x296\x3"+ - "\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299\x3\x2\x2\x2\x299\x29B\x5\xEE"+ - "x\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29F\x3\x2\x2\x2"+ - "\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA~\x2\x29E\x2A0\x3\x2\x2\x2\x29F"+ - "\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t"+ - "\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3\x2AE\x5\x104\x83\x2\x2A4\x2A6"+ - "\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2A7"+ - "\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5\x126\x94\x2\x2A9\x2A8\x3"+ - "\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3\x2\x2\x2\x2AB\x2AD\x5\x104"+ - "\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3\x2\x2\x2\x2AE\x2AC\x3\x2\x2"+ - "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1"+ - "\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6"+ - "\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2D8"+ - "\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5\x126\x94\x2\x2B9\x2BB\x5"+ - "\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3\x2\x2\x2\x2BB\x2BC\x3\x2"+ - "\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2\x2\x2BE\x2C0\x5\x126\x94"+ - "\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2"+ - "\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3\x2C4\aY\x2\x2\x2C4\x2C5"+ - "\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8\x5\x126\x94\x2\x2C7\x2C6"+ - "\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9\x3\x2\x2\x2\x2C9\x2CB\a)"+ - "\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3\x2\x2\x2\x2CB\x2CC\x3\x2"+ - "\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x126\x94"+ - "\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2"+ - "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ - "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x5\xBC_\x2\x2D6\x2D8"+ - "\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7\x3\x2\x2\x2\x2D7\x2C3\x3"+ - "\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2\x2\x2DA\x2DC\x5\x116\x8C"+ - "\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2"+ - "\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2\x2DF\x2F7\x3\x2\x2\x2\x2E0"+ - "\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2\x2E3\t\x4\x2\x2\x2E3\x2E4"+ - "\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7\x5\x116\x8C\x2\x2E6\x2E8"+ - "\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3"+ - "\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3\x2\x2\x2\x2EB\x2EC\a[\x2"+ - "\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A\xE\x2\x2EE\x2ED\x3\x2\x2"+ - "\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F1\a\x88\x2\x2"+ - "\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2\x2F3\x2F4\x5\x126\x94\x2"+ - "\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6\x2D9\x3\x2\x2\x2\x2F6"+ - "\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35\x3\x2\x2\x2\x2F8\x2F9"+ - "\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110\x89\x2\x2FB\x2FC\x5\x126"+ - "\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3\x2\x2"+ - "\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2\x300\x301\x5\x126\x94\x2"+ - "\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2\x303\x305\x5:\x1E\x2\x304"+ - "\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306\x304\x3\x2\x2\x2\x306\x307"+ - "\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306\x3\x2\x2\x2\x309\x30A\a\x61"+ - "\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8}\x2\x30C\x30E\x5\x126\x94"+ - "\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2"+ - "\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94\x2\x311\x310\x3\x2\x2\x2"+ - "\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x315\x5\xBC_\x2\x314"+ - "\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ - "\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319\al\x2\x2\x319\x31A\x5\x126"+ - "\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126\x94\x2\x31C\x31B\x3\x2"+ - "\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2\x31E\x320\a)\x2\x2"+ - "\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2"+ - "\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323\x31C\x3\x2\x2\x2\x324"+ - "\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326=\x3"+ - "\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2\x329\x32A\x5\x126\x94"+ - "\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C\x32D\x5\x110\x89\x2\x32D"+ - "\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F\x32C\x3\x2\x2\x2\x32F"+ - "\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\an\x2\x2\x332\x333\x5"+ - "\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126\x94\x2\x335\x334\x3"+ - "\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xEE"+ - "x\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A\x43\x3\x2\x2\x2\x33B"+ - "\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F\x5\xBC_\x2\x33E\x340"+ - "\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341"+ - "\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94\x2\x343\x342\x3"+ - "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x5\xBC"+ - "_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349\x5\x126\x94\x2"+ - "\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34D\x5\xF8}\x2\x34C"+ - "\x34E\x5\x10E\x88\x2\x34D\x34C\x3\x2\x2\x2\x34D\x34E\x3\x2\x2\x2\x34E"+ - "\x34F\x3\x2\x2\x2\x34F\x350\x5\x126\x94\x2\x350\x351\a\x80\x2\x2\x351"+ - "\x352\x5\x126\x94\x2\x352\x353\x5\xBC_\x2\x353\x355\x5\x116\x8C\x2\x354"+ - "\x356\x5\x1A\xE\x2\x355\x354\x3\x2\x2\x2\x355\x356\x3\x2\x2\x2\x356\x357"+ - "\x3\x2\x2\x2\x357\x35B\a\x96\x2\x2\x358\x359\x5\x126\x94\x2\x359\x35A"+ - "\x5\xF8}\x2\x35A\x35C\x3\x2\x2\x2\x35B\x358\x3\x2\x2\x2\x35B\x35C\x3\x2"+ - "\x2\x2\x35CG\x3\x2\x2\x2\x35D\x35E\aw\x2\x2\x35E\x35F\x5\x126\x94\x2\x35F"+ - "\x361\x5\xF8}\x2\x360\x362\x5\x10E\x88\x2\x361\x360\x3\x2\x2\x2\x361\x362"+ - "\x3\x2\x2\x2\x362\x366\x3\x2\x2\x2\x363\x364\x5\x126\x94\x2\x364\x365"+ - "\x5\xFA~\x2\x365\x367\x3\x2\x2\x2\x366\x363\x3\x2\x2\x2\x366\x367\x3\x2"+ - "\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369\x368\x3\x2"+ - "\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36D\a\xE2\x2"+ - "\x2\x36C\x36E\x5\x126\x94\x2\x36D\x36C\x3\x2\x2\x2\x36D\x36E\x3\x2\x2"+ - "\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBC_\x2\x370\x371\x5\x126\x94\x2"+ - "\x371\x372\a\xCF\x2\x2\x372\x373\x5\x126\x94\x2\x373\x379\x5\xBC_\x2\x374"+ - "\x375\x5\x126\x94\x2\x375\x376\a\xC7\x2\x2\x376\x377\x5\x126\x94\x2\x377"+ - "\x378\x5\xBC_\x2\x378\x37A\x3\x2\x2\x2\x379\x374\x3\x2\x2\x2\x379\x37A"+ - "\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37D\x5\x116\x8C\x2\x37C\x37E"+ - "\x5\x1A\xE\x2\x37D\x37C\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x37F\x3"+ - "\x2\x2\x2\x37F\x385\a\x96\x2\x2\x380\x381\x5\x126\x94\x2\x381\x383\x5"+ - "\xF8}\x2\x382\x384\x5\x10E\x88\x2\x383\x382\x3\x2\x2\x2\x383\x384\x3\x2"+ - "\x2\x2\x384\x386\x3\x2\x2\x2\x385\x380\x3\x2\x2\x2\x385\x386\x3\x2\x2"+ - "\x2\x386I\x3\x2\x2\x2\x387\x388\x5\x110\x89\x2\x388\x389\x5\x126\x94\x2"+ - "\x389\x38B\x3\x2\x2\x2\x38A\x387\x3\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B"+ - "\x38E\x3\x2\x2\x2\x38C\x38D\a\xC6\x2\x2\x38D\x38F\x5\x126\x94\x2\x38E"+ - "\x38C\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x392"+ - "\ax\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392\x393\x3"+ - "\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xF8}\x2\x395\x397\x5\x10E"+ - "\x88\x2\x396\x395\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x39C\x3\x2\x2"+ - "\x2\x398\x39A\x5\x126\x94\x2\x399\x398\x3\x2\x2\x2\x399\x39A\x3\x2\x2"+ - "\x2\x39A\x39B\x3\x2\x2\x2\x39B\x39D\x5\xEEx\x2\x39C\x399\x3\x2\x2\x2\x39C"+ - "\x39D\x3\x2\x2\x2\x39D\x3A2\x3\x2\x2\x2\x39E\x3A0\x5\x126\x94\x2\x39F"+ - "\x39E\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2\x3A1\x3A3"+ - "\x5\xFA~\x2\x3A2\x39F\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3\x3A4\x3\x2"+ - "\x2\x2\x3A4\x3A6\x5\x116\x8C\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6\x3A5\x3\x2"+ - "\x2\x2\x3A6\x3A7\x3\x2\x2\x2\x3A7\x3A8\x3\x2\x2\x2\x3A8\x3A9\a\x62\x2"+ - "\x2\x3A9K\x3\x2\x2\x2\x3AA\x3AB\ay\x2\x2\x3AB\x3AC\x5\x126\x94\x2\x3AC"+ - "\x3AE\x5\xD0i\x2\x3AD\x3AF\x5\x126\x94\x2\x3AE\x3AD\x3\x2\x2\x2\x3AE\x3AF"+ - "\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B2\a)\x2\x2\x3B1\x3B3\x5\x126"+ - "\x94\x2\x3B2\x3B1\x3\x2\x2\x2\x3B2\x3B3\x3\x2\x2\x2\x3B3\x3B5\x3\x2\x2"+ - "\x2\x3B4\x3B6\x5\xBC_\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2\x2\x2\x3B6"+ - "\x3B8\x3\x2\x2\x2\x3B7\x3B9\x5\x126\x94\x2\x3B8\x3B7\x3\x2\x2\x2\x3B8"+ - "\x3B9\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BC\a)\x2\x2\x3BB\x3BD\x5"+ - "\x126\x94\x2\x3BC\x3BB\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2\x2\x3BD\x3BE\x3"+ - "\x2\x2\x2\x3BE\x3BF\x5\xBC_\x2\x3BFM\x3\x2\x2\x2\x3C0\x3C1\a{\x2\x2\x3C1"+ - "\x3C2\x5\x126\x94\x2\x3C2\x3C3\x5\xBC_\x2\x3C3O\x3\x2\x2\x2\x3C4\x3C5"+ - "\a|\x2\x2\x3C5\x3C6\x5\x126\x94\x2\x3C6\x3C7\x5\xBC_\x2\x3C7Q\x3\x2\x2"+ - "\x2\x3C8\x3C9\a}\x2\x2\x3C9\x3CA\x5\x126\x94\x2\x3CA\x3CB\x5V,\x2\x3CB"+ - "\x3CC\x5\x126\x94\x2\x3CC\x3CD\a\xCD\x2\x2\x3CD\x3CE\x5\x126\x94\x2\x3CE"+ - "\x3D4\x5\x1C\xF\x2\x3CF\x3D0\x5\x126\x94\x2\x3D0\x3D1\a^\x2\x2\x3D1\x3D2"+ - "\x5\x126\x94\x2\x3D2\x3D3\x5\x1C\xF\x2\x3D3\x3D5\x3\x2\x2\x2\x3D4\x3CF"+ - "\x3\x2\x2\x2\x3D4\x3D5\x3\x2\x2\x2\x3D5\x3E3\x3\x2\x2\x2\x3D6\x3DA\x5"+ - "T+\x2\x3D7\x3D9\x5X-\x2\x3D8\x3D7\x3\x2\x2\x2\x3D9\x3DC\x3\x2\x2\x2\x3DA"+ - "\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DE\x3\x2\x2\x2\x3DC\x3DA"+ - "\x3\x2\x2\x2\x3DD\x3DF\x5Z.\x2\x3DE\x3DD\x3\x2\x2\x2\x3DE\x3DF\x3\x2\x2"+ - "\x2\x3DF\x3E0\x3\x2\x2\x2\x3E0\x3E1\a\x63\x2\x2\x3E1\x3E3\x3\x2\x2\x2"+ - "\x3E2\x3C8\x3\x2\x2\x2\x3E2\x3D6\x3\x2\x2\x2\x3E3S\x3\x2\x2\x2\x3E4\x3E5"+ - "\a}\x2\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\x5V,\x2\x3E7\x3E8\x5\x126"+ - "\x94\x2\x3E8\x3E9\a\xCD\x2\x2\x3E9\x3EB\x5\x116\x8C\x2\x3EA\x3EC\x5\x1A"+ - "\xE\x2\x3EB\x3EA\x3\x2\x2\x2\x3EB\x3EC\x3\x2\x2\x2\x3ECU\x3\x2\x2\x2\x3ED"+ - "\x3EE\x5\xBC_\x2\x3EEW\x3\x2\x2\x2\x3EF\x3F0\a_\x2\x2\x3F0\x3F1\x5\x126"+ - "\x94\x2\x3F1\x3F2\x5V,\x2\x3F2\x3F3\x5\x126\x94\x2\x3F3\x3F4\a\xCD\x2"+ - "\x2\x3F4\x3F6\x5\x116\x8C\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5\x3\x2\x2"+ - "\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7Y\x3\x2\x2\x2\x3F8\x3F9\a^\x2\x2\x3F9\x3FB"+ - "\x5\x116\x8C\x2\x3FA\x3FC\x5\x1A\xE\x2\x3FB\x3FA\x3\x2\x2\x2\x3FB\x3FC"+ - "\x3\x2\x2\x2\x3FC[\x3\x2\x2\x2\x3FD\x3FE\a\x7F\x2\x2\x3FE\x3FF\x5\x126"+ - "\x94\x2\x3FF\x400\x5\xBC_\x2\x400]\x3\x2\x2\x2\x401\x402\a\x81\x2\x2\x402"+ - "\x403\x5\x126\x94\x2\x403\x40C\x5\xD0i\x2\x404\x406\x5\x126\x94\x2\x405"+ - "\x404\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406\x407\x3\x2\x2\x2\x407\x409"+ - "\a)\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x408\x3\x2\x2\x2\x409\x40A\x3"+ - "\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5\xBC_\x2\x40C\x405\x3\x2\x2"+ - "\x2\x40D\x40E\x3\x2\x2\x2\x40E\x40C\x3\x2\x2\x2\x40E\x40F\x3\x2\x2\x2"+ - "\x40F_\x3\x2\x2\x2\x410\x411\a\x84\x2\x2\x411\x412\x5\x126\x94\x2\x412"+ - "\x413\x5\xBC_\x2\x413\x61\x3\x2\x2\x2\x414\x415\a\x89\x2\x2\x415\x417"+ - "\x5\x126\x94\x2\x416\x414\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x418"+ - "\x3\x2\x2\x2\x418\x41A\x5\xDCo\x2\x419\x41B\x5\x126\x94\x2\x41A\x419\x3"+ - "\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\a\xE2"+ - "\x2\x2\x41D\x41F\x5\x126\x94\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2"+ - "\x2\x2\x41F\x420\x3\x2\x2\x2\x420\x421\x5\xBC_\x2\x421\x63\x3\x2\x2\x2"+ - "\x422\x423\a\x8C\x2\x2\x423\x424\x5\x126\x94\x2\x424\x426\x5\xD0i\x2\x425"+ - "\x427\x5\x126\x94\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2\x427"+ - "\x428\x3\x2\x2\x2\x428\x42A\a)\x2\x2\x429\x42B\x5\x126\x94\x2\x42A\x429"+ - "\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C\x42D\x5"+ - "\xBC_\x2\x42D\x65\x3\x2\x2\x2\x42E\x42F\a\x85\x2\x2\x42F\x430\x5\x126"+ - "\x94\x2\x430\x431\x5\xBC_\x2\x431g\x3\x2\x2\x2\x432\x433\a\x86\x2\x2\x433"+ - "\x434\x5\x126\x94\x2\x434\x444\x5\xBC_\x2\x435\x437\x5\x126\x94\x2\x436"+ - "\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2\x437\x438\x3\x2\x2\x2\x438\x43A"+ - "\a)\x2\x2\x439\x43B\x5\x126\x94\x2\x43A\x439\x3\x2\x2\x2\x43A\x43B\x3"+ - "\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x442\x5\xBC_\x2\x43D\x43E\x5\x126"+ - "\x94\x2\x43E\x43F\a\xCF\x2\x2\x43F\x440\x5\x126\x94\x2\x440\x441\x5\xBC"+ - "_\x2\x441\x443\x3\x2\x2\x2\x442\x43D\x3\x2\x2\x2\x442\x443\x3\x2\x2\x2"+ - "\x443\x445\x3\x2\x2\x2\x444\x436\x3\x2\x2\x2\x444\x445\x3\x2\x2\x2\x445"+ - "i\x3\x2\x2\x2\x446\x447\a\x90\x2\x2\x447\x448\x5\x126\x94\x2\x448\x44A"+ - "\x5\xDCo\x2\x449\x44B\x5\x126\x94\x2\x44A\x449\x3\x2\x2\x2\x44A\x44B\x3"+ - "\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44E\a\xE2\x2\x2\x44D\x44F\x5\x126"+ - "\x94\x2\x44E\x44D\x3\x2\x2\x2\x44E\x44F\x3\x2\x2\x2\x44F\x450\x3\x2\x2"+ - "\x2\x450\x451\x5\xBC_\x2\x451k\x3\x2\x2\x2\x452\x454\a\x92\x2\x2\x453"+ - "\x455\x5\x126\x94\x2\x454\x453\x3\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455"+ - "\x456\x3\x2\x2\x2\x456\x458\a\xE6\x2\x2\x457\x459\x5\x126\x94\x2\x458"+ - "\x457\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45A\x3\x2\x2\x2\x45A\x45C"+ - "\x5\xE8u\x2\x45B\x45D\x5\x126\x94\x2\x45C\x45B\x3\x2\x2\x2\x45C\x45D\x3"+ - "\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xED\x2\x2\x45Fm\x3\x2\x2\x2"+ - "\x460\x461\a\x93\x2\x2\x461\x462\x5\x126\x94\x2\x462\x463\x5\xBC_\x2\x463"+ - "o\x3\x2\x2\x2\x464\x465\a\x95\x2\x2\x465\x466\x5\x126\x94\x2\x466\x467"+ - "\x5\xBC_\x2\x467\x468\x5\x126\x94\x2\x468\x469\a:\x2\x2\x469\x46A\x5\x126"+ - "\x94\x2\x46A\x46B\x5\xBC_\x2\x46Bq\x3\x2\x2\x2\x46C\x46D\t\x6\x2\x2\x46D"+ - "\x476\x5\x126\x94\x2\x46E\x46F\a|\x2\x2\x46F\x470\x5\x126\x94\x2\x470"+ - "\x471\x5\xBC_\x2\x471\x477\x3\x2\x2\x2\x472\x473\a\xB8\x2\x2\x473\x474"+ - "\x5\x126\x94\x2\x474\x475\a\x96\x2\x2\x475\x477\x3\x2\x2\x2\x476\x46E"+ - "\x3\x2\x2\x2\x476\x472\x3\x2\x2\x2\x477s\x3\x2\x2\x2\x478\x479\a\x9B\x2"+ - "\x2\x479\x47A\x5\x126\x94\x2\x47A\x47B\x5\xBC_\x2\x47B\x47C\x5\x126\x94"+ - "\x2\x47C\x47D\a|\x2\x2\x47D\x47E\x5\x126\x94\x2\x47E\x489\x5\xBC_\x2\x47F"+ - "\x481\x5\x126\x94\x2\x480\x47F\x3\x2\x2\x2\x480\x481\x3\x2\x2\x2\x481"+ - "\x482\x3\x2\x2\x2\x482\x484\a)\x2\x2\x483\x485\x5\x126\x94\x2\x484\x483"+ - "\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3\x2\x2\x2\x486\x488\x5"+ - "\xBC_\x2\x487\x480\x3\x2\x2\x2\x488\x48B\x3\x2\x2\x2\x489\x487\x3\x2\x2"+ - "\x2\x489\x48A\x3\x2\x2\x2\x48Au\x3\x2\x2\x2\x48B\x489\x3\x2\x2\x2\x48C"+ - "\x48D\a\x9B\x2\x2\x48D\x48E\x5\x126\x94\x2\x48E\x48F\x5\xBC_\x2\x48F\x490"+ - "\x5\x126\x94\x2\x490\x491\a{\x2\x2\x491\x492\x5\x126\x94\x2\x492\x49D"+ - "\x5\xBC_\x2\x493\x495\x5\x126\x94\x2\x494\x493\x3\x2\x2\x2\x494\x495\x3"+ - "\x2\x2\x2\x495\x496\x3\x2\x2\x2\x496\x498\a)\x2\x2\x497\x499\x5\x126\x94"+ - "\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2"+ - "\x49A\x49C\x5\xBC_\x2\x49B\x494\x3\x2\x2\x2\x49C\x49F\x3\x2\x2\x2\x49D"+ - "\x49B\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2\x49Ew\x3\x2\x2\x2\x49F\x49D\x3"+ - "\x2\x2\x2\x4A0\x4A1\a\x9E\x2\x2\x4A1\x4A2\x5\x126\x94\x2\x4A2\x4A3\x5"+ - "\xBC_\x2\x4A3\x4A4\x5\x126\x94\x2\x4A4\x4A5\aw\x2\x2\x4A5\x4A6\x5\x126"+ - "\x94\x2\x4A6\x4AC\t\a\x2\x2\x4A7\x4A8\x5\x126\x94\x2\x4A8\x4A9\a\x33\x2"+ - "\x2\x4A9\x4AA\x5\x126\x94\x2\x4AA\x4AB\t\b\x2\x2\x4AB\x4AD\x3\x2\x2\x2"+ - "\x4AC\x4A7\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4B1\x3\x2\x2\x2\x4AE"+ - "\x4AF\x5\x126\x94\x2\x4AF\x4B0\t\t\x2\x2\x4B0\x4B2\x3\x2\x2\x2\x4B1\x4AE"+ - "\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x5"+ - "\x126\x94\x2\x4B4\x4B5\a:\x2\x2\x4B5\x4B6\x5\x126\x94\x2\x4B6\x4C2\x5"+ - "\xD0i\x2\x4B7\x4B8\x5\x126\x94\x2\x4B8\x4BA\a\x1D\x2\x2\x4B9\x4BB\x5\x126"+ - "\x94\x2\x4BA\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2"+ - "\x2\x4BC\x4BE\a\xE2\x2\x2\x4BD\x4BF\x5\x126\x94\x2\x4BE\x4BD\x3\x2\x2"+ - "\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF\x4C0\x3\x2\x2\x2\x4C0\x4C1\x5\xBC_\x2\x4C1"+ - "\x4C3\x3\x2\x2\x2\x4C2\x4B7\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3y\x3"+ - "\x2\x2\x2\x4C4\x4D1\x5|?\x2\x4C5\x4C7\x5\x126\x94\x2\x4C6\x4C5\x3\x2\x2"+ - "\x2\x4C6\x4C7\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\t\n\x2\x2\x4C9"+ - "\x4CB\x5\x126\x94\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB"+ - "\x4CD\x3\x2\x2\x2\x4CC\x4CE\x5|?\x2\x4CD\x4CC\x3\x2\x2\x2\x4CD\x4CE\x3"+ - "\x2\x2\x2\x4CE\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3\x2\x2\x2\x4D0\x4D3\x3\x2"+ - "\x2\x2\x4D1\x4CF\x3\x2\x2\x2\x4D1\x4D2\x3\x2\x2\x2\x4D2\x4E6\x3\x2\x2"+ - "\x2\x4D3\x4D1\x3\x2\x2\x2\x4D4\x4D6\x5|?\x2\x4D5\x4D4\x3\x2\x2\x2\x4D5"+ - "\x4D6\x3\x2\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9\x5\x126\x94\x2\x4D8"+ - "\x4D7\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DC"+ - "\t\n\x2\x2\x4DB\x4DD\x5\x126\x94\x2\x4DC\x4DB\x3\x2\x2\x2\x4DC\x4DD\x3"+ - "\x2\x2\x2\x4DD\x4DF\x3\x2\x2\x2\x4DE\x4E0\x5|?\x2\x4DF\x4DE\x3\x2\x2\x2"+ - "\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1\x4D8\x3\x2\x2\x2\x4E2"+ - "\x4E3\x3\x2\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4\x3\x2\x2\x2\x4E4\x4E6"+ - "\x3\x2\x2\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3\x2\x2\x2\x4E6{\x3\x2\x2"+ - "\x2\x4E7\x4F9\x5\xBC_\x2\x4E8\x4F6\t\v\x2\x2\x4E9\x4EB\x5\x126\x94\x2"+ - "\x4EA\x4E9\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC"+ - "\x4EE\a\xE6\x2\x2\x4ED\x4EF\x5\x126\x94\x2\x4EE\x4ED\x3\x2\x2\x2\x4EE"+ - "\x4EF\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2\x5\xE8u\x2\x4F1\x4F3"+ - "\x5\x126\x94\x2\x4F2\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F4"+ - "\x3\x2\x2\x2\x4F4\x4F5\a\xED\x2\x2\x4F5\x4F7\x3\x2\x2\x2\x4F6\x4EA\x3"+ - "\x2\x2\x2\x4F6\x4F7\x3\x2\x2\x2\x4F7\x4F9\x3\x2\x2\x2\x4F8\x4E7\x3\x2"+ - "\x2\x2\x4F8\x4E8\x3\x2\x2\x2\x4F9}\x3\x2\x2\x2\x4FA\x4FB\a\xA8\x2\x2\x4FB"+ - "\x4FC\x5\x126\x94\x2\x4FC\x4FE\x5\xD0i\x2\x4FD\x4FF\x5\x126\x94\x2\x4FE"+ - "\x4FD\x3\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500\x505"+ - "\a)\x2\x2\x501\x503\x5\x126\x94\x2\x502\x501\x3\x2\x2\x2\x502\x503\x3"+ - "\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x506\x5z>\x2\x505\x502\x3\x2\x2\x2"+ - "\x505\x506\x3\x2\x2\x2\x506\x7F\x3\x2\x2\x2\x507\x508\x5\x110\x89\x2\x508"+ - "\x509\x5\x126\x94\x2\x509\x50B\x3\x2\x2\x2\x50A\x507\x3\x2\x2\x2\x50A"+ - "\x50B\x3\x2\x2\x2\x50B\x50E\x3\x2\x2\x2\x50C\x50D\a\xC6\x2\x2\x50D\x50F"+ - "\x5\x126\x94\x2\x50E\x50C\x3\x2\x2\x2\x50E\x50F\x3\x2\x2\x2\x50F\x510"+ - "\x3\x2\x2\x2\x510\x511\a\xAA\x2\x2\x511\x512\x5\x126\x94\x2\x512\x514"+ - "\x5\xF8}\x2\x513\x515\x5\x10E\x88\x2\x514\x513\x3\x2\x2\x2\x514\x515\x3"+ - "\x2\x2\x2\x515\x51A\x3\x2\x2\x2\x516\x518\x5\x126\x94\x2\x517\x516\x3"+ - "\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2\x2\x519\x51B\x5\xEE"+ - "x\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51F\x3\x2\x2\x2"+ - "\x51C\x51D\x5\x126\x94\x2\x51D\x51E\x5\xFA~\x2\x51E\x520\x3\x2\x2\x2\x51F"+ - "\x51C\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\x3\x2\x2\x2\x521\x523"+ - "\x5\x116\x8C\x2\x522\x524\x5\x1A\xE\x2\x523\x522\x3\x2\x2\x2\x523\x524"+ - "\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526\a\x64\x2\x2\x526\x81\x3\x2"+ - "\x2\x2\x527\x528\x5\x110\x89\x2\x528\x529\x5\x126\x94\x2\x529\x52B\x3"+ - "\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52E\x3\x2"+ - "\x2\x2\x52C\x52D\a\xC6\x2\x2\x52D\x52F\x5\x126\x94\x2\x52E\x52C\x3\x2"+ - "\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531\a\xAC\x2"+ - "\x2\x531\x532\x5\x126\x94\x2\x532\x537\x5\xF8}\x2\x533\x535\x5\x126\x94"+ - "\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2\x535\x536\x3\x2\x2\x2"+ - "\x536\x538\x5\xEEx\x2\x537\x534\x3\x2\x2\x2\x537\x538\x3\x2\x2\x2\x538"+ - "\x539\x3\x2\x2\x2\x539\x53B\x5\x116\x8C\x2\x53A\x53C\x5\x1A\xE\x2\x53B"+ - "\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D\x3\x2\x2\x2\x53D\x53E"+ - "\a\x64\x2\x2\x53E\x83\x3\x2\x2\x2\x53F\x540\x5\x110\x89\x2\x540\x541\x5"+ - "\x126\x94\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2\x2\x2\x542\x543\x3"+ - "\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xC6\x2\x2\x545\x547\x5\x126"+ - "\x94\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2"+ - "\x2\x548\x549\a\xAB\x2\x2\x549\x54A\x5\x126\x94\x2\x54A\x54F\x5\xF8}\x2"+ - "\x54B\x54D\x5\x126\x94\x2\x54C\x54B\x3\x2\x2\x2\x54C\x54D\x3\x2\x2\x2"+ - "\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xEEx\x2\x54F\x54C\x3\x2\x2\x2\x54F"+ - "\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553\x5\x116\x8C\x2\x552"+ - "\x554\x5\x1A\xE\x2\x553\x552\x3\x2\x2\x2\x553\x554\x3\x2\x2\x2\x554\x555"+ - "\x3\x2\x2\x2\x555\x556\a\x64\x2\x2\x556\x85\x3\x2\x2\x2\x557\x558\a\xAF"+ - "\x2\x2\x558\x559\x5\x126\x94\x2\x559\x55B\x5\xD0i\x2\x55A\x55C\x5\x126"+ - "\x94\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x55D\x3\x2\x2"+ - "\x2\x55D\x55F\a)\x2\x2\x55E\x560\x5\x126\x94\x2\x55F\x55E\x3\x2\x2\x2"+ - "\x55F\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561\x563\x5\xBC_\x2\x562"+ - "\x561\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565\x3\x2\x2\x2\x564\x566"+ - "\x5\x126\x94\x2\x565\x564\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2\x566\x567"+ - "\x3\x2\x2\x2\x567\x569\a)\x2\x2\x568\x56A\x5\x126\x94\x2\x569\x568\x3"+ - "\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2\x2\x56B\x56C\x5\xBC"+ - "_\x2\x56C\x87\x3\x2\x2\x2\x56D\x56E\a\xB2\x2\x2\x56E\x56F\x5\x126\x94"+ - "\x2\x56F\x57E\x5\xF8}\x2\x570\x572\x5\x126\x94\x2\x571\x570\x3\x2\x2\x2"+ - "\x571\x572\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575\a\xE6\x2\x2\x574"+ - "\x576\x5\x126\x94\x2\x575\x574\x3\x2\x2\x2\x575\x576\x3\x2\x2\x2\x576"+ - "\x57B\x3\x2\x2\x2\x577\x579\x5\xE8u\x2\x578\x57A\x5\x126\x94\x2\x579\x578"+ - "\x3\x2\x2\x2\x579\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2\x2\x57B\x577\x3"+ - "\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x57F\a\xED"+ - "\x2\x2\x57E\x571\x3\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F\x89\x3\x2\x2\x2"+ - "\x580\x584\a\xB1\x2\x2\x581\x582\x5\x126\x94\x2\x582\x583\x5\xBC_\x2\x583"+ - "\x585\x3\x2\x2\x2\x584\x581\x3\x2\x2\x2\x584\x585\x3\x2\x2\x2\x585\x8B"+ - "\x3\x2\x2\x2\x586\x587\a\xB5\x2\x2\x587\x58A\x5\x126\x94\x2\x588\x589"+ - "\a\xA7\x2\x2\x589\x58B\x5\x126\x94\x2\x58A\x588\x3\x2\x2\x2\x58A\x58B"+ - "\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x597\x5\x8EH\x2\x58D\x58F\x5\x126"+ - "\x94\x2\x58E\x58D\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F\x590\x3\x2\x2"+ - "\x2\x590\x592\a)\x2\x2\x591\x593\x5\x126\x94\x2\x592\x591\x3\x2\x2\x2"+ - "\x592\x593\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594\x596\x5\x8EH\x2\x595"+ - "\x58E\x3\x2\x2\x2\x596\x599\x3\x2\x2\x2\x597\x595\x3\x2\x2\x2\x597\x598"+ - "\x3\x2\x2\x2\x598\x8D\x3\x2\x2\x2\x599\x597\x3\x2\x2\x2\x59A\x59C\x5\xDC"+ - "o\x2\x59B\x59D\x5\x126\x94\x2\x59C\x59B\x3\x2\x2\x2\x59C\x59D\x3\x2\x2"+ - "\x2\x59D\x59E\x3\x2\x2\x2\x59E\x5A0\a\xE6\x2\x2\x59F\x5A1\x5\x126\x94"+ - "\x2\x5A0\x59F\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x3\x2\x2\x2"+ - "\x5A2\x5A4\x5\xF4{\x2\x5A3\x5A5\x5\x126\x94\x2\x5A4\x5A3\x3\x2\x2\x2\x5A4"+ - "\x5A5\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2\x5A6\x5AA\a\xED\x2\x2\x5A7\x5A8"+ - "\x5\x126\x94\x2\x5A8\x5A9\x5\xFA~\x2\x5A9\x5AB\x3\x2\x2\x2\x5AA\x5A7\x3"+ - "\x2\x2\x2\x5AA\x5AB\x3\x2\x2\x2\x5AB\x8F\x3\x2\x2\x2\x5AC\x5AD\a\xB7\x2"+ - "\x2\x5AD\x91\x3\x2\x2\x2\x5AE\x5B4\a\xB8\x2\x2\x5AF\x5B2\x5\x126\x94\x2"+ - "\x5B0\x5B3\a\x96\x2\x2\x5B1\x5B3\x5\xF8}\x2\x5B2\x5B0\x3\x2\x2\x2\x5B2"+ - "\x5B1\x3\x2\x2\x2\x5B3\x5B5\x3\x2\x2\x2\x5B4\x5AF\x3\x2\x2\x2\x5B4\x5B5"+ - "\x3\x2\x2\x2\x5B5\x93\x3\x2\x2\x2\x5B6\x5B7\a\xB9\x2\x2\x5B7\x95\x3\x2"+ - "\x2\x2\x5B8\x5B9\a\xBA\x2\x2\x5B9\x5BA\x5\x126\x94\x2\x5BA\x5BB\x5\xBC"+ - "_\x2\x5BB\x97\x3\x2\x2\x2\x5BC\x5BD\a\xBB\x2\x2\x5BD\x5BE\x5\x126\x94"+ - "\x2\x5BE\x5C0\x5\xDCo\x2\x5BF\x5C1\x5\x126\x94\x2\x5C0\x5BF\x3\x2\x2\x2"+ - "\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C4\a\xE2\x2\x2\x5C3"+ - "\x5C5\x5\x126\x94\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5"+ - "\x5C6\x3\x2\x2\x2\x5C6\x5C7\x5\xBC_\x2\x5C7\x99\x3\x2\x2\x2\x5C8\x5C9"+ - "\a\xBC\x2\x2\x5C9\x5CA\x5\x126\x94\x2\x5CA\x5CC\x5\xBC_\x2\x5CB\x5CD\x5"+ - "\x126\x94\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CE\x3"+ - "\x2\x2\x2\x5CE\x5D0\a)\x2\x2\x5CF\x5D1\x5\x126\x94\x2\x5D0\x5CF\x3\x2"+ - "\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x5\xBC_\x2"+ - "\x5D3\x9B\x3\x2\x2\x2\x5D4\x5D5\a\xBD\x2\x2\x5D5\x5D6\x5\x126\x94\x2\x5D6"+ - "\x5D8\x5\xBC_\x2\x5D7\x5D9\x5\x126\x94\x2\x5D8\x5D7\x3\x2\x2\x2\x5D8\x5D9"+ - "\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DC\a)\x2\x2\x5DB\x5DD\x5\x126"+ - "\x94\x2\x5DC\x5DB\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DE\x3\x2\x2"+ - "\x2\x5DE\x5E0\x5\xBC_\x2\x5DF\x5E1\x5\x126\x94\x2\x5E0\x5DF\x3\x2\x2\x2"+ - "\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E4\a)\x2\x2\x5E3\x5E5"+ - "\x5\x126\x94\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5\x3\x2\x2\x2\x5E5\x5E6"+ - "\x3\x2\x2\x2\x5E6\x5E8\x5\xBC_\x2\x5E7\x5E9\x5\x126\x94\x2\x5E8\x5E7\x3"+ - "\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2\x2\x5EA\x5EC\a)\x2"+ - "\x2\x5EB\x5ED\x5\x126\x94\x2\x5EC\x5EB\x3\x2\x2\x2\x5EC\x5ED\x3\x2\x2"+ - "\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x5\xBC_\x2\x5EF\x9D\x3\x2\x2\x2\x5F0"+ - "\x5F1\a\xBE\x2\x2\x5F1\x5F2\x5\x126\x94\x2\x5F2\x5F4\x5\xD0i\x2\x5F3\x5F5"+ - "\x5\x126\x94\x2\x5F4\x5F3\x3\x2\x2\x2\x5F4\x5F5\x3\x2\x2\x2\x5F5\x5F6"+ - "\x3\x2\x2\x2\x5F6\x5F8\a)\x2\x2\x5F7\x5F9\x5\x126\x94\x2\x5F8\x5F7\x3"+ - "\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2\x5FA\x5FB\x5\xBC"+ - "_\x2\x5FB\x9F\x3\x2\x2\x2\x5FC\x5FD\a\xBF\x2\x2\x5FD\x5FE\x5\x126\x94"+ - "\x2\x5FE\x5FF\a\x43\x2\x2\x5FF\x600\x5\x126\x94\x2\x600\x601\x5\xBC_\x2"+ - "\x601\x605\x5\x116\x8C\x2\x602\x604\x5\xA4S\x2\x603\x602\x3\x2\x2\x2\x604"+ - "\x607\x3\x2\x2\x2\x605\x603\x3\x2\x2\x2\x605\x606\x3\x2\x2\x2\x606\x608"+ - "\x3\x2\x2\x2\x607\x605\x3\x2\x2\x2\x608\x609\a\x65\x2\x2\x609\xA1\x3\x2"+ - "\x2\x2\x60A\x60C\a\x82\x2\x2\x60B\x60D\x5\x126\x94\x2\x60C\x60B\x3\x2"+ - "\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x610\x5\xFE\x80"+ - "\x2\x60F\x611\x5\x126\x94\x2\x610\x60F\x3\x2\x2\x2\x610\x611\x3\x2\x2"+ - "\x2\x611\x612\x3\x2\x2\x2\x612\x613\x5\xBC_\x2\x613\x61C\x3\x2\x2\x2\x614"+ - "\x615\x5\xBC_\x2\x615\x616\x5\x126\x94\x2\x616\x617\a\xCF\x2\x2\x617\x618"+ - "\x5\x126\x94\x2\x618\x619\x5\xBC_\x2\x619\x61C\x3\x2\x2\x2\x61A\x61C\x5"+ - "\xBC_\x2\x61B\x60A\x3\x2\x2\x2\x61B\x614\x3\x2\x2\x2\x61B\x61A\x3\x2\x2"+ - "\x2\x61C\xA3\x3\x2\x2\x2\x61D\x61E\a\x43\x2\x2\x61E\x61F\x5\x126\x94\x2"+ - "\x61F\x620\x5\xA6T\x2\x620\x622\x5\x116\x8C\x2\x621\x623\x5\x1A\xE\x2"+ - "\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\xA5\x3\x2\x2\x2\x624"+ - "\x634\a^\x2\x2\x625\x630\x5\xA2R\x2\x626\x628\x5\x126\x94\x2\x627\x626"+ - "\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B\a)"+ - "\x2\x2\x62A\x62C\x5\x126\x94\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C\x3\x2"+ - "\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x62F\x5\xA2R\x2\x62E\x627\x3\x2\x2\x2"+ - "\x62F\x632\x3\x2\x2\x2\x630\x62E\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631"+ - "\x634\x3\x2\x2\x2\x632\x630\x3\x2\x2\x2\x633\x624\x3\x2\x2\x2\x633\x625"+ - "\x3\x2\x2\x2\x634\xA7\x3\x2\x2\x2\x635\x636\a\xC0\x2\x2\x636\x637\x5\x126"+ - "\x94\x2\x637\x640\x5\xBC_\x2\x638\x63A\x5\x126\x94\x2\x639\x638\x3\x2"+ - "\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a)\x2\x2"+ - "\x63C\x63E\x5\x126\x94\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2"+ - "\x63E\x63F\x3\x2\x2\x2\x63F\x641\x5\xBC_\x2\x640\x639\x3\x2\x2\x2\x640"+ - "\x641\x3\x2\x2\x2\x641\xA9\x3\x2\x2\x2\x642\x643\a\xC2\x2\x2\x643\x644"+ - "\x5\x126\x94\x2\x644\x646\x5\xBC_\x2\x645\x647\x5\x126\x94\x2\x646\x645"+ - "\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x64A\a)"+ - "\x2\x2\x649\x64B\x5\x126\x94\x2\x64A\x649\x3\x2\x2\x2\x64A\x64B\x3\x2"+ - "\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x5\xBC_\x2\x64D\xAB\x3\x2\x2\x2"+ - "\x64E\x64F\a\xC1\x2\x2\x64F\x650\x5\x126\x94\x2\x650\x652\x5\xDCo\x2\x651"+ - "\x653\x5\x126\x94\x2\x652\x651\x3\x2\x2\x2\x652\x653\x3\x2\x2\x2\x653"+ - "\x654\x3\x2\x2\x2\x654\x656\a\xE2\x2\x2\x655\x657\x5\x126\x94\x2\x656"+ - "\x655\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\x658\x3\x2\x2\x2\x658\x659"+ - "\x5\xBC_\x2\x659\xAD\x3\x2\x2\x2\x65A\x65B\a\xC8\x2\x2\x65B\xAF\x3\x2"+ - "\x2\x2\x65C\x65D\x5\x110\x89\x2\x65D\x65E\x5\x126\x94\x2\x65E\x660\x3"+ - "\x2\x2\x2\x65F\x65C\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x663\x3\x2"+ - "\x2\x2\x661\x662\a\xC6\x2\x2\x662\x664\x5\x126\x94\x2\x663\x661\x3\x2"+ - "\x2\x2\x663\x664\x3\x2\x2\x2\x664\x665\x3\x2\x2\x2\x665\x667\a\xCA\x2"+ - "\x2\x666\x668\x5\x126\x94\x2\x667\x666\x3\x2\x2\x2\x667\x668\x3\x2\x2"+ - "\x2\x668\x669\x3\x2\x2\x2\x669\x66E\x5\xF8}\x2\x66A\x66C\x5\x126\x94\x2"+ - "\x66B\x66A\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D"+ - "\x66F\x5\xEEx\x2\x66E\x66B\x3\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F\x670"+ - "\x3\x2\x2\x2\x670\x672\x5\x116\x8C\x2\x671\x673\x5\x1A\xE\x2\x672\x671"+ - "\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675\a\x66"+ - "\x2\x2\x675\xB1\x3\x2\x2\x2\x676\x678\a\xCE\x2\x2\x677\x679\x5\x126\x94"+ - "\x2\x678\x677\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x67A\x3\x2\x2\x2"+ - "\x67A\x67C\a\xE2\x2\x2\x67B\x67D\x5\x126\x94\x2\x67C\x67B\x3\x2\x2\x2"+ - "\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x5\xBC_\x2\x67F"+ + "\x66\x3\x66\x3\x66\x5\x66\x7BC\n\x66\x3\x66\x3\x66\x3g\x3g\x3h\x3h\x3"+ + "h\x3h\x5h\x7C6\nh\x3h\x3h\x5h\x7CA\nh\x3h\x5h\x7CD\nh\x3i\x5i\x7D0\ni"+ + "\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7D9\nk\x3k\x3k\x3k\x5k\x7DE\nk\x3k\x5"+ + "k\x7E1\nk\x3k\x3k\x5k\x7E5\nk\x3k\x3k\x5k\x7E9\nk\x3k\x3k\x5k\x7ED\nk"+ + "\x3k\x5k\x7F0\nk\x3k\x3k\x3k\x3k\ak\x7F6\nk\fk\xEk\x7F9\vk\x3k\x3k\x5"+ + "k\x7FD\nk\x3k\x5k\x800\nk\x3k\x3k\x5k\x804\nk\x3k\x3k\x5k\x808\nk\x3k"+ + "\x3k\x5k\x80C\nk\x3k\x5k\x80F\nk\x3k\x3k\x3k\x3k\ak\x815\nk\fk\xEk\x818"+ + "\vk\x5k\x81A\nk\x3l\x3l\x5l\x81E\nl\x3m\x5m\x821\nm\x3m\x5m\x824\nm\x3"+ + "m\x3m\x5m\x828\nm\x3m\x3m\x5m\x82C\nm\x3m\x3m\x3m\x5m\x831\nm\x3m\x5m"+ + "\x834\nm\x3m\x5m\x837\nm\x3m\x5m\x83A\nm\x3m\x3m\x3m\x3m\am\x840\nm\f"+ + "m\xEm\x843\vm\x3n\x3n\x3n\x3n\x5n\x849\nn\x3n\x5n\x84C\nn\x3n\x3n\x3n"+ + "\x3n\an\x852\nn\fn\xEn\x855\vn\x3o\x3o\x3o\x3o\x5o\x85B\no\x3p\x3p\x5"+ + "p\x85F\np\x3p\x5p\x862\np\x3p\x5p\x865\np\x3p\x5p\x868\np\x3p\x3p\x3p"+ + "\x3p\ap\x86E\np\fp\xEp\x871\vp\x3q\x3q\x5q\x875\nq\x3q\x5q\x878\nq\x3"+ + "q\x5q\x87B\nq\x3q\x3q\x5q\x87F\nq\x3q\x3q\x5q\x883\nq\x5q\x885\nq\x3q"+ + "\x3q\x5q\x889\nq\x3q\x5q\x88C\nq\x3q\x5q\x88F\nq\x3q\x3q\x3q\x3q\aq\x895"+ + "\nq\fq\xEq\x898\vq\x3r\x3r\x5r\x89C\nr\x3r\x3r\x5r\x8A0\nr\x6r\x8A2\n"+ + "r\rr\xEr\x8A3\x3r\x5r\x8A7\nr\x3r\x5r\x8AA\nr\x3r\x5r\x8AD\nr\x3r\x3r"+ + "\x3r\x3r\ar\x8B3\nr\fr\xEr\x8B6\vr\x3s\x3s\x5s\x8BA\ns\x3s\x3s\x5s\x8BE"+ + "\ns\x3t\x5t\x8C1\nt\x3t\x3t\x3u\x5u\x8C6\nu\x3u\x5u\x8C9\nu\x3u\x3u\x5"+ + "u\x8CD\nu\au\x8CF\nu\fu\xEu\x8D2\vu\x3u\x3u\x5u\x8D6\nu\x3u\x3u\x5u\x8DA"+ + "\nu\x3u\x5u\x8DD\nu\au\x8DF\nu\fu\xEu\x8E2\vu\x3v\x5v\x8E5\nv\x3v\x3v"+ + "\x5v\x8E9\nv\x3v\x5v\x8EC\nv\x3v\x3v\x3w\x3w\x5w\x8F2\nw\x3w\x3w\x5w\x8F6"+ + "\nw\x3x\x3x\x5x\x8FA\nx\x3x\x3x\x5x\x8FE\nx\x3x\x3x\x5x\x902\nx\x3x\a"+ + "x\x905\nx\fx\xEx\x908\vx\x5x\x90A\nx\x3x\x5x\x90D\nx\x3x\x3x\x3y\x3y\x5"+ + "y\x913\ny\x3y\x3y\x5y\x917\ny\x3y\x3y\x5y\x91B\ny\x3y\x3y\x5y\x91F\ny"+ + "\x3y\x5y\x922\ny\x3y\x3y\x5y\x926\ny\x3y\x5y\x929\ny\x3y\x5y\x92C\ny\x3"+ + "y\x5y\x92F\ny\x3y\x5y\x932\ny\x3y\x5y\x935\ny\x3z\x3z\x5z\x939\nz\x3z"+ + "\x3z\x3{\x3{\x5{\x93F\n{\x3{\x3{\x5{\x943\n{\x3{\a{\x946\n{\f{\xE{\x949"+ + "\v{\x3|\x3|\x3|\x3|\x3|\x5|\x950\n|\x3|\x3|\x3}\x3}\x5}\x956\n}\x3~\x3"+ + "~\x5~\x95A\n~\x3~\x3~\x5~\x95E\n~\x3~\x3~\x5~\x962\n~\x3~\x5~\x965\n~"+ + "\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81\a\x81\x96E\n\x81\f\x81"+ + "\xE\x81\x971\v\x81\x3\x82\x3\x82\x5\x82\x975\n\x82\x3\x82\x3\x82\x5\x82"+ + "\x979\n\x82\x3\x83\x3\x83\x5\x83\x97D\n\x83\x3\x83\x3\x83\x5\x83\x981"+ + "\n\x83\x3\x83\x5\x83\x984\n\x83\x3\x84\x3\x84\x5\x84\x988\n\x84\x3\x84"+ + "\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x5\x85"+ + "\x994\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87\x99A\n\x87\x3\x87\x5\x87"+ + "\x99D\n\x87\x3\x87\x3\x87\x5\x87\x9A1\n\x87\x3\x87\x5\x87\x9A4\n\x87\x3"+ + "\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B\x5\x8B\x9AD\n\x8B\x3\x8B"+ + "\x6\x8B\x9B0\n\x8B\r\x8B\xE\x8B\x9B1\x3\x8B\x3\x8B\x5\x8B\x9B6\n\x8B\x3"+ + "\x8B\x5\x8B\x9B9\n\x8B\x3\x8B\x5\x8B\x9BC\n\x8B\x3\x8B\x5\x8B\x9BF\n\x8B"+ + "\x3\x8C\x3\x8C\x5\x8C\x9C3\n\x8C\x3\x8C\x3\x8C\x5\x8C\x9C7\n\x8C\a\x8C"+ + "\x9C9\n\x8C\f\x8C\xE\x8C\x9CC\v\x8C\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8F"+ + "\x3\x8F\x6\x8F\x9D4\n\x8F\r\x8F\xE\x8F\x9D5\x3\x90\x3\x90\x3\x90\x5\x90"+ + "\x9DB\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x5\x92\x9E2\n\x92\x3\x92"+ + "\x3\x92\x3\x92\x5\x92\x9E7\n\x92\x3\x92\x3\x92\x5\x92\x9EB\n\x92\x3\x92"+ + "\x6\x92\x9EE\n\x92\r\x92\xE\x92\x9EF\x3\x92\x5\x92\x9F3\n\x92\x3\x92\x5"+ + "\x92\x9F6\n\x92\x3\x92\x3\x92\x5\x92\x9FA\n\x92\x3\x92\x3\x92\x5\x92\x9FE"+ + "\n\x92\x3\x92\x3\x92\x5\x92\xA02\n\x92\x3\x92\x5\x92\xA05\n\x92\x3\x92"+ + "\x3\x92\x3\x92\x5\x92\xA0A\n\x92\x3\x92\x3\x92\x5\x92\xA0E\n\x92\x3\x92"+ + "\x6\x92\xA11\n\x92\r\x92\xE\x92\xA12\x3\x92\x5\x92\xA16\n\x92\x3\x92\x3"+ + "\x92\x5\x92\xA1A\n\x92\x5\x92\xA1C\n\x92\x3\x93\x3\x93\x5\x93\xA20\n\x93"+ + "\x3\x94\x6\x94\xA23\n\x94\r\x94\xE\x94\xA24\x3\x94\x2\x2\x3\xBC\x95\x2"+ + "\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2"+ + "\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34"+ + "\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2"+ + "P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2"+ + "n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2"+ + "\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2"+ + "\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2"+ + "\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2"+ + "\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2"+ + "\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2"+ + "\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2"+ + "\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112"+ + "\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124"+ + "\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3"+ + "\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4"+ + "\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))++\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0"+ + "\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7"+ + "\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3\x2?@\r\x2\x13\x13\x1F >>\x41\x41J"+ + "J\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32"+ + "\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B"+ + "\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100"+ + "\x102\x102\xBB8\x2\x128\x3\x2\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2"+ + "\x2\x2\b\x152\x3\x2\x2\x2\n\x164\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180"+ + "\x3\x2\x2\x2\x10\x195\x3\x2\x2\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2"+ + "\x2\x2\x16\x1B1\x3\x2\x2\x2\x18\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2"+ + "\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3"+ + "\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258"+ + "\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2"+ + "\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD"+ + "\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F"+ + "\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2"+ + "\x2\x2H\x35D\x3\x2\x2\x2J\x38A\x3\x2\x2\x2L\x3AA\x3\x2\x2\x2N\x3C0\x3"+ + "\x2\x2\x2P\x3C4\x3\x2\x2\x2R\x3E2\x3\x2\x2\x2T\x3E4\x3\x2\x2\x2V\x3ED"+ + "\x3\x2\x2\x2X\x3EF\x3\x2\x2\x2Z\x3F8\x3\x2\x2\x2\\\x3FD\x3\x2\x2\x2^\x401"+ + "\x3\x2\x2\x2`\x410\x3\x2\x2\x2\x62\x416\x3\x2\x2\x2\x64\x422\x3\x2\x2"+ + "\x2\x66\x42E\x3\x2\x2\x2h\x432\x3\x2\x2\x2j\x446\x3\x2\x2\x2l\x452\x3"+ + "\x2\x2\x2n\x460\x3\x2\x2\x2p\x464\x3\x2\x2\x2r\x46C\x3\x2\x2\x2t\x478"+ + "\x3\x2\x2\x2v\x48C\x3\x2\x2\x2x\x4A0\x3\x2\x2\x2z\x4E5\x3\x2\x2\x2|\x4F8"+ + "\x3\x2\x2\x2~\x4FA\x3\x2\x2\x2\x80\x50A\x3\x2\x2\x2\x82\x52A\x3\x2\x2"+ + "\x2\x84\x542\x3\x2\x2\x2\x86\x557\x3\x2\x2\x2\x88\x56D\x3\x2\x2\x2\x8A"+ + "\x580\x3\x2\x2\x2\x8C\x586\x3\x2\x2\x2\x8E\x59A\x3\x2\x2\x2\x90\x5AC\x3"+ + "\x2\x2\x2\x92\x5AE\x3\x2\x2\x2\x94\x5B6\x3\x2\x2\x2\x96\x5B8\x3\x2\x2"+ + "\x2\x98\x5BC\x3\x2\x2\x2\x9A\x5C8\x3\x2\x2\x2\x9C\x5D4\x3\x2\x2\x2\x9E"+ + "\x5F0\x3\x2\x2\x2\xA0\x5FC\x3\x2\x2\x2\xA2\x61B\x3\x2\x2\x2\xA4\x61D\x3"+ + "\x2\x2\x2\xA6\x633\x3\x2\x2\x2\xA8\x635\x3\x2\x2\x2\xAA\x642\x3\x2\x2"+ + "\x2\xAC\x64E\x3\x2\x2\x2\xAE\x65A\x3\x2\x2\x2\xB0\x65F\x3\x2\x2\x2\xB2"+ + "\x676\x3\x2\x2\x2\xB4\x683\x3\x2\x2\x2\xB6\x691\x3\x2\x2\x2\xB8\x6A9\x3"+ + "\x2\x2\x2\xBA\x6AD\x3\x2\x2\x2\xBC\x6EE\x3\x2\x2\x2\xBE\x761\x3\x2\x2"+ + "\x2\xC0\x76E\x3\x2\x2\x2\xC2\x777\x3\x2\x2\x2\xC4\x785\x3\x2\x2\x2\xC6"+ + "\x7A1\x3\x2\x2\x2\xC8\x7AA\x3\x2\x2\x2\xCA\x7B6\x3\x2\x2\x2\xCC\x7BF\x3"+ + "\x2\x2\x2\xCE\x7C1\x3\x2\x2\x2\xD0\x7CF\x3\x2\x2\x2\xD2\x7D3\x3\x2\x2"+ + "\x2\xD4\x819\x3\x2\x2\x2\xD6\x81D\x3\x2\x2\x2\xD8\x820\x3\x2\x2\x2\xDA"+ + "\x844\x3\x2\x2\x2\xDC\x85A\x3\x2\x2\x2\xDE\x85C\x3\x2\x2\x2\xE0\x874\x3"+ + "\x2\x2\x2\xE2\x89B\x3\x2\x2\x2\xE4\x8B7\x3\x2\x2\x2\xE6\x8C0\x3\x2\x2"+ + "\x2\xE8\x8D0\x3\x2\x2\x2\xEA\x8E4\x3\x2\x2\x2\xEC\x8EF\x3\x2\x2\x2\xEE"+ + "\x8F7\x3\x2\x2\x2\xF0\x912\x3\x2\x2\x2\xF2\x936\x3\x2\x2\x2\xF4\x93C\x3"+ + "\x2\x2\x2\xF6\x94F\x3\x2\x2\x2\xF8\x955\x3\x2\x2\x2\xFA\x957\x3\x2\x2"+ + "\x2\xFC\x966\x3\x2\x2\x2\xFE\x968\x3\x2\x2\x2\x100\x96A\x3\x2\x2\x2\x102"+ + "\x972\x3\x2\x2\x2\x104\x97A\x3\x2\x2\x2\x106\x987\x3\x2\x2\x2\x108\x993"+ + "\x3\x2\x2\x2\x10A\x995\x3\x2\x2\x2\x10C\x999\x3\x2\x2\x2\x10E\x9A5\x3"+ + "\x2\x2\x2\x110\x9A7\x3\x2\x2\x2\x112\x9A9\x3\x2\x2\x2\x114\x9BE\x3\x2"+ + "\x2\x2\x116\x9CA\x3\x2\x2\x2\x118\x9CD\x3\x2\x2\x2\x11A\x9CF\x3\x2\x2"+ + "\x2\x11C\x9D1\x3\x2\x2\x2\x11E\x9D7\x3\x2\x2\x2\x120\x9DC\x3\x2\x2\x2"+ + "\x122\xA1B\x3\x2\x2\x2\x124\xA1F\x3\x2\x2\x2\x126\xA22\x3\x2\x2\x2\x128"+ + "\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5"+ + "\x126\x94\x2\x12C\x12B\x3\x2\x2\x2\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3"+ + "\x2\x2\x2\x12E\x132\x5\x116\x8C\x2\x12F\x130\x5\x6\x4\x2\x130\x131\x5"+ + "\x116\x8C\x2\x131\x133\x3\x2\x2\x2\x132\x12F\x3\x2\x2\x2\x132\x133\x3"+ + "\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136\x5\b\x5\x2\x135\x134\x3\x2\x2"+ + "\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x5\x116\x8C"+ + "\x2\x138\x13A\x5\f\a\x2\x139\x138\x3\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A"+ + "\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C"+ + "\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5"+ + "\x116\x8C\x2\x140\x142\x5\x14\v\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3"+ + "\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145\x5\x116\x8C\x2\x144\x146\x5"+ + "\x126\x94\x2\x145\x144\x3\x2\x2\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2"+ + "\x2\x2\x147\x148\a\xD7\x2\x2\x148\x149\x5\x126\x94\x2\x149\x14B\x5\x10A"+ + "\x86\x2\x14A\x14C\x5\x126\x94\x2\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2"+ + "\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2"+ + "\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x151\x5\x116\x8C"+ + "\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;\x2\x2\x153\x154\x5\x126\x94\x2\x154"+ + "\x155\a\x103\x2\x2\x155\x156\x5\x126\x94\x2\x156\x158\x5\xF8}\x2\x157"+ + "\x159\x5\x126\x94\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159"+ + "\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C"+ + "\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3"+ + "\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160\x15E\x3\x2\x2\x2\x160\x161\x3\x2"+ + "\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163\ai\x2\x2\x163\t\x3\x2\x2\x2\x164"+ + "\x168\x5\xF8}\x2\x165\x167\x5\x126\x94\x2\x166\x165\x3\x2\x2\x2\x167\x16A"+ + "\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16B\x3"+ + "\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126"+ + "\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2"+ + "\x2\x16F\x170\x3\x2\x2\x2\x170\x172\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2"+ + "\x172\x175\x5\x108\x85\x2\x173\x174\a*\x2\x2\x174\x176\x5\x10A\x86\x2"+ + "\x175\x173\x3\x2\x2\x2\x175\x176\x3\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177"+ + "\x178\x5\x116\x8C\x2\x178\v\x3\x2\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B"+ + "\x5\x116\x8C\x2\x17B\x17D\x3\x2\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E"+ + "\x3\x2\x2\x2\x17E\x17C\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2"+ + "\x2\x2\x180\x186\x5\x12\n\x2\x181\x182\x5\x116\x8C\x2\x182\x183\x5\x12"+ + "\n\x2\x183\x185\x3\x2\x2\x2\x184\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2"+ + "\x186\x184\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188"+ + "\x186\x3\x2\x2\x2\x189\x18A\x5\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C"+ + "\a\xA0\x2\x2\x18C\x18D\x5\x126\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196"+ + "\x3\x2\x2\x2\x18F\x190\a\xA2\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192"+ + "\t\x2\x2\x2\x192\x196\x3\x2\x2\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3"+ + "\x2\x2\x195\x18B\x3\x2\x2\x2\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2"+ + "\x2\x195\x194\x3\x2\x2\x2\x196\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198"+ + "\x1A0\x5\x38\x1D\x2\x199\x1A0\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5"+ + "\\/\x2\x19C\x1A0\x5\xC0\x61\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4"+ + "[\x2\x19F\x197\x3\x2\x2\x2\x19F\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2"+ + "\x19F\x19A\x3\x2\x2\x2\x19F\x19B\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F"+ + "\x19D\x3\x2\x2\x2\x19F\x19E\x3\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7"+ + "\x5\x16\f\x2\x1A2\x1A3\x5\x116\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6"+ + "\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3"+ + "\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2"+ + "\x2\x2\x1AA\x1AB\x5\x116\x8C\x2\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2"+ + "\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43"+ + "\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1"+ + "\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17"+ + "\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7"+ + "\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3"+ + "\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126"+ + "\x94\x2\x1BB\x1BA\x3\x2\x2\x2\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2"+ + "\x2\x1BD\x1C8\x5\x108\x85\x2\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2"+ + "\x2\x2\x1BF\x1C0\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2"+ + "\x1C2\x1C4\x5\x126\x94\x2\x1C3\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2"+ + "\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2"+ + "\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9"+ + "\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD"+ + "\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC"+ + "\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3"+ + "\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116"+ + "\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E"+ + "\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9\x219\x5 \x11\x2\x1DA\x219\x5\"\x12"+ + "\x2\x1DB\x219\x5$\x13\x2\x1DC\x219\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE"+ + "\x219\x5,\x17\x2\x1DF\x219\x5\x32\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1"+ + "\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4"+ + "\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6\x219\x5\xD2j\x2\x1E7\x219\x5"+ + "\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5H%\x2\x1EA\x219\x5L\'\x2\x1EB"+ + "\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF"+ + "\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2\x1F1\x219\x5\x62\x32\x2\x1F2\x219"+ + "\x5\x64\x33\x2\x1F3\x219\x5\x66\x34\x2\x1F4\x219\x5h\x35\x2\x1F5\x219"+ + "\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7\x219\x5n\x38\x2\x1F8\x219\x5p\x39"+ + "\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t;\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5"+ + "x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5\x86\x44\x2\x1FF\x219\x5\x88\x45\x2"+ + "\x200\x219\x5\x8A\x46\x2\x201\x219\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203"+ + "\x219\x5\x92J\x2\x204\x219\x5\x94K\x2\x205\x219\x5\x96L\x2\x206\x219\x5"+ + "\x98M\x2\x207\x219\x5\x9AN\x2\x208\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2"+ + "\x20A\x219\x5\xA0Q\x2\x20B\x219\x5\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219"+ + "\x5\xACW\x2\x20E\x219\x5\xAEX\x2\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8"+ + "]\x2\x211\x219\x5\xBA^\x2\x212\x219\x5\xC0\x61\x2\x213\x219\x5\xC6\x64"+ + "\x2\x214\x219\x5\xC8\x65\x2\x215\x219\x5\xCA\x66\x2\x216\x219\x5\xCEh"+ + "\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218"+ + "\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB"+ + "\x3\x2\x2\x2\x218\x1DC\x3\x2\x2\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3"+ + "\x2\x2\x2\x218\x1DF\x3\x2\x2\x2\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2"+ + "\x2\x2\x218\x1E2\x3\x2\x2\x2\x218\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2"+ + "\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2"+ + "\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218"+ + "\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE"+ + "\x3\x2\x2\x2\x218\x1EF\x3\x2\x2\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3"+ + "\x2\x2\x2\x218\x1F2\x3\x2\x2\x2\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2"+ + "\x2\x2\x218\x1F5\x3\x2\x2\x2\x218\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2"+ + "\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2"+ + "\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218"+ + "\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201"+ + "\x3\x2\x2\x2\x218\x202\x3\x2\x2\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3"+ + "\x2\x2\x2\x218\x205\x3\x2\x2\x2\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2"+ + "\x2\x2\x218\x208\x3\x2\x2\x2\x218\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2"+ + "\x2\x218\x20B\x3\x2\x2\x2\x218\x20C\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2"+ + "\x218\x20E\x3\x2\x2\x2\x218\x20F\x3\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218"+ + "\x211\x3\x2\x2\x2\x218\x212\x3\x2\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214"+ + "\x3\x2\x2\x2\x218\x215\x3\x2\x2\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3"+ + "\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A\x21B\a\x38\x2\x2\x21B\x21C\x5\x126"+ + "\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F\x5\x126\x94\x2\x21E\x21D\x3\x2"+ + "\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x222\a)\x2\x2"+ + "\x221\x223\x5\x126\x94\x2\x222\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2"+ + "\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC_\x2\x225\x21E\x3\x2\x2\x2\x225"+ + "\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2\x227\x228\a<\x2\x2\x228!\x3\x2"+ + "\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B\x5\x126\x94\x2\x22B\x22C\x5\xBC"+ + "_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45\x2\x2\x22E\x22F\x5\x126\x94\x2"+ + "\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2\x231\x241\aG\x2\x2\x232\x233\x5"+ + "\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234\x236\x5\x126\x94\x2\x235\x234\x3"+ + "\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x237\x3\x2\x2\x2\x237\x239\a)\x2"+ + "\x2\x238\x23A\x5\x126\x94\x2\x239\x238\x3\x2\x2\x2\x239\x23A\x3\x2\x2"+ + "\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D"+ + "\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242"+ + "\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2\x241\x232\x3\x2\x2\x2\x241\x242\x3"+ + "\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244\x5\x110\x89\x2\x244\x245\x5\x126"+ + "\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243\x3\x2\x2\x2\x246\x247\x3\x2\x2"+ + "\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH\x2\x2\x249\x24A\x5\x126\x94\x2"+ + "\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C"+ + "\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2\x2\x24E\x250\a)\x2\x2\x24F\x251\x5"+ + "\x126\x94\x2\x250\x24F\x3\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x252\x3"+ + "\x2\x2\x2\x252\x254\x5*\x16\x2\x253\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2"+ + "\x2\x255\x253\x3\x2\x2\x2\x255\x256\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257"+ + "\x255\x3\x2\x2\x2\x258\x25A\x5\xF8}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259"+ + "\x3\x2\x2\x2\x25A\x25B\x3\x2\x2\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5"+ + "\x126\x94\x2\x25D\x25E\x5\xFA~\x2\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2"+ + "\x2\x2\x25F\x260\x3\x2\x2\x2\x260\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94"+ + "\x2\x262\x261\x3\x2\x2\x2\x262\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2"+ + "\x264\x266\a\xE2\x2\x2\x265\x267\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2"+ + "\x266\x267\x3\x2\x2\x2\x267\x268\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269"+ + "+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3"+ + "\x2\x2\x2\x26C\x26D\x3\x2\x2\x2\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2"+ + "\x2\x2\x26F\x271\x5\x126\x94\x2\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2"+ + "\x2\x2\x271\x272\x3\x2\x2\x2\x272\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274"+ + "\x275\x5\x110\x89\x2\x275\x276\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277"+ + "\x274\x3\x2\x2\x2\x277\x278\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A"+ + "\aK\x2\x2\x27A\x27D\x5\x126\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5"+ + "\x126\x94\x2\x27D\x27B\x3\x2\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3"+ + "\x2\x2\x2\x27F\x281\ax\x2\x2\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2"+ + "\x2\x2\x281\x282\x3\x2\x2\x2\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2"+ + "\x2\x284\x27F\x3\x2\x2\x2\x284\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2"+ + "\x286\x287\x5\x126\x94\x2\x287\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2"+ + "\x289\x288\x3\x2\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B"+ + "\x28C\x5\x126\x94\x2\x28C\x28D\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E"+ + "\x294\a\xF5\x2\x2\x28F\x290\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291"+ + "\x292\x5\x126\x94\x2\x292\x293\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294"+ + "\x28F\x3\x2\x2\x2\x294\x295\x3\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298"+ + "\x5\x126\x94\x2\x297\x296\x3\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299"+ + "\x3\x2\x2\x2\x299\x29B\x5\xEEx\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2"+ + "\x2\x2\x29B\x29F\x3\x2\x2\x2\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA"+ + "~\x2\x29E\x2A0\x3\x2\x2\x2\x29F\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2"+ + "\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3"+ + "\x2AE\x5\x104\x83\x2\x2A4\x2A6\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5"+ + "\x2A6\x3\x2\x2\x2\x2A6\x2A7\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5"+ + "\x126\x94\x2\x2A9\x2A8\x3\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3"+ + "\x2\x2\x2\x2AB\x2AD\x5\x104\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3"+ + "\x2\x2\x2\x2AE\x2AC\x3\x2\x2\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2"+ + "\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2"+ + "\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5"+ + "\x2B6\x3\x2\x2\x2\x2B6\x2D8\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5"+ + "\x126\x94\x2\x2B9\x2BB\x5\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3"+ + "\x2\x2\x2\x2BB\x2BC\x3\x2\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2"+ + "\x2\x2BE\x2C0\x5\x126\x94\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2"+ + "\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3"+ + "\x2C4\aY\x2\x2\x2C4\x2C5\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8"+ + "\x5\x126\x94\x2\x2C7\x2C6\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9"+ + "\x3\x2\x2\x2\x2C9\x2CB\a)\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3"+ + "\x2\x2\x2\x2CB\x2CC\x3\x2\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC"+ + "_\x2\x2CE\x2D0\x5\x126\x94\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2"+ + "\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2"+ + "\x2D3\x2D2\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5"+ + "\x2D6\x5\xBC_\x2\x2D6\x2D8\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7"+ + "\x3\x2\x2\x2\x2D7\x2C3\x3\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2"+ + "\x2\x2DA\x2DC\x5\x116\x8C\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2"+ + "\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2"+ + "\x2DF\x2F7\x3\x2\x2\x2\x2E0\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2"+ + "\x2E3\t\x4\x2\x2\x2E3\x2E4\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7"+ + "\x5\x116\x8C\x2\x2E6\x2E8\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8"+ + "\x3\x2\x2\x2\x2E8\x2E9\x3\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3"+ + "\x2\x2\x2\x2EB\x2EC\a[\x2\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A"+ + "\xE\x2\x2EE\x2ED\x3\x2\x2\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2"+ + "\x2\x2F0\x2F1\a\x88\x2\x2\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2"+ + "\x2F3\x2F4\x5\x126\x94\x2\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6"+ + "\x2D9\x3\x2\x2\x2\x2F6\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35"+ + "\x3\x2\x2\x2\x2F8\x2F9\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110"+ + "\x89\x2\x2FB\x2FC\x5\x126\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2"+ + "\x2\x2\x2FD\x2FE\x3\x2\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2"+ + "\x300\x301\x5\x126\x94\x2\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2"+ + "\x303\x305\x5:\x1E\x2\x304\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306"+ + "\x304\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306"+ + "\x3\x2\x2\x2\x309\x30A\a\x61\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8"+ + "}\x2\x30C\x30E\x5\x126\x94\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2"+ + "\x2\x30E\x30F\x3\x2\x2\x2\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94"+ + "\x2\x311\x310\x3\x2\x2\x2\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2"+ + "\x313\x315\x5\xBC_\x2\x314\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315"+ + "\x316\x3\x2\x2\x2\x316\x317\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319"+ + "\al\x2\x2\x319\x31A\x5\x126\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126"+ + "\x94\x2\x31C\x31B\x3\x2\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2"+ + "\x2\x31E\x320\a)\x2\x2\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2"+ + "\x320\x321\x3\x2\x2\x2\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323"+ + "\x31C\x3\x2\x2\x2\x324\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326"+ + "\x3\x2\x2\x2\x326=\x3\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2"+ + "\x329\x32A\x5\x126\x94\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C"+ + "\x32D\x5\x110\x89\x2\x32D\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F"+ + "\x32C\x3\x2\x2\x2\x32F\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332"+ + "\an\x2\x2\x332\x333\x5\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126"+ + "\x94\x2\x335\x334\x3\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2"+ + "\x2\x337\x338\x5\xEEx\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A"+ + "\x43\x3\x2\x2\x2\x33B\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F"+ + "\x5\xBC_\x2\x33E\x340\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3"+ + "\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94"+ + "\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2"+ + "\x345\x346\x5\xBC_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349"+ + "\x5\x126\x94\x2\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34D"+ + "\x5\xF8}\x2\x34C\x34E\x5\x10E\x88\x2\x34D\x34C\x3\x2\x2\x2\x34D\x34E\x3"+ + "\x2\x2\x2\x34E\x34F\x3\x2\x2\x2\x34F\x350\x5\x126\x94\x2\x350\x351\a\x80"+ + "\x2\x2\x351\x352\x5\x126\x94\x2\x352\x353\x5\xBC_\x2\x353\x355\x5\x116"+ + "\x8C\x2\x354\x356\x5\x1A\xE\x2\x355\x354\x3\x2\x2\x2\x355\x356\x3\x2\x2"+ + "\x2\x356\x357\x3\x2\x2\x2\x357\x35B\a\x96\x2\x2\x358\x359\x5\x126\x94"+ + "\x2\x359\x35A\x5\xF8}\x2\x35A\x35C\x3\x2\x2\x2\x35B\x358\x3\x2\x2\x2\x35B"+ + "\x35C\x3\x2\x2\x2\x35CG\x3\x2\x2\x2\x35D\x35E\aw\x2\x2\x35E\x35F\x5\x126"+ + "\x94\x2\x35F\x361\x5\xF8}\x2\x360\x362\x5\x10E\x88\x2\x361\x360\x3\x2"+ + "\x2\x2\x361\x362\x3\x2\x2\x2\x362\x366\x3\x2\x2\x2\x363\x364\x5\x126\x94"+ + "\x2\x364\x365\x5\xFA~\x2\x365\x367\x3\x2\x2\x2\x366\x363\x3\x2\x2\x2\x366"+ + "\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369"+ + "\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36D"+ + "\a\xE2\x2\x2\x36C\x36E\x5\x126\x94\x2\x36D\x36C\x3\x2\x2\x2\x36D\x36E"+ + "\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBC_\x2\x370\x371\x5\x126"+ + "\x94\x2\x371\x372\a\xCF\x2\x2\x372\x373\x5\x126\x94\x2\x373\x379\x5\xBC"+ + "_\x2\x374\x375\x5\x126\x94\x2\x375\x376\a\xC7\x2\x2\x376\x377\x5\x126"+ + "\x94\x2\x377\x378\x5\xBC_\x2\x378\x37A\x3\x2\x2\x2\x379\x374\x3\x2\x2"+ + "\x2\x379\x37A\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37D\x5\x116\x8C"+ + "\x2\x37C\x37E\x5\x1A\xE\x2\x37D\x37C\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2"+ + "\x37E\x37F\x3\x2\x2\x2\x37F\x385\a\x96\x2\x2\x380\x381\x5\x126\x94\x2"+ + "\x381\x383\x5\xF8}\x2\x382\x384\x5\x10E\x88\x2\x383\x382\x3\x2\x2\x2\x383"+ + "\x384\x3\x2\x2\x2\x384\x386\x3\x2\x2\x2\x385\x380\x3\x2\x2\x2\x385\x386"+ + "\x3\x2\x2\x2\x386I\x3\x2\x2\x2\x387\x388\x5\x110\x89\x2\x388\x389\x5\x126"+ + "\x94\x2\x389\x38B\x3\x2\x2\x2\x38A\x387\x3\x2\x2\x2\x38A\x38B\x3\x2\x2"+ + "\x2\x38B\x38E\x3\x2\x2\x2\x38C\x38D\a\xC6\x2\x2\x38D\x38F\x5\x126\x94"+ + "\x2\x38E\x38C\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2"+ + "\x390\x392\ax\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392"+ + "\x393\x3\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xF8}\x2\x395\x397"+ + "\x5\x10E\x88\x2\x396\x395\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x39C"+ + "\x3\x2\x2\x2\x398\x39A\x5\x126\x94\x2\x399\x398\x3\x2\x2\x2\x399\x39A"+ + "\x3\x2\x2\x2\x39A\x39B\x3\x2\x2\x2\x39B\x39D\x5\xEEx\x2\x39C\x399\x3\x2"+ + "\x2\x2\x39C\x39D\x3\x2\x2\x2\x39D\x3A2\x3\x2\x2\x2\x39E\x3A0\x5\x126\x94"+ + "\x2\x39F\x39E\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2"+ + "\x3A1\x3A3\x5\xFA~\x2\x3A2\x39F\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3"+ + "\x3A4\x3\x2\x2\x2\x3A4\x3A6\x5\x116\x8C\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6"+ + "\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2\x2\x3A7\x3A8\x3\x2\x2\x2\x3A8\x3A9"+ + "\a\x62\x2\x2\x3A9K\x3\x2\x2\x2\x3AA\x3AB\ay\x2\x2\x3AB\x3AC\x5\x126\x94"+ + "\x2\x3AC\x3AE\x5\xD0i\x2\x3AD\x3AF\x5\x126\x94\x2\x3AE\x3AD\x3\x2\x2\x2"+ + "\x3AE\x3AF\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B2\a)\x2\x2\x3B1\x3B3"+ + "\x5\x126\x94\x2\x3B2\x3B1\x3\x2\x2\x2\x3B2\x3B3\x3\x2\x2\x2\x3B3\x3B5"+ + "\x3\x2\x2\x2\x3B4\x3B6\x5\xBC_\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ + "\x2\x2\x3B6\x3B8\x3\x2\x2\x2\x3B7\x3B9\x5\x126\x94\x2\x3B8\x3B7\x3\x2"+ + "\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BC\a)\x2\x2"+ + "\x3BB\x3BD\x5\x126\x94\x2\x3BC\x3BB\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2\x2"+ + "\x3BD\x3BE\x3\x2\x2\x2\x3BE\x3BF\x5\xBC_\x2\x3BFM\x3\x2\x2\x2\x3C0\x3C1"+ + "\a{\x2\x2\x3C1\x3C2\x5\x126\x94\x2\x3C2\x3C3\x5\xBC_\x2\x3C3O\x3\x2\x2"+ + "\x2\x3C4\x3C5\a|\x2\x2\x3C5\x3C6\x5\x126\x94\x2\x3C6\x3C7\x5\xBC_\x2\x3C7"+ + "Q\x3\x2\x2\x2\x3C8\x3C9\a}\x2\x2\x3C9\x3CA\x5\x126\x94\x2\x3CA\x3CB\x5"+ + "V,\x2\x3CB\x3CC\x5\x126\x94\x2\x3CC\x3CD\a\xCD\x2\x2\x3CD\x3CE\x5\x126"+ + "\x94\x2\x3CE\x3D4\x5\x1C\xF\x2\x3CF\x3D0\x5\x126\x94\x2\x3D0\x3D1\a^\x2"+ + "\x2\x3D1\x3D2\x5\x126\x94\x2\x3D2\x3D3\x5\x1C\xF\x2\x3D3\x3D5\x3\x2\x2"+ + "\x2\x3D4\x3CF\x3\x2\x2\x2\x3D4\x3D5\x3\x2\x2\x2\x3D5\x3E3\x3\x2\x2\x2"+ + "\x3D6\x3DA\x5T+\x2\x3D7\x3D9\x5X-\x2\x3D8\x3D7\x3\x2\x2\x2\x3D9\x3DC\x3"+ + "\x2\x2\x2\x3DA\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DE\x3\x2"+ + "\x2\x2\x3DC\x3DA\x3\x2\x2\x2\x3DD\x3DF\x5Z.\x2\x3DE\x3DD\x3\x2\x2\x2\x3DE"+ + "\x3DF\x3\x2\x2\x2\x3DF\x3E0\x3\x2\x2\x2\x3E0\x3E1\a\x63\x2\x2\x3E1\x3E3"+ + "\x3\x2\x2\x2\x3E2\x3C8\x3\x2\x2\x2\x3E2\x3D6\x3\x2\x2\x2\x3E3S\x3\x2\x2"+ + "\x2\x3E4\x3E5\a}\x2\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\x5V,\x2\x3E7"+ + "\x3E8\x5\x126\x94\x2\x3E8\x3E9\a\xCD\x2\x2\x3E9\x3EB\x5\x116\x8C\x2\x3EA"+ + "\x3EC\x5\x1A\xE\x2\x3EB\x3EA\x3\x2\x2\x2\x3EB\x3EC\x3\x2\x2\x2\x3ECU\x3"+ + "\x2\x2\x2\x3ED\x3EE\x5\xBC_\x2\x3EEW\x3\x2\x2\x2\x3EF\x3F0\a_\x2\x2\x3F0"+ + "\x3F1\x5\x126\x94\x2\x3F1\x3F2\x5V,\x2\x3F2\x3F3\x5\x126\x94\x2\x3F3\x3F4"+ + "\a\xCD\x2\x2\x3F4\x3F6\x5\x116\x8C\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5"+ + "\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7Y\x3\x2\x2\x2\x3F8\x3F9\a^\x2\x2"+ + "\x3F9\x3FB\x5\x116\x8C\x2\x3FA\x3FC\x5\x1A\xE\x2\x3FB\x3FA\x3\x2\x2\x2"+ + "\x3FB\x3FC\x3\x2\x2\x2\x3FC[\x3\x2\x2\x2\x3FD\x3FE\a\x7F\x2\x2\x3FE\x3FF"+ + "\x5\x126\x94\x2\x3FF\x400\x5\xBC_\x2\x400]\x3\x2\x2\x2\x401\x402\a\x81"+ + "\x2\x2\x402\x403\x5\x126\x94\x2\x403\x40C\x5\xD0i\x2\x404\x406\x5\x126"+ + "\x94\x2\x405\x404\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406\x407\x3\x2\x2"+ + "\x2\x407\x409\a)\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x408\x3\x2\x2\x2"+ + "\x409\x40A\x3\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5\xBC_\x2\x40C"+ + "\x405\x3\x2\x2\x2\x40D\x40E\x3\x2\x2\x2\x40E\x40C\x3\x2\x2\x2\x40E\x40F"+ + "\x3\x2\x2\x2\x40F_\x3\x2\x2\x2\x410\x411\a\x84\x2\x2\x411\x412\x5\x126"+ + "\x94\x2\x412\x413\x5\xBC_\x2\x413\x61\x3\x2\x2\x2\x414\x415\a\x89\x2\x2"+ + "\x415\x417\x5\x126\x94\x2\x416\x414\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2"+ + "\x417\x418\x3\x2\x2\x2\x418\x41A\x5\xDCo\x2\x419\x41B\x5\x126\x94\x2\x41A"+ + "\x419\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E"+ + "\a\xE2\x2\x2\x41D\x41F\x5\x126\x94\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F"+ + "\x3\x2\x2\x2\x41F\x420\x3\x2\x2\x2\x420\x421\x5\xBC_\x2\x421\x63\x3\x2"+ + "\x2\x2\x422\x423\a\x8C\x2\x2\x423\x424\x5\x126\x94\x2\x424\x426\x5\xD0"+ + "i\x2\x425\x427\x5\x126\x94\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2"+ + "\x2\x427\x428\x3\x2\x2\x2\x428\x42A\a)\x2\x2\x429\x42B\x5\x126\x94\x2"+ + "\x42A\x429\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C"+ + "\x42D\x5\xBC_\x2\x42D\x65\x3\x2\x2\x2\x42E\x42F\a\x85\x2\x2\x42F\x430"+ + "\x5\x126\x94\x2\x430\x431\x5\xBC_\x2\x431g\x3\x2\x2\x2\x432\x433\a\x86"+ + "\x2\x2\x433\x434\x5\x126\x94\x2\x434\x444\x5\xBC_\x2\x435\x437\x5\x126"+ + "\x94\x2\x436\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2\x437\x438\x3\x2\x2"+ + "\x2\x438\x43A\a)\x2\x2\x439\x43B\x5\x126\x94\x2\x43A\x439\x3\x2\x2\x2"+ + "\x43A\x43B\x3\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x442\x5\xBC_\x2\x43D"+ + "\x43E\x5\x126\x94\x2\x43E\x43F\a\xCF\x2\x2\x43F\x440\x5\x126\x94\x2\x440"+ + "\x441\x5\xBC_\x2\x441\x443\x3\x2\x2\x2\x442\x43D\x3\x2\x2\x2\x442\x443"+ + "\x3\x2\x2\x2\x443\x445\x3\x2\x2\x2\x444\x436\x3\x2\x2\x2\x444\x445\x3"+ + "\x2\x2\x2\x445i\x3\x2\x2\x2\x446\x447\a\x90\x2\x2\x447\x448\x5\x126\x94"+ + "\x2\x448\x44A\x5\xDCo\x2\x449\x44B\x5\x126\x94\x2\x44A\x449\x3\x2\x2\x2"+ + "\x44A\x44B\x3\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44E\a\xE2\x2\x2\x44D"+ + "\x44F\x5\x126\x94\x2\x44E\x44D\x3\x2\x2\x2\x44E\x44F\x3\x2\x2\x2\x44F"+ + "\x450\x3\x2\x2\x2\x450\x451\x5\xBC_\x2\x451k\x3\x2\x2\x2\x452\x454\a\x92"+ + "\x2\x2\x453\x455\x5\x126\x94\x2\x454\x453\x3\x2\x2\x2\x454\x455\x3\x2"+ + "\x2\x2\x455\x456\x3\x2\x2\x2\x456\x458\a\xE6\x2\x2\x457\x459\x5\x126\x94"+ + "\x2\x458\x457\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45A\x3\x2\x2\x2"+ + "\x45A\x45C\x5\xE8u\x2\x45B\x45D\x5\x126\x94\x2\x45C\x45B\x3\x2\x2\x2\x45C"+ + "\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xED\x2\x2\x45Fm\x3"+ + "\x2\x2\x2\x460\x461\a\x93\x2\x2\x461\x462\x5\x126\x94\x2\x462\x463\x5"+ + "\xBC_\x2\x463o\x3\x2\x2\x2\x464\x465\a\x95\x2\x2\x465\x466\x5\x126\x94"+ + "\x2\x466\x467\x5\xBC_\x2\x467\x468\x5\x126\x94\x2\x468\x469\a:\x2\x2\x469"+ + "\x46A\x5\x126\x94\x2\x46A\x46B\x5\xBC_\x2\x46Bq\x3\x2\x2\x2\x46C\x46D"+ + "\t\x6\x2\x2\x46D\x476\x5\x126\x94\x2\x46E\x46F\a|\x2\x2\x46F\x470\x5\x126"+ + "\x94\x2\x470\x471\x5\xBC_\x2\x471\x477\x3\x2\x2\x2\x472\x473\a\xB8\x2"+ + "\x2\x473\x474\x5\x126\x94\x2\x474\x475\a\x96\x2\x2\x475\x477\x3\x2\x2"+ + "\x2\x476\x46E\x3\x2\x2\x2\x476\x472\x3\x2\x2\x2\x477s\x3\x2\x2\x2\x478"+ + "\x479\a\x9B\x2\x2\x479\x47A\x5\x126\x94\x2\x47A\x47B\x5\xBC_\x2\x47B\x47C"+ + "\x5\x126\x94\x2\x47C\x47D\a|\x2\x2\x47D\x47E\x5\x126\x94\x2\x47E\x489"+ + "\x5\xBC_\x2\x47F\x481\x5\x126\x94\x2\x480\x47F\x3\x2\x2\x2\x480\x481\x3"+ + "\x2\x2\x2\x481\x482\x3\x2\x2\x2\x482\x484\a)\x2\x2\x483\x485\x5\x126\x94"+ + "\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3\x2\x2\x2"+ + "\x486\x488\x5\xBC_\x2\x487\x480\x3\x2\x2\x2\x488\x48B\x3\x2\x2\x2\x489"+ + "\x487\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48Au\x3\x2\x2\x2\x48B\x489\x3"+ + "\x2\x2\x2\x48C\x48D\a\x9B\x2\x2\x48D\x48E\x5\x126\x94\x2\x48E\x48F\x5"+ + "\xBC_\x2\x48F\x490\x5\x126\x94\x2\x490\x491\a{\x2\x2\x491\x492\x5\x126"+ + "\x94\x2\x492\x49D\x5\xBC_\x2\x493\x495\x5\x126\x94\x2\x494\x493\x3\x2"+ + "\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496\x3\x2\x2\x2\x496\x498\a)\x2\x2"+ + "\x497\x499\x5\x126\x94\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2"+ + "\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xBC_\x2\x49B\x494\x3\x2\x2\x2\x49C"+ + "\x49F\x3\x2\x2\x2\x49D\x49B\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2\x49Ew\x3"+ + "\x2\x2\x2\x49F\x49D\x3\x2\x2\x2\x4A0\x4A1\a\x9E\x2\x2\x4A1\x4A2\x5\x126"+ + "\x94\x2\x4A2\x4A3\x5\xBC_\x2\x4A3\x4A4\x5\x126\x94\x2\x4A4\x4A5\aw\x2"+ + "\x2\x4A5\x4A6\x5\x126\x94\x2\x4A6\x4AC\t\a\x2\x2\x4A7\x4A8\x5\x126\x94"+ + "\x2\x4A8\x4A9\a\x33\x2\x2\x4A9\x4AA\x5\x126\x94\x2\x4AA\x4AB\t\b\x2\x2"+ + "\x4AB\x4AD\x3\x2\x2\x2\x4AC\x4A7\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD"+ + "\x4B1\x3\x2\x2\x2\x4AE\x4AF\x5\x126\x94\x2\x4AF\x4B0\t\t\x2\x2\x4B0\x4B2"+ + "\x3\x2\x2\x2\x4B1\x4AE\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B3\x3"+ + "\x2\x2\x2\x4B3\x4B4\x5\x126\x94\x2\x4B4\x4B5\a:\x2\x2\x4B5\x4B6\x5\x126"+ + "\x94\x2\x4B6\x4C2\x5\xD0i\x2\x4B7\x4B8\x5\x126\x94\x2\x4B8\x4BA\a\x1D"+ + "\x2\x2\x4B9\x4BB\x5\x126\x94\x2\x4BA\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2"+ + "\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BE\a\xE2\x2\x2\x4BD\x4BF\x5\x126\x94"+ + "\x2\x4BE\x4BD\x3\x2\x2\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF\x4C0\x3\x2\x2\x2"+ + "\x4C0\x4C1\x5\xBC_\x2\x4C1\x4C3\x3\x2\x2\x2\x4C2\x4B7\x3\x2\x2\x2\x4C2"+ + "\x4C3\x3\x2\x2\x2\x4C3y\x3\x2\x2\x2\x4C4\x4D1\x5|?\x2\x4C5\x4C7\x5\x126"+ + "\x94\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2"+ + "\x2\x4C8\x4CA\t\n\x2\x2\x4C9\x4CB\x5\x126\x94\x2\x4CA\x4C9\x3\x2\x2\x2"+ + "\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2\x4CC\x4CE\x5|?\x2\x4CD\x4CC"+ + "\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3"+ + "\x2\x2\x2\x4D0\x4D3\x3\x2\x2\x2\x4D1\x4CF\x3\x2\x2\x2\x4D1\x4D2\x3\x2"+ + "\x2\x2\x4D2\x4E6\x3\x2\x2\x2\x4D3\x4D1\x3\x2\x2\x2\x4D4\x4D6\x5|?\x2\x4D5"+ + "\x4D4\x3\x2\x2\x2\x4D5\x4D6\x3\x2\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9"+ + "\x5\x126\x94\x2\x4D8\x4D7\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA"+ + "\x3\x2\x2\x2\x4DA\x4DC\t\n\x2\x2\x4DB\x4DD\x5\x126\x94\x2\x4DC\x4DB\x3"+ + "\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DF\x3\x2\x2\x2\x4DE\x4E0\x5|?\x2"+ + "\x4DF\x4DE\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1"+ + "\x4D8\x3\x2\x2\x2\x4E2\x4E3\x3\x2\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4"+ + "\x3\x2\x2\x2\x4E4\x4E6\x3\x2\x2\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3"+ + "\x2\x2\x2\x4E6{\x3\x2\x2\x2\x4E7\x4F9\x5\xBC_\x2\x4E8\x4F6\t\v\x2\x2\x4E9"+ + "\x4EB\x5\x126\x94\x2\x4EA\x4E9\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB"+ + "\x4EC\x3\x2\x2\x2\x4EC\x4EE\a\xE6\x2\x2\x4ED\x4EF\x5\x126\x94\x2\x4EE"+ + "\x4ED\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2"+ + "\x5\xE8u\x2\x4F1\x4F3\x5\x126\x94\x2\x4F2\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3"+ + "\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5\a\xED\x2\x2\x4F5\x4F7\x3\x2"+ + "\x2\x2\x4F6\x4EA\x3\x2\x2\x2\x4F6\x4F7\x3\x2\x2\x2\x4F7\x4F9\x3\x2\x2"+ + "\x2\x4F8\x4E7\x3\x2\x2\x2\x4F8\x4E8\x3\x2\x2\x2\x4F9}\x3\x2\x2\x2\x4FA"+ + "\x4FB\a\xA8\x2\x2\x4FB\x4FC\x5\x126\x94\x2\x4FC\x4FE\x5\xD0i\x2\x4FD\x4FF"+ + "\x5\x126\x94\x2\x4FE\x4FD\x3\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x500"+ + "\x3\x2\x2\x2\x500\x505\a)\x2\x2\x501\x503\x5\x126\x94\x2\x502\x501\x3"+ + "\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x506\x5z>\x2"+ + "\x505\x502\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x7F\x3\x2\x2\x2\x507"+ + "\x508\x5\x110\x89\x2\x508\x509\x5\x126\x94\x2\x509\x50B\x3\x2\x2\x2\x50A"+ + "\x507\x3\x2\x2\x2\x50A\x50B\x3\x2\x2\x2\x50B\x50E\x3\x2\x2\x2\x50C\x50D"+ + "\a\xC6\x2\x2\x50D\x50F\x5\x126\x94\x2\x50E\x50C\x3\x2\x2\x2\x50E\x50F"+ + "\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511\a\xAA\x2\x2\x511\x512\x5"+ + "\x126\x94\x2\x512\x514\x5\xF8}\x2\x513\x515\x5\x10E\x88\x2\x514\x513\x3"+ + "\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x51A\x3\x2\x2\x2\x516\x518\x5\x126"+ + "\x94\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2"+ + "\x2\x519\x51B\x5\xEEx\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B"+ + "\x51F\x3\x2\x2\x2\x51C\x51D\x5\x126\x94\x2\x51D\x51E\x5\xFA~\x2\x51E\x520"+ + "\x3\x2\x2\x2\x51F\x51C\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\x3"+ + "\x2\x2\x2\x521\x523\x5\x116\x8C\x2\x522\x524\x5\x1A\xE\x2\x523\x522\x3"+ + "\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526\a\x64"+ + "\x2\x2\x526\x81\x3\x2\x2\x2\x527\x528\x5\x110\x89\x2\x528\x529\x5\x126"+ + "\x94\x2\x529\x52B\x3\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2"+ + "\x2\x52B\x52E\x3\x2\x2\x2\x52C\x52D\a\xC6\x2\x2\x52D\x52F\x5\x126\x94"+ + "\x2\x52E\x52C\x3\x2\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2"+ + "\x530\x531\a\xAC\x2\x2\x531\x532\x5\x126\x94\x2\x532\x537\x5\xF8}\x2\x533"+ + "\x535\x5\x126\x94\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2\x535"+ + "\x536\x3\x2\x2\x2\x536\x538\x5\xEEx\x2\x537\x534\x3\x2\x2\x2\x537\x538"+ + "\x3\x2\x2\x2\x538\x539\x3\x2\x2\x2\x539\x53B\x5\x116\x8C\x2\x53A\x53C"+ + "\x5\x1A\xE\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D\x3"+ + "\x2\x2\x2\x53D\x53E\a\x64\x2\x2\x53E\x83\x3\x2\x2\x2\x53F\x540\x5\x110"+ + "\x89\x2\x540\x541\x5\x126\x94\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2"+ + "\x2\x2\x542\x543\x3\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xC6\x2"+ + "\x2\x545\x547\x5\x126\x94\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2"+ + "\x2\x547\x548\x3\x2\x2\x2\x548\x549\a\xAB\x2\x2\x549\x54A\x5\x126\x94"+ + "\x2\x54A\x54F\x5\xF8}\x2\x54B\x54D\x5\x126\x94\x2\x54C\x54B\x3\x2\x2\x2"+ + "\x54C\x54D\x3\x2\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xEEx\x2\x54F"+ + "\x54C\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553"+ + "\x5\x116\x8C\x2\x552\x554\x5\x1A\xE\x2\x553\x552\x3\x2\x2\x2\x553\x554"+ + "\x3\x2\x2\x2\x554\x555\x3\x2\x2\x2\x555\x556\a\x64\x2\x2\x556\x85\x3\x2"+ + "\x2\x2\x557\x558\a\xAF\x2\x2\x558\x559\x5\x126\x94\x2\x559\x55B\x5\xD0"+ + "i\x2\x55A\x55C\x5\x126\x94\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2"+ + "\x2\x55C\x55D\x3\x2\x2\x2\x55D\x55F\a)\x2\x2\x55E\x560\x5\x126\x94\x2"+ + "\x55F\x55E\x3\x2\x2\x2\x55F\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561"+ + "\x563\x5\xBC_\x2\x562\x561\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565"+ + "\x3\x2\x2\x2\x564\x566\x5\x126\x94\x2\x565\x564\x3\x2\x2\x2\x565\x566"+ + "\x3\x2\x2\x2\x566\x567\x3\x2\x2\x2\x567\x569\a)\x2\x2\x568\x56A\x5\x126"+ + "\x94\x2\x569\x568\x3\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2"+ + "\x2\x56B\x56C\x5\xBC_\x2\x56C\x87\x3\x2\x2\x2\x56D\x56E\a\xB2\x2\x2\x56E"+ + "\x56F\x5\x126\x94\x2\x56F\x57E\x5\xF8}\x2\x570\x572\x5\x126\x94\x2\x571"+ + "\x570\x3\x2\x2\x2\x571\x572\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575"+ + "\a\xE6\x2\x2\x574\x576\x5\x126\x94\x2\x575\x574\x3\x2\x2\x2\x575\x576"+ + "\x3\x2\x2\x2\x576\x57B\x3\x2\x2\x2\x577\x579\x5\xE8u\x2\x578\x57A\x5\x126"+ + "\x94\x2\x579\x578\x3\x2\x2\x2\x579\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2"+ + "\x2\x57B\x577\x3\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2"+ + "\x57D\x57F\a\xED\x2\x2\x57E\x571\x3\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F"+ + "\x89\x3\x2\x2\x2\x580\x584\a\xB1\x2\x2\x581\x582\x5\x126\x94\x2\x582\x583"+ + "\x5\xBC_\x2\x583\x585\x3\x2\x2\x2\x584\x581\x3\x2\x2\x2\x584\x585\x3\x2"+ + "\x2\x2\x585\x8B\x3\x2\x2\x2\x586\x587\a\xB5\x2\x2\x587\x58A\x5\x126\x94"+ + "\x2\x588\x589\a\xA7\x2\x2\x589\x58B\x5\x126\x94\x2\x58A\x588\x3\x2\x2"+ + "\x2\x58A\x58B\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x597\x5\x8EH\x2\x58D"+ + "\x58F\x5\x126\x94\x2\x58E\x58D\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F"+ + "\x590\x3\x2\x2\x2\x590\x592\a)\x2\x2\x591\x593\x5\x126\x94\x2\x592\x591"+ + "\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594\x596\x5"+ + "\x8EH\x2\x595\x58E\x3\x2\x2\x2\x596\x599\x3\x2\x2\x2\x597\x595\x3\x2\x2"+ + "\x2\x597\x598\x3\x2\x2\x2\x598\x8D\x3\x2\x2\x2\x599\x597\x3\x2\x2\x2\x59A"+ + "\x59C\x5\xDCo\x2\x59B\x59D\x5\x126\x94\x2\x59C\x59B\x3\x2\x2\x2\x59C\x59D"+ + "\x3\x2\x2\x2\x59D\x59E\x3\x2\x2\x2\x59E\x5A0\a\xE6\x2\x2\x59F\x5A1\x5"+ + "\x126\x94\x2\x5A0\x59F\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x3"+ + "\x2\x2\x2\x5A2\x5A4\x5\xF4{\x2\x5A3\x5A5\x5\x126\x94\x2\x5A4\x5A3\x3\x2"+ + "\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2\x5A6\x5AA\a\xED\x2"+ + "\x2\x5A7\x5A8\x5\x126\x94\x2\x5A8\x5A9\x5\xFA~\x2\x5A9\x5AB\x3\x2\x2\x2"+ + "\x5AA\x5A7\x3\x2\x2\x2\x5AA\x5AB\x3\x2\x2\x2\x5AB\x8F\x3\x2\x2\x2\x5AC"+ + "\x5AD\a\xB7\x2\x2\x5AD\x91\x3\x2\x2\x2\x5AE\x5B4\a\xB8\x2\x2\x5AF\x5B2"+ + "\x5\x126\x94\x2\x5B0\x5B3\a\x96\x2\x2\x5B1\x5B3\x5\xF8}\x2\x5B2\x5B0\x3"+ + "\x2\x2\x2\x5B2\x5B1\x3\x2\x2\x2\x5B3\x5B5\x3\x2\x2\x2\x5B4\x5AF\x3\x2"+ + "\x2\x2\x5B4\x5B5\x3\x2\x2\x2\x5B5\x93\x3\x2\x2\x2\x5B6\x5B7\a\xB9\x2\x2"+ + "\x5B7\x95\x3\x2\x2\x2\x5B8\x5B9\a\xBA\x2\x2\x5B9\x5BA\x5\x126\x94\x2\x5BA"+ + "\x5BB\x5\xBC_\x2\x5BB\x97\x3\x2\x2\x2\x5BC\x5BD\a\xBB\x2\x2\x5BD\x5BE"+ + "\x5\x126\x94\x2\x5BE\x5C0\x5\xDCo\x2\x5BF\x5C1\x5\x126\x94\x2\x5C0\x5BF"+ + "\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C4\a\xE2"+ + "\x2\x2\x5C3\x5C5\x5\x126\x94\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2"+ + "\x2\x2\x5C5\x5C6\x3\x2\x2\x2\x5C6\x5C7\x5\xBC_\x2\x5C7\x99\x3\x2\x2\x2"+ + "\x5C8\x5C9\a\xBC\x2\x2\x5C9\x5CA\x5\x126\x94\x2\x5CA\x5CC\x5\xBC_\x2\x5CB"+ + "\x5CD\x5\x126\x94\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD\x3\x2\x2\x2\x5CD"+ + "\x5CE\x3\x2\x2\x2\x5CE\x5D0\a)\x2\x2\x5CF\x5D1\x5\x126\x94\x2\x5D0\x5CF"+ + "\x3\x2\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x5"+ + "\xBC_\x2\x5D3\x9B\x3\x2\x2\x2\x5D4\x5D5\a\xBD\x2\x2\x5D5\x5D6\x5\x126"+ + "\x94\x2\x5D6\x5D8\x5\xBC_\x2\x5D7\x5D9\x5\x126\x94\x2\x5D8\x5D7\x3\x2"+ + "\x2\x2\x5D8\x5D9\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DC\a)\x2\x2"+ + "\x5DB\x5DD\x5\x126\x94\x2\x5DC\x5DB\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2"+ + "\x5DD\x5DE\x3\x2\x2\x2\x5DE\x5E0\x5\xBC_\x2\x5DF\x5E1\x5\x126\x94\x2\x5E0"+ + "\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E4"+ + "\a)\x2\x2\x5E3\x5E5\x5\x126\x94\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5\x3"+ + "\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E8\x5\xBC_\x2\x5E7\x5E9\x5\x126"+ + "\x94\x2\x5E8\x5E7\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2"+ + "\x2\x5EA\x5EC\a)\x2\x2\x5EB\x5ED\x5\x126\x94\x2\x5EC\x5EB\x3\x2\x2\x2"+ + "\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x5\xBC_\x2\x5EF"+ + "\x9D\x3\x2\x2\x2\x5F0\x5F1\a\xBE\x2\x2\x5F1\x5F2\x5\x126\x94\x2\x5F2\x5F4"+ + "\x5\xD0i\x2\x5F3\x5F5\x5\x126\x94\x2\x5F4\x5F3\x3\x2\x2\x2\x5F4\x5F5\x3"+ + "\x2\x2\x2\x5F5\x5F6\x3\x2\x2\x2\x5F6\x5F8\a)\x2\x2\x5F7\x5F9\x5\x126\x94"+ + "\x2\x5F8\x5F7\x3\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2"+ + "\x5FA\x5FB\x5\xBC_\x2\x5FB\x9F\x3\x2\x2\x2\x5FC\x5FD\a\xBF\x2\x2\x5FD"+ + "\x5FE\x5\x126\x94\x2\x5FE\x5FF\a\x43\x2\x2\x5FF\x600\x5\x126\x94\x2\x600"+ + "\x601\x5\xBC_\x2\x601\x605\x5\x116\x8C\x2\x602\x604\x5\xA4S\x2\x603\x602"+ + "\x3\x2\x2\x2\x604\x607\x3\x2\x2\x2\x605\x603\x3\x2\x2\x2\x605\x606\x3"+ + "\x2\x2\x2\x606\x608\x3\x2\x2\x2\x607\x605\x3\x2\x2\x2\x608\x609\a\x65"+ + "\x2\x2\x609\xA1\x3\x2\x2\x2\x60A\x60C\a\x82\x2\x2\x60B\x60D\x5\x126\x94"+ + "\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2"+ + "\x60E\x610\x5\xFE\x80\x2\x60F\x611\x5\x126\x94\x2\x610\x60F\x3\x2\x2\x2"+ + "\x610\x611\x3\x2\x2\x2\x611\x612\x3\x2\x2\x2\x612\x613\x5\xBC_\x2\x613"+ + "\x61C\x3\x2\x2\x2\x614\x615\x5\xBC_\x2\x615\x616\x5\x126\x94\x2\x616\x617"+ + "\a\xCF\x2\x2\x617\x618\x5\x126\x94\x2\x618\x619\x5\xBC_\x2\x619\x61C\x3"+ + "\x2\x2\x2\x61A\x61C\x5\xBC_\x2\x61B\x60A\x3\x2\x2\x2\x61B\x614\x3\x2\x2"+ + "\x2\x61B\x61A\x3\x2\x2\x2\x61C\xA3\x3\x2\x2\x2\x61D\x61E\a\x43\x2\x2\x61E"+ + "\x61F\x5\x126\x94\x2\x61F\x620\x5\xA6T\x2\x620\x622\x5\x116\x8C\x2\x621"+ + "\x623\x5\x1A\xE\x2\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\xA5"+ + "\x3\x2\x2\x2\x624\x634\a^\x2\x2\x625\x630\x5\xA2R\x2\x626\x628\x5\x126"+ + "\x94\x2\x627\x626\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2"+ + "\x2\x629\x62B\a)\x2\x2\x62A\x62C\x5\x126\x94\x2\x62B\x62A\x3\x2\x2\x2"+ + "\x62B\x62C\x3\x2\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x62F\x5\xA2R\x2\x62E"+ + "\x627\x3\x2\x2\x2\x62F\x632\x3\x2\x2\x2\x630\x62E\x3\x2\x2\x2\x630\x631"+ + "\x3\x2\x2\x2\x631\x634\x3\x2\x2\x2\x632\x630\x3\x2\x2\x2\x633\x624\x3"+ + "\x2\x2\x2\x633\x625\x3\x2\x2\x2\x634\xA7\x3\x2\x2\x2\x635\x636\a\xC0\x2"+ + "\x2\x636\x637\x5\x126\x94\x2\x637\x640\x5\xBC_\x2\x638\x63A\x5\x126\x94"+ + "\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2"+ + "\x63B\x63D\a)\x2\x2\x63C\x63E\x5\x126\x94\x2\x63D\x63C\x3\x2\x2\x2\x63D"+ + "\x63E\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x641\x5\xBC_\x2\x640\x639"+ + "\x3\x2\x2\x2\x640\x641\x3\x2\x2\x2\x641\xA9\x3\x2\x2\x2\x642\x643\a\xC2"+ + "\x2\x2\x643\x644\x5\x126\x94\x2\x644\x646\x5\xBC_\x2\x645\x647\x5\x126"+ + "\x94\x2\x646\x645\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2"+ + "\x2\x648\x64A\a)\x2\x2\x649\x64B\x5\x126\x94\x2\x64A\x649\x3\x2\x2\x2"+ + "\x64A\x64B\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x5\xBC_\x2\x64D"+ + "\xAB\x3\x2\x2\x2\x64E\x64F\a\xC1\x2\x2\x64F\x650\x5\x126\x94\x2\x650\x652"+ + "\x5\xDCo\x2\x651\x653\x5\x126\x94\x2\x652\x651\x3\x2\x2\x2\x652\x653\x3"+ + "\x2\x2\x2\x653\x654\x3\x2\x2\x2\x654\x656\a\xE2\x2\x2\x655\x657\x5\x126"+ + "\x94\x2\x656\x655\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\x658\x3\x2\x2"+ + "\x2\x658\x659\x5\xBC_\x2\x659\xAD\x3\x2\x2\x2\x65A\x65B\a\xC8\x2\x2\x65B"+ + "\xAF\x3\x2\x2\x2\x65C\x65D\x5\x110\x89\x2\x65D\x65E\x5\x126\x94\x2\x65E"+ + "\x660\x3\x2\x2\x2\x65F\x65C\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x663"+ + "\x3\x2\x2\x2\x661\x662\a\xC6\x2\x2\x662\x664\x5\x126\x94\x2\x663\x661"+ + "\x3\x2\x2\x2\x663\x664\x3\x2\x2\x2\x664\x665\x3\x2\x2\x2\x665\x667\a\xCA"+ + "\x2\x2\x666\x668\x5\x126\x94\x2\x667\x666\x3\x2\x2\x2\x667\x668\x3\x2"+ + "\x2\x2\x668\x669\x3\x2\x2\x2\x669\x66E\x5\xF8}\x2\x66A\x66C\x5\x126\x94"+ + "\x2\x66B\x66A\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2"+ + "\x66D\x66F\x5\xEEx\x2\x66E\x66B\x3\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F"+ + "\x670\x3\x2\x2\x2\x670\x672\x5\x116\x8C\x2\x671\x673\x5\x1A\xE\x2\x672"+ + "\x671\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675"+ + "\a\x66\x2\x2\x675\xB1\x3\x2\x2\x2\x676\x678\a\xCE\x2\x2\x677\x679\x5\x126"+ + "\x94\x2\x678\x677\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x67A\x3\x2\x2"+ + "\x2\x67A\x67C\a\xE2\x2\x2\x67B\x67D\x5\x126\x94\x2\x67C\x67B\x3\x2\x2"+ + "\x2\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x5\xBC_\x2\x67F"+ "\xB3\x3\x2\x2\x2\x680\x681\x5\x110\x89\x2\x681\x682\x5\x126\x94\x2\x682"+ "\x684\x3\x2\x2\x2\x683\x680\x3\x2\x2\x2\x683\x684\x3\x2\x2\x2\x684\x685"+ "\x3\x2\x2\x2\x685\x686\a\xD1\x2\x2\x686\x687\x5\x126\x94\x2\x687\x688"+ @@ -16782,253 +16757,251 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x7B5\xC9\x3\x2\x2\x2\x7B6\x7B7\a\xDB\x2\x2\x7B7\x7B8\x5\x126\x94\x2\x7B8"+ "\x7B9\x5\xCCg\x2\x7B9\x7BB\x5\x116\x8C\x2\x7BA\x7BC\x5\x1A\xE\x2\x7BB"+ "\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BE"+ - "\ah\x2\x2\x7BE\xCB\x3\x2\x2\x2\x7BF\x7C5\x5\xDCo\x2\x7C0\x7C1\a\x97\x2"+ - "\x2\x7C1\x7C2\x5\x126\x94\x2\x7C2\x7C3\x5\x10C\x87\x2\x7C3\x7C5\x3\x2"+ - "\x2\x2\x7C4\x7BF\x3\x2\x2\x2\x7C4\x7C0\x3\x2\x2\x2\x7C5\xCD\x3\x2\x2\x2"+ - "\x7C6\x7C7\a\xDD\x2\x2\x7C7\x7C8\x5\x126\x94\x2\x7C8\x7CA\x5\xD0i\x2\x7C9"+ - "\x7CB\x5\x126\x94\x2\x7CA\x7C9\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB"+ - "\x7CC\x3\x2\x2\x2\x7CC\x7D1\a)\x2\x2\x7CD\x7CF\x5\x126\x94\x2\x7CE\x7CD"+ - "\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0\x7D2\x5"+ - "z>\x2\x7D1\x7CE\x3\x2\x2\x2\x7D1\x7D2\x3\x2\x2\x2\x7D2\xCF\x3\x2\x2\x2"+ - "\x7D3\x7D5\a.\x2\x2\x7D4\x7D3\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D6"+ - "\x3\x2\x2\x2\x7D6\x7D7\x5\xBC_\x2\x7D7\xD1\x3\x2\x2\x2\x7D8\x7D9\a\x42"+ - "\x2\x2\x7D9\x7DA\x5\x126\x94\x2\x7DA\x7DB\x5\xD4k\x2\x7DB\xD3\x3\x2\x2"+ - "\x2\x7DC\x7DE\x5\xDCo\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE"+ - "\x7DF\x3\x2\x2\x2\x7DF\x7E0\a-\x2\x2\x7E0\x7E2\x5\xF8}\x2\x7E1\x7E3\x5"+ - "\x10E\x88\x2\x7E2\x7E1\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7F1\x3"+ - "\x2\x2\x2\x7E4\x7E6\x5\x126\x94\x2\x7E5\x7E4\x3\x2\x2\x2\x7E5\x7E6\x3"+ - "\x2\x2\x2\x7E6\x7E7\x3\x2\x2\x2\x7E7\x7E9\a\xE6\x2\x2\x7E8\x7EA\x5\x126"+ - "\x94\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2"+ - "\x2\x7EB\x7ED\x5\xE8u\x2\x7EC\x7EE\x5\x126\x94\x2\x7ED\x7EC\x3\x2\x2\x2"+ - "\x7ED\x7EE\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F0\a\xED\x2\x2\x7F0"+ - "\x7F2\x3\x2\x2\x2\x7F1\x7E5\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2\x7F2\x7FC"+ - "\x3\x2\x2\x2\x7F3\x7F5\x5\x126\x94\x2\x7F4\x7F3\x3\x2\x2\x2\x7F4\x7F5"+ - "\x3\x2\x2\x2\x7F5\x7F6\x3\x2\x2\x2\x7F6\x7F7\a\xE6\x2\x2\x7F7\x7F8\x5"+ - "\xF4{\x2\x7F8\x7F9\a\xED\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7F4\x3\x2\x2"+ - "\x2\x7FB\x7FE\x3\x2\x2\x2\x7FC\x7FA\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2"+ - "\x7FD\x81F\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2\x7FF\x801\x5\xF8}\x2\x800"+ - "\x802\x5\x10E\x88\x2\x801\x800\x3\x2\x2\x2\x801\x802\x3\x2\x2\x2\x802"+ - "\x810\x3\x2\x2\x2\x803\x805\x5\x126\x94\x2\x804\x803\x3\x2\x2\x2\x804"+ - "\x805\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x808\a\xE6\x2\x2\x807\x809"+ - "\x5\x126\x94\x2\x808\x807\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80A"+ - "\x3\x2\x2\x2\x80A\x80C\x5\xE8u\x2\x80B\x80D\x5\x126\x94\x2\x80C\x80B\x3"+ - "\x2\x2\x2\x80C\x80D\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F\a\xED"+ - "\x2\x2\x80F\x811\x3\x2\x2\x2\x810\x804\x3\x2\x2\x2\x810\x811\x3\x2\x2"+ - "\x2\x811\x81B\x3\x2\x2\x2\x812\x814\x5\x126\x94\x2\x813\x812\x3\x2\x2"+ - "\x2\x813\x814\x3\x2\x2\x2\x814\x815\x3\x2\x2\x2\x815\x816\a\xE6\x2\x2"+ - "\x816\x817\x5\xF4{\x2\x817\x818\a\xED\x2\x2\x818\x81A\x3\x2\x2\x2\x819"+ - "\x813\x3\x2\x2\x2\x81A\x81D\x3\x2\x2\x2\x81B\x819\x3\x2\x2\x2\x81B\x81C"+ - "\x3\x2\x2\x2\x81C\x81F\x3\x2\x2\x2\x81D\x81B\x3\x2\x2\x2\x81E\x7DD\x3"+ - "\x2\x2\x2\x81E\x7FF\x3\x2\x2\x2\x81F\xD5\x3\x2\x2\x2\x820\x823\x5\xD8"+ - "m\x2\x821\x823\x5\xDAn\x2\x822\x820\x3\x2\x2\x2\x822\x821\x3\x2\x2\x2"+ - "\x823\xD7\x3\x2\x2\x2\x824\x826\x5\xDCo\x2\x825\x824\x3\x2\x2\x2\x825"+ - "\x826\x3\x2\x2\x2\x826\x828\x3\x2\x2\x2\x827\x829\x5\x126\x94\x2\x828"+ - "\x827\x3\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82C"+ - "\a-\x2\x2\x82B\x82D\x5\x126\x94\x2\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3"+ - "\x2\x2\x2\x82D\x82E\x3\x2\x2\x2\x82E\x830\x5\xF8}\x2\x82F\x831\x5\x10E"+ - "\x88\x2\x830\x82F\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x835\x3\x2\x2"+ - "\x2\x832\x833\x5\x126\x94\x2\x833\x834\x5\xE8u\x2\x834\x836\x3\x2\x2\x2"+ - "\x835\x832\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836\x83B\x3\x2\x2\x2\x837"+ - "\x839\x5\x126\x94\x2\x838\x837\x3\x2\x2\x2\x838\x839\x3\x2\x2\x2\x839"+ - "\x83A\x3\x2\x2\x2\x83A\x83C\x5\xECw\x2\x83B\x838\x3\x2\x2\x2\x83B\x83C"+ - "\x3\x2\x2\x2\x83C\x846\x3\x2\x2\x2\x83D\x83F\x5\x126\x94\x2\x83E\x83D"+ - "\x3\x2\x2\x2\x83E\x83F\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\a\xE6"+ - "\x2\x2\x841\x842\x5\xF4{\x2\x842\x843\a\xED\x2\x2\x843\x845\x3\x2\x2\x2"+ - "\x844\x83E\x3\x2\x2\x2\x845\x848\x3\x2\x2\x2\x846\x844\x3\x2\x2\x2\x846"+ - "\x847\x3\x2\x2\x2\x847\xD9\x3\x2\x2\x2\x848\x846\x3\x2\x2\x2\x849\x84D"+ - "\x5\xF8}\x2\x84A\x84B\x5\x126\x94\x2\x84B\x84C\x5\xE8u\x2\x84C\x84E\x3"+ - "\x2\x2\x2\x84D\x84A\x3\x2\x2\x2\x84D\x84E\x3\x2\x2\x2\x84E\x858\x3\x2"+ - "\x2\x2\x84F\x851\x5\x126\x94\x2\x850\x84F\x3\x2\x2\x2\x850\x851\x3\x2"+ - "\x2\x2\x851\x852\x3\x2\x2\x2\x852\x853\a\xE6\x2\x2\x853\x854\x5\xF4{\x2"+ - "\x854\x855\a\xED\x2\x2\x855\x857\x3\x2\x2\x2\x856\x850\x3\x2\x2\x2\x857"+ - "\x85A\x3\x2\x2\x2\x858\x856\x3\x2\x2\x2\x858\x859\x3\x2\x2\x2\x859\xDB"+ - "\x3\x2\x2\x2\x85A\x858\x3\x2\x2\x2\x85B\x860\x5\xE2r\x2\x85C\x860\x5\xDE"+ - "p\x2\x85D\x860\x5\xE0q\x2\x85E\x860\x5\xE6t\x2\x85F\x85B\x3\x2\x2\x2\x85F"+ - "\x85C\x3\x2\x2\x2\x85F\x85D\x3\x2\x2\x2\x85F\x85E\x3\x2\x2\x2\x860\xDD"+ - "\x3\x2\x2\x2\x861\x863\x5\xF8}\x2\x862\x864\x5\x10E\x88\x2\x863\x862\x3"+ - "\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x869\x3\x2\x2\x2\x865\x867\x5\x126"+ - "\x94\x2\x866\x865\x3\x2\x2\x2\x866\x867\x3\x2\x2\x2\x867\x868\x3\x2\x2"+ - "\x2\x868\x86A\x5\xECw\x2\x869\x866\x3\x2\x2\x2\x869\x86A\x3\x2\x2\x2\x86A"+ - "\x874\x3\x2\x2\x2\x86B\x86D\x5\x126\x94\x2\x86C\x86B\x3\x2\x2\x2\x86C"+ - "\x86D\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x86F\a\xE6\x2\x2\x86F\x870"+ - "\x5\xF4{\x2\x870\x871\a\xED\x2\x2\x871\x873\x3\x2\x2\x2\x872\x86C\x3\x2"+ - "\x2\x2\x873\x876\x3\x2\x2\x2\x874\x872\x3\x2\x2\x2\x874\x875\x3\x2\x2"+ - "\x2\x875\xDF\x3\x2\x2\x2\x876\x874\x3\x2\x2\x2\x877\x87A\x5\xF8}\x2\x878"+ - "\x87A\x5\xFC\x7F\x2\x879\x877\x3\x2\x2\x2\x879\x878\x3\x2\x2\x2\x87A\x87C"+ - "\x3\x2\x2\x2\x87B\x87D\x5\x10E\x88\x2\x87C\x87B\x3\x2\x2\x2\x87C\x87D"+ - "\x3\x2\x2\x2\x87D\x87F\x3\x2\x2\x2\x87E\x880\x5\x126\x94\x2\x87F\x87E"+ - "\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\a\xE6"+ - "\x2\x2\x882\x884\x5\x126\x94\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2"+ - "\x2\x2\x884\x889\x3\x2\x2\x2\x885\x887\x5\xE8u\x2\x886\x888\x5\x126\x94"+ - "\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3\x2\x2\x2\x888\x88A\x3\x2\x2\x2"+ - "\x889\x885\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88B\x3\x2\x2\x2\x88B"+ - "\x890\a\xED\x2\x2\x88C\x88E\x5\x126\x94\x2\x88D\x88C\x3\x2\x2\x2\x88D"+ - "\x88E\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x891\x5\xECw\x2\x890\x88D"+ - "\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2\x891\x89B\x3\x2\x2\x2\x892\x894\x5"+ - "\x126\x94\x2\x893\x892\x3\x2\x2\x2\x893\x894\x3\x2\x2\x2\x894\x895\x3"+ - "\x2\x2\x2\x895\x896\a\xE6\x2\x2\x896\x897\x5\xF4{\x2\x897\x898\a\xED\x2"+ - "\x2\x898\x89A\x3\x2\x2\x2\x899\x893\x3\x2\x2\x2\x89A\x89D\x3\x2\x2\x2"+ - "\x89B\x899\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\xE1\x3\x2\x2\x2\x89D"+ - "\x89B\x3\x2\x2\x2\x89E\x8A1\x5\xDEp\x2\x89F\x8A1\x5\xE0q\x2\x8A0\x89E"+ - "\x3\x2\x2\x2\x8A0\x89F\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A6\x3"+ - "\x2\x2\x2\x8A2\x8A4\x5\xE4s\x2\x8A3\x8A5\x5\x126\x94\x2\x8A4\x8A3\x3\x2"+ - "\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x8A7\x3\x2\x2\x2\x8A6\x8A2\x3\x2\x2"+ - "\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A6\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2"+ - "\x8A9\x8AE\x3\x2\x2\x2\x8AA\x8AC\x5\x126\x94\x2\x8AB\x8AA\x3\x2\x2\x2"+ - "\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF\x5\xECw\x2\x8AE"+ - "\x8AB\x3\x2\x2\x2\x8AE\x8AF\x3\x2\x2\x2\x8AF\x8B9\x3\x2\x2\x2\x8B0\x8B2"+ - "\x5\x126\x94\x2\x8B1\x8B0\x3\x2\x2\x2\x8B1\x8B2\x3\x2\x2\x2\x8B2\x8B3"+ - "\x3\x2\x2\x2\x8B3\x8B4\a\xE6\x2\x2\x8B4\x8B5\x5\xF4{\x2\x8B5\x8B6\a\xED"+ - "\x2\x2\x8B6\x8B8\x3\x2\x2\x2\x8B7\x8B1\x3\x2\x2\x2\x8B8\x8BB\x3\x2\x2"+ - "\x2\x8B9\x8B7\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\xE3\x3\x2\x2\x2\x8BB"+ - "\x8B9\x3\x2\x2\x2\x8BC\x8BE\t\xF\x2\x2\x8BD\x8BF\x5\x126\x94\x2\x8BE\x8BD"+ - "\x3\x2\x2\x2\x8BE\x8BF\x3\x2\x2\x2\x8BF\x8C2\x3\x2\x2\x2\x8C0\x8C3\x5"+ - "\xDEp\x2\x8C1\x8C3\x5\xE0q\x2\x8C2\x8C0\x3\x2\x2\x2\x8C2\x8C1\x3\x2\x2"+ - "\x2\x8C3\xE5\x3\x2\x2\x2\x8C4\x8C6\x5\x126\x94\x2\x8C5\x8C4\x3\x2\x2\x2"+ - "\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7\x8C8\x5\xECw\x2\x8C8"+ - "\xE7\x3\x2\x2\x2\x8C9\x8CB\x5\xEAv\x2\x8CA\x8C9\x3\x2\x2\x2\x8CA\x8CB"+ - "\x3\x2\x2\x2\x8CB\x8CD\x3\x2\x2\x2\x8CC\x8CE\x5\x126\x94\x2\x8CD\x8CC"+ - "\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\x8D1\t\n"+ - "\x2\x2\x8D0\x8D2\x5\x126\x94\x2\x8D1\x8D0\x3\x2\x2\x2\x8D1\x8D2\x3\x2"+ - "\x2\x2\x8D2\x8D4\x3\x2\x2\x2\x8D3\x8CA\x3\x2\x2\x2\x8D4\x8D7\x3\x2\x2"+ - "\x2\x8D5\x8D3\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D8\x3\x2\x2\x2"+ - "\x8D7\x8D5\x3\x2\x2\x2\x8D8\x8E5\x5\xEAv\x2\x8D9\x8DB\x5\x126\x94\x2\x8DA"+ - "\x8D9\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DE"+ - "\t\n\x2\x2\x8DD\x8DF\x5\x126\x94\x2\x8DE\x8DD\x3\x2\x2\x2\x8DE\x8DF\x3"+ - "\x2\x2\x2\x8DF\x8E1\x3\x2\x2\x2\x8E0\x8E2\x5\xEAv\x2\x8E1\x8E0\x3\x2\x2"+ - "\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8E4\x3\x2\x2\x2\x8E3\x8DA\x3\x2\x2\x2"+ - "\x8E4\x8E7\x3\x2\x2\x2\x8E5\x8E3\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6"+ - "\xE9\x3\x2\x2\x2\x8E7\x8E5\x3\x2\x2\x2\x8E8\x8EA\a\xE6\x2\x2\x8E9\x8E8"+ - "\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8ED\x3\x2\x2\x2\x8EB\x8EC\t\x10"+ - "\x2\x2\x8EC\x8EE\x5\x126\x94\x2\x8ED\x8EB\x3\x2\x2\x2\x8ED\x8EE\x3\x2"+ - "\x2\x2\x8EE\x8F0\x3\x2\x2\x2\x8EF\x8F1\a\xED\x2\x2\x8F0\x8EF\x3\x2\x2"+ - "\x2\x8F0\x8F1\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F3\x5\xBC_\x2\x8F3"+ - "\xEB\x3\x2\x2\x2\x8F4\x8F6\a,\x2\x2\x8F5\x8F7\x5\x126\x94\x2\x8F6\x8F5"+ - "\x3\x2\x2\x2\x8F6\x8F7\x3\x2\x2\x2\x8F7\x8F8\x3\x2\x2\x2\x8F8\x8FA\x5"+ - "\xF8}\x2\x8F9\x8FB\x5\x10E\x88\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3\x2"+ - "\x2\x2\x8FB\xED\x3\x2\x2\x2\x8FC\x90E\a\xE6\x2\x2\x8FD\x8FF\x5\x126\x94"+ - "\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2"+ - "\x900\x90B\x5\xF0y\x2\x901\x903\x5\x126\x94\x2\x902\x901\x3\x2\x2\x2\x902"+ - "\x903\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x906\a)\x2\x2\x905\x907\x5"+ - "\x126\x94\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x908\x3"+ - "\x2\x2\x2\x908\x90A\x5\xF0y\x2\x909\x902\x3\x2\x2\x2\x90A\x90D\x3\x2\x2"+ - "\x2\x90B\x909\x3\x2\x2\x2\x90B\x90C\x3\x2\x2\x2\x90C\x90F\x3\x2\x2\x2"+ - "\x90D\x90B\x3\x2\x2\x2\x90E\x8FE\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ - "\x911\x3\x2\x2\x2\x910\x912\x5\x126\x94\x2\x911\x910\x3\x2\x2\x2\x911"+ - "\x912\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x914\a\xED\x2\x2\x914\xEF"+ - "\x3\x2\x2\x2\x915\x916\a\x9F\x2\x2\x916\x918\x5\x126\x94\x2\x917\x915"+ - "\x3\x2\x2\x2\x917\x918\x3\x2\x2\x2\x918\x91B\x3\x2\x2\x2\x919\x91A\t\x11"+ - "\x2\x2\x91A\x91C\x5\x126\x94\x2\x91B\x919\x3\x2\x2\x2\x91B\x91C\x3\x2"+ - "\x2\x2\x91C\x91F\x3\x2\x2\x2\x91D\x91E\a\xA6\x2\x2\x91E\x920\x5\x126\x94"+ - "\x2\x91F\x91D\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x921\x3\x2\x2\x2"+ - "\x921\x923\x5\xF8}\x2\x922\x924\x5\x10E\x88\x2\x923\x922\x3\x2\x2\x2\x923"+ - "\x924\x3\x2\x2\x2\x924\x92D\x3\x2\x2\x2\x925\x927\x5\x126\x94\x2\x926"+ - "\x925\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2\x928\x92A"+ - "\a\xE6\x2\x2\x929\x92B\x5\x126\x94\x2\x92A\x929\x3\x2\x2\x2\x92A\x92B"+ - "\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92E\a\xED\x2\x2\x92D\x926\x3"+ - "\x2\x2\x2\x92D\x92E\x3\x2\x2\x2\x92E\x933\x3\x2\x2\x2\x92F\x931\x5\x126"+ - "\x94\x2\x930\x92F\x3\x2\x2\x2\x930\x931\x3\x2\x2\x2\x931\x932\x3\x2\x2"+ - "\x2\x932\x934\x5\xFA~\x2\x933\x930\x3\x2\x2\x2\x933\x934\x3\x2\x2\x2\x934"+ - "\x939\x3\x2\x2\x2\x935\x937\x5\x126\x94\x2\x936\x935\x3\x2\x2\x2\x936"+ - "\x937\x3\x2\x2\x2\x937\x938\x3\x2\x2\x2\x938\x93A\x5\xF2z\x2\x939\x936"+ - "\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\xF1\x3\x2\x2\x2\x93B\x93D\a\xE2"+ - "\x2\x2\x93C\x93E\x5\x126\x94\x2\x93D\x93C\x3\x2\x2\x2\x93D\x93E\x3\x2"+ - "\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\x5\xBC_\x2\x940\xF3\x3\x2\x2\x2"+ - "\x941\x94C\x5\xF6|\x2\x942\x944\x5\x126\x94\x2\x943\x942\x3\x2\x2\x2\x943"+ - "\x944\x3\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x947\a)\x2\x2\x946\x948\x5"+ - "\x126\x94\x2\x947\x946\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\x949\x3"+ - "\x2\x2\x2\x949\x94B\x5\xF6|\x2\x94A\x943\x3\x2\x2\x2\x94B\x94E\x3\x2\x2"+ - "\x2\x94C\x94A\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D\xF5\x3\x2\x2\x2\x94E"+ - "\x94C\x3\x2\x2\x2\x94F\x950\x5\xBC_\x2\x950\x951\x5\x126\x94\x2\x951\x952"+ - "\a\xCF\x2\x2\x952\x953\x5\x126\x94\x2\x953\x955\x3\x2\x2\x2\x954\x94F"+ - "\x3\x2\x2\x2\x954\x955\x3\x2\x2\x2\x955\x956\x3\x2\x2\x2\x956\x957\x5"+ - "\xBC_\x2\x957\xF7\x3\x2\x2\x2\x958\x95B\a\x101\x2\x2\x959\x95B\x5\x112"+ - "\x8A\x2\x95A\x958\x3\x2\x2\x2\x95A\x959\x3\x2\x2\x2\x95B\xF9\x3\x2\x2"+ - "\x2\x95C\x95E\a:\x2\x2\x95D\x95F\x5\x126\x94\x2\x95E\x95D\x3\x2\x2\x2"+ - "\x95E\x95F\x3\x2\x2\x2\x95F\x962\x3\x2\x2\x2\x960\x961\a\x97\x2\x2\x961"+ - "\x963\x5\x126\x94\x2\x962\x960\x3\x2\x2\x2\x962\x963\x3\x2\x2\x2\x963"+ - "\x964\x3\x2\x2\x2\x964\x969\x5\x10C\x87\x2\x965\x967\x5\x126\x94\x2\x966"+ - "\x965\x3\x2\x2\x2\x966\x967\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968\x96A"+ - "\x5\x102\x82\x2\x969\x966\x3\x2\x2\x2\x969\x96A\x3\x2\x2\x2\x96A\xFB\x3"+ - "\x2\x2\x2\x96B\x96C\t\x12\x2\x2\x96C\xFD\x3\x2\x2\x2\x96D\x96E\t\xE\x2"+ - "\x2\x96E\xFF\x3\x2\x2\x2\x96F\x974\x5\xF8}\x2\x970\x971\t\xF\x2\x2\x971"+ - "\x973\x5\xF8}\x2\x972\x970\x3\x2\x2\x2\x973\x976\x3\x2\x2\x2\x974\x972"+ - "\x3\x2\x2\x2\x974\x975\x3\x2\x2\x2\x975\x101\x3\x2\x2\x2\x976\x974\x3"+ - "\x2\x2\x2\x977\x979\a\xE9\x2\x2\x978\x97A\x5\x126\x94\x2\x979\x978\x3"+ - "\x2\x2\x2\x979\x97A\x3\x2\x2\x2\x97A\x97D\x3\x2\x2\x2\x97B\x97E\x5\x10A"+ - "\x86\x2\x97C\x97E\x5\xF8}\x2\x97D\x97B\x3\x2\x2\x2\x97D\x97C\x3\x2\x2"+ - "\x2\x97E\x103\x3\x2\x2\x2\x97F\x988\x5\xF8}\x2\x980\x982\x5\x126\x94\x2"+ - "\x981\x980\x3\x2\x2\x2\x981\x982\x3\x2\x2\x2\x982\x983\x3\x2\x2\x2\x983"+ - "\x985\a\xE8\x2\x2\x984\x986\x5\x126\x94\x2\x985\x984\x3\x2\x2\x2\x985"+ - "\x986\x3\x2\x2\x2\x986\x987\x3\x2\x2\x2\x987\x989\x5\xF8}\x2\x988\x981"+ - "\x3\x2\x2\x2\x988\x989\x3\x2\x2\x2\x989\x105\x3\x2\x2\x2\x98A\x98D\x5"+ - "\xF8}\x2\x98B\x98D\x5\x10A\x86\x2\x98C\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2"+ - "\x2\x2\x98D\x98E\x3\x2\x2\x2\x98E\x98F\a*\x2\x2\x98F\x107\x3\x2\x2\x2"+ - "\x990\x999\x5\x10A\x86\x2\x991\x999\a\xFA\x2\x2\x992\x999\a\xF5\x2\x2"+ - "\x993\x999\a\xD0\x2\x2\x994\x999\at\x2\x2\x995\x999\a\x99\x2\x2\x996\x999"+ - "\a\x9A\x2\x2\x997\x999\a`\x2\x2\x998\x990\x3\x2\x2\x2\x998\x991\x3\x2"+ - "\x2\x2\x998\x992\x3\x2\x2\x2\x998\x993\x3\x2\x2\x2\x998\x994\x3\x2\x2"+ - "\x2\x998\x995\x3\x2\x2\x2\x998\x996\x3\x2\x2\x2\x998\x997\x3\x2\x2\x2"+ - "\x999\x109\x3\x2\x2\x2\x99A\x99B\t\x13\x2\x2\x99B\x10B\x3\x2\x2\x2\x99C"+ - "\x99F\x5\xFC\x7F\x2\x99D\x99F\x5\x100\x81\x2\x99E\x99C\x3\x2\x2\x2\x99E"+ - "\x99D\x3\x2\x2\x2\x99F\x9A8\x3\x2\x2\x2\x9A0\x9A2\x5\x126\x94\x2\x9A1"+ - "\x9A0\x3\x2\x2\x2\x9A1\x9A2\x3\x2\x2\x2\x9A2\x9A3\x3\x2\x2\x2\x9A3\x9A5"+ - "\a\xE6\x2\x2\x9A4\x9A6\x5\x126\x94\x2\x9A5\x9A4\x3\x2\x2\x2\x9A5\x9A6"+ - "\x3\x2\x2\x2\x9A6\x9A7\x3\x2\x2\x2\x9A7\x9A9\a\xED\x2\x2\x9A8\x9A1\x3"+ - "\x2\x2\x2\x9A8\x9A9\x3\x2\x2\x2\x9A9\x10D\x3\x2\x2\x2\x9AA\x9AB\t\x14"+ - "\x2\x2\x9AB\x10F\x3\x2\x2\x2\x9AC\x9AD\t\x15\x2\x2\x9AD\x111\x3\x2\x2"+ - "\x2\x9AE\x9AF\t\x16\x2\x2\x9AF\x113\x3\x2\x2\x2\x9B0\x9B2\x5\x126\x94"+ - "\x2\x9B1\x9B0\x3\x2\x2\x2\x9B1\x9B2\x3\x2\x2\x2\x9B2\x9BA\x3\x2\x2\x2"+ - "\x9B3\x9B5\a\xFB\x2\x2\x9B4\x9B3\x3\x2\x2\x2\x9B5\x9B6\x3\x2\x2\x2\x9B6"+ - "\x9B4\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2\x9B7\x9BB\x3\x2\x2\x2\x9B8\x9BB"+ - "\x5\x11A\x8E\x2\x9B9\x9BB\x5\x118\x8D\x2\x9BA\x9B4\x3\x2\x2\x2\x9BA\x9B8"+ - "\x3\x2\x2\x2\x9BA\x9B9\x3\x2\x2\x2\x9BB\x9BD\x3\x2\x2\x2\x9BC\x9BE\x5"+ - "\x126\x94\x2\x9BD\x9BC\x3\x2\x2\x2\x9BD\x9BE\x3\x2\x2\x2\x9BE\x9C4\x3"+ - "\x2\x2\x2\x9BF\x9C1\x5\x126\x94\x2\x9C0\x9BF\x3\x2\x2\x2\x9C0\x9C1\x3"+ - "\x2\x2\x2\x9C1\x9C2\x3\x2\x2\x2\x9C2\x9C4\x5\x11C\x8F\x2\x9C3\x9B1\x3"+ - "\x2\x2\x2\x9C3\x9C0\x3\x2\x2\x2\x9C4\x115\x3\x2\x2\x2\x9C5\x9CE\x5\x114"+ - "\x8B\x2\x9C6\x9C8\x5\x126\x94\x2\x9C7\x9C6\x3\x2\x2\x2\x9C7\x9C8\x3\x2"+ - "\x2\x2\x9C8\x9C9\x3\x2\x2\x2\x9C9\x9CB\a*\x2\x2\x9CA\x9CC\x5\x126\x94"+ - "\x2\x9CB\x9CA\x3\x2\x2\x2\x9CB\x9CC\x3\x2\x2\x2\x9CC\x9CE\x3\x2\x2\x2"+ - "\x9CD\x9C5\x3\x2\x2\x2\x9CD\x9C7\x3\x2\x2\x2\x9CE\x9D1\x3\x2\x2\x2\x9CF"+ - "\x9CD\x3\x2\x2\x2\x9CF\x9D0\x3\x2\x2\x2\x9D0\x117\x3\x2\x2\x2\x9D1\x9CF"+ - "\x3\x2\x2\x2\x9D2\x9D3\a\xFC\x2\x2\x9D3\x119\x3\x2\x2\x2\x9D4\x9D5\t\x17"+ - "\x2\x2\x9D5\x11B\x3\x2\x2\x2\x9D6\x9D8\a\xFE\x2\x2\x9D7\x9D9\x5\x11E\x90"+ - "\x2\x9D8\x9D7\x3\x2\x2\x2\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9D8\x3\x2\x2\x2"+ - "\x9DA\x9DB\x3\x2\x2\x2\x9DB\x11D\x3\x2\x2\x2\x9DC\x9DD\a/\x2\x2\x9DD\x9DF"+ - "\x5\x120\x91\x2\x9DE\x9E0\x5\x122\x92\x2\x9DF\x9DE\x3\x2\x2\x2\x9DF\x9E0"+ - "\x3\x2\x2\x2\x9E0\x11F\x3\x2\x2\x2\x9E1\x9E2\a\x101\x2\x2\x9E2\x121\x3"+ - "\x2\x2\x2\x9E3\x9E4\x5\x126\x94\x2\x9E4\x9E6\x5\x124\x93\x2\x9E5\x9E7"+ - "\x5\x126\x94\x2\x9E6\x9E5\x3\x2\x2\x2\x9E6\x9E7\x3\x2\x2\x2\x9E7\xA21"+ - "\x3\x2\x2\x2\x9E8\x9E9\x5\x126\x94\x2\x9E9\x9F2\x5\x124\x93\x2\x9EA\x9EC"+ - "\x5\x126\x94\x2\x9EB\x9EA\x3\x2\x2\x2\x9EB\x9EC\x3\x2\x2\x2\x9EC\x9ED"+ - "\x3\x2\x2\x2\x9ED\x9EF\a)\x2\x2\x9EE\x9F0\x5\x126\x94\x2\x9EF\x9EE\x3"+ - "\x2\x2\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F1\x3\x2\x2\x2\x9F1\x9F3\x5\x124"+ - "\x93\x2\x9F2\x9EB\x3\x2\x2\x2\x9F3\x9F4\x3\x2\x2\x2\x9F4\x9F2\x3\x2\x2"+ - "\x2\x9F4\x9F5\x3\x2\x2\x2\x9F5\x9F7\x3\x2\x2\x2\x9F6\x9F8\x5\x126\x94"+ - "\x2\x9F7\x9F6\x3\x2\x2\x2\x9F7\x9F8\x3\x2\x2\x2\x9F8\xA21\x3\x2\x2\x2"+ - "\x9F9\x9FB\x5\x126\x94\x2\x9FA\x9F9\x3\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2"+ - "\x9FB\x9FC\x3\x2\x2\x2\x9FC\x9FE\a\xE6\x2\x2\x9FD\x9FF\x5\x126\x94\x2"+ - "\x9FE\x9FD\x3\x2\x2\x2\x9FE\x9FF\x3\x2\x2\x2\x9FF\xA00\x3\x2\x2\x2\xA00"+ - "\xA02\x5\x124\x93\x2\xA01\xA03\x5\x126\x94\x2\xA02\xA01\x3\x2\x2\x2\xA02"+ - "\xA03\x3\x2\x2\x2\xA03\xA04\x3\x2\x2\x2\xA04\xA06\a\xED\x2\x2\xA05\xA07"+ - "\x5\x126\x94\x2\xA06\xA05\x3\x2\x2\x2\xA06\xA07\x3\x2\x2\x2\xA07\xA21"+ - "\x3\x2\x2\x2\xA08\xA0A\x5\x126\x94\x2\xA09\xA08\x3\x2\x2\x2\xA09\xA0A"+ - "\x3\x2\x2\x2\xA0A\xA0B\x3\x2\x2\x2\xA0B\xA0C\a\xE6\x2\x2\xA0C\xA15\x5"+ - "\x124\x93\x2\xA0D\xA0F\x5\x126\x94\x2\xA0E\xA0D\x3\x2\x2\x2\xA0E\xA0F"+ - "\x3\x2\x2\x2\xA0F\xA10\x3\x2\x2\x2\xA10\xA12\a)\x2\x2\xA11\xA13\x5\x126"+ - "\x94\x2\xA12\xA11\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA14\x3\x2\x2"+ - "\x2\xA14\xA16\x5\x124\x93\x2\xA15\xA0E\x3\x2\x2\x2\xA16\xA17\x3\x2\x2"+ - "\x2\xA17\xA15\x3\x2\x2\x2\xA17\xA18\x3\x2\x2\x2\xA18\xA1A\x3\x2\x2\x2"+ - "\xA19\xA1B\x5\x126\x94\x2\xA1A\xA19\x3\x2\x2\x2\xA1A\xA1B\x3\x2\x2\x2"+ - "\xA1B\xA1C\x3\x2\x2\x2\xA1C\xA1E\a\xED\x2\x2\xA1D\xA1F\x5\x126\x94\x2"+ - "\xA1E\xA1D\x3\x2\x2\x2\xA1E\xA1F\x3\x2\x2\x2\xA1F\xA21\x3\x2\x2\x2\xA20"+ - "\x9E3\x3\x2\x2\x2\xA20\x9E8\x3\x2\x2\x2\xA20\x9FA\x3\x2\x2\x2\xA20\xA09"+ - "\x3\x2\x2\x2\xA21\x123\x3\x2\x2\x2\xA22\xA25\a\x101\x2\x2\xA23\xA25\x5"+ - "\x108\x85\x2\xA24\xA22\x3\x2\x2\x2\xA24\xA23\x3\x2\x2\x2\xA25\x125\x3"+ - "\x2\x2\x2\xA26\xA28\t\x18\x2\x2\xA27\xA26\x3\x2\x2\x2\xA28\xA29\x3\x2"+ - "\x2\x2\xA29\xA27\x3\x2\x2\x2\xA29\xA2A\x3\x2\x2\x2\xA2A\x127\x3\x2\x2"+ - "\x2\x1BB\x12C\x132\x135\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168"+ + "\ah\x2\x2\x7BE\xCB\x3\x2\x2\x2\x7BF\x7C0\x5\xBC_\x2\x7C0\xCD\x3\x2\x2"+ + "\x2\x7C1\x7C2\a\xDD\x2\x2\x7C2\x7C3\x5\x126\x94\x2\x7C3\x7C5\x5\xD0i\x2"+ + "\x7C4\x7C6\x5\x126\x94\x2\x7C5\x7C4\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2"+ + "\x7C6\x7C7\x3\x2\x2\x2\x7C7\x7CC\a)\x2\x2\x7C8\x7CA\x5\x126\x94\x2\x7C9"+ + "\x7C8\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7CD"+ + "\x5z>\x2\x7CC\x7C9\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\xCF\x3\x2\x2"+ + "\x2\x7CE\x7D0\a.\x2\x2\x7CF\x7CE\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0"+ + "\x7D1\x3\x2\x2\x2\x7D1\x7D2\x5\xBC_\x2\x7D2\xD1\x3\x2\x2\x2\x7D3\x7D4"+ + "\a\x42\x2\x2\x7D4\x7D5\x5\x126\x94\x2\x7D5\x7D6\x5\xD4k\x2\x7D6\xD3\x3"+ + "\x2\x2\x2\x7D7\x7D9\x5\xDCo\x2\x7D8\x7D7\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2"+ + "\x2\x7D9\x7DA\x3\x2\x2\x2\x7DA\x7DB\a-\x2\x2\x7DB\x7DD\x5\xF8}\x2\x7DC"+ + "\x7DE\x5\x10E\x88\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE"+ + "\x7EC\x3\x2\x2\x2\x7DF\x7E1\x5\x126\x94\x2\x7E0\x7DF\x3\x2\x2\x2\x7E0"+ + "\x7E1\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2\x2\x7E2\x7E4\a\xE6\x2\x2\x7E3\x7E5"+ + "\x5\x126\x94\x2\x7E4\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6"+ + "\x3\x2\x2\x2\x7E6\x7E8\x5\xE8u\x2\x7E7\x7E9\x5\x126\x94\x2\x7E8\x7E7\x3"+ + "\x2\x2\x2\x7E8\x7E9\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\a\xED"+ + "\x2\x2\x7EB\x7ED\x3\x2\x2\x2\x7EC\x7E0\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2"+ + "\x2\x7ED\x7F7\x3\x2\x2\x2\x7EE\x7F0\x5\x126\x94\x2\x7EF\x7EE\x3\x2\x2"+ + "\x2\x7EF\x7F0\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7F2\a\xE6\x2\x2"+ + "\x7F2\x7F3\x5\xF4{\x2\x7F3\x7F4\a\xED\x2\x2\x7F4\x7F6\x3\x2\x2\x2\x7F5"+ + "\x7EF\x3\x2\x2\x2\x7F6\x7F9\x3\x2\x2\x2\x7F7\x7F5\x3\x2\x2\x2\x7F7\x7F8"+ + "\x3\x2\x2\x2\x7F8\x81A\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2\x7FA\x7FC\x5"+ + "\xF8}\x2\x7FB\x7FD\x5\x10E\x88\x2\x7FC\x7FB\x3\x2\x2\x2\x7FC\x7FD\x3\x2"+ + "\x2\x2\x7FD\x80B\x3\x2\x2\x2\x7FE\x800\x5\x126\x94\x2\x7FF\x7FE\x3\x2"+ + "\x2\x2\x7FF\x800\x3\x2\x2\x2\x800\x801\x3\x2\x2\x2\x801\x803\a\xE6\x2"+ + "\x2\x802\x804\x5\x126\x94\x2\x803\x802\x3\x2\x2\x2\x803\x804\x3\x2\x2"+ + "\x2\x804\x805\x3\x2\x2\x2\x805\x807\x5\xE8u\x2\x806\x808\x5\x126\x94\x2"+ + "\x807\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809"+ + "\x80A\a\xED\x2\x2\x80A\x80C\x3\x2\x2\x2\x80B\x7FF\x3\x2\x2\x2\x80B\x80C"+ + "\x3\x2\x2\x2\x80C\x816\x3\x2\x2\x2\x80D\x80F\x5\x126\x94\x2\x80E\x80D"+ + "\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x811\a\xE6"+ + "\x2\x2\x811\x812\x5\xF4{\x2\x812\x813\a\xED\x2\x2\x813\x815\x3\x2\x2\x2"+ + "\x814\x80E\x3\x2\x2\x2\x815\x818\x3\x2\x2\x2\x816\x814\x3\x2\x2\x2\x816"+ + "\x817\x3\x2\x2\x2\x817\x81A\x3\x2\x2\x2\x818\x816\x3\x2\x2\x2\x819\x7D8"+ + "\x3\x2\x2\x2\x819\x7FA\x3\x2\x2\x2\x81A\xD5\x3\x2\x2\x2\x81B\x81E\x5\xD8"+ + "m\x2\x81C\x81E\x5\xDAn\x2\x81D\x81B\x3\x2\x2\x2\x81D\x81C\x3\x2\x2\x2"+ + "\x81E\xD7\x3\x2\x2\x2\x81F\x821\x5\xDCo\x2\x820\x81F\x3\x2\x2\x2\x820"+ + "\x821\x3\x2\x2\x2\x821\x823\x3\x2\x2\x2\x822\x824\x5\x126\x94\x2\x823"+ + "\x822\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x825\x3\x2\x2\x2\x825\x827"+ + "\a-\x2\x2\x826\x828\x5\x126\x94\x2\x827\x826\x3\x2\x2\x2\x827\x828\x3"+ + "\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82B\x5\xF8}\x2\x82A\x82C\x5\x10E"+ + "\x88\x2\x82B\x82A\x3\x2\x2\x2\x82B\x82C\x3\x2\x2\x2\x82C\x830\x3\x2\x2"+ + "\x2\x82D\x82E\x5\x126\x94\x2\x82E\x82F\x5\xE8u\x2\x82F\x831\x3\x2\x2\x2"+ + "\x830\x82D\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x836\x3\x2\x2\x2\x832"+ + "\x834\x5\x126\x94\x2\x833\x832\x3\x2\x2\x2\x833\x834\x3\x2\x2\x2\x834"+ + "\x835\x3\x2\x2\x2\x835\x837\x5\xECw\x2\x836\x833\x3\x2\x2\x2\x836\x837"+ + "\x3\x2\x2\x2\x837\x841\x3\x2\x2\x2\x838\x83A\x5\x126\x94\x2\x839\x838"+ + "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\x3\x2\x2\x2\x83B\x83C\a\xE6"+ + "\x2\x2\x83C\x83D\x5\xF4{\x2\x83D\x83E\a\xED\x2\x2\x83E\x840\x3\x2\x2\x2"+ + "\x83F\x839\x3\x2\x2\x2\x840\x843\x3\x2\x2\x2\x841\x83F\x3\x2\x2\x2\x841"+ + "\x842\x3\x2\x2\x2\x842\xD9\x3\x2\x2\x2\x843\x841\x3\x2\x2\x2\x844\x848"+ + "\x5\xF8}\x2\x845\x846\x5\x126\x94\x2\x846\x847\x5\xE8u\x2\x847\x849\x3"+ + "\x2\x2\x2\x848\x845\x3\x2\x2\x2\x848\x849\x3\x2\x2\x2\x849\x853\x3\x2"+ + "\x2\x2\x84A\x84C\x5\x126\x94\x2\x84B\x84A\x3\x2\x2\x2\x84B\x84C\x3\x2"+ + "\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84E\a\xE6\x2\x2\x84E\x84F\x5\xF4{\x2"+ + "\x84F\x850\a\xED\x2\x2\x850\x852\x3\x2\x2\x2\x851\x84B\x3\x2\x2\x2\x852"+ + "\x855\x3\x2\x2\x2\x853\x851\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\xDB"+ + "\x3\x2\x2\x2\x855\x853\x3\x2\x2\x2\x856\x85B\x5\xE2r\x2\x857\x85B\x5\xDE"+ + "p\x2\x858\x85B\x5\xE0q\x2\x859\x85B\x5\xE6t\x2\x85A\x856\x3\x2\x2\x2\x85A"+ + "\x857\x3\x2\x2\x2\x85A\x858\x3\x2\x2\x2\x85A\x859\x3\x2\x2\x2\x85B\xDD"+ + "\x3\x2\x2\x2\x85C\x85E\x5\xF8}\x2\x85D\x85F\x5\x10E\x88\x2\x85E\x85D\x3"+ + "\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\x864\x3\x2\x2\x2\x860\x862\x5\x126"+ + "\x94\x2\x861\x860\x3\x2\x2\x2\x861\x862\x3\x2\x2\x2\x862\x863\x3\x2\x2"+ + "\x2\x863\x865\x5\xECw\x2\x864\x861\x3\x2\x2\x2\x864\x865\x3\x2\x2\x2\x865"+ + "\x86F\x3\x2\x2\x2\x866\x868\x5\x126\x94\x2\x867\x866\x3\x2\x2\x2\x867"+ + "\x868\x3\x2\x2\x2\x868\x869\x3\x2\x2\x2\x869\x86A\a\xE6\x2\x2\x86A\x86B"+ + "\x5\xF4{\x2\x86B\x86C\a\xED\x2\x2\x86C\x86E\x3\x2\x2\x2\x86D\x867\x3\x2"+ + "\x2\x2\x86E\x871\x3\x2\x2\x2\x86F\x86D\x3\x2\x2\x2\x86F\x870\x3\x2\x2"+ + "\x2\x870\xDF\x3\x2\x2\x2\x871\x86F\x3\x2\x2\x2\x872\x875\x5\xF8}\x2\x873"+ + "\x875\x5\xFC\x7F\x2\x874\x872\x3\x2\x2\x2\x874\x873\x3\x2\x2\x2\x875\x877"+ + "\x3\x2\x2\x2\x876\x878\x5\x10E\x88\x2\x877\x876\x3\x2\x2\x2\x877\x878"+ + "\x3\x2\x2\x2\x878\x87A\x3\x2\x2\x2\x879\x87B\x5\x126\x94\x2\x87A\x879"+ + "\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87E\a\xE6"+ + "\x2\x2\x87D\x87F\x5\x126\x94\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F\x3\x2"+ + "\x2\x2\x87F\x884\x3\x2\x2\x2\x880\x882\x5\xE8u\x2\x881\x883\x5\x126\x94"+ + "\x2\x882\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x885\x3\x2\x2\x2"+ + "\x884\x880\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886"+ + "\x88B\a\xED\x2\x2\x887\x889\x5\x126\x94\x2\x888\x887\x3\x2\x2\x2\x888"+ + "\x889\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88C\x5\xECw\x2\x88B\x888"+ + "\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x896\x3\x2\x2\x2\x88D\x88F\x5"+ + "\x126\x94\x2\x88E\x88D\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x890\x3"+ + "\x2\x2\x2\x890\x891\a\xE6\x2\x2\x891\x892\x5\xF4{\x2\x892\x893\a\xED\x2"+ + "\x2\x893\x895\x3\x2\x2\x2\x894\x88E\x3\x2\x2\x2\x895\x898\x3\x2\x2\x2"+ + "\x896\x894\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\xE1\x3\x2\x2\x2\x898"+ + "\x896\x3\x2\x2\x2\x899\x89C\x5\xDEp\x2\x89A\x89C\x5\xE0q\x2\x89B\x899"+ + "\x3\x2\x2\x2\x89B\x89A\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\x8A1\x3"+ + "\x2\x2\x2\x89D\x89F\x5\xE4s\x2\x89E\x8A0\x5\x126\x94\x2\x89F\x89E\x3\x2"+ + "\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A2\x3\x2\x2\x2\x8A1\x89D\x3\x2\x2"+ + "\x2\x8A2\x8A3\x3\x2\x2\x2\x8A3\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2"+ + "\x8A4\x8A9\x3\x2\x2\x2\x8A5\x8A7\x5\x126\x94\x2\x8A6\x8A5\x3\x2\x2\x2"+ + "\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8AA\x5\xECw\x2\x8A9"+ + "\x8A6\x3\x2\x2\x2\x8A9\x8AA\x3\x2\x2\x2\x8AA\x8B4\x3\x2\x2\x2\x8AB\x8AD"+ + "\x5\x126\x94\x2\x8AC\x8AB\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE"+ + "\x3\x2\x2\x2\x8AE\x8AF\a\xE6\x2\x2\x8AF\x8B0\x5\xF4{\x2\x8B0\x8B1\a\xED"+ + "\x2\x2\x8B1\x8B3\x3\x2\x2\x2\x8B2\x8AC\x3\x2\x2\x2\x8B3\x8B6\x3\x2\x2"+ + "\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4\x8B5\x3\x2\x2\x2\x8B5\xE3\x3\x2\x2\x2\x8B6"+ + "\x8B4\x3\x2\x2\x2\x8B7\x8B9\t\xF\x2\x2\x8B8\x8BA\x5\x126\x94\x2\x8B9\x8B8"+ + "\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\x8BD\x3\x2\x2\x2\x8BB\x8BE\x5"+ + "\xDEp\x2\x8BC\x8BE\x5\xE0q\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2"+ + "\x2\x8BE\xE5\x3\x2\x2\x2\x8BF\x8C1\x5\x126\x94\x2\x8C0\x8BF\x3\x2\x2\x2"+ + "\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C3\x5\xECw\x2\x8C3"+ + "\xE7\x3\x2\x2\x2\x8C4\x8C6\x5\xEAv\x2\x8C5\x8C4\x3\x2\x2\x2\x8C5\x8C6"+ + "\x3\x2\x2\x2\x8C6\x8C8\x3\x2\x2\x2\x8C7\x8C9\x5\x126\x94\x2\x8C8\x8C7"+ + "\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n"+ + "\x2\x2\x8CB\x8CD\x5\x126\x94\x2\x8CC\x8CB\x3\x2\x2\x2\x8CC\x8CD\x3\x2"+ + "\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8C5\x3\x2\x2\x2\x8CF\x8D2\x3\x2\x2"+ + "\x2\x8D0\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8D3\x3\x2\x2\x2"+ + "\x8D2\x8D0\x3\x2\x2\x2\x8D3\x8E0\x5\xEAv\x2\x8D4\x8D6\x5\x126\x94\x2\x8D5"+ + "\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9"+ + "\t\n\x2\x2\x8D8\x8DA\x5\x126\x94\x2\x8D9\x8D8\x3\x2\x2\x2\x8D9\x8DA\x3"+ + "\x2\x2\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8DD\x5\xEAv\x2\x8DC\x8DB\x3\x2\x2"+ + "\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF\x3\x2\x2\x2\x8DE\x8D5\x3\x2\x2\x2"+ + "\x8DF\x8E2\x3\x2\x2\x2\x8E0\x8DE\x3\x2\x2\x2\x8E0\x8E1\x3\x2\x2\x2\x8E1"+ + "\xE9\x3\x2\x2\x2\x8E2\x8E0\x3\x2\x2\x2\x8E3\x8E5\a\xE6\x2\x2\x8E4\x8E3"+ + "\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5\x8E8\x3\x2\x2\x2\x8E6\x8E7\t\x10"+ + "\x2\x2\x8E7\x8E9\x5\x126\x94\x2\x8E8\x8E6\x3\x2\x2\x2\x8E8\x8E9\x3\x2"+ + "\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8EC\a\xED\x2\x2\x8EB\x8EA\x3\x2\x2"+ + "\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EE\x5\xBC_\x2\x8EE"+ + "\xEB\x3\x2\x2\x2\x8EF\x8F1\a,\x2\x2\x8F0\x8F2\x5\x126\x94\x2\x8F1\x8F0"+ + "\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3\x8F5\x5"+ + "\xF8}\x2\x8F4\x8F6\x5\x10E\x88\x2\x8F5\x8F4\x3\x2\x2\x2\x8F5\x8F6\x3\x2"+ + "\x2\x2\x8F6\xED\x3\x2\x2\x2\x8F7\x909\a\xE6\x2\x2\x8F8\x8FA\x5\x126\x94"+ + "\x2\x8F9\x8F8\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2"+ + "\x8FB\x906\x5\xF0y\x2\x8FC\x8FE\x5\x126\x94\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD"+ + "\x8FE\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x901\a)\x2\x2\x900\x902\x5"+ + "\x126\x94\x2\x901\x900\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\x903\x3"+ + "\x2\x2\x2\x903\x905\x5\xF0y\x2\x904\x8FD\x3\x2\x2\x2\x905\x908\x3\x2\x2"+ + "\x2\x906\x904\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x90A\x3\x2\x2\x2"+ + "\x908\x906\x3\x2\x2\x2\x909\x8F9\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2\x90A"+ + "\x90C\x3\x2\x2\x2\x90B\x90D\x5\x126\x94\x2\x90C\x90B\x3\x2\x2\x2\x90C"+ + "\x90D\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\a\xED\x2\x2\x90F\xEF"+ + "\x3\x2\x2\x2\x910\x911\a\x9F\x2\x2\x911\x913\x5\x126\x94\x2\x912\x910"+ + "\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x916\x3\x2\x2\x2\x914\x915\t\x11"+ + "\x2\x2\x915\x917\x5\x126\x94\x2\x916\x914\x3\x2\x2\x2\x916\x917\x3\x2"+ + "\x2\x2\x917\x91A\x3\x2\x2\x2\x918\x919\a\xA6\x2\x2\x919\x91B\x5\x126\x94"+ + "\x2\x91A\x918\x3\x2\x2\x2\x91A\x91B\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2"+ + "\x91C\x91E\x5\xF8}\x2\x91D\x91F\x5\x10E\x88\x2\x91E\x91D\x3\x2\x2\x2\x91E"+ + "\x91F\x3\x2\x2\x2\x91F\x928\x3\x2\x2\x2\x920\x922\x5\x126\x94\x2\x921"+ + "\x920\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923\x925"+ + "\a\xE6\x2\x2\x924\x926\x5\x126\x94\x2\x925\x924\x3\x2\x2\x2\x925\x926"+ + "\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x929\a\xED\x2\x2\x928\x921\x3"+ + "\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92E\x3\x2\x2\x2\x92A\x92C\x5\x126"+ + "\x94\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92D\x3\x2\x2"+ + "\x2\x92D\x92F\x5\xFA~\x2\x92E\x92B\x3\x2\x2\x2\x92E\x92F\x3\x2\x2\x2\x92F"+ + "\x934\x3\x2\x2\x2\x930\x932\x5\x126\x94\x2\x931\x930\x3\x2\x2\x2\x931"+ + "\x932\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x935\x5\xF2z\x2\x934\x931"+ + "\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\xF1\x3\x2\x2\x2\x936\x938\a\xE2"+ + "\x2\x2\x937\x939\x5\x126\x94\x2\x938\x937\x3\x2\x2\x2\x938\x939\x3\x2"+ + "\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x5\xBC_\x2\x93B\xF3\x3\x2\x2\x2"+ + "\x93C\x947\x5\xF6|\x2\x93D\x93F\x5\x126\x94\x2\x93E\x93D\x3\x2\x2\x2\x93E"+ + "\x93F\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940\x942\a)\x2\x2\x941\x943\x5"+ + "\x126\x94\x2\x942\x941\x3\x2\x2\x2\x942\x943\x3\x2\x2\x2\x943\x944\x3"+ + "\x2\x2\x2\x944\x946\x5\xF6|\x2\x945\x93E\x3\x2\x2\x2\x946\x949\x3\x2\x2"+ + "\x2\x947\x945\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\xF5\x3\x2\x2\x2\x949"+ + "\x947\x3\x2\x2\x2\x94A\x94B\x5\xBC_\x2\x94B\x94C\x5\x126\x94\x2\x94C\x94D"+ + "\a\xCF\x2\x2\x94D\x94E\x5\x126\x94\x2\x94E\x950\x3\x2\x2\x2\x94F\x94A"+ + "\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x5"+ + "\xBC_\x2\x952\xF7\x3\x2\x2\x2\x953\x956\a\x101\x2\x2\x954\x956\x5\x112"+ + "\x8A\x2\x955\x953\x3\x2\x2\x2\x955\x954\x3\x2\x2\x2\x956\xF9\x3\x2\x2"+ + "\x2\x957\x959\a:\x2\x2\x958\x95A\x5\x126\x94\x2\x959\x958\x3\x2\x2\x2"+ + "\x959\x95A\x3\x2\x2\x2\x95A\x95D\x3\x2\x2\x2\x95B\x95C\a\x97\x2\x2\x95C"+ + "\x95E\x5\x126\x94\x2\x95D\x95B\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E"+ + "\x95F\x3\x2\x2\x2\x95F\x964\x5\x10C\x87\x2\x960\x962\x5\x126\x94\x2\x961"+ + "\x960\x3\x2\x2\x2\x961\x962\x3\x2\x2\x2\x962\x963\x3\x2\x2\x2\x963\x965"+ + "\x5\x102\x82\x2\x964\x961\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\xFB\x3"+ + "\x2\x2\x2\x966\x967\t\x12\x2\x2\x967\xFD\x3\x2\x2\x2\x968\x969\t\xE\x2"+ + "\x2\x969\xFF\x3\x2\x2\x2\x96A\x96F\x5\xF8}\x2\x96B\x96C\t\xF\x2\x2\x96C"+ + "\x96E\x5\xF8}\x2\x96D\x96B\x3\x2\x2\x2\x96E\x971\x3\x2\x2\x2\x96F\x96D"+ + "\x3\x2\x2\x2\x96F\x970\x3\x2\x2\x2\x970\x101\x3\x2\x2\x2\x971\x96F\x3"+ + "\x2\x2\x2\x972\x974\a\xE9\x2\x2\x973\x975\x5\x126\x94\x2\x974\x973\x3"+ + "\x2\x2\x2\x974\x975\x3\x2\x2\x2\x975\x978\x3\x2\x2\x2\x976\x979\x5\x10A"+ + "\x86\x2\x977\x979\x5\xF8}\x2\x978\x976\x3\x2\x2\x2\x978\x977\x3\x2\x2"+ + "\x2\x979\x103\x3\x2\x2\x2\x97A\x983\x5\xF8}\x2\x97B\x97D\x5\x126\x94\x2"+ + "\x97C\x97B\x3\x2\x2\x2\x97C\x97D\x3\x2\x2\x2\x97D\x97E\x3\x2\x2\x2\x97E"+ + "\x980\a\xE8\x2\x2\x97F\x981\x5\x126\x94\x2\x980\x97F\x3\x2\x2\x2\x980"+ + "\x981\x3\x2\x2\x2\x981\x982\x3\x2\x2\x2\x982\x984\x5\xF8}\x2\x983\x97C"+ + "\x3\x2\x2\x2\x983\x984\x3\x2\x2\x2\x984\x105\x3\x2\x2\x2\x985\x988\x5"+ + "\xF8}\x2\x986\x988\x5\x10A\x86\x2\x987\x985\x3\x2\x2\x2\x987\x986\x3\x2"+ + "\x2\x2\x988\x989\x3\x2\x2\x2\x989\x98A\a*\x2\x2\x98A\x107\x3\x2\x2\x2"+ + "\x98B\x994\x5\x10A\x86\x2\x98C\x994\a\xFA\x2\x2\x98D\x994\a\xF5\x2\x2"+ + "\x98E\x994\a\xD0\x2\x2\x98F\x994\at\x2\x2\x990\x994\a\x99\x2\x2\x991\x994"+ + "\a\x9A\x2\x2\x992\x994\a`\x2\x2\x993\x98B\x3\x2\x2\x2\x993\x98C\x3\x2"+ + "\x2\x2\x993\x98D\x3\x2\x2\x2\x993\x98E\x3\x2\x2\x2\x993\x98F\x3\x2\x2"+ + "\x2\x993\x990\x3\x2\x2\x2\x993\x991\x3\x2\x2\x2\x993\x992\x3\x2\x2\x2"+ + "\x994\x109\x3\x2\x2\x2\x995\x996\t\x13\x2\x2\x996\x10B\x3\x2\x2\x2\x997"+ + "\x99A\x5\xFC\x7F\x2\x998\x99A\x5\x100\x81\x2\x999\x997\x3\x2\x2\x2\x999"+ + "\x998\x3\x2\x2\x2\x99A\x9A3\x3\x2\x2\x2\x99B\x99D\x5\x126\x94\x2\x99C"+ + "\x99B\x3\x2\x2\x2\x99C\x99D\x3\x2\x2\x2\x99D\x99E\x3\x2\x2\x2\x99E\x9A0"+ + "\a\xE6\x2\x2\x99F\x9A1\x5\x126\x94\x2\x9A0\x99F\x3\x2\x2\x2\x9A0\x9A1"+ + "\x3\x2\x2\x2\x9A1\x9A2\x3\x2\x2\x2\x9A2\x9A4\a\xED\x2\x2\x9A3\x99C\x3"+ + "\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x10D\x3\x2\x2\x2\x9A5\x9A6\t\x14"+ + "\x2\x2\x9A6\x10F\x3\x2\x2\x2\x9A7\x9A8\t\x15\x2\x2\x9A8\x111\x3\x2\x2"+ + "\x2\x9A9\x9AA\t\x16\x2\x2\x9AA\x113\x3\x2\x2\x2\x9AB\x9AD\x5\x126\x94"+ + "\x2\x9AC\x9AB\x3\x2\x2\x2\x9AC\x9AD\x3\x2\x2\x2\x9AD\x9B5\x3\x2\x2\x2"+ + "\x9AE\x9B0\a\xFB\x2\x2\x9AF\x9AE\x3\x2\x2\x2\x9B0\x9B1\x3\x2\x2\x2\x9B1"+ + "\x9AF\x3\x2\x2\x2\x9B1\x9B2\x3\x2\x2\x2\x9B2\x9B6\x3\x2\x2\x2\x9B3\x9B6"+ + "\x5\x11A\x8E\x2\x9B4\x9B6\x5\x118\x8D\x2\x9B5\x9AF\x3\x2\x2\x2\x9B5\x9B3"+ + "\x3\x2\x2\x2\x9B5\x9B4\x3\x2\x2\x2\x9B6\x9B8\x3\x2\x2\x2\x9B7\x9B9\x5"+ + "\x126\x94\x2\x9B8\x9B7\x3\x2\x2\x2\x9B8\x9B9\x3\x2\x2\x2\x9B9\x9BF\x3"+ + "\x2\x2\x2\x9BA\x9BC\x5\x126\x94\x2\x9BB\x9BA\x3\x2\x2\x2\x9BB\x9BC\x3"+ + "\x2\x2\x2\x9BC\x9BD\x3\x2\x2\x2\x9BD\x9BF\x5\x11C\x8F\x2\x9BE\x9AC\x3"+ + "\x2\x2\x2\x9BE\x9BB\x3\x2\x2\x2\x9BF\x115\x3\x2\x2\x2\x9C0\x9C9\x5\x114"+ + "\x8B\x2\x9C1\x9C3\x5\x126\x94\x2\x9C2\x9C1\x3\x2\x2\x2\x9C2\x9C3\x3\x2"+ + "\x2\x2\x9C3\x9C4\x3\x2\x2\x2\x9C4\x9C6\a*\x2\x2\x9C5\x9C7\x5\x126\x94"+ + "\x2\x9C6\x9C5\x3\x2\x2\x2\x9C6\x9C7\x3\x2\x2\x2\x9C7\x9C9\x3\x2\x2\x2"+ + "\x9C8\x9C0\x3\x2\x2\x2\x9C8\x9C2\x3\x2\x2\x2\x9C9\x9CC\x3\x2\x2\x2\x9CA"+ + "\x9C8\x3\x2\x2\x2\x9CA\x9CB\x3\x2\x2\x2\x9CB\x117\x3\x2\x2\x2\x9CC\x9CA"+ + "\x3\x2\x2\x2\x9CD\x9CE\a\xFC\x2\x2\x9CE\x119\x3\x2\x2\x2\x9CF\x9D0\t\x17"+ + "\x2\x2\x9D0\x11B\x3\x2\x2\x2\x9D1\x9D3\a\xFE\x2\x2\x9D2\x9D4\x5\x11E\x90"+ + "\x2\x9D3\x9D2\x3\x2\x2\x2\x9D4\x9D5\x3\x2\x2\x2\x9D5\x9D3\x3\x2\x2\x2"+ + "\x9D5\x9D6\x3\x2\x2\x2\x9D6\x11D\x3\x2\x2\x2\x9D7\x9D8\a/\x2\x2\x9D8\x9DA"+ + "\x5\x120\x91\x2\x9D9\x9DB\x5\x122\x92\x2\x9DA\x9D9\x3\x2\x2\x2\x9DA\x9DB"+ + "\x3\x2\x2\x2\x9DB\x11F\x3\x2\x2\x2\x9DC\x9DD\a\x101\x2\x2\x9DD\x121\x3"+ + "\x2\x2\x2\x9DE\x9DF\x5\x126\x94\x2\x9DF\x9E1\x5\x124\x93\x2\x9E0\x9E2"+ + "\x5\x126\x94\x2\x9E1\x9E0\x3\x2\x2\x2\x9E1\x9E2\x3\x2\x2\x2\x9E2\xA1C"+ + "\x3\x2\x2\x2\x9E3\x9E4\x5\x126\x94\x2\x9E4\x9ED\x5\x124\x93\x2\x9E5\x9E7"+ + "\x5\x126\x94\x2\x9E6\x9E5\x3\x2\x2\x2\x9E6\x9E7\x3\x2\x2\x2\x9E7\x9E8"+ + "\x3\x2\x2\x2\x9E8\x9EA\a)\x2\x2\x9E9\x9EB\x5\x126\x94\x2\x9EA\x9E9\x3"+ + "\x2\x2\x2\x9EA\x9EB\x3\x2\x2\x2\x9EB\x9EC\x3\x2\x2\x2\x9EC\x9EE\x5\x124"+ + "\x93\x2\x9ED\x9E6\x3\x2\x2\x2\x9EE\x9EF\x3\x2\x2\x2\x9EF\x9ED\x3\x2\x2"+ + "\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F2\x3\x2\x2\x2\x9F1\x9F3\x5\x126\x94"+ + "\x2\x9F2\x9F1\x3\x2\x2\x2\x9F2\x9F3\x3\x2\x2\x2\x9F3\xA1C\x3\x2\x2\x2"+ + "\x9F4\x9F6\x5\x126\x94\x2\x9F5\x9F4\x3\x2\x2\x2\x9F5\x9F6\x3\x2\x2\x2"+ + "\x9F6\x9F7\x3\x2\x2\x2\x9F7\x9F9\a\xE6\x2\x2\x9F8\x9FA\x5\x126\x94\x2"+ + "\x9F9\x9F8\x3\x2\x2\x2\x9F9\x9FA\x3\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2\x9FB"+ + "\x9FD\x5\x124\x93\x2\x9FC\x9FE\x5\x126\x94\x2\x9FD\x9FC\x3\x2\x2\x2\x9FD"+ + "\x9FE\x3\x2\x2\x2\x9FE\x9FF\x3\x2\x2\x2\x9FF\xA01\a\xED\x2\x2\xA00\xA02"+ + "\x5\x126\x94\x2\xA01\xA00\x3\x2\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA1C"+ + "\x3\x2\x2\x2\xA03\xA05\x5\x126\x94\x2\xA04\xA03\x3\x2\x2\x2\xA04\xA05"+ + "\x3\x2\x2\x2\xA05\xA06\x3\x2\x2\x2\xA06\xA07\a\xE6\x2\x2\xA07\xA10\x5"+ + "\x124\x93\x2\xA08\xA0A\x5\x126\x94\x2\xA09\xA08\x3\x2\x2\x2\xA09\xA0A"+ + "\x3\x2\x2\x2\xA0A\xA0B\x3\x2\x2\x2\xA0B\xA0D\a)\x2\x2\xA0C\xA0E\x5\x126"+ + "\x94\x2\xA0D\xA0C\x3\x2\x2\x2\xA0D\xA0E\x3\x2\x2\x2\xA0E\xA0F\x3\x2\x2"+ + "\x2\xA0F\xA11\x5\x124\x93\x2\xA10\xA09\x3\x2\x2\x2\xA11\xA12\x3\x2\x2"+ + "\x2\xA12\xA10\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA15\x3\x2\x2\x2"+ + "\xA14\xA16\x5\x126\x94\x2\xA15\xA14\x3\x2\x2\x2\xA15\xA16\x3\x2\x2\x2"+ + "\xA16\xA17\x3\x2\x2\x2\xA17\xA19\a\xED\x2\x2\xA18\xA1A\x5\x126\x94\x2"+ + "\xA19\xA18\x3\x2\x2\x2\xA19\xA1A\x3\x2\x2\x2\xA1A\xA1C\x3\x2\x2\x2\xA1B"+ + "\x9DE\x3\x2\x2\x2\xA1B\x9E3\x3\x2\x2\x2\xA1B\x9F5\x3\x2\x2\x2\xA1B\xA04"+ + "\x3\x2\x2\x2\xA1C\x123\x3\x2\x2\x2\xA1D\xA20\a\x101\x2\x2\xA1E\xA20\x5"+ + "\x108\x85\x2\xA1F\xA1D\x3\x2\x2\x2\xA1F\xA1E\x3\x2\x2\x2\xA20\x125\x3"+ + "\x2\x2\x2\xA21\xA23\t\x18\x2\x2\xA22\xA21\x3\x2\x2\x2\xA23\xA24\x3\x2"+ + "\x2\x2\xA24\xA22\x3\x2\x2\x2\xA24\xA25\x3\x2\x2\x2\xA25\x127\x3\x2\x2"+ + "\x2\x1BA\x12C\x132\x135\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168"+ "\x16F\x175\x17E\x186\x195\x19F\x1A7\x1B1\x1B7\x1BB\x1BF\x1C3\x1C8\x1D1"+ "\x218\x21E\x222\x225\x235\x239\x23E\x241\x246\x24C\x250\x255\x25A\x25F"+ "\x262\x266\x26C\x270\x277\x27D\x281\x284\x289\x294\x297\x29A\x29F\x2A5"+ @@ -17049,17 +17022,17 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x6DD\x6E4\x6E8\x6EE\x6F2\x6F6\x6FB\x6FF\x704\x708\x70D\x711\x716\x71A"+ "\x71F\x723\x728\x72C\x731\x735\x73A\x73E\x743\x747\x74C\x750\x755\x759"+ "\x75C\x75E\x769\x76E\x773\x779\x77D\x782\x787\x78B\x78F\x791\x795\x797"+ - "\x79A\x79F\x7A6\x7AE\x7B2\x7BB\x7C4\x7CA\x7CE\x7D1\x7D4\x7DD\x7E2\x7E5"+ - "\x7E9\x7ED\x7F1\x7F4\x7FC\x801\x804\x808\x80C\x810\x813\x81B\x81E\x822"+ - "\x825\x828\x82C\x830\x835\x838\x83B\x83E\x846\x84D\x850\x858\x85F\x863"+ - "\x866\x869\x86C\x874\x879\x87C\x87F\x883\x887\x889\x88D\x890\x893\x89B"+ - "\x8A0\x8A4\x8A8\x8AB\x8AE\x8B1\x8B9\x8BE\x8C2\x8C5\x8CA\x8CD\x8D1\x8D5"+ - "\x8DA\x8DE\x8E1\x8E5\x8E9\x8ED\x8F0\x8F6\x8FA\x8FE\x902\x906\x90B\x90E"+ - "\x911\x917\x91B\x91F\x923\x926\x92A\x92D\x930\x933\x936\x939\x93D\x943"+ - "\x947\x94C\x954\x95A\x95E\x962\x966\x969\x974\x979\x97D\x981\x985\x988"+ - "\x98C\x998\x99E\x9A1\x9A5\x9A8\x9B1\x9B6\x9BA\x9BD\x9C0\x9C3\x9C7\x9CB"+ - "\x9CD\x9CF\x9DA\x9DF\x9E6\x9EB\x9EF\x9F4\x9F7\x9FA\x9FE\xA02\xA06\xA09"+ - "\xA0E\xA12\xA17\xA1A\xA1E\xA20\xA24\xA29"; + "\x79A\x79F\x7A6\x7AE\x7B2\x7BB\x7C5\x7C9\x7CC\x7CF\x7D8\x7DD\x7E0\x7E4"+ + "\x7E8\x7EC\x7EF\x7F7\x7FC\x7FF\x803\x807\x80B\x80E\x816\x819\x81D\x820"+ + "\x823\x827\x82B\x830\x833\x836\x839\x841\x848\x84B\x853\x85A\x85E\x861"+ + "\x864\x867\x86F\x874\x877\x87A\x87E\x882\x884\x888\x88B\x88E\x896\x89B"+ + "\x89F\x8A3\x8A6\x8A9\x8AC\x8B4\x8B9\x8BD\x8C0\x8C5\x8C8\x8CC\x8D0\x8D5"+ + "\x8D9\x8DC\x8E0\x8E4\x8E8\x8EB\x8F1\x8F5\x8F9\x8FD\x901\x906\x909\x90C"+ + "\x912\x916\x91A\x91E\x921\x925\x928\x92B\x92E\x931\x934\x938\x93E\x942"+ + "\x947\x94F\x955\x959\x95D\x961\x964\x96F\x974\x978\x97C\x980\x983\x987"+ + "\x993\x999\x99C\x9A0\x9A3\x9AC\x9B1\x9B5\x9B8\x9BB\x9BE\x9C2\x9C6\x9C8"+ + "\x9CA\x9D5\x9DA\x9E1\x9E6\x9EA\x9EF\x9F2\x9F5\x9F9\x9FD\xA01\xA04\xA09"+ + "\xA0D\xA12\xA15\xA19\xA1B\xA1F\xA24"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index 2aae799836..9fee339b6d 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -448,13 +448,12 @@ whileWendStmt : widthStmt : WIDTH whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt; withStmt : - // TODO: withStmtExpression should actually be an expression, i.e. a valueStmt. WITH whiteSpace withStmtExpression endOfStatement block? END_WITH ; -withStmtExpression : (implicitCallStmt_InStmt | (NEW whiteSpace type)); +withStmtExpression : valueStmt; writeStmt : WRITE whiteSpace fileNumber whiteSpace? COMMA (whiteSpace? outputList)?; diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 7678b1b9f3..af385b1a9f 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -77,6 +77,12 @@ + + + + + + @@ -85,12 +91,18 @@ + + + + + + @@ -208,7 +220,7 @@ - + diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index aa2d42a5bb..7d02ff602c 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -33,6 +33,11 @@ private void Visit(IndexExpression expression, Func referenceCreator) @@ -41,5 +46,37 @@ private void Visit(NewExpression expression, Func referenceCreator) + { + Visit((dynamic)expression.Expression, referenceCreator); + } + + private void Visit(TypeOfIsExpression expression, Func referenceCreator) + { + Visit((dynamic)expression.Expression, referenceCreator); + Visit((dynamic)expression.TypeExpression, referenceCreator); + } + + private void Visit(BinaryOpExpression expression, Func referenceCreator) + { + Visit((dynamic)expression.Left, referenceCreator); + Visit((dynamic)expression.Right, referenceCreator); + } + + private void Visit(UnaryOpExpression expression, Func referenceCreator) + { + Visit((dynamic)expression.Expr, referenceCreator); + } + + private void Visit(LiteralExpression expression, Func referenceCreator) + { + // Nothing to do here. + } + + private void Visit(InstanceExpression expression, Func referenceCreator) + { + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + } } } diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 3b2be743f4..14fb90f033 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -51,7 +51,7 @@ public IEnumerable FindDeclarationsWithNonBaseAsType() !string.IsNullOrWhiteSpace(d.AsTypeName) && !d.AsTypeIsBaseType && d.DeclarationType != DeclarationType.Project - && !d.DeclarationType.HasFlag(DeclarationType.Module)).ToList(); + && d.DeclarationType != DeclarationType.ProceduralModule).ToList(); } public IEnumerable ModuleComments(QualifiedModuleName module) diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index bf1b48986a..2534efc054 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -138,7 +138,7 @@ public override void EnterICS_S_MembersCall(VBAParser.ICS_S_MembersCallContext c { // Implement statements are handled separately and directly through new binding expressions. // Prevent duplicate references. - if (BindingMigrationHelper.HasParent(context)) + if (ParserRuleContextHelper.HasParent(context)) { return; } diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 7dec1c5785..2b1026e027 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -31,7 +31,7 @@ private enum ContextAccessorType private readonly IReadOnlyList _returningMemberTypes; private readonly Stack _withBlockQualifiers; - private readonly Stack _withBlockExpressions; + private readonly Stack _withBlockExpressions; private readonly HashSet _alreadyResolved; private readonly Declaration _moduleDeclaration; @@ -49,7 +49,7 @@ public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, Decl _qualifiedModuleName = qualifiedModuleName; _withBlockQualifiers = new Stack(); - _withBlockExpressions = new Stack(); + _withBlockExpressions = new Stack(); _alreadyResolved = new HashSet(); _moduleTypes = new[] @@ -80,10 +80,12 @@ public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, Decl SetCurrentScope(); + var typeBindingContext = new TypeBindingContext(_declarationFinder); + var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( - new DefaultBindingContext(_declarationFinder), - new TypeBindingContext(_declarationFinder), - new ProcedurePointerBindingContext(_declarationFinder)); + new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), + typeBindingContext, + procedurePointerBindingContext); _boundExpressionVisitor = new BoundExpressionVisitor(); } @@ -111,33 +113,19 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) { Declaration qualifier = null; var expr = context.withStmtExpression(); - - if (expr.NEW() == null) + var typeExpression = expr.GetText(); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression, GetInnerMostWithExpression()); + if (boundExpression != null) { - // TODO: Use valueStmt and resolve expression. - qualifier = ResolveInternal(expr.implicitCallStmt_InStmt(), _currentScope, ContextAccessorType.GetValueOrReference); - } - else - { - var type = expr.type(); - var baseType = type.baseType(); - if (baseType == null) - { - string typeExpression = expr.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression, GetInnerMostWithExpression()); - if (boundExpression != null) - { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(type.complexType(), declaration)); - qualifier = boundExpression.ReferencedDeclaration; - } - } + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(expr, declaration)); + qualifier = boundExpression.ReferencedDeclaration; } // note: pushes null if unresolved _withBlockQualifiers.Push(qualifier); - _withBlockExpressions.Push(expr.GetText()); + _withBlockExpressions.Push(boundExpression); } - private string GetInnerMostWithExpression() + private IBoundExpression GetInnerMostWithExpression() { if (_withBlockExpressions.Any()) { @@ -531,11 +519,11 @@ private Declaration ResolveInternal(VBAParser.ICS_S_VariableOrProcedureCallConte { return null; } - if (BindingMigrationHelper.HasParent(context)) + if (ParserRuleContextHelper.HasParent(context)) { return null; } - if (BindingMigrationHelper.HasParent(context)) + if (ParserRuleContextHelper.HasParent(context)) { return null; } @@ -756,7 +744,7 @@ public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) { member = _declarationFinder .MatchName(identifierContext.GetText()) - .SingleOrDefault(item => + .SingleOrDefault(item => item.QualifiedName.QualifiedModuleName == parentType.QualifiedName.QualifiedModuleName && item.DeclarationType != DeclarationType.Event); } @@ -775,10 +763,12 @@ public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) if (member != null) { var reference = CreateReference(identifierContext, member); - - parentScope.AddMemberCall(CreateReference(context.identifier(), member)); - member.AddReference(reference); - _alreadyResolved.Add(reference.Context); + if (reference != null) + { + parentScope.AddMemberCall(CreateReference(context.identifier(), member)); + member.AddReference(reference); + _alreadyResolved.Add(reference.Context); + } } else { @@ -978,7 +968,7 @@ public void Resolve(VBAParser.AsTypeClauseContext context) } var baseType = asType.baseType(); if (baseType != null) - { + { // Fixed-Length strings can have a constant-name as length that is a simple-name-expression that also has to be resolved. var length = context.fieldLength(); if (context.fieldLength() != null && context.fieldLength().identifier() != null) @@ -1287,7 +1277,7 @@ private Declaration FindProjectScopeDeclaration(string identifierName, Declarati item.DeclarationType == DeclarationType.Project || item.DeclarationType == DeclarationType.ProceduralModule || IsPublicEnum(item) - || IsStaticClass(item) + || IsStaticClass(item) || IsStdModuleMember(item) || (item.ParentScopeDeclaration != null && item.ParentScopeDeclaration.Equals(localScope))).ToList(); diff --git a/Rubberduck.Parsing/Symbols/BindingMigrationHelper.cs b/Rubberduck.Parsing/Symbols/ParserRuleContextHelper.cs similarity index 89% rename from Rubberduck.Parsing/Symbols/BindingMigrationHelper.cs rename to Rubberduck.Parsing/Symbols/ParserRuleContextHelper.cs index 26144a5c06..74ef38b839 100644 --- a/Rubberduck.Parsing/Symbols/BindingMigrationHelper.cs +++ b/Rubberduck.Parsing/Symbols/ParserRuleContextHelper.cs @@ -2,7 +2,7 @@ namespace Rubberduck.Parsing.Symbols { - public static class BindingMigrationHelper + public static class ParserRuleContextHelper { public static bool HasParent(RuleContext context) { diff --git a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs index 3e8194552b..4257001aca 100644 --- a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs +++ b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs @@ -12,10 +12,12 @@ public sealed class TypeAnnotationPass public TypeAnnotationPass(DeclarationFinder declarationFinder) { _declarationFinder = declarationFinder; + var typeBindingContext = new TypeBindingContext(_declarationFinder); + var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( - new DefaultBindingContext(_declarationFinder), - new TypeBindingContext(_declarationFinder), - new ProcedurePointerBindingContext(_declarationFinder)); + new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), + typeBindingContext, + procedurePointerBindingContext); _boundExpressionVisitor = new BoundExpressionVisitor(); } @@ -32,6 +34,12 @@ public void Annotate() private void AnnotateType(Declaration declarationWithAsType) { + // Classes are their own type, we treat the "as type" as the "declared type". + if (declarationWithAsType.DeclarationType == DeclarationType.ClassModule) + { + declarationWithAsType.AsTypeDeclaration = declarationWithAsType; + } + string typeExpression; if (declarationWithAsType.IsTypeSpecified()) { @@ -48,6 +56,7 @@ private void AnnotateType(Declaration declarationWithAsType) // TODO: Reference Collector does not add module, find workaround? return; } + var boundExpression = _bindingService.ResolveType(module, declarationWithAsType.ParentDeclaration, typeExpression); if (boundExpression != null) { diff --git a/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs b/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs index eda7717317..385bb56e00 100644 --- a/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs +++ b/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs @@ -373,7 +373,7 @@ Public Sub Baz() Dim testObj As IFoo Set testObj = new Bar() Dim result As Integer - result = testObj.Test() + result = testObj.Test End Sub"; //Arrange diff --git a/RubberduckTests/Inspections/ProcedureShouldBeFunctionInspectionTests.cs b/RubberduckTests/Inspections/ProcedureShouldBeFunctionInspectionTests.cs index e81b82534d..3a8c849cf4 100644 --- a/RubberduckTests/Inspections/ProcedureShouldBeFunctionInspectionTests.cs +++ b/RubberduckTests/Inspections/ProcedureShouldBeFunctionInspectionTests.cs @@ -161,6 +161,7 @@ public void ProcedureShouldBeFunction_DoesNotReturnsResult_MultipleByRefParams() Assert.AreEqual(0, inspectionResults.Count()); } + [Ignore] [TestMethod] public void ProcedureShouldBeFunction_DoesNotReturnResult_InterfaceImplementation() { From ffa0076c05ad0350c8da1c237f3abfa03ae07546 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 17:48:57 +0200 Subject: [PATCH 09/72] switch to new binding mechanism for while,for,do,if and select statements --- .../Binding/DefaultBindingContext.cs | 14 + .../Binding/ParenthesizedDefaultBinding.cs | 1 + .../Binding/TypeOfIsDefaultBinding.cs | 2 + Rubberduck.Parsing/Grammar/VBAParser.cs | 5269 ++++++++--------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 8 +- .../Symbols/IdentifierReferenceListener.cs | 35 +- .../Symbols/IdentifierReferenceResolver.cs | 175 +- 7 files changed, 2795 insertions(+), 2709 deletions(-) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index bc490cafd8..ce2707e5db 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -221,6 +221,20 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new ParenthesizedDefaultBinding(expression, expressionBinding); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExprContext expression, IBoundExpression withBlockVariable) + { + return Visit(module, parent, expression.typeOfIsExpression(), withBlockVariable); + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExpressionContext expression, IBoundExpression withBlockVariable) + { + dynamic booleanExpression = expression.expression(); + var booleanExpressionBinding = Visit(module, parent, booleanExpression, withBlockVariable); + dynamic typeExpression = expression.typeExpression(); + var typeExpressionBinding = Visit(module, parent, typeExpression, withBlockVariable); + return new TypeOfIsDefaultBinding(expression, booleanExpressionBinding, typeExpressionBinding); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.PowOpContext expression, IBoundExpression withBlockVariable) { return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); diff --git a/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs b/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs index daeb14fe6f..1743dd41a6 100644 --- a/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/ParenthesizedDefaultBinding.cs @@ -13,6 +13,7 @@ public ParenthesizedDefaultBinding( IExpressionBinding expressionBinding) { _context = context; + _expressionBinding = expressionBinding; } public IBoundExpression Resolve() diff --git a/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs b/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs index 53c16b4466..528318f124 100644 --- a/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/TypeOfIsDefaultBinding.cs @@ -14,6 +14,8 @@ public TypeOfIsDefaultBinding( IExpressionBinding typeExpressionBinding) { _context = context; + _expressionBinding = expressionBinding; + _typeExpressionBinding = typeExpressionBinding; } public IBoundExpression Resolve() diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 85ccc15ff7..5246aa82df 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -3868,32 +3868,26 @@ public FilecopyStmtContext filecopyStmt() { public partial class ForEachStmtContext : ParserRuleContext { public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public IdentifierContext identifier(int i) { - return GetRuleContext(i); - } public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public TypeHintContext typeHint() { - return GetRuleContext(0); + public IReadOnlyList valueStmt() { + return GetRuleContexts(); } public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } - public IReadOnlyList identifier() { - return GetRuleContexts(); - } public EndOfStatementContext endOfStatement() { return GetRuleContext(0); } public BlockContext block() { return GetRuleContext(0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } public ForEachStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -3919,7 +3913,6 @@ public override TResult Accept(IParseTreeVisitor visitor) { public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); EnterRule(_localctx, 68, RULE_forEachStmt); - int _la; try { EnterOuterAlt(_localctx, 1); { @@ -3927,35 +3920,27 @@ public ForEachStmtContext forEachStmt() { State = 838; whiteSpace(); State = 839; Match(EACH); State = 840; whiteSpace(); - State = 841; identifier(); - State = 843; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { - { - State = 842; typeHint(); - } - } - - State = 845; whiteSpace(); - State = 846; Match(IN); - State = 847; whiteSpace(); - State = 848; valueStmt(0); - State = 849; endOfStatement(); - State = 851; - switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { + State = 841; valueStmt(0); + State = 842; whiteSpace(); + State = 843; Match(IN); + State = 844; whiteSpace(); + State = 845; valueStmt(0); + State = 846; endOfStatement(); + State = 848; + switch ( Interpreter.AdaptivePredict(_input,81,_ctx) ) { case 1: { - State = 850; block(); + State = 847; block(); } break; } - State = 853; Match(NEXT); - State = 857; - switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { + State = 850; Match(NEXT); + State = 854; + switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { case 1: { - State = 854; whiteSpace(); - State = 855; identifier(); + State = 851; whiteSpace(); + State = 852; valueStmt(0); } break; } @@ -3973,8 +3958,9 @@ public ForEachStmtContext forEachStmt() { } public partial class ForNextStmtContext : ParserRuleContext { - public IdentifierContext identifier(int i) { - return GetRuleContext(i); + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); } public IReadOnlyList valueStmt() { return GetRuleContexts(); @@ -3983,25 +3969,9 @@ public IReadOnlyList valueStmt() { public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public AsTypeClauseContext asTypeClause() { - return GetRuleContext(0); - } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } - public IReadOnlyList identifier() { - return GetRuleContexts(); - } - public TypeHintContext typeHint(int i) { - return GetRuleContext(i); - } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public IReadOnlyList typeHint() { - return GetRuleContexts(); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } public EndOfStatementContext endOfStatement() { return GetRuleContext(0); } @@ -4039,83 +4009,58 @@ public ForNextStmtContext forNextStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 859; Match(FOR); - State = 860; whiteSpace(); - State = 861; identifier(); - State = 863; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { - { - State = 862; typeHint(); - } - } - - State = 868; - switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { - case 1: - { - State = 865; whiteSpace(); - State = 866; asTypeClause(); - } - break; - } - State = 871; + State = 856; Match(FOR); + State = 857; whiteSpace(); + State = 858; valueStmt(0); + State = 860; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 870; whiteSpace(); + State = 859; whiteSpace(); } } - State = 873; Match(EQ); - State = 875; - switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { + State = 862; Match(EQ); + State = 864; + switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 874; whiteSpace(); + State = 863; whiteSpace(); } break; } - State = 877; valueStmt(0); - State = 878; whiteSpace(); - State = 879; Match(TO); - State = 880; whiteSpace(); - State = 881; valueStmt(0); - State = 887; - switch ( Interpreter.AdaptivePredict(_input,88,_ctx) ) { + State = 866; valueStmt(0); + State = 867; whiteSpace(); + State = 868; Match(TO); + State = 869; whiteSpace(); + State = 870; valueStmt(0); + State = 876; + switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { case 1: { - State = 882; whiteSpace(); - State = 883; Match(STEP); - State = 884; whiteSpace(); - State = 885; valueStmt(0); + State = 871; whiteSpace(); + State = 872; Match(STEP); + State = 873; whiteSpace(); + State = 874; valueStmt(0); } break; } - State = 889; endOfStatement(); - State = 891; - switch ( Interpreter.AdaptivePredict(_input,89,_ctx) ) { + State = 878; endOfStatement(); + State = 880; + switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { case 1: { - State = 890; block(); + State = 879; block(); } break; } - State = 893; Match(NEXT); - State = 899; - switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { + State = 882; Match(NEXT); + State = 886; + switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 894; whiteSpace(); - State = 895; identifier(); - State = 897; - switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { - case 1: - { - State = 896; typeHint(); - } - break; - } + State = 883; whiteSpace(); + State = 884; valueStmt(0); } break; } @@ -4191,84 +4136,84 @@ public FunctionStmtContext functionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 904; + State = 891; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 901; visibility(); - State = 902; whiteSpace(); + State = 888; visibility(); + State = 889; whiteSpace(); } } - State = 908; + State = 895; _la = _input.La(1); if (_la==STATIC) { { - State = 906; Match(STATIC); - State = 907; whiteSpace(); + State = 893; Match(STATIC); + State = 894; whiteSpace(); } } - State = 910; Match(FUNCTION); - State = 912; + State = 897; Match(FUNCTION); + State = 899; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 911; whiteSpace(); + State = 898; whiteSpace(); } } - State = 914; identifier(); - State = 916; - switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { + State = 901; identifier(); + State = 903; + switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 915; typeHint(); + State = 902; typeHint(); } break; } - State = 922; - switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { + State = 909; + switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 919; + State = 906; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 918; whiteSpace(); + State = 905; whiteSpace(); } } - State = 921; argList(); + State = 908; argList(); } break; } - State = 928; - switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { + State = 915; + switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 925; + State = 912; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 924; whiteSpace(); + State = 911; whiteSpace(); } } - State = 927; asTypeClause(); + State = 914; asTypeClause(); } break; } - State = 930; endOfStatement(); - State = 932; + State = 917; endOfStatement(); + State = 919; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 931; block(); + State = 918; block(); } } - State = 934; Match(END_FUNCTION); + State = 921; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4331,52 +4276,52 @@ public GetStmtContext getStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 936; Match(GET); - State = 937; whiteSpace(); - State = 938; fileNumber(); - State = 940; + State = 923; Match(GET); + State = 924; whiteSpace(); + State = 925; fileNumber(); + State = 927; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 939; whiteSpace(); + State = 926; whiteSpace(); } } - State = 942; Match(COMMA); - State = 944; - switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { + State = 929; Match(COMMA); + State = 931; + switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { case 1: { - State = 943; whiteSpace(); + State = 930; whiteSpace(); } break; } - State = 947; - switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { + State = 934; + switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 946; valueStmt(0); + State = 933; valueStmt(0); } break; } - State = 950; + State = 937; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 949; whiteSpace(); + State = 936; whiteSpace(); } } - State = 952; Match(COMMA); - State = 954; - switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { + State = 939; Match(COMMA); + State = 941; + switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 953; whiteSpace(); + State = 940; whiteSpace(); } break; } - State = 956; valueStmt(0); + State = 943; valueStmt(0); } } catch (RecognitionException re) { @@ -4425,9 +4370,9 @@ public GoSubStmtContext goSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 958; Match(GOSUB); - State = 959; whiteSpace(); - State = 960; valueStmt(0); + State = 945; Match(GOSUB); + State = 946; whiteSpace(); + State = 947; valueStmt(0); } } catch (RecognitionException re) { @@ -4476,9 +4421,9 @@ public GoToStmtContext goToStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 962; Match(GOTO); - State = 963; whiteSpace(); - State = 964; valueStmt(0); + State = 949; Match(GOTO); + State = 950; whiteSpace(); + State = 951; valueStmt(0); } } catch (RecognitionException re) { @@ -4574,27 +4519,27 @@ public IfThenElseStmtContext ifThenElseStmt() { EnterRule(_localctx, 80, RULE_ifThenElseStmt); int _la; try { - State = 992; - switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { + State = 979; + switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 966; Match(IF); - State = 967; whiteSpace(); - State = 968; ifConditionStmt(); - State = 969; whiteSpace(); - State = 970; Match(THEN); - State = 971; whiteSpace(); - State = 972; blockStmt(); - State = 978; - switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { + State = 953; Match(IF); + State = 954; whiteSpace(); + State = 955; ifConditionStmt(); + State = 956; whiteSpace(); + State = 957; Match(THEN); + State = 958; whiteSpace(); + State = 959; blockStmt(); + State = 965; + switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { case 1: { - State = 973; whiteSpace(); - State = 974; Match(ELSE); - State = 975; whiteSpace(); - State = 976; blockStmt(); + State = 960; whiteSpace(); + State = 961; Match(ELSE); + State = 962; whiteSpace(); + State = 963; blockStmt(); } break; } @@ -4605,29 +4550,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 980; ifBlockStmt(); - State = 984; + State = 967; ifBlockStmt(); + State = 971; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 981; ifElseIfBlockStmt(); + State = 968; ifElseIfBlockStmt(); } } - State = 986; + State = 973; _errHandler.Sync(this); _la = _input.La(1); } - State = 988; + State = 975; _la = _input.La(1); if (_la==ELSE) { { - State = 987; ifElseBlockStmt(); + State = 974; ifElseBlockStmt(); } } - State = 990; Match(END_IF); + State = 977; Match(END_IF); } break; } @@ -4688,17 +4633,17 @@ public IfBlockStmtContext ifBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 994; Match(IF); - State = 995; whiteSpace(); - State = 996; ifConditionStmt(); - State = 997; whiteSpace(); - State = 998; Match(THEN); - State = 999; endOfStatement(); - State = 1001; - switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + State = 981; Match(IF); + State = 982; whiteSpace(); + State = 983; ifConditionStmt(); + State = 984; whiteSpace(); + State = 985; Match(THEN); + State = 986; endOfStatement(); + State = 988; + switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { case 1: { - State = 1000; block(); + State = 987; block(); } break; } @@ -4746,7 +4691,7 @@ public IfConditionStmtContext ifConditionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1003; valueStmt(0); + State = 990; valueStmt(0); } } catch (RecognitionException re) { @@ -4805,17 +4750,17 @@ public IfElseIfBlockStmtContext ifElseIfBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1005; Match(ELSEIF); - State = 1006; whiteSpace(); - State = 1007; ifConditionStmt(); - State = 1008; whiteSpace(); - State = 1009; Match(THEN); - State = 1010; endOfStatement(); - State = 1012; - switch ( Interpreter.AdaptivePredict(_input,111,_ctx) ) { + State = 992; Match(ELSEIF); + State = 993; whiteSpace(); + State = 994; ifConditionStmt(); + State = 995; whiteSpace(); + State = 996; Match(THEN); + State = 997; endOfStatement(); + State = 999; + switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 1011; block(); + State = 998; block(); } break; } @@ -4867,13 +4812,13 @@ public IfElseBlockStmtContext ifElseBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1014; Match(ELSE); - State = 1015; endOfStatement(); - State = 1017; - switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { + State = 1001; Match(ELSE); + State = 1002; endOfStatement(); + State = 1004; + switch ( Interpreter.AdaptivePredict(_input,108,_ctx) ) { case 1: { - State = 1016; block(); + State = 1003; block(); } break; } @@ -4925,9 +4870,9 @@ public ImplementsStmtContext implementsStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1019; Match(IMPLEMENTS); - State = 1020; whiteSpace(); - State = 1021; valueStmt(0); + State = 1006; Match(IMPLEMENTS); + State = 1007; whiteSpace(); + State = 1008; valueStmt(0); } } catch (RecognitionException re) { @@ -4991,10 +4936,10 @@ public InputStmtContext inputStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1023; Match(INPUT); - State = 1024; whiteSpace(); - State = 1025; fileNumber(); - State = 1034; + State = 1010; Match(INPUT); + State = 1011; whiteSpace(); + State = 1012; fileNumber(); + State = 1021; _errHandler.Sync(this); _alt = 1; do { @@ -5002,33 +4947,33 @@ public InputStmtContext inputStmt() { case 1: { { - State = 1027; + State = 1014; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1026; whiteSpace(); + State = 1013; whiteSpace(); } } - State = 1029; Match(COMMA); - State = 1031; - switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { + State = 1016; Match(COMMA); + State = 1018; + switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { case 1: { - State = 1030; whiteSpace(); + State = 1017; whiteSpace(); } break; } - State = 1033; valueStmt(0); + State = 1020; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 1036; + State = 1023; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,115,_ctx); + _alt = Interpreter.AdaptivePredict(_input,111,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -5078,9 +5023,9 @@ public KillStmtContext killStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1038; Match(KILL); - State = 1039; whiteSpace(); - State = 1040; valueStmt(0); + State = 1025; Match(KILL); + State = 1026; whiteSpace(); + State = 1027; valueStmt(0); } } catch (RecognitionException re) { @@ -5137,34 +5082,34 @@ public LetStmtContext letStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1044; - switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { + State = 1031; + switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { case 1: { - State = 1042; Match(LET); - State = 1043; whiteSpace(); + State = 1029; Match(LET); + State = 1030; whiteSpace(); } break; } - State = 1046; implicitCallStmt_InStmt(); - State = 1048; + State = 1033; implicitCallStmt_InStmt(); + State = 1035; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1047; whiteSpace(); + State = 1034; whiteSpace(); } } - State = 1050; Match(EQ); - State = 1052; - switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { + State = 1037; Match(EQ); + State = 1039; + switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { case 1: { - State = 1051; whiteSpace(); + State = 1038; whiteSpace(); } break; } - State = 1054; valueStmt(0); + State = 1041; valueStmt(0); } } catch (RecognitionException re) { @@ -5221,27 +5166,27 @@ public LineInputStmtContext lineInputStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1056; Match(LINE_INPUT); - State = 1057; whiteSpace(); - State = 1058; fileNumber(); - State = 1060; + State = 1043; Match(LINE_INPUT); + State = 1044; whiteSpace(); + State = 1045; fileNumber(); + State = 1047; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1059; whiteSpace(); + State = 1046; whiteSpace(); } } - State = 1062; Match(COMMA); - State = 1064; - switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { + State = 1049; Match(COMMA); + State = 1051; + switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 1063; whiteSpace(); + State = 1050; whiteSpace(); } break; } - State = 1066; valueStmt(0); + State = 1053; valueStmt(0); } } catch (RecognitionException re) { @@ -5290,9 +5235,9 @@ public LoadStmtContext loadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1068; Match(LOAD); - State = 1069; whiteSpace(); - State = 1070; valueStmt(0); + State = 1055; Match(LOAD); + State = 1056; whiteSpace(); + State = 1057; valueStmt(0); } } catch (RecognitionException re) { @@ -5350,39 +5295,39 @@ public LockStmtContext lockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1072; Match(LOCK); - State = 1073; whiteSpace(); - State = 1074; valueStmt(0); - State = 1090; - switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + State = 1059; Match(LOCK); + State = 1060; whiteSpace(); + State = 1061; valueStmt(0); + State = 1077; + switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { case 1: { - State = 1076; + State = 1063; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1075; whiteSpace(); + State = 1062; whiteSpace(); } } - State = 1078; Match(COMMA); - State = 1080; - switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { + State = 1065; Match(COMMA); + State = 1067; + switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1079; whiteSpace(); + State = 1066; whiteSpace(); } break; } - State = 1082; valueStmt(0); - State = 1088; - switch ( Interpreter.AdaptivePredict(_input,123,_ctx) ) { + State = 1069; valueStmt(0); + State = 1075; + switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1083; whiteSpace(); - State = 1084; Match(TO); - State = 1085; whiteSpace(); - State = 1086; valueStmt(0); + State = 1070; whiteSpace(); + State = 1071; Match(TO); + State = 1072; whiteSpace(); + State = 1073; valueStmt(0); } break; } @@ -5445,27 +5390,27 @@ public LsetStmtContext lsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1092; Match(LSET); - State = 1093; whiteSpace(); - State = 1094; implicitCallStmt_InStmt(); - State = 1096; + State = 1079; Match(LSET); + State = 1080; whiteSpace(); + State = 1081; implicitCallStmt_InStmt(); + State = 1083; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1095; whiteSpace(); + State = 1082; whiteSpace(); } } - State = 1098; Match(EQ); - State = 1100; - switch ( Interpreter.AdaptivePredict(_input,126,_ctx) ) { + State = 1085; Match(EQ); + State = 1087; + switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1099; whiteSpace(); + State = 1086; whiteSpace(); } break; } - State = 1102; valueStmt(0); + State = 1089; valueStmt(0); } } catch (RecognitionException re) { @@ -5520,34 +5465,34 @@ public MidStmtContext midStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1104; Match(MID); - State = 1106; + State = 1091; Match(MID); + State = 1093; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1105; whiteSpace(); + State = 1092; whiteSpace(); } } - State = 1108; Match(LPAREN); - State = 1110; - switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { + State = 1095; Match(LPAREN); + State = 1097; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1109; whiteSpace(); + State = 1096; whiteSpace(); } break; } - State = 1112; argsCall(); - State = 1114; + State = 1099; argsCall(); + State = 1101; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1113; whiteSpace(); + State = 1100; whiteSpace(); } } - State = 1116; Match(RPAREN); + State = 1103; Match(RPAREN); } } catch (RecognitionException re) { @@ -5596,9 +5541,9 @@ public MkdirStmtContext mkdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1118; Match(MKDIR); - State = 1119; whiteSpace(); - State = 1120; valueStmt(0); + State = 1105; Match(MKDIR); + State = 1106; whiteSpace(); + State = 1107; valueStmt(0); } } catch (RecognitionException re) { @@ -5654,13 +5599,13 @@ public NameStmtContext nameStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1122; Match(NAME); - State = 1123; whiteSpace(); - State = 1124; valueStmt(0); - State = 1125; whiteSpace(); - State = 1126; Match(AS); - State = 1127; whiteSpace(); - State = 1128; valueStmt(0); + State = 1109; Match(NAME); + State = 1110; whiteSpace(); + State = 1111; valueStmt(0); + State = 1112; whiteSpace(); + State = 1113; Match(AS); + State = 1114; whiteSpace(); + State = 1115; valueStmt(0); } } catch (RecognitionException re) { @@ -5717,27 +5662,27 @@ public OnErrorStmtContext onErrorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1130; + State = 1117; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1131; whiteSpace(); - State = 1140; + State = 1118; whiteSpace(); + State = 1127; switch (_input.La(1)) { case GOTO: { - State = 1132; Match(GOTO); - State = 1133; whiteSpace(); - State = 1134; valueStmt(0); + State = 1119; Match(GOTO); + State = 1120; whiteSpace(); + State = 1121; valueStmt(0); } break; case RESUME: { - State = 1136; Match(RESUME); - State = 1137; whiteSpace(); - State = 1138; Match(NEXT); + State = 1123; Match(RESUME); + State = 1124; whiteSpace(); + State = 1125; Match(NEXT); } break; default: @@ -5804,44 +5749,44 @@ public OnGoToStmtContext onGoToStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1142; Match(ON); - State = 1143; whiteSpace(); - State = 1144; valueStmt(0); - State = 1145; whiteSpace(); - State = 1146; Match(GOTO); - State = 1147; whiteSpace(); - State = 1148; valueStmt(0); - State = 1159; + State = 1129; Match(ON); + State = 1130; whiteSpace(); + State = 1131; valueStmt(0); + State = 1132; whiteSpace(); + State = 1133; Match(GOTO); + State = 1134; whiteSpace(); + State = 1135; valueStmt(0); + State = 1146; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,133,_ctx); + _alt = Interpreter.AdaptivePredict(_input,129,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1150; + State = 1137; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1149; whiteSpace(); + State = 1136; whiteSpace(); } } - State = 1152; Match(COMMA); - State = 1154; - switch ( Interpreter.AdaptivePredict(_input,132,_ctx) ) { + State = 1139; Match(COMMA); + State = 1141; + switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { case 1: { - State = 1153; whiteSpace(); + State = 1140; whiteSpace(); } break; } - State = 1156; valueStmt(0); + State = 1143; valueStmt(0); } } } - State = 1161; + State = 1148; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,133,_ctx); + _alt = Interpreter.AdaptivePredict(_input,129,_ctx); } } } @@ -5904,44 +5849,44 @@ public OnGoSubStmtContext onGoSubStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1162; Match(ON); - State = 1163; whiteSpace(); - State = 1164; valueStmt(0); - State = 1165; whiteSpace(); - State = 1166; Match(GOSUB); - State = 1167; whiteSpace(); - State = 1168; valueStmt(0); - State = 1179; + State = 1149; Match(ON); + State = 1150; whiteSpace(); + State = 1151; valueStmt(0); + State = 1152; whiteSpace(); + State = 1153; Match(GOSUB); + State = 1154; whiteSpace(); + State = 1155; valueStmt(0); + State = 1166; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,136,_ctx); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1170; + State = 1157; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1169; whiteSpace(); + State = 1156; whiteSpace(); } } - State = 1172; Match(COMMA); - State = 1174; - switch ( Interpreter.AdaptivePredict(_input,135,_ctx) ) { + State = 1159; Match(COMMA); + State = 1161; + switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { case 1: { - State = 1173; whiteSpace(); + State = 1160; whiteSpace(); } break; } - State = 1176; valueStmt(0); + State = 1163; valueStmt(0); } } } - State = 1181; + State = 1168; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,136,_ctx); + _alt = Interpreter.AdaptivePredict(_input,132,_ctx); } } } @@ -6018,26 +5963,26 @@ public OpenStmtContext openStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1182; Match(OPEN); - State = 1183; whiteSpace(); - State = 1184; valueStmt(0); - State = 1185; whiteSpace(); - State = 1186; Match(FOR); - State = 1187; whiteSpace(); - State = 1188; + State = 1169; Match(OPEN); + State = 1170; whiteSpace(); + State = 1171; valueStmt(0); + State = 1172; whiteSpace(); + State = 1173; Match(FOR); + State = 1174; whiteSpace(); + State = 1175; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 127)) & ~0x3f) == 0 && ((1L << (_la - 127)) & ((1L << (INPUT - 127)) | (1L << (OUTPUT - 127)) | (1L << (RANDOM - 127)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1194; - switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { + State = 1181; + switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { case 1: { - State = 1189; whiteSpace(); - State = 1190; Match(ACCESS); - State = 1191; whiteSpace(); - State = 1192; + State = 1176; whiteSpace(); + State = 1177; Match(ACCESS); + State = 1178; whiteSpace(); + State = 1179; _la = _input.La(1); if ( !(((((_la - 177)) & ~0x3f) == 0 && ((1L << (_la - 177)) & ((1L << (READ - 177)) | (1L << (READ_WRITE - 177)) | (1L << (WRITE - 177)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6046,12 +5991,12 @@ public OpenStmtContext openStmt() { } break; } - State = 1199; - switch ( Interpreter.AdaptivePredict(_input,138,_ctx) ) { + State = 1186; + switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { case 1: { - State = 1196; whiteSpace(); - State = 1197; + State = 1183; whiteSpace(); + State = 1184; _la = _input.La(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (LOCK_READ - 139)) | (1L << (LOCK_WRITE - 139)) | (1L << (LOCK_READ_WRITE - 139)) | (1L << (SHARED - 139)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6060,34 +6005,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1201; whiteSpace(); - State = 1202; Match(AS); - State = 1203; whiteSpace(); - State = 1204; fileNumber(); - State = 1216; - switch ( Interpreter.AdaptivePredict(_input,141,_ctx) ) { + State = 1188; whiteSpace(); + State = 1189; Match(AS); + State = 1190; whiteSpace(); + State = 1191; fileNumber(); + State = 1203; + switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: { - State = 1205; whiteSpace(); - State = 1206; Match(LEN); - State = 1208; + State = 1192; whiteSpace(); + State = 1193; Match(LEN); + State = 1195; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1207; whiteSpace(); + State = 1194; whiteSpace(); } } - State = 1210; Match(EQ); - State = 1212; - switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { + State = 1197; Match(EQ); + State = 1199; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1211; whiteSpace(); + State = 1198; whiteSpace(); } break; } - State = 1214; valueStmt(0); + State = 1201; valueStmt(0); } break; } @@ -6152,55 +6097,55 @@ public OutputListContext outputList() { int _la; try { int _alt; - State = 1251; - switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { + State = 1238; + switch ( Interpreter.AdaptivePredict(_input,147,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1218; outputList_Expression(); - State = 1231; + State = 1205; outputList_Expression(); + State = 1218; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,145,_ctx); + _alt = Interpreter.AdaptivePredict(_input,141,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1220; + State = 1207; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1219; whiteSpace(); + State = 1206; whiteSpace(); } } - State = 1222; + State = 1209; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1224; - switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { + State = 1211; + switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1223; whiteSpace(); + State = 1210; whiteSpace(); } break; } - State = 1227; - switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { + State = 1214; + switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1226; outputList_Expression(); + State = 1213; outputList_Expression(); } break; } } } } - State = 1233; + State = 1220; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,145,_ctx); + _alt = Interpreter.AdaptivePredict(_input,141,_ctx); } } break; @@ -6208,15 +6153,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1235; - switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { + State = 1222; + switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { case 1: { - State = 1234; outputList_Expression(); + State = 1221; outputList_Expression(); } break; } - State = 1247; + State = 1234; _errHandler.Sync(this); _alt = 1; do { @@ -6224,33 +6169,33 @@ public OutputListContext outputList() { case 1: { { - State = 1238; + State = 1225; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1237; whiteSpace(); + State = 1224; whiteSpace(); } } - State = 1240; + State = 1227; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1242; - switch ( Interpreter.AdaptivePredict(_input,148,_ctx) ) { + State = 1229; + switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { case 1: { - State = 1241; whiteSpace(); + State = 1228; whiteSpace(); } break; } - State = 1245; - switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + State = 1232; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1244; outputList_Expression(); + State = 1231; outputList_Expression(); } break; } @@ -6260,9 +6205,9 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1249; + State = 1236; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,150,_ctx); + _alt = Interpreter.AdaptivePredict(_input,146,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -6322,55 +6267,55 @@ public OutputList_ExpressionContext outputList_Expression() { EnterRule(_localctx, 122, RULE_outputList_Expression); int _la; try { - State = 1270; - switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { + State = 1257; + switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1253; valueStmt(0); + State = 1240; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1254; + State = 1241; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1268; - switch ( Interpreter.AdaptivePredict(_input,155,_ctx) ) { + State = 1255; + switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1256; + State = 1243; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1255; whiteSpace(); + State = 1242; whiteSpace(); } } - State = 1258; Match(LPAREN); - State = 1260; - switch ( Interpreter.AdaptivePredict(_input,153,_ctx) ) { + State = 1245; Match(LPAREN); + State = 1247; + switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { case 1: { - State = 1259; whiteSpace(); + State = 1246; whiteSpace(); } break; } - State = 1262; argsCall(); - State = 1264; + State = 1249; argsCall(); + State = 1251; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1263; whiteSpace(); + State = 1250; whiteSpace(); } } - State = 1266; Match(RPAREN); + State = 1253; Match(RPAREN); } break; } @@ -6432,31 +6377,31 @@ public PrintStmtContext printStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1272; Match(PRINT); - State = 1273; whiteSpace(); - State = 1274; fileNumber(); - State = 1276; + State = 1259; Match(PRINT); + State = 1260; whiteSpace(); + State = 1261; fileNumber(); + State = 1263; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1275; whiteSpace(); + State = 1262; whiteSpace(); } } - State = 1278; Match(COMMA); - State = 1283; - switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { + State = 1265; Match(COMMA); + State = 1270; + switch ( Interpreter.AdaptivePredict(_input,155,_ctx) ) { case 1: { - State = 1280; - switch ( Interpreter.AdaptivePredict(_input,158,_ctx) ) { + State = 1267; + switch ( Interpreter.AdaptivePredict(_input,154,_ctx) ) { case 1: { - State = 1279; whiteSpace(); + State = 1266; whiteSpace(); } break; } - State = 1282; outputList(); + State = 1269; outputList(); } break; } @@ -6532,70 +6477,70 @@ public PropertyGetStmtContext propertyGetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1288; + State = 1275; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1285; visibility(); - State = 1286; whiteSpace(); + State = 1272; visibility(); + State = 1273; whiteSpace(); } } - State = 1292; + State = 1279; _la = _input.La(1); if (_la==STATIC) { { - State = 1290; Match(STATIC); - State = 1291; whiteSpace(); + State = 1277; Match(STATIC); + State = 1278; whiteSpace(); } } - State = 1294; Match(PROPERTY_GET); - State = 1295; whiteSpace(); - State = 1296; identifier(); - State = 1298; - switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { + State = 1281; Match(PROPERTY_GET); + State = 1282; whiteSpace(); + State = 1283; identifier(); + State = 1285; + switch ( Interpreter.AdaptivePredict(_input,158,_ctx) ) { case 1: { - State = 1297; typeHint(); + State = 1284; typeHint(); } break; } - State = 1304; - switch ( Interpreter.AdaptivePredict(_input,164,_ctx) ) { + State = 1291; + switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1301; + State = 1288; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1300; whiteSpace(); + State = 1287; whiteSpace(); } } - State = 1303; argList(); + State = 1290; argList(); } break; } - State = 1309; - switch ( Interpreter.AdaptivePredict(_input,165,_ctx) ) { + State = 1296; + switch ( Interpreter.AdaptivePredict(_input,161,_ctx) ) { case 1: { - State = 1306; whiteSpace(); - State = 1307; asTypeClause(); + State = 1293; whiteSpace(); + State = 1294; asTypeClause(); } break; } - State = 1311; endOfStatement(); - State = 1313; + State = 1298; endOfStatement(); + State = 1300; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1312; block(); + State = 1299; block(); } } - State = 1315; Match(END_PROPERTY); + State = 1302; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6662,53 +6607,53 @@ public PropertySetStmtContext propertySetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1320; + State = 1307; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1317; visibility(); - State = 1318; whiteSpace(); + State = 1304; visibility(); + State = 1305; whiteSpace(); } } - State = 1324; + State = 1311; _la = _input.La(1); if (_la==STATIC) { { - State = 1322; Match(STATIC); - State = 1323; whiteSpace(); + State = 1309; Match(STATIC); + State = 1310; whiteSpace(); } } - State = 1326; Match(PROPERTY_SET); - State = 1327; whiteSpace(); - State = 1328; identifier(); - State = 1333; - switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { + State = 1313; Match(PROPERTY_SET); + State = 1314; whiteSpace(); + State = 1315; identifier(); + State = 1320; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1330; + State = 1317; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1329; whiteSpace(); + State = 1316; whiteSpace(); } } - State = 1332; argList(); + State = 1319; argList(); } break; } - State = 1335; endOfStatement(); - State = 1337; + State = 1322; endOfStatement(); + State = 1324; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1336; block(); + State = 1323; block(); } } - State = 1339; Match(END_PROPERTY); + State = 1326; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6775,53 +6720,53 @@ public PropertyLetStmtContext propertyLetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1344; + State = 1331; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1341; visibility(); - State = 1342; whiteSpace(); + State = 1328; visibility(); + State = 1329; whiteSpace(); } } - State = 1348; + State = 1335; _la = _input.La(1); if (_la==STATIC) { { - State = 1346; Match(STATIC); - State = 1347; whiteSpace(); + State = 1333; Match(STATIC); + State = 1334; whiteSpace(); } } - State = 1350; Match(PROPERTY_LET); - State = 1351; whiteSpace(); - State = 1352; identifier(); - State = 1357; - switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { + State = 1337; Match(PROPERTY_LET); + State = 1338; whiteSpace(); + State = 1339; identifier(); + State = 1344; + switch ( Interpreter.AdaptivePredict(_input,171,_ctx) ) { case 1: { - State = 1354; + State = 1341; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1353; whiteSpace(); + State = 1340; whiteSpace(); } } - State = 1356; argList(); + State = 1343; argList(); } break; } - State = 1359; endOfStatement(); - State = 1361; + State = 1346; endOfStatement(); + State = 1348; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1360; block(); + State = 1347; block(); } } - State = 1363; Match(END_PROPERTY); + State = 1350; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6884,52 +6829,52 @@ public PutStmtContext putStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1365; Match(PUT); - State = 1366; whiteSpace(); - State = 1367; fileNumber(); - State = 1369; + State = 1352; Match(PUT); + State = 1353; whiteSpace(); + State = 1354; fileNumber(); + State = 1356; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1368; whiteSpace(); + State = 1355; whiteSpace(); } } - State = 1371; Match(COMMA); - State = 1373; - switch ( Interpreter.AdaptivePredict(_input,178,_ctx) ) { + State = 1358; Match(COMMA); + State = 1360; + switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { case 1: { - State = 1372; whiteSpace(); + State = 1359; whiteSpace(); } break; } - State = 1376; - switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { + State = 1363; + switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1375; valueStmt(0); + State = 1362; valueStmt(0); } break; } - State = 1379; + State = 1366; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1378; whiteSpace(); + State = 1365; whiteSpace(); } } - State = 1381; Match(COMMA); - State = 1383; - switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { + State = 1368; Match(COMMA); + State = 1370; + switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1382; whiteSpace(); + State = 1369; whiteSpace(); } break; } - State = 1385; valueStmt(0); + State = 1372; valueStmt(0); } } catch (RecognitionException re) { @@ -6987,47 +6932,47 @@ public RaiseEventStmtContext raiseEventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1387; Match(RAISEEVENT); - State = 1388; whiteSpace(); - State = 1389; identifier(); - State = 1404; - switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + State = 1374; Match(RAISEEVENT); + State = 1375; whiteSpace(); + State = 1376; identifier(); + State = 1391; + switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { case 1: { - State = 1391; + State = 1378; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1390; whiteSpace(); + State = 1377; whiteSpace(); } } - State = 1393; Match(LPAREN); - State = 1395; - switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { + State = 1380; Match(LPAREN); + State = 1382; + switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1394; whiteSpace(); + State = 1381; whiteSpace(); } break; } - State = 1401; - switch ( Interpreter.AdaptivePredict(_input,185,_ctx) ) { + State = 1388; + switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1397; argsCall(); - State = 1399; + State = 1384; argsCall(); + State = 1386; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1398; whiteSpace(); + State = 1385; whiteSpace(); } } } break; } - State = 1403; Match(RPAREN); + State = 1390; Match(RPAREN); } break; } @@ -7079,13 +7024,13 @@ public RandomizeStmtContext randomizeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1406; Match(RANDOMIZE); - State = 1410; - switch ( Interpreter.AdaptivePredict(_input,187,_ctx) ) { + State = 1393; Match(RANDOMIZE); + State = 1397; + switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { case 1: { - State = 1407; whiteSpace(); - State = 1408; valueStmt(0); + State = 1394; whiteSpace(); + State = 1395; valueStmt(0); } break; } @@ -7150,49 +7095,49 @@ public RedimStmtContext redimStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1412; Match(REDIM); - State = 1413; whiteSpace(); - State = 1416; - switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { + State = 1399; Match(REDIM); + State = 1400; whiteSpace(); + State = 1403; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1414; Match(PRESERVE); - State = 1415; whiteSpace(); + State = 1401; Match(PRESERVE); + State = 1402; whiteSpace(); } break; } - State = 1418; redimSubStmt(); - State = 1429; + State = 1405; redimSubStmt(); + State = 1416; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,191,_ctx); + _alt = Interpreter.AdaptivePredict(_input,187,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1420; + State = 1407; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1419; whiteSpace(); + State = 1406; whiteSpace(); } } - State = 1422; Match(COMMA); - State = 1424; - switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { + State = 1409; Match(COMMA); + State = 1411; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { case 1: { - State = 1423; whiteSpace(); + State = 1410; whiteSpace(); } break; } - State = 1426; redimSubStmt(); + State = 1413; redimSubStmt(); } } } - State = 1431; + State = 1418; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,191,_ctx); + _alt = Interpreter.AdaptivePredict(_input,187,_ctx); } } } @@ -7253,40 +7198,40 @@ public RedimSubStmtContext redimSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1432; implicitCallStmt_InStmt(); - State = 1434; + State = 1419; implicitCallStmt_InStmt(); + State = 1421; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1433; whiteSpace(); + State = 1420; whiteSpace(); } } - State = 1436; Match(LPAREN); - State = 1438; - switch ( Interpreter.AdaptivePredict(_input,193,_ctx) ) { + State = 1423; Match(LPAREN); + State = 1425; + switch ( Interpreter.AdaptivePredict(_input,189,_ctx) ) { case 1: { - State = 1437; whiteSpace(); + State = 1424; whiteSpace(); } break; } - State = 1440; subscripts(); - State = 1442; + State = 1427; subscripts(); + State = 1429; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1441; whiteSpace(); + State = 1428; whiteSpace(); } } - State = 1444; Match(RPAREN); - State = 1448; - switch ( Interpreter.AdaptivePredict(_input,195,_ctx) ) { + State = 1431; Match(RPAREN); + State = 1435; + switch ( Interpreter.AdaptivePredict(_input,191,_ctx) ) { case 1: { - State = 1445; whiteSpace(); - State = 1446; asTypeClause(); + State = 1432; whiteSpace(); + State = 1433; asTypeClause(); } break; } @@ -7332,7 +7277,7 @@ public ResetStmtContext resetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1450; Match(RESET); + State = 1437; Match(RESET); } } catch (RecognitionException re) { @@ -7382,23 +7327,23 @@ public ResumeStmtContext resumeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1452; Match(RESUME); - State = 1458; - switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { + State = 1439; Match(RESUME); + State = 1445; + switch ( Interpreter.AdaptivePredict(_input,193,_ctx) ) { case 1: { - State = 1453; whiteSpace(); - State = 1456; - switch ( Interpreter.AdaptivePredict(_input,196,_ctx) ) { + State = 1440; whiteSpace(); + State = 1443; + switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { case 1: { - State = 1454; Match(NEXT); + State = 1441; Match(NEXT); } break; case 2: { - State = 1455; identifier(); + State = 1442; identifier(); } break; } @@ -7447,7 +7392,7 @@ public ReturnStmtContext returnStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1460; Match(RETURN); + State = 1447; Match(RETURN); } } catch (RecognitionException re) { @@ -7496,9 +7441,9 @@ public RmdirStmtContext rmdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1462; Match(RMDIR); - State = 1463; whiteSpace(); - State = 1464; valueStmt(0); + State = 1449; Match(RMDIR); + State = 1450; whiteSpace(); + State = 1451; valueStmt(0); } } catch (RecognitionException re) { @@ -7555,27 +7500,27 @@ public RsetStmtContext rsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1466; Match(RSET); - State = 1467; whiteSpace(); - State = 1468; implicitCallStmt_InStmt(); - State = 1470; + State = 1453; Match(RSET); + State = 1454; whiteSpace(); + State = 1455; implicitCallStmt_InStmt(); + State = 1457; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1469; whiteSpace(); + State = 1456; whiteSpace(); } } - State = 1472; Match(EQ); - State = 1474; - switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { + State = 1459; Match(EQ); + State = 1461; + switch ( Interpreter.AdaptivePredict(_input,195,_ctx) ) { case 1: { - State = 1473; whiteSpace(); + State = 1460; whiteSpace(); } break; } - State = 1476; valueStmt(0); + State = 1463; valueStmt(0); } } catch (RecognitionException re) { @@ -7632,27 +7577,27 @@ public SavepictureStmtContext savepictureStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1478; Match(SAVEPICTURE); - State = 1479; whiteSpace(); - State = 1480; valueStmt(0); - State = 1482; + State = 1465; Match(SAVEPICTURE); + State = 1466; whiteSpace(); + State = 1467; valueStmt(0); + State = 1469; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1481; whiteSpace(); + State = 1468; whiteSpace(); } } - State = 1484; Match(COMMA); - State = 1486; - switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { + State = 1471; Match(COMMA); + State = 1473; + switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1485; whiteSpace(); + State = 1472; whiteSpace(); } break; } - State = 1488; valueStmt(0); + State = 1475; valueStmt(0); } } catch (RecognitionException re) { @@ -7712,63 +7657,63 @@ public SaveSettingStmtContext saveSettingStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1490; Match(SAVESETTING); - State = 1491; whiteSpace(); - State = 1492; valueStmt(0); - State = 1494; + State = 1477; Match(SAVESETTING); + State = 1478; whiteSpace(); + State = 1479; valueStmt(0); + State = 1481; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1493; whiteSpace(); + State = 1480; whiteSpace(); } } - State = 1496; Match(COMMA); - State = 1498; - switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { + State = 1483; Match(COMMA); + State = 1485; + switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { case 1: { - State = 1497; whiteSpace(); + State = 1484; whiteSpace(); } break; } - State = 1500; valueStmt(0); - State = 1502; + State = 1487; valueStmt(0); + State = 1489; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1501; whiteSpace(); + State = 1488; whiteSpace(); } } - State = 1504; Match(COMMA); - State = 1506; - switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { + State = 1491; Match(COMMA); + State = 1493; + switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { case 1: { - State = 1505; whiteSpace(); + State = 1492; whiteSpace(); } break; } - State = 1508; valueStmt(0); - State = 1510; + State = 1495; valueStmt(0); + State = 1497; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1509; whiteSpace(); + State = 1496; whiteSpace(); } } - State = 1512; Match(COMMA); - State = 1514; - switch ( Interpreter.AdaptivePredict(_input,207,_ctx) ) { + State = 1499; Match(COMMA); + State = 1501; + switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1513; whiteSpace(); + State = 1500; whiteSpace(); } break; } - State = 1516; valueStmt(0); + State = 1503; valueStmt(0); } } catch (RecognitionException re) { @@ -7825,27 +7770,27 @@ public SeekStmtContext seekStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1518; Match(SEEK); - State = 1519; whiteSpace(); - State = 1520; fileNumber(); - State = 1522; + State = 1505; Match(SEEK); + State = 1506; whiteSpace(); + State = 1507; fileNumber(); + State = 1509; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1521; whiteSpace(); + State = 1508; whiteSpace(); } } - State = 1524; Match(COMMA); - State = 1526; - switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { + State = 1511; Match(COMMA); + State = 1513; + switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1525; whiteSpace(); + State = 1512; whiteSpace(); } break; } - State = 1528; valueStmt(0); + State = 1515; valueStmt(0); } } catch (RecognitionException re) { @@ -7909,26 +7854,26 @@ public SelectCaseStmtContext selectCaseStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1530; Match(SELECT); - State = 1531; whiteSpace(); - State = 1532; Match(CASE); - State = 1533; whiteSpace(); - State = 1534; valueStmt(0); - State = 1535; endOfStatement(); - State = 1539; + State = 1517; Match(SELECT); + State = 1518; whiteSpace(); + State = 1519; Match(CASE); + State = 1520; whiteSpace(); + State = 1521; valueStmt(0); + State = 1522; endOfStatement(); + State = 1526; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1536; sC_Case(); + State = 1523; sC_Case(); } } - State = 1541; + State = 1528; _errHandler.Sync(this); _la = _input.La(1); } - State = 1542; Match(END_SELECT); + State = 1529; Match(END_SELECT); } } catch (RecognitionException re) { @@ -8038,31 +7983,31 @@ public SC_SelectionContext sC_Selection() { EnterRule(_localctx, 160, RULE_sC_Selection); int _la; try { - State = 1561; - switch ( Interpreter.AdaptivePredict(_input,213,_ctx) ) { + State = 1548; + switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1544; Match(IS); - State = 1546; + State = 1531; Match(IS); + State = 1533; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1545; whiteSpace(); + State = 1532; whiteSpace(); } } - State = 1548; comparisonOperator(); - State = 1550; - switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + State = 1535; comparisonOperator(); + State = 1537; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1549; whiteSpace(); + State = 1536; whiteSpace(); } break; } - State = 1552; valueStmt(0); + State = 1539; valueStmt(0); } break; @@ -8070,11 +8015,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1554; valueStmt(0); - State = 1555; whiteSpace(); - State = 1556; Match(TO); - State = 1557; whiteSpace(); - State = 1558; valueStmt(0); + State = 1541; valueStmt(0); + State = 1542; whiteSpace(); + State = 1543; Match(TO); + State = 1544; whiteSpace(); + State = 1545; valueStmt(0); } break; @@ -8082,7 +8027,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1560; valueStmt(0); + State = 1547; valueStmt(0); } break; } @@ -8139,15 +8084,15 @@ public SC_CaseContext sC_Case() { try { EnterOuterAlt(_localctx, 1); { - State = 1563; Match(CASE); - State = 1564; whiteSpace(); - State = 1565; sC_Cond(); - State = 1566; endOfStatement(); - State = 1568; - switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { + State = 1550; Match(CASE); + State = 1551; whiteSpace(); + State = 1552; sC_Cond(); + State = 1553; endOfStatement(); + State = 1555; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1567; block(); + State = 1554; block(); } break; } @@ -8233,13 +8178,13 @@ public SC_CondContext sC_Cond() { int _la; try { int _alt; - State = 1585; - switch ( Interpreter.AdaptivePredict(_input,218,_ctx) ) { + State = 1572; + switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1570; Match(ELSE); + State = 1557; Match(ELSE); } break; @@ -8247,38 +8192,38 @@ public SC_CondContext sC_Cond() { _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1571; sC_Selection(); - State = 1582; + State = 1558; sC_Selection(); + State = 1569; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,217,_ctx); + _alt = Interpreter.AdaptivePredict(_input,213,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1573; + State = 1560; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1572; whiteSpace(); + State = 1559; whiteSpace(); } } - State = 1575; Match(COMMA); - State = 1577; - switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { + State = 1562; Match(COMMA); + State = 1564; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1576; whiteSpace(); + State = 1563; whiteSpace(); } break; } - State = 1579; sC_Selection(); + State = 1566; sC_Selection(); } } } - State = 1584; + State = 1571; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,217,_ctx); + _alt = Interpreter.AdaptivePredict(_input,213,_ctx); } } break; @@ -8338,31 +8283,31 @@ public SendkeysStmtContext sendkeysStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1587; Match(SENDKEYS); - State = 1588; whiteSpace(); - State = 1589; valueStmt(0); - State = 1598; - switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { + State = 1574; Match(SENDKEYS); + State = 1575; whiteSpace(); + State = 1576; valueStmt(0); + State = 1585; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1591; + State = 1578; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1590; whiteSpace(); + State = 1577; whiteSpace(); } } - State = 1593; Match(COMMA); - State = 1595; - switch ( Interpreter.AdaptivePredict(_input,220,_ctx) ) { + State = 1580; Match(COMMA); + State = 1582; + switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1594; whiteSpace(); + State = 1581; whiteSpace(); } break; } - State = 1597; valueStmt(0); + State = 1584; valueStmt(0); } break; } @@ -8422,27 +8367,27 @@ public SetattrStmtContext setattrStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1600; Match(SETATTR); - State = 1601; whiteSpace(); - State = 1602; valueStmt(0); - State = 1604; + State = 1587; Match(SETATTR); + State = 1588; whiteSpace(); + State = 1589; valueStmt(0); + State = 1591; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1603; whiteSpace(); + State = 1590; whiteSpace(); } } - State = 1606; Match(COMMA); - State = 1608; - switch ( Interpreter.AdaptivePredict(_input,223,_ctx) ) { + State = 1593; Match(COMMA); + State = 1595; + switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: { - State = 1607; whiteSpace(); + State = 1594; whiteSpace(); } break; } - State = 1610; valueStmt(0); + State = 1597; valueStmt(0); } } catch (RecognitionException re) { @@ -8499,27 +8444,27 @@ public SetStmtContext setStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1612; Match(SET); - State = 1613; whiteSpace(); - State = 1614; implicitCallStmt_InStmt(); - State = 1616; + State = 1599; Match(SET); + State = 1600; whiteSpace(); + State = 1601; implicitCallStmt_InStmt(); + State = 1603; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1615; whiteSpace(); + State = 1602; whiteSpace(); } } - State = 1618; Match(EQ); - State = 1620; - switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { + State = 1605; Match(EQ); + State = 1607; + switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1619; whiteSpace(); + State = 1606; whiteSpace(); } break; } - State = 1622; valueStmt(0); + State = 1609; valueStmt(0); } } catch (RecognitionException re) { @@ -8562,7 +8507,7 @@ public StopStmtContext stopStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1624; Match(STOP); + State = 1611; Match(STOP); } } catch (RecognitionException re) { @@ -8629,60 +8574,60 @@ public SubStmtContext subStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1629; + State = 1616; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1626; visibility(); - State = 1627; whiteSpace(); + State = 1613; visibility(); + State = 1614; whiteSpace(); } } - State = 1633; + State = 1620; _la = _input.La(1); if (_la==STATIC) { { - State = 1631; Match(STATIC); - State = 1632; whiteSpace(); + State = 1618; Match(STATIC); + State = 1619; whiteSpace(); } } - State = 1635; Match(SUB); - State = 1637; + State = 1622; Match(SUB); + State = 1624; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1636; whiteSpace(); + State = 1623; whiteSpace(); } } - State = 1639; identifier(); - State = 1644; - switch ( Interpreter.AdaptivePredict(_input,230,_ctx) ) { + State = 1626; identifier(); + State = 1631; + switch ( Interpreter.AdaptivePredict(_input,226,_ctx) ) { case 1: { - State = 1641; + State = 1628; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1640; whiteSpace(); + State = 1627; whiteSpace(); } } - State = 1643; argList(); + State = 1630; argList(); } break; } - State = 1646; endOfStatement(); - State = 1648; + State = 1633; endOfStatement(); + State = 1635; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1647; block(); + State = 1634; block(); } } - State = 1650; Match(END_SUB); + State = 1637; Match(END_SUB); } } catch (RecognitionException re) { @@ -8736,25 +8681,25 @@ public TimeStmtContext timeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1652; Match(TIME); - State = 1654; + State = 1639; Match(TIME); + State = 1641; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1653; whiteSpace(); + State = 1640; whiteSpace(); } } - State = 1656; Match(EQ); - State = 1658; - switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { + State = 1643; Match(EQ); + State = 1645; + switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1657; whiteSpace(); + State = 1644; whiteSpace(); } break; } - State = 1660; valueStmt(0); + State = 1647; valueStmt(0); } } catch (RecognitionException re) { @@ -8820,33 +8765,33 @@ public TypeStmtContext typeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1665; + State = 1652; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1662; visibility(); - State = 1663; whiteSpace(); + State = 1649; visibility(); + State = 1650; whiteSpace(); } } - State = 1667; Match(TYPE); - State = 1668; whiteSpace(); - State = 1669; identifier(); - State = 1670; endOfStatement(); - State = 1674; + State = 1654; Match(TYPE); + State = 1655; whiteSpace(); + State = 1656; identifier(); + State = 1657; endOfStatement(); + State = 1661; _errHandler.Sync(this); _la = _input.La(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==COLLECTION) { { { - State = 1671; typeStmt_Element(); + State = 1658; typeStmt_Element(); } } - State = 1676; + State = 1663; _errHandler.Sync(this); _la = _input.La(1); } - State = 1677; Match(END_TYPE); + State = 1664; Match(END_TYPE); } } catch (RecognitionException re) { @@ -8909,58 +8854,58 @@ public TypeStmt_ElementContext typeStmt_Element() { try { EnterOuterAlt(_localctx, 1); { - State = 1679; identifier(); - State = 1694; - switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { + State = 1666; identifier(); + State = 1681; + switch ( Interpreter.AdaptivePredict(_input,236,_ctx) ) { case 1: { - State = 1681; + State = 1668; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1680; whiteSpace(); + State = 1667; whiteSpace(); } } - State = 1683; Match(LPAREN); - State = 1688; - switch ( Interpreter.AdaptivePredict(_input,238,_ctx) ) { + State = 1670; Match(LPAREN); + State = 1675; + switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { case 1: { - State = 1685; - switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { + State = 1672; + switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1684; whiteSpace(); + State = 1671; whiteSpace(); } break; } - State = 1687; subscripts(); + State = 1674; subscripts(); } break; } - State = 1691; + State = 1678; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1690; whiteSpace(); + State = 1677; whiteSpace(); } } - State = 1693; Match(RPAREN); + State = 1680; Match(RPAREN); } break; } - State = 1699; - switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { + State = 1686; + switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1696; whiteSpace(); - State = 1697; asTypeClause(); + State = 1683; whiteSpace(); + State = 1684; asTypeClause(); } break; } - State = 1701; endOfStatement(); + State = 1688; endOfStatement(); } } catch (RecognitionException re) { @@ -9009,9 +8954,9 @@ public UnloadStmtContext unloadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1703; Match(UNLOAD); - State = 1704; whiteSpace(); - State = 1705; valueStmt(0); + State = 1690; Match(UNLOAD); + State = 1691; whiteSpace(); + State = 1692; valueStmt(0); } } catch (RecognitionException re) { @@ -9072,39 +9017,39 @@ public UnlockStmtContext unlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1707; Match(UNLOCK); - State = 1708; whiteSpace(); - State = 1709; fileNumber(); - State = 1725; - switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { + State = 1694; Match(UNLOCK); + State = 1695; whiteSpace(); + State = 1696; fileNumber(); + State = 1712; + switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1711; + State = 1698; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1710; whiteSpace(); + State = 1697; whiteSpace(); } } - State = 1713; Match(COMMA); - State = 1715; - switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { + State = 1700; Match(COMMA); + State = 1702; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1714; whiteSpace(); + State = 1701; whiteSpace(); } break; } - State = 1717; valueStmt(0); - State = 1723; - switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { + State = 1704; valueStmt(0); + State = 1710; + switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { case 1: { - State = 1718; whiteSpace(); - State = 1719; Match(TO); - State = 1720; whiteSpace(); - State = 1721; valueStmt(0); + State = 1705; whiteSpace(); + State = 1706; Match(TO); + State = 1707; whiteSpace(); + State = 1708; valueStmt(0); } break; } @@ -9735,24 +9680,24 @@ private ValueStmtContext valueStmt(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1772; - switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + State = 1759; + switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { case 1: { _localctx = new VsNewContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1728; Match(NEW); - State = 1730; - switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + State = 1715; Match(NEW); + State = 1717; + switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { case 1: { - State = 1729; whiteSpace(); + State = 1716; whiteSpace(); } break; } - State = 1732; valueStmt(19); + State = 1719; valueStmt(19); } break; @@ -9761,16 +9706,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1733; Match(ADDRESSOF); - State = 1735; - switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { + State = 1720; Match(ADDRESSOF); + State = 1722; + switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1734; whiteSpace(); + State = 1721; whiteSpace(); } break; } - State = 1737; valueStmt(16); + State = 1724; valueStmt(16); } break; @@ -9779,25 +9724,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1738; implicitCallStmt_InStmt(); - State = 1740; + State = 1725; implicitCallStmt_InStmt(); + State = 1727; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1739; whiteSpace(); + State = 1726; whiteSpace(); } } - State = 1742; Match(ASSIGN); - State = 1744; - switch ( Interpreter.AdaptivePredict(_input,249,_ctx) ) { + State = 1729; Match(ASSIGN); + State = 1731; + switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { case 1: { - State = 1743; whiteSpace(); + State = 1730; whiteSpace(); } break; } - State = 1746; valueStmt(15); + State = 1733; valueStmt(15); } break; @@ -9806,16 +9751,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1748; Match(MINUS); - State = 1750; - switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { + State = 1735; Match(MINUS); + State = 1737; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1749; whiteSpace(); + State = 1736; whiteSpace(); } break; } - State = 1752; valueStmt(13); + State = 1739; valueStmt(13); } break; @@ -9824,16 +9769,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1753; Match(NOT); - State = 1755; - switch ( Interpreter.AdaptivePredict(_input,251,_ctx) ) { + State = 1740; Match(NOT); + State = 1742; + switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { case 1: { - State = 1754; whiteSpace(); + State = 1741; whiteSpace(); } break; } - State = 1757; valueStmt(6); + State = 1744; valueStmt(6); } break; @@ -9842,7 +9787,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1758; literal(); + State = 1745; literal(); } break; @@ -9851,7 +9796,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1759; implicitCallStmt_InStmt(); + State = 1746; implicitCallStmt_InStmt(); } break; @@ -9860,25 +9805,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1760; Match(LPAREN); - State = 1762; - switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + State = 1747; Match(LPAREN); + State = 1749; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1761; whiteSpace(); + State = 1748; whiteSpace(); } break; } - State = 1764; valueStmt(0); - State = 1766; + State = 1751; valueStmt(0); + State = 1753; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1765; whiteSpace(); + State = 1752; whiteSpace(); } } - State = 1768; Match(RPAREN); + State = 1755; Match(RPAREN); } break; @@ -9887,7 +9832,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1770; typeOfIsExpression(); + State = 1757; typeOfIsExpression(); } break; @@ -9896,45 +9841,45 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1771; midStmt(); + State = 1758; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1884; + State = 1871; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,280,_ctx); + _alt = Interpreter.AdaptivePredict(_input,276,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1882; - switch ( Interpreter.AdaptivePredict(_input,279,_ctx) ) { + State = 1869; + switch ( Interpreter.AdaptivePredict(_input,275,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1774; + State = 1761; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1776; + State = 1763; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1775; whiteSpace(); + State = 1762; whiteSpace(); } } - State = 1778; Match(POW); - State = 1780; - switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + State = 1765; Match(POW); + State = 1767; + switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { case 1: { - State = 1779; whiteSpace(); + State = 1766; whiteSpace(); } break; } - State = 1782; valueStmt(15); + State = 1769; valueStmt(15); } break; @@ -9942,31 +9887,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1783; + State = 1770; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1785; + State = 1772; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1784; whiteSpace(); + State = 1771; whiteSpace(); } } - State = 1787; + State = 1774; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1789; - switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + State = 1776; + switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { case 1: { - State = 1788; whiteSpace(); + State = 1775; whiteSpace(); } break; } - State = 1791; valueStmt(13); + State = 1778; valueStmt(13); } break; @@ -9974,26 +9919,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1792; + State = 1779; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1794; + State = 1781; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1793; whiteSpace(); + State = 1780; whiteSpace(); } } - State = 1796; Match(INTDIV); - State = 1798; - switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + State = 1783; Match(INTDIV); + State = 1785; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1797; whiteSpace(); + State = 1784; whiteSpace(); } break; } - State = 1800; valueStmt(12); + State = 1787; valueStmt(12); } break; @@ -10001,26 +9946,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1801; + State = 1788; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1803; + State = 1790; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1802; whiteSpace(); + State = 1789; whiteSpace(); } } - State = 1805; Match(MOD); - State = 1807; - switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + State = 1792; Match(MOD); + State = 1794; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1806; whiteSpace(); + State = 1793; whiteSpace(); } break; } - State = 1809; valueStmt(11); + State = 1796; valueStmt(11); } break; @@ -10028,31 +9973,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1810; + State = 1797; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1812; + State = 1799; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1811; whiteSpace(); + State = 1798; whiteSpace(); } } - State = 1814; + State = 1801; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1816; - switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + State = 1803; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { case 1: { - State = 1815; whiteSpace(); + State = 1802; whiteSpace(); } break; } - State = 1818; valueStmt(10); + State = 1805; valueStmt(10); } break; @@ -10060,26 +10005,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1819; + State = 1806; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1821; + State = 1808; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1820; whiteSpace(); + State = 1807; whiteSpace(); } } - State = 1823; Match(AMPERSAND); - State = 1825; - switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + State = 1810; Match(AMPERSAND); + State = 1812; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1824; whiteSpace(); + State = 1811; whiteSpace(); } break; } - State = 1827; valueStmt(9); + State = 1814; valueStmt(9); } break; @@ -10087,31 +10032,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1828; + State = 1815; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1830; + State = 1817; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1829; whiteSpace(); + State = 1816; whiteSpace(); } } - State = 1832; + State = 1819; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1834; - switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + State = 1821; + switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { case 1: { - State = 1833; whiteSpace(); + State = 1820; whiteSpace(); } break; } - State = 1836; valueStmt(8); + State = 1823; valueStmt(8); } break; @@ -10119,26 +10064,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1837; + State = 1824; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1839; + State = 1826; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1838; whiteSpace(); + State = 1825; whiteSpace(); } } - State = 1841; Match(AND); - State = 1843; - switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { + State = 1828; Match(AND); + State = 1830; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1842; whiteSpace(); + State = 1829; whiteSpace(); } break; } - State = 1845; valueStmt(6); + State = 1832; valueStmt(6); } break; @@ -10146,26 +10091,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1846; + State = 1833; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1848; + State = 1835; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1847; whiteSpace(); + State = 1834; whiteSpace(); } } - State = 1850; Match(OR); - State = 1852; - switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + State = 1837; Match(OR); + State = 1839; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1851; whiteSpace(); + State = 1838; whiteSpace(); } break; } - State = 1854; valueStmt(5); + State = 1841; valueStmt(5); } break; @@ -10173,26 +10118,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1855; + State = 1842; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1857; + State = 1844; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1856; whiteSpace(); + State = 1843; whiteSpace(); } } - State = 1859; Match(XOR); - State = 1861; - switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { + State = 1846; Match(XOR); + State = 1848; + switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { case 1: { - State = 1860; whiteSpace(); + State = 1847; whiteSpace(); } break; } - State = 1863; valueStmt(4); + State = 1850; valueStmt(4); } break; @@ -10200,26 +10145,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1864; + State = 1851; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1866; + State = 1853; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1865; whiteSpace(); + State = 1852; whiteSpace(); } } - State = 1868; Match(EQV); - State = 1870; - switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { + State = 1855; Match(EQV); + State = 1857; + switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { case 1: { - State = 1869; whiteSpace(); + State = 1856; whiteSpace(); } break; } - State = 1872; valueStmt(3); + State = 1859; valueStmt(3); } break; @@ -10227,34 +10172,34 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1873; + State = 1860; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1875; + State = 1862; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1874; whiteSpace(); + State = 1861; whiteSpace(); } } - State = 1877; Match(IMP); - State = 1879; - switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { + State = 1864; Match(IMP); + State = 1866; + switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { case 1: { - State = 1878; whiteSpace(); + State = 1865; whiteSpace(); } break; } - State = 1881; valueStmt(2); + State = 1868; valueStmt(2); } break; } } } - State = 1886; + State = 1873; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,280,_ctx); + _alt = Interpreter.AdaptivePredict(_input,276,_ctx); } } } @@ -10311,17 +10256,17 @@ public TypeOfIsExpressionContext typeOfIsExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1887; Match(TYPEOF); - State = 1888; whiteSpace(); - State = 1889; valueStmt(0); - State = 1895; - switch ( Interpreter.AdaptivePredict(_input,281,_ctx) ) { + State = 1874; Match(TYPEOF); + State = 1875; whiteSpace(); + State = 1876; valueStmt(0); + State = 1882; + switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { case 1: { - State = 1890; whiteSpace(); - State = 1891; Match(IS); - State = 1892; whiteSpace(); - State = 1893; type(); + State = 1877; whiteSpace(); + State = 1878; Match(IS); + State = 1879; whiteSpace(); + State = 1880; type(); } break; } @@ -10381,16 +10326,16 @@ public VariableStmtContext variableStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1900; + State = 1887; switch (_input.La(1)) { case DIM: { - State = 1897; Match(DIM); + State = 1884; Match(DIM); } break; case STATIC: { - State = 1898; Match(STATIC); + State = 1885; Match(STATIC); } break; case FRIEND: @@ -10398,23 +10343,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1899; visibility(); + State = 1886; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1902; whiteSpace(); - State = 1905; - switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { + State = 1889; whiteSpace(); + State = 1892; + switch ( Interpreter.AdaptivePredict(_input,279,_ctx) ) { case 1: { - State = 1903; Match(WITHEVENTS); - State = 1904; whiteSpace(); + State = 1890; Match(WITHEVENTS); + State = 1891; whiteSpace(); } break; } - State = 1907; variableListStmt(); + State = 1894; variableListStmt(); } } catch (RecognitionException re) { @@ -10474,38 +10419,38 @@ public VariableListStmtContext variableListStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1909; variableSubStmt(); - State = 1920; + State = 1896; variableSubStmt(); + State = 1907; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,286,_ctx); + _alt = Interpreter.AdaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1911; + State = 1898; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1910; whiteSpace(); + State = 1897; whiteSpace(); } } - State = 1913; Match(COMMA); - State = 1915; + State = 1900; Match(COMMA); + State = 1902; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1914; whiteSpace(); + State = 1901; whiteSpace(); } } - State = 1917; variableSubStmt(); + State = 1904; variableSubStmt(); } } } - State = 1922; + State = 1909; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,286,_ctx); + _alt = Interpreter.AdaptivePredict(_input,282,_ctx); } } } @@ -10569,70 +10514,70 @@ public VariableSubStmtContext variableSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1923; identifier(); - State = 1941; - switch ( Interpreter.AdaptivePredict(_input,292,_ctx) ) { + State = 1910; identifier(); + State = 1928; + switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 1925; + State = 1912; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1924; whiteSpace(); + State = 1911; whiteSpace(); } } - State = 1927; Match(LPAREN); - State = 1929; - switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { + State = 1914; Match(LPAREN); + State = 1916; + switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: { - State = 1928; whiteSpace(); + State = 1915; whiteSpace(); } break; } - State = 1935; + State = 1922; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1931; subscripts(); - State = 1933; + State = 1918; subscripts(); + State = 1920; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1932; whiteSpace(); + State = 1919; whiteSpace(); } } } } - State = 1937; Match(RPAREN); - State = 1939; - switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { + State = 1924; Match(RPAREN); + State = 1926; + switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { case 1: { - State = 1938; whiteSpace(); + State = 1925; whiteSpace(); } break; } } break; } - State = 1944; - switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { + State = 1931; + switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { case 1: { - State = 1943; typeHint(); + State = 1930; typeHint(); } break; } - State = 1949; - switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { + State = 1936; + switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { case 1: { - State = 1946; whiteSpace(); - State = 1947; asTypeClause(); + State = 1933; whiteSpace(); + State = 1934; asTypeClause(); } break; } @@ -10691,19 +10636,19 @@ public WhileWendStmtContext whileWendStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1951; Match(WHILE); - State = 1952; whiteSpace(); - State = 1953; valueStmt(0); - State = 1954; endOfStatement(); - State = 1956; - switch ( Interpreter.AdaptivePredict(_input,295,_ctx) ) { + State = 1938; Match(WHILE); + State = 1939; whiteSpace(); + State = 1940; valueStmt(0); + State = 1941; endOfStatement(); + State = 1943; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1955; block(); + State = 1942; block(); } break; } - State = 1958; Match(WEND); + State = 1945; Match(WEND); } } catch (RecognitionException re) { @@ -10760,27 +10705,27 @@ public WidthStmtContext widthStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1960; Match(WIDTH); - State = 1961; whiteSpace(); - State = 1962; fileNumber(); - State = 1964; + State = 1947; Match(WIDTH); + State = 1948; whiteSpace(); + State = 1949; fileNumber(); + State = 1951; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1963; whiteSpace(); + State = 1950; whiteSpace(); } } - State = 1966; Match(COMMA); - State = 1968; - switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { + State = 1953; Match(COMMA); + State = 1955; + switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { case 1: { - State = 1967; whiteSpace(); + State = 1954; whiteSpace(); } break; } - State = 1970; valueStmt(0); + State = 1957; valueStmt(0); } } catch (RecognitionException re) { @@ -10837,19 +10782,19 @@ public WithStmtContext withStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1972; Match(WITH); - State = 1973; whiteSpace(); - State = 1974; withStmtExpression(); - State = 1975; endOfStatement(); - State = 1977; + State = 1959; Match(WITH); + State = 1960; whiteSpace(); + State = 1961; withStmtExpression(); + State = 1962; endOfStatement(); + State = 1964; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1976; block(); + State = 1963; block(); } } - State = 1979; Match(END_WITH); + State = 1966; Match(END_WITH); } } catch (RecognitionException re) { @@ -10894,7 +10839,7 @@ public WithStmtExpressionContext withStmtExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1981; valueStmt(0); + State = 1968; valueStmt(0); } } catch (RecognitionException re) { @@ -10951,31 +10896,31 @@ public WriteStmtContext writeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1983; Match(WRITE); - State = 1984; whiteSpace(); - State = 1985; fileNumber(); - State = 1987; + State = 1970; Match(WRITE); + State = 1971; whiteSpace(); + State = 1972; fileNumber(); + State = 1974; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1986; whiteSpace(); + State = 1973; whiteSpace(); } } - State = 1989; Match(COMMA); - State = 1994; - switch ( Interpreter.AdaptivePredict(_input,301,_ctx) ) { + State = 1976; Match(COMMA); + State = 1981; + switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: { - State = 1991; - switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { + State = 1978; + switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { case 1: { - State = 1990; whiteSpace(); + State = 1977; whiteSpace(); } break; } - State = 1993; outputList(); + State = 1980; outputList(); } break; } @@ -11025,15 +10970,15 @@ public FileNumberContext fileNumber() { try { EnterOuterAlt(_localctx, 1); { - State = 1997; + State = 1984; _la = _input.La(1); if (_la==HASH) { { - State = 1996; Match(HASH); + State = 1983; Match(HASH); } } - State = 1999; valueStmt(0); + State = 1986; valueStmt(0); } } catch (RecognitionException re) { @@ -11082,9 +11027,9 @@ public ExplicitCallStmtContext explicitCallStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 2001; Match(CALL); - State = 2002; whiteSpace(); - State = 2003; explicitCallStmtExpression(); + State = 1988; Match(CALL); + State = 1989; whiteSpace(); + State = 1990; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -11212,88 +11157,88 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { int _la; try { int _alt; - State = 2071; - switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { + State = 2058; + switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 2006; - switch ( Interpreter.AdaptivePredict(_input,303,_ctx) ) { + State = 1993; + switch ( Interpreter.AdaptivePredict(_input,299,_ctx) ) { case 1: { - State = 2005; implicitCallStmt_InStmt(); + State = 1992; implicitCallStmt_InStmt(); } break; } - State = 2008; Match(DOT); - State = 2009; identifier(); - State = 2011; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + State = 1995; Match(DOT); + State = 1996; identifier(); + State = 1998; + switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 2010; typeHint(); + State = 1997; typeHint(); } break; } - State = 2026; - switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { + State = 2013; + switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { case 1: { - State = 2014; + State = 2001; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2013; whiteSpace(); + State = 2000; whiteSpace(); } } - State = 2016; Match(LPAREN); - State = 2018; - switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { + State = 2003; Match(LPAREN); + State = 2005; + switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { case 1: { - State = 2017; whiteSpace(); + State = 2004; whiteSpace(); } break; } - State = 2020; argsCall(); - State = 2022; + State = 2007; argsCall(); + State = 2009; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2021; whiteSpace(); + State = 2008; whiteSpace(); } } - State = 2024; Match(RPAREN); + State = 2011; Match(RPAREN); } break; } - State = 2037; + State = 2024; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,310,_ctx); + _alt = Interpreter.AdaptivePredict(_input,306,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2029; + State = 2016; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2028; whiteSpace(); + State = 2015; whiteSpace(); } } - State = 2031; Match(LPAREN); - State = 2032; subscripts(); - State = 2033; Match(RPAREN); + State = 2018; Match(LPAREN); + State = 2019; subscripts(); + State = 2020; Match(RPAREN); } } } - State = 2039; + State = 2026; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,310,_ctx); + _alt = Interpreter.AdaptivePredict(_input,306,_ctx); } } break; @@ -11302,73 +11247,73 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 2040; identifier(); - State = 2042; - switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { + State = 2027; identifier(); + State = 2029; + switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { case 1: { - State = 2041; typeHint(); + State = 2028; typeHint(); } break; } - State = 2057; - switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { + State = 2044; + switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { case 1: { - State = 2045; + State = 2032; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2044; whiteSpace(); + State = 2031; whiteSpace(); } } - State = 2047; Match(LPAREN); - State = 2049; - switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { + State = 2034; Match(LPAREN); + State = 2036; + switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { case 1: { - State = 2048; whiteSpace(); + State = 2035; whiteSpace(); } break; } - State = 2051; argsCall(); - State = 2053; + State = 2038; argsCall(); + State = 2040; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2052; whiteSpace(); + State = 2039; whiteSpace(); } } - State = 2055; Match(RPAREN); + State = 2042; Match(RPAREN); } break; } - State = 2068; + State = 2055; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,317,_ctx); + _alt = Interpreter.AdaptivePredict(_input,313,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2060; + State = 2047; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2059; whiteSpace(); + State = 2046; whiteSpace(); } } - State = 2062; Match(LPAREN); - State = 2063; subscripts(); - State = 2064; Match(RPAREN); + State = 2049; Match(LPAREN); + State = 2050; subscripts(); + State = 2051; Match(RPAREN); } } } - State = 2070; + State = 2057; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,317,_ctx); + _alt = Interpreter.AdaptivePredict(_input,313,_ctx); } } break; @@ -11417,19 +11362,19 @@ public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); try { - State = 2075; - switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { + State = 2062; + switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2073; iCS_B_MemberProcedureCall(); + State = 2060; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2074; iCS_B_ProcedureCall(); + State = 2061; iCS_B_ProcedureCall(); } break; } @@ -11511,89 +11456,89 @@ public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2078; - switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + State = 2065; + switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { case 1: { - State = 2077; implicitCallStmt_InStmt(); + State = 2064; implicitCallStmt_InStmt(); } break; } - State = 2081; + State = 2068; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2080; whiteSpace(); + State = 2067; whiteSpace(); } } - State = 2083; Match(DOT); - State = 2085; + State = 2070; Match(DOT); + State = 2072; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2084; whiteSpace(); + State = 2071; whiteSpace(); } } - State = 2087; identifier(); - State = 2089; - switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { + State = 2074; identifier(); + State = 2076; + switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { case 1: { - State = 2088; typeHint(); + State = 2075; typeHint(); } break; } - State = 2094; - switch ( Interpreter.AdaptivePredict(_input,324,_ctx) ) { + State = 2081; + switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: { - State = 2091; whiteSpace(); - State = 2092; argsCall(); + State = 2078; whiteSpace(); + State = 2079; argsCall(); } break; } - State = 2100; - switch ( Interpreter.AdaptivePredict(_input,326,_ctx) ) { + State = 2087; + switch ( Interpreter.AdaptivePredict(_input,322,_ctx) ) { case 1: { - State = 2097; + State = 2084; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2096; whiteSpace(); + State = 2083; whiteSpace(); } } - State = 2099; dictionaryCallStmt(); + State = 2086; dictionaryCallStmt(); } break; } - State = 2111; + State = 2098; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,328,_ctx); + _alt = Interpreter.AdaptivePredict(_input,324,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2103; + State = 2090; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2102; whiteSpace(); + State = 2089; whiteSpace(); } } - State = 2105; Match(LPAREN); - State = 2106; subscripts(); - State = 2107; Match(RPAREN); + State = 2092; Match(LPAREN); + State = 2093; subscripts(); + State = 2094; Match(RPAREN); } } } - State = 2113; + State = 2100; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,328,_ctx); + _alt = Interpreter.AdaptivePredict(_input,324,_ctx); } } } @@ -11664,40 +11609,40 @@ public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2114; identifier(); - State = 2118; - switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { + State = 2101; identifier(); + State = 2105; + switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 2115; whiteSpace(); - State = 2116; argsCall(); + State = 2102; whiteSpace(); + State = 2103; argsCall(); } break; } - State = 2129; + State = 2116; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,331,_ctx); + _alt = Interpreter.AdaptivePredict(_input,327,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2121; + State = 2108; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2120; whiteSpace(); + State = 2107; whiteSpace(); } } - State = 2123; Match(LPAREN); - State = 2124; subscripts(); - State = 2125; Match(RPAREN); + State = 2110; Match(LPAREN); + State = 2111; subscripts(); + State = 2112; Match(RPAREN); } } } - State = 2131; + State = 2118; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,331,_ctx); + _alt = Interpreter.AdaptivePredict(_input,327,_ctx); } } } @@ -11750,33 +11695,33 @@ public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); try { - State = 2136; - switch ( Interpreter.AdaptivePredict(_input,332,_ctx) ) { + State = 2123; + switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2132; iCS_S_MembersCall(); + State = 2119; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2133; iCS_S_VariableOrProcedureCall(); + State = 2120; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2134; iCS_S_ProcedureOrArrayCall(); + State = 2121; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2135; iCS_S_DictionaryCall(); + State = 2122; iCS_S_DictionaryCall(); } break; } @@ -11851,55 +11796,55 @@ public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2138; identifier(); - State = 2140; - switch ( Interpreter.AdaptivePredict(_input,333,_ctx) ) { + State = 2125; identifier(); + State = 2127; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2139; typeHint(); + State = 2126; typeHint(); } break; } - State = 2146; - switch ( Interpreter.AdaptivePredict(_input,335,_ctx) ) { + State = 2133; + switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { case 1: { - State = 2143; + State = 2130; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2142; whiteSpace(); + State = 2129; whiteSpace(); } } - State = 2145; dictionaryCallStmt(); + State = 2132; dictionaryCallStmt(); } break; } - State = 2157; + State = 2144; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,337,_ctx); + _alt = Interpreter.AdaptivePredict(_input,333,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2149; + State = 2136; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2148; whiteSpace(); + State = 2135; whiteSpace(); } } - State = 2151; Match(LPAREN); - State = 2152; subscripts(); - State = 2153; Match(RPAREN); + State = 2138; Match(LPAREN); + State = 2139; subscripts(); + State = 2140; Match(RPAREN); } } } - State = 2159; + State = 2146; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,337,_ctx); + _alt = Interpreter.AdaptivePredict(_input,333,_ctx); } } } @@ -11979,102 +11924,102 @@ public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2162; - switch ( Interpreter.AdaptivePredict(_input,338,_ctx) ) { + State = 2149; + switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { case 1: { - State = 2160; identifier(); + State = 2147; identifier(); } break; case 2: { - State = 2161; baseType(); + State = 2148; baseType(); } break; } - State = 2165; + State = 2152; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2164; typeHint(); + State = 2151; typeHint(); } } - State = 2168; + State = 2155; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2167; whiteSpace(); + State = 2154; whiteSpace(); } } - State = 2170; Match(LPAREN); - State = 2172; - switch ( Interpreter.AdaptivePredict(_input,341,_ctx) ) { + State = 2157; Match(LPAREN); + State = 2159; + switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { case 1: { - State = 2171; whiteSpace(); + State = 2158; whiteSpace(); } break; } - State = 2178; - switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { + State = 2165; + switch ( Interpreter.AdaptivePredict(_input,339,_ctx) ) { case 1: { - State = 2174; argsCall(); - State = 2176; + State = 2161; argsCall(); + State = 2163; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2175; whiteSpace(); + State = 2162; whiteSpace(); } } } break; } - State = 2180; Match(RPAREN); - State = 2185; - switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { + State = 2167; Match(RPAREN); + State = 2172; + switch ( Interpreter.AdaptivePredict(_input,341,_ctx) ) { case 1: { - State = 2182; + State = 2169; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2181; whiteSpace(); + State = 2168; whiteSpace(); } } - State = 2184; dictionaryCallStmt(); + State = 2171; dictionaryCallStmt(); } break; } - State = 2196; + State = 2183; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,347,_ctx); + _alt = Interpreter.AdaptivePredict(_input,343,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2188; + State = 2175; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2187; whiteSpace(); + State = 2174; whiteSpace(); } } - State = 2190; Match(LPAREN); - State = 2191; subscripts(); - State = 2192; Match(RPAREN); + State = 2177; Match(LPAREN); + State = 2178; subscripts(); + State = 2179; Match(RPAREN); } } } - State = 2198; + State = 2185; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,347,_ctx); + _alt = Interpreter.AdaptivePredict(_input,343,_ctx); } } } @@ -12154,21 +12099,21 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2201; - switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { + State = 2188; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2199; iCS_S_VariableOrProcedureCall(); + State = 2186; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2200; iCS_S_ProcedureOrArrayCall(); + State = 2187; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2207; + State = 2194; _errHandler.Sync(this); _alt = 1; do { @@ -12176,12 +12121,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2203; iCS_S_MemberCall(); - State = 2205; - switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { + State = 2190; iCS_S_MemberCall(); + State = 2192; + switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { case 1: { - State = 2204; whiteSpace(); + State = 2191; whiteSpace(); } break; } @@ -12191,50 +12136,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2209; + State = 2196; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,350,_ctx); + _alt = Interpreter.AdaptivePredict(_input,346,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2215; - switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + State = 2202; + switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { case 1: { - State = 2212; + State = 2199; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2211; whiteSpace(); + State = 2198; whiteSpace(); } } - State = 2214; dictionaryCallStmt(); + State = 2201; dictionaryCallStmt(); } break; } - State = 2226; + State = 2213; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,354,_ctx); + _alt = Interpreter.AdaptivePredict(_input,350,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2218; + State = 2205; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2217; whiteSpace(); + State = 2204; whiteSpace(); } } - State = 2220; Match(LPAREN); - State = 2221; subscripts(); - State = 2222; Match(RPAREN); + State = 2207; Match(LPAREN); + State = 2208; subscripts(); + State = 2209; Match(RPAREN); } } } - State = 2228; + State = 2215; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,354,_ctx); + _alt = Interpreter.AdaptivePredict(_input,350,_ctx); } } } @@ -12289,31 +12234,31 @@ public ICS_S_MemberCallContext iCS_S_MemberCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2229; + State = 2216; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2231; + State = 2218; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2230; whiteSpace(); + State = 2217; whiteSpace(); } } - State = 2235; - switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { + State = 2222; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { case 1: { - State = 2233; iCS_S_VariableOrProcedureCall(); + State = 2220; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2234; iCS_S_ProcedureOrArrayCall(); + State = 2221; iCS_S_ProcedureOrArrayCall(); } break; } @@ -12365,15 +12310,15 @@ public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2238; + State = 2225; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2237; whiteSpace(); + State = 2224; whiteSpace(); } } - State = 2240; dictionaryCallStmt(); + State = 2227; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12437,94 +12382,94 @@ public ArgsCallContext argsCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2254; + State = 2241; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,361,_ctx); + _alt = Interpreter.AdaptivePredict(_input,357,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2243; - switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { + State = 2230; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { case 1: { - State = 2242; argCall(); + State = 2229; argCall(); } break; } - State = 2246; + State = 2233; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2245; whiteSpace(); + State = 2232; whiteSpace(); } } - State = 2248; + State = 2235; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2250; - switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { + State = 2237; + switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { case 1: { - State = 2249; whiteSpace(); + State = 2236; whiteSpace(); } break; } } } } - State = 2256; + State = 2243; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,361,_ctx); + _alt = Interpreter.AdaptivePredict(_input,357,_ctx); } - State = 2257; argCall(); - State = 2270; + State = 2244; argCall(); + State = 2257; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,365,_ctx); + _alt = Interpreter.AdaptivePredict(_input,361,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2259; + State = 2246; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2258; whiteSpace(); + State = 2245; whiteSpace(); } } - State = 2261; + State = 2248; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2263; - switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + State = 2250; + switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2262; whiteSpace(); + State = 2249; whiteSpace(); } break; } - State = 2266; - switch ( Interpreter.AdaptivePredict(_input,364,_ctx) ) { + State = 2253; + switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { case 1: { - State = 2265; argCall(); + State = 2252; argCall(); } break; } } } } - State = 2272; + State = 2259; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,365,_ctx); + _alt = Interpreter.AdaptivePredict(_input,361,_ctx); } } } @@ -12579,37 +12524,37 @@ public ArgCallContext argCall() { try { EnterOuterAlt(_localctx, 1); { - State = 2274; - switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + State = 2261; + switch ( Interpreter.AdaptivePredict(_input,362,_ctx) ) { case 1: { - State = 2273; Match(LPAREN); + State = 2260; Match(LPAREN); } break; } - State = 2278; - switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + State = 2265; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2276; + State = 2263; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2277; whiteSpace(); + State = 2264; whiteSpace(); } break; } - State = 2281; + State = 2268; _la = _input.La(1); if (_la==RPAREN) { { - State = 2280; Match(RPAREN); + State = 2267; Match(RPAREN); } } - State = 2283; valueStmt(0); + State = 2270; valueStmt(0); } } catch (RecognitionException re) { @@ -12662,21 +12607,21 @@ public DictionaryCallStmtContext dictionaryCallStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 2285; Match(EXCLAMATIONPOINT); - State = 2287; + State = 2272; Match(EXCLAMATIONPOINT); + State = 2274; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2286; whiteSpace(); + State = 2273; whiteSpace(); } } - State = 2289; identifier(); - State = 2291; - switch ( Interpreter.AdaptivePredict(_input,370,_ctx) ) { + State = 2276; identifier(); + State = 2278; + switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { case 1: { - State = 2290; typeHint(); + State = 2277; typeHint(); } break; } @@ -12741,64 +12686,64 @@ public ArgListContext argList() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2293; Match(LPAREN); - State = 2311; - switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + State = 2280; Match(LPAREN); + State = 2298; + switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { case 1: { - State = 2295; + State = 2282; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2294; whiteSpace(); + State = 2281; whiteSpace(); } } - State = 2297; arg(); - State = 2308; + State = 2284; arg(); + State = 2295; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,374,_ctx); + _alt = Interpreter.AdaptivePredict(_input,370,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2299; + State = 2286; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2298; whiteSpace(); + State = 2285; whiteSpace(); } } - State = 2301; Match(COMMA); - State = 2303; + State = 2288; Match(COMMA); + State = 2290; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2302; whiteSpace(); + State = 2289; whiteSpace(); } } - State = 2305; arg(); + State = 2292; arg(); } } } - State = 2310; + State = 2297; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,374,_ctx); + _alt = Interpreter.AdaptivePredict(_input,370,_ctx); } } break; } - State = 2314; + State = 2301; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2313; whiteSpace(); + State = 2300; whiteSpace(); } } - State = 2316; Match(RPAREN); + State = 2303; Match(RPAREN); } } catch (RecognitionException re) { @@ -12865,101 +12810,101 @@ public ArgContext arg() { try { EnterOuterAlt(_localctx, 1); { - State = 2320; - switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { + State = 2307; + switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { case 1: { - State = 2318; Match(OPTIONAL); - State = 2319; whiteSpace(); + State = 2305; Match(OPTIONAL); + State = 2306; whiteSpace(); } break; } - State = 2324; - switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + State = 2311; + switch ( Interpreter.AdaptivePredict(_input,374,_ctx) ) { case 1: { - State = 2322; + State = 2309; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2323; whiteSpace(); + State = 2310; whiteSpace(); } break; } - State = 2328; - switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { + State = 2315; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { case 1: { - State = 2326; Match(PARAMARRAY); - State = 2327; whiteSpace(); + State = 2313; Match(PARAMARRAY); + State = 2314; whiteSpace(); } break; } - State = 2330; identifier(); - State = 2332; + State = 2317; identifier(); + State = 2319; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2331; typeHint(); + State = 2318; typeHint(); } } - State = 2342; - switch ( Interpreter.AdaptivePredict(_input,383,_ctx) ) { + State = 2329; + switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { case 1: { - State = 2335; + State = 2322; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2334; whiteSpace(); + State = 2321; whiteSpace(); } } - State = 2337; Match(LPAREN); - State = 2339; + State = 2324; Match(LPAREN); + State = 2326; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2338; whiteSpace(); + State = 2325; whiteSpace(); } } - State = 2341; Match(RPAREN); + State = 2328; Match(RPAREN); } break; } - State = 2348; - switch ( Interpreter.AdaptivePredict(_input,385,_ctx) ) { + State = 2335; + switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { case 1: { - State = 2345; + State = 2332; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2344; whiteSpace(); + State = 2331; whiteSpace(); } } - State = 2347; asTypeClause(); + State = 2334; asTypeClause(); } break; } - State = 2354; - switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { + State = 2341; + switch ( Interpreter.AdaptivePredict(_input,383,_ctx) ) { case 1: { - State = 2351; + State = 2338; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2350; whiteSpace(); + State = 2337; whiteSpace(); } } - State = 2353; argDefaultValue(); + State = 2340; argDefaultValue(); } break; } @@ -13011,16 +12956,16 @@ public ArgDefaultValueContext argDefaultValue() { try { EnterOuterAlt(_localctx, 1); { - State = 2356; Match(EQ); - State = 2358; - switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { + State = 2343; Match(EQ); + State = 2345; + switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2357; whiteSpace(); + State = 2344; whiteSpace(); } break; } - State = 2360; valueStmt(0); + State = 2347; valueStmt(0); } } catch (RecognitionException re) { @@ -13080,38 +13025,38 @@ public SubscriptsContext subscripts() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2362; subscript(); - State = 2373; + State = 2349; subscript(); + State = 2360; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,391,_ctx); + _alt = Interpreter.AdaptivePredict(_input,387,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2364; + State = 2351; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2363; whiteSpace(); + State = 2350; whiteSpace(); } } - State = 2366; Match(COMMA); - State = 2368; - switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { + State = 2353; Match(COMMA); + State = 2355; + switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { case 1: { - State = 2367; whiteSpace(); + State = 2354; whiteSpace(); } break; } - State = 2370; subscript(); + State = 2357; subscript(); } } } - State = 2375; + State = 2362; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,391,_ctx); + _alt = Interpreter.AdaptivePredict(_input,387,_ctx); } } } @@ -13167,18 +13112,18 @@ public SubscriptContext subscript() { try { EnterOuterAlt(_localctx, 1); { - State = 2381; - switch ( Interpreter.AdaptivePredict(_input,392,_ctx) ) { + State = 2368; + switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { case 1: { - State = 2376; valueStmt(0); - State = 2377; whiteSpace(); - State = 2378; Match(TO); - State = 2379; whiteSpace(); + State = 2363; valueStmt(0); + State = 2364; whiteSpace(); + State = 2365; Match(TO); + State = 2366; whiteSpace(); } break; } - State = 2383; valueStmt(0); + State = 2370; valueStmt(0); } } catch (RecognitionException re) { @@ -13222,12 +13167,12 @@ public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); EnterRule(_localctx, 246, RULE_identifier); try { - State = 2387; + State = 2374; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2385; Match(IDENTIFIER); + State = 2372; Match(IDENTIFIER); } break; case ABS: @@ -13415,7 +13360,7 @@ public IdentifierContext identifier() { case COLLECTION: EnterOuterAlt(_localctx, 2); { - State = 2386; keyword(); + State = 2373; keyword(); } break; default: @@ -13476,38 +13421,38 @@ public AsTypeClauseContext asTypeClause() { try { EnterOuterAlt(_localctx, 1); { - State = 2389; Match(AS); - State = 2391; + State = 2376; Match(AS); + State = 2378; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2390; whiteSpace(); + State = 2377; whiteSpace(); } } - State = 2395; - switch ( Interpreter.AdaptivePredict(_input,395,_ctx) ) { + State = 2382; + switch ( Interpreter.AdaptivePredict(_input,391,_ctx) ) { case 1: { - State = 2393; Match(NEW); - State = 2394; whiteSpace(); + State = 2380; Match(NEW); + State = 2381; whiteSpace(); } break; } - State = 2397; type(); - State = 2402; - switch ( Interpreter.AdaptivePredict(_input,397,_ctx) ) { + State = 2384; type(); + State = 2389; + switch ( Interpreter.AdaptivePredict(_input,393,_ctx) ) { case 1: { - State = 2399; + State = 2386; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2398; whiteSpace(); + State = 2385; whiteSpace(); } } - State = 2401; fieldLength(); + State = 2388; fieldLength(); } break; } @@ -13565,7 +13510,7 @@ public BaseTypeContext baseType() { try { EnterOuterAlt(_localctx, 1); { - State = 2404; + State = 2391; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13621,7 +13566,7 @@ public ComparisonOperatorContext comparisonOperator() { try { EnterOuterAlt(_localctx, 1); { - State = 2406; + State = 2393; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13684,27 +13629,27 @@ public ComplexTypeContext complexType() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2408; identifier(); - State = 2413; + State = 2395; identifier(); + State = 2400; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,398,_ctx); + _alt = Interpreter.AdaptivePredict(_input,394,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2409; + State = 2396; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2410; identifier(); + State = 2397; identifier(); } } } - State = 2415; + State = 2402; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,398,_ctx); + _alt = Interpreter.AdaptivePredict(_input,394,_ctx); } } } @@ -13758,23 +13703,23 @@ public FieldLengthContext fieldLength() { try { EnterOuterAlt(_localctx, 1); { - State = 2416; Match(MULT); - State = 2418; + State = 2403; Match(MULT); + State = 2405; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2417; whiteSpace(); + State = 2404; whiteSpace(); } } - State = 2422; + State = 2409; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2420; numberLiteral(); + State = 2407; numberLiteral(); } break; case ABS: @@ -13962,7 +13907,7 @@ public FieldLengthContext fieldLength() { case IDENTIFIER: case COLLECTION: { - State = 2421; identifier(); + State = 2408; identifier(); } break; default: @@ -14023,29 +13968,29 @@ public LetterrangeContext letterrange() { try { EnterOuterAlt(_localctx, 1); { - State = 2424; identifier(); - State = 2433; - switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { + State = 2411; identifier(); + State = 2420; + switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { case 1: { - State = 2426; + State = 2413; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2425; whiteSpace(); + State = 2412; whiteSpace(); } } - State = 2428; Match(MINUS); - State = 2430; + State = 2415; Match(MINUS); + State = 2417; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2429; whiteSpace(); + State = 2416; whiteSpace(); } } - State = 2432; identifier(); + State = 2419; identifier(); } break; } @@ -14097,7 +14042,7 @@ public LineLabelContext lineLabel() { try { EnterOuterAlt(_localctx, 1); { - State = 2437; + State = 2424; switch (_input.La(1)) { case ABS: case ANY: @@ -14284,7 +14229,7 @@ public LineLabelContext lineLabel() { case IDENTIFIER: case COLLECTION: { - State = 2435; identifier(); + State = 2422; identifier(); } break; case OCTLITERAL: @@ -14292,13 +14237,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2436; numberLiteral(); + State = 2423; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2439; Match(COLON); + State = 2426; Match(COLON); } } catch (RecognitionException re) { @@ -14348,7 +14293,7 @@ public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); EnterRule(_localctx, 262, RULE_literal); try { - State = 2449; + State = 2436; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -14356,49 +14301,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2441; numberLiteral(); + State = 2428; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2442; Match(DATELITERAL); + State = 2429; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2443; Match(STRINGLITERAL); + State = 2430; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2444; Match(TRUE); + State = 2431; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2445; Match(FALSE); + State = 2432; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2446; Match(NOTHING); + State = 2433; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2447; Match(NULL); + State = 2434; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2448; Match(EMPTY); + State = 2435; Match(EMPTY); } break; default: @@ -14449,7 +14394,7 @@ public NumberLiteralContext numberLiteral() { try { EnterOuterAlt(_localctx, 1); { - State = 2451; + State = 2438; _la = _input.La(1); if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14511,42 +14456,42 @@ public TypeContext type() { try { EnterOuterAlt(_localctx, 1); { - State = 2455; - switch ( Interpreter.AdaptivePredict(_input,406,_ctx) ) { + State = 2442; + switch ( Interpreter.AdaptivePredict(_input,402,_ctx) ) { case 1: { - State = 2453; baseType(); + State = 2440; baseType(); } break; case 2: { - State = 2454; complexType(); + State = 2441; complexType(); } break; } - State = 2465; - switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { + State = 2452; + switch ( Interpreter.AdaptivePredict(_input,405,_ctx) ) { case 1: { - State = 2458; + State = 2445; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2457; whiteSpace(); + State = 2444; whiteSpace(); } } - State = 2460; Match(LPAREN); - State = 2462; + State = 2447; Match(LPAREN); + State = 2449; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2461; whiteSpace(); + State = 2448; whiteSpace(); } } - State = 2464; Match(RPAREN); + State = 2451; Match(RPAREN); } break; } @@ -14599,7 +14544,7 @@ public TypeHintContext typeHint() { try { EnterOuterAlt(_localctx, 1); { - State = 2467; + State = 2454; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -14651,7 +14596,7 @@ public VisibilityContext visibility() { try { EnterOuterAlt(_localctx, 1); { - State = 2469; + State = 2456; _la = _input.La(1); if ( !(((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14885,7 +14830,7 @@ public KeywordContext keyword() { try { EnterOuterAlt(_localctx, 1); { - State = 2471; + State = 2458; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)))) != 0) || _la==COLLECTION) ) { _errHandler.RecoverInline(this); @@ -14951,24 +14896,24 @@ public EndOfLineContext endOfLine() { int _la; try { int _alt; - State = 2492; - switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { + State = 2479; + switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2474; + State = 2461; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2473; whiteSpace(); + State = 2460; whiteSpace(); } } - State = 2483; + State = 2470; switch (_input.La(1)) { case NEWLINE: { - State = 2477; + State = 2464; _errHandler.Sync(this); _alt = 1; do { @@ -14976,38 +14921,38 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2476; Match(NEWLINE); + State = 2463; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2479; + State = 2466; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,411,_ctx); + _alt = Interpreter.AdaptivePredict(_input,407,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; case COMMENT: case SINGLEQUOTE: { - State = 2481; comment(); + State = 2468; comment(); } break; case REMCOMMENT: { - State = 2482; remComment(); + State = 2469; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2486; - switch ( Interpreter.AdaptivePredict(_input,413,_ctx) ) { + State = 2473; + switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { case 1: { - State = 2485; whiteSpace(); + State = 2472; whiteSpace(); } break; } @@ -15017,15 +14962,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2489; + State = 2476; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2488; whiteSpace(); + State = 2475; whiteSpace(); } } - State = 2491; annotationList(); + State = 2478; annotationList(); } break; } @@ -15087,36 +15032,36 @@ public EndOfStatementContext endOfStatement() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2504; + State = 2491; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,419,_ctx); + _alt = Interpreter.AdaptivePredict(_input,415,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2502; - switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { + State = 2489; + switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { case 1: { - State = 2494; endOfLine(); + State = 2481; endOfLine(); } break; case 2: { - State = 2496; + State = 2483; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2495; whiteSpace(); + State = 2482; whiteSpace(); } } - State = 2498; Match(COLON); - State = 2500; - switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { + State = 2485; Match(COLON); + State = 2487; + switch ( Interpreter.AdaptivePredict(_input,413,_ctx) ) { case 1: { - State = 2499; whiteSpace(); + State = 2486; whiteSpace(); } break; } @@ -15125,9 +15070,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2506; + State = 2493; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,419,_ctx); + _alt = Interpreter.AdaptivePredict(_input,415,_ctx); } } } @@ -15171,7 +15116,7 @@ public RemCommentContext remComment() { try { EnterOuterAlt(_localctx, 1); { - State = 2507; Match(REMCOMMENT); + State = 2494; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15216,7 +15161,7 @@ public CommentContext comment() { try { EnterOuterAlt(_localctx, 1); { - State = 2509; + State = 2496; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -15271,17 +15216,17 @@ public AnnotationListContext annotationList() { try { EnterOuterAlt(_localctx, 1); { - State = 2511; Match(SINGLEQUOTE); - State = 2513; + State = 2498; Match(SINGLEQUOTE); + State = 2500; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2512; annotation(); + State = 2499; annotation(); } } - State = 2515; + State = 2502; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -15333,13 +15278,13 @@ public AnnotationContext annotation() { try { EnterOuterAlt(_localctx, 1); { - State = 2517; Match(AT); - State = 2518; annotationName(); - State = 2520; - switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { + State = 2504; Match(AT); + State = 2505; annotationName(); + State = 2507; + switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { case 1: { - State = 2519; annotationArgList(); + State = 2506; annotationArgList(); } break; } @@ -15385,7 +15330,7 @@ public AnnotationNameContext annotationName() { try { EnterOuterAlt(_localctx, 1); { - State = 2522; Match(IDENTIFIER); + State = 2509; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -15445,18 +15390,18 @@ public AnnotationArgListContext annotationArgList() { int _la; try { int _alt; - State = 2585; - switch ( Interpreter.AdaptivePredict(_input,437,_ctx) ) { + State = 2572; + switch ( Interpreter.AdaptivePredict(_input,433,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2524; whiteSpace(); - State = 2525; annotationArg(); - State = 2527; - switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { + State = 2511; whiteSpace(); + State = 2512; annotationArg(); + State = 2514; + switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: { - State = 2526; whiteSpace(); + State = 2513; whiteSpace(); } break; } @@ -15466,9 +15411,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2529; whiteSpace(); - State = 2530; annotationArg(); - State = 2539; + State = 2516; whiteSpace(); + State = 2517; annotationArg(); + State = 2526; _errHandler.Sync(this); _alt = 1; do { @@ -15476,39 +15421,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2532; + State = 2519; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2531; whiteSpace(); + State = 2518; whiteSpace(); } } - State = 2534; Match(COMMA); - State = 2536; + State = 2521; Match(COMMA); + State = 2523; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2535; whiteSpace(); + State = 2522; whiteSpace(); } } - State = 2538; annotationArg(); + State = 2525; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2541; + State = 2528; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,425,_ctx); + _alt = Interpreter.AdaptivePredict(_input,421,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2544; - switch ( Interpreter.AdaptivePredict(_input,426,_ctx) ) { + State = 2531; + switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { case 1: { - State = 2543; whiteSpace(); + State = 2530; whiteSpace(); } break; } @@ -15518,38 +15463,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2547; + State = 2534; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2546; whiteSpace(); + State = 2533; whiteSpace(); } } - State = 2549; Match(LPAREN); - State = 2551; + State = 2536; Match(LPAREN); + State = 2538; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2550; whiteSpace(); + State = 2537; whiteSpace(); } } - State = 2553; annotationArg(); - State = 2555; + State = 2540; annotationArg(); + State = 2542; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2554; whiteSpace(); + State = 2541; whiteSpace(); } } - State = 2557; Match(RPAREN); - State = 2559; - switch ( Interpreter.AdaptivePredict(_input,430,_ctx) ) { + State = 2544; Match(RPAREN); + State = 2546; + switch ( Interpreter.AdaptivePredict(_input,426,_ctx) ) { case 1: { - State = 2558; whiteSpace(); + State = 2545; whiteSpace(); } break; } @@ -15559,17 +15504,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2562; + State = 2549; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2561; whiteSpace(); + State = 2548; whiteSpace(); } } - State = 2564; Match(LPAREN); - State = 2565; annotationArg(); - State = 2574; + State = 2551; Match(LPAREN); + State = 2552; annotationArg(); + State = 2561; _errHandler.Sync(this); _alt = 1; do { @@ -15577,48 +15522,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2567; + State = 2554; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2566; whiteSpace(); + State = 2553; whiteSpace(); } } - State = 2569; Match(COMMA); - State = 2571; + State = 2556; Match(COMMA); + State = 2558; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2570; whiteSpace(); + State = 2557; whiteSpace(); } } - State = 2573; annotationArg(); + State = 2560; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2576; + State = 2563; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,434,_ctx); + _alt = Interpreter.AdaptivePredict(_input,430,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2579; + State = 2566; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2578; whiteSpace(); + State = 2565; whiteSpace(); } } - State = 2581; Match(RPAREN); - State = 2583; - switch ( Interpreter.AdaptivePredict(_input,436,_ctx) ) { + State = 2568; Match(RPAREN); + State = 2570; + switch ( Interpreter.AdaptivePredict(_input,432,_ctx) ) { case 1: { - State = 2582; whiteSpace(); + State = 2569; whiteSpace(); } break; } @@ -15667,12 +15612,12 @@ public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); EnterRule(_localctx, 290, RULE_annotationArg); try { - State = 2589; + State = 2576; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2587; Match(IDENTIFIER); + State = 2574; Match(IDENTIFIER); } break; case EMPTY: @@ -15688,7 +15633,7 @@ public AnnotationArgContext annotationArg() { case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2588; literal(); + State = 2575; literal(); } break; default: @@ -15744,7 +15689,7 @@ public WhiteSpaceContext whiteSpace() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2592; + State = 2579; _errHandler.Sync(this); _alt = 1; do { @@ -15752,7 +15697,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2591; + State = 2578; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -15764,9 +15709,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2594; + State = 2581; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,439,_ctx); + _alt = Interpreter.AdaptivePredict(_input,435,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -15817,7 +15762,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA27\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA1A\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -15892,1147 +15837,1141 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\x3\x1F\a\x1F\x324\n\x1F\f\x1F\xE\x1F\x327\v\x1F\x3 \x3 \x3 \x3 \x3!\x3"+ "!\x3!\x5!\x330\n!\x3!\x3!\x3!\x3!\x5!\x336\n!\x3!\x3!\x3\"\x3\"\x3#\x3"+ "#\x3#\x3#\x5#\x340\n#\x3#\x3#\x5#\x344\n#\x3#\x3#\x3$\x3$\x3$\x3$\x3$"+ - "\x3$\x5$\x34E\n$\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x356\n$\x3$\x3$\x3$\x3$\x5"+ - "$\x35C\n$\x3%\x3%\x3%\x3%\x5%\x362\n%\x3%\x3%\x3%\x5%\x367\n%\x3%\x5%"+ - "\x36A\n%\x3%\x3%\x5%\x36E\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5"+ - "%\x37A\n%\x3%\x3%\x5%\x37E\n%\x3%\x3%\x3%\x3%\x5%\x384\n%\x5%\x386\n%"+ - "\x3&\x3&\x3&\x5&\x38B\n&\x3&\x3&\x5&\x38F\n&\x3&\x3&\x5&\x393\n&\x3&\x3"+ - "&\x5&\x397\n&\x3&\x5&\x39A\n&\x3&\x5&\x39D\n&\x3&\x5&\x3A0\n&\x3&\x5&"+ - "\x3A3\n&\x3&\x3&\x5&\x3A7\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3AF\n\'"+ - "\x3\'\x3\'\x5\'\x3B3\n\'\x3\'\x5\'\x3B6\n\'\x3\'\x5\'\x3B9\n\'\x3\'\x3"+ - "\'\x5\'\x3BD\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3"+ - "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3D5\n*\x3*\x3*\a*\x3D9\n*\f"+ - "*\xE*\x3DC\v*\x3*\x5*\x3DF\n*\x3*\x3*\x5*\x3E3\n*\x3+\x3+\x3+\x3+\x3+"+ - "\x3+\x3+\x5+\x3EC\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3F7\n-\x3"+ - ".\x3.\x3.\x5.\x3FC\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30"+ - "\x406\n\x30\x3\x30\x3\x30\x5\x30\x40A\n\x30\x3\x30\x6\x30\x40D\n\x30\r"+ - "\x30\xE\x30\x40E\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x417"+ - "\n\x32\x3\x32\x3\x32\x5\x32\x41B\n\x32\x3\x32\x3\x32\x5\x32\x41F\n\x32"+ - "\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x427\n\x33\x3\x33\x3"+ - "\x33\x5\x33\x42B\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35"+ - "\x3\x35\x3\x35\x3\x35\x5\x35\x437\n\x35\x3\x35\x3\x35\x5\x35\x43B\n\x35"+ - "\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x443\n\x35\x5\x35\x445"+ - "\n\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x44B\n\x36\x3\x36\x3\x36\x5"+ - "\x36\x44F\n\x36\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x455\n\x37\x3\x37\x3"+ - "\x37\x5\x37\x459\n\x37\x3\x37\x3\x37\x5\x37\x45D\n\x37\x3\x37\x3\x37\x3"+ - "\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ - "\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x477\n:\x3;\x3"+ - ";\x3;\x3;\x3;\x3;\x3;\x3;\x5;\x481\n;\x3;\x3;\x5;\x485\n;\x3;\a;\x488"+ - "\n;\f;\xE;\x48B\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x495\n<\x3<\x3"+ - "<\x5<\x499\n<\x3<\a<\x49C\n<\f<\xE<\x49F\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3"+ - "=\x3=\x3=\x3=\x3=\x3=\x5=\x4AD\n=\x3=\x3=\x3=\x5=\x4B2\n=\x3=\x3=\x3="+ - "\x3=\x3=\x3=\x3=\x5=\x4BB\n=\x3=\x3=\x5=\x4BF\n=\x3=\x3=\x5=\x4C3\n=\x3"+ - ">\x3>\x5>\x4C7\n>\x3>\x3>\x5>\x4CB\n>\x3>\x5>\x4CE\n>\a>\x4D0\n>\f>\xE"+ - ">\x4D3\v>\x3>\x5>\x4D6\n>\x3>\x5>\x4D9\n>\x3>\x3>\x5>\x4DD\n>\x3>\x5>"+ - "\x4E0\n>\x6>\x4E2\n>\r>\xE>\x4E3\x5>\x4E6\n>\x3?\x3?\x3?\x5?\x4EB\n?\x3"+ - "?\x3?\x5?\x4EF\n?\x3?\x3?\x5?\x4F3\n?\x3?\x3?\x5?\x4F7\n?\x5?\x4F9\n?"+ - "\x3@\x3@\x3@\x3@\x5@\x4FF\n@\x3@\x3@\x5@\x503\n@\x3@\x5@\x506\n@\x3\x41"+ - "\x3\x41\x3\x41\x5\x41\x50B\n\x41\x3\x41\x3\x41\x5\x41\x50F\n\x41\x3\x41"+ - "\x3\x41\x3\x41\x3\x41\x5\x41\x515\n\x41\x3\x41\x5\x41\x518\n\x41\x3\x41"+ - "\x5\x41\x51B\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x520\n\x41\x3\x41\x3\x41"+ - "\x5\x41\x524\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x52B\n\x42"+ - "\x3\x42\x3\x42\x5\x42\x52F\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x535"+ - "\n\x42\x3\x42\x5\x42\x538\n\x42\x3\x42\x3\x42\x5\x42\x53C\n\x42\x3\x42"+ - "\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x543\n\x43\x3\x43\x3\x43\x5\x43\x547"+ - "\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x54D\n\x43\x3\x43\x5\x43\x550"+ - "\n\x43\x3\x43\x3\x43\x5\x43\x554\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3"+ - "\x44\x3\x44\x5\x44\x55C\n\x44\x3\x44\x3\x44\x5\x44\x560\n\x44\x3\x44\x5"+ - "\x44\x563\n\x44\x3\x44\x5\x44\x566\n\x44\x3\x44\x3\x44\x5\x44\x56A\n\x44"+ - "\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x572\n\x45\x3\x45\x3"+ - "\x45\x5\x45\x576\n\x45\x3\x45\x3\x45\x5\x45\x57A\n\x45\x5\x45\x57C\n\x45"+ - "\x3\x45\x5\x45\x57F\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x585\n\x46"+ - "\x3G\x3G\x3G\x3G\x5G\x58B\nG\x3G\x3G\x5G\x58F\nG\x3G\x3G\x5G\x593\nG\x3"+ - "G\aG\x596\nG\fG\xEG\x599\vG\x3H\x3H\x5H\x59D\nH\x3H\x3H\x5H\x5A1\nH\x3"+ - "H\x3H\x5H\x5A5\nH\x3H\x3H\x3H\x3H\x5H\x5AB\nH\x3I\x3I\x3J\x3J\x3J\x3J"+ - "\x5J\x5B3\nJ\x5J\x5B5\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5C1"+ - "\nM\x3M\x3M\x5M\x5C5\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5CD\nN\x3N\x3N\x5"+ - "N\x5D1\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5D9\nO\x3O\x3O\x5O\x5DD\nO\x3O"+ - "\x3O\x5O\x5E1\nO\x3O\x3O\x5O\x5E5\nO\x3O\x3O\x5O\x5E9\nO\x3O\x3O\x5O\x5ED"+ - "\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5F5\nP\x3P\x3P\x5P\x5F9\nP\x3P\x3P\x3"+ - "Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x604\nQ\fQ\xEQ\x607\vQ\x3Q\x3Q\x3R\x3R\x5"+ - "R\x60D\nR\x3R\x3R\x5R\x611\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x5R"+ - "\x61C\nR\x3S\x3S\x3S\x3S\x3S\x5S\x623\nS\x3T\x3T\x3T\x5T\x628\nT\x3T\x3"+ - "T\x5T\x62C\nT\x3T\aT\x62F\nT\fT\xET\x632\vT\x5T\x634\nT\x3U\x3U\x3U\x3"+ - "U\x5U\x63A\nU\x3U\x3U\x5U\x63E\nU\x3U\x5U\x641\nU\x3V\x3V\x3V\x3V\x5V"+ - "\x647\nV\x3V\x3V\x5V\x64B\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x653\nW\x3W\x3"+ - "W\x5W\x657\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x660\nY\x3Y\x3Y\x5Y\x664"+ - "\nY\x3Y\x3Y\x5Y\x668\nY\x3Y\x3Y\x5Y\x66C\nY\x3Y\x5Y\x66F\nY\x3Y\x3Y\x5"+ - "Y\x673\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x679\nZ\x3Z\x3Z\x5Z\x67D\nZ\x3Z\x3Z\x3["+ - "\x3[\x3[\x5[\x684\n[\x3[\x3[\x3[\x3[\x3[\a[\x68B\n[\f[\xE[\x68E\v[\x3"+ - "[\x3[\x3\\\x3\\\x5\\\x694\n\\\x3\\\x3\\\x5\\\x698\n\\\x3\\\x5\\\x69B\n"+ - "\\\x3\\\x5\\\x69E\n\\\x3\\\x5\\\x6A1\n\\\x3\\\x3\\\x3\\\x5\\\x6A6\n\\"+ - "\x3\\\x3\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6B2\n^\x3^\x3^\x5^\x6B6"+ - "\n^\x3^\x3^\x3^\x3^\x3^\x3^\x5^\x6BE\n^\x5^\x6C0\n^\x3_\x3_\x3_\x5_\x6C5"+ - "\n_\x3_\x3_\x3_\x5_\x6CA\n_\x3_\x3_\x3_\x5_\x6CF\n_\x3_\x3_\x5_\x6D3\n"+ - "_\x3_\x3_\x3_\x3_\x5_\x6D9\n_\x3_\x3_\x3_\x5_\x6DE\n_\x3_\x3_\x3_\x3_"+ - "\x3_\x5_\x6E5\n_\x3_\x3_\x5_\x6E9\n_\x3_\x3_\x3_\x3_\x5_\x6EF\n_\x3_\x3"+ - "_\x5_\x6F3\n_\x3_\x3_\x5_\x6F7\n_\x3_\x3_\x3_\x5_\x6FC\n_\x3_\x3_\x5_"+ - "\x700\n_\x3_\x3_\x3_\x5_\x705\n_\x3_\x3_\x5_\x709\n_\x3_\x3_\x3_\x5_\x70E"+ - "\n_\x3_\x3_\x5_\x712\n_\x3_\x3_\x3_\x5_\x717\n_\x3_\x3_\x5_\x71B\n_\x3"+ - "_\x3_\x3_\x5_\x720\n_\x3_\x3_\x5_\x724\n_\x3_\x3_\x3_\x5_\x729\n_\x3_"+ - "\x3_\x5_\x72D\n_\x3_\x3_\x3_\x5_\x732\n_\x3_\x3_\x5_\x736\n_\x3_\x3_\x3"+ - "_\x5_\x73B\n_\x3_\x3_\x5_\x73F\n_\x3_\x3_\x3_\x5_\x744\n_\x3_\x3_\x5_"+ - "\x748\n_\x3_\x3_\x3_\x5_\x74D\n_\x3_\x3_\x5_\x751\n_\x3_\x3_\x3_\x5_\x756"+ - "\n_\x3_\x3_\x5_\x75A\n_\x3_\a_\x75D\n_\f_\xE_\x760\v_\x3`\x3`\x3`\x3`"+ - "\x3`\x3`\x3`\x3`\x5`\x76A\n`\x3\x61\x3\x61\x3\x61\x5\x61\x76F\n\x61\x3"+ - "\x61\x3\x61\x3\x61\x5\x61\x774\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62"+ - "\x77A\n\x62\x3\x62\x3\x62\x5\x62\x77E\n\x62\x3\x62\a\x62\x781\n\x62\f"+ - "\x62\xE\x62\x784\v\x62\x3\x63\x3\x63\x5\x63\x788\n\x63\x3\x63\x3\x63\x5"+ - "\x63\x78C\n\x63\x3\x63\x3\x63\x5\x63\x790\n\x63\x5\x63\x792\n\x63\x3\x63"+ - "\x3\x63\x5\x63\x796\n\x63\x5\x63\x798\n\x63\x3\x63\x5\x63\x79B\n\x63\x3"+ - "\x63\x3\x63\x3\x63\x5\x63\x7A0\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64"+ - "\x5\x64\x7A7\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x7AF"+ - "\n\x65\x3\x65\x3\x65\x5\x65\x7B3\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3"+ - "\x66\x3\x66\x3\x66\x5\x66\x7BC\n\x66\x3\x66\x3\x66\x3g\x3g\x3h\x3h\x3"+ - "h\x3h\x5h\x7C6\nh\x3h\x3h\x5h\x7CA\nh\x3h\x5h\x7CD\nh\x3i\x5i\x7D0\ni"+ - "\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7D9\nk\x3k\x3k\x3k\x5k\x7DE\nk\x3k\x5"+ - "k\x7E1\nk\x3k\x3k\x5k\x7E5\nk\x3k\x3k\x5k\x7E9\nk\x3k\x3k\x5k\x7ED\nk"+ - "\x3k\x5k\x7F0\nk\x3k\x3k\x3k\x3k\ak\x7F6\nk\fk\xEk\x7F9\vk\x3k\x3k\x5"+ - "k\x7FD\nk\x3k\x5k\x800\nk\x3k\x3k\x5k\x804\nk\x3k\x3k\x5k\x808\nk\x3k"+ - "\x3k\x5k\x80C\nk\x3k\x5k\x80F\nk\x3k\x3k\x3k\x3k\ak\x815\nk\fk\xEk\x818"+ - "\vk\x5k\x81A\nk\x3l\x3l\x5l\x81E\nl\x3m\x5m\x821\nm\x3m\x5m\x824\nm\x3"+ - "m\x3m\x5m\x828\nm\x3m\x3m\x5m\x82C\nm\x3m\x3m\x3m\x5m\x831\nm\x3m\x5m"+ - "\x834\nm\x3m\x5m\x837\nm\x3m\x5m\x83A\nm\x3m\x3m\x3m\x3m\am\x840\nm\f"+ - "m\xEm\x843\vm\x3n\x3n\x3n\x3n\x5n\x849\nn\x3n\x5n\x84C\nn\x3n\x3n\x3n"+ - "\x3n\an\x852\nn\fn\xEn\x855\vn\x3o\x3o\x3o\x3o\x5o\x85B\no\x3p\x3p\x5"+ - "p\x85F\np\x3p\x5p\x862\np\x3p\x5p\x865\np\x3p\x5p\x868\np\x3p\x3p\x3p"+ - "\x3p\ap\x86E\np\fp\xEp\x871\vp\x3q\x3q\x5q\x875\nq\x3q\x5q\x878\nq\x3"+ - "q\x5q\x87B\nq\x3q\x3q\x5q\x87F\nq\x3q\x3q\x5q\x883\nq\x5q\x885\nq\x3q"+ - "\x3q\x5q\x889\nq\x3q\x5q\x88C\nq\x3q\x5q\x88F\nq\x3q\x3q\x3q\x3q\aq\x895"+ - "\nq\fq\xEq\x898\vq\x3r\x3r\x5r\x89C\nr\x3r\x3r\x5r\x8A0\nr\x6r\x8A2\n"+ - "r\rr\xEr\x8A3\x3r\x5r\x8A7\nr\x3r\x5r\x8AA\nr\x3r\x5r\x8AD\nr\x3r\x3r"+ - "\x3r\x3r\ar\x8B3\nr\fr\xEr\x8B6\vr\x3s\x3s\x5s\x8BA\ns\x3s\x3s\x5s\x8BE"+ - "\ns\x3t\x5t\x8C1\nt\x3t\x3t\x3u\x5u\x8C6\nu\x3u\x5u\x8C9\nu\x3u\x3u\x5"+ - "u\x8CD\nu\au\x8CF\nu\fu\xEu\x8D2\vu\x3u\x3u\x5u\x8D6\nu\x3u\x3u\x5u\x8DA"+ - "\nu\x3u\x5u\x8DD\nu\au\x8DF\nu\fu\xEu\x8E2\vu\x3v\x5v\x8E5\nv\x3v\x3v"+ - "\x5v\x8E9\nv\x3v\x5v\x8EC\nv\x3v\x3v\x3w\x3w\x5w\x8F2\nw\x3w\x3w\x5w\x8F6"+ - "\nw\x3x\x3x\x5x\x8FA\nx\x3x\x3x\x5x\x8FE\nx\x3x\x3x\x5x\x902\nx\x3x\a"+ - "x\x905\nx\fx\xEx\x908\vx\x5x\x90A\nx\x3x\x5x\x90D\nx\x3x\x3x\x3y\x3y\x5"+ - "y\x913\ny\x3y\x3y\x5y\x917\ny\x3y\x3y\x5y\x91B\ny\x3y\x3y\x5y\x91F\ny"+ - "\x3y\x5y\x922\ny\x3y\x3y\x5y\x926\ny\x3y\x5y\x929\ny\x3y\x5y\x92C\ny\x3"+ - "y\x5y\x92F\ny\x3y\x5y\x932\ny\x3y\x5y\x935\ny\x3z\x3z\x5z\x939\nz\x3z"+ - "\x3z\x3{\x3{\x5{\x93F\n{\x3{\x3{\x5{\x943\n{\x3{\a{\x946\n{\f{\xE{\x949"+ - "\v{\x3|\x3|\x3|\x3|\x3|\x5|\x950\n|\x3|\x3|\x3}\x3}\x5}\x956\n}\x3~\x3"+ - "~\x5~\x95A\n~\x3~\x3~\x5~\x95E\n~\x3~\x3~\x5~\x962\n~\x3~\x5~\x965\n~"+ - "\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81\a\x81\x96E\n\x81\f\x81"+ - "\xE\x81\x971\v\x81\x3\x82\x3\x82\x5\x82\x975\n\x82\x3\x82\x3\x82\x5\x82"+ - "\x979\n\x82\x3\x83\x3\x83\x5\x83\x97D\n\x83\x3\x83\x3\x83\x5\x83\x981"+ - "\n\x83\x3\x83\x5\x83\x984\n\x83\x3\x84\x3\x84\x5\x84\x988\n\x84\x3\x84"+ - "\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x5\x85"+ - "\x994\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87\x99A\n\x87\x3\x87\x5\x87"+ - "\x99D\n\x87\x3\x87\x3\x87\x5\x87\x9A1\n\x87\x3\x87\x5\x87\x9A4\n\x87\x3"+ - "\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B\x5\x8B\x9AD\n\x8B\x3\x8B"+ - "\x6\x8B\x9B0\n\x8B\r\x8B\xE\x8B\x9B1\x3\x8B\x3\x8B\x5\x8B\x9B6\n\x8B\x3"+ - "\x8B\x5\x8B\x9B9\n\x8B\x3\x8B\x5\x8B\x9BC\n\x8B\x3\x8B\x5\x8B\x9BF\n\x8B"+ - "\x3\x8C\x3\x8C\x5\x8C\x9C3\n\x8C\x3\x8C\x3\x8C\x5\x8C\x9C7\n\x8C\a\x8C"+ - "\x9C9\n\x8C\f\x8C\xE\x8C\x9CC\v\x8C\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8F"+ - "\x3\x8F\x6\x8F\x9D4\n\x8F\r\x8F\xE\x8F\x9D5\x3\x90\x3\x90\x3\x90\x5\x90"+ - "\x9DB\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92\x5\x92\x9E2\n\x92\x3\x92"+ - "\x3\x92\x3\x92\x5\x92\x9E7\n\x92\x3\x92\x3\x92\x5\x92\x9EB\n\x92\x3\x92"+ - "\x6\x92\x9EE\n\x92\r\x92\xE\x92\x9EF\x3\x92\x5\x92\x9F3\n\x92\x3\x92\x5"+ - "\x92\x9F6\n\x92\x3\x92\x3\x92\x5\x92\x9FA\n\x92\x3\x92\x3\x92\x5\x92\x9FE"+ - "\n\x92\x3\x92\x3\x92\x5\x92\xA02\n\x92\x3\x92\x5\x92\xA05\n\x92\x3\x92"+ - "\x3\x92\x3\x92\x5\x92\xA0A\n\x92\x3\x92\x3\x92\x5\x92\xA0E\n\x92\x3\x92"+ - "\x6\x92\xA11\n\x92\r\x92\xE\x92\xA12\x3\x92\x5\x92\xA16\n\x92\x3\x92\x3"+ - "\x92\x5\x92\xA1A\n\x92\x5\x92\xA1C\n\x92\x3\x93\x3\x93\x5\x93\xA20\n\x93"+ - "\x3\x94\x6\x94\xA23\n\x94\r\x94\xE\x94\xA24\x3\x94\x2\x2\x3\xBC\x95\x2"+ - "\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2"+ - "\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34"+ - "\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2"+ - "P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2"+ - "n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2"+ - "\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2"+ - "\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2"+ - "\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2"+ - "\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2"+ - "\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2"+ - "\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2"+ - "\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112"+ - "\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124"+ - "\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3"+ - "\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4"+ - "\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))++\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0"+ - "\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7"+ - "\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3\x2?@\r\x2\x13\x13\x1F >>\x41\x41J"+ - "J\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32"+ - "\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B"+ - "\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100"+ - "\x102\x102\xBB8\x2\x128\x3\x2\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2"+ - "\x2\x2\b\x152\x3\x2\x2\x2\n\x164\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180"+ - "\x3\x2\x2\x2\x10\x195\x3\x2\x2\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2"+ - "\x2\x2\x16\x1B1\x3\x2\x2\x2\x18\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2"+ - "\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3"+ - "\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258"+ - "\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2"+ - "\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD"+ - "\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F"+ - "\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2"+ - "\x2\x2H\x35D\x3\x2\x2\x2J\x38A\x3\x2\x2\x2L\x3AA\x3\x2\x2\x2N\x3C0\x3"+ - "\x2\x2\x2P\x3C4\x3\x2\x2\x2R\x3E2\x3\x2\x2\x2T\x3E4\x3\x2\x2\x2V\x3ED"+ - "\x3\x2\x2\x2X\x3EF\x3\x2\x2\x2Z\x3F8\x3\x2\x2\x2\\\x3FD\x3\x2\x2\x2^\x401"+ - "\x3\x2\x2\x2`\x410\x3\x2\x2\x2\x62\x416\x3\x2\x2\x2\x64\x422\x3\x2\x2"+ - "\x2\x66\x42E\x3\x2\x2\x2h\x432\x3\x2\x2\x2j\x446\x3\x2\x2\x2l\x452\x3"+ - "\x2\x2\x2n\x460\x3\x2\x2\x2p\x464\x3\x2\x2\x2r\x46C\x3\x2\x2\x2t\x478"+ - "\x3\x2\x2\x2v\x48C\x3\x2\x2\x2x\x4A0\x3\x2\x2\x2z\x4E5\x3\x2\x2\x2|\x4F8"+ - "\x3\x2\x2\x2~\x4FA\x3\x2\x2\x2\x80\x50A\x3\x2\x2\x2\x82\x52A\x3\x2\x2"+ - "\x2\x84\x542\x3\x2\x2\x2\x86\x557\x3\x2\x2\x2\x88\x56D\x3\x2\x2\x2\x8A"+ - "\x580\x3\x2\x2\x2\x8C\x586\x3\x2\x2\x2\x8E\x59A\x3\x2\x2\x2\x90\x5AC\x3"+ - "\x2\x2\x2\x92\x5AE\x3\x2\x2\x2\x94\x5B6\x3\x2\x2\x2\x96\x5B8\x3\x2\x2"+ - "\x2\x98\x5BC\x3\x2\x2\x2\x9A\x5C8\x3\x2\x2\x2\x9C\x5D4\x3\x2\x2\x2\x9E"+ - "\x5F0\x3\x2\x2\x2\xA0\x5FC\x3\x2\x2\x2\xA2\x61B\x3\x2\x2\x2\xA4\x61D\x3"+ - "\x2\x2\x2\xA6\x633\x3\x2\x2\x2\xA8\x635\x3\x2\x2\x2\xAA\x642\x3\x2\x2"+ - "\x2\xAC\x64E\x3\x2\x2\x2\xAE\x65A\x3\x2\x2\x2\xB0\x65F\x3\x2\x2\x2\xB2"+ - "\x676\x3\x2\x2\x2\xB4\x683\x3\x2\x2\x2\xB6\x691\x3\x2\x2\x2\xB8\x6A9\x3"+ - "\x2\x2\x2\xBA\x6AD\x3\x2\x2\x2\xBC\x6EE\x3\x2\x2\x2\xBE\x761\x3\x2\x2"+ - "\x2\xC0\x76E\x3\x2\x2\x2\xC2\x777\x3\x2\x2\x2\xC4\x785\x3\x2\x2\x2\xC6"+ - "\x7A1\x3\x2\x2\x2\xC8\x7AA\x3\x2\x2\x2\xCA\x7B6\x3\x2\x2\x2\xCC\x7BF\x3"+ - "\x2\x2\x2\xCE\x7C1\x3\x2\x2\x2\xD0\x7CF\x3\x2\x2\x2\xD2\x7D3\x3\x2\x2"+ - "\x2\xD4\x819\x3\x2\x2\x2\xD6\x81D\x3\x2\x2\x2\xD8\x820\x3\x2\x2\x2\xDA"+ - "\x844\x3\x2\x2\x2\xDC\x85A\x3\x2\x2\x2\xDE\x85C\x3\x2\x2\x2\xE0\x874\x3"+ - "\x2\x2\x2\xE2\x89B\x3\x2\x2\x2\xE4\x8B7\x3\x2\x2\x2\xE6\x8C0\x3\x2\x2"+ - "\x2\xE8\x8D0\x3\x2\x2\x2\xEA\x8E4\x3\x2\x2\x2\xEC\x8EF\x3\x2\x2\x2\xEE"+ - "\x8F7\x3\x2\x2\x2\xF0\x912\x3\x2\x2\x2\xF2\x936\x3\x2\x2\x2\xF4\x93C\x3"+ - "\x2\x2\x2\xF6\x94F\x3\x2\x2\x2\xF8\x955\x3\x2\x2\x2\xFA\x957\x3\x2\x2"+ - "\x2\xFC\x966\x3\x2\x2\x2\xFE\x968\x3\x2\x2\x2\x100\x96A\x3\x2\x2\x2\x102"+ - "\x972\x3\x2\x2\x2\x104\x97A\x3\x2\x2\x2\x106\x987\x3\x2\x2\x2\x108\x993"+ - "\x3\x2\x2\x2\x10A\x995\x3\x2\x2\x2\x10C\x999\x3\x2\x2\x2\x10E\x9A5\x3"+ - "\x2\x2\x2\x110\x9A7\x3\x2\x2\x2\x112\x9A9\x3\x2\x2\x2\x114\x9BE\x3\x2"+ - "\x2\x2\x116\x9CA\x3\x2\x2\x2\x118\x9CD\x3\x2\x2\x2\x11A\x9CF\x3\x2\x2"+ - "\x2\x11C\x9D1\x3\x2\x2\x2\x11E\x9D7\x3\x2\x2\x2\x120\x9DC\x3\x2\x2\x2"+ - "\x122\xA1B\x3\x2\x2\x2\x124\xA1F\x3\x2\x2\x2\x126\xA22\x3\x2\x2\x2\x128"+ - "\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5"+ - "\x126\x94\x2\x12C\x12B\x3\x2\x2\x2\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3"+ - "\x2\x2\x2\x12E\x132\x5\x116\x8C\x2\x12F\x130\x5\x6\x4\x2\x130\x131\x5"+ - "\x116\x8C\x2\x131\x133\x3\x2\x2\x2\x132\x12F\x3\x2\x2\x2\x132\x133\x3"+ - "\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134\x136\x5\b\x5\x2\x135\x134\x3\x2\x2"+ - "\x2\x135\x136\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x5\x116\x8C"+ - "\x2\x138\x13A\x5\f\a\x2\x139\x138\x3\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A"+ - "\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C"+ - "\x3\x2\x2\x2\x13D\x13E\x3\x2\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5"+ - "\x116\x8C\x2\x140\x142\x5\x14\v\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3"+ - "\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x145\x5\x116\x8C\x2\x144\x146\x5"+ - "\x126\x94\x2\x145\x144\x3\x2\x2\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2"+ - "\x2\x2\x147\x148\a\xD7\x2\x2\x148\x149\x5\x126\x94\x2\x149\x14B\x5\x10A"+ - "\x86\x2\x14A\x14C\x5\x126\x94\x2\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2"+ - "\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2"+ - "\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x151\x5\x116\x8C"+ - "\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;\x2\x2\x153\x154\x5\x126\x94\x2\x154"+ - "\x155\a\x103\x2\x2\x155\x156\x5\x126\x94\x2\x156\x158\x5\xF8}\x2\x157"+ - "\x159\x5\x126\x94\x2\x158\x157\x3\x2\x2\x2\x158\x159\x3\x2\x2\x2\x159"+ - "\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C"+ - "\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3"+ - "\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160\x15E\x3\x2\x2\x2\x160\x161\x3\x2"+ - "\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163\ai\x2\x2\x163\t\x3\x2\x2\x2\x164"+ - "\x168\x5\xF8}\x2\x165\x167\x5\x126\x94\x2\x166\x165\x3\x2\x2\x2\x167\x16A"+ - "\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16B\x3"+ - "\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126"+ - "\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2"+ - "\x2\x16F\x170\x3\x2\x2\x2\x170\x172\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2"+ - "\x172\x175\x5\x108\x85\x2\x173\x174\a*\x2\x2\x174\x176\x5\x10A\x86\x2"+ - "\x175\x173\x3\x2\x2\x2\x175\x176\x3\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177"+ - "\x178\x5\x116\x8C\x2\x178\v\x3\x2\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B"+ - "\x5\x116\x8C\x2\x17B\x17D\x3\x2\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E"+ - "\x3\x2\x2\x2\x17E\x17C\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2"+ - "\x2\x2\x180\x186\x5\x12\n\x2\x181\x182\x5\x116\x8C\x2\x182\x183\x5\x12"+ - "\n\x2\x183\x185\x3\x2\x2\x2\x184\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2"+ - "\x186\x184\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188"+ - "\x186\x3\x2\x2\x2\x189\x18A\x5\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C"+ - "\a\xA0\x2\x2\x18C\x18D\x5\x126\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196"+ - "\x3\x2\x2\x2\x18F\x190\a\xA2\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192"+ - "\t\x2\x2\x2\x192\x196\x3\x2\x2\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3"+ - "\x2\x2\x195\x18B\x3\x2\x2\x2\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2"+ - "\x2\x195\x194\x3\x2\x2\x2\x196\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198"+ - "\x1A0\x5\x38\x1D\x2\x199\x1A0\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5"+ - "\\/\x2\x19C\x1A0\x5\xC0\x61\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4"+ - "[\x2\x19F\x197\x3\x2\x2\x2\x19F\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2"+ - "\x19F\x19A\x3\x2\x2\x2\x19F\x19B\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F"+ - "\x19D\x3\x2\x2\x2\x19F\x19E\x3\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7"+ - "\x5\x16\f\x2\x1A2\x1A3\x5\x116\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6"+ - "\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3"+ - "\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2"+ - "\x2\x2\x1AA\x1AB\x5\x116\x8C\x2\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2"+ - "\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43"+ - "\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1"+ - "\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17"+ - "\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7"+ - "\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3"+ - "\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126"+ - "\x94\x2\x1BB\x1BA\x3\x2\x2\x2\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2"+ - "\x2\x1BD\x1C8\x5\x108\x85\x2\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2"+ - "\x2\x2\x1BF\x1C0\x3\x2\x2\x2\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2"+ - "\x1C2\x1C4\x5\x126\x94\x2\x1C3\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2"+ - "\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2"+ - "\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9"+ - "\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD"+ - "\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC"+ - "\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3"+ - "\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116"+ - "\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E"+ - "\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9\x219\x5 \x11\x2\x1DA\x219\x5\"\x12"+ - "\x2\x1DB\x219\x5$\x13\x2\x1DC\x219\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE"+ - "\x219\x5,\x17\x2\x1DF\x219\x5\x32\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1"+ - "\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4"+ - "\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6\x219\x5\xD2j\x2\x1E7\x219\x5"+ - "\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5H%\x2\x1EA\x219\x5L\'\x2\x1EB"+ - "\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF"+ - "\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2\x1F1\x219\x5\x62\x32\x2\x1F2\x219"+ - "\x5\x64\x33\x2\x1F3\x219\x5\x66\x34\x2\x1F4\x219\x5h\x35\x2\x1F5\x219"+ - "\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7\x219\x5n\x38\x2\x1F8\x219\x5p\x39"+ - "\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t;\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5"+ - "x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5\x86\x44\x2\x1FF\x219\x5\x88\x45\x2"+ - "\x200\x219\x5\x8A\x46\x2\x201\x219\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203"+ - "\x219\x5\x92J\x2\x204\x219\x5\x94K\x2\x205\x219\x5\x96L\x2\x206\x219\x5"+ - "\x98M\x2\x207\x219\x5\x9AN\x2\x208\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2"+ - "\x20A\x219\x5\xA0Q\x2\x20B\x219\x5\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219"+ - "\x5\xACW\x2\x20E\x219\x5\xAEX\x2\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8"+ - "]\x2\x211\x219\x5\xBA^\x2\x212\x219\x5\xC0\x61\x2\x213\x219\x5\xC6\x64"+ - "\x2\x214\x219\x5\xC8\x65\x2\x215\x219\x5\xCA\x66\x2\x216\x219\x5\xCEh"+ - "\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218"+ - "\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB"+ - "\x3\x2\x2\x2\x218\x1DC\x3\x2\x2\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3"+ - "\x2\x2\x2\x218\x1DF\x3\x2\x2\x2\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2"+ - "\x2\x2\x218\x1E2\x3\x2\x2\x2\x218\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2"+ - "\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2"+ - "\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218"+ - "\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE"+ - "\x3\x2\x2\x2\x218\x1EF\x3\x2\x2\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3"+ - "\x2\x2\x2\x218\x1F2\x3\x2\x2\x2\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2"+ - "\x2\x2\x218\x1F5\x3\x2\x2\x2\x218\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2"+ - "\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2"+ - "\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218"+ - "\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201"+ - "\x3\x2\x2\x2\x218\x202\x3\x2\x2\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3"+ - "\x2\x2\x2\x218\x205\x3\x2\x2\x2\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2"+ - "\x2\x2\x218\x208\x3\x2\x2\x2\x218\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2"+ - "\x2\x218\x20B\x3\x2\x2\x2\x218\x20C\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2"+ - "\x218\x20E\x3\x2\x2\x2\x218\x20F\x3\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218"+ - "\x211\x3\x2\x2\x2\x218\x212\x3\x2\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214"+ - "\x3\x2\x2\x2\x218\x215\x3\x2\x2\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3"+ - "\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A\x21B\a\x38\x2\x2\x21B\x21C\x5\x126"+ - "\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F\x5\x126\x94\x2\x21E\x21D\x3\x2"+ - "\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x222\a)\x2\x2"+ - "\x221\x223\x5\x126\x94\x2\x222\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2"+ - "\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC_\x2\x225\x21E\x3\x2\x2\x2\x225"+ - "\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2\x227\x228\a<\x2\x2\x228!\x3\x2"+ - "\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B\x5\x126\x94\x2\x22B\x22C\x5\xBC"+ - "_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45\x2\x2\x22E\x22F\x5\x126\x94\x2"+ - "\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2\x231\x241\aG\x2\x2\x232\x233\x5"+ - "\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234\x236\x5\x126\x94\x2\x235\x234\x3"+ - "\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236\x237\x3\x2\x2\x2\x237\x239\a)\x2"+ - "\x2\x238\x23A\x5\x126\x94\x2\x239\x238\x3\x2\x2\x2\x239\x23A\x3\x2\x2"+ - "\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D"+ - "\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242"+ - "\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2\x241\x232\x3\x2\x2\x2\x241\x242\x3"+ - "\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244\x5\x110\x89\x2\x244\x245\x5\x126"+ - "\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243\x3\x2\x2\x2\x246\x247\x3\x2\x2"+ - "\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH\x2\x2\x249\x24A\x5\x126\x94\x2"+ - "\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C"+ - "\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2\x2\x24E\x250\a)\x2\x2\x24F\x251\x5"+ - "\x126\x94\x2\x250\x24F\x3\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x252\x3"+ - "\x2\x2\x2\x252\x254\x5*\x16\x2\x253\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2"+ - "\x2\x255\x253\x3\x2\x2\x2\x255\x256\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257"+ - "\x255\x3\x2\x2\x2\x258\x25A\x5\xF8}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259"+ - "\x3\x2\x2\x2\x25A\x25B\x3\x2\x2\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5"+ - "\x126\x94\x2\x25D\x25E\x5\xFA~\x2\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2"+ - "\x2\x2\x25F\x260\x3\x2\x2\x2\x260\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94"+ - "\x2\x262\x261\x3\x2\x2\x2\x262\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2"+ - "\x264\x266\a\xE2\x2\x2\x265\x267\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2"+ - "\x266\x267\x3\x2\x2\x2\x267\x268\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269"+ - "+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3"+ - "\x2\x2\x2\x26C\x26D\x3\x2\x2\x2\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2"+ - "\x2\x2\x26F\x271\x5\x126\x94\x2\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2"+ - "\x2\x2\x271\x272\x3\x2\x2\x2\x272\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274"+ - "\x275\x5\x110\x89\x2\x275\x276\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277"+ - "\x274\x3\x2\x2\x2\x277\x278\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A"+ - "\aK\x2\x2\x27A\x27D\x5\x126\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5"+ - "\x126\x94\x2\x27D\x27B\x3\x2\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3"+ - "\x2\x2\x2\x27F\x281\ax\x2\x2\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2"+ - "\x2\x2\x281\x282\x3\x2\x2\x2\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2"+ - "\x2\x284\x27F\x3\x2\x2\x2\x284\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2"+ - "\x286\x287\x5\x126\x94\x2\x287\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2"+ - "\x289\x288\x3\x2\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B"+ - "\x28C\x5\x126\x94\x2\x28C\x28D\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E"+ - "\x294\a\xF5\x2\x2\x28F\x290\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291"+ - "\x292\x5\x126\x94\x2\x292\x293\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294"+ - "\x28F\x3\x2\x2\x2\x294\x295\x3\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298"+ - "\x5\x126\x94\x2\x297\x296\x3\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299"+ - "\x3\x2\x2\x2\x299\x29B\x5\xEEx\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2"+ - "\x2\x2\x29B\x29F\x3\x2\x2\x2\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA"+ - "~\x2\x29E\x2A0\x3\x2\x2\x2\x29F\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2"+ - "\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3"+ - "\x2AE\x5\x104\x83\x2\x2A4\x2A6\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5"+ - "\x2A6\x3\x2\x2\x2\x2A6\x2A7\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5"+ - "\x126\x94\x2\x2A9\x2A8\x3\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3"+ - "\x2\x2\x2\x2AB\x2AD\x5\x104\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3"+ - "\x2\x2\x2\x2AE\x2AC\x3\x2\x2\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2"+ - "\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2"+ - "\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5"+ - "\x2B6\x3\x2\x2\x2\x2B6\x2D8\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5"+ - "\x126\x94\x2\x2B9\x2BB\x5\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3"+ - "\x2\x2\x2\x2BB\x2BC\x3\x2\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2"+ - "\x2\x2BE\x2C0\x5\x126\x94\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2"+ - "\x2\x2C0\x2C1\x3\x2\x2\x2\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3"+ - "\x2C4\aY\x2\x2\x2C4\x2C5\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8"+ - "\x5\x126\x94\x2\x2C7\x2C6\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9"+ - "\x3\x2\x2\x2\x2C9\x2CB\a)\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3"+ - "\x2\x2\x2\x2CB\x2CC\x3\x2\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC"+ - "_\x2\x2CE\x2D0\x5\x126\x94\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2"+ - "\x2\x2D0\x2D1\x3\x2\x2\x2\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2"+ - "\x2D3\x2D2\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5"+ - "\x2D6\x5\xBC_\x2\x2D6\x2D8\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7"+ - "\x3\x2\x2\x2\x2D7\x2C3\x3\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2"+ - "\x2\x2DA\x2DC\x5\x116\x8C\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2"+ - "\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2"+ - "\x2DF\x2F7\x3\x2\x2\x2\x2E0\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2"+ - "\x2E3\t\x4\x2\x2\x2E3\x2E4\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7"+ - "\x5\x116\x8C\x2\x2E6\x2E8\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8"+ - "\x3\x2\x2\x2\x2E8\x2E9\x3\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3"+ - "\x2\x2\x2\x2EB\x2EC\a[\x2\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A"+ - "\xE\x2\x2EE\x2ED\x3\x2\x2\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2"+ - "\x2\x2F0\x2F1\a\x88\x2\x2\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2"+ - "\x2F3\x2F4\x5\x126\x94\x2\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6"+ - "\x2D9\x3\x2\x2\x2\x2F6\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35"+ - "\x3\x2\x2\x2\x2F8\x2F9\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110"+ - "\x89\x2\x2FB\x2FC\x5\x126\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2"+ - "\x2\x2\x2FD\x2FE\x3\x2\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2"+ - "\x300\x301\x5\x126\x94\x2\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2"+ - "\x303\x305\x5:\x1E\x2\x304\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306"+ - "\x304\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306"+ - "\x3\x2\x2\x2\x309\x30A\a\x61\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8"+ - "}\x2\x30C\x30E\x5\x126\x94\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2"+ - "\x2\x30E\x30F\x3\x2\x2\x2\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94"+ - "\x2\x311\x310\x3\x2\x2\x2\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2"+ - "\x313\x315\x5\xBC_\x2\x314\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315"+ - "\x316\x3\x2\x2\x2\x316\x317\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319"+ - "\al\x2\x2\x319\x31A\x5\x126\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126"+ - "\x94\x2\x31C\x31B\x3\x2\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2"+ - "\x2\x31E\x320\a)\x2\x2\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2"+ - "\x320\x321\x3\x2\x2\x2\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323"+ - "\x31C\x3\x2\x2\x2\x324\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326"+ - "\x3\x2\x2\x2\x326=\x3\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2"+ - "\x329\x32A\x5\x126\x94\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C"+ - "\x32D\x5\x110\x89\x2\x32D\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F"+ - "\x32C\x3\x2\x2\x2\x32F\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332"+ - "\an\x2\x2\x332\x333\x5\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126"+ - "\x94\x2\x335\x334\x3\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2"+ - "\x2\x337\x338\x5\xEEx\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A"+ - "\x43\x3\x2\x2\x2\x33B\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F"+ - "\x5\xBC_\x2\x33E\x340\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3"+ - "\x2\x2\x2\x340\x341\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94"+ - "\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2"+ - "\x345\x346\x5\xBC_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349"+ - "\x5\x126\x94\x2\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34D"+ - "\x5\xF8}\x2\x34C\x34E\x5\x10E\x88\x2\x34D\x34C\x3\x2\x2\x2\x34D\x34E\x3"+ - "\x2\x2\x2\x34E\x34F\x3\x2\x2\x2\x34F\x350\x5\x126\x94\x2\x350\x351\a\x80"+ - "\x2\x2\x351\x352\x5\x126\x94\x2\x352\x353\x5\xBC_\x2\x353\x355\x5\x116"+ - "\x8C\x2\x354\x356\x5\x1A\xE\x2\x355\x354\x3\x2\x2\x2\x355\x356\x3\x2\x2"+ - "\x2\x356\x357\x3\x2\x2\x2\x357\x35B\a\x96\x2\x2\x358\x359\x5\x126\x94"+ - "\x2\x359\x35A\x5\xF8}\x2\x35A\x35C\x3\x2\x2\x2\x35B\x358\x3\x2\x2\x2\x35B"+ - "\x35C\x3\x2\x2\x2\x35CG\x3\x2\x2\x2\x35D\x35E\aw\x2\x2\x35E\x35F\x5\x126"+ - "\x94\x2\x35F\x361\x5\xF8}\x2\x360\x362\x5\x10E\x88\x2\x361\x360\x3\x2"+ - "\x2\x2\x361\x362\x3\x2\x2\x2\x362\x366\x3\x2\x2\x2\x363\x364\x5\x126\x94"+ - "\x2\x364\x365\x5\xFA~\x2\x365\x367\x3\x2\x2\x2\x366\x363\x3\x2\x2\x2\x366"+ - "\x367\x3\x2\x2\x2\x367\x369\x3\x2\x2\x2\x368\x36A\x5\x126\x94\x2\x369"+ - "\x368\x3\x2\x2\x2\x369\x36A\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36D"+ - "\a\xE2\x2\x2\x36C\x36E\x5\x126\x94\x2\x36D\x36C\x3\x2\x2\x2\x36D\x36E"+ - "\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x5\xBC_\x2\x370\x371\x5\x126"+ - "\x94\x2\x371\x372\a\xCF\x2\x2\x372\x373\x5\x126\x94\x2\x373\x379\x5\xBC"+ - "_\x2\x374\x375\x5\x126\x94\x2\x375\x376\a\xC7\x2\x2\x376\x377\x5\x126"+ - "\x94\x2\x377\x378\x5\xBC_\x2\x378\x37A\x3\x2\x2\x2\x379\x374\x3\x2\x2"+ - "\x2\x379\x37A\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37D\x5\x116\x8C"+ - "\x2\x37C\x37E\x5\x1A\xE\x2\x37D\x37C\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2"+ - "\x37E\x37F\x3\x2\x2\x2\x37F\x385\a\x96\x2\x2\x380\x381\x5\x126\x94\x2"+ - "\x381\x383\x5\xF8}\x2\x382\x384\x5\x10E\x88\x2\x383\x382\x3\x2\x2\x2\x383"+ - "\x384\x3\x2\x2\x2\x384\x386\x3\x2\x2\x2\x385\x380\x3\x2\x2\x2\x385\x386"+ - "\x3\x2\x2\x2\x386I\x3\x2\x2\x2\x387\x388\x5\x110\x89\x2\x388\x389\x5\x126"+ - "\x94\x2\x389\x38B\x3\x2\x2\x2\x38A\x387\x3\x2\x2\x2\x38A\x38B\x3\x2\x2"+ - "\x2\x38B\x38E\x3\x2\x2\x2\x38C\x38D\a\xC6\x2\x2\x38D\x38F\x5\x126\x94"+ - "\x2\x38E\x38C\x3\x2\x2\x2\x38E\x38F\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2"+ - "\x390\x392\ax\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392"+ - "\x393\x3\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xF8}\x2\x395\x397"+ - "\x5\x10E\x88\x2\x396\x395\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x39C"+ - "\x3\x2\x2\x2\x398\x39A\x5\x126\x94\x2\x399\x398\x3\x2\x2\x2\x399\x39A"+ - "\x3\x2\x2\x2\x39A\x39B\x3\x2\x2\x2\x39B\x39D\x5\xEEx\x2\x39C\x399\x3\x2"+ - "\x2\x2\x39C\x39D\x3\x2\x2\x2\x39D\x3A2\x3\x2\x2\x2\x39E\x3A0\x5\x126\x94"+ - "\x2\x39F\x39E\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2\x3A0\x3A1\x3\x2\x2\x2"+ - "\x3A1\x3A3\x5\xFA~\x2\x3A2\x39F\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3"+ - "\x3A4\x3\x2\x2\x2\x3A4\x3A6\x5\x116\x8C\x2\x3A5\x3A7\x5\x1A\xE\x2\x3A6"+ - "\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2\x2\x3A7\x3A8\x3\x2\x2\x2\x3A8\x3A9"+ - "\a\x62\x2\x2\x3A9K\x3\x2\x2\x2\x3AA\x3AB\ay\x2\x2\x3AB\x3AC\x5\x126\x94"+ - "\x2\x3AC\x3AE\x5\xD0i\x2\x3AD\x3AF\x5\x126\x94\x2\x3AE\x3AD\x3\x2\x2\x2"+ - "\x3AE\x3AF\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B2\a)\x2\x2\x3B1\x3B3"+ - "\x5\x126\x94\x2\x3B2\x3B1\x3\x2\x2\x2\x3B2\x3B3\x3\x2\x2\x2\x3B3\x3B5"+ - "\x3\x2\x2\x2\x3B4\x3B6\x5\xBC_\x2\x3B5\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2"+ - "\x2\x2\x3B6\x3B8\x3\x2\x2\x2\x3B7\x3B9\x5\x126\x94\x2\x3B8\x3B7\x3\x2"+ - "\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9\x3BA\x3\x2\x2\x2\x3BA\x3BC\a)\x2\x2"+ - "\x3BB\x3BD\x5\x126\x94\x2\x3BC\x3BB\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2\x2"+ - "\x3BD\x3BE\x3\x2\x2\x2\x3BE\x3BF\x5\xBC_\x2\x3BFM\x3\x2\x2\x2\x3C0\x3C1"+ - "\a{\x2\x2\x3C1\x3C2\x5\x126\x94\x2\x3C2\x3C3\x5\xBC_\x2\x3C3O\x3\x2\x2"+ - "\x2\x3C4\x3C5\a|\x2\x2\x3C5\x3C6\x5\x126\x94\x2\x3C6\x3C7\x5\xBC_\x2\x3C7"+ - "Q\x3\x2\x2\x2\x3C8\x3C9\a}\x2\x2\x3C9\x3CA\x5\x126\x94\x2\x3CA\x3CB\x5"+ - "V,\x2\x3CB\x3CC\x5\x126\x94\x2\x3CC\x3CD\a\xCD\x2\x2\x3CD\x3CE\x5\x126"+ - "\x94\x2\x3CE\x3D4\x5\x1C\xF\x2\x3CF\x3D0\x5\x126\x94\x2\x3D0\x3D1\a^\x2"+ - "\x2\x3D1\x3D2\x5\x126\x94\x2\x3D2\x3D3\x5\x1C\xF\x2\x3D3\x3D5\x3\x2\x2"+ - "\x2\x3D4\x3CF\x3\x2\x2\x2\x3D4\x3D5\x3\x2\x2\x2\x3D5\x3E3\x3\x2\x2\x2"+ - "\x3D6\x3DA\x5T+\x2\x3D7\x3D9\x5X-\x2\x3D8\x3D7\x3\x2\x2\x2\x3D9\x3DC\x3"+ - "\x2\x2\x2\x3DA\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB\x3DE\x3\x2"+ - "\x2\x2\x3DC\x3DA\x3\x2\x2\x2\x3DD\x3DF\x5Z.\x2\x3DE\x3DD\x3\x2\x2\x2\x3DE"+ - "\x3DF\x3\x2\x2\x2\x3DF\x3E0\x3\x2\x2\x2\x3E0\x3E1\a\x63\x2\x2\x3E1\x3E3"+ - "\x3\x2\x2\x2\x3E2\x3C8\x3\x2\x2\x2\x3E2\x3D6\x3\x2\x2\x2\x3E3S\x3\x2\x2"+ - "\x2\x3E4\x3E5\a}\x2\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\x5V,\x2\x3E7"+ - "\x3E8\x5\x126\x94\x2\x3E8\x3E9\a\xCD\x2\x2\x3E9\x3EB\x5\x116\x8C\x2\x3EA"+ - "\x3EC\x5\x1A\xE\x2\x3EB\x3EA\x3\x2\x2\x2\x3EB\x3EC\x3\x2\x2\x2\x3ECU\x3"+ - "\x2\x2\x2\x3ED\x3EE\x5\xBC_\x2\x3EEW\x3\x2\x2\x2\x3EF\x3F0\a_\x2\x2\x3F0"+ - "\x3F1\x5\x126\x94\x2\x3F1\x3F2\x5V,\x2\x3F2\x3F3\x5\x126\x94\x2\x3F3\x3F4"+ - "\a\xCD\x2\x2\x3F4\x3F6\x5\x116\x8C\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5"+ - "\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7Y\x3\x2\x2\x2\x3F8\x3F9\a^\x2\x2"+ - "\x3F9\x3FB\x5\x116\x8C\x2\x3FA\x3FC\x5\x1A\xE\x2\x3FB\x3FA\x3\x2\x2\x2"+ - "\x3FB\x3FC\x3\x2\x2\x2\x3FC[\x3\x2\x2\x2\x3FD\x3FE\a\x7F\x2\x2\x3FE\x3FF"+ - "\x5\x126\x94\x2\x3FF\x400\x5\xBC_\x2\x400]\x3\x2\x2\x2\x401\x402\a\x81"+ - "\x2\x2\x402\x403\x5\x126\x94\x2\x403\x40C\x5\xD0i\x2\x404\x406\x5\x126"+ - "\x94\x2\x405\x404\x3\x2\x2\x2\x405\x406\x3\x2\x2\x2\x406\x407\x3\x2\x2"+ - "\x2\x407\x409\a)\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x408\x3\x2\x2\x2"+ - "\x409\x40A\x3\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5\xBC_\x2\x40C"+ - "\x405\x3\x2\x2\x2\x40D\x40E\x3\x2\x2\x2\x40E\x40C\x3\x2\x2\x2\x40E\x40F"+ - "\x3\x2\x2\x2\x40F_\x3\x2\x2\x2\x410\x411\a\x84\x2\x2\x411\x412\x5\x126"+ - "\x94\x2\x412\x413\x5\xBC_\x2\x413\x61\x3\x2\x2\x2\x414\x415\a\x89\x2\x2"+ - "\x415\x417\x5\x126\x94\x2\x416\x414\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2"+ - "\x417\x418\x3\x2\x2\x2\x418\x41A\x5\xDCo\x2\x419\x41B\x5\x126\x94\x2\x41A"+ - "\x419\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E"+ - "\a\xE2\x2\x2\x41D\x41F\x5\x126\x94\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F"+ - "\x3\x2\x2\x2\x41F\x420\x3\x2\x2\x2\x420\x421\x5\xBC_\x2\x421\x63\x3\x2"+ - "\x2\x2\x422\x423\a\x8C\x2\x2\x423\x424\x5\x126\x94\x2\x424\x426\x5\xD0"+ - "i\x2\x425\x427\x5\x126\x94\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2"+ - "\x2\x427\x428\x3\x2\x2\x2\x428\x42A\a)\x2\x2\x429\x42B\x5\x126\x94\x2"+ - "\x42A\x429\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C"+ - "\x42D\x5\xBC_\x2\x42D\x65\x3\x2\x2\x2\x42E\x42F\a\x85\x2\x2\x42F\x430"+ - "\x5\x126\x94\x2\x430\x431\x5\xBC_\x2\x431g\x3\x2\x2\x2\x432\x433\a\x86"+ - "\x2\x2\x433\x434\x5\x126\x94\x2\x434\x444\x5\xBC_\x2\x435\x437\x5\x126"+ - "\x94\x2\x436\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2\x437\x438\x3\x2\x2"+ - "\x2\x438\x43A\a)\x2\x2\x439\x43B\x5\x126\x94\x2\x43A\x439\x3\x2\x2\x2"+ - "\x43A\x43B\x3\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x442\x5\xBC_\x2\x43D"+ - "\x43E\x5\x126\x94\x2\x43E\x43F\a\xCF\x2\x2\x43F\x440\x5\x126\x94\x2\x440"+ - "\x441\x5\xBC_\x2\x441\x443\x3\x2\x2\x2\x442\x43D\x3\x2\x2\x2\x442\x443"+ - "\x3\x2\x2\x2\x443\x445\x3\x2\x2\x2\x444\x436\x3\x2\x2\x2\x444\x445\x3"+ - "\x2\x2\x2\x445i\x3\x2\x2\x2\x446\x447\a\x90\x2\x2\x447\x448\x5\x126\x94"+ - "\x2\x448\x44A\x5\xDCo\x2\x449\x44B\x5\x126\x94\x2\x44A\x449\x3\x2\x2\x2"+ - "\x44A\x44B\x3\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44E\a\xE2\x2\x2\x44D"+ - "\x44F\x5\x126\x94\x2\x44E\x44D\x3\x2\x2\x2\x44E\x44F\x3\x2\x2\x2\x44F"+ - "\x450\x3\x2\x2\x2\x450\x451\x5\xBC_\x2\x451k\x3\x2\x2\x2\x452\x454\a\x92"+ - "\x2\x2\x453\x455\x5\x126\x94\x2\x454\x453\x3\x2\x2\x2\x454\x455\x3\x2"+ - "\x2\x2\x455\x456\x3\x2\x2\x2\x456\x458\a\xE6\x2\x2\x457\x459\x5\x126\x94"+ - "\x2\x458\x457\x3\x2\x2\x2\x458\x459\x3\x2\x2\x2\x459\x45A\x3\x2\x2\x2"+ - "\x45A\x45C\x5\xE8u\x2\x45B\x45D\x5\x126\x94\x2\x45C\x45B\x3\x2\x2\x2\x45C"+ - "\x45D\x3\x2\x2\x2\x45D\x45E\x3\x2\x2\x2\x45E\x45F\a\xED\x2\x2\x45Fm\x3"+ - "\x2\x2\x2\x460\x461\a\x93\x2\x2\x461\x462\x5\x126\x94\x2\x462\x463\x5"+ - "\xBC_\x2\x463o\x3\x2\x2\x2\x464\x465\a\x95\x2\x2\x465\x466\x5\x126\x94"+ - "\x2\x466\x467\x5\xBC_\x2\x467\x468\x5\x126\x94\x2\x468\x469\a:\x2\x2\x469"+ - "\x46A\x5\x126\x94\x2\x46A\x46B\x5\xBC_\x2\x46Bq\x3\x2\x2\x2\x46C\x46D"+ - "\t\x6\x2\x2\x46D\x476\x5\x126\x94\x2\x46E\x46F\a|\x2\x2\x46F\x470\x5\x126"+ - "\x94\x2\x470\x471\x5\xBC_\x2\x471\x477\x3\x2\x2\x2\x472\x473\a\xB8\x2"+ - "\x2\x473\x474\x5\x126\x94\x2\x474\x475\a\x96\x2\x2\x475\x477\x3\x2\x2"+ - "\x2\x476\x46E\x3\x2\x2\x2\x476\x472\x3\x2\x2\x2\x477s\x3\x2\x2\x2\x478"+ - "\x479\a\x9B\x2\x2\x479\x47A\x5\x126\x94\x2\x47A\x47B\x5\xBC_\x2\x47B\x47C"+ - "\x5\x126\x94\x2\x47C\x47D\a|\x2\x2\x47D\x47E\x5\x126\x94\x2\x47E\x489"+ - "\x5\xBC_\x2\x47F\x481\x5\x126\x94\x2\x480\x47F\x3\x2\x2\x2\x480\x481\x3"+ - "\x2\x2\x2\x481\x482\x3\x2\x2\x2\x482\x484\a)\x2\x2\x483\x485\x5\x126\x94"+ - "\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3\x2\x2\x2"+ - "\x486\x488\x5\xBC_\x2\x487\x480\x3\x2\x2\x2\x488\x48B\x3\x2\x2\x2\x489"+ - "\x487\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48Au\x3\x2\x2\x2\x48B\x489\x3"+ - "\x2\x2\x2\x48C\x48D\a\x9B\x2\x2\x48D\x48E\x5\x126\x94\x2\x48E\x48F\x5"+ - "\xBC_\x2\x48F\x490\x5\x126\x94\x2\x490\x491\a{\x2\x2\x491\x492\x5\x126"+ - "\x94\x2\x492\x49D\x5\xBC_\x2\x493\x495\x5\x126\x94\x2\x494\x493\x3\x2"+ - "\x2\x2\x494\x495\x3\x2\x2\x2\x495\x496\x3\x2\x2\x2\x496\x498\a)\x2\x2"+ - "\x497\x499\x5\x126\x94\x2\x498\x497\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2"+ - "\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xBC_\x2\x49B\x494\x3\x2\x2\x2\x49C"+ - "\x49F\x3\x2\x2\x2\x49D\x49B\x3\x2\x2\x2\x49D\x49E\x3\x2\x2\x2\x49Ew\x3"+ - "\x2\x2\x2\x49F\x49D\x3\x2\x2\x2\x4A0\x4A1\a\x9E\x2\x2\x4A1\x4A2\x5\x126"+ - "\x94\x2\x4A2\x4A3\x5\xBC_\x2\x4A3\x4A4\x5\x126\x94\x2\x4A4\x4A5\aw\x2"+ - "\x2\x4A5\x4A6\x5\x126\x94\x2\x4A6\x4AC\t\a\x2\x2\x4A7\x4A8\x5\x126\x94"+ - "\x2\x4A8\x4A9\a\x33\x2\x2\x4A9\x4AA\x5\x126\x94\x2\x4AA\x4AB\t\b\x2\x2"+ - "\x4AB\x4AD\x3\x2\x2\x2\x4AC\x4A7\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD"+ - "\x4B1\x3\x2\x2\x2\x4AE\x4AF\x5\x126\x94\x2\x4AF\x4B0\t\t\x2\x2\x4B0\x4B2"+ - "\x3\x2\x2\x2\x4B1\x4AE\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B3\x3"+ - "\x2\x2\x2\x4B3\x4B4\x5\x126\x94\x2\x4B4\x4B5\a:\x2\x2\x4B5\x4B6\x5\x126"+ - "\x94\x2\x4B6\x4C2\x5\xD0i\x2\x4B7\x4B8\x5\x126\x94\x2\x4B8\x4BA\a\x1D"+ - "\x2\x2\x4B9\x4BB\x5\x126\x94\x2\x4BA\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2"+ - "\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BE\a\xE2\x2\x2\x4BD\x4BF\x5\x126\x94"+ - "\x2\x4BE\x4BD\x3\x2\x2\x2\x4BE\x4BF\x3\x2\x2\x2\x4BF\x4C0\x3\x2\x2\x2"+ - "\x4C0\x4C1\x5\xBC_\x2\x4C1\x4C3\x3\x2\x2\x2\x4C2\x4B7\x3\x2\x2\x2\x4C2"+ - "\x4C3\x3\x2\x2\x2\x4C3y\x3\x2\x2\x2\x4C4\x4D1\x5|?\x2\x4C5\x4C7\x5\x126"+ - "\x94\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2\x2\x4C7\x4C8\x3\x2\x2"+ - "\x2\x4C8\x4CA\t\n\x2\x2\x4C9\x4CB\x5\x126\x94\x2\x4CA\x4C9\x3\x2\x2\x2"+ - "\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2\x4CC\x4CE\x5|?\x2\x4CD\x4CC"+ - "\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4D0\x3\x2\x2\x2\x4CF\x4C6\x3"+ - "\x2\x2\x2\x4D0\x4D3\x3\x2\x2\x2\x4D1\x4CF\x3\x2\x2\x2\x4D1\x4D2\x3\x2"+ - "\x2\x2\x4D2\x4E6\x3\x2\x2\x2\x4D3\x4D1\x3\x2\x2\x2\x4D4\x4D6\x5|?\x2\x4D5"+ - "\x4D4\x3\x2\x2\x2\x4D5\x4D6\x3\x2\x2\x2\x4D6\x4E1\x3\x2\x2\x2\x4D7\x4D9"+ - "\x5\x126\x94\x2\x4D8\x4D7\x3\x2\x2\x2\x4D8\x4D9\x3\x2\x2\x2\x4D9\x4DA"+ - "\x3\x2\x2\x2\x4DA\x4DC\t\n\x2\x2\x4DB\x4DD\x5\x126\x94\x2\x4DC\x4DB\x3"+ - "\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DF\x3\x2\x2\x2\x4DE\x4E0\x5|?\x2"+ - "\x4DF\x4DE\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E2\x3\x2\x2\x2\x4E1"+ - "\x4D8\x3\x2\x2\x2\x4E2\x4E3\x3\x2\x2\x2\x4E3\x4E1\x3\x2\x2\x2\x4E3\x4E4"+ - "\x3\x2\x2\x2\x4E4\x4E6\x3\x2\x2\x2\x4E5\x4C4\x3\x2\x2\x2\x4E5\x4D5\x3"+ - "\x2\x2\x2\x4E6{\x3\x2\x2\x2\x4E7\x4F9\x5\xBC_\x2\x4E8\x4F6\t\v\x2\x2\x4E9"+ - "\x4EB\x5\x126\x94\x2\x4EA\x4E9\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB"+ - "\x4EC\x3\x2\x2\x2\x4EC\x4EE\a\xE6\x2\x2\x4ED\x4EF\x5\x126\x94\x2\x4EE"+ - "\x4ED\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2\x2\x4EF\x4F0\x3\x2\x2\x2\x4F0\x4F2"+ - "\x5\xE8u\x2\x4F1\x4F3\x5\x126\x94\x2\x4F2\x4F1\x3\x2\x2\x2\x4F2\x4F3\x3"+ - "\x2\x2\x2\x4F3\x4F4\x3\x2\x2\x2\x4F4\x4F5\a\xED\x2\x2\x4F5\x4F7\x3\x2"+ - "\x2\x2\x4F6\x4EA\x3\x2\x2\x2\x4F6\x4F7\x3\x2\x2\x2\x4F7\x4F9\x3\x2\x2"+ - "\x2\x4F8\x4E7\x3\x2\x2\x2\x4F8\x4E8\x3\x2\x2\x2\x4F9}\x3\x2\x2\x2\x4FA"+ - "\x4FB\a\xA8\x2\x2\x4FB\x4FC\x5\x126\x94\x2\x4FC\x4FE\x5\xD0i\x2\x4FD\x4FF"+ - "\x5\x126\x94\x2\x4FE\x4FD\x3\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x500"+ - "\x3\x2\x2\x2\x500\x505\a)\x2\x2\x501\x503\x5\x126\x94\x2\x502\x501\x3"+ - "\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503\x504\x3\x2\x2\x2\x504\x506\x5z>\x2"+ - "\x505\x502\x3\x2\x2\x2\x505\x506\x3\x2\x2\x2\x506\x7F\x3\x2\x2\x2\x507"+ - "\x508\x5\x110\x89\x2\x508\x509\x5\x126\x94\x2\x509\x50B\x3\x2\x2\x2\x50A"+ - "\x507\x3\x2\x2\x2\x50A\x50B\x3\x2\x2\x2\x50B\x50E\x3\x2\x2\x2\x50C\x50D"+ - "\a\xC6\x2\x2\x50D\x50F\x5\x126\x94\x2\x50E\x50C\x3\x2\x2\x2\x50E\x50F"+ - "\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510\x511\a\xAA\x2\x2\x511\x512\x5"+ - "\x126\x94\x2\x512\x514\x5\xF8}\x2\x513\x515\x5\x10E\x88\x2\x514\x513\x3"+ - "\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x51A\x3\x2\x2\x2\x516\x518\x5\x126"+ - "\x94\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2"+ - "\x2\x519\x51B\x5\xEEx\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B"+ - "\x51F\x3\x2\x2\x2\x51C\x51D\x5\x126\x94\x2\x51D\x51E\x5\xFA~\x2\x51E\x520"+ - "\x3\x2\x2\x2\x51F\x51C\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\x3"+ - "\x2\x2\x2\x521\x523\x5\x116\x8C\x2\x522\x524\x5\x1A\xE\x2\x523\x522\x3"+ - "\x2\x2\x2\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x526\a\x64"+ - "\x2\x2\x526\x81\x3\x2\x2\x2\x527\x528\x5\x110\x89\x2\x528\x529\x5\x126"+ - "\x94\x2\x529\x52B\x3\x2\x2\x2\x52A\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2"+ - "\x2\x52B\x52E\x3\x2\x2\x2\x52C\x52D\a\xC6\x2\x2\x52D\x52F\x5\x126\x94"+ - "\x2\x52E\x52C\x3\x2\x2\x2\x52E\x52F\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2"+ - "\x530\x531\a\xAC\x2\x2\x531\x532\x5\x126\x94\x2\x532\x537\x5\xF8}\x2\x533"+ - "\x535\x5\x126\x94\x2\x534\x533\x3\x2\x2\x2\x534\x535\x3\x2\x2\x2\x535"+ - "\x536\x3\x2\x2\x2\x536\x538\x5\xEEx\x2\x537\x534\x3\x2\x2\x2\x537\x538"+ - "\x3\x2\x2\x2\x538\x539\x3\x2\x2\x2\x539\x53B\x5\x116\x8C\x2\x53A\x53C"+ - "\x5\x1A\xE\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D\x3"+ - "\x2\x2\x2\x53D\x53E\a\x64\x2\x2\x53E\x83\x3\x2\x2\x2\x53F\x540\x5\x110"+ - "\x89\x2\x540\x541\x5\x126\x94\x2\x541\x543\x3\x2\x2\x2\x542\x53F\x3\x2"+ - "\x2\x2\x542\x543\x3\x2\x2\x2\x543\x546\x3\x2\x2\x2\x544\x545\a\xC6\x2"+ - "\x2\x545\x547\x5\x126\x94\x2\x546\x544\x3\x2\x2\x2\x546\x547\x3\x2\x2"+ - "\x2\x547\x548\x3\x2\x2\x2\x548\x549\a\xAB\x2\x2\x549\x54A\x5\x126\x94"+ - "\x2\x54A\x54F\x5\xF8}\x2\x54B\x54D\x5\x126\x94\x2\x54C\x54B\x3\x2\x2\x2"+ - "\x54C\x54D\x3\x2\x2\x2\x54D\x54E\x3\x2\x2\x2\x54E\x550\x5\xEEx\x2\x54F"+ - "\x54C\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\x3\x2\x2\x2\x551\x553"+ - "\x5\x116\x8C\x2\x552\x554\x5\x1A\xE\x2\x553\x552\x3\x2\x2\x2\x553\x554"+ - "\x3\x2\x2\x2\x554\x555\x3\x2\x2\x2\x555\x556\a\x64\x2\x2\x556\x85\x3\x2"+ - "\x2\x2\x557\x558\a\xAF\x2\x2\x558\x559\x5\x126\x94\x2\x559\x55B\x5\xD0"+ - "i\x2\x55A\x55C\x5\x126\x94\x2\x55B\x55A\x3\x2\x2\x2\x55B\x55C\x3\x2\x2"+ - "\x2\x55C\x55D\x3\x2\x2\x2\x55D\x55F\a)\x2\x2\x55E\x560\x5\x126\x94\x2"+ - "\x55F\x55E\x3\x2\x2\x2\x55F\x560\x3\x2\x2\x2\x560\x562\x3\x2\x2\x2\x561"+ - "\x563\x5\xBC_\x2\x562\x561\x3\x2\x2\x2\x562\x563\x3\x2\x2\x2\x563\x565"+ - "\x3\x2\x2\x2\x564\x566\x5\x126\x94\x2\x565\x564\x3\x2\x2\x2\x565\x566"+ - "\x3\x2\x2\x2\x566\x567\x3\x2\x2\x2\x567\x569\a)\x2\x2\x568\x56A\x5\x126"+ - "\x94\x2\x569\x568\x3\x2\x2\x2\x569\x56A\x3\x2\x2\x2\x56A\x56B\x3\x2\x2"+ - "\x2\x56B\x56C\x5\xBC_\x2\x56C\x87\x3\x2\x2\x2\x56D\x56E\a\xB2\x2\x2\x56E"+ - "\x56F\x5\x126\x94\x2\x56F\x57E\x5\xF8}\x2\x570\x572\x5\x126\x94\x2\x571"+ - "\x570\x3\x2\x2\x2\x571\x572\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x575"+ - "\a\xE6\x2\x2\x574\x576\x5\x126\x94\x2\x575\x574\x3\x2\x2\x2\x575\x576"+ - "\x3\x2\x2\x2\x576\x57B\x3\x2\x2\x2\x577\x579\x5\xE8u\x2\x578\x57A\x5\x126"+ - "\x94\x2\x579\x578\x3\x2\x2\x2\x579\x57A\x3\x2\x2\x2\x57A\x57C\x3\x2\x2"+ - "\x2\x57B\x577\x3\x2\x2\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2"+ - "\x57D\x57F\a\xED\x2\x2\x57E\x571\x3\x2\x2\x2\x57E\x57F\x3\x2\x2\x2\x57F"+ - "\x89\x3\x2\x2\x2\x580\x584\a\xB1\x2\x2\x581\x582\x5\x126\x94\x2\x582\x583"+ - "\x5\xBC_\x2\x583\x585\x3\x2\x2\x2\x584\x581\x3\x2\x2\x2\x584\x585\x3\x2"+ - "\x2\x2\x585\x8B\x3\x2\x2\x2\x586\x587\a\xB5\x2\x2\x587\x58A\x5\x126\x94"+ - "\x2\x588\x589\a\xA7\x2\x2\x589\x58B\x5\x126\x94\x2\x58A\x588\x3\x2\x2"+ - "\x2\x58A\x58B\x3\x2\x2\x2\x58B\x58C\x3\x2\x2\x2\x58C\x597\x5\x8EH\x2\x58D"+ - "\x58F\x5\x126\x94\x2\x58E\x58D\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F"+ - "\x590\x3\x2\x2\x2\x590\x592\a)\x2\x2\x591\x593\x5\x126\x94\x2\x592\x591"+ - "\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x594\x3\x2\x2\x2\x594\x596\x5"+ - "\x8EH\x2\x595\x58E\x3\x2\x2\x2\x596\x599\x3\x2\x2\x2\x597\x595\x3\x2\x2"+ - "\x2\x597\x598\x3\x2\x2\x2\x598\x8D\x3\x2\x2\x2\x599\x597\x3\x2\x2\x2\x59A"+ - "\x59C\x5\xDCo\x2\x59B\x59D\x5\x126\x94\x2\x59C\x59B\x3\x2\x2\x2\x59C\x59D"+ - "\x3\x2\x2\x2\x59D\x59E\x3\x2\x2\x2\x59E\x5A0\a\xE6\x2\x2\x59F\x5A1\x5"+ - "\x126\x94\x2\x5A0\x59F\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1\x5A2\x3"+ - "\x2\x2\x2\x5A2\x5A4\x5\xF4{\x2\x5A3\x5A5\x5\x126\x94\x2\x5A4\x5A3\x3\x2"+ - "\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2\x5A6\x5AA\a\xED\x2"+ - "\x2\x5A7\x5A8\x5\x126\x94\x2\x5A8\x5A9\x5\xFA~\x2\x5A9\x5AB\x3\x2\x2\x2"+ - "\x5AA\x5A7\x3\x2\x2\x2\x5AA\x5AB\x3\x2\x2\x2\x5AB\x8F\x3\x2\x2\x2\x5AC"+ - "\x5AD\a\xB7\x2\x2\x5AD\x91\x3\x2\x2\x2\x5AE\x5B4\a\xB8\x2\x2\x5AF\x5B2"+ - "\x5\x126\x94\x2\x5B0\x5B3\a\x96\x2\x2\x5B1\x5B3\x5\xF8}\x2\x5B2\x5B0\x3"+ - "\x2\x2\x2\x5B2\x5B1\x3\x2\x2\x2\x5B3\x5B5\x3\x2\x2\x2\x5B4\x5AF\x3\x2"+ - "\x2\x2\x5B4\x5B5\x3\x2\x2\x2\x5B5\x93\x3\x2\x2\x2\x5B6\x5B7\a\xB9\x2\x2"+ - "\x5B7\x95\x3\x2\x2\x2\x5B8\x5B9\a\xBA\x2\x2\x5B9\x5BA\x5\x126\x94\x2\x5BA"+ - "\x5BB\x5\xBC_\x2\x5BB\x97\x3\x2\x2\x2\x5BC\x5BD\a\xBB\x2\x2\x5BD\x5BE"+ - "\x5\x126\x94\x2\x5BE\x5C0\x5\xDCo\x2\x5BF\x5C1\x5\x126\x94\x2\x5C0\x5BF"+ - "\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x3\x2\x2\x2\x5C2\x5C4\a\xE2"+ - "\x2\x2\x5C3\x5C5\x5\x126\x94\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2"+ - "\x2\x2\x5C5\x5C6\x3\x2\x2\x2\x5C6\x5C7\x5\xBC_\x2\x5C7\x99\x3\x2\x2\x2"+ - "\x5C8\x5C9\a\xBC\x2\x2\x5C9\x5CA\x5\x126\x94\x2\x5CA\x5CC\x5\xBC_\x2\x5CB"+ - "\x5CD\x5\x126\x94\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD\x3\x2\x2\x2\x5CD"+ - "\x5CE\x3\x2\x2\x2\x5CE\x5D0\a)\x2\x2\x5CF\x5D1\x5\x126\x94\x2\x5D0\x5CF"+ - "\x3\x2\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x5"+ - "\xBC_\x2\x5D3\x9B\x3\x2\x2\x2\x5D4\x5D5\a\xBD\x2\x2\x5D5\x5D6\x5\x126"+ - "\x94\x2\x5D6\x5D8\x5\xBC_\x2\x5D7\x5D9\x5\x126\x94\x2\x5D8\x5D7\x3\x2"+ - "\x2\x2\x5D8\x5D9\x3\x2\x2\x2\x5D9\x5DA\x3\x2\x2\x2\x5DA\x5DC\a)\x2\x2"+ - "\x5DB\x5DD\x5\x126\x94\x2\x5DC\x5DB\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2"+ - "\x5DD\x5DE\x3\x2\x2\x2\x5DE\x5E0\x5\xBC_\x2\x5DF\x5E1\x5\x126\x94\x2\x5E0"+ - "\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2\x3\x2\x2\x2\x5E2\x5E4"+ - "\a)\x2\x2\x5E3\x5E5\x5\x126\x94\x2\x5E4\x5E3\x3\x2\x2\x2\x5E4\x5E5\x3"+ - "\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E8\x5\xBC_\x2\x5E7\x5E9\x5\x126"+ - "\x94\x2\x5E8\x5E7\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3\x2\x2"+ - "\x2\x5EA\x5EC\a)\x2\x2\x5EB\x5ED\x5\x126\x94\x2\x5EC\x5EB\x3\x2\x2\x2"+ - "\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5EF\x5\xBC_\x2\x5EF"+ - "\x9D\x3\x2\x2\x2\x5F0\x5F1\a\xBE\x2\x2\x5F1\x5F2\x5\x126\x94\x2\x5F2\x5F4"+ - "\x5\xD0i\x2\x5F3\x5F5\x5\x126\x94\x2\x5F4\x5F3\x3\x2\x2\x2\x5F4\x5F5\x3"+ - "\x2\x2\x2\x5F5\x5F6\x3\x2\x2\x2\x5F6\x5F8\a)\x2\x2\x5F7\x5F9\x5\x126\x94"+ - "\x2\x5F8\x5F7\x3\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FA\x3\x2\x2\x2"+ - "\x5FA\x5FB\x5\xBC_\x2\x5FB\x9F\x3\x2\x2\x2\x5FC\x5FD\a\xBF\x2\x2\x5FD"+ - "\x5FE\x5\x126\x94\x2\x5FE\x5FF\a\x43\x2\x2\x5FF\x600\x5\x126\x94\x2\x600"+ - "\x601\x5\xBC_\x2\x601\x605\x5\x116\x8C\x2\x602\x604\x5\xA4S\x2\x603\x602"+ - "\x3\x2\x2\x2\x604\x607\x3\x2\x2\x2\x605\x603\x3\x2\x2\x2\x605\x606\x3"+ - "\x2\x2\x2\x606\x608\x3\x2\x2\x2\x607\x605\x3\x2\x2\x2\x608\x609\a\x65"+ - "\x2\x2\x609\xA1\x3\x2\x2\x2\x60A\x60C\a\x82\x2\x2\x60B\x60D\x5\x126\x94"+ - "\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2"+ - "\x60E\x610\x5\xFE\x80\x2\x60F\x611\x5\x126\x94\x2\x610\x60F\x3\x2\x2\x2"+ - "\x610\x611\x3\x2\x2\x2\x611\x612\x3\x2\x2\x2\x612\x613\x5\xBC_\x2\x613"+ - "\x61C\x3\x2\x2\x2\x614\x615\x5\xBC_\x2\x615\x616\x5\x126\x94\x2\x616\x617"+ - "\a\xCF\x2\x2\x617\x618\x5\x126\x94\x2\x618\x619\x5\xBC_\x2\x619\x61C\x3"+ - "\x2\x2\x2\x61A\x61C\x5\xBC_\x2\x61B\x60A\x3\x2\x2\x2\x61B\x614\x3\x2\x2"+ - "\x2\x61B\x61A\x3\x2\x2\x2\x61C\xA3\x3\x2\x2\x2\x61D\x61E\a\x43\x2\x2\x61E"+ - "\x61F\x5\x126\x94\x2\x61F\x620\x5\xA6T\x2\x620\x622\x5\x116\x8C\x2\x621"+ - "\x623\x5\x1A\xE\x2\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\xA5"+ - "\x3\x2\x2\x2\x624\x634\a^\x2\x2\x625\x630\x5\xA2R\x2\x626\x628\x5\x126"+ - "\x94\x2\x627\x626\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2"+ - "\x2\x629\x62B\a)\x2\x2\x62A\x62C\x5\x126\x94\x2\x62B\x62A\x3\x2\x2\x2"+ - "\x62B\x62C\x3\x2\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x62F\x5\xA2R\x2\x62E"+ - "\x627\x3\x2\x2\x2\x62F\x632\x3\x2\x2\x2\x630\x62E\x3\x2\x2\x2\x630\x631"+ - "\x3\x2\x2\x2\x631\x634\x3\x2\x2\x2\x632\x630\x3\x2\x2\x2\x633\x624\x3"+ - "\x2\x2\x2\x633\x625\x3\x2\x2\x2\x634\xA7\x3\x2\x2\x2\x635\x636\a\xC0\x2"+ - "\x2\x636\x637\x5\x126\x94\x2\x637\x640\x5\xBC_\x2\x638\x63A\x5\x126\x94"+ - "\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2"+ - "\x63B\x63D\a)\x2\x2\x63C\x63E\x5\x126\x94\x2\x63D\x63C\x3\x2\x2\x2\x63D"+ - "\x63E\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x641\x5\xBC_\x2\x640\x639"+ - "\x3\x2\x2\x2\x640\x641\x3\x2\x2\x2\x641\xA9\x3\x2\x2\x2\x642\x643\a\xC2"+ - "\x2\x2\x643\x644\x5\x126\x94\x2\x644\x646\x5\xBC_\x2\x645\x647\x5\x126"+ - "\x94\x2\x646\x645\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2"+ - "\x2\x648\x64A\a)\x2\x2\x649\x64B\x5\x126\x94\x2\x64A\x649\x3\x2\x2\x2"+ - "\x64A\x64B\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x5\xBC_\x2\x64D"+ - "\xAB\x3\x2\x2\x2\x64E\x64F\a\xC1\x2\x2\x64F\x650\x5\x126\x94\x2\x650\x652"+ - "\x5\xDCo\x2\x651\x653\x5\x126\x94\x2\x652\x651\x3\x2\x2\x2\x652\x653\x3"+ - "\x2\x2\x2\x653\x654\x3\x2\x2\x2\x654\x656\a\xE2\x2\x2\x655\x657\x5\x126"+ - "\x94\x2\x656\x655\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2\x657\x658\x3\x2\x2"+ - "\x2\x658\x659\x5\xBC_\x2\x659\xAD\x3\x2\x2\x2\x65A\x65B\a\xC8\x2\x2\x65B"+ - "\xAF\x3\x2\x2\x2\x65C\x65D\x5\x110\x89\x2\x65D\x65E\x5\x126\x94\x2\x65E"+ - "\x660\x3\x2\x2\x2\x65F\x65C\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x663"+ - "\x3\x2\x2\x2\x661\x662\a\xC6\x2\x2\x662\x664\x5\x126\x94\x2\x663\x661"+ - "\x3\x2\x2\x2\x663\x664\x3\x2\x2\x2\x664\x665\x3\x2\x2\x2\x665\x667\a\xCA"+ - "\x2\x2\x666\x668\x5\x126\x94\x2\x667\x666\x3\x2\x2\x2\x667\x668\x3\x2"+ - "\x2\x2\x668\x669\x3\x2\x2\x2\x669\x66E\x5\xF8}\x2\x66A\x66C\x5\x126\x94"+ - "\x2\x66B\x66A\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2"+ - "\x66D\x66F\x5\xEEx\x2\x66E\x66B\x3\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F"+ - "\x670\x3\x2\x2\x2\x670\x672\x5\x116\x8C\x2\x671\x673\x5\x1A\xE\x2\x672"+ - "\x671\x3\x2\x2\x2\x672\x673\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675"+ - "\a\x66\x2\x2\x675\xB1\x3\x2\x2\x2\x676\x678\a\xCE\x2\x2\x677\x679\x5\x126"+ - "\x94\x2\x678\x677\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x67A\x3\x2\x2"+ - "\x2\x67A\x67C\a\xE2\x2\x2\x67B\x67D\x5\x126\x94\x2\x67C\x67B\x3\x2\x2"+ - "\x2\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x5\xBC_\x2\x67F"+ - "\xB3\x3\x2\x2\x2\x680\x681\x5\x110\x89\x2\x681\x682\x5\x126\x94\x2\x682"+ - "\x684\x3\x2\x2\x2\x683\x680\x3\x2\x2\x2\x683\x684\x3\x2\x2\x2\x684\x685"+ - "\x3\x2\x2\x2\x685\x686\a\xD1\x2\x2\x686\x687\x5\x126\x94\x2\x687\x688"+ - "\x5\xF8}\x2\x688\x68C\x5\x116\x8C\x2\x689\x68B\x5\xB6\\\x2\x68A\x689\x3"+ - "\x2\x2\x2\x68B\x68E\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2\x68C\x68D\x3\x2"+ - "\x2\x2\x68D\x68F\x3\x2\x2\x2\x68E\x68C\x3\x2\x2\x2\x68F\x690\ag\x2\x2"+ - "\x690\xB5\x3\x2\x2\x2\x691\x6A0\x5\xF8}\x2\x692\x694\x5\x126\x94\x2\x693"+ - "\x692\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x695\x3\x2\x2\x2\x695\x69A"+ - "\a\xE6\x2\x2\x696\x698\x5\x126\x94\x2\x697\x696\x3\x2\x2\x2\x697\x698"+ - "\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69B\x5\xF4{\x2\x69A\x697\x3\x2"+ - "\x2\x2\x69A\x69B\x3\x2\x2\x2\x69B\x69D\x3\x2\x2\x2\x69C\x69E\x5\x126\x94"+ - "\x2\x69D\x69C\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2\x69E\x69F\x3\x2\x2\x2"+ - "\x69F\x6A1\a\xED\x2\x2\x6A0\x693\x3\x2\x2\x2\x6A0\x6A1\x3\x2\x2\x2\x6A1"+ - "\x6A5\x3\x2\x2\x2\x6A2\x6A3\x5\x126\x94\x2\x6A3\x6A4\x5\xFA~\x2\x6A4\x6A6"+ - "\x3\x2\x2\x2\x6A5\x6A2\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A7\x3"+ - "\x2\x2\x2\x6A7\x6A8\x5\x116\x8C\x2\x6A8\xB7\x3\x2\x2\x2\x6A9\x6AA\a\xD3"+ - "\x2\x2\x6AA\x6AB\x5\x126\x94\x2\x6AB\x6AC\x5\xBC_\x2\x6AC\xB9\x3\x2\x2"+ - "\x2\x6AD\x6AE\a\xD4\x2\x2\x6AE\x6AF\x5\x126\x94\x2\x6AF\x6BF\x5\xD0i\x2"+ - "\x6B0\x6B2\x5\x126\x94\x2\x6B1\x6B0\x3\x2\x2\x2\x6B1\x6B2\x3\x2\x2\x2"+ - "\x6B2\x6B3\x3\x2\x2\x2\x6B3\x6B5\a)\x2\x2\x6B4\x6B6\x5\x126\x94\x2\x6B5"+ - "\x6B4\x3\x2\x2\x2\x6B5\x6B6\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2\x2\x6B7\x6BD"+ - "\x5\xBC_\x2\x6B8\x6B9\x5\x126\x94\x2\x6B9\x6BA\a\xCF\x2\x2\x6BA\x6BB\x5"+ - "\x126\x94\x2\x6BB\x6BC\x5\xBC_\x2\x6BC\x6BE\x3\x2\x2\x2\x6BD\x6B8\x3\x2"+ - "\x2\x2\x6BD\x6BE\x3\x2\x2\x2\x6BE\x6C0\x3\x2\x2\x2\x6BF\x6B1\x3\x2\x2"+ - "\x2\x6BF\x6C0\x3\x2\x2\x2\x6C0\xBB\x3\x2\x2\x2\x6C1\x6C2\b_\x1\x2\x6C2"+ - "\x6C4\a\x97\x2\x2\x6C3\x6C5\x5\x126\x94\x2\x6C4\x6C3\x3\x2\x2\x2\x6C4"+ - "\x6C5\x3\x2\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6EF\x5\xBC_\x15\x6C7\x6C9"+ - "\a\x34\x2\x2\x6C8\x6CA\x5\x126\x94\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA"+ - "\x3\x2\x2\x2\x6CA\x6CB\x3\x2\x2\x2\x6CB\x6EF\x5\xBC_\x12\x6CC\x6CE\x5"+ - "\xDCo\x2\x6CD\x6CF\x5\x126\x94\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2"+ - "\x2\x2\x6CF\x6D0\x3\x2\x2\x2\x6D0\x6D2\a\xDF\x2\x2\x6D1\x6D3\x5\x126\x94"+ - "\x2\x6D2\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2"+ - "\x6D4\x6D5\x5\xBC_\x11\x6D5\x6EF\x3\x2\x2\x2\x6D6\x6D8\a\xE8\x2\x2\x6D7"+ - "\x6D9\x5\x126\x94\x2\x6D8\x6D7\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9"+ - "\x6DA\x3\x2\x2\x2\x6DA\x6EF\x5\xBC_\xF\x6DB\x6DD\a\x98\x2\x2\x6DC\x6DE"+ - "\x5\x126\x94\x2\x6DD\x6DC\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6DF"+ - "\x3\x2\x2\x2\x6DF\x6EF\x5\xBC_\b\x6E0\x6EF\x5\x108\x85\x2\x6E1\x6EF\x5"+ - "\xDCo\x2\x6E2\x6E4\a\xE6\x2\x2\x6E3\x6E5\x5\x126\x94\x2\x6E4\x6E3\x3\x2"+ - "\x2\x2\x6E4\x6E5\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2\x6E6\x6E8\x5\xBC_\x2"+ - "\x6E7\x6E9\x5\x126\x94\x2\x6E8\x6E7\x3\x2\x2\x2\x6E8\x6E9\x3\x2\x2\x2"+ - "\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\a\xED\x2\x2\x6EB\x6EF\x3\x2\x2\x2\x6EC"+ - "\x6EF\x5\xBE`\x2\x6ED\x6EF\x5l\x37\x2\x6EE\x6C1\x3\x2\x2\x2\x6EE\x6C7"+ - "\x3\x2\x2\x2\x6EE\x6CC\x3\x2\x2\x2\x6EE\x6D6\x3\x2\x2\x2\x6EE\x6DB\x3"+ - "\x2\x2\x2\x6EE\x6E0\x3\x2\x2\x2\x6EE\x6E1\x3\x2\x2\x2\x6EE\x6E2\x3\x2"+ - "\x2\x2\x6EE\x6EC\x3\x2\x2\x2\x6EE\x6ED\x3\x2\x2\x2\x6EF\x75E\x3\x2\x2"+ - "\x2\x6F0\x6F2\f\x10\x2\x2\x6F1\x6F3\x5\x126\x94\x2\x6F2\x6F1\x3\x2\x2"+ - "\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F4\x3\x2\x2\x2\x6F4\x6F6\a\xEC\x2\x2"+ - "\x6F5\x6F7\x5\x126\x94\x2\x6F6\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2"+ - "\x6F7\x6F8\x3\x2\x2\x2\x6F8\x75D\x5\xBC_\x11\x6F9\x6FB\f\xE\x2\x2\x6FA"+ - "\x6FC\x5\x126\x94\x2\x6FB\x6FA\x3\x2\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC"+ - "\x6FD\x3\x2\x2\x2\x6FD\x6FF\t\f\x2\x2\x6FE\x700\x5\x126\x94\x2\x6FF\x6FE"+ - "\x3\x2\x2\x2\x6FF\x700\x3\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x75D\x5"+ - "\xBC_\xF\x702\x704\f\r\x2\x2\x703\x705\x5\x126\x94\x2\x704\x703\x3\x2"+ - "\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706\x3\x2\x2\x2\x706\x708\a\xE1\x2"+ - "\x2\x707\x709\x5\x126\x94\x2\x708\x707\x3\x2\x2\x2\x708\x709\x3\x2\x2"+ - "\x2\x709\x70A\x3\x2\x2\x2\x70A\x75D\x5\xBC_\xE\x70B\x70D\f\f\x2\x2\x70C"+ - "\x70E\x5\x126\x94\x2\x70D\x70C\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E"+ - "\x70F\x3\x2\x2\x2\x70F\x711\a\x94\x2\x2\x710\x712\x5\x126\x94\x2\x711"+ - "\x710\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x713\x3\x2\x2\x2\x713\x75D"+ - "\x5\xBC_\r\x714\x716\f\v\x2\x2\x715\x717\x5\x126\x94\x2\x716\x715\x3\x2"+ - "\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2\x718\x71A\t\r\x2\x2"+ - "\x719\x71B\x5\x126\x94\x2\x71A\x719\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2"+ - "\x71B\x71C\x3\x2\x2\x2\x71C\x75D\x5\xBC_\f\x71D\x71F\f\n\x2\x2\x71E\x720"+ - "\x5\x126\x94\x2\x71F\x71E\x3\x2\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x721"+ - "\x3\x2\x2\x2\x721\x723\a\x32\x2\x2\x722\x724\x5\x126\x94\x2\x723\x722"+ - "\x3\x2\x2\x2\x723\x724\x3\x2\x2\x2\x724\x725\x3\x2\x2\x2\x725\x75D\x5"+ - "\xBC_\v\x726\x728\f\t\x2\x2\x727\x729\x5\x126\x94\x2\x728\x727\x3\x2\x2"+ - "\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72C\t\xE\x2\x2\x72B"+ - "\x72D\x5\x126\x94\x2\x72C\x72B\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D"+ - "\x72E\x3\x2\x2\x2\x72E\x75D\x5\xBC_\n\x72F\x731\f\a\x2\x2\x730\x732\x5"+ - "\x126\x94\x2\x731\x730\x3\x2\x2\x2\x731\x732\x3\x2\x2\x2\x732\x733\x3"+ - "\x2\x2\x2\x733\x735\a\x36\x2\x2\x734\x736\x5\x126\x94\x2\x735\x734\x3"+ - "\x2\x2\x2\x735\x736\x3\x2\x2\x2\x736\x737\x3\x2\x2\x2\x737\x75D\x5\xBC"+ - "_\b\x738\x73A\f\x6\x2\x2\x739\x73B\x5\x126\x94\x2\x73A\x739\x3\x2\x2\x2"+ - "\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C\x73E\a\xA4\x2\x2\x73D"+ - "\x73F\x5\x126\x94\x2\x73E\x73D\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F"+ - "\x740\x3\x2\x2\x2\x740\x75D\x5\xBC_\a\x741\x743\f\x5\x2\x2\x742\x744\x5"+ - "\x126\x94\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x745\x3"+ - "\x2\x2\x2\x745\x747\a\xDE\x2\x2\x746\x748\x5\x126\x94\x2\x747\x746\x3"+ - "\x2\x2\x2\x747\x748\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2\x749\x75D\x5\xBC"+ - "_\x6\x74A\x74C\f\x4\x2\x2\x74B\x74D\x5\x126\x94\x2\x74C\x74B\x3\x2\x2"+ - "\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x750\ak\x2\x2\x74F"+ - "\x751\x5\x126\x94\x2\x750\x74F\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751"+ - "\x752\x3\x2\x2\x2\x752\x75D\x5\xBC_\x5\x753\x755\f\x3\x2\x2\x754\x756"+ - "\x5\x126\x94\x2\x755\x754\x3\x2\x2\x2\x755\x756\x3\x2\x2\x2\x756\x757"+ - "\x3\x2\x2\x2\x757\x759\a~\x2\x2\x758\x75A\x5\x126\x94\x2\x759\x758\x3"+ - "\x2\x2\x2\x759\x75A\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x75D\x5\xBC"+ - "_\x4\x75C\x6F0\x3\x2\x2\x2\x75C\x6F9\x3\x2\x2\x2\x75C\x702\x3\x2\x2\x2"+ - "\x75C\x70B\x3\x2\x2\x2\x75C\x714\x3\x2\x2\x2\x75C\x71D\x3\x2\x2\x2\x75C"+ - "\x726\x3\x2\x2\x2\x75C\x72F\x3\x2\x2\x2\x75C\x738\x3\x2\x2\x2\x75C\x741"+ - "\x3\x2\x2\x2\x75C\x74A\x3\x2\x2\x2\x75C\x753\x3\x2\x2\x2\x75D\x760\x3"+ - "\x2\x2\x2\x75E\x75C\x3\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\xBD\x3\x2\x2"+ - "\x2\x760\x75E\x3\x2\x2\x2\x761\x762\a\xD2\x2\x2\x762\x763\x5\x126\x94"+ - "\x2\x763\x769\x5\xBC_\x2\x764\x765\x5\x126\x94\x2\x765\x766\a\x82\x2\x2"+ - "\x766\x767\x5\x126\x94\x2\x767\x768\x5\x10C\x87\x2\x768\x76A\x3\x2\x2"+ - "\x2\x769\x764\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2\x76A\xBF\x3\x2\x2\x2\x76B"+ - "\x76F\aZ\x2\x2\x76C\x76F\a\xC6\x2\x2\x76D\x76F\x5\x110\x89\x2\x76E\x76B"+ - "\x3\x2\x2\x2\x76E\x76C\x3\x2\x2\x2\x76E\x76D\x3\x2\x2\x2\x76F\x770\x3"+ - "\x2\x2\x2\x770\x773\x5\x126\x94\x2\x771\x772\a\xDC\x2\x2\x772\x774\x5"+ - "\x126\x94\x2\x773\x771\x3\x2\x2\x2\x773\x774\x3\x2\x2\x2\x774\x775\x3"+ - "\x2\x2\x2\x775\x776\x5\xC2\x62\x2\x776\xC1\x3\x2\x2\x2\x777\x782\x5\xC4"+ - "\x63\x2\x778\x77A\x5\x126\x94\x2\x779\x778\x3\x2\x2\x2\x779\x77A\x3\x2"+ - "\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77D\a)\x2\x2\x77C\x77E\x5\x126\x94"+ - "\x2\x77D\x77C\x3\x2\x2\x2\x77D\x77E\x3\x2\x2\x2\x77E\x77F\x3\x2\x2\x2"+ - "\x77F\x781\x5\xC4\x63\x2\x780\x779\x3\x2\x2\x2\x781\x784\x3\x2\x2\x2\x782"+ - "\x780\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\xC3\x3\x2\x2\x2\x784\x782"+ - "\x3\x2\x2\x2\x785\x797\x5\xF8}\x2\x786\x788\x5\x126\x94\x2\x787\x786\x3"+ - "\x2\x2\x2\x787\x788\x3\x2\x2\x2\x788\x789\x3\x2\x2\x2\x789\x78B\a\xE6"+ - "\x2\x2\x78A\x78C\x5\x126\x94\x2\x78B\x78A\x3\x2\x2\x2\x78B\x78C\x3\x2"+ - "\x2\x2\x78C\x791\x3\x2\x2\x2\x78D\x78F\x5\xF4{\x2\x78E\x790\x5\x126\x94"+ - "\x2\x78F\x78E\x3\x2\x2\x2\x78F\x790\x3\x2\x2\x2\x790\x792\x3\x2\x2\x2"+ - "\x791\x78D\x3\x2\x2\x2\x791\x792\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793"+ - "\x795\a\xED\x2\x2\x794\x796\x5\x126\x94\x2\x795\x794\x3\x2\x2\x2\x795"+ - "\x796\x3\x2\x2\x2\x796\x798\x3\x2\x2\x2\x797\x787\x3\x2\x2\x2\x797\x798"+ - "\x3\x2\x2\x2\x798\x79A\x3\x2\x2\x2\x799\x79B\x5\x10E\x88\x2\x79A\x799"+ - "\x3\x2\x2\x2\x79A\x79B\x3\x2\x2\x2\x79B\x79F\x3\x2\x2\x2\x79C\x79D\x5"+ - "\x126\x94\x2\x79D\x79E\x5\xFA~\x2\x79E\x7A0\x3\x2\x2\x2\x79F\x79C\x3\x2"+ - "\x2\x2\x79F\x7A0\x3\x2\x2\x2\x7A0\xC5\x3\x2\x2\x2\x7A1\x7A2\a\xD9\x2\x2"+ - "\x7A2\x7A3\x5\x126\x94\x2\x7A3\x7A4\x5\xBC_\x2\x7A4\x7A6\x5\x116\x8C\x2"+ - "\x7A5\x7A7\x5\x1A\xE\x2\x7A6\x7A5\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7"+ - "\x7A8\x3\x2\x2\x2\x7A8\x7A9\a\xD8\x2\x2\x7A9\xC7\x3\x2\x2\x2\x7AA\x7AB"+ - "\a\xDA\x2\x2\x7AB\x7AC\x5\x126\x94\x2\x7AC\x7AE\x5\xD0i\x2\x7AD\x7AF\x5"+ - "\x126\x94\x2\x7AE\x7AD\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x3"+ - "\x2\x2\x2\x7B0\x7B2\a)\x2\x2\x7B1\x7B3\x5\x126\x94\x2\x7B2\x7B1\x3\x2"+ - "\x2\x2\x7B2\x7B3\x3\x2\x2\x2\x7B3\x7B4\x3\x2\x2\x2\x7B4\x7B5\x5\xBC_\x2"+ - "\x7B5\xC9\x3\x2\x2\x2\x7B6\x7B7\a\xDB\x2\x2\x7B7\x7B8\x5\x126\x94\x2\x7B8"+ - "\x7B9\x5\xCCg\x2\x7B9\x7BB\x5\x116\x8C\x2\x7BA\x7BC\x5\x1A\xE\x2\x7BB"+ - "\x7BA\x3\x2\x2\x2\x7BB\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BE"+ - "\ah\x2\x2\x7BE\xCB\x3\x2\x2\x2\x7BF\x7C0\x5\xBC_\x2\x7C0\xCD\x3\x2\x2"+ - "\x2\x7C1\x7C2\a\xDD\x2\x2\x7C2\x7C3\x5\x126\x94\x2\x7C3\x7C5\x5\xD0i\x2"+ - "\x7C4\x7C6\x5\x126\x94\x2\x7C5\x7C4\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2"+ - "\x7C6\x7C7\x3\x2\x2\x2\x7C7\x7CC\a)\x2\x2\x7C8\x7CA\x5\x126\x94\x2\x7C9"+ - "\x7C8\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7CD"+ - "\x5z>\x2\x7CC\x7C9\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\xCF\x3\x2\x2"+ - "\x2\x7CE\x7D0\a.\x2\x2\x7CF\x7CE\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0"+ - "\x7D1\x3\x2\x2\x2\x7D1\x7D2\x5\xBC_\x2\x7D2\xD1\x3\x2\x2\x2\x7D3\x7D4"+ - "\a\x42\x2\x2\x7D4\x7D5\x5\x126\x94\x2\x7D5\x7D6\x5\xD4k\x2\x7D6\xD3\x3"+ - "\x2\x2\x2\x7D7\x7D9\x5\xDCo\x2\x7D8\x7D7\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2"+ - "\x2\x7D9\x7DA\x3\x2\x2\x2\x7DA\x7DB\a-\x2\x2\x7DB\x7DD\x5\xF8}\x2\x7DC"+ - "\x7DE\x5\x10E\x88\x2\x7DD\x7DC\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE"+ - "\x7EC\x3\x2\x2\x2\x7DF\x7E1\x5\x126\x94\x2\x7E0\x7DF\x3\x2\x2\x2\x7E0"+ - "\x7E1\x3\x2\x2\x2\x7E1\x7E2\x3\x2\x2\x2\x7E2\x7E4\a\xE6\x2\x2\x7E3\x7E5"+ - "\x5\x126\x94\x2\x7E4\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6"+ - "\x3\x2\x2\x2\x7E6\x7E8\x5\xE8u\x2\x7E7\x7E9\x5\x126\x94\x2\x7E8\x7E7\x3"+ - "\x2\x2\x2\x7E8\x7E9\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2\x7EA\x7EB\a\xED"+ - "\x2\x2\x7EB\x7ED\x3\x2\x2\x2\x7EC\x7E0\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2"+ - "\x2\x7ED\x7F7\x3\x2\x2\x2\x7EE\x7F0\x5\x126\x94\x2\x7EF\x7EE\x3\x2\x2"+ - "\x2\x7EF\x7F0\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7F2\a\xE6\x2\x2"+ - "\x7F2\x7F3\x5\xF4{\x2\x7F3\x7F4\a\xED\x2\x2\x7F4\x7F6\x3\x2\x2\x2\x7F5"+ - "\x7EF\x3\x2\x2\x2\x7F6\x7F9\x3\x2\x2\x2\x7F7\x7F5\x3\x2\x2\x2\x7F7\x7F8"+ - "\x3\x2\x2\x2\x7F8\x81A\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2\x7FA\x7FC\x5"+ - "\xF8}\x2\x7FB\x7FD\x5\x10E\x88\x2\x7FC\x7FB\x3\x2\x2\x2\x7FC\x7FD\x3\x2"+ - "\x2\x2\x7FD\x80B\x3\x2\x2\x2\x7FE\x800\x5\x126\x94\x2\x7FF\x7FE\x3\x2"+ - "\x2\x2\x7FF\x800\x3\x2\x2\x2\x800\x801\x3\x2\x2\x2\x801\x803\a\xE6\x2"+ - "\x2\x802\x804\x5\x126\x94\x2\x803\x802\x3\x2\x2\x2\x803\x804\x3\x2\x2"+ - "\x2\x804\x805\x3\x2\x2\x2\x805\x807\x5\xE8u\x2\x806\x808\x5\x126\x94\x2"+ - "\x807\x806\x3\x2\x2\x2\x807\x808\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809"+ - "\x80A\a\xED\x2\x2\x80A\x80C\x3\x2\x2\x2\x80B\x7FF\x3\x2\x2\x2\x80B\x80C"+ - "\x3\x2\x2\x2\x80C\x816\x3\x2\x2\x2\x80D\x80F\x5\x126\x94\x2\x80E\x80D"+ - "\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x811\a\xE6"+ - "\x2\x2\x811\x812\x5\xF4{\x2\x812\x813\a\xED\x2\x2\x813\x815\x3\x2\x2\x2"+ - "\x814\x80E\x3\x2\x2\x2\x815\x818\x3\x2\x2\x2\x816\x814\x3\x2\x2\x2\x816"+ - "\x817\x3\x2\x2\x2\x817\x81A\x3\x2\x2\x2\x818\x816\x3\x2\x2\x2\x819\x7D8"+ - "\x3\x2\x2\x2\x819\x7FA\x3\x2\x2\x2\x81A\xD5\x3\x2\x2\x2\x81B\x81E\x5\xD8"+ - "m\x2\x81C\x81E\x5\xDAn\x2\x81D\x81B\x3\x2\x2\x2\x81D\x81C\x3\x2\x2\x2"+ - "\x81E\xD7\x3\x2\x2\x2\x81F\x821\x5\xDCo\x2\x820\x81F\x3\x2\x2\x2\x820"+ - "\x821\x3\x2\x2\x2\x821\x823\x3\x2\x2\x2\x822\x824\x5\x126\x94\x2\x823"+ - "\x822\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x825\x3\x2\x2\x2\x825\x827"+ - "\a-\x2\x2\x826\x828\x5\x126\x94\x2\x827\x826\x3\x2\x2\x2\x827\x828\x3"+ - "\x2\x2\x2\x828\x829\x3\x2\x2\x2\x829\x82B\x5\xF8}\x2\x82A\x82C\x5\x10E"+ - "\x88\x2\x82B\x82A\x3\x2\x2\x2\x82B\x82C\x3\x2\x2\x2\x82C\x830\x3\x2\x2"+ - "\x2\x82D\x82E\x5\x126\x94\x2\x82E\x82F\x5\xE8u\x2\x82F\x831\x3\x2\x2\x2"+ - "\x830\x82D\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x836\x3\x2\x2\x2\x832"+ - "\x834\x5\x126\x94\x2\x833\x832\x3\x2\x2\x2\x833\x834\x3\x2\x2\x2\x834"+ - "\x835\x3\x2\x2\x2\x835\x837\x5\xECw\x2\x836\x833\x3\x2\x2\x2\x836\x837"+ - "\x3\x2\x2\x2\x837\x841\x3\x2\x2\x2\x838\x83A\x5\x126\x94\x2\x839\x838"+ - "\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83B\x3\x2\x2\x2\x83B\x83C\a\xE6"+ - "\x2\x2\x83C\x83D\x5\xF4{\x2\x83D\x83E\a\xED\x2\x2\x83E\x840\x3\x2\x2\x2"+ - "\x83F\x839\x3\x2\x2\x2\x840\x843\x3\x2\x2\x2\x841\x83F\x3\x2\x2\x2\x841"+ - "\x842\x3\x2\x2\x2\x842\xD9\x3\x2\x2\x2\x843\x841\x3\x2\x2\x2\x844\x848"+ - "\x5\xF8}\x2\x845\x846\x5\x126\x94\x2\x846\x847\x5\xE8u\x2\x847\x849\x3"+ - "\x2\x2\x2\x848\x845\x3\x2\x2\x2\x848\x849\x3\x2\x2\x2\x849\x853\x3\x2"+ - "\x2\x2\x84A\x84C\x5\x126\x94\x2\x84B\x84A\x3\x2\x2\x2\x84B\x84C\x3\x2"+ - "\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84E\a\xE6\x2\x2\x84E\x84F\x5\xF4{\x2"+ - "\x84F\x850\a\xED\x2\x2\x850\x852\x3\x2\x2\x2\x851\x84B\x3\x2\x2\x2\x852"+ - "\x855\x3\x2\x2\x2\x853\x851\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\xDB"+ - "\x3\x2\x2\x2\x855\x853\x3\x2\x2\x2\x856\x85B\x5\xE2r\x2\x857\x85B\x5\xDE"+ - "p\x2\x858\x85B\x5\xE0q\x2\x859\x85B\x5\xE6t\x2\x85A\x856\x3\x2\x2\x2\x85A"+ - "\x857\x3\x2\x2\x2\x85A\x858\x3\x2\x2\x2\x85A\x859\x3\x2\x2\x2\x85B\xDD"+ - "\x3\x2\x2\x2\x85C\x85E\x5\xF8}\x2\x85D\x85F\x5\x10E\x88\x2\x85E\x85D\x3"+ - "\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\x864\x3\x2\x2\x2\x860\x862\x5\x126"+ - "\x94\x2\x861\x860\x3\x2\x2\x2\x861\x862\x3\x2\x2\x2\x862\x863\x3\x2\x2"+ - "\x2\x863\x865\x5\xECw\x2\x864\x861\x3\x2\x2\x2\x864\x865\x3\x2\x2\x2\x865"+ - "\x86F\x3\x2\x2\x2\x866\x868\x5\x126\x94\x2\x867\x866\x3\x2\x2\x2\x867"+ - "\x868\x3\x2\x2\x2\x868\x869\x3\x2\x2\x2\x869\x86A\a\xE6\x2\x2\x86A\x86B"+ - "\x5\xF4{\x2\x86B\x86C\a\xED\x2\x2\x86C\x86E\x3\x2\x2\x2\x86D\x867\x3\x2"+ - "\x2\x2\x86E\x871\x3\x2\x2\x2\x86F\x86D\x3\x2\x2\x2\x86F\x870\x3\x2\x2"+ - "\x2\x870\xDF\x3\x2\x2\x2\x871\x86F\x3\x2\x2\x2\x872\x875\x5\xF8}\x2\x873"+ - "\x875\x5\xFC\x7F\x2\x874\x872\x3\x2\x2\x2\x874\x873\x3\x2\x2\x2\x875\x877"+ - "\x3\x2\x2\x2\x876\x878\x5\x10E\x88\x2\x877\x876\x3\x2\x2\x2\x877\x878"+ - "\x3\x2\x2\x2\x878\x87A\x3\x2\x2\x2\x879\x87B\x5\x126\x94\x2\x87A\x879"+ - "\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87E\a\xE6"+ - "\x2\x2\x87D\x87F\x5\x126\x94\x2\x87E\x87D\x3\x2\x2\x2\x87E\x87F\x3\x2"+ - "\x2\x2\x87F\x884\x3\x2\x2\x2\x880\x882\x5\xE8u\x2\x881\x883\x5\x126\x94"+ - "\x2\x882\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x885\x3\x2\x2\x2"+ - "\x884\x880\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886"+ - "\x88B\a\xED\x2\x2\x887\x889\x5\x126\x94\x2\x888\x887\x3\x2\x2\x2\x888"+ - "\x889\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88C\x5\xECw\x2\x88B\x888"+ - "\x3\x2\x2\x2\x88B\x88C\x3\x2\x2\x2\x88C\x896\x3\x2\x2\x2\x88D\x88F\x5"+ - "\x126\x94\x2\x88E\x88D\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x890\x3"+ - "\x2\x2\x2\x890\x891\a\xE6\x2\x2\x891\x892\x5\xF4{\x2\x892\x893\a\xED\x2"+ - "\x2\x893\x895\x3\x2\x2\x2\x894\x88E\x3\x2\x2\x2\x895\x898\x3\x2\x2\x2"+ - "\x896\x894\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\xE1\x3\x2\x2\x2\x898"+ - "\x896\x3\x2\x2\x2\x899\x89C\x5\xDEp\x2\x89A\x89C\x5\xE0q\x2\x89B\x899"+ - "\x3\x2\x2\x2\x89B\x89A\x3\x2\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\x8A1\x3"+ - "\x2\x2\x2\x89D\x89F\x5\xE4s\x2\x89E\x8A0\x5\x126\x94\x2\x89F\x89E\x3\x2"+ - "\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A2\x3\x2\x2\x2\x8A1\x89D\x3\x2\x2"+ - "\x2\x8A2\x8A3\x3\x2\x2\x2\x8A3\x8A1\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2"+ - "\x8A4\x8A9\x3\x2\x2\x2\x8A5\x8A7\x5\x126\x94\x2\x8A6\x8A5\x3\x2\x2\x2"+ - "\x8A6\x8A7\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8AA\x5\xECw\x2\x8A9"+ - "\x8A6\x3\x2\x2\x2\x8A9\x8AA\x3\x2\x2\x2\x8AA\x8B4\x3\x2\x2\x2\x8AB\x8AD"+ - "\x5\x126\x94\x2\x8AC\x8AB\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE"+ - "\x3\x2\x2\x2\x8AE\x8AF\a\xE6\x2\x2\x8AF\x8B0\x5\xF4{\x2\x8B0\x8B1\a\xED"+ - "\x2\x2\x8B1\x8B3\x3\x2\x2\x2\x8B2\x8AC\x3\x2\x2\x2\x8B3\x8B6\x3\x2\x2"+ - "\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4\x8B5\x3\x2\x2\x2\x8B5\xE3\x3\x2\x2\x2\x8B6"+ - "\x8B4\x3\x2\x2\x2\x8B7\x8B9\t\xF\x2\x2\x8B8\x8BA\x5\x126\x94\x2\x8B9\x8B8"+ - "\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\x8BD\x3\x2\x2\x2\x8BB\x8BE\x5"+ - "\xDEp\x2\x8BC\x8BE\x5\xE0q\x2\x8BD\x8BB\x3\x2\x2\x2\x8BD\x8BC\x3\x2\x2"+ - "\x2\x8BE\xE5\x3\x2\x2\x2\x8BF\x8C1\x5\x126\x94\x2\x8C0\x8BF\x3\x2\x2\x2"+ - "\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C3\x5\xECw\x2\x8C3"+ - "\xE7\x3\x2\x2\x2\x8C4\x8C6\x5\xEAv\x2\x8C5\x8C4\x3\x2\x2\x2\x8C5\x8C6"+ - "\x3\x2\x2\x2\x8C6\x8C8\x3\x2\x2\x2\x8C7\x8C9\x5\x126\x94\x2\x8C8\x8C7"+ - "\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n"+ - "\x2\x2\x8CB\x8CD\x5\x126\x94\x2\x8CC\x8CB\x3\x2\x2\x2\x8CC\x8CD\x3\x2"+ - "\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8C5\x3\x2\x2\x2\x8CF\x8D2\x3\x2\x2"+ - "\x2\x8D0\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8D3\x3\x2\x2\x2"+ - "\x8D2\x8D0\x3\x2\x2\x2\x8D3\x8E0\x5\xEAv\x2\x8D4\x8D6\x5\x126\x94\x2\x8D5"+ - "\x8D4\x3\x2\x2\x2\x8D5\x8D6\x3\x2\x2\x2\x8D6\x8D7\x3\x2\x2\x2\x8D7\x8D9"+ - "\t\n\x2\x2\x8D8\x8DA\x5\x126\x94\x2\x8D9\x8D8\x3\x2\x2\x2\x8D9\x8DA\x3"+ - "\x2\x2\x2\x8DA\x8DC\x3\x2\x2\x2\x8DB\x8DD\x5\xEAv\x2\x8DC\x8DB\x3\x2\x2"+ - "\x2\x8DC\x8DD\x3\x2\x2\x2\x8DD\x8DF\x3\x2\x2\x2\x8DE\x8D5\x3\x2\x2\x2"+ - "\x8DF\x8E2\x3\x2\x2\x2\x8E0\x8DE\x3\x2\x2\x2\x8E0\x8E1\x3\x2\x2\x2\x8E1"+ - "\xE9\x3\x2\x2\x2\x8E2\x8E0\x3\x2\x2\x2\x8E3\x8E5\a\xE6\x2\x2\x8E4\x8E3"+ - "\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5\x8E8\x3\x2\x2\x2\x8E6\x8E7\t\x10"+ - "\x2\x2\x8E7\x8E9\x5\x126\x94\x2\x8E8\x8E6\x3\x2\x2\x2\x8E8\x8E9\x3\x2"+ - "\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8EC\a\xED\x2\x2\x8EB\x8EA\x3\x2\x2"+ - "\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EE\x5\xBC_\x2\x8EE"+ - "\xEB\x3\x2\x2\x2\x8EF\x8F1\a,\x2\x2\x8F0\x8F2\x5\x126\x94\x2\x8F1\x8F0"+ - "\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3\x8F5\x5"+ - "\xF8}\x2\x8F4\x8F6\x5\x10E\x88\x2\x8F5\x8F4\x3\x2\x2\x2\x8F5\x8F6\x3\x2"+ - "\x2\x2\x8F6\xED\x3\x2\x2\x2\x8F7\x909\a\xE6\x2\x2\x8F8\x8FA\x5\x126\x94"+ - "\x2\x8F9\x8F8\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2"+ - "\x8FB\x906\x5\xF0y\x2\x8FC\x8FE\x5\x126\x94\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD"+ - "\x8FE\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2\x8FF\x901\a)\x2\x2\x900\x902\x5"+ - "\x126\x94\x2\x901\x900\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\x903\x3"+ - "\x2\x2\x2\x903\x905\x5\xF0y\x2\x904\x8FD\x3\x2\x2\x2\x905\x908\x3\x2\x2"+ - "\x2\x906\x904\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x90A\x3\x2\x2\x2"+ - "\x908\x906\x3\x2\x2\x2\x909\x8F9\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2\x90A"+ - "\x90C\x3\x2\x2\x2\x90B\x90D\x5\x126\x94\x2\x90C\x90B\x3\x2\x2\x2\x90C"+ - "\x90D\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\a\xED\x2\x2\x90F\xEF"+ - "\x3\x2\x2\x2\x910\x911\a\x9F\x2\x2\x911\x913\x5\x126\x94\x2\x912\x910"+ - "\x3\x2\x2\x2\x912\x913\x3\x2\x2\x2\x913\x916\x3\x2\x2\x2\x914\x915\t\x11"+ - "\x2\x2\x915\x917\x5\x126\x94\x2\x916\x914\x3\x2\x2\x2\x916\x917\x3\x2"+ - "\x2\x2\x917\x91A\x3\x2\x2\x2\x918\x919\a\xA6\x2\x2\x919\x91B\x5\x126\x94"+ - "\x2\x91A\x918\x3\x2\x2\x2\x91A\x91B\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2"+ - "\x91C\x91E\x5\xF8}\x2\x91D\x91F\x5\x10E\x88\x2\x91E\x91D\x3\x2\x2\x2\x91E"+ - "\x91F\x3\x2\x2\x2\x91F\x928\x3\x2\x2\x2\x920\x922\x5\x126\x94\x2\x921"+ - "\x920\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923\x925"+ - "\a\xE6\x2\x2\x924\x926\x5\x126\x94\x2\x925\x924\x3\x2\x2\x2\x925\x926"+ - "\x3\x2\x2\x2\x926\x927\x3\x2\x2\x2\x927\x929\a\xED\x2\x2\x928\x921\x3"+ - "\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92E\x3\x2\x2\x2\x92A\x92C\x5\x126"+ - "\x94\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92D\x3\x2\x2"+ - "\x2\x92D\x92F\x5\xFA~\x2\x92E\x92B\x3\x2\x2\x2\x92E\x92F\x3\x2\x2\x2\x92F"+ - "\x934\x3\x2\x2\x2\x930\x932\x5\x126\x94\x2\x931\x930\x3\x2\x2\x2\x931"+ - "\x932\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x935\x5\xF2z\x2\x934\x931"+ - "\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\xF1\x3\x2\x2\x2\x936\x938\a\xE2"+ - "\x2\x2\x937\x939\x5\x126\x94\x2\x938\x937\x3\x2\x2\x2\x938\x939\x3\x2"+ - "\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x5\xBC_\x2\x93B\xF3\x3\x2\x2\x2"+ - "\x93C\x947\x5\xF6|\x2\x93D\x93F\x5\x126\x94\x2\x93E\x93D\x3\x2\x2\x2\x93E"+ - "\x93F\x3\x2\x2\x2\x93F\x940\x3\x2\x2\x2\x940\x942\a)\x2\x2\x941\x943\x5"+ - "\x126\x94\x2\x942\x941\x3\x2\x2\x2\x942\x943\x3\x2\x2\x2\x943\x944\x3"+ - "\x2\x2\x2\x944\x946\x5\xF6|\x2\x945\x93E\x3\x2\x2\x2\x946\x949\x3\x2\x2"+ - "\x2\x947\x945\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\xF5\x3\x2\x2\x2\x949"+ - "\x947\x3\x2\x2\x2\x94A\x94B\x5\xBC_\x2\x94B\x94C\x5\x126\x94\x2\x94C\x94D"+ - "\a\xCF\x2\x2\x94D\x94E\x5\x126\x94\x2\x94E\x950\x3\x2\x2\x2\x94F\x94A"+ - "\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x5"+ - "\xBC_\x2\x952\xF7\x3\x2\x2\x2\x953\x956\a\x101\x2\x2\x954\x956\x5\x112"+ - "\x8A\x2\x955\x953\x3\x2\x2\x2\x955\x954\x3\x2\x2\x2\x956\xF9\x3\x2\x2"+ - "\x2\x957\x959\a:\x2\x2\x958\x95A\x5\x126\x94\x2\x959\x958\x3\x2\x2\x2"+ - "\x959\x95A\x3\x2\x2\x2\x95A\x95D\x3\x2\x2\x2\x95B\x95C\a\x97\x2\x2\x95C"+ - "\x95E\x5\x126\x94\x2\x95D\x95B\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E"+ - "\x95F\x3\x2\x2\x2\x95F\x964\x5\x10C\x87\x2\x960\x962\x5\x126\x94\x2\x961"+ - "\x960\x3\x2\x2\x2\x961\x962\x3\x2\x2\x2\x962\x963\x3\x2\x2\x2\x963\x965"+ - "\x5\x102\x82\x2\x964\x961\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\xFB\x3"+ - "\x2\x2\x2\x966\x967\t\x12\x2\x2\x967\xFD\x3\x2\x2\x2\x968\x969\t\xE\x2"+ - "\x2\x969\xFF\x3\x2\x2\x2\x96A\x96F\x5\xF8}\x2\x96B\x96C\t\xF\x2\x2\x96C"+ - "\x96E\x5\xF8}\x2\x96D\x96B\x3\x2\x2\x2\x96E\x971\x3\x2\x2\x2\x96F\x96D"+ - "\x3\x2\x2\x2\x96F\x970\x3\x2\x2\x2\x970\x101\x3\x2\x2\x2\x971\x96F\x3"+ - "\x2\x2\x2\x972\x974\a\xE9\x2\x2\x973\x975\x5\x126\x94\x2\x974\x973\x3"+ - "\x2\x2\x2\x974\x975\x3\x2\x2\x2\x975\x978\x3\x2\x2\x2\x976\x979\x5\x10A"+ - "\x86\x2\x977\x979\x5\xF8}\x2\x978\x976\x3\x2\x2\x2\x978\x977\x3\x2\x2"+ - "\x2\x979\x103\x3\x2\x2\x2\x97A\x983\x5\xF8}\x2\x97B\x97D\x5\x126\x94\x2"+ - "\x97C\x97B\x3\x2\x2\x2\x97C\x97D\x3\x2\x2\x2\x97D\x97E\x3\x2\x2\x2\x97E"+ - "\x980\a\xE8\x2\x2\x97F\x981\x5\x126\x94\x2\x980\x97F\x3\x2\x2\x2\x980"+ - "\x981\x3\x2\x2\x2\x981\x982\x3\x2\x2\x2\x982\x984\x5\xF8}\x2\x983\x97C"+ - "\x3\x2\x2\x2\x983\x984\x3\x2\x2\x2\x984\x105\x3\x2\x2\x2\x985\x988\x5"+ - "\xF8}\x2\x986\x988\x5\x10A\x86\x2\x987\x985\x3\x2\x2\x2\x987\x986\x3\x2"+ - "\x2\x2\x988\x989\x3\x2\x2\x2\x989\x98A\a*\x2\x2\x98A\x107\x3\x2\x2\x2"+ - "\x98B\x994\x5\x10A\x86\x2\x98C\x994\a\xFA\x2\x2\x98D\x994\a\xF5\x2\x2"+ - "\x98E\x994\a\xD0\x2\x2\x98F\x994\at\x2\x2\x990\x994\a\x99\x2\x2\x991\x994"+ - "\a\x9A\x2\x2\x992\x994\a`\x2\x2\x993\x98B\x3\x2\x2\x2\x993\x98C\x3\x2"+ - "\x2\x2\x993\x98D\x3\x2\x2\x2\x993\x98E\x3\x2\x2\x2\x993\x98F\x3\x2\x2"+ - "\x2\x993\x990\x3\x2\x2\x2\x993\x991\x3\x2\x2\x2\x993\x992\x3\x2\x2\x2"+ - "\x994\x109\x3\x2\x2\x2\x995\x996\t\x13\x2\x2\x996\x10B\x3\x2\x2\x2\x997"+ - "\x99A\x5\xFC\x7F\x2\x998\x99A\x5\x100\x81\x2\x999\x997\x3\x2\x2\x2\x999"+ - "\x998\x3\x2\x2\x2\x99A\x9A3\x3\x2\x2\x2\x99B\x99D\x5\x126\x94\x2\x99C"+ - "\x99B\x3\x2\x2\x2\x99C\x99D\x3\x2\x2\x2\x99D\x99E\x3\x2\x2\x2\x99E\x9A0"+ - "\a\xE6\x2\x2\x99F\x9A1\x5\x126\x94\x2\x9A0\x99F\x3\x2\x2\x2\x9A0\x9A1"+ - "\x3\x2\x2\x2\x9A1\x9A2\x3\x2\x2\x2\x9A2\x9A4\a\xED\x2\x2\x9A3\x99C\x3"+ - "\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x10D\x3\x2\x2\x2\x9A5\x9A6\t\x14"+ - "\x2\x2\x9A6\x10F\x3\x2\x2\x2\x9A7\x9A8\t\x15\x2\x2\x9A8\x111\x3\x2\x2"+ - "\x2\x9A9\x9AA\t\x16\x2\x2\x9AA\x113\x3\x2\x2\x2\x9AB\x9AD\x5\x126\x94"+ - "\x2\x9AC\x9AB\x3\x2\x2\x2\x9AC\x9AD\x3\x2\x2\x2\x9AD\x9B5\x3\x2\x2\x2"+ - "\x9AE\x9B0\a\xFB\x2\x2\x9AF\x9AE\x3\x2\x2\x2\x9B0\x9B1\x3\x2\x2\x2\x9B1"+ - "\x9AF\x3\x2\x2\x2\x9B1\x9B2\x3\x2\x2\x2\x9B2\x9B6\x3\x2\x2\x2\x9B3\x9B6"+ - "\x5\x11A\x8E\x2\x9B4\x9B6\x5\x118\x8D\x2\x9B5\x9AF\x3\x2\x2\x2\x9B5\x9B3"+ - "\x3\x2\x2\x2\x9B5\x9B4\x3\x2\x2\x2\x9B6\x9B8\x3\x2\x2\x2\x9B7\x9B9\x5"+ - "\x126\x94\x2\x9B8\x9B7\x3\x2\x2\x2\x9B8\x9B9\x3\x2\x2\x2\x9B9\x9BF\x3"+ - "\x2\x2\x2\x9BA\x9BC\x5\x126\x94\x2\x9BB\x9BA\x3\x2\x2\x2\x9BB\x9BC\x3"+ - "\x2\x2\x2\x9BC\x9BD\x3\x2\x2\x2\x9BD\x9BF\x5\x11C\x8F\x2\x9BE\x9AC\x3"+ - "\x2\x2\x2\x9BE\x9BB\x3\x2\x2\x2\x9BF\x115\x3\x2\x2\x2\x9C0\x9C9\x5\x114"+ - "\x8B\x2\x9C1\x9C3\x5\x126\x94\x2\x9C2\x9C1\x3\x2\x2\x2\x9C2\x9C3\x3\x2"+ - "\x2\x2\x9C3\x9C4\x3\x2\x2\x2\x9C4\x9C6\a*\x2\x2\x9C5\x9C7\x5\x126\x94"+ - "\x2\x9C6\x9C5\x3\x2\x2\x2\x9C6\x9C7\x3\x2\x2\x2\x9C7\x9C9\x3\x2\x2\x2"+ - "\x9C8\x9C0\x3\x2\x2\x2\x9C8\x9C2\x3\x2\x2\x2\x9C9\x9CC\x3\x2\x2\x2\x9CA"+ - "\x9C8\x3\x2\x2\x2\x9CA\x9CB\x3\x2\x2\x2\x9CB\x117\x3\x2\x2\x2\x9CC\x9CA"+ - "\x3\x2\x2\x2\x9CD\x9CE\a\xFC\x2\x2\x9CE\x119\x3\x2\x2\x2\x9CF\x9D0\t\x17"+ - "\x2\x2\x9D0\x11B\x3\x2\x2\x2\x9D1\x9D3\a\xFE\x2\x2\x9D2\x9D4\x5\x11E\x90"+ - "\x2\x9D3\x9D2\x3\x2\x2\x2\x9D4\x9D5\x3\x2\x2\x2\x9D5\x9D3\x3\x2\x2\x2"+ - "\x9D5\x9D6\x3\x2\x2\x2\x9D6\x11D\x3\x2\x2\x2\x9D7\x9D8\a/\x2\x2\x9D8\x9DA"+ - "\x5\x120\x91\x2\x9D9\x9DB\x5\x122\x92\x2\x9DA\x9D9\x3\x2\x2\x2\x9DA\x9DB"+ - "\x3\x2\x2\x2\x9DB\x11F\x3\x2\x2\x2\x9DC\x9DD\a\x101\x2\x2\x9DD\x121\x3"+ - "\x2\x2\x2\x9DE\x9DF\x5\x126\x94\x2\x9DF\x9E1\x5\x124\x93\x2\x9E0\x9E2"+ - "\x5\x126\x94\x2\x9E1\x9E0\x3\x2\x2\x2\x9E1\x9E2\x3\x2\x2\x2\x9E2\xA1C"+ - "\x3\x2\x2\x2\x9E3\x9E4\x5\x126\x94\x2\x9E4\x9ED\x5\x124\x93\x2\x9E5\x9E7"+ - "\x5\x126\x94\x2\x9E6\x9E5\x3\x2\x2\x2\x9E6\x9E7\x3\x2\x2\x2\x9E7\x9E8"+ - "\x3\x2\x2\x2\x9E8\x9EA\a)\x2\x2\x9E9\x9EB\x5\x126\x94\x2\x9EA\x9E9\x3"+ - "\x2\x2\x2\x9EA\x9EB\x3\x2\x2\x2\x9EB\x9EC\x3\x2\x2\x2\x9EC\x9EE\x5\x124"+ - "\x93\x2\x9ED\x9E6\x3\x2\x2\x2\x9EE\x9EF\x3\x2\x2\x2\x9EF\x9ED\x3\x2\x2"+ - "\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F2\x3\x2\x2\x2\x9F1\x9F3\x5\x126\x94"+ - "\x2\x9F2\x9F1\x3\x2\x2\x2\x9F2\x9F3\x3\x2\x2\x2\x9F3\xA1C\x3\x2\x2\x2"+ - "\x9F4\x9F6\x5\x126\x94\x2\x9F5\x9F4\x3\x2\x2\x2\x9F5\x9F6\x3\x2\x2\x2"+ - "\x9F6\x9F7\x3\x2\x2\x2\x9F7\x9F9\a\xE6\x2\x2\x9F8\x9FA\x5\x126\x94\x2"+ - "\x9F9\x9F8\x3\x2\x2\x2\x9F9\x9FA\x3\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2\x9FB"+ - "\x9FD\x5\x124\x93\x2\x9FC\x9FE\x5\x126\x94\x2\x9FD\x9FC\x3\x2\x2\x2\x9FD"+ - "\x9FE\x3\x2\x2\x2\x9FE\x9FF\x3\x2\x2\x2\x9FF\xA01\a\xED\x2\x2\xA00\xA02"+ - "\x5\x126\x94\x2\xA01\xA00\x3\x2\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA1C"+ - "\x3\x2\x2\x2\xA03\xA05\x5\x126\x94\x2\xA04\xA03\x3\x2\x2\x2\xA04\xA05"+ - "\x3\x2\x2\x2\xA05\xA06\x3\x2\x2\x2\xA06\xA07\a\xE6\x2\x2\xA07\xA10\x5"+ - "\x124\x93\x2\xA08\xA0A\x5\x126\x94\x2\xA09\xA08\x3\x2\x2\x2\xA09\xA0A"+ - "\x3\x2\x2\x2\xA0A\xA0B\x3\x2\x2\x2\xA0B\xA0D\a)\x2\x2\xA0C\xA0E\x5\x126"+ - "\x94\x2\xA0D\xA0C\x3\x2\x2\x2\xA0D\xA0E\x3\x2\x2\x2\xA0E\xA0F\x3\x2\x2"+ - "\x2\xA0F\xA11\x5\x124\x93\x2\xA10\xA09\x3\x2\x2\x2\xA11\xA12\x3\x2\x2"+ - "\x2\xA12\xA10\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA15\x3\x2\x2\x2"+ - "\xA14\xA16\x5\x126\x94\x2\xA15\xA14\x3\x2\x2\x2\xA15\xA16\x3\x2\x2\x2"+ - "\xA16\xA17\x3\x2\x2\x2\xA17\xA19\a\xED\x2\x2\xA18\xA1A\x5\x126\x94\x2"+ - "\xA19\xA18\x3\x2\x2\x2\xA19\xA1A\x3\x2\x2\x2\xA1A\xA1C\x3\x2\x2\x2\xA1B"+ - "\x9DE\x3\x2\x2\x2\xA1B\x9E3\x3\x2\x2\x2\xA1B\x9F5\x3\x2\x2\x2\xA1B\xA04"+ - "\x3\x2\x2\x2\xA1C\x123\x3\x2\x2\x2\xA1D\xA20\a\x101\x2\x2\xA1E\xA20\x5"+ - "\x108\x85\x2\xA1F\xA1D\x3\x2\x2\x2\xA1F\xA1E\x3\x2\x2\x2\xA20\x125\x3"+ - "\x2\x2\x2\xA21\xA23\t\x18\x2\x2\xA22\xA21\x3\x2\x2\x2\xA23\xA24\x3\x2"+ - "\x2\x2\xA24\xA22\x3\x2\x2\x2\xA24\xA25\x3\x2\x2\x2\xA25\x127\x3\x2\x2"+ - "\x2\x1BA\x12C\x132\x135\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168"+ - "\x16F\x175\x17E\x186\x195\x19F\x1A7\x1B1\x1B7\x1BB\x1BF\x1C3\x1C8\x1D1"+ - "\x218\x21E\x222\x225\x235\x239\x23E\x241\x246\x24C\x250\x255\x25A\x25F"+ - "\x262\x266\x26C\x270\x277\x27D\x281\x284\x289\x294\x297\x29A\x29F\x2A5"+ - "\x2A9\x2AE\x2B5\x2BB\x2BF\x2C7\x2CB\x2CF\x2D3\x2D7\x2DC\x2E7\x2EE\x2F6"+ - "\x2FD\x306\x30D\x311\x314\x31C\x320\x325\x32F\x335\x33F\x343\x34D\x355"+ - "\x35B\x361\x366\x369\x36D\x379\x37D\x383\x385\x38A\x38E\x392\x396\x399"+ - "\x39C\x39F\x3A2\x3A6\x3AE\x3B2\x3B5\x3B8\x3BC\x3D4\x3DA\x3DE\x3E2\x3EB"+ - "\x3F6\x3FB\x405\x409\x40E\x416\x41A\x41E\x426\x42A\x436\x43A\x442\x444"+ - "\x44A\x44E\x454\x458\x45C\x476\x480\x484\x489\x494\x498\x49D\x4AC\x4B1"+ - "\x4BA\x4BE\x4C2\x4C6\x4CA\x4CD\x4D1\x4D5\x4D8\x4DC\x4DF\x4E3\x4E5\x4EA"+ - "\x4EE\x4F2\x4F6\x4F8\x4FE\x502\x505\x50A\x50E\x514\x517\x51A\x51F\x523"+ - "\x52A\x52E\x534\x537\x53B\x542\x546\x54C\x54F\x553\x55B\x55F\x562\x565"+ - "\x569\x571\x575\x579\x57B\x57E\x584\x58A\x58E\x592\x597\x59C\x5A0\x5A4"+ - "\x5AA\x5B2\x5B4\x5C0\x5C4\x5CC\x5D0\x5D8\x5DC\x5E0\x5E4\x5E8\x5EC\x5F4"+ - "\x5F8\x605\x60C\x610\x61B\x622\x627\x62B\x630\x633\x639\x63D\x640\x646"+ - "\x64A\x652\x656\x65F\x663\x667\x66B\x66E\x672\x678\x67C\x683\x68C\x693"+ - "\x697\x69A\x69D\x6A0\x6A5\x6B1\x6B5\x6BD\x6BF\x6C4\x6C9\x6CE\x6D2\x6D8"+ - "\x6DD\x6E4\x6E8\x6EE\x6F2\x6F6\x6FB\x6FF\x704\x708\x70D\x711\x716\x71A"+ - "\x71F\x723\x728\x72C\x731\x735\x73A\x73E\x743\x747\x74C\x750\x755\x759"+ - "\x75C\x75E\x769\x76E\x773\x779\x77D\x782\x787\x78B\x78F\x791\x795\x797"+ - "\x79A\x79F\x7A6\x7AE\x7B2\x7BB\x7C5\x7C9\x7CC\x7CF\x7D8\x7DD\x7E0\x7E4"+ - "\x7E8\x7EC\x7EF\x7F7\x7FC\x7FF\x803\x807\x80B\x80E\x816\x819\x81D\x820"+ - "\x823\x827\x82B\x830\x833\x836\x839\x841\x848\x84B\x853\x85A\x85E\x861"+ - "\x864\x867\x86F\x874\x877\x87A\x87E\x882\x884\x888\x88B\x88E\x896\x89B"+ - "\x89F\x8A3\x8A6\x8A9\x8AC\x8B4\x8B9\x8BD\x8C0\x8C5\x8C8\x8CC\x8D0\x8D5"+ - "\x8D9\x8DC\x8E0\x8E4\x8E8\x8EB\x8F1\x8F5\x8F9\x8FD\x901\x906\x909\x90C"+ - "\x912\x916\x91A\x91E\x921\x925\x928\x92B\x92E\x931\x934\x938\x93E\x942"+ - "\x947\x94F\x955\x959\x95D\x961\x964\x96F\x974\x978\x97C\x980\x983\x987"+ - "\x993\x999\x99C\x9A0\x9A3\x9AC\x9B1\x9B5\x9B8\x9BB\x9BE\x9C2\x9C6\x9C8"+ - "\x9CA\x9D5\x9DA\x9E1\x9E6\x9EA\x9EF\x9F2\x9F5\x9F9\x9FD\xA01\xA04\xA09"+ - "\xA0D\xA12\xA15\xA19\xA1B\xA1F\xA24"; + "\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x353\n$\x3$\x3$\x3$\x3$\x5$\x359\n$\x3%\x3"+ + "%\x3%\x3%\x5%\x35F\n%\x3%\x3%\x5%\x363\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%"+ + "\x3%\x3%\x3%\x5%\x36F\n%\x3%\x3%\x5%\x373\n%\x3%\x3%\x3%\x3%\x5%\x379"+ + "\n%\x3&\x3&\x3&\x5&\x37E\n&\x3&\x3&\x5&\x382\n&\x3&\x3&\x5&\x386\n&\x3"+ + "&\x3&\x5&\x38A\n&\x3&\x5&\x38D\n&\x3&\x5&\x390\n&\x3&\x5&\x393\n&\x3&"+ + "\x5&\x396\n&\x3&\x3&\x5&\x39A\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3A2"+ + "\n\'\x3\'\x3\'\x5\'\x3A6\n\'\x3\'\x5\'\x3A9\n\'\x3\'\x5\'\x3AC\n\'\x3"+ + "\'\x3\'\x5\'\x3B0\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3C8\n*\x3*\x3*\a*\x3CC"+ + "\n*\f*\xE*\x3CF\v*\x3*\x5*\x3D2\n*\x3*\x3*\x5*\x3D6\n*\x3+\x3+\x3+\x3"+ + "+\x3+\x3+\x3+\x5+\x3DF\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3EA"+ + "\n-\x3.\x3.\x3.\x5.\x3EF\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30"+ + "\x5\x30\x3F9\n\x30\x3\x30\x3\x30\x5\x30\x3FD\n\x30\x3\x30\x6\x30\x400"+ + "\n\x30\r\x30\xE\x30\x401\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5"+ + "\x32\x40A\n\x32\x3\x32\x3\x32\x5\x32\x40E\n\x32\x3\x32\x3\x32\x5\x32\x412"+ + "\n\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x41A\n\x33\x3"+ + "\x33\x3\x33\x5\x33\x41E\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x42A\n\x35\x3\x35\x3\x35\x5\x35\x42E"+ + "\n\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x436\n\x35\x5"+ + "\x35\x438\n\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x43E\n\x36\x3\x36\x3"+ + "\x36\x5\x36\x442\n\x36\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x448\n\x37\x3"+ + "\x37\x3\x37\x5\x37\x44C\n\x37\x3\x37\x3\x37\x5\x37\x450\n\x37\x3\x37\x3"+ + "\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + "\x39\x3\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x46A\n"+ + ":\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x5;\x474\n;\x3;\x3;\x5;\x478\n;\x3;"+ + "\a;\x47B\n;\f;\xE;\x47E\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x488\n"+ + "<\x3<\x3<\x5<\x48C\n<\x3<\a<\x48F\n<\f<\xE<\x492\v<\x3=\x3=\x3=\x3=\x3"+ + "=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4A0\n=\x3=\x3=\x3=\x5=\x4A5\n=\x3="+ + "\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4AE\n=\x3=\x3=\x5=\x4B2\n=\x3=\x3=\x5=\x4B6"+ + "\n=\x3>\x3>\x5>\x4BA\n>\x3>\x3>\x5>\x4BE\n>\x3>\x5>\x4C1\n>\a>\x4C3\n"+ + ">\f>\xE>\x4C6\v>\x3>\x5>\x4C9\n>\x3>\x5>\x4CC\n>\x3>\x3>\x5>\x4D0\n>\x3"+ + ">\x5>\x4D3\n>\x6>\x4D5\n>\r>\xE>\x4D6\x5>\x4D9\n>\x3?\x3?\x3?\x5?\x4DE"+ + "\n?\x3?\x3?\x5?\x4E2\n?\x3?\x3?\x5?\x4E6\n?\x3?\x3?\x5?\x4EA\n?\x5?\x4EC"+ + "\n?\x3@\x3@\x3@\x3@\x5@\x4F2\n@\x3@\x3@\x5@\x4F6\n@\x3@\x5@\x4F9\n@\x3"+ + "\x41\x3\x41\x3\x41\x5\x41\x4FE\n\x41\x3\x41\x3\x41\x5\x41\x502\n\x41\x3"+ + "\x41\x3\x41\x3\x41\x3\x41\x5\x41\x508\n\x41\x3\x41\x5\x41\x50B\n\x41\x3"+ + "\x41\x5\x41\x50E\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x513\n\x41\x3\x41\x3"+ + "\x41\x5\x41\x517\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x51E"+ + "\n\x42\x3\x42\x3\x42\x5\x42\x522\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5"+ + "\x42\x528\n\x42\x3\x42\x5\x42\x52B\n\x42\x3\x42\x3\x42\x5\x42\x52F\n\x42"+ + "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x536\n\x43\x3\x43\x3\x43\x5"+ + "\x43\x53A\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x540\n\x43\x3\x43\x5"+ + "\x43\x543\n\x43\x3\x43\x3\x43\x5\x43\x547\n\x43\x3\x43\x3\x43\x3\x44\x3"+ + "\x44\x3\x44\x3\x44\x5\x44\x54F\n\x44\x3\x44\x3\x44\x5\x44\x553\n\x44\x3"+ + "\x44\x5\x44\x556\n\x44\x3\x44\x5\x44\x559\n\x44\x3\x44\x3\x44\x5\x44\x55D"+ + "\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x565\n\x45\x3"+ + "\x45\x3\x45\x5\x45\x569\n\x45\x3\x45\x3\x45\x5\x45\x56D\n\x45\x5\x45\x56F"+ + "\n\x45\x3\x45\x5\x45\x572\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x578"+ + "\n\x46\x3G\x3G\x3G\x3G\x5G\x57E\nG\x3G\x3G\x5G\x582\nG\x3G\x3G\x5G\x586"+ + "\nG\x3G\aG\x589\nG\fG\xEG\x58C\vG\x3H\x3H\x5H\x590\nH\x3H\x3H\x5H\x594"+ + "\nH\x3H\x3H\x5H\x598\nH\x3H\x3H\x3H\x3H\x5H\x59E\nH\x3I\x3I\x3J\x3J\x3"+ + "J\x3J\x5J\x5A6\nJ\x5J\x5A8\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M"+ + "\x5M\x5B4\nM\x3M\x3M\x5M\x5B8\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5C0\nN\x3"+ + "N\x3N\x5N\x5C4\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5CC\nO\x3O\x3O\x5O\x5D0"+ + "\nO\x3O\x3O\x5O\x5D4\nO\x3O\x3O\x5O\x5D8\nO\x3O\x3O\x5O\x5DC\nO\x3O\x3"+ + "O\x5O\x5E0\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5E8\nP\x3P\x3P\x5P\x5EC\nP"+ + "\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5F7\nQ\fQ\xEQ\x5FA\vQ\x3Q\x3"+ + "Q\x3R\x3R\x5R\x600\nR\x3R\x3R\x5R\x604\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R"+ + "\x3R\x3R\x5R\x60F\nR\x3S\x3S\x3S\x3S\x3S\x5S\x616\nS\x3T\x3T\x3T\x5T\x61B"+ + "\nT\x3T\x3T\x5T\x61F\nT\x3T\aT\x622\nT\fT\xET\x625\vT\x5T\x627\nT\x3U"+ + "\x3U\x3U\x3U\x5U\x62D\nU\x3U\x3U\x5U\x631\nU\x3U\x5U\x634\nU\x3V\x3V\x3"+ + "V\x3V\x5V\x63A\nV\x3V\x3V\x5V\x63E\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x646"+ + "\nW\x3W\x3W\x5W\x64A\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x653\nY\x3Y\x3"+ + "Y\x5Y\x657\nY\x3Y\x3Y\x5Y\x65B\nY\x3Y\x3Y\x5Y\x65F\nY\x3Y\x5Y\x662\nY"+ + "\x3Y\x3Y\x5Y\x666\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x66C\nZ\x3Z\x3Z\x5Z\x670\nZ\x3"+ + "Z\x3Z\x3[\x3[\x3[\x5[\x677\n[\x3[\x3[\x3[\x3[\x3[\a[\x67E\n[\f[\xE[\x681"+ + "\v[\x3[\x3[\x3\\\x3\\\x5\\\x687\n\\\x3\\\x3\\\x5\\\x68B\n\\\x3\\\x5\\"+ + "\x68E\n\\\x3\\\x5\\\x691\n\\\x3\\\x5\\\x694\n\\\x3\\\x3\\\x3\\\x5\\\x699"+ + "\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6A5\n^\x3^\x3^\x5"+ + "^\x6A9\n^\x3^\x3^\x3^\x3^\x3^\x3^\x5^\x6B1\n^\x5^\x6B3\n^\x3_\x3_\x3_"+ + "\x5_\x6B8\n_\x3_\x3_\x3_\x5_\x6BD\n_\x3_\x3_\x3_\x5_\x6C2\n_\x3_\x3_\x5"+ + "_\x6C6\n_\x3_\x3_\x3_\x3_\x5_\x6CC\n_\x3_\x3_\x3_\x5_\x6D1\n_\x3_\x3_"+ + "\x3_\x3_\x3_\x5_\x6D8\n_\x3_\x3_\x5_\x6DC\n_\x3_\x3_\x3_\x3_\x5_\x6E2"+ + "\n_\x3_\x3_\x5_\x6E6\n_\x3_\x3_\x5_\x6EA\n_\x3_\x3_\x3_\x5_\x6EF\n_\x3"+ + "_\x3_\x5_\x6F3\n_\x3_\x3_\x3_\x5_\x6F8\n_\x3_\x3_\x5_\x6FC\n_\x3_\x3_"+ + "\x3_\x5_\x701\n_\x3_\x3_\x5_\x705\n_\x3_\x3_\x3_\x5_\x70A\n_\x3_\x3_\x5"+ + "_\x70E\n_\x3_\x3_\x3_\x5_\x713\n_\x3_\x3_\x5_\x717\n_\x3_\x3_\x3_\x5_"+ + "\x71C\n_\x3_\x3_\x5_\x720\n_\x3_\x3_\x3_\x5_\x725\n_\x3_\x3_\x5_\x729"+ + "\n_\x3_\x3_\x3_\x5_\x72E\n_\x3_\x3_\x5_\x732\n_\x3_\x3_\x3_\x5_\x737\n"+ + "_\x3_\x3_\x5_\x73B\n_\x3_\x3_\x3_\x5_\x740\n_\x3_\x3_\x5_\x744\n_\x3_"+ + "\x3_\x3_\x5_\x749\n_\x3_\x3_\x5_\x74D\n_\x3_\a_\x750\n_\f_\xE_\x753\v"+ + "_\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x5`\x75D\n`\x3\x61\x3\x61\x3\x61\x5"+ + "\x61\x762\n\x61\x3\x61\x3\x61\x3\x61\x5\x61\x767\n\x61\x3\x61\x3\x61\x3"+ + "\x62\x3\x62\x5\x62\x76D\n\x62\x3\x62\x3\x62\x5\x62\x771\n\x62\x3\x62\a"+ + "\x62\x774\n\x62\f\x62\xE\x62\x777\v\x62\x3\x63\x3\x63\x5\x63\x77B\n\x63"+ + "\x3\x63\x3\x63\x5\x63\x77F\n\x63\x3\x63\x3\x63\x5\x63\x783\n\x63\x5\x63"+ + "\x785\n\x63\x3\x63\x3\x63\x5\x63\x789\n\x63\x5\x63\x78B\n\x63\x3\x63\x5"+ + "\x63\x78E\n\x63\x3\x63\x3\x63\x3\x63\x5\x63\x793\n\x63\x3\x64\x3\x64\x3"+ + "\x64\x3\x64\x3\x64\x5\x64\x79A\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65"+ + "\x3\x65\x5\x65\x7A2\n\x65\x3\x65\x3\x65\x5\x65\x7A6\n\x65\x3\x65\x3\x65"+ + "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x7AF\n\x66\x3\x66\x3\x66\x3"+ + "g\x3g\x3h\x3h\x3h\x3h\x5h\x7B9\nh\x3h\x3h\x5h\x7BD\nh\x3h\x5h\x7C0\nh"+ + "\x3i\x5i\x7C3\ni\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7CC\nk\x3k\x3k\x3k\x5"+ + "k\x7D1\nk\x3k\x5k\x7D4\nk\x3k\x3k\x5k\x7D8\nk\x3k\x3k\x5k\x7DC\nk\x3k"+ + "\x3k\x5k\x7E0\nk\x3k\x5k\x7E3\nk\x3k\x3k\x3k\x3k\ak\x7E9\nk\fk\xEk\x7EC"+ + "\vk\x3k\x3k\x5k\x7F0\nk\x3k\x5k\x7F3\nk\x3k\x3k\x5k\x7F7\nk\x3k\x3k\x5"+ + "k\x7FB\nk\x3k\x3k\x5k\x7FF\nk\x3k\x5k\x802\nk\x3k\x3k\x3k\x3k\ak\x808"+ + "\nk\fk\xEk\x80B\vk\x5k\x80D\nk\x3l\x3l\x5l\x811\nl\x3m\x5m\x814\nm\x3"+ + "m\x5m\x817\nm\x3m\x3m\x5m\x81B\nm\x3m\x3m\x5m\x81F\nm\x3m\x3m\x3m\x5m"+ + "\x824\nm\x3m\x5m\x827\nm\x3m\x5m\x82A\nm\x3m\x5m\x82D\nm\x3m\x3m\x3m\x3"+ + "m\am\x833\nm\fm\xEm\x836\vm\x3n\x3n\x3n\x3n\x5n\x83C\nn\x3n\x5n\x83F\n"+ + "n\x3n\x3n\x3n\x3n\an\x845\nn\fn\xEn\x848\vn\x3o\x3o\x3o\x3o\x5o\x84E\n"+ + "o\x3p\x3p\x5p\x852\np\x3p\x5p\x855\np\x3p\x5p\x858\np\x3p\x5p\x85B\np"+ + "\x3p\x3p\x3p\x3p\ap\x861\np\fp\xEp\x864\vp\x3q\x3q\x5q\x868\nq\x3q\x5"+ + "q\x86B\nq\x3q\x5q\x86E\nq\x3q\x3q\x5q\x872\nq\x3q\x3q\x5q\x876\nq\x5q"+ + "\x878\nq\x3q\x3q\x5q\x87C\nq\x3q\x5q\x87F\nq\x3q\x5q\x882\nq\x3q\x3q\x3"+ + "q\x3q\aq\x888\nq\fq\xEq\x88B\vq\x3r\x3r\x5r\x88F\nr\x3r\x3r\x5r\x893\n"+ + "r\x6r\x895\nr\rr\xEr\x896\x3r\x5r\x89A\nr\x3r\x5r\x89D\nr\x3r\x5r\x8A0"+ + "\nr\x3r\x3r\x3r\x3r\ar\x8A6\nr\fr\xEr\x8A9\vr\x3s\x3s\x5s\x8AD\ns\x3s"+ + "\x3s\x5s\x8B1\ns\x3t\x5t\x8B4\nt\x3t\x3t\x3u\x5u\x8B9\nu\x3u\x5u\x8BC"+ + "\nu\x3u\x3u\x5u\x8C0\nu\au\x8C2\nu\fu\xEu\x8C5\vu\x3u\x3u\x5u\x8C9\nu"+ + "\x3u\x3u\x5u\x8CD\nu\x3u\x5u\x8D0\nu\au\x8D2\nu\fu\xEu\x8D5\vu\x3v\x5"+ + "v\x8D8\nv\x3v\x3v\x5v\x8DC\nv\x3v\x5v\x8DF\nv\x3v\x3v\x3w\x3w\x5w\x8E5"+ + "\nw\x3w\x3w\x5w\x8E9\nw\x3x\x3x\x5x\x8ED\nx\x3x\x3x\x5x\x8F1\nx\x3x\x3"+ + "x\x5x\x8F5\nx\x3x\ax\x8F8\nx\fx\xEx\x8FB\vx\x5x\x8FD\nx\x3x\x5x\x900\n"+ + "x\x3x\x3x\x3y\x3y\x5y\x906\ny\x3y\x3y\x5y\x90A\ny\x3y\x3y\x5y\x90E\ny"+ + "\x3y\x3y\x5y\x912\ny\x3y\x5y\x915\ny\x3y\x3y\x5y\x919\ny\x3y\x5y\x91C"+ + "\ny\x3y\x5y\x91F\ny\x3y\x5y\x922\ny\x3y\x5y\x925\ny\x3y\x5y\x928\ny\x3"+ + "z\x3z\x5z\x92C\nz\x3z\x3z\x3{\x3{\x5{\x932\n{\x3{\x3{\x5{\x936\n{\x3{"+ + "\a{\x939\n{\f{\xE{\x93C\v{\x3|\x3|\x3|\x3|\x3|\x5|\x943\n|\x3|\x3|\x3"+ + "}\x3}\x5}\x949\n}\x3~\x3~\x5~\x94D\n~\x3~\x3~\x5~\x951\n~\x3~\x3~\x5~"+ + "\x955\n~\x3~\x5~\x958\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3"+ + "\x81\a\x81\x961\n\x81\f\x81\xE\x81\x964\v\x81\x3\x82\x3\x82\x5\x82\x968"+ + "\n\x82\x3\x82\x3\x82\x5\x82\x96C\n\x82\x3\x83\x3\x83\x5\x83\x970\n\x83"+ + "\x3\x83\x3\x83\x5\x83\x974\n\x83\x3\x83\x5\x83\x977\n\x83\x3\x84\x3\x84"+ + "\x5\x84\x97B\n\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3"+ + "\x85\x3\x85\x3\x85\x5\x85\x987\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87"+ + "\x98D\n\x87\x3\x87\x5\x87\x990\n\x87\x3\x87\x3\x87\x5\x87\x994\n\x87\x3"+ + "\x87\x5\x87\x997\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B"+ + "\x5\x8B\x9A0\n\x8B\x3\x8B\x6\x8B\x9A3\n\x8B\r\x8B\xE\x8B\x9A4\x3\x8B\x3"+ + "\x8B\x5\x8B\x9A9\n\x8B\x3\x8B\x5\x8B\x9AC\n\x8B\x3\x8B\x5\x8B\x9AF\n\x8B"+ + "\x3\x8B\x5\x8B\x9B2\n\x8B\x3\x8C\x3\x8C\x5\x8C\x9B6\n\x8C\x3\x8C\x3\x8C"+ + "\x5\x8C\x9BA\n\x8C\a\x8C\x9BC\n\x8C\f\x8C\xE\x8C\x9BF\v\x8C\x3\x8D\x3"+ + "\x8D\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x6\x8F\x9C7\n\x8F\r\x8F\xE\x8F\x9C8\x3"+ + "\x90\x3\x90\x3\x90\x5\x90\x9CE\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92"+ + "\x5\x92\x9D5\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9DA\n\x92\x3\x92\x3\x92"+ + "\x5\x92\x9DE\n\x92\x3\x92\x6\x92\x9E1\n\x92\r\x92\xE\x92\x9E2\x3\x92\x5"+ + "\x92\x9E6\n\x92\x3\x92\x5\x92\x9E9\n\x92\x3\x92\x3\x92\x5\x92\x9ED\n\x92"+ + "\x3\x92\x3\x92\x5\x92\x9F1\n\x92\x3\x92\x3\x92\x5\x92\x9F5\n\x92\x3\x92"+ + "\x5\x92\x9F8\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9FD\n\x92\x3\x92\x3\x92"+ + "\x5\x92\xA01\n\x92\x3\x92\x6\x92\xA04\n\x92\r\x92\xE\x92\xA05\x3\x92\x5"+ + "\x92\xA09\n\x92\x3\x92\x3\x92\x5\x92\xA0D\n\x92\x5\x92\xA0F\n\x92\x3\x93"+ + "\x3\x93\x5\x93\xA13\n\x93\x3\x94\x6\x94\xA16\n\x94\r\x94\xE\x94\xA17\x3"+ + "\x94\x2\x2\x3\xBC\x95\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ + "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ + ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ + "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ + "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ + "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ + "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ + "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ + "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ + "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ + "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ + "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2"+ + "\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C"+ + "\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3"+ + "\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81"+ + "\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))+"+ + "+\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a"+ + "\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3"+ + "\x2?@\r\x2\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9"+ + "\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE"+ + "\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE"+ + "\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBA7\x2\x128\x3\x2"+ + "\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x152\x3\x2\x2\x2\n\x164"+ + "\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180\x3\x2\x2\x2\x10\x195\x3\x2\x2"+ + "\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2\x2\x2\x16\x1B1\x3\x2\x2\x2\x18"+ + "\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3"+ + "\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231"+ + "\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277"+ + "\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2"+ + "\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318"+ + "\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2"+ + "\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2\x2\x2H\x35A\x3\x2\x2\x2J\x37D\x3"+ + "\x2\x2\x2L\x39D\x3\x2\x2\x2N\x3B3\x3\x2\x2\x2P\x3B7\x3\x2\x2\x2R\x3D5"+ + "\x3\x2\x2\x2T\x3D7\x3\x2\x2\x2V\x3E0\x3\x2\x2\x2X\x3E2\x3\x2\x2\x2Z\x3EB"+ + "\x3\x2\x2\x2\\\x3F0\x3\x2\x2\x2^\x3F4\x3\x2\x2\x2`\x403\x3\x2\x2\x2\x62"+ + "\x409\x3\x2\x2\x2\x64\x415\x3\x2\x2\x2\x66\x421\x3\x2\x2\x2h\x425\x3\x2"+ + "\x2\x2j\x439\x3\x2\x2\x2l\x445\x3\x2\x2\x2n\x453\x3\x2\x2\x2p\x457\x3"+ + "\x2\x2\x2r\x45F\x3\x2\x2\x2t\x46B\x3\x2\x2\x2v\x47F\x3\x2\x2\x2x\x493"+ + "\x3\x2\x2\x2z\x4D8\x3\x2\x2\x2|\x4EB\x3\x2\x2\x2~\x4ED\x3\x2\x2\x2\x80"+ + "\x4FD\x3\x2\x2\x2\x82\x51D\x3\x2\x2\x2\x84\x535\x3\x2\x2\x2\x86\x54A\x3"+ + "\x2\x2\x2\x88\x560\x3\x2\x2\x2\x8A\x573\x3\x2\x2\x2\x8C\x579\x3\x2\x2"+ + "\x2\x8E\x58D\x3\x2\x2\x2\x90\x59F\x3\x2\x2\x2\x92\x5A1\x3\x2\x2\x2\x94"+ + "\x5A9\x3\x2\x2\x2\x96\x5AB\x3\x2\x2\x2\x98\x5AF\x3\x2\x2\x2\x9A\x5BB\x3"+ + "\x2\x2\x2\x9C\x5C7\x3\x2\x2\x2\x9E\x5E3\x3\x2\x2\x2\xA0\x5EF\x3\x2\x2"+ + "\x2\xA2\x60E\x3\x2\x2\x2\xA4\x610\x3\x2\x2\x2\xA6\x626\x3\x2\x2\x2\xA8"+ + "\x628\x3\x2\x2\x2\xAA\x635\x3\x2\x2\x2\xAC\x641\x3\x2\x2\x2\xAE\x64D\x3"+ + "\x2\x2\x2\xB0\x652\x3\x2\x2\x2\xB2\x669\x3\x2\x2\x2\xB4\x676\x3\x2\x2"+ + "\x2\xB6\x684\x3\x2\x2\x2\xB8\x69C\x3\x2\x2\x2\xBA\x6A0\x3\x2\x2\x2\xBC"+ + "\x6E1\x3\x2\x2\x2\xBE\x754\x3\x2\x2\x2\xC0\x761\x3\x2\x2\x2\xC2\x76A\x3"+ + "\x2\x2\x2\xC4\x778\x3\x2\x2\x2\xC6\x794\x3\x2\x2\x2\xC8\x79D\x3\x2\x2"+ + "\x2\xCA\x7A9\x3\x2\x2\x2\xCC\x7B2\x3\x2\x2\x2\xCE\x7B4\x3\x2\x2\x2\xD0"+ + "\x7C2\x3\x2\x2\x2\xD2\x7C6\x3\x2\x2\x2\xD4\x80C\x3\x2\x2\x2\xD6\x810\x3"+ + "\x2\x2\x2\xD8\x813\x3\x2\x2\x2\xDA\x837\x3\x2\x2\x2\xDC\x84D\x3\x2\x2"+ + "\x2\xDE\x84F\x3\x2\x2\x2\xE0\x867\x3\x2\x2\x2\xE2\x88E\x3\x2\x2\x2\xE4"+ + "\x8AA\x3\x2\x2\x2\xE6\x8B3\x3\x2\x2\x2\xE8\x8C3\x3\x2\x2\x2\xEA\x8D7\x3"+ + "\x2\x2\x2\xEC\x8E2\x3\x2\x2\x2\xEE\x8EA\x3\x2\x2\x2\xF0\x905\x3\x2\x2"+ + "\x2\xF2\x929\x3\x2\x2\x2\xF4\x92F\x3\x2\x2\x2\xF6\x942\x3\x2\x2\x2\xF8"+ + "\x948\x3\x2\x2\x2\xFA\x94A\x3\x2\x2\x2\xFC\x959\x3\x2\x2\x2\xFE\x95B\x3"+ + "\x2\x2\x2\x100\x95D\x3\x2\x2\x2\x102\x965\x3\x2\x2\x2\x104\x96D\x3\x2"+ + "\x2\x2\x106\x97A\x3\x2\x2\x2\x108\x986\x3\x2\x2\x2\x10A\x988\x3\x2\x2"+ + "\x2\x10C\x98C\x3\x2\x2\x2\x10E\x998\x3\x2\x2\x2\x110\x99A\x3\x2\x2\x2"+ + "\x112\x99C\x3\x2\x2\x2\x114\x9B1\x3\x2\x2\x2\x116\x9BD\x3\x2\x2\x2\x118"+ + "\x9C0\x3\x2\x2\x2\x11A\x9C2\x3\x2\x2\x2\x11C\x9C4\x3\x2\x2\x2\x11E\x9CA"+ + "\x3\x2\x2\x2\x120\x9CF\x3\x2\x2\x2\x122\xA0E\x3\x2\x2\x2\x124\xA12\x3"+ + "\x2\x2\x2\x126\xA15\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ + "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5\x126\x94\x2\x12C\x12B\x3\x2\x2\x2"+ + "\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x116\x8C\x2"+ + "\x12F\x130\x5\x6\x4\x2\x130\x131\x5\x116\x8C\x2\x131\x133\x3\x2\x2\x2"+ + "\x132\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134"+ + "\x136\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137"+ + "\x3\x2\x2\x2\x137\x139\x5\x116\x8C\x2\x138\x13A\x5\f\a\x2\x139\x138\x3"+ + "\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116"+ + "\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ + "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x116\x8C\x2\x140\x142\x5\x14\v"+ + "\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2"+ + "\x143\x145\x5\x116\x8C\x2\x144\x146\x5\x126\x94\x2\x145\x144\x3\x2\x2"+ + "\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xD7\x2\x2\x148"+ + "\x149\x5\x126\x94\x2\x149\x14B\x5\x10A\x86\x2\x14A\x14C\x5\x126\x94\x2"+ + "\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D"+ + "\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150"+ + "\x3\x2\x2\x2\x150\x151\x5\x116\x8C\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;"+ + "\x2\x2\x153\x154\x5\x126\x94\x2\x154\x155\a\x103\x2\x2\x155\x156\x5\x126"+ + "\x94\x2\x156\x158\x5\xF8}\x2\x157\x159\x5\x126\x94\x2\x158\x157\x3\x2"+ + "\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2"+ + "\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C"+ + "\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160"+ + "\x15E\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163"+ + "\ai\x2\x2\x163\t\x3\x2\x2\x2\x164\x168\x5\xF8}\x2\x165\x167\x5\x126\x94"+ + "\x2\x166\x165\x3\x2\x2\x2\x167\x16A\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2"+ + "\x168\x169\x3\x2\x2\x2\x169\x16B\x3\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B"+ + "\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E"+ + "\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170\x172"+ + "\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2\x172\x175\x5\x108\x85\x2\x173\x174"+ + "\a*\x2\x2\x174\x176\x5\x10A\x86\x2\x175\x173\x3\x2\x2\x2\x175\x176\x3"+ + "\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177\x178\x5\x116\x8C\x2\x178\v\x3\x2"+ + "\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B\x5\x116\x8C\x2\x17B\x17D\x3\x2"+ + "\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17C\x3\x2\x2"+ + "\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2\x2\x2\x180\x186\x5\x12\n\x2\x181"+ + "\x182\x5\x116\x8C\x2\x182\x183\x5\x12\n\x2\x183\x185\x3\x2\x2\x2\x184"+ + "\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2\x186\x184\x3\x2\x2\x2\x186\x187"+ + "\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188\x186\x3\x2\x2\x2\x189\x18A\x5"+ + "\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C\a\xA0\x2\x2\x18C\x18D\x5\x126"+ + "\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196\x3\x2\x2\x2\x18F\x190\a\xA2"+ + "\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192\t\x2\x2\x2\x192\x196\x3\x2\x2"+ + "\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3\x2\x2\x195\x18B\x3\x2\x2\x2"+ + "\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2\x2\x195\x194\x3\x2\x2\x2\x196"+ + "\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198\x1A0\x5\x38\x1D\x2\x199\x1A0"+ + "\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5\\/\x2\x19C\x1A0\x5\xC0\x61"+ + "\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4[\x2\x19F\x197\x3\x2\x2\x2\x19F"+ + "\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2\x19F\x19A\x3\x2\x2\x2\x19F\x19B"+ + "\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F\x19D\x3\x2\x2\x2\x19F\x19E\x3"+ + "\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7\x5\x16\f\x2\x1A2\x1A3\x5\x116"+ + "\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2"+ + "\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2"+ + "\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2\x2\x2\x1AA\x1AB\x5\x116\x8C\x2"+ + "\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2"+ + "\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC"+ + "\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3"+ + "\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2"+ + "\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94"+ + "\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2"+ + "\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126\x94\x2\x1BB\x1BA\x3\x2\x2\x2"+ + "\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2\x2\x1BD\x1C8\x5\x108\x85\x2"+ + "\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2"+ + "\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2\x1C2\x1C4\x5\x126\x94\x2\x1C3"+ + "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7"+ + "\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6"+ + "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2"+ + "\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C"+ + "\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2"+ + "\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2"+ + "\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6"+ + "\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9"+ + "\x219\x5 \x11\x2\x1DA\x219\x5\"\x12\x2\x1DB\x219\x5$\x13\x2\x1DC\x219"+ + "\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE\x219\x5,\x17\x2\x1DF\x219\x5\x32"+ + "\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36"+ + "\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6"+ + "\x219\x5\xD2j\x2\x1E7\x219\x5\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5"+ + "H%\x2\x1EA\x219\x5L\'\x2\x1EB\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219"+ + "\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2"+ + "\x1F1\x219\x5\x62\x32\x2\x1F2\x219\x5\x64\x33\x2\x1F3\x219\x5\x66\x34"+ + "\x2\x1F4\x219\x5h\x35\x2\x1F5\x219\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7"+ + "\x219\x5n\x38\x2\x1F8\x219\x5p\x39\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t"+ + ";\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5"+ + "\x86\x44\x2\x1FF\x219\x5\x88\x45\x2\x200\x219\x5\x8A\x46\x2\x201\x219"+ + "\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203\x219\x5\x92J\x2\x204\x219\x5\x94"+ + "K\x2\x205\x219\x5\x96L\x2\x206\x219\x5\x98M\x2\x207\x219\x5\x9AN\x2\x208"+ + "\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2\x20A\x219\x5\xA0Q\x2\x20B\x219\x5"+ + "\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219\x5\xACW\x2\x20E\x219\x5\xAEX\x2"+ + "\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8]\x2\x211\x219\x5\xBA^\x2\x212\x219"+ + "\x5\xC0\x61\x2\x213\x219\x5\xC6\x64\x2\x214\x219\x5\xC8\x65\x2\x215\x219"+ + "\x5\xCA\x66\x2\x216\x219\x5\xCEh\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3"+ + "\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2"+ + "\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB\x3\x2\x2\x2\x218\x1DC\x3\x2\x2"+ + "\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3\x2\x2\x2\x218\x1DF\x3\x2\x2\x2"+ + "\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2\x2\x2\x218\x1E2\x3\x2\x2\x2\x218"+ + "\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6"+ + "\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3"+ + "\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2"+ + "\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE\x3\x2\x2\x2\x218\x1EF\x3\x2\x2"+ + "\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3\x2\x2\x2\x218\x1F2\x3\x2\x2\x2"+ + "\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2\x2\x2\x218\x1F5\x3\x2\x2\x2\x218"+ + "\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9"+ + "\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3"+ + "\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2"+ + "\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201\x3\x2\x2\x2\x218\x202\x3\x2\x2"+ + "\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3\x2\x2\x2\x218\x205\x3\x2\x2\x2"+ + "\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2\x2\x2\x218\x208\x3\x2\x2\x2\x218"+ + "\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2\x2\x218\x20B\x3\x2\x2\x2\x218\x20C"+ + "\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2\x218\x20E\x3\x2\x2\x2\x218\x20F\x3"+ + "\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218\x211\x3\x2\x2\x2\x218\x212\x3\x2"+ + "\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214\x3\x2\x2\x2\x218\x215\x3\x2\x2"+ + "\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A"+ + "\x21B\a\x38\x2\x2\x21B\x21C\x5\x126\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F"+ + "\x5\x126\x94\x2\x21E\x21D\x3\x2\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220"+ + "\x3\x2\x2\x2\x220\x222\a)\x2\x2\x221\x223\x5\x126\x94\x2\x222\x221\x3"+ + "\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC"+ + "_\x2\x225\x21E\x3\x2\x2\x2\x225\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2"+ + "\x227\x228\a<\x2\x2\x228!\x3\x2\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B"+ + "\x5\x126\x94\x2\x22B\x22C\x5\xBC_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45"+ + "\x2\x2\x22E\x22F\x5\x126\x94\x2\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2"+ + "\x231\x241\aG\x2\x2\x232\x233\x5\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234"+ + "\x236\x5\x126\x94\x2\x235\x234\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236"+ + "\x237\x3\x2\x2\x2\x237\x239\a)\x2\x2\x238\x23A\x5\x126\x94\x2\x239\x238"+ + "\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5"+ + "\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2"+ + "\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2"+ + "\x241\x232\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244"+ + "\x5\x110\x89\x2\x244\x245\x5\x126\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243"+ + "\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH"+ + "\x2\x2\x249\x24A\x5\x126\x94\x2\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126"+ + "\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2"+ + "\x2\x24E\x250\a)\x2\x2\x24F\x251\x5\x126\x94\x2\x250\x24F\x3\x2\x2\x2"+ + "\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x254\x5*\x16\x2\x253"+ + "\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2\x2\x255\x253\x3\x2\x2\x2\x255\x256"+ + "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x258\x25A\x5\xF8"+ + "}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259\x3\x2\x2\x2\x25A\x25B\x3\x2\x2"+ + "\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5\x126\x94\x2\x25D\x25E\x5\xFA~\x2"+ + "\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2\x260"+ + "\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94\x2\x262\x261\x3\x2\x2\x2\x262"+ + "\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\a\xE2\x2\x2\x265\x267"+ + "\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2\x266\x267\x3\x2\x2\x2\x267\x268"+ + "\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2"+ + "\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3\x2\x2\x2\x26C\x26D\x3\x2\x2\x2"+ + "\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2\x2\x2\x26F\x271\x5\x126\x94\x2"+ + "\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272"+ + "\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274\x275\x5\x110\x89\x2\x275\x276"+ + "\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277\x274\x3\x2\x2\x2\x277\x278"+ + "\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\aK\x2\x2\x27A\x27D\x5\x126"+ + "\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5\x126\x94\x2\x27D\x27B\x3\x2"+ + "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3\x2\x2\x2\x27F\x281\ax\x2\x2"+ + "\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2"+ + "\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2\x2\x284\x27F\x3\x2\x2\x2\x284"+ + "\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x287\x5\x126\x94\x2\x287"+ + "\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2\x289\x288\x3\x2\x2\x2\x289\x28A"+ + "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\x5\x126\x94\x2\x28C\x28D"+ + "\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E\x294\a\xF5\x2\x2\x28F\x290"+ + "\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291\x292\x5\x126\x94\x2\x292\x293"+ + "\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294\x28F\x3\x2\x2\x2\x294\x295\x3"+ + "\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298\x5\x126\x94\x2\x297\x296\x3"+ + "\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299\x3\x2\x2\x2\x299\x29B\x5\xEE"+ + "x\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29F\x3\x2\x2\x2"+ + "\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA~\x2\x29E\x2A0\x3\x2\x2\x2\x29F"+ + "\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t"+ + "\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3\x2AE\x5\x104\x83\x2\x2A4\x2A6"+ + "\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2A7"+ + "\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5\x126\x94\x2\x2A9\x2A8\x3"+ + "\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3\x2\x2\x2\x2AB\x2AD\x5\x104"+ + "\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3\x2\x2\x2\x2AE\x2AC\x3\x2\x2"+ + "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1"+ + "\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6"+ + "\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2D8"+ + "\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5\x126\x94\x2\x2B9\x2BB\x5"+ + "\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3\x2\x2\x2\x2BB\x2BC\x3\x2"+ + "\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2\x2\x2BE\x2C0\x5\x126\x94"+ + "\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2"+ + "\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3\x2C4\aY\x2\x2\x2C4\x2C5"+ + "\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8\x5\x126\x94\x2\x2C7\x2C6"+ + "\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9\x3\x2\x2\x2\x2C9\x2CB\a)"+ + "\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3\x2\x2\x2\x2CB\x2CC\x3\x2"+ + "\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x126\x94"+ + "\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2"+ + "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ + "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x5\xBC_\x2\x2D6\x2D8"+ + "\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7\x3\x2\x2\x2\x2D7\x2C3\x3"+ + "\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2\x2\x2DA\x2DC\x5\x116\x8C"+ + "\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2"+ + "\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2\x2DF\x2F7\x3\x2\x2\x2\x2E0"+ + "\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2\x2E3\t\x4\x2\x2\x2E3\x2E4"+ + "\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7\x5\x116\x8C\x2\x2E6\x2E8"+ + "\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3"+ + "\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3\x2\x2\x2\x2EB\x2EC\a[\x2"+ + "\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A\xE\x2\x2EE\x2ED\x3\x2\x2"+ + "\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F1\a\x88\x2\x2"+ + "\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2\x2F3\x2F4\x5\x126\x94\x2"+ + "\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6\x2D9\x3\x2\x2\x2\x2F6"+ + "\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35\x3\x2\x2\x2\x2F8\x2F9"+ + "\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110\x89\x2\x2FB\x2FC\x5\x126"+ + "\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3\x2\x2"+ + "\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2\x300\x301\x5\x126\x94\x2"+ + "\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2\x303\x305\x5:\x1E\x2\x304"+ + "\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306\x304\x3\x2\x2\x2\x306\x307"+ + "\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306\x3\x2\x2\x2\x309\x30A\a\x61"+ + "\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8}\x2\x30C\x30E\x5\x126\x94"+ + "\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2"+ + "\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94\x2\x311\x310\x3\x2\x2\x2"+ + "\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x315\x5\xBC_\x2\x314"+ + "\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ + "\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319\al\x2\x2\x319\x31A\x5\x126"+ + "\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126\x94\x2\x31C\x31B\x3\x2"+ + "\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2\x31E\x320\a)\x2\x2"+ + "\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2"+ + "\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323\x31C\x3\x2\x2\x2\x324"+ + "\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326=\x3"+ + "\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2\x329\x32A\x5\x126\x94"+ + "\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C\x32D\x5\x110\x89\x2\x32D"+ + "\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F\x32C\x3\x2\x2\x2\x32F"+ + "\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\an\x2\x2\x332\x333\x5"+ + "\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126\x94\x2\x335\x334\x3"+ + "\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xEE"+ + "x\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A\x43\x3\x2\x2\x2\x33B"+ + "\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F\x5\xBC_\x2\x33E\x340"+ + "\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341"+ + "\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94\x2\x343\x342\x3"+ + "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x5\xBC"+ + "_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349\x5\x126\x94\x2"+ + "\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34C\x5\xBC_\x2\x34C"+ + "\x34D\x5\x126\x94\x2\x34D\x34E\a\x80\x2\x2\x34E\x34F\x5\x126\x94\x2\x34F"+ + "\x350\x5\xBC_\x2\x350\x352\x5\x116\x8C\x2\x351\x353\x5\x1A\xE\x2\x352"+ + "\x351\x3\x2\x2\x2\x352\x353\x3\x2\x2\x2\x353\x354\x3\x2\x2\x2\x354\x358"+ + "\a\x96\x2\x2\x355\x356\x5\x126\x94\x2\x356\x357\x5\xBC_\x2\x357\x359\x3"+ + "\x2\x2\x2\x358\x355\x3\x2\x2\x2\x358\x359\x3\x2\x2\x2\x359G\x3\x2\x2\x2"+ + "\x35A\x35B\aw\x2\x2\x35B\x35C\x5\x126\x94\x2\x35C\x35E\x5\xBC_\x2\x35D"+ + "\x35F\x5\x126\x94\x2\x35E\x35D\x3\x2\x2\x2\x35E\x35F\x3\x2\x2\x2\x35F"+ + "\x360\x3\x2\x2\x2\x360\x362\a\xE2\x2\x2\x361\x363\x5\x126\x94\x2\x362"+ + "\x361\x3\x2\x2\x2\x362\x363\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2\x364\x365"+ + "\x5\xBC_\x2\x365\x366\x5\x126\x94\x2\x366\x367\a\xCF\x2\x2\x367\x368\x5"+ + "\x126\x94\x2\x368\x36E\x5\xBC_\x2\x369\x36A\x5\x126\x94\x2\x36A\x36B\a"+ + "\xC7\x2\x2\x36B\x36C\x5\x126\x94\x2\x36C\x36D\x5\xBC_\x2\x36D\x36F\x3"+ + "\x2\x2\x2\x36E\x369\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x3\x2"+ + "\x2\x2\x370\x372\x5\x116\x8C\x2\x371\x373\x5\x1A\xE\x2\x372\x371\x3\x2"+ + "\x2\x2\x372\x373\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374\x378\a\x96\x2"+ + "\x2\x375\x376\x5\x126\x94\x2\x376\x377\x5\xBC_\x2\x377\x379\x3\x2\x2\x2"+ + "\x378\x375\x3\x2\x2\x2\x378\x379\x3\x2\x2\x2\x379I\x3\x2\x2\x2\x37A\x37B"+ + "\x5\x110\x89\x2\x37B\x37C\x5\x126\x94\x2\x37C\x37E\x3\x2\x2\x2\x37D\x37A"+ + "\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x381\x3\x2\x2\x2\x37F\x380\a\xC6"+ + "\x2\x2\x380\x382\x5\x126\x94\x2\x381\x37F\x3\x2\x2\x2\x381\x382\x3\x2"+ + "\x2\x2\x382\x383\x3\x2\x2\x2\x383\x385\ax\x2\x2\x384\x386\x5\x126\x94"+ + "\x2\x385\x384\x3\x2\x2\x2\x385\x386\x3\x2\x2\x2\x386\x387\x3\x2\x2\x2"+ + "\x387\x389\x5\xF8}\x2\x388\x38A\x5\x10E\x88\x2\x389\x388\x3\x2\x2\x2\x389"+ + "\x38A\x3\x2\x2\x2\x38A\x38F\x3\x2\x2\x2\x38B\x38D\x5\x126\x94\x2\x38C"+ + "\x38B\x3\x2\x2\x2\x38C\x38D\x3\x2\x2\x2\x38D\x38E\x3\x2\x2\x2\x38E\x390"+ + "\x5\xEEx\x2\x38F\x38C\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x395\x3\x2"+ + "\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392\x393\x3\x2"+ + "\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xFA~\x2\x395\x392\x3\x2\x2\x2"+ + "\x395\x396\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x399\x5\x116\x8C\x2"+ + "\x398\x39A\x5\x1A\xE\x2\x399\x398\x3\x2\x2\x2\x399\x39A\x3\x2\x2\x2\x39A"+ + "\x39B\x3\x2\x2\x2\x39B\x39C\a\x62\x2\x2\x39CK\x3\x2\x2\x2\x39D\x39E\a"+ + "y\x2\x2\x39E\x39F\x5\x126\x94\x2\x39F\x3A1\x5\xD0i\x2\x3A0\x3A2\x5\x126"+ + "\x94\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2"+ + "\x2\x3A3\x3A5\a)\x2\x2\x3A4\x3A6\x5\x126\x94\x2\x3A5\x3A4\x3\x2\x2\x2"+ + "\x3A5\x3A6\x3\x2\x2\x2\x3A6\x3A8\x3\x2\x2\x2\x3A7\x3A9\x5\xBC_\x2\x3A8"+ + "\x3A7\x3\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AB\x3\x2\x2\x2\x3AA\x3AC"+ + "\x5\x126\x94\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC\x3AD"+ + "\x3\x2\x2\x2\x3AD\x3AF\a)\x2\x2\x3AE\x3B0\x5\x126\x94\x2\x3AF\x3AE\x3"+ + "\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B1\x3\x2\x2\x2\x3B1\x3B2\x5\xBC"+ + "_\x2\x3B2M\x3\x2\x2\x2\x3B3\x3B4\a{\x2\x2\x3B4\x3B5\x5\x126\x94\x2\x3B5"+ + "\x3B6\x5\xBC_\x2\x3B6O\x3\x2\x2\x2\x3B7\x3B8\a|\x2\x2\x3B8\x3B9\x5\x126"+ + "\x94\x2\x3B9\x3BA\x5\xBC_\x2\x3BAQ\x3\x2\x2\x2\x3BB\x3BC\a}\x2\x2\x3BC"+ + "\x3BD\x5\x126\x94\x2\x3BD\x3BE\x5V,\x2\x3BE\x3BF\x5\x126\x94\x2\x3BF\x3C0"+ + "\a\xCD\x2\x2\x3C0\x3C1\x5\x126\x94\x2\x3C1\x3C7\x5\x1C\xF\x2\x3C2\x3C3"+ + "\x5\x126\x94\x2\x3C3\x3C4\a^\x2\x2\x3C4\x3C5\x5\x126\x94\x2\x3C5\x3C6"+ + "\x5\x1C\xF\x2\x3C6\x3C8\x3\x2\x2\x2\x3C7\x3C2\x3\x2\x2\x2\x3C7\x3C8\x3"+ + "\x2\x2\x2\x3C8\x3D6\x3\x2\x2\x2\x3C9\x3CD\x5T+\x2\x3CA\x3CC\x5X-\x2\x3CB"+ + "\x3CA\x3\x2\x2\x2\x3CC\x3CF\x3\x2\x2\x2\x3CD\x3CB\x3\x2\x2\x2\x3CD\x3CE"+ + "\x3\x2\x2\x2\x3CE\x3D1\x3\x2\x2\x2\x3CF\x3CD\x3\x2\x2\x2\x3D0\x3D2\x5"+ + "Z.\x2\x3D1\x3D0\x3\x2\x2\x2\x3D1\x3D2\x3\x2\x2\x2\x3D2\x3D3\x3\x2\x2\x2"+ + "\x3D3\x3D4\a\x63\x2\x2\x3D4\x3D6\x3\x2\x2\x2\x3D5\x3BB\x3\x2\x2\x2\x3D5"+ + "\x3C9\x3\x2\x2\x2\x3D6S\x3\x2\x2\x2\x3D7\x3D8\a}\x2\x2\x3D8\x3D9\x5\x126"+ + "\x94\x2\x3D9\x3DA\x5V,\x2\x3DA\x3DB\x5\x126\x94\x2\x3DB\x3DC\a\xCD\x2"+ + "\x2\x3DC\x3DE\x5\x116\x8C\x2\x3DD\x3DF\x5\x1A\xE\x2\x3DE\x3DD\x3\x2\x2"+ + "\x2\x3DE\x3DF\x3\x2\x2\x2\x3DFU\x3\x2\x2\x2\x3E0\x3E1\x5\xBC_\x2\x3E1"+ + "W\x3\x2\x2\x2\x3E2\x3E3\a_\x2\x2\x3E3\x3E4\x5\x126\x94\x2\x3E4\x3E5\x5"+ + "V,\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\a\xCD\x2\x2\x3E7\x3E9\x5\x116"+ + "\x8C\x2\x3E8\x3EA\x5\x1A\xE\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2"+ + "\x2\x3EAY\x3\x2\x2\x2\x3EB\x3EC\a^\x2\x2\x3EC\x3EE\x5\x116\x8C\x2\x3ED"+ + "\x3EF\x5\x1A\xE\x2\x3EE\x3ED\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2\x2\x3EF[\x3"+ + "\x2\x2\x2\x3F0\x3F1\a\x7F\x2\x2\x3F1\x3F2\x5\x126\x94\x2\x3F2\x3F3\x5"+ + "\xBC_\x2\x3F3]\x3\x2\x2\x2\x3F4\x3F5\a\x81\x2\x2\x3F5\x3F6\x5\x126\x94"+ + "\x2\x3F6\x3FF\x5\xD0i\x2\x3F7\x3F9\x5\x126\x94\x2\x3F8\x3F7\x3\x2\x2\x2"+ + "\x3F8\x3F9\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FC\a)\x2\x2\x3FB\x3FD"+ + "\x5\x126\x94\x2\x3FC\x3FB\x3\x2\x2\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE"+ + "\x3\x2\x2\x2\x3FE\x400\x5\xBC_\x2\x3FF\x3F8\x3\x2\x2\x2\x400\x401\x3\x2"+ + "\x2\x2\x401\x3FF\x3\x2\x2\x2\x401\x402\x3\x2\x2\x2\x402_\x3\x2\x2\x2\x403"+ + "\x404\a\x84\x2\x2\x404\x405\x5\x126\x94\x2\x405\x406\x5\xBC_\x2\x406\x61"+ + "\x3\x2\x2\x2\x407\x408\a\x89\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x407"+ + "\x3\x2\x2\x2\x409\x40A\x3\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5"+ + "\xDCo\x2\x40C\x40E\x5\x126\x94\x2\x40D\x40C\x3\x2\x2\x2\x40D\x40E\x3\x2"+ + "\x2\x2\x40E\x40F\x3\x2\x2\x2\x40F\x411\a\xE2\x2\x2\x410\x412\x5\x126\x94"+ + "\x2\x411\x410\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x3\x2\x2\x2"+ + "\x413\x414\x5\xBC_\x2\x414\x63\x3\x2\x2\x2\x415\x416\a\x8C\x2\x2\x416"+ + "\x417\x5\x126\x94\x2\x417\x419\x5\xD0i\x2\x418\x41A\x5\x126\x94\x2\x419"+ + "\x418\x3\x2\x2\x2\x419\x41A\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41D"+ + "\a)\x2\x2\x41C\x41E\x5\x126\x94\x2\x41D\x41C\x3\x2\x2\x2\x41D\x41E\x3"+ + "\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x420\x5\xBC_\x2\x420\x65\x3\x2\x2"+ + "\x2\x421\x422\a\x85\x2\x2\x422\x423\x5\x126\x94\x2\x423\x424\x5\xBC_\x2"+ + "\x424g\x3\x2\x2\x2\x425\x426\a\x86\x2\x2\x426\x427\x5\x126\x94\x2\x427"+ + "\x437\x5\xBC_\x2\x428\x42A\x5\x126\x94\x2\x429\x428\x3\x2\x2\x2\x429\x42A"+ + "\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42D\a)\x2\x2\x42C\x42E\x5\x126"+ + "\x94\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F\x3\x2\x2"+ + "\x2\x42F\x435\x5\xBC_\x2\x430\x431\x5\x126\x94\x2\x431\x432\a\xCF\x2\x2"+ + "\x432\x433\x5\x126\x94\x2\x433\x434\x5\xBC_\x2\x434\x436\x3\x2\x2\x2\x435"+ + "\x430\x3\x2\x2\x2\x435\x436\x3\x2\x2\x2\x436\x438\x3\x2\x2\x2\x437\x429"+ + "\x3\x2\x2\x2\x437\x438\x3\x2\x2\x2\x438i\x3\x2\x2\x2\x439\x43A\a\x90\x2"+ + "\x2\x43A\x43B\x5\x126\x94\x2\x43B\x43D\x5\xDCo\x2\x43C\x43E\x5\x126\x94"+ + "\x2\x43D\x43C\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x43F\x3\x2\x2\x2"+ + "\x43F\x441\a\xE2\x2\x2\x440\x442\x5\x126\x94\x2\x441\x440\x3\x2\x2\x2"+ + "\x441\x442\x3\x2\x2\x2\x442\x443\x3\x2\x2\x2\x443\x444\x5\xBC_\x2\x444"+ + "k\x3\x2\x2\x2\x445\x447\a\x92\x2\x2\x446\x448\x5\x126\x94\x2\x447\x446"+ + "\x3\x2\x2\x2\x447\x448\x3\x2\x2\x2\x448\x449\x3\x2\x2\x2\x449\x44B\a\xE6"+ + "\x2\x2\x44A\x44C\x5\x126\x94\x2\x44B\x44A\x3\x2\x2\x2\x44B\x44C\x3\x2"+ + "\x2\x2\x44C\x44D\x3\x2\x2\x2\x44D\x44F\x5\xE8u\x2\x44E\x450\x5\x126\x94"+ + "\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3\x2\x2\x2"+ + "\x451\x452\a\xED\x2\x2\x452m\x3\x2\x2\x2\x453\x454\a\x93\x2\x2\x454\x455"+ + "\x5\x126\x94\x2\x455\x456\x5\xBC_\x2\x456o\x3\x2\x2\x2\x457\x458\a\x95"+ + "\x2\x2\x458\x459\x5\x126\x94\x2\x459\x45A\x5\xBC_\x2\x45A\x45B\x5\x126"+ + "\x94\x2\x45B\x45C\a:\x2\x2\x45C\x45D\x5\x126\x94\x2\x45D\x45E\x5\xBC_"+ + "\x2\x45Eq\x3\x2\x2\x2\x45F\x460\t\x6\x2\x2\x460\x469\x5\x126\x94\x2\x461"+ + "\x462\a|\x2\x2\x462\x463\x5\x126\x94\x2\x463\x464\x5\xBC_\x2\x464\x46A"+ + "\x3\x2\x2\x2\x465\x466\a\xB8\x2\x2\x466\x467\x5\x126\x94\x2\x467\x468"+ + "\a\x96\x2\x2\x468\x46A\x3\x2\x2\x2\x469\x461\x3\x2\x2\x2\x469\x465\x3"+ + "\x2\x2\x2\x46As\x3\x2\x2\x2\x46B\x46C\a\x9B\x2\x2\x46C\x46D\x5\x126\x94"+ + "\x2\x46D\x46E\x5\xBC_\x2\x46E\x46F\x5\x126\x94\x2\x46F\x470\a|\x2\x2\x470"+ + "\x471\x5\x126\x94\x2\x471\x47C\x5\xBC_\x2\x472\x474\x5\x126\x94\x2\x473"+ + "\x472\x3\x2\x2\x2\x473\x474\x3\x2\x2\x2\x474\x475\x3\x2\x2\x2\x475\x477"+ + "\a)\x2\x2\x476\x478\x5\x126\x94\x2\x477\x476\x3\x2\x2\x2\x477\x478\x3"+ + "\x2\x2\x2\x478\x479\x3\x2\x2\x2\x479\x47B\x5\xBC_\x2\x47A\x473\x3\x2\x2"+ + "\x2\x47B\x47E\x3\x2\x2\x2\x47C\x47A\x3\x2\x2\x2\x47C\x47D\x3\x2\x2\x2"+ + "\x47Du\x3\x2\x2\x2\x47E\x47C\x3\x2\x2\x2\x47F\x480\a\x9B\x2\x2\x480\x481"+ + "\x5\x126\x94\x2\x481\x482\x5\xBC_\x2\x482\x483\x5\x126\x94\x2\x483\x484"+ + "\a{\x2\x2\x484\x485\x5\x126\x94\x2\x485\x490\x5\xBC_\x2\x486\x488\x5\x126"+ + "\x94\x2\x487\x486\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2\x488\x489\x3\x2\x2"+ + "\x2\x489\x48B\a)\x2\x2\x48A\x48C\x5\x126\x94\x2\x48B\x48A\x3\x2\x2\x2"+ + "\x48B\x48C\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48F\x5\xBC_\x2\x48E"+ + "\x487\x3\x2\x2\x2\x48F\x492\x3\x2\x2\x2\x490\x48E\x3\x2\x2\x2\x490\x491"+ + "\x3\x2\x2\x2\x491w\x3\x2\x2\x2\x492\x490\x3\x2\x2\x2\x493\x494\a\x9E\x2"+ + "\x2\x494\x495\x5\x126\x94\x2\x495\x496\x5\xBC_\x2\x496\x497\x5\x126\x94"+ + "\x2\x497\x498\aw\x2\x2\x498\x499\x5\x126\x94\x2\x499\x49F\t\a\x2\x2\x49A"+ + "\x49B\x5\x126\x94\x2\x49B\x49C\a\x33\x2\x2\x49C\x49D\x5\x126\x94\x2\x49D"+ + "\x49E\t\b\x2\x2\x49E\x4A0\x3\x2\x2\x2\x49F\x49A\x3\x2\x2\x2\x49F\x4A0"+ + "\x3\x2\x2\x2\x4A0\x4A4\x3\x2\x2\x2\x4A1\x4A2\x5\x126\x94\x2\x4A2\x4A3"+ + "\t\t\x2\x2\x4A3\x4A5\x3\x2\x2\x2\x4A4\x4A1\x3\x2\x2\x2\x4A4\x4A5\x3\x2"+ + "\x2\x2\x4A5\x4A6\x3\x2\x2\x2\x4A6\x4A7\x5\x126\x94\x2\x4A7\x4A8\a:\x2"+ + "\x2\x4A8\x4A9\x5\x126\x94\x2\x4A9\x4B5\x5\xD0i\x2\x4AA\x4AB\x5\x126\x94"+ + "\x2\x4AB\x4AD\a\x1D\x2\x2\x4AC\x4AE\x5\x126\x94\x2\x4AD\x4AC\x3\x2\x2"+ + "\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF\x4B1\a\xE2\x2\x2"+ + "\x4B0\x4B2\x5\x126\x94\x2\x4B1\x4B0\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2"+ + "\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x5\xBC_\x2\x4B4\x4B6\x3\x2\x2\x2\x4B5"+ + "\x4AA\x3\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6y\x3\x2\x2\x2\x4B7\x4C4\x5"+ + "|?\x2\x4B8\x4BA\x5\x126\x94\x2\x4B9\x4B8\x3\x2\x2\x2\x4B9\x4BA\x3\x2\x2"+ + "\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BD\t\n\x2\x2\x4BC\x4BE\x5\x126\x94\x2"+ + "\x4BD\x4BC\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BE\x4C0\x3\x2\x2\x2\x4BF"+ + "\x4C1\x5|?\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x3"+ + "\x2\x2\x2\x4C2\x4B9\x3\x2\x2\x2\x4C3\x4C6\x3\x2\x2\x2\x4C4\x4C2\x3\x2"+ + "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4D9\x3\x2\x2\x2\x4C6\x4C4\x3\x2\x2"+ + "\x2\x4C7\x4C9\x5|?\x2\x4C8\x4C7\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ + "\x4D4\x3\x2\x2\x2\x4CA\x4CC\x5\x126\x94\x2\x4CB\x4CA\x3\x2\x2\x2\x4CB"+ + "\x4CC\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CF\t\n\x2\x2\x4CE\x4D0"+ + "\x5\x126\x94\x2\x4CF\x4CE\x3\x2\x2\x2\x4CF\x4D0\x3\x2\x2\x2\x4D0\x4D2"+ + "\x3\x2\x2\x2\x4D1\x4D3\x5|?\x2\x4D2\x4D1\x3\x2\x2\x2\x4D2\x4D3\x3\x2\x2"+ + "\x2\x4D3\x4D5\x3\x2\x2\x2\x4D4\x4CB\x3\x2\x2\x2\x4D5\x4D6\x3\x2\x2\x2"+ + "\x4D6\x4D4\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4D9\x3\x2\x2\x2\x4D8"+ + "\x4B7\x3\x2\x2\x2\x4D8\x4C8\x3\x2\x2\x2\x4D9{\x3\x2\x2\x2\x4DA\x4EC\x5"+ + "\xBC_\x2\x4DB\x4E9\t\v\x2\x2\x4DC\x4DE\x5\x126\x94\x2\x4DD\x4DC\x3\x2"+ + "\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1\a\xE6\x2"+ + "\x2\x4E0\x4E2\x5\x126\x94\x2\x4E1\x4E0\x3\x2\x2\x2\x4E1\x4E2\x3\x2\x2"+ + "\x2\x4E2\x4E3\x3\x2\x2\x2\x4E3\x4E5\x5\xE8u\x2\x4E4\x4E6\x5\x126\x94\x2"+ + "\x4E5\x4E4\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2\x4E6\x4E7\x3\x2\x2\x2\x4E7"+ + "\x4E8\a\xED\x2\x2\x4E8\x4EA\x3\x2\x2\x2\x4E9\x4DD\x3\x2\x2\x2\x4E9\x4EA"+ + "\x3\x2\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4DA\x3\x2\x2\x2\x4EB\x4DB\x3"+ + "\x2\x2\x2\x4EC}\x3\x2\x2\x2\x4ED\x4EE\a\xA8\x2\x2\x4EE\x4EF\x5\x126\x94"+ + "\x2\x4EF\x4F1\x5\xD0i\x2\x4F0\x4F2\x5\x126\x94\x2\x4F1\x4F0\x3\x2\x2\x2"+ + "\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F8\a)\x2\x2\x4F4\x4F6"+ + "\x5\x126\x94\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ + "\x3\x2\x2\x2\x4F7\x4F9\x5z>\x2\x4F8\x4F5\x3\x2\x2\x2\x4F8\x4F9\x3\x2\x2"+ + "\x2\x4F9\x7F\x3\x2\x2\x2\x4FA\x4FB\x5\x110\x89\x2\x4FB\x4FC\x5\x126\x94"+ + "\x2\x4FC\x4FE\x3\x2\x2\x2\x4FD\x4FA\x3\x2\x2\x2\x4FD\x4FE\x3\x2\x2\x2"+ + "\x4FE\x501\x3\x2\x2\x2\x4FF\x500\a\xC6\x2\x2\x500\x502\x5\x126\x94\x2"+ + "\x501\x4FF\x3\x2\x2\x2\x501\x502\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503"+ + "\x504\a\xAA\x2\x2\x504\x505\x5\x126\x94\x2\x505\x507\x5\xF8}\x2\x506\x508"+ + "\x5\x10E\x88\x2\x507\x506\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x50D"+ + "\x3\x2\x2\x2\x509\x50B\x5\x126\x94\x2\x50A\x509\x3\x2\x2\x2\x50A\x50B"+ + "\x3\x2\x2\x2\x50B\x50C\x3\x2\x2\x2\x50C\x50E\x5\xEEx\x2\x50D\x50A\x3\x2"+ + "\x2\x2\x50D\x50E\x3\x2\x2\x2\x50E\x512\x3\x2\x2\x2\x50F\x510\x5\x126\x94"+ + "\x2\x510\x511\x5\xFA~\x2\x511\x513\x3\x2\x2\x2\x512\x50F\x3\x2\x2\x2\x512"+ + "\x513\x3\x2\x2\x2\x513\x514\x3\x2\x2\x2\x514\x516\x5\x116\x8C\x2\x515"+ + "\x517\x5\x1A\xE\x2\x516\x515\x3\x2\x2\x2\x516\x517\x3\x2\x2\x2\x517\x518"+ + "\x3\x2\x2\x2\x518\x519\a\x64\x2\x2\x519\x81\x3\x2\x2\x2\x51A\x51B\x5\x110"+ + "\x89\x2\x51B\x51C\x5\x126\x94\x2\x51C\x51E\x3\x2\x2\x2\x51D\x51A\x3\x2"+ + "\x2\x2\x51D\x51E\x3\x2\x2\x2\x51E\x521\x3\x2\x2\x2\x51F\x520\a\xC6\x2"+ + "\x2\x520\x522\x5\x126\x94\x2\x521\x51F\x3\x2\x2\x2\x521\x522\x3\x2\x2"+ + "\x2\x522\x523\x3\x2\x2\x2\x523\x524\a\xAC\x2\x2\x524\x525\x5\x126\x94"+ + "\x2\x525\x52A\x5\xF8}\x2\x526\x528\x5\x126\x94\x2\x527\x526\x3\x2\x2\x2"+ + "\x527\x528\x3\x2\x2\x2\x528\x529\x3\x2\x2\x2\x529\x52B\x5\xEEx\x2\x52A"+ + "\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52C\x3\x2\x2\x2\x52C\x52E"+ + "\x5\x116\x8C\x2\x52D\x52F\x5\x1A\xE\x2\x52E\x52D\x3\x2\x2\x2\x52E\x52F"+ + "\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531\a\x64\x2\x2\x531\x83\x3\x2"+ + "\x2\x2\x532\x533\x5\x110\x89\x2\x533\x534\x5\x126\x94\x2\x534\x536\x3"+ + "\x2\x2\x2\x535\x532\x3\x2\x2\x2\x535\x536\x3\x2\x2\x2\x536\x539\x3\x2"+ + "\x2\x2\x537\x538\a\xC6\x2\x2\x538\x53A\x5\x126\x94\x2\x539\x537\x3\x2"+ + "\x2\x2\x539\x53A\x3\x2\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53C\a\xAB\x2"+ + "\x2\x53C\x53D\x5\x126\x94\x2\x53D\x542\x5\xF8}\x2\x53E\x540\x5\x126\x94"+ + "\x2\x53F\x53E\x3\x2\x2\x2\x53F\x540\x3\x2\x2\x2\x540\x541\x3\x2\x2\x2"+ + "\x541\x543\x5\xEEx\x2\x542\x53F\x3\x2\x2\x2\x542\x543\x3\x2\x2\x2\x543"+ + "\x544\x3\x2\x2\x2\x544\x546\x5\x116\x8C\x2\x545\x547\x5\x1A\xE\x2\x546"+ + "\x545\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2\x2\x548\x549"+ + "\a\x64\x2\x2\x549\x85\x3\x2\x2\x2\x54A\x54B\a\xAF\x2\x2\x54B\x54C\x5\x126"+ + "\x94\x2\x54C\x54E\x5\xD0i\x2\x54D\x54F\x5\x126\x94\x2\x54E\x54D\x3\x2"+ + "\x2\x2\x54E\x54F\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x552\a)\x2\x2"+ + "\x551\x553\x5\x126\x94\x2\x552\x551\x3\x2\x2\x2\x552\x553\x3\x2\x2\x2"+ + "\x553\x555\x3\x2\x2\x2\x554\x556\x5\xBC_\x2\x555\x554\x3\x2\x2\x2\x555"+ + "\x556\x3\x2\x2\x2\x556\x558\x3\x2\x2\x2\x557\x559\x5\x126\x94\x2\x558"+ + "\x557\x3\x2\x2\x2\x558\x559\x3\x2\x2\x2\x559\x55A\x3\x2\x2\x2\x55A\x55C"+ + "\a)\x2\x2\x55B\x55D\x5\x126\x94\x2\x55C\x55B\x3\x2\x2\x2\x55C\x55D\x3"+ + "\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x55F\x5\xBC_\x2\x55F\x87\x3\x2\x2"+ + "\x2\x560\x561\a\xB2\x2\x2\x561\x562\x5\x126\x94\x2\x562\x571\x5\xF8}\x2"+ + "\x563\x565\x5\x126\x94\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2"+ + "\x565\x566\x3\x2\x2\x2\x566\x568\a\xE6\x2\x2\x567\x569\x5\x126\x94\x2"+ + "\x568\x567\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569\x56E\x3\x2\x2\x2\x56A"+ + "\x56C\x5\xE8u\x2\x56B\x56D\x5\x126\x94\x2\x56C\x56B\x3\x2\x2\x2\x56C\x56D"+ + "\x3\x2\x2\x2\x56D\x56F\x3\x2\x2\x2\x56E\x56A\x3\x2\x2\x2\x56E\x56F\x3"+ + "\x2\x2\x2\x56F\x570\x3\x2\x2\x2\x570\x572\a\xED\x2\x2\x571\x564\x3\x2"+ + "\x2\x2\x571\x572\x3\x2\x2\x2\x572\x89\x3\x2\x2\x2\x573\x577\a\xB1\x2\x2"+ + "\x574\x575\x5\x126\x94\x2\x575\x576\x5\xBC_\x2\x576\x578\x3\x2\x2\x2\x577"+ + "\x574\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x8B\x3\x2\x2\x2\x579\x57A"+ + "\a\xB5\x2\x2\x57A\x57D\x5\x126\x94\x2\x57B\x57C\a\xA7\x2\x2\x57C\x57E"+ + "\x5\x126\x94\x2\x57D\x57B\x3\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x57F"+ + "\x3\x2\x2\x2\x57F\x58A\x5\x8EH\x2\x580\x582\x5\x126\x94\x2\x581\x580\x3"+ + "\x2\x2\x2\x581\x582\x3\x2\x2\x2\x582\x583\x3\x2\x2\x2\x583\x585\a)\x2"+ + "\x2\x584\x586\x5\x126\x94\x2\x585\x584\x3\x2\x2\x2\x585\x586\x3\x2\x2"+ + "\x2\x586\x587\x3\x2\x2\x2\x587\x589\x5\x8EH\x2\x588\x581\x3\x2\x2\x2\x589"+ + "\x58C\x3\x2\x2\x2\x58A\x588\x3\x2\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x8D"+ + "\x3\x2\x2\x2\x58C\x58A\x3\x2\x2\x2\x58D\x58F\x5\xDCo\x2\x58E\x590\x5\x126"+ + "\x94\x2\x58F\x58E\x3\x2\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591\x3\x2\x2"+ + "\x2\x591\x593\a\xE6\x2\x2\x592\x594\x5\x126\x94\x2\x593\x592\x3\x2\x2"+ + "\x2\x593\x594\x3\x2\x2\x2\x594\x595\x3\x2\x2\x2\x595\x597\x5\xF4{\x2\x596"+ + "\x598\x5\x126\x94\x2\x597\x596\x3\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598"+ + "\x599\x3\x2\x2\x2\x599\x59D\a\xED\x2\x2\x59A\x59B\x5\x126\x94\x2\x59B"+ + "\x59C\x5\xFA~\x2\x59C\x59E\x3\x2\x2\x2\x59D\x59A\x3\x2\x2\x2\x59D\x59E"+ + "\x3\x2\x2\x2\x59E\x8F\x3\x2\x2\x2\x59F\x5A0\a\xB7\x2\x2\x5A0\x91\x3\x2"+ + "\x2\x2\x5A1\x5A7\a\xB8\x2\x2\x5A2\x5A5\x5\x126\x94\x2\x5A3\x5A6\a\x96"+ + "\x2\x2\x5A4\x5A6\x5\xF8}\x2\x5A5\x5A3\x3\x2\x2\x2\x5A5\x5A4\x3\x2\x2\x2"+ + "\x5A6\x5A8\x3\x2\x2\x2\x5A7\x5A2\x3\x2\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8"+ + "\x93\x3\x2\x2\x2\x5A9\x5AA\a\xB9\x2\x2\x5AA\x95\x3\x2\x2\x2\x5AB\x5AC"+ + "\a\xBA\x2\x2\x5AC\x5AD\x5\x126\x94\x2\x5AD\x5AE\x5\xBC_\x2\x5AE\x97\x3"+ + "\x2\x2\x2\x5AF\x5B0\a\xBB\x2\x2\x5B0\x5B1\x5\x126\x94\x2\x5B1\x5B3\x5"+ + "\xDCo\x2\x5B2\x5B4\x5\x126\x94\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2"+ + "\x2\x2\x5B4\x5B5\x3\x2\x2\x2\x5B5\x5B7\a\xE2\x2\x2\x5B6\x5B8\x5\x126\x94"+ + "\x2\x5B7\x5B6\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x3\x2\x2\x2"+ + "\x5B9\x5BA\x5\xBC_\x2\x5BA\x99\x3\x2\x2\x2\x5BB\x5BC\a\xBC\x2\x2\x5BC"+ + "\x5BD\x5\x126\x94\x2\x5BD\x5BF\x5\xBC_\x2\x5BE\x5C0\x5\x126\x94\x2\x5BF"+ + "\x5BE\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C3"+ + "\a)\x2\x2\x5C2\x5C4\x5\x126\x94\x2\x5C3\x5C2\x3\x2\x2\x2\x5C3\x5C4\x3"+ + "\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5\x5C6\x5\xBC_\x2\x5C6\x9B\x3\x2\x2"+ + "\x2\x5C7\x5C8\a\xBD\x2\x2\x5C8\x5C9\x5\x126\x94\x2\x5C9\x5CB\x5\xBC_\x2"+ + "\x5CA\x5CC\x5\x126\x94\x2\x5CB\x5CA\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2"+ + "\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CF\a)\x2\x2\x5CE\x5D0\x5\x126\x94\x2\x5CF"+ + "\x5CE\x3\x2\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D3"+ + "\x5\xBC_\x2\x5D2\x5D4\x5\x126\x94\x2\x5D3\x5D2\x3\x2\x2\x2\x5D3\x5D4\x3"+ + "\x2\x2\x2\x5D4\x5D5\x3\x2\x2\x2\x5D5\x5D7\a)\x2\x2\x5D6\x5D8\x5\x126\x94"+ + "\x2\x5D7\x5D6\x3\x2\x2\x2\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5D9\x3\x2\x2\x2"+ + "\x5D9\x5DB\x5\xBC_\x2\x5DA\x5DC\x5\x126\x94\x2\x5DB\x5DA\x3\x2\x2\x2\x5DB"+ + "\x5DC\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DF\a)\x2\x2\x5DE\x5E0\x5"+ + "\x126\x94\x2\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3"+ + "\x2\x2\x2\x5E1\x5E2\x5\xBC_\x2\x5E2\x9D\x3\x2\x2\x2\x5E3\x5E4\a\xBE\x2"+ + "\x2\x5E4\x5E5\x5\x126\x94\x2\x5E5\x5E7\x5\xD0i\x2\x5E6\x5E8\x5\x126\x94"+ + "\x2\x5E7\x5E6\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2"+ + "\x5E9\x5EB\a)\x2\x2\x5EA\x5EC\x5\x126\x94\x2\x5EB\x5EA\x3\x2\x2\x2\x5EB"+ + "\x5EC\x3\x2\x2\x2\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x5\xBC_\x2\x5EE\x9F"+ + "\x3\x2\x2\x2\x5EF\x5F0\a\xBF\x2\x2\x5F0\x5F1\x5\x126\x94\x2\x5F1\x5F2"+ + "\a\x43\x2\x2\x5F2\x5F3\x5\x126\x94\x2\x5F3\x5F4\x5\xBC_\x2\x5F4\x5F8\x5"+ + "\x116\x8C\x2\x5F5\x5F7\x5\xA4S\x2\x5F6\x5F5\x3\x2\x2\x2\x5F7\x5FA\x3\x2"+ + "\x2\x2\x5F8\x5F6\x3\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FB\x3\x2\x2"+ + "\x2\x5FA\x5F8\x3\x2\x2\x2\x5FB\x5FC\a\x65\x2\x2\x5FC\xA1\x3\x2\x2\x2\x5FD"+ + "\x5FF\a\x82\x2\x2\x5FE\x600\x5\x126\x94\x2\x5FF\x5FE\x3\x2\x2\x2\x5FF"+ + "\x600\x3\x2\x2\x2\x600\x601\x3\x2\x2\x2\x601\x603\x5\xFE\x80\x2\x602\x604"+ + "\x5\x126\x94\x2\x603\x602\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x605"+ + "\x3\x2\x2\x2\x605\x606\x5\xBC_\x2\x606\x60F\x3\x2\x2\x2\x607\x608\x5\xBC"+ + "_\x2\x608\x609\x5\x126\x94\x2\x609\x60A\a\xCF\x2\x2\x60A\x60B\x5\x126"+ + "\x94\x2\x60B\x60C\x5\xBC_\x2\x60C\x60F\x3\x2\x2\x2\x60D\x60F\x5\xBC_\x2"+ + "\x60E\x5FD\x3\x2\x2\x2\x60E\x607\x3\x2\x2\x2\x60E\x60D\x3\x2\x2\x2\x60F"+ + "\xA3\x3\x2\x2\x2\x610\x611\a\x43\x2\x2\x611\x612\x5\x126\x94\x2\x612\x613"+ + "\x5\xA6T\x2\x613\x615\x5\x116\x8C\x2\x614\x616\x5\x1A\xE\x2\x615\x614"+ + "\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\xA5\x3\x2\x2\x2\x617\x627\a^\x2"+ + "\x2\x618\x623\x5\xA2R\x2\x619\x61B\x5\x126\x94\x2\x61A\x619\x3\x2\x2\x2"+ + "\x61A\x61B\x3\x2\x2\x2\x61B\x61C\x3\x2\x2\x2\x61C\x61E\a)\x2\x2\x61D\x61F"+ + "\x5\x126\x94\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F\x3\x2\x2\x2\x61F\x620"+ + "\x3\x2\x2\x2\x620\x622\x5\xA2R\x2\x621\x61A\x3\x2\x2\x2\x622\x625\x3\x2"+ + "\x2\x2\x623\x621\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x627\x3\x2\x2"+ + "\x2\x625\x623\x3\x2\x2\x2\x626\x617\x3\x2\x2\x2\x626\x618\x3\x2\x2\x2"+ + "\x627\xA7\x3\x2\x2\x2\x628\x629\a\xC0\x2\x2\x629\x62A\x5\x126\x94\x2\x62A"+ + "\x633\x5\xBC_\x2\x62B\x62D\x5\x126\x94\x2\x62C\x62B\x3\x2\x2\x2\x62C\x62D"+ + "\x3\x2\x2\x2\x62D\x62E\x3\x2\x2\x2\x62E\x630\a)\x2\x2\x62F\x631\x5\x126"+ + "\x94\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631\x632\x3\x2\x2"+ + "\x2\x632\x634\x5\xBC_\x2\x633\x62C\x3\x2\x2\x2\x633\x634\x3\x2\x2\x2\x634"+ + "\xA9\x3\x2\x2\x2\x635\x636\a\xC2\x2\x2\x636\x637\x5\x126\x94\x2\x637\x639"+ + "\x5\xBC_\x2\x638\x63A\x5\x126\x94\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3"+ + "\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a)\x2\x2\x63C\x63E\x5\x126\x94"+ + "\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2"+ + "\x63F\x640\x5\xBC_\x2\x640\xAB\x3\x2\x2\x2\x641\x642\a\xC1\x2\x2\x642"+ + "\x643\x5\x126\x94\x2\x643\x645\x5\xDCo\x2\x644\x646\x5\x126\x94\x2\x645"+ + "\x644\x3\x2\x2\x2\x645\x646\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x649"+ + "\a\xE2\x2\x2\x648\x64A\x5\x126\x94\x2\x649\x648\x3\x2\x2\x2\x649\x64A"+ + "\x3\x2\x2\x2\x64A\x64B\x3\x2\x2\x2\x64B\x64C\x5\xBC_\x2\x64C\xAD\x3\x2"+ + "\x2\x2\x64D\x64E\a\xC8\x2\x2\x64E\xAF\x3\x2\x2\x2\x64F\x650\x5\x110\x89"+ + "\x2\x650\x651\x5\x126\x94\x2\x651\x653\x3\x2\x2\x2\x652\x64F\x3\x2\x2"+ + "\x2\x652\x653\x3\x2\x2\x2\x653\x656\x3\x2\x2\x2\x654\x655\a\xC6\x2\x2"+ + "\x655\x657\x5\x126\x94\x2\x656\x654\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2"+ + "\x657\x658\x3\x2\x2\x2\x658\x65A\a\xCA\x2\x2\x659\x65B\x5\x126\x94\x2"+ + "\x65A\x659\x3\x2\x2\x2\x65A\x65B\x3\x2\x2\x2\x65B\x65C\x3\x2\x2\x2\x65C"+ + "\x661\x5\xF8}\x2\x65D\x65F\x5\x126\x94\x2\x65E\x65D\x3\x2\x2\x2\x65E\x65F"+ + "\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x662\x5\xEEx\x2\x661\x65E\x3\x2"+ + "\x2\x2\x661\x662\x3\x2\x2\x2\x662\x663\x3\x2\x2\x2\x663\x665\x5\x116\x8C"+ + "\x2\x664\x666\x5\x1A\xE\x2\x665\x664\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2"+ + "\x666\x667\x3\x2\x2\x2\x667\x668\a\x66\x2\x2\x668\xB1\x3\x2\x2\x2\x669"+ + "\x66B\a\xCE\x2\x2\x66A\x66C\x5\x126\x94\x2\x66B\x66A\x3\x2\x2\x2\x66B"+ + "\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D\x66F\a\xE2\x2\x2\x66E\x670"+ + "\x5\x126\x94\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2\x2\x670\x671"+ + "\x3\x2\x2\x2\x671\x672\x5\xBC_\x2\x672\xB3\x3\x2\x2\x2\x673\x674\x5\x110"+ + "\x89\x2\x674\x675\x5\x126\x94\x2\x675\x677\x3\x2\x2\x2\x676\x673\x3\x2"+ + "\x2\x2\x676\x677\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2\x678\x679\a\xD1\x2"+ + "\x2\x679\x67A\x5\x126\x94\x2\x67A\x67B\x5\xF8}\x2\x67B\x67F\x5\x116\x8C"+ + "\x2\x67C\x67E\x5\xB6\\\x2\x67D\x67C\x3\x2\x2\x2\x67E\x681\x3\x2\x2\x2"+ + "\x67F\x67D\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x682\x3\x2\x2\x2\x681"+ + "\x67F\x3\x2\x2\x2\x682\x683\ag\x2\x2\x683\xB5\x3\x2\x2\x2\x684\x693\x5"+ + "\xF8}\x2\x685\x687\x5\x126\x94\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2"+ + "\x2\x2\x687\x688\x3\x2\x2\x2\x688\x68D\a\xE6\x2\x2\x689\x68B\x5\x126\x94"+ + "\x2\x68A\x689\x3\x2\x2\x2\x68A\x68B\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2"+ + "\x68C\x68E\x5\xF4{\x2\x68D\x68A\x3\x2\x2\x2\x68D\x68E\x3\x2\x2\x2\x68E"+ + "\x690\x3\x2\x2\x2\x68F\x691\x5\x126\x94\x2\x690\x68F\x3\x2\x2\x2\x690"+ + "\x691\x3\x2\x2\x2\x691\x692\x3\x2\x2\x2\x692\x694\a\xED\x2\x2\x693\x686"+ + "\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x698\x3\x2\x2\x2\x695\x696\x5"+ + "\x126\x94\x2\x696\x697\x5\xFA~\x2\x697\x699\x3\x2\x2\x2\x698\x695\x3\x2"+ + "\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69B\x5\x116\x8C"+ + "\x2\x69B\xB7\x3\x2\x2\x2\x69C\x69D\a\xD3\x2\x2\x69D\x69E\x5\x126\x94\x2"+ + "\x69E\x69F\x5\xBC_\x2\x69F\xB9\x3\x2\x2\x2\x6A0\x6A1\a\xD4\x2\x2\x6A1"+ + "\x6A2\x5\x126\x94\x2\x6A2\x6B2\x5\xD0i\x2\x6A3\x6A5\x5\x126\x94\x2\x6A4"+ + "\x6A3\x3\x2\x2\x2\x6A4\x6A5\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A8"+ + "\a)\x2\x2\x6A7\x6A9\x5\x126\x94\x2\x6A8\x6A7\x3\x2\x2\x2\x6A8\x6A9\x3"+ + "\x2\x2\x2\x6A9\x6AA\x3\x2\x2\x2\x6AA\x6B0\x5\xBC_\x2\x6AB\x6AC\x5\x126"+ + "\x94\x2\x6AC\x6AD\a\xCF\x2\x2\x6AD\x6AE\x5\x126\x94\x2\x6AE\x6AF\x5\xBC"+ + "_\x2\x6AF\x6B1\x3\x2\x2\x2\x6B0\x6AB\x3\x2\x2\x2\x6B0\x6B1\x3\x2\x2\x2"+ + "\x6B1\x6B3\x3\x2\x2\x2\x6B2\x6A4\x3\x2\x2\x2\x6B2\x6B3\x3\x2\x2\x2\x6B3"+ + "\xBB\x3\x2\x2\x2\x6B4\x6B5\b_\x1\x2\x6B5\x6B7\a\x97\x2\x2\x6B6\x6B8\x5"+ + "\x126\x94\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ + "\x2\x2\x2\x6B9\x6E2\x5\xBC_\x15\x6BA\x6BC\a\x34\x2\x2\x6BB\x6BD\x5\x126"+ + "\x94\x2\x6BC\x6BB\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BE\x3\x2\x2"+ + "\x2\x6BE\x6E2\x5\xBC_\x12\x6BF\x6C1\x5\xDCo\x2\x6C0\x6C2\x5\x126\x94\x2"+ + "\x6C1\x6C0\x3\x2\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\x6C3\x3\x2\x2\x2\x6C3"+ + "\x6C5\a\xDF\x2\x2\x6C4\x6C6\x5\x126\x94\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5"+ + "\x6C6\x3\x2\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C8\x5\xBC_\x11\x6C8\x6E2"+ + "\x3\x2\x2\x2\x6C9\x6CB\a\xE8\x2\x2\x6CA\x6CC\x5\x126\x94\x2\x6CB\x6CA"+ + "\x3\x2\x2\x2\x6CB\x6CC\x3\x2\x2\x2\x6CC\x6CD\x3\x2\x2\x2\x6CD\x6E2\x5"+ + "\xBC_\xF\x6CE\x6D0\a\x98\x2\x2\x6CF\x6D1\x5\x126\x94\x2\x6D0\x6CF\x3\x2"+ + "\x2\x2\x6D0\x6D1\x3\x2\x2\x2\x6D1\x6D2\x3\x2\x2\x2\x6D2\x6E2\x5\xBC_\b"+ + "\x6D3\x6E2\x5\x108\x85\x2\x6D4\x6E2\x5\xDCo\x2\x6D5\x6D7\a\xE6\x2\x2\x6D6"+ + "\x6D8\x5\x126\x94\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8"+ + "\x6D9\x3\x2\x2\x2\x6D9\x6DB\x5\xBC_\x2\x6DA\x6DC\x5\x126\x94\x2\x6DB\x6DA"+ + "\x3\x2\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x6DE\a\xED"+ + "\x2\x2\x6DE\x6E2\x3\x2\x2\x2\x6DF\x6E2\x5\xBE`\x2\x6E0\x6E2\x5l\x37\x2"+ + "\x6E1\x6B4\x3\x2\x2\x2\x6E1\x6BA\x3\x2\x2\x2\x6E1\x6BF\x3\x2\x2\x2\x6E1"+ + "\x6C9\x3\x2\x2\x2\x6E1\x6CE\x3\x2\x2\x2\x6E1\x6D3\x3\x2\x2\x2\x6E1\x6D4"+ + "\x3\x2\x2\x2\x6E1\x6D5\x3\x2\x2\x2\x6E1\x6DF\x3\x2\x2\x2\x6E1\x6E0\x3"+ + "\x2\x2\x2\x6E2\x751\x3\x2\x2\x2\x6E3\x6E5\f\x10\x2\x2\x6E4\x6E6\x5\x126"+ + "\x94\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2\x6E6\x6E7\x3\x2\x2"+ + "\x2\x6E7\x6E9\a\xEC\x2\x2\x6E8\x6EA\x5\x126\x94\x2\x6E9\x6E8\x3\x2\x2"+ + "\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB\x750\x5\xBC_\x11"+ + "\x6EC\x6EE\f\xE\x2\x2\x6ED\x6EF\x5\x126\x94\x2\x6EE\x6ED\x3\x2\x2\x2\x6EE"+ + "\x6EF\x3\x2\x2\x2\x6EF\x6F0\x3\x2\x2\x2\x6F0\x6F2\t\f\x2\x2\x6F1\x6F3"+ + "\x5\x126\x94\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F4"+ + "\x3\x2\x2\x2\x6F4\x750\x5\xBC_\xF\x6F5\x6F7\f\r\x2\x2\x6F6\x6F8\x5\x126"+ + "\x94\x2\x6F7\x6F6\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x6F9\x3\x2\x2"+ + "\x2\x6F9\x6FB\a\xE1\x2\x2\x6FA\x6FC\x5\x126\x94\x2\x6FB\x6FA\x3\x2\x2"+ + "\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x750\x5\xBC_\xE\x6FE"+ + "\x700\f\f\x2\x2\x6FF\x701\x5\x126\x94\x2\x700\x6FF\x3\x2\x2\x2\x700\x701"+ + "\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x704\a\x94\x2\x2\x703\x705\x5"+ + "\x126\x94\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706\x3"+ + "\x2\x2\x2\x706\x750\x5\xBC_\r\x707\x709\f\v\x2\x2\x708\x70A\x5\x126\x94"+ + "\x2\x709\x708\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x70B\x3\x2\x2\x2"+ + "\x70B\x70D\t\r\x2\x2\x70C\x70E\x5\x126\x94\x2\x70D\x70C\x3\x2\x2\x2\x70D"+ + "\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x750\x5\xBC_\f\x710\x712"+ + "\f\n\x2\x2\x711\x713\x5\x126\x94\x2\x712\x711\x3\x2\x2\x2\x712\x713\x3"+ + "\x2\x2\x2\x713\x714\x3\x2\x2\x2\x714\x716\a\x32\x2\x2\x715\x717\x5\x126"+ + "\x94\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2"+ + "\x2\x718\x750\x5\xBC_\v\x719\x71B\f\t\x2\x2\x71A\x71C\x5\x126\x94\x2\x71B"+ + "\x71A\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2\x71D\x71F"+ + "\t\xE\x2\x2\x71E\x720\x5\x126\x94\x2\x71F\x71E\x3\x2\x2\x2\x71F\x720\x3"+ + "\x2\x2\x2\x720\x721\x3\x2\x2\x2\x721\x750\x5\xBC_\n\x722\x724\f\a\x2\x2"+ + "\x723\x725\x5\x126\x94\x2\x724\x723\x3\x2\x2\x2\x724\x725\x3\x2\x2\x2"+ + "\x725\x726\x3\x2\x2\x2\x726\x728\a\x36\x2\x2\x727\x729\x5\x126\x94\x2"+ + "\x728\x727\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A"+ + "\x750\x5\xBC_\b\x72B\x72D\f\x6\x2\x2\x72C\x72E\x5\x126\x94\x2\x72D\x72C"+ + "\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2\x72F\x731\a\xA4"+ + "\x2\x2\x730\x732\x5\x126\x94\x2\x731\x730\x3\x2\x2\x2\x731\x732\x3\x2"+ + "\x2\x2\x732\x733\x3\x2\x2\x2\x733\x750\x5\xBC_\a\x734\x736\f\x5\x2\x2"+ + "\x735\x737\x5\x126\x94\x2\x736\x735\x3\x2\x2\x2\x736\x737\x3\x2\x2\x2"+ + "\x737\x738\x3\x2\x2\x2\x738\x73A\a\xDE\x2\x2\x739\x73B\x5\x126\x94\x2"+ + "\x73A\x739\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C"+ + "\x750\x5\xBC_\x6\x73D\x73F\f\x4\x2\x2\x73E\x740\x5\x126\x94\x2\x73F\x73E"+ + "\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\ak"+ + "\x2\x2\x742\x744\x5\x126\x94\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2"+ + "\x2\x2\x744\x745\x3\x2\x2\x2\x745\x750\x5\xBC_\x5\x746\x748\f\x3\x2\x2"+ + "\x747\x749\x5\x126\x94\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ + "\x749\x74A\x3\x2\x2\x2\x74A\x74C\a~\x2\x2\x74B\x74D\x5\x126\x94\x2\x74C"+ + "\x74B\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x750"+ + "\x5\xBC_\x4\x74F\x6E3\x3\x2\x2\x2\x74F\x6EC\x3\x2\x2\x2\x74F\x6F5\x3\x2"+ + "\x2\x2\x74F\x6FE\x3\x2\x2\x2\x74F\x707\x3\x2\x2\x2\x74F\x710\x3\x2\x2"+ + "\x2\x74F\x719\x3\x2\x2\x2\x74F\x722\x3\x2\x2\x2\x74F\x72B\x3\x2\x2\x2"+ + "\x74F\x734\x3\x2\x2\x2\x74F\x73D\x3\x2\x2\x2\x74F\x746\x3\x2\x2\x2\x750"+ + "\x753\x3\x2\x2\x2\x751\x74F\x3\x2\x2\x2\x751\x752\x3\x2\x2\x2\x752\xBD"+ + "\x3\x2\x2\x2\x753\x751\x3\x2\x2\x2\x754\x755\a\xD2\x2\x2\x755\x756\x5"+ + "\x126\x94\x2\x756\x75C\x5\xBC_\x2\x757\x758\x5\x126\x94\x2\x758\x759\a"+ + "\x82\x2\x2\x759\x75A\x5\x126\x94\x2\x75A\x75B\x5\x10C\x87\x2\x75B\x75D"+ + "\x3\x2\x2\x2\x75C\x757\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D\xBF\x3\x2"+ + "\x2\x2\x75E\x762\aZ\x2\x2\x75F\x762\a\xC6\x2\x2\x760\x762\x5\x110\x89"+ + "\x2\x761\x75E\x3\x2\x2\x2\x761\x75F\x3\x2\x2\x2\x761\x760\x3\x2\x2\x2"+ + "\x762\x763\x3\x2\x2\x2\x763\x766\x5\x126\x94\x2\x764\x765\a\xDC\x2\x2"+ + "\x765\x767\x5\x126\x94\x2\x766\x764\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2"+ + "\x767\x768\x3\x2\x2\x2\x768\x769\x5\xC2\x62\x2\x769\xC1\x3\x2\x2\x2\x76A"+ + "\x775\x5\xC4\x63\x2\x76B\x76D\x5\x126\x94\x2\x76C\x76B\x3\x2\x2\x2\x76C"+ + "\x76D\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2\x76E\x770\a)\x2\x2\x76F\x771\x5"+ + "\x126\x94\x2\x770\x76F\x3\x2\x2\x2\x770\x771\x3\x2\x2\x2\x771\x772\x3"+ + "\x2\x2\x2\x772\x774\x5\xC4\x63\x2\x773\x76C\x3\x2\x2\x2\x774\x777\x3\x2"+ + "\x2\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776\xC3\x3\x2\x2\x2"+ + "\x777\x775\x3\x2\x2\x2\x778\x78A\x5\xF8}\x2\x779\x77B\x5\x126\x94\x2\x77A"+ + "\x779\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x77E"+ + "\a\xE6\x2\x2\x77D\x77F\x5\x126\x94\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F"+ + "\x3\x2\x2\x2\x77F\x784\x3\x2\x2\x2\x780\x782\x5\xF4{\x2\x781\x783\x5\x126"+ + "\x94\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x785\x3\x2\x2"+ + "\x2\x784\x780\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x786\x3\x2\x2\x2"+ + "\x786\x788\a\xED\x2\x2\x787\x789\x5\x126\x94\x2\x788\x787\x3\x2\x2\x2"+ + "\x788\x789\x3\x2\x2\x2\x789\x78B\x3\x2\x2\x2\x78A\x77A\x3\x2\x2\x2\x78A"+ + "\x78B\x3\x2\x2\x2\x78B\x78D\x3\x2\x2\x2\x78C\x78E\x5\x10E\x88\x2\x78D"+ + "\x78C\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x792\x3\x2\x2\x2\x78F\x790"+ + "\x5\x126\x94\x2\x790\x791\x5\xFA~\x2\x791\x793\x3\x2\x2\x2\x792\x78F\x3"+ + "\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\xC5\x3\x2\x2\x2\x794\x795\a\xD9\x2"+ + "\x2\x795\x796\x5\x126\x94\x2\x796\x797\x5\xBC_\x2\x797\x799\x5\x116\x8C"+ + "\x2\x798\x79A\x5\x1A\xE\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2"+ + "\x79A\x79B\x3\x2\x2\x2\x79B\x79C\a\xD8\x2\x2\x79C\xC7\x3\x2\x2\x2\x79D"+ + "\x79E\a\xDA\x2\x2\x79E\x79F\x5\x126\x94\x2\x79F\x7A1\x5\xD0i\x2\x7A0\x7A2"+ + "\x5\x126\x94\x2\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A3"+ + "\x3\x2\x2\x2\x7A3\x7A5\a)\x2\x2\x7A4\x7A6\x5\x126\x94\x2\x7A5\x7A4\x3"+ + "\x2\x2\x2\x7A5\x7A6\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7\x7A8\x5\xBC"+ + "_\x2\x7A8\xC9\x3\x2\x2\x2\x7A9\x7AA\a\xDB\x2\x2\x7AA\x7AB\x5\x126\x94"+ + "\x2\x7AB\x7AC\x5\xCCg\x2\x7AC\x7AE\x5\x116\x8C\x2\x7AD\x7AF\x5\x1A\xE"+ + "\x2\x7AE\x7AD\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x3\x2\x2\x2"+ + "\x7B0\x7B1\ah\x2\x2\x7B1\xCB\x3\x2\x2\x2\x7B2\x7B3\x5\xBC_\x2\x7B3\xCD"+ + "\x3\x2\x2\x2\x7B4\x7B5\a\xDD\x2\x2\x7B5\x7B6\x5\x126\x94\x2\x7B6\x7B8"+ + "\x5\xD0i\x2\x7B7\x7B9\x5\x126\x94\x2\x7B8\x7B7\x3\x2\x2\x2\x7B8\x7B9\x3"+ + "\x2\x2\x2\x7B9\x7BA\x3\x2\x2\x2\x7BA\x7BF\a)\x2\x2\x7BB\x7BD\x5\x126\x94"+ + "\x2\x7BC\x7BB\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2"+ + "\x7BE\x7C0\x5z>\x2\x7BF\x7BC\x3\x2\x2\x2\x7BF\x7C0\x3\x2\x2\x2\x7C0\xCF"+ + "\x3\x2\x2\x2\x7C1\x7C3\a.\x2\x2\x7C2\x7C1\x3\x2\x2\x2\x7C2\x7C3\x3\x2"+ + "\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5\x5\xBC_\x2\x7C5\xD1\x3\x2\x2\x2"+ + "\x7C6\x7C7\a\x42\x2\x2\x7C7\x7C8\x5\x126\x94\x2\x7C8\x7C9\x5\xD4k\x2\x7C9"+ + "\xD3\x3\x2\x2\x2\x7CA\x7CC\x5\xDCo\x2\x7CB\x7CA\x3\x2\x2\x2\x7CB\x7CC"+ + "\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7CE\a-\x2\x2\x7CE\x7D0\x5\xF8"+ + "}\x2\x7CF\x7D1\x5\x10E\x88\x2\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2"+ + "\x2\x7D1\x7DF\x3\x2\x2\x2\x7D2\x7D4\x5\x126\x94\x2\x7D3\x7D2\x3\x2\x2"+ + "\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D7\a\xE6\x2\x2"+ + "\x7D6\x7D8\x5\x126\x94\x2\x7D7\x7D6\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2"+ + "\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DB\x5\xE8u\x2\x7DA\x7DC\x5\x126\x94\x2\x7DB"+ + "\x7DA\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7DD\x3\x2\x2\x2\x7DD\x7DE"+ + "\a\xED\x2\x2\x7DE\x7E0\x3\x2\x2\x2\x7DF\x7D3\x3\x2\x2\x2\x7DF\x7E0\x3"+ + "\x2\x2\x2\x7E0\x7EA\x3\x2\x2\x2\x7E1\x7E3\x5\x126\x94\x2\x7E2\x7E1\x3"+ + "\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E5\a\xE6"+ + "\x2\x2\x7E5\x7E6\x5\xF4{\x2\x7E6\x7E7\a\xED\x2\x2\x7E7\x7E9\x3\x2\x2\x2"+ + "\x7E8\x7E2\x3\x2\x2\x2\x7E9\x7EC\x3\x2\x2\x2\x7EA\x7E8\x3\x2\x2\x2\x7EA"+ + "\x7EB\x3\x2\x2\x2\x7EB\x80D\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2\x2\x7ED\x7EF"+ + "\x5\xF8}\x2\x7EE\x7F0\x5\x10E\x88\x2\x7EF\x7EE\x3\x2\x2\x2\x7EF\x7F0\x3"+ + "\x2\x2\x2\x7F0\x7FE\x3\x2\x2\x2\x7F1\x7F3\x5\x126\x94\x2\x7F2\x7F1\x3"+ + "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\x3\x2\x2\x2\x7F4\x7F6\a\xE6"+ + "\x2\x2\x7F5\x7F7\x5\x126\x94\x2\x7F6\x7F5\x3\x2\x2\x2\x7F6\x7F7\x3\x2"+ + "\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x7FA\x5\xE8u\x2\x7F9\x7FB\x5\x126\x94"+ + "\x2\x7FA\x7F9\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2"+ + "\x7FC\x7FD\a\xED\x2\x2\x7FD\x7FF\x3\x2\x2\x2\x7FE\x7F2\x3\x2\x2\x2\x7FE"+ + "\x7FF\x3\x2\x2\x2\x7FF\x809\x3\x2\x2\x2\x800\x802\x5\x126\x94\x2\x801"+ + "\x800\x3\x2\x2\x2\x801\x802\x3\x2\x2\x2\x802\x803\x3\x2\x2\x2\x803\x804"+ + "\a\xE6\x2\x2\x804\x805\x5\xF4{\x2\x805\x806\a\xED\x2\x2\x806\x808\x3\x2"+ + "\x2\x2\x807\x801\x3\x2\x2\x2\x808\x80B\x3\x2\x2\x2\x809\x807\x3\x2\x2"+ + "\x2\x809\x80A\x3\x2\x2\x2\x80A\x80D\x3\x2\x2\x2\x80B\x809\x3\x2\x2\x2"+ + "\x80C\x7CB\x3\x2\x2\x2\x80C\x7ED\x3\x2\x2\x2\x80D\xD5\x3\x2\x2\x2\x80E"+ + "\x811\x5\xD8m\x2\x80F\x811\x5\xDAn\x2\x810\x80E\x3\x2\x2\x2\x810\x80F"+ + "\x3\x2\x2\x2\x811\xD7\x3\x2\x2\x2\x812\x814\x5\xDCo\x2\x813\x812\x3\x2"+ + "\x2\x2\x813\x814\x3\x2\x2\x2\x814\x816\x3\x2\x2\x2\x815\x817\x5\x126\x94"+ + "\x2\x816\x815\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2\x817\x818\x3\x2\x2\x2"+ + "\x818\x81A\a-\x2\x2\x819\x81B\x5\x126\x94\x2\x81A\x819\x3\x2\x2\x2\x81A"+ + "\x81B\x3\x2\x2\x2\x81B\x81C\x3\x2\x2\x2\x81C\x81E\x5\xF8}\x2\x81D\x81F"+ + "\x5\x10E\x88\x2\x81E\x81D\x3\x2\x2\x2\x81E\x81F\x3\x2\x2\x2\x81F\x823"+ + "\x3\x2\x2\x2\x820\x821\x5\x126\x94\x2\x821\x822\x5\xE8u\x2\x822\x824\x3"+ + "\x2\x2\x2\x823\x820\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x829\x3\x2"+ + "\x2\x2\x825\x827\x5\x126\x94\x2\x826\x825\x3\x2\x2\x2\x826\x827\x3\x2"+ + "\x2\x2\x827\x828\x3\x2\x2\x2\x828\x82A\x5\xECw\x2\x829\x826\x3\x2\x2\x2"+ + "\x829\x82A\x3\x2\x2\x2\x82A\x834\x3\x2\x2\x2\x82B\x82D\x5\x126\x94\x2"+ + "\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3\x2\x2\x2\x82D\x82E\x3\x2\x2\x2\x82E"+ + "\x82F\a\xE6\x2\x2\x82F\x830\x5\xF4{\x2\x830\x831\a\xED\x2\x2\x831\x833"+ + "\x3\x2\x2\x2\x832\x82C\x3\x2\x2\x2\x833\x836\x3\x2\x2\x2\x834\x832\x3"+ + "\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835\xD9\x3\x2\x2\x2\x836\x834\x3\x2\x2"+ + "\x2\x837\x83B\x5\xF8}\x2\x838\x839\x5\x126\x94\x2\x839\x83A\x5\xE8u\x2"+ + "\x83A\x83C\x3\x2\x2\x2\x83B\x838\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C"+ + "\x846\x3\x2\x2\x2\x83D\x83F\x5\x126\x94\x2\x83E\x83D\x3\x2\x2\x2\x83E"+ + "\x83F\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\a\xE6\x2\x2\x841\x842"+ + "\x5\xF4{\x2\x842\x843\a\xED\x2\x2\x843\x845\x3\x2\x2\x2\x844\x83E\x3\x2"+ + "\x2\x2\x845\x848\x3\x2\x2\x2\x846\x844\x3\x2\x2\x2\x846\x847\x3\x2\x2"+ + "\x2\x847\xDB\x3\x2\x2\x2\x848\x846\x3\x2\x2\x2\x849\x84E\x5\xE2r\x2\x84A"+ + "\x84E\x5\xDEp\x2\x84B\x84E\x5\xE0q\x2\x84C\x84E\x5\xE6t\x2\x84D\x849\x3"+ + "\x2\x2\x2\x84D\x84A\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2\x84D\x84C\x3\x2"+ + "\x2\x2\x84E\xDD\x3\x2\x2\x2\x84F\x851\x5\xF8}\x2\x850\x852\x5\x10E\x88"+ + "\x2\x851\x850\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x857\x3\x2\x2\x2"+ + "\x853\x855\x5\x126\x94\x2\x854\x853\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2"+ + "\x855\x856\x3\x2\x2\x2\x856\x858\x5\xECw\x2\x857\x854\x3\x2\x2\x2\x857"+ + "\x858\x3\x2\x2\x2\x858\x862\x3\x2\x2\x2\x859\x85B\x5\x126\x94\x2\x85A"+ + "\x859\x3\x2\x2\x2\x85A\x85B\x3\x2\x2\x2\x85B\x85C\x3\x2\x2\x2\x85C\x85D"+ + "\a\xE6\x2\x2\x85D\x85E\x5\xF4{\x2\x85E\x85F\a\xED\x2\x2\x85F\x861\x3\x2"+ + "\x2\x2\x860\x85A\x3\x2\x2\x2\x861\x864\x3\x2\x2\x2\x862\x860\x3\x2\x2"+ + "\x2\x862\x863\x3\x2\x2\x2\x863\xDF\x3\x2\x2\x2\x864\x862\x3\x2\x2\x2\x865"+ + "\x868\x5\xF8}\x2\x866\x868\x5\xFC\x7F\x2\x867\x865\x3\x2\x2\x2\x867\x866"+ + "\x3\x2\x2\x2\x868\x86A\x3\x2\x2\x2\x869\x86B\x5\x10E\x88\x2\x86A\x869"+ + "\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86D\x3\x2\x2\x2\x86C\x86E\x5"+ + "\x126\x94\x2\x86D\x86C\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x86F\x3"+ + "\x2\x2\x2\x86F\x871\a\xE6\x2\x2\x870\x872\x5\x126\x94\x2\x871\x870\x3"+ + "\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x877\x3\x2\x2\x2\x873\x875\x5\xE8"+ + "u\x2\x874\x876\x5\x126\x94\x2\x875\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2"+ + "\x2\x876\x878\x3\x2\x2\x2\x877\x873\x3\x2\x2\x2\x877\x878\x3\x2\x2\x2"+ + "\x878\x879\x3\x2\x2\x2\x879\x87E\a\xED\x2\x2\x87A\x87C\x5\x126\x94\x2"+ + "\x87B\x87A\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87D\x3\x2\x2\x2\x87D"+ + "\x87F\x5\xECw\x2\x87E\x87B\x3\x2\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x889"+ + "\x3\x2\x2\x2\x880\x882\x5\x126\x94\x2\x881\x880\x3\x2\x2\x2\x881\x882"+ + "\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x884\a\xE6\x2\x2\x884\x885\x5"+ + "\xF4{\x2\x885\x886\a\xED\x2\x2\x886\x888\x3\x2\x2\x2\x887\x881\x3\x2\x2"+ + "\x2\x888\x88B\x3\x2\x2\x2\x889\x887\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2"+ + "\x88A\xE1\x3\x2\x2\x2\x88B\x889\x3\x2\x2\x2\x88C\x88F\x5\xDEp\x2\x88D"+ + "\x88F\x5\xE0q\x2\x88E\x88C\x3\x2\x2\x2\x88E\x88D\x3\x2\x2\x2\x88E\x88F"+ + "\x3\x2\x2\x2\x88F\x894\x3\x2\x2\x2\x890\x892\x5\xE4s\x2\x891\x893\x5\x126"+ + "\x94\x2\x892\x891\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x895\x3\x2\x2"+ + "\x2\x894\x890\x3\x2\x2\x2\x895\x896\x3\x2\x2\x2\x896\x894\x3\x2\x2\x2"+ + "\x896\x897\x3\x2\x2\x2\x897\x89C\x3\x2\x2\x2\x898\x89A\x5\x126\x94\x2"+ + "\x899\x898\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89B\x3\x2\x2\x2\x89B"+ + "\x89D\x5\xECw\x2\x89C\x899\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x8A7"+ + "\x3\x2\x2\x2\x89E\x8A0\x5\x126\x94\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0"+ + "\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A2\a\xE6\x2\x2\x8A2\x8A3\x5"+ + "\xF4{\x2\x8A3\x8A4\a\xED\x2\x2\x8A4\x8A6\x3\x2\x2\x2\x8A5\x89F\x3\x2\x2"+ + "\x2\x8A6\x8A9\x3\x2\x2\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2"+ + "\x8A8\xE3\x3\x2\x2\x2\x8A9\x8A7\x3\x2\x2\x2\x8AA\x8AC\t\xF\x2\x2\x8AB"+ + "\x8AD\x5\x126\x94\x2\x8AC\x8AB\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD"+ + "\x8B0\x3\x2\x2\x2\x8AE\x8B1\x5\xDEp\x2\x8AF\x8B1\x5\xE0q\x2\x8B0\x8AE"+ + "\x3\x2\x2\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\xE5\x3\x2\x2\x2\x8B2\x8B4\x5\x126"+ + "\x94\x2\x8B3\x8B2\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B5\x3\x2\x2"+ + "\x2\x8B5\x8B6\x5\xECw\x2\x8B6\xE7\x3\x2\x2\x2\x8B7\x8B9\x5\xEAv\x2\x8B8"+ + "\x8B7\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2\x8B9\x8BB\x3\x2\x2\x2\x8BA\x8BC"+ + "\x5\x126\x94\x2\x8BB\x8BA\x3\x2\x2\x2\x8BB\x8BC\x3\x2\x2\x2\x8BC\x8BD"+ + "\x3\x2\x2\x2\x8BD\x8BF\t\n\x2\x2\x8BE\x8C0\x5\x126\x94\x2\x8BF\x8BE\x3"+ + "\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C2\x3\x2\x2\x2\x8C1\x8B8\x3\x2"+ + "\x2\x2\x8C2\x8C5\x3\x2\x2\x2\x8C3\x8C1\x3\x2\x2\x2\x8C3\x8C4\x3\x2\x2"+ + "\x2\x8C4\x8C6\x3\x2\x2\x2\x8C5\x8C3\x3\x2\x2\x2\x8C6\x8D3\x5\xEAv\x2\x8C7"+ + "\x8C9\x5\x126\x94\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9"+ + "\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n\x2\x2\x8CB\x8CD\x5\x126\x94\x2\x8CC\x8CB"+ + "\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8D0\x5"+ + "\xEAv\x2\x8CF\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D2\x3\x2\x2"+ + "\x2\x8D1\x8C8\x3\x2\x2\x2\x8D2\x8D5\x3\x2\x2\x2\x8D3\x8D1\x3\x2\x2\x2"+ + "\x8D3\x8D4\x3\x2\x2\x2\x8D4\xE9\x3\x2\x2\x2\x8D5\x8D3\x3\x2\x2\x2\x8D6"+ + "\x8D8\a\xE6\x2\x2\x8D7\x8D6\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8DB"+ + "\x3\x2\x2\x2\x8D9\x8DA\t\x10\x2\x2\x8DA\x8DC\x5\x126\x94\x2\x8DB\x8D9"+ + "\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DE\x3\x2\x2\x2\x8DD\x8DF\a\xED"+ + "\x2\x2\x8DE\x8DD\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2"+ + "\x2\x8E0\x8E1\x5\xBC_\x2\x8E1\xEB\x3\x2\x2\x2\x8E2\x8E4\a,\x2\x2\x8E3"+ + "\x8E5\x5\x126\x94\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5"+ + "\x8E6\x3\x2\x2\x2\x8E6\x8E8\x5\xF8}\x2\x8E7\x8E9\x5\x10E\x88\x2\x8E8\x8E7"+ + "\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\xED\x3\x2\x2\x2\x8EA\x8FC\a\xE6"+ + "\x2\x2\x8EB\x8ED\x5\x126\x94\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2"+ + "\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F9\x5\xF0y\x2\x8EF\x8F1\x5\x126\x94"+ + "\x2\x8F0\x8EF\x3\x2\x2\x2\x8F0\x8F1\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2"+ + "\x8F2\x8F4\a)\x2\x2\x8F3\x8F5\x5\x126\x94\x2\x8F4\x8F3\x3\x2\x2\x2\x8F4"+ + "\x8F5\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6\x8F8\x5\xF0y\x2\x8F7\x8F0"+ + "\x3\x2\x2\x2\x8F8\x8FB\x3\x2\x2\x2\x8F9\x8F7\x3\x2\x2\x2\x8F9\x8FA\x3"+ + "\x2\x2\x2\x8FA\x8FD\x3\x2\x2\x2\x8FB\x8F9\x3\x2\x2\x2\x8FC\x8EC\x3\x2"+ + "\x2\x2\x8FC\x8FD\x3\x2\x2\x2\x8FD\x8FF\x3\x2\x2\x2\x8FE\x900\x5\x126\x94"+ + "\x2\x8FF\x8FE\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2"+ + "\x901\x902\a\xED\x2\x2\x902\xEF\x3\x2\x2\x2\x903\x904\a\x9F\x2\x2\x904"+ + "\x906\x5\x126\x94\x2\x905\x903\x3\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906"+ + "\x909\x3\x2\x2\x2\x907\x908\t\x11\x2\x2\x908\x90A\x5\x126\x94\x2\x909"+ + "\x907\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2\x90A\x90D\x3\x2\x2\x2\x90B\x90C"+ + "\a\xA6\x2\x2\x90C\x90E\x5\x126\x94\x2\x90D\x90B\x3\x2\x2\x2\x90D\x90E"+ + "\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F\x911\x5\xF8}\x2\x910\x912\x5\x10E"+ + "\x88\x2\x911\x910\x3\x2\x2\x2\x911\x912\x3\x2\x2\x2\x912\x91B\x3\x2\x2"+ + "\x2\x913\x915\x5\x126\x94\x2\x914\x913\x3\x2\x2\x2\x914\x915\x3\x2\x2"+ + "\x2\x915\x916\x3\x2\x2\x2\x916\x918\a\xE6\x2\x2\x917\x919\x5\x126\x94"+ + "\x2\x918\x917\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2\x919\x91A\x3\x2\x2\x2"+ + "\x91A\x91C\a\xED\x2\x2\x91B\x914\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2\x91C"+ + "\x921\x3\x2\x2\x2\x91D\x91F\x5\x126\x94\x2\x91E\x91D\x3\x2\x2\x2\x91E"+ + "\x91F\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x922\x5\xFA~\x2\x921\x91E"+ + "\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x927\x3\x2\x2\x2\x923\x925\x5"+ + "\x126\x94\x2\x924\x923\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2\x925\x926\x3"+ + "\x2\x2\x2\x926\x928\x5\xF2z\x2\x927\x924\x3\x2\x2\x2\x927\x928\x3\x2\x2"+ + "\x2\x928\xF1\x3\x2\x2\x2\x929\x92B\a\xE2\x2\x2\x92A\x92C\x5\x126\x94\x2"+ + "\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D"+ + "\x92E\x5\xBC_\x2\x92E\xF3\x3\x2\x2\x2\x92F\x93A\x5\xF6|\x2\x930\x932\x5"+ + "\x126\x94\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933\x3"+ + "\x2\x2\x2\x933\x935\a)\x2\x2\x934\x936\x5\x126\x94\x2\x935\x934\x3\x2"+ + "\x2\x2\x935\x936\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x939\x5\xF6|\x2"+ + "\x938\x931\x3\x2\x2\x2\x939\x93C\x3\x2\x2\x2\x93A\x938\x3\x2\x2\x2\x93A"+ + "\x93B\x3\x2\x2\x2\x93B\xF5\x3\x2\x2\x2\x93C\x93A\x3\x2\x2\x2\x93D\x93E"+ + "\x5\xBC_\x2\x93E\x93F\x5\x126\x94\x2\x93F\x940\a\xCF\x2\x2\x940\x941\x5"+ + "\x126\x94\x2\x941\x943\x3\x2\x2\x2\x942\x93D\x3\x2\x2\x2\x942\x943\x3"+ + "\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x945\x5\xBC_\x2\x945\xF7\x3\x2\x2"+ + "\x2\x946\x949\a\x101\x2\x2\x947\x949\x5\x112\x8A\x2\x948\x946\x3\x2\x2"+ + "\x2\x948\x947\x3\x2\x2\x2\x949\xF9\x3\x2\x2\x2\x94A\x94C\a:\x2\x2\x94B"+ + "\x94D\x5\x126\x94\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D"+ + "\x950\x3\x2\x2\x2\x94E\x94F\a\x97\x2\x2\x94F\x951\x5\x126\x94\x2\x950"+ + "\x94E\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2\x2\x952\x957"+ + "\x5\x10C\x87\x2\x953\x955\x5\x126\x94\x2\x954\x953\x3\x2\x2\x2\x954\x955"+ + "\x3\x2\x2\x2\x955\x956\x3\x2\x2\x2\x956\x958\x5\x102\x82\x2\x957\x954"+ + "\x3\x2\x2\x2\x957\x958\x3\x2\x2\x2\x958\xFB\x3\x2\x2\x2\x959\x95A\t\x12"+ + "\x2\x2\x95A\xFD\x3\x2\x2\x2\x95B\x95C\t\xE\x2\x2\x95C\xFF\x3\x2\x2\x2"+ + "\x95D\x962\x5\xF8}\x2\x95E\x95F\t\xF\x2\x2\x95F\x961\x5\xF8}\x2\x960\x95E"+ + "\x3\x2\x2\x2\x961\x964\x3\x2\x2\x2\x962\x960\x3\x2\x2\x2\x962\x963\x3"+ + "\x2\x2\x2\x963\x101\x3\x2\x2\x2\x964\x962\x3\x2\x2\x2\x965\x967\a\xE9"+ + "\x2\x2\x966\x968\x5\x126\x94\x2\x967\x966\x3\x2\x2\x2\x967\x968\x3\x2"+ + "\x2\x2\x968\x96B\x3\x2\x2\x2\x969\x96C\x5\x10A\x86\x2\x96A\x96C\x5\xF8"+ + "}\x2\x96B\x969\x3\x2\x2\x2\x96B\x96A\x3\x2\x2\x2\x96C\x103\x3\x2\x2\x2"+ + "\x96D\x976\x5\xF8}\x2\x96E\x970\x5\x126\x94\x2\x96F\x96E\x3\x2\x2\x2\x96F"+ + "\x970\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x973\a\xE8\x2\x2\x972\x974"+ + "\x5\x126\x94\x2\x973\x972\x3\x2\x2\x2\x973\x974\x3\x2\x2\x2\x974\x975"+ + "\x3\x2\x2\x2\x975\x977\x5\xF8}\x2\x976\x96F\x3\x2\x2\x2\x976\x977\x3\x2"+ + "\x2\x2\x977\x105\x3\x2\x2\x2\x978\x97B\x5\xF8}\x2\x979\x97B\x5\x10A\x86"+ + "\x2\x97A\x978\x3\x2\x2\x2\x97A\x979\x3\x2\x2\x2\x97B\x97C\x3\x2\x2\x2"+ + "\x97C\x97D\a*\x2\x2\x97D\x107\x3\x2\x2\x2\x97E\x987\x5\x10A\x86\x2\x97F"+ + "\x987\a\xFA\x2\x2\x980\x987\a\xF5\x2\x2\x981\x987\a\xD0\x2\x2\x982\x987"+ + "\at\x2\x2\x983\x987\a\x99\x2\x2\x984\x987\a\x9A\x2\x2\x985\x987\a`\x2"+ + "\x2\x986\x97E\x3\x2\x2\x2\x986\x97F\x3\x2\x2\x2\x986\x980\x3\x2\x2\x2"+ + "\x986\x981\x3\x2\x2\x2\x986\x982\x3\x2\x2\x2\x986\x983\x3\x2\x2\x2\x986"+ + "\x984\x3\x2\x2\x2\x986\x985\x3\x2\x2\x2\x987\x109\x3\x2\x2\x2\x988\x989"+ + "\t\x13\x2\x2\x989\x10B\x3\x2\x2\x2\x98A\x98D\x5\xFC\x7F\x2\x98B\x98D\x5"+ + "\x100\x81\x2\x98C\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2\x2\x2\x98D\x996\x3"+ + "\x2\x2\x2\x98E\x990\x5\x126\x94\x2\x98F\x98E\x3\x2\x2\x2\x98F\x990\x3"+ + "\x2\x2\x2\x990\x991\x3\x2\x2\x2\x991\x993\a\xE6\x2\x2\x992\x994\x5\x126"+ + "\x94\x2\x993\x992\x3\x2\x2\x2\x993\x994\x3\x2\x2\x2\x994\x995\x3\x2\x2"+ + "\x2\x995\x997\a\xED\x2\x2\x996\x98F\x3\x2\x2\x2\x996\x997\x3\x2\x2\x2"+ + "\x997\x10D\x3\x2\x2\x2\x998\x999\t\x14\x2\x2\x999\x10F\x3\x2\x2\x2\x99A"+ + "\x99B\t\x15\x2\x2\x99B\x111\x3\x2\x2\x2\x99C\x99D\t\x16\x2\x2\x99D\x113"+ + "\x3\x2\x2\x2\x99E\x9A0\x5\x126\x94\x2\x99F\x99E\x3\x2\x2\x2\x99F\x9A0"+ + "\x3\x2\x2\x2\x9A0\x9A8\x3\x2\x2\x2\x9A1\x9A3\a\xFB\x2\x2\x9A2\x9A1\x3"+ + "\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x9A2\x3\x2\x2\x2\x9A4\x9A5\x3\x2"+ + "\x2\x2\x9A5\x9A9\x3\x2\x2\x2\x9A6\x9A9\x5\x11A\x8E\x2\x9A7\x9A9\x5\x118"+ + "\x8D\x2\x9A8\x9A2\x3\x2\x2\x2\x9A8\x9A6\x3\x2\x2\x2\x9A8\x9A7\x3\x2\x2"+ + "\x2\x9A9\x9AB\x3\x2\x2\x2\x9AA\x9AC\x5\x126\x94\x2\x9AB\x9AA\x3\x2\x2"+ + "\x2\x9AB\x9AC\x3\x2\x2\x2\x9AC\x9B2\x3\x2\x2\x2\x9AD\x9AF\x5\x126\x94"+ + "\x2\x9AE\x9AD\x3\x2\x2\x2\x9AE\x9AF\x3\x2\x2\x2\x9AF\x9B0\x3\x2\x2\x2"+ + "\x9B0\x9B2\x5\x11C\x8F\x2\x9B1\x99F\x3\x2\x2\x2\x9B1\x9AE\x3\x2\x2\x2"+ + "\x9B2\x115\x3\x2\x2\x2\x9B3\x9BC\x5\x114\x8B\x2\x9B4\x9B6\x5\x126\x94"+ + "\x2\x9B5\x9B4\x3\x2\x2\x2\x9B5\x9B6\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2"+ + "\x9B7\x9B9\a*\x2\x2\x9B8\x9BA\x5\x126\x94\x2\x9B9\x9B8\x3\x2\x2\x2\x9B9"+ + "\x9BA\x3\x2\x2\x2\x9BA\x9BC\x3\x2\x2\x2\x9BB\x9B3\x3\x2\x2\x2\x9BB\x9B5"+ + "\x3\x2\x2\x2\x9BC\x9BF\x3\x2\x2\x2\x9BD\x9BB\x3\x2\x2\x2\x9BD\x9BE\x3"+ + "\x2\x2\x2\x9BE\x117\x3\x2\x2\x2\x9BF\x9BD\x3\x2\x2\x2\x9C0\x9C1\a\xFC"+ + "\x2\x2\x9C1\x119\x3\x2\x2\x2\x9C2\x9C3\t\x17\x2\x2\x9C3\x11B\x3\x2\x2"+ + "\x2\x9C4\x9C6\a\xFE\x2\x2\x9C5\x9C7\x5\x11E\x90\x2\x9C6\x9C5\x3\x2\x2"+ + "\x2\x9C7\x9C8\x3\x2\x2\x2\x9C8\x9C6\x3\x2\x2\x2\x9C8\x9C9\x3\x2\x2\x2"+ + "\x9C9\x11D\x3\x2\x2\x2\x9CA\x9CB\a/\x2\x2\x9CB\x9CD\x5\x120\x91\x2\x9CC"+ + "\x9CE\x5\x122\x92\x2\x9CD\x9CC\x3\x2\x2\x2\x9CD\x9CE\x3\x2\x2\x2\x9CE"+ + "\x11F\x3\x2\x2\x2\x9CF\x9D0\a\x101\x2\x2\x9D0\x121\x3\x2\x2\x2\x9D1\x9D2"+ + "\x5\x126\x94\x2\x9D2\x9D4\x5\x124\x93\x2\x9D3\x9D5\x5\x126\x94\x2\x9D4"+ + "\x9D3\x3\x2\x2\x2\x9D4\x9D5\x3\x2\x2\x2\x9D5\xA0F\x3\x2\x2\x2\x9D6\x9D7"+ + "\x5\x126\x94\x2\x9D7\x9E0\x5\x124\x93\x2\x9D8\x9DA\x5\x126\x94\x2\x9D9"+ + "\x9D8\x3\x2\x2\x2\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9DB\x3\x2\x2\x2\x9DB\x9DD"+ + "\a)\x2\x2\x9DC\x9DE\x5\x126\x94\x2\x9DD\x9DC\x3\x2\x2\x2\x9DD\x9DE\x3"+ + "\x2\x2\x2\x9DE\x9DF\x3\x2\x2\x2\x9DF\x9E1\x5\x124\x93\x2\x9E0\x9D9\x3"+ + "\x2\x2\x2\x9E1\x9E2\x3\x2\x2\x2\x9E2\x9E0\x3\x2\x2\x2\x9E2\x9E3\x3\x2"+ + "\x2\x2\x9E3\x9E5\x3\x2\x2\x2\x9E4\x9E6\x5\x126\x94\x2\x9E5\x9E4\x3\x2"+ + "\x2\x2\x9E5\x9E6\x3\x2\x2\x2\x9E6\xA0F\x3\x2\x2\x2\x9E7\x9E9\x5\x126\x94"+ + "\x2\x9E8\x9E7\x3\x2\x2\x2\x9E8\x9E9\x3\x2\x2\x2\x9E9\x9EA\x3\x2\x2\x2"+ + "\x9EA\x9EC\a\xE6\x2\x2\x9EB\x9ED\x5\x126\x94\x2\x9EC\x9EB\x3\x2\x2\x2"+ + "\x9EC\x9ED\x3\x2\x2\x2\x9ED\x9EE\x3\x2\x2\x2\x9EE\x9F0\x5\x124\x93\x2"+ + "\x9EF\x9F1\x5\x126\x94\x2\x9F0\x9EF\x3\x2\x2\x2\x9F0\x9F1\x3\x2\x2\x2"+ + "\x9F1\x9F2\x3\x2\x2\x2\x9F2\x9F4\a\xED\x2\x2\x9F3\x9F5\x5\x126\x94\x2"+ + "\x9F4\x9F3\x3\x2\x2\x2\x9F4\x9F5\x3\x2\x2\x2\x9F5\xA0F\x3\x2\x2\x2\x9F6"+ + "\x9F8\x5\x126\x94\x2\x9F7\x9F6\x3\x2\x2\x2\x9F7\x9F8\x3\x2\x2\x2\x9F8"+ + "\x9F9\x3\x2\x2\x2\x9F9\x9FA\a\xE6\x2\x2\x9FA\xA03\x5\x124\x93\x2\x9FB"+ + "\x9FD\x5\x126\x94\x2\x9FC\x9FB\x3\x2\x2\x2\x9FC\x9FD\x3\x2\x2\x2\x9FD"+ + "\x9FE\x3\x2\x2\x2\x9FE\xA00\a)\x2\x2\x9FF\xA01\x5\x126\x94\x2\xA00\x9FF"+ + "\x3\x2\x2\x2\xA00\xA01\x3\x2\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA04\x5"+ + "\x124\x93\x2\xA03\x9FC\x3\x2\x2\x2\xA04\xA05\x3\x2\x2\x2\xA05\xA03\x3"+ + "\x2\x2\x2\xA05\xA06\x3\x2\x2\x2\xA06\xA08\x3\x2\x2\x2\xA07\xA09\x5\x126"+ + "\x94\x2\xA08\xA07\x3\x2\x2\x2\xA08\xA09\x3\x2\x2\x2\xA09\xA0A\x3\x2\x2"+ + "\x2\xA0A\xA0C\a\xED\x2\x2\xA0B\xA0D\x5\x126\x94\x2\xA0C\xA0B\x3\x2\x2"+ + "\x2\xA0C\xA0D\x3\x2\x2\x2\xA0D\xA0F\x3\x2\x2\x2\xA0E\x9D1\x3\x2\x2\x2"+ + "\xA0E\x9D6\x3\x2\x2\x2\xA0E\x9E8\x3\x2\x2\x2\xA0E\x9F7\x3\x2\x2\x2\xA0F"+ + "\x123\x3\x2\x2\x2\xA10\xA13\a\x101\x2\x2\xA11\xA13\x5\x108\x85\x2\xA12"+ + "\xA10\x3\x2\x2\x2\xA12\xA11\x3\x2\x2\x2\xA13\x125\x3\x2\x2\x2\xA14\xA16"+ + "\t\x18\x2\x2\xA15\xA14\x3\x2\x2\x2\xA16\xA17\x3\x2\x2\x2\xA17\xA15\x3"+ + "\x2\x2\x2\xA17\xA18\x3\x2\x2\x2\xA18\x127\x3\x2\x2\x2\x1B6\x12C\x132\x135"+ + "\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168\x16F\x175\x17E\x186"+ + "\x195\x19F\x1A7\x1B1\x1B7\x1BB\x1BF\x1C3\x1C8\x1D1\x218\x21E\x222\x225"+ + "\x235\x239\x23E\x241\x246\x24C\x250\x255\x25A\x25F\x262\x266\x26C\x270"+ + "\x277\x27D\x281\x284\x289\x294\x297\x29A\x29F\x2A5\x2A9\x2AE\x2B5\x2BB"+ + "\x2BF\x2C7\x2CB\x2CF\x2D3\x2D7\x2DC\x2E7\x2EE\x2F6\x2FD\x306\x30D\x311"+ + "\x314\x31C\x320\x325\x32F\x335\x33F\x343\x352\x358\x35E\x362\x36E\x372"+ + "\x378\x37D\x381\x385\x389\x38C\x38F\x392\x395\x399\x3A1\x3A5\x3A8\x3AB"+ + "\x3AF\x3C7\x3CD\x3D1\x3D5\x3DE\x3E9\x3EE\x3F8\x3FC\x401\x409\x40D\x411"+ + "\x419\x41D\x429\x42D\x435\x437\x43D\x441\x447\x44B\x44F\x469\x473\x477"+ + "\x47C\x487\x48B\x490\x49F\x4A4\x4AD\x4B1\x4B5\x4B9\x4BD\x4C0\x4C4\x4C8"+ + "\x4CB\x4CF\x4D2\x4D6\x4D8\x4DD\x4E1\x4E5\x4E9\x4EB\x4F1\x4F5\x4F8\x4FD"+ + "\x501\x507\x50A\x50D\x512\x516\x51D\x521\x527\x52A\x52E\x535\x539\x53F"+ + "\x542\x546\x54E\x552\x555\x558\x55C\x564\x568\x56C\x56E\x571\x577\x57D"+ + "\x581\x585\x58A\x58F\x593\x597\x59D\x5A5\x5A7\x5B3\x5B7\x5BF\x5C3\x5CB"+ + "\x5CF\x5D3\x5D7\x5DB\x5DF\x5E7\x5EB\x5F8\x5FF\x603\x60E\x615\x61A\x61E"+ + "\x623\x626\x62C\x630\x633\x639\x63D\x645\x649\x652\x656\x65A\x65E\x661"+ + "\x665\x66B\x66F\x676\x67F\x686\x68A\x68D\x690\x693\x698\x6A4\x6A8\x6B0"+ + "\x6B2\x6B7\x6BC\x6C1\x6C5\x6CB\x6D0\x6D7\x6DB\x6E1\x6E5\x6E9\x6EE\x6F2"+ + "\x6F7\x6FB\x700\x704\x709\x70D\x712\x716\x71B\x71F\x724\x728\x72D\x731"+ + "\x736\x73A\x73F\x743\x748\x74C\x74F\x751\x75C\x761\x766\x76C\x770\x775"+ + "\x77A\x77E\x782\x784\x788\x78A\x78D\x792\x799\x7A1\x7A5\x7AE\x7B8\x7BC"+ + "\x7BF\x7C2\x7CB\x7D0\x7D3\x7D7\x7DB\x7DF\x7E2\x7EA\x7EF\x7F2\x7F6\x7FA"+ + "\x7FE\x801\x809\x80C\x810\x813\x816\x81A\x81E\x823\x826\x829\x82C\x834"+ + "\x83B\x83E\x846\x84D\x851\x854\x857\x85A\x862\x867\x86A\x86D\x871\x875"+ + "\x877\x87B\x87E\x881\x889\x88E\x892\x896\x899\x89C\x89F\x8A7\x8AC\x8B0"+ + "\x8B3\x8B8\x8BB\x8BF\x8C3\x8C8\x8CC\x8CF\x8D3\x8D7\x8DB\x8DE\x8E4\x8E8"+ + "\x8EC\x8F0\x8F4\x8F9\x8FC\x8FF\x905\x909\x90D\x911\x914\x918\x91B\x91E"+ + "\x921\x924\x927\x92B\x931\x935\x93A\x942\x948\x94C\x950\x954\x957\x962"+ + "\x967\x96B\x96F\x973\x976\x97A\x986\x98C\x98F\x993\x996\x99F\x9A4\x9A8"+ + "\x9AB\x9AE\x9B1\x9B5\x9B9\x9BB\x9BD\x9C8\x9CD\x9D4\x9D9\x9DD\x9E2\x9E5"+ + "\x9E8\x9EC\x9F0\x9F4\x9F7\x9FC\xA00\xA05\xA08\xA0C\xA0E\xA12\xA17"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index 9fee339b6d..6facd042d3 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -219,15 +219,15 @@ exitStmt : EXIT_DO | EXIT_FOR | EXIT_FUNCTION | EXIT_PROPERTY | EXIT_SUB; filecopyStmt : FILECOPY whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt; forEachStmt : - FOR whiteSpace EACH whiteSpace identifier typeHint? whiteSpace IN whiteSpace valueStmt endOfStatement + FOR whiteSpace EACH whiteSpace valueStmt whiteSpace IN whiteSpace valueStmt endOfStatement block? - NEXT (whiteSpace identifier)? + NEXT (whiteSpace valueStmt)? ; forNextStmt : - FOR whiteSpace identifier typeHint? (whiteSpace asTypeClause)? whiteSpace? EQ whiteSpace? valueStmt whiteSpace TO whiteSpace valueStmt (whiteSpace STEP whiteSpace valueStmt)? endOfStatement + FOR whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt whiteSpace TO whiteSpace valueStmt (whiteSpace STEP whiteSpace valueStmt)? endOfStatement block? - NEXT (whiteSpace identifier typeHint?)? + NEXT (whiteSpace valueStmt)? ; functionStmt : diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index 2534efc054..58f823306d 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -103,7 +103,22 @@ public override void ExitWithStmt(VBAParser.WithStmtContext context) _resolver.ExitWithBlock(); } - public override void EnterExplicitCallStmt([NotNull] VBAParser.ExplicitCallStmtContext context) + public override void EnterBlockIfThenElse(VBAParser.BlockIfThenElseContext context) + { + _resolver.Resolve(context); + } + + public override void EnterInlineIfThenElse(VBAParser.InlineIfThenElseContext context) + { + _resolver.Resolve(context); + } + + public override void EnterSelectCaseStmt(VBAParser.SelectCaseStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterExplicitCallStmt(VBAParser.ExplicitCallStmtContext context) { _resolver.Resolve(context); } @@ -118,12 +133,17 @@ public override void EnterICS_B_MemberProcedureCall(VBAParser.ICS_B_MemberProced _resolver.Resolve(context); } + public override void EnterWhileWendStmt(VBAParser.WhileWendStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterICS_S_VariableOrProcedureCall(VBAParser.ICS_S_VariableOrProcedureCallContext context) { - if (context.Parent.GetType() != typeof(VBAParser.ICS_S_MemberCallContext)) - { - _resolver.Resolve(context); - } + //if (context.Parent.GetType() != typeof(VBAParser.ICS_S_MemberCallContext)) + //{ + // _resolver.Resolve(context); + //} } public override void EnterICS_S_ProcedureOrArrayCall(VBAParser.ICS_S_ProcedureOrArrayCallContext context) @@ -178,6 +198,11 @@ public override void EnterForEachStmt(VBAParser.ForEachStmtContext context) _resolver.Resolve(context); } + public override void EnterDoLoopStmt([NotNull] VBAParser.DoLoopStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterImplementsStmt(VBAParser.ImplementsStmtContext context) { _resolver.Resolve(context); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 2b1026e027..ecf8997b36 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -362,9 +362,6 @@ private Declaration ResolveInScopeType(string identifier, Declaration scope) { return sameScopeUdt.Single(); } - - // todo: try to resolve identifier using referenced projects - return null; } @@ -885,6 +882,118 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) _alreadyResolved.Add(context); } + public void Resolve(VBAParser.WhileWendStmtContext context) + { + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); + if (boundExpression != null) + { + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); + } + // TODO: Resolve block + } + + public void Resolve(VBAParser.DoLoopStmtContext context) + { + if (context.valueStmt() == null) + { + return; + } + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); + if (boundExpression != null) + { + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); + } + // TODO: Resolve block + } + + public void Resolve(VBAParser.BlockIfThenElseContext context) + { + // TODO: Nested if statements don't work because the parse tree is built differently. + var ifExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.ifBlockStmt().ifConditionStmt().GetText(), GetInnerMostWithExpression()); + if (ifExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(ifExpr, declaration => CreateReference(context.ifBlockStmt().ifConditionStmt(), declaration)); + } + if (context.ifElseIfBlockStmt() != null) + { + foreach (var elseIfBlock in context.ifElseIfBlockStmt()) + { + var elseIfExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, elseIfBlock.ifConditionStmt().GetText(), GetInnerMostWithExpression()); + if (elseIfExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(elseIfExpr, declaration => CreateReference(elseIfBlock.ifConditionStmt(), declaration)); + } + } + } + // TODO: Resolve blocks. + } + + public void Resolve(VBAParser.InlineIfThenElseContext context) + { + var ifExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.ifConditionStmt().GetText(), GetInnerMostWithExpression()); + if (ifExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(ifExpr, declaration => CreateReference(context.ifConditionStmt(), declaration)); + } + // TODO: Resolve blocks. + } + + public void Resolve(VBAParser.SelectCaseStmtContext context) + { + // TODO: Grammar does not build correct select case parse tree, thus not resolvable right now. + var selectExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); + if (selectExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(selectExpr, declaration => CreateReference(context.valueStmt(), declaration)); + } + if (context.sC_Case() != null) + { + foreach (var caseClauseBlock in context.sC_Case()) + { + var caseClause = caseClauseBlock.sC_Cond(); + if (caseClause is VBAParser.CaseCondSelectionContext) + { + foreach (var selectClause in ((VBAParser.CaseCondSelectionContext)caseClause).sC_Selection()) + { + if (selectClause is VBAParser.CaseCondIsContext) + { + var ctx = (VBAParser.CaseCondIsContext)selectClause; + var clauseExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt().GetText(), GetInnerMostWithExpression()); + if (clauseExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(clauseExpr, declaration => CreateReference(ctx.valueStmt(), declaration)); + } + } + else if (selectClause is VBAParser.CaseCondToContext) + { + var ctx = (VBAParser.CaseCondToContext)selectClause; + var fromExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt()[0].GetText(), GetInnerMostWithExpression()); + if (fromExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(fromExpr, declaration => CreateReference(ctx.valueStmt()[0], declaration)); + } + var toExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt()[1].GetText(), GetInnerMostWithExpression()); + if (toExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(toExpr, declaration => CreateReference(ctx.valueStmt()[1], declaration)); + } + } + else + { + var ctx = (VBAParser.CaseCondValueContext)selectClause; + var clauseExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); + if (clauseExpr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(clauseExpr, declaration => CreateReference(context.valueStmt(), declaration)); + } + } + } + } + } + } + // TODO: Resolve blocks. + } + private string GetParentComTypeName(Declaration declaration) { if (declaration.QualifiedName.QualifiedModuleName.Component == null) @@ -992,52 +1101,48 @@ public void Resolve(VBAParser.AsTypeClauseContext context) public void Resolve(VBAParser.ForNextStmtContext context) { - var identifiers = context.identifier(); - var identifier = ResolveInternal(identifiers[0], _currentScope, ContextAccessorType.AssignValue, null, false, true); - if (identifier == null) + var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression()); + if (firstExpression != null) { - return; + // each iteration counts as an assignment + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration, true)); + // each iteration also counts as a plain usage + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration)); } - // each iteration counts as an assignment - var assignmentReference = CreateReference(identifiers[0], identifier, true); - identifier.AddReference(assignmentReference); - - // each iteration also counts as a plain usage - var usageReference = CreateReference(identifiers[0], identifier); - identifier.AddReference(usageReference); - - if (identifiers.Count > 1) + for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { - var endForBlockReference = CreateReference(identifiers[1], identifier); - identifier.AddReference(endForBlockReference); + var expr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[exprIndex].GetText(), GetInnerMostWithExpression()); + if (expr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); + } } + + // TODO: resolve block } public void Resolve(VBAParser.ForEachStmtContext context) { - var identifiers = context.identifier(); - var identifier = ResolveInternal(identifiers[0], _currentScope, ContextAccessorType.AssignValue, null, false, true); - if (identifier == null) + var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression()); + if (firstExpression != null) { - return; + // each iteration counts as an assignment + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration, true)); + // each iteration also counts as a plain usage + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration)); } - // each iteration counts as an assignment - var assignmentReference = CreateReference(identifiers[0], identifier, true); - identifier.AddReference(assignmentReference); - - // each iteration also counts as a plain usage - CreateReference will return null here, need to create it manually. - var name = identifiers[0].GetText(); - var selection = identifiers[0].GetSelection(); - var annotations = FindAnnotations(selection.StartLine); - var usageReference = new IdentifierReference(_qualifiedModuleName, _currentScope, _currentParent, name, selection, identifiers[0], identifier, false, false, annotations); - identifier.AddReference(usageReference); - - if (identifiers.Count > 1) + for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { - identifier.AddReference(CreateReference(identifiers[1], identifier)); + var expr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[exprIndex].GetText(), GetInnerMostWithExpression()); + if (expr != null) + { + _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); + } } + + // TODO: resolve block } public void Resolve(VBAParser.ImplementsStmtContext context) From ffc8e35f98afa8d5770c530f0afc10987a94b621 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 18:25:12 +0200 Subject: [PATCH 10/72] fix if-stmt/select-stmt parse trees by restricting identifier in certain contexts --- .../ImplicitByRefParameterInspection.cs | 2 +- ...ocedureShouldBeFunctionInspectionResult.cs | 2 +- .../Refactorings/Rename/RenameRefactoring.cs | 2 +- Rubberduck.Parsing/Grammar/VBAParser.cs | 7458 +++++++++-------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 244 +- .../Grammar/VBAParserBaseListener.cs | 52 + .../Grammar/VBAParserBaseVisitor.cs | 44 + .../Grammar/VBAParserListener.cs | 44 + .../Grammar/VBAParserVisitor.cs | 28 + .../Symbols/DeclarationSymbolsListener.cs | 2 +- .../Symbols/IdentifierReferenceResolver.cs | 124 +- Rubberduck.Parsing/VBA/AttributeParser.cs | 2 +- 12 files changed, 4508 insertions(+), 3496 deletions(-) diff --git a/RetailCoder.VBE/Inspections/ImplicitByRefParameterInspection.cs b/RetailCoder.VBE/Inspections/ImplicitByRefParameterInspection.cs index 32e4ee9158..5f010b4db7 100644 --- a/RetailCoder.VBE/Inspections/ImplicitByRefParameterInspection.cs +++ b/RetailCoder.VBE/Inspections/ImplicitByRefParameterInspection.cs @@ -33,7 +33,7 @@ public override IEnumerable GetInspectionResults() let arg = item.Context as VBAParser.ArgContext where arg != null && arg.BYREF() == null && arg.BYVAL() == null select new QualifiedContext(item.QualifiedName, arg)) - .Select(issue => new ImplicitByRefParameterInspectionResult(this, issue.Context.identifier().GetText(), issue)); + .Select(issue => new ImplicitByRefParameterInspectionResult(this, issue.Context.unrestrictedIdentifier().GetText(), issue)); return issues; diff --git a/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs b/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs index b873160bd0..c300aa4ad0 100644 --- a/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs +++ b/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs @@ -101,7 +101,7 @@ private void UpdateSignature() var newfunctionWithReturn = newFunctionWithoutReturn .Insert(newFunctionWithoutReturn.LastIndexOf(Environment.NewLine, StringComparison.Ordinal), Environment.NewLine + " " + _subStmtQualifiedContext.Context.identifier().GetText() + - " = " + _argQualifiedContext.Context.identifier().GetText()); + " = " + _argQualifiedContext.Context.unrestrictedIdentifier().GetText()); _lineOffset = newfunctionWithReturn.Split(new[] {Environment.NewLine}, StringSplitOptions.None).Length - subStmtText.Split(new[] {Environment.NewLine}, StringSplitOptions.None).Length; diff --git a/RetailCoder.VBE/Refactorings/Rename/RenameRefactoring.cs b/RetailCoder.VBE/Refactorings/Rename/RenameRefactoring.cs index 0f9877bf11..b854ab04dc 100644 --- a/RetailCoder.VBE/Refactorings/Rename/RenameRefactoring.cs +++ b/RetailCoder.VBE/Refactorings/Rename/RenameRefactoring.cs @@ -399,7 +399,7 @@ private string GetReplacementLine(CodeModule module, Declaration target, string { var argContext = (VBAParser.ArgContext)target.Context; var rewriter = _model.ParseResult.GetRewriter(target.QualifiedName.QualifiedModuleName.Component); - rewriter.Replace(argContext.identifier().Start.TokenIndex, _model.NewName); + rewriter.Replace(argContext.unrestrictedIdentifier().Start.TokenIndex, _model.NewName); // Target.Context is an ArgContext, its parent is an ArgsListContext; // the ArgsListContext's parent is the procedure context and it includes the body. diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 5246aa82df..c3ba390bc1 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -68,7 +68,8 @@ public const int PSET=35, ACCESS=49, LINE_INPUT=138, ON=153, OR=162, PARAMARRAY=164, LBOUND=26, R_SQUARE_BRACKET=242, IMPLEMENTS=125, UNTIL=211, DEBUG=20, DEFCUR=78, CLNGPTR=14, LONGLONG=29, DECLARE=73, DEFDATE=76, FIX=23, LEN=27, REDIM=179, - LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12, COLLECTION=259; + LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12, COLLECTION=259, + ENDIF=260, RESUME_NEXT=261; public static readonly string[] tokenNames = { "", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", @@ -104,7 +105,8 @@ public const int "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER", - "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "COLLECTION" + "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "COLLECTION", "ENDIF", + "RESUME_NEXT" }; public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, @@ -140,17 +142,20 @@ public const int RULE_explicitCallStmtExpression = 105, RULE_implicitCallStmt_InBlock = 106, RULE_iCS_B_MemberProcedureCall = 107, RULE_iCS_B_ProcedureCall = 108, RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, - RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_MembersCall = 112, RULE_iCS_S_MemberCall = 113, - RULE_iCS_S_DictionaryCall = 114, RULE_argsCall = 115, RULE_argCall = 116, - RULE_dictionaryCallStmt = 117, RULE_argList = 118, RULE_arg = 119, RULE_argDefaultValue = 120, - RULE_subscripts = 121, RULE_subscript = 122, RULE_identifier = 123, RULE_asTypeClause = 124, - RULE_baseType = 125, RULE_comparisonOperator = 126, RULE_complexType = 127, - RULE_fieldLength = 128, RULE_letterrange = 129, RULE_lineLabel = 130, - RULE_literal = 131, RULE_numberLiteral = 132, RULE_type = 133, RULE_typeHint = 134, - RULE_visibility = 135, RULE_keyword = 136, RULE_endOfLine = 137, RULE_endOfStatement = 138, - RULE_remComment = 139, RULE_comment = 140, RULE_annotationList = 141, - RULE_annotation = 142, RULE_annotationName = 143, RULE_annotationArgList = 144, - RULE_annotationArg = 145, RULE_whiteSpace = 146; + RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_VariableOrProcedureCallUnrestricted = 112, + RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 113, RULE_iCS_S_MembersCall = 114, + RULE_iCS_S_MemberCall = 115, RULE_iCS_S_DictionaryCall = 116, RULE_argsCall = 117, + RULE_argCall = 118, RULE_dictionaryCallStmt = 119, RULE_argList = 120, + RULE_arg = 121, RULE_argDefaultValue = 122, RULE_subscripts = 123, RULE_subscript = 124, + RULE_unrestrictedIdentifier = 125, RULE_identifier = 126, RULE_asTypeClause = 127, + RULE_baseType = 128, RULE_comparisonOperator = 129, RULE_complexType = 130, + RULE_fieldLength = 131, RULE_letterrange = 132, RULE_lineLabel = 133, + RULE_literal = 134, RULE_numberLiteral = 135, RULE_type = 136, RULE_typeHint = 137, + RULE_visibility = 138, RULE_keyword = 139, RULE_statementKeyword = 140, + RULE_endOfLine = 141, RULE_endOfStatement = 142, RULE_remComment = 143, + RULE_comment = 144, RULE_annotationList = 145, RULE_annotation = 146, + RULE_annotationName = 147, RULE_annotationArgList = 148, RULE_annotationArg = 149, + RULE_whiteSpace = 150; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", @@ -175,13 +180,15 @@ public const int "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", + "iCS_S_VariableOrProcedureCallUnrestricted", "iCS_S_ProcedureOrArrayCallUnrestricted", "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", - "subscripts", "subscript", "identifier", "asTypeClause", "baseType", "comparisonOperator", - "complexType", "fieldLength", "letterrange", "lineLabel", "literal", "numberLiteral", - "type", "typeHint", "visibility", "keyword", "endOfLine", "endOfStatement", - "remComment", "comment", "annotationList", "annotation", "annotationName", - "annotationArgList", "annotationArg", "whiteSpace" + "subscripts", "subscript", "unrestrictedIdentifier", "identifier", "asTypeClause", + "baseType", "comparisonOperator", "complexType", "fieldLength", "letterrange", + "lineLabel", "literal", "numberLiteral", "type", "typeHint", "visibility", + "keyword", "statementKeyword", "endOfLine", "endOfStatement", "remComment", + "comment", "annotationList", "annotation", "annotationName", "annotationArgList", + "annotationArg", "whiteSpace" }; public override string GrammarFileName { get { return "VBAParser.g4"; } } @@ -229,8 +236,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 294; module(); - State = 295; Match(Eof); + State = 302; module(); + State = 303; Match(Eof); } } catch (RecognitionException re) { @@ -300,65 +307,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 298; + State = 306; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 297; whiteSpace(); + State = 305; whiteSpace(); } break; } - State = 300; endOfStatement(); - State = 304; + State = 308; endOfStatement(); + State = 312; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 301; moduleHeader(); - State = 302; endOfStatement(); + State = 309; moduleHeader(); + State = 310; endOfStatement(); } break; } - State = 307; + State = 315; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 306; moduleConfig(); + State = 314; moduleConfig(); } break; } - State = 309; endOfStatement(); - State = 311; + State = 317; endOfStatement(); + State = 319; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 310; moduleAttributes(); + State = 318; moduleAttributes(); } break; } - State = 313; endOfStatement(); - State = 315; + State = 321; endOfStatement(); + State = 323; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 314; moduleDeclarations(); + State = 322; moduleDeclarations(); } break; } - State = 317; endOfStatement(); - State = 319; + State = 325; endOfStatement(); + State = 327; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 318; moduleBody(); + State = 326; moduleBody(); } break; } - State = 321; endOfStatement(); - State = 323; + State = 329; endOfStatement(); + State = 331; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 322; whiteSpace(); + State = 330; whiteSpace(); } } @@ -417,26 +424,26 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 325; Match(VERSION); - State = 326; whiteSpace(); - State = 327; numberLiteral(); - State = 329; + State = 333; Match(VERSION); + State = 334; whiteSpace(); + State = 335; numberLiteral(); + State = 337; switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: { - State = 328; whiteSpace(); + State = 336; whiteSpace(); } break; } - State = 332; + State = 340; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { - State = 331; Match(CLASS); + State = 339; Match(CLASS); } break; } - State = 334; endOfStatement(); + State = 342; endOfStatement(); } } catch (RecognitionException re) { @@ -463,8 +470,8 @@ public IReadOnlyList moduleConfigElement() { public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public IdentifierContext identifier() { - return GetRuleContext(0); + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); } public ModuleConfigElementContext moduleConfigElement(int i) { return GetRuleContext(i); @@ -500,28 +507,28 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 336; Match(BEGIN); - State = 344; + State = 344; Match(BEGIN); + State = 352; switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { case 1: { - State = 337; whiteSpace(); - State = 338; Match(GUIDLITERAL); - State = 339; whiteSpace(); - State = 340; identifier(); - State = 342; + State = 345; whiteSpace(); + State = 346; Match(GUIDLITERAL); + State = 347; whiteSpace(); + State = 348; unrestrictedIdentifier(); + State = 350; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: { - State = 341; whiteSpace(); + State = 349; whiteSpace(); } break; } } break; } - State = 346; endOfStatement(); - State = 348; + State = 354; endOfStatement(); + State = 356; _errHandler.Sync(this); _alt = 1; do { @@ -529,18 +536,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 347; moduleConfigElement(); + State = 355; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 350; + State = 358; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 352; Match(END); + State = 360; Match(END); } } catch (RecognitionException re) { @@ -565,13 +572,13 @@ public LiteralContext literal() { public NumberLiteralContext numberLiteral() { return GetRuleContext(0); } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public EndOfStatementContext endOfStatement() { return GetRuleContext(0); } @@ -603,45 +610,45 @@ public ModuleConfigElementContext moduleConfigElement() { try { EnterOuterAlt(_localctx, 1); { - State = 354; identifier(); - State = 358; + State = 362; unrestrictedIdentifier(); + State = 366; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 355; whiteSpace(); + State = 363; whiteSpace(); } } - State = 360; + State = 368; _errHandler.Sync(this); _la = _input.La(1); } - State = 361; Match(EQ); - State = 365; + State = 369; Match(EQ); + State = 373; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 362; whiteSpace(); + State = 370; whiteSpace(); } } - State = 367; + State = 375; _errHandler.Sync(this); _la = _input.La(1); } - State = 368; literal(); - State = 371; + State = 376; literal(); + State = 379; switch ( Interpreter.AdaptivePredict(_input,14,_ctx) ) { case 1: { - State = 369; Match(COLON); - State = 370; numberLiteral(); + State = 377; Match(COLON); + State = 378; numberLiteral(); } break; } - State = 373; endOfStatement(); + State = 381; endOfStatement(); } } catch (RecognitionException re) { @@ -696,7 +703,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 378; + State = 386; _errHandler.Sync(this); _alt = 1; do { @@ -704,15 +711,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 375; attributeStmt(); - State = 376; endOfStatement(); + State = 383; attributeStmt(); + State = 384; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 380; + State = 388; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -770,24 +777,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 382; moduleDeclarationsElement(); - State = 388; + State = 390; moduleDeclarationsElement(); + State = 396; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 383; endOfStatement(); - State = 384; moduleDeclarationsElement(); + State = 391; endOfStatement(); + State = 392; moduleDeclarationsElement(); } } } - State = 390; + State = 398; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); } - State = 391; endOfStatement(); + State = 399; endOfStatement(); } } catch (RecognitionException re) { @@ -900,24 +907,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 403; + State = 411; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 393; Match(OPTION_BASE); - State = 394; whiteSpace(); - State = 395; numberLiteral(); + State = 401; Match(OPTION_BASE); + State = 402; whiteSpace(); + State = 403; numberLiteral(); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 397; Match(OPTION_COMPARE); - State = 398; whiteSpace(); - State = 399; + State = 405; Match(OPTION_COMPARE); + State = 406; whiteSpace(); + State = 407; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -929,14 +936,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 401; Match(OPTION_EXPLICIT); + State = 409; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 402; Match(OPTION_PRIVATE_MODULE); + State = 410; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -1004,61 +1011,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 413; + State = 421; switch ( Interpreter.AdaptivePredict(_input,18,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 405; declareStmt(); + State = 413; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 406; enumerationStmt(); + State = 414; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 407; eventStmt(); + State = 415; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 408; constStmt(); + State = 416; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 409; implementsStmt(); + State = 417; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 410; variableStmt(); + State = 418; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 411; moduleOption(); + State = 419; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 412; typeStmt(); + State = 420; typeStmt(); } break; } @@ -1115,24 +1122,24 @@ public ModuleBodyContext moduleBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 415; moduleBodyElement(); - State = 421; + State = 423; moduleBodyElement(); + State = 429; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 416; endOfStatement(); - State = 417; moduleBodyElement(); + State = 424; endOfStatement(); + State = 425; moduleBodyElement(); } } } - State = 423; + State = 431; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); } - State = 424; endOfStatement(); + State = 432; endOfStatement(); } } catch (RecognitionException re) { @@ -1187,40 +1194,40 @@ public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 431; + State = 439; switch ( Interpreter.AdaptivePredict(_input,20,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 426; functionStmt(); + State = 434; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 427; propertyGetStmt(); + State = 435; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 428; propertySetStmt(); + State = 436; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 429; propertyLetStmt(); + State = 437; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 430; subStmt(); + State = 438; subStmt(); } break; } @@ -1287,56 +1294,56 @@ public AttributeStmtContext attributeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 433; Match(ATTRIBUTE); - State = 434; whiteSpace(); - State = 435; implicitCallStmt_InStmt(); - State = 437; + State = 441; Match(ATTRIBUTE); + State = 442; whiteSpace(); + State = 443; implicitCallStmt_InStmt(); + State = 445; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 436; whiteSpace(); + State = 444; whiteSpace(); } } - State = 439; Match(EQ); - State = 441; + State = 447; Match(EQ); + State = 449; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 440; whiteSpace(); + State = 448; whiteSpace(); } } - State = 443; literal(); - State = 454; + State = 451; literal(); + State = 462; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 445; + State = 453; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 444; whiteSpace(); + State = 452; whiteSpace(); } } - State = 447; Match(COMMA); - State = 449; + State = 455; Match(COMMA); + State = 457; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 448; whiteSpace(); + State = 456; whiteSpace(); } } - State = 451; literal(); + State = 459; literal(); } } } - State = 456; + State = 464; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); } @@ -1394,24 +1401,24 @@ public BlockContext block() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 457; blockStmt(); - State = 463; + State = 465; blockStmt(); + State = 471; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 458; endOfStatement(); - State = 459; blockStmt(); + State = 466; endOfStatement(); + State = 467; blockStmt(); } } } - State = 465; + State = 473; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); } - State = 466; endOfStatement(); + State = 474; endOfStatement(); } } catch (RecognitionException re) { @@ -1649,467 +1656,467 @@ public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); EnterRule(_localctx, 26, RULE_blockStmt); try { - State = 534; + State = 542; switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 468; lineLabel(); + State = 476; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 469; appactivateStmt(); + State = 477; appactivateStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 470; attributeStmt(); + State = 478; attributeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 471; beepStmt(); + State = 479; beepStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 472; chdirStmt(); + State = 480; chdirStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 473; chdriveStmt(); + State = 481; chdriveStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 474; closeStmt(); + State = 482; closeStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 475; constStmt(); + State = 483; constStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 476; dateStmt(); + State = 484; dateStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 477; deleteSettingStmt(); + State = 485; deleteSettingStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 478; deftypeStmt(); + State = 486; deftypeStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 479; doLoopStmt(); + State = 487; doLoopStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 480; endStmt(); + State = 488; endStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 481; eraseStmt(); + State = 489; eraseStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 482; errorStmt(); + State = 490; errorStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 483; exitStmt(); + State = 491; exitStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 484; explicitCallStmt(); + State = 492; explicitCallStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 485; filecopyStmt(); + State = 493; filecopyStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 486; forEachStmt(); + State = 494; forEachStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 487; forNextStmt(); + State = 495; forNextStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 488; getStmt(); + State = 496; getStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 489; goSubStmt(); + State = 497; goSubStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 490; goToStmt(); + State = 498; goToStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 491; ifThenElseStmt(); + State = 499; ifThenElseStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 492; implementsStmt(); + State = 500; implementsStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 493; inputStmt(); + State = 501; inputStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 494; killStmt(); + State = 502; killStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 495; letStmt(); + State = 503; letStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 496; lineInputStmt(); + State = 504; lineInputStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 497; loadStmt(); + State = 505; loadStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 498; lockStmt(); + State = 506; lockStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 499; lsetStmt(); + State = 507; lsetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 500; midStmt(); + State = 508; midStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 501; mkdirStmt(); + State = 509; mkdirStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 502; nameStmt(); + State = 510; nameStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 503; onErrorStmt(); + State = 511; onErrorStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 504; onGoToStmt(); + State = 512; onGoToStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 505; onGoSubStmt(); + State = 513; onGoSubStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 506; openStmt(); + State = 514; openStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 507; printStmt(); + State = 515; printStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 508; putStmt(); + State = 516; putStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 509; raiseEventStmt(); + State = 517; raiseEventStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 510; randomizeStmt(); + State = 518; randomizeStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 511; redimStmt(); + State = 519; redimStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 512; resetStmt(); + State = 520; resetStmt(); } break; case 46: EnterOuterAlt(_localctx, 46); { - State = 513; resumeStmt(); + State = 521; resumeStmt(); } break; case 47: EnterOuterAlt(_localctx, 47); { - State = 514; returnStmt(); + State = 522; returnStmt(); } break; case 48: EnterOuterAlt(_localctx, 48); { - State = 515; rmdirStmt(); + State = 523; rmdirStmt(); } break; case 49: EnterOuterAlt(_localctx, 49); { - State = 516; rsetStmt(); + State = 524; rsetStmt(); } break; case 50: EnterOuterAlt(_localctx, 50); { - State = 517; savepictureStmt(); + State = 525; savepictureStmt(); } break; case 51: EnterOuterAlt(_localctx, 51); { - State = 518; saveSettingStmt(); + State = 526; saveSettingStmt(); } break; case 52: EnterOuterAlt(_localctx, 52); { - State = 519; seekStmt(); + State = 527; seekStmt(); } break; case 53: EnterOuterAlt(_localctx, 53); { - State = 520; selectCaseStmt(); + State = 528; selectCaseStmt(); } break; case 54: EnterOuterAlt(_localctx, 54); { - State = 521; sendkeysStmt(); + State = 529; sendkeysStmt(); } break; case 55: EnterOuterAlt(_localctx, 55); { - State = 522; setattrStmt(); + State = 530; setattrStmt(); } break; case 56: EnterOuterAlt(_localctx, 56); { - State = 523; setStmt(); + State = 531; setStmt(); } break; case 57: EnterOuterAlt(_localctx, 57); { - State = 524; stopStmt(); + State = 532; stopStmt(); } break; case 58: EnterOuterAlt(_localctx, 58); { - State = 525; timeStmt(); + State = 533; timeStmt(); } break; case 59: EnterOuterAlt(_localctx, 59); { - State = 526; unloadStmt(); + State = 534; unloadStmt(); } break; case 60: EnterOuterAlt(_localctx, 60); { - State = 527; unlockStmt(); + State = 535; unlockStmt(); } break; case 61: EnterOuterAlt(_localctx, 61); { - State = 528; variableStmt(); + State = 536; variableStmt(); } break; case 62: EnterOuterAlt(_localctx, 62); { - State = 529; whileWendStmt(); + State = 537; whileWendStmt(); } break; case 63: EnterOuterAlt(_localctx, 63); { - State = 530; widthStmt(); + State = 538; widthStmt(); } break; case 64: EnterOuterAlt(_localctx, 64); { - State = 531; withStmt(); + State = 539; withStmt(); } break; case 65: EnterOuterAlt(_localctx, 65); { - State = 532; writeStmt(); + State = 540; writeStmt(); } break; case 66: EnterOuterAlt(_localctx, 66); { - State = 533; implicitCallStmt_InBlock(); + State = 541; implicitCallStmt_InBlock(); } break; } @@ -2168,31 +2175,31 @@ public AppactivateStmtContext appactivateStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 536; Match(APPACTIVATE); - State = 537; whiteSpace(); - State = 538; valueStmt(0); - State = 547; + State = 544; Match(APPACTIVATE); + State = 545; whiteSpace(); + State = 546; valueStmt(0); + State = 555; switch ( Interpreter.AdaptivePredict(_input,30,_ctx) ) { case 1: { - State = 540; + State = 548; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 539; whiteSpace(); + State = 547; whiteSpace(); } } - State = 542; Match(COMMA); - State = 544; + State = 550; Match(COMMA); + State = 552; switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 543; whiteSpace(); + State = 551; whiteSpace(); } break; } - State = 546; valueStmt(0); + State = 554; valueStmt(0); } break; } @@ -2238,7 +2245,7 @@ public BeepStmtContext beepStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 549; Match(BEEP); + State = 557; Match(BEEP); } } catch (RecognitionException re) { @@ -2287,9 +2294,9 @@ public ChdirStmtContext chdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 551; Match(CHDIR); - State = 552; whiteSpace(); - State = 553; valueStmt(0); + State = 559; Match(CHDIR); + State = 560; whiteSpace(); + State = 561; valueStmt(0); } } catch (RecognitionException re) { @@ -2338,9 +2345,9 @@ public ChdriveStmtContext chdriveStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 555; Match(CHDRIVE); - State = 556; whiteSpace(); - State = 557; valueStmt(0); + State = 563; Match(CHDRIVE); + State = 564; whiteSpace(); + State = 565; valueStmt(0); } } catch (RecognitionException re) { @@ -2401,42 +2408,42 @@ public CloseStmtContext closeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 559; Match(CLOSE); - State = 575; + State = 567; Match(CLOSE); + State = 583; switch ( Interpreter.AdaptivePredict(_input,34,_ctx) ) { case 1: { - State = 560; whiteSpace(); - State = 561; fileNumber(); - State = 572; + State = 568; whiteSpace(); + State = 569; fileNumber(); + State = 580; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,33,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 563; + State = 571; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 562; whiteSpace(); + State = 570; whiteSpace(); } } - State = 565; Match(COMMA); - State = 567; + State = 573; Match(COMMA); + State = 575; switch ( Interpreter.AdaptivePredict(_input,32,_ctx) ) { case 1: { - State = 566; whiteSpace(); + State = 574; whiteSpace(); } break; } - State = 569; fileNumber(); + State = 577; fileNumber(); } } } - State = 574; + State = 582; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,33,_ctx); } @@ -2506,47 +2513,47 @@ public ConstStmtContext constStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 580; + State = 588; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 577; visibility(); - State = 578; whiteSpace(); + State = 585; visibility(); + State = 586; whiteSpace(); } } - State = 582; Match(CONST); - State = 583; whiteSpace(); - State = 584; constSubStmt(); - State = 595; + State = 590; Match(CONST); + State = 591; whiteSpace(); + State = 592; constSubStmt(); + State = 603; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,38,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 586; + State = 594; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 585; whiteSpace(); + State = 593; whiteSpace(); } } - State = 588; Match(COMMA); - State = 590; + State = 596; Match(COMMA); + State = 598; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 589; whiteSpace(); + State = 597; whiteSpace(); } } - State = 592; constSubStmt(); + State = 600; constSubStmt(); } } } - State = 597; + State = 605; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,38,_ctx); } @@ -2611,42 +2618,42 @@ public ConstSubStmtContext constSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 598; identifier(); - State = 600; + State = 606; identifier(); + State = 608; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 599; typeHint(); + State = 607; typeHint(); } } - State = 605; + State = 613; switch ( Interpreter.AdaptivePredict(_input,40,_ctx) ) { case 1: { - State = 602; whiteSpace(); - State = 603; asTypeClause(); + State = 610; whiteSpace(); + State = 611; asTypeClause(); } break; } - State = 608; + State = 616; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 607; whiteSpace(); + State = 615; whiteSpace(); } } - State = 610; Match(EQ); - State = 612; + State = 618; Match(EQ); + State = 620; switch ( Interpreter.AdaptivePredict(_input,42,_ctx) ) { case 1: { - State = 611; whiteSpace(); + State = 619; whiteSpace(); } break; } - State = 614; valueStmt(0); + State = 622; valueStmt(0); } } catch (RecognitionException re) { @@ -2700,25 +2707,25 @@ public DateStmtContext dateStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 616; Match(DATE); - State = 618; + State = 624; Match(DATE); + State = 626; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 617; whiteSpace(); + State = 625; whiteSpace(); } } - State = 620; Match(EQ); - State = 622; + State = 628; Match(EQ); + State = 630; switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { case 1: { - State = 621; whiteSpace(); + State = 629; whiteSpace(); } break; } - State = 624; valueStmt(0); + State = 632; valueStmt(0); } } catch (RecognitionException re) { @@ -2795,37 +2802,37 @@ public DeclareStmtContext declareStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 629; + State = 637; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 626; visibility(); - State = 627; whiteSpace(); + State = 634; visibility(); + State = 635; whiteSpace(); } } - State = 631; Match(DECLARE); - State = 632; whiteSpace(); - State = 635; + State = 639; Match(DECLARE); + State = 640; whiteSpace(); + State = 643; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 633; Match(PTRSAFE); - State = 634; whiteSpace(); + State = 641; Match(PTRSAFE); + State = 642; whiteSpace(); } } - State = 642; + State = 650; switch (_input.La(1)) { case FUNCTION: { { - State = 637; Match(FUNCTION); - State = 639; + State = 645; Match(FUNCTION); + State = 647; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 638; typeHint(); + State = 646; typeHint(); } } @@ -2834,59 +2841,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 641; Match(SUB); + State = 649; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 644; whiteSpace(); - State = 645; identifier(); - State = 647; + State = 652; whiteSpace(); + State = 653; identifier(); + State = 655; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 646; typeHint(); + State = 654; typeHint(); } } - State = 649; whiteSpace(); - State = 650; Match(LIB); - State = 651; whiteSpace(); - State = 652; Match(STRINGLITERAL); - State = 658; + State = 657; whiteSpace(); + State = 658; Match(LIB); + State = 659; whiteSpace(); + State = 660; Match(STRINGLITERAL); + State = 666; switch ( Interpreter.AdaptivePredict(_input,50,_ctx) ) { case 1: { - State = 653; whiteSpace(); - State = 654; Match(ALIAS); - State = 655; whiteSpace(); - State = 656; Match(STRINGLITERAL); + State = 661; whiteSpace(); + State = 662; Match(ALIAS); + State = 663; whiteSpace(); + State = 664; Match(STRINGLITERAL); } break; } - State = 664; + State = 672; switch ( Interpreter.AdaptivePredict(_input,52,_ctx) ) { case 1: { - State = 661; + State = 669; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 660; whiteSpace(); + State = 668; whiteSpace(); } } - State = 663; argList(); + State = 671; argList(); } break; } - State = 669; + State = 677; switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { case 1: { - State = 666; whiteSpace(); - State = 667; asTypeClause(); + State = 674; whiteSpace(); + State = 675; asTypeClause(); } break; } @@ -2962,43 +2969,43 @@ public DeftypeStmtContext deftypeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 671; + State = 679; _la = _input.La(1); if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (DEFBOOL - 74)) | (1L << (DEFBYTE - 74)) | (1L << (DEFDATE - 74)) | (1L << (DEFDBL - 74)) | (1L << (DEFCUR - 74)) | (1L << (DEFINT - 74)) | (1L << (DEFLNG - 74)) | (1L << (DEFLNGLNG - 74)) | (1L << (DEFLNGPTR - 74)) | (1L << (DEFOBJ - 74)) | (1L << (DEFSNG - 74)) | (1L << (DEFSTR - 74)) | (1L << (DEFVAR - 74)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 672; whiteSpace(); - State = 673; letterrange(); - State = 684; + State = 680; whiteSpace(); + State = 681; letterrange(); + State = 692; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,56,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 675; + State = 683; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 674; whiteSpace(); + State = 682; whiteSpace(); } } - State = 677; Match(COMMA); - State = 679; + State = 685; Match(COMMA); + State = 687; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 678; whiteSpace(); + State = 686; whiteSpace(); } } - State = 681; letterrange(); + State = 689; letterrange(); } } } - State = 686; + State = 694; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,56,_ctx); } @@ -3059,19 +3066,19 @@ public DeleteSettingStmtContext deleteSettingStmt() { EnterRule(_localctx, 48, RULE_deleteSettingStmt); int _la; try { - State = 725; + State = 733; switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 687; Match(DELETESETTING); - State = 688; whiteSpace(); - State = 689; valueStmt(0); - State = 691; + State = 695; Match(DELETESETTING); + State = 696; whiteSpace(); + State = 697; valueStmt(0); + State = 699; switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: { - State = 690; whiteSpace(); + State = 698; whiteSpace(); } break; } @@ -3081,72 +3088,72 @@ public DeleteSettingStmtContext deleteSettingStmt() { case 2: EnterOuterAlt(_localctx, 2); { - State = 693; Match(DELETESETTING); - State = 694; whiteSpace(); - State = 695; valueStmt(0); - State = 697; + State = 701; Match(DELETESETTING); + State = 702; whiteSpace(); + State = 703; valueStmt(0); + State = 705; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 696; whiteSpace(); + State = 704; whiteSpace(); } } - State = 699; Match(COMMA); - State = 701; + State = 707; Match(COMMA); + State = 709; switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 700; whiteSpace(); + State = 708; whiteSpace(); } break; } - State = 703; valueStmt(0); + State = 711; valueStmt(0); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 705; Match(DELETESETTING); - State = 706; whiteSpace(); - State = 707; valueStmt(0); - State = 709; + State = 713; Match(DELETESETTING); + State = 714; whiteSpace(); + State = 715; valueStmt(0); + State = 717; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 708; whiteSpace(); + State = 716; whiteSpace(); } } - State = 711; Match(COMMA); - State = 713; + State = 719; Match(COMMA); + State = 721; switch ( Interpreter.AdaptivePredict(_input,61,_ctx) ) { case 1: { - State = 712; whiteSpace(); + State = 720; whiteSpace(); } break; } - State = 715; valueStmt(0); - State = 717; + State = 723; valueStmt(0); + State = 725; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 716; whiteSpace(); + State = 724; whiteSpace(); } } - State = 719; Match(COMMA); - State = 721; + State = 727; Match(COMMA); + State = 729; switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { case 1: { - State = 720; whiteSpace(); + State = 728; whiteSpace(); } break; } - State = 723; valueStmt(0); + State = 731; valueStmt(0); } break; } @@ -3208,74 +3215,74 @@ public DoLoopStmtContext doLoopStmt() { EnterRule(_localctx, 50, RULE_doLoopStmt); int _la; try { - State = 756; + State = 764; switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 727; Match(DO); - State = 728; endOfStatement(); - State = 730; - switch ( Interpreter.AdaptivePredict(_input,65,_ctx) ) { - case 1: + State = 735; Match(DO); + State = 736; endOfStatement(); + State = 738; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 729; block(); + State = 737; block(); } - break; } - State = 732; Match(LOOP); + + State = 740; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 734; Match(DO); - State = 735; whiteSpace(); - State = 736; + State = 742; Match(DO); + State = 743; whiteSpace(); + State = 744; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 737; whiteSpace(); - State = 738; valueStmt(0); - State = 739; endOfStatement(); - State = 741; - switch ( Interpreter.AdaptivePredict(_input,66,_ctx) ) { - case 1: + State = 745; whiteSpace(); + State = 746; valueStmt(0); + State = 747; endOfStatement(); + State = 749; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 740; block(); + State = 748; block(); } - break; } - State = 743; Match(LOOP); + + State = 751; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 745; Match(DO); - State = 746; endOfStatement(); - State = 748; - switch ( Interpreter.AdaptivePredict(_input,67,_ctx) ) { - case 1: + State = 753; Match(DO); + State = 754; endOfStatement(); + State = 756; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 747; block(); + State = 755; block(); } - break; } - State = 750; Match(LOOP); - State = 751; whiteSpace(); - State = 752; + + State = 758; Match(LOOP); + State = 759; whiteSpace(); + State = 760; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 753; whiteSpace(); - State = 754; valueStmt(0); + State = 761; whiteSpace(); + State = 762; valueStmt(0); } break; } @@ -3320,7 +3327,7 @@ public EndStmtContext endStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 758; Match(END); + State = 766; Match(END); } } catch (RecognitionException re) { @@ -3386,33 +3393,33 @@ public EnumerationStmtContext enumerationStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 763; + State = 771; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 760; visibility(); - State = 761; whiteSpace(); + State = 768; visibility(); + State = 769; whiteSpace(); } } - State = 765; Match(ENUM); - State = 766; whiteSpace(); - State = 767; identifier(); - State = 768; endOfStatement(); - State = 772; + State = 773; Match(ENUM); + State = 774; whiteSpace(); + State = 775; identifier(); + State = 776; endOfStatement(); + State = 780; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==COLLECTION) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (IDENTIFIER - 194)))) != 0) || _la==COLLECTION) { { { - State = 769; enumerationStmt_Constant(); + State = 777; enumerationStmt_Constant(); } } - State = 774; + State = 782; _errHandler.Sync(this); _la = _input.La(1); } - State = 775; Match(END_ENUM); + State = 783; Match(END_ENUM); } } catch (RecognitionException re) { @@ -3471,33 +3478,33 @@ public EnumerationStmt_ConstantContext enumerationStmt_Constant() { try { EnterOuterAlt(_localctx, 1); { - State = 777; identifier(); - State = 786; + State = 785; identifier(); + State = 794; switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { case 1: { - State = 779; + State = 787; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 778; whiteSpace(); + State = 786; whiteSpace(); } } - State = 781; Match(EQ); - State = 783; + State = 789; Match(EQ); + State = 791; switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 782; whiteSpace(); + State = 790; whiteSpace(); } break; } - State = 785; valueStmt(0); + State = 793; valueStmt(0); } break; } - State = 788; endOfStatement(); + State = 796; endOfStatement(); } } catch (RecognitionException re) { @@ -3558,38 +3565,38 @@ public EraseStmtContext eraseStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 790; Match(ERASE); - State = 791; whiteSpace(); - State = 792; valueStmt(0); - State = 803; + State = 798; Match(ERASE); + State = 799; whiteSpace(); + State = 800; valueStmt(0); + State = 811; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,76,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 794; + State = 802; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 793; whiteSpace(); + State = 801; whiteSpace(); } } - State = 796; Match(COMMA); - State = 798; + State = 804; Match(COMMA); + State = 806; switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { case 1: { - State = 797; whiteSpace(); + State = 805; whiteSpace(); } break; } - State = 800; valueStmt(0); + State = 808; valueStmt(0); } } } - State = 805; + State = 813; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,76,_ctx); } @@ -3641,9 +3648,9 @@ public ErrorStmtContext errorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 806; Match(ERROR); - State = 807; whiteSpace(); - State = 808; valueStmt(0); + State = 814; Match(ERROR); + State = 815; whiteSpace(); + State = 816; valueStmt(0); } } catch (RecognitionException re) { @@ -3702,27 +3709,27 @@ public EventStmtContext eventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 813; + State = 821; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 810; visibility(); - State = 811; whiteSpace(); + State = 818; visibility(); + State = 819; whiteSpace(); } } - State = 815; Match(EVENT); - State = 816; whiteSpace(); - State = 817; identifier(); - State = 819; + State = 823; Match(EVENT); + State = 824; whiteSpace(); + State = 825; identifier(); + State = 827; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 818; whiteSpace(); + State = 826; whiteSpace(); } } - State = 821; argList(); + State = 829; argList(); } } catch (RecognitionException re) { @@ -3770,7 +3777,7 @@ public ExitStmtContext exitStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 823; + State = 831; _la = _input.La(1); if ( !(((((_la - 109)) & ~0x3f) == 0 && ((1L << (_la - 109)) & ((1L << (EXIT_DO - 109)) | (1L << (EXIT_FOR - 109)) | (1L << (EXIT_FUNCTION - 109)) | (1L << (EXIT_PROPERTY - 109)) | (1L << (EXIT_SUB - 109)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3832,27 +3839,27 @@ public FilecopyStmtContext filecopyStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 825; Match(FILECOPY); - State = 826; whiteSpace(); - State = 827; valueStmt(0); - State = 829; + State = 833; Match(FILECOPY); + State = 834; whiteSpace(); + State = 835; valueStmt(0); + State = 837; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 828; whiteSpace(); + State = 836; whiteSpace(); } } - State = 831; Match(COMMA); - State = 833; + State = 839; Match(COMMA); + State = 841; switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: { - State = 832; whiteSpace(); + State = 840; whiteSpace(); } break; } - State = 835; valueStmt(0); + State = 843; valueStmt(0); } } catch (RecognitionException re) { @@ -3913,34 +3920,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); EnterRule(_localctx, 68, RULE_forEachStmt); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 837; Match(FOR); - State = 838; whiteSpace(); - State = 839; Match(EACH); - State = 840; whiteSpace(); - State = 841; valueStmt(0); - State = 842; whiteSpace(); - State = 843; Match(IN); - State = 844; whiteSpace(); - State = 845; valueStmt(0); - State = 846; endOfStatement(); - State = 848; - switch ( Interpreter.AdaptivePredict(_input,81,_ctx) ) { - case 1: + State = 845; Match(FOR); + State = 846; whiteSpace(); + State = 847; Match(EACH); + State = 848; whiteSpace(); + State = 849; valueStmt(0); + State = 850; whiteSpace(); + State = 851; Match(IN); + State = 852; whiteSpace(); + State = 853; valueStmt(0); + State = 854; endOfStatement(); + State = 856; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 847; block(); + State = 855; block(); } - break; } - State = 850; Match(NEXT); - State = 854; + + State = 858; Match(NEXT); + State = 862; switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { case 1: { - State = 851; whiteSpace(); - State = 852; valueStmt(0); + State = 859; whiteSpace(); + State = 860; valueStmt(0); } break; } @@ -4009,58 +4017,58 @@ public ForNextStmtContext forNextStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 856; Match(FOR); - State = 857; whiteSpace(); - State = 858; valueStmt(0); - State = 860; + State = 864; Match(FOR); + State = 865; whiteSpace(); + State = 866; valueStmt(0); + State = 868; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 859; whiteSpace(); + State = 867; whiteSpace(); } } - State = 862; Match(EQ); - State = 864; + State = 870; Match(EQ); + State = 872; switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 863; whiteSpace(); + State = 871; whiteSpace(); } break; } - State = 866; valueStmt(0); - State = 867; whiteSpace(); - State = 868; Match(TO); - State = 869; whiteSpace(); - State = 870; valueStmt(0); - State = 876; + State = 874; valueStmt(0); + State = 875; whiteSpace(); + State = 876; Match(TO); + State = 877; whiteSpace(); + State = 878; valueStmt(0); + State = 884; switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { case 1: { - State = 871; whiteSpace(); - State = 872; Match(STEP); - State = 873; whiteSpace(); - State = 874; valueStmt(0); + State = 879; whiteSpace(); + State = 880; Match(STEP); + State = 881; whiteSpace(); + State = 882; valueStmt(0); } break; } - State = 878; endOfStatement(); - State = 880; - switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { - case 1: + State = 886; endOfStatement(); + State = 888; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 879; block(); + State = 887; block(); } - break; } - State = 882; Match(NEXT); - State = 886; + + State = 890; Match(NEXT); + State = 894; switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 883; whiteSpace(); - State = 884; valueStmt(0); + State = 891; whiteSpace(); + State = 892; valueStmt(0); } break; } @@ -4136,84 +4144,84 @@ public FunctionStmtContext functionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 891; + State = 899; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 888; visibility(); - State = 889; whiteSpace(); + State = 896; visibility(); + State = 897; whiteSpace(); } } - State = 895; + State = 903; _la = _input.La(1); if (_la==STATIC) { { - State = 893; Match(STATIC); - State = 894; whiteSpace(); + State = 901; Match(STATIC); + State = 902; whiteSpace(); } } - State = 897; Match(FUNCTION); - State = 899; + State = 905; Match(FUNCTION); + State = 907; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 898; whiteSpace(); + State = 906; whiteSpace(); } } - State = 901; identifier(); - State = 903; + State = 909; identifier(); + State = 911; switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 902; typeHint(); + State = 910; typeHint(); } break; } - State = 909; + State = 917; switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 906; + State = 914; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 905; whiteSpace(); + State = 913; whiteSpace(); } } - State = 908; argList(); + State = 916; argList(); } break; } - State = 915; + State = 923; switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 912; + State = 920; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 911; whiteSpace(); + State = 919; whiteSpace(); } } - State = 914; asTypeClause(); + State = 922; asTypeClause(); } break; } - State = 917; endOfStatement(); - State = 919; + State = 925; endOfStatement(); + State = 927; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 918; block(); + State = 926; block(); } } - State = 921; Match(END_FUNCTION); + State = 929; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4276,52 +4284,52 @@ public GetStmtContext getStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 923; Match(GET); - State = 924; whiteSpace(); - State = 925; fileNumber(); - State = 927; + State = 931; Match(GET); + State = 932; whiteSpace(); + State = 933; fileNumber(); + State = 935; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 926; whiteSpace(); + State = 934; whiteSpace(); } } - State = 929; Match(COMMA); - State = 931; + State = 937; Match(COMMA); + State = 939; switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { case 1: { - State = 930; whiteSpace(); + State = 938; whiteSpace(); } break; } - State = 934; + State = 942; switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 933; valueStmt(0); + State = 941; valueStmt(0); } break; } - State = 937; + State = 945; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 936; whiteSpace(); + State = 944; whiteSpace(); } } - State = 939; Match(COMMA); - State = 941; + State = 947; Match(COMMA); + State = 949; switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 940; whiteSpace(); + State = 948; whiteSpace(); } break; } - State = 943; valueStmt(0); + State = 951; valueStmt(0); } } catch (RecognitionException re) { @@ -4370,9 +4378,9 @@ public GoSubStmtContext goSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 945; Match(GOSUB); - State = 946; whiteSpace(); - State = 947; valueStmt(0); + State = 953; Match(GOSUB); + State = 954; whiteSpace(); + State = 955; valueStmt(0); } } catch (RecognitionException re) { @@ -4421,9 +4429,9 @@ public GoToStmtContext goToStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 949; Match(GOTO); - State = 950; whiteSpace(); - State = 951; valueStmt(0); + State = 957; Match(GOTO); + State = 958; whiteSpace(); + State = 959; valueStmt(0); } } catch (RecognitionException re) { @@ -4519,27 +4527,27 @@ public IfThenElseStmtContext ifThenElseStmt() { EnterRule(_localctx, 80, RULE_ifThenElseStmt); int _la; try { - State = 979; + State = 987; switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 953; Match(IF); - State = 954; whiteSpace(); - State = 955; ifConditionStmt(); - State = 956; whiteSpace(); - State = 957; Match(THEN); - State = 958; whiteSpace(); - State = 959; blockStmt(); - State = 965; + State = 961; Match(IF); + State = 962; whiteSpace(); + State = 963; ifConditionStmt(); + State = 964; whiteSpace(); + State = 965; Match(THEN); + State = 966; whiteSpace(); + State = 967; blockStmt(); + State = 973; switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { case 1: { - State = 960; whiteSpace(); - State = 961; Match(ELSE); - State = 962; whiteSpace(); - State = 963; blockStmt(); + State = 968; whiteSpace(); + State = 969; Match(ELSE); + State = 970; whiteSpace(); + State = 971; blockStmt(); } break; } @@ -4550,29 +4558,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 967; ifBlockStmt(); - State = 971; + State = 975; ifBlockStmt(); + State = 979; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 968; ifElseIfBlockStmt(); + State = 976; ifElseIfBlockStmt(); } } - State = 973; + State = 981; _errHandler.Sync(this); _la = _input.La(1); } - State = 975; + State = 983; _la = _input.La(1); if (_la==ELSE) { { - State = 974; ifElseBlockStmt(); + State = 982; ifElseBlockStmt(); } } - State = 977; Match(END_IF); + State = 985; Match(END_IF); } break; } @@ -4633,17 +4641,17 @@ public IfBlockStmtContext ifBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 981; Match(IF); - State = 982; whiteSpace(); - State = 983; ifConditionStmt(); - State = 984; whiteSpace(); - State = 985; Match(THEN); - State = 986; endOfStatement(); - State = 988; + State = 989; Match(IF); + State = 990; whiteSpace(); + State = 991; ifConditionStmt(); + State = 992; whiteSpace(); + State = 993; Match(THEN); + State = 994; endOfStatement(); + State = 996; switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { case 1: { - State = 987; block(); + State = 995; block(); } break; } @@ -4691,7 +4699,7 @@ public IfConditionStmtContext ifConditionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 990; valueStmt(0); + State = 998; valueStmt(0); } } catch (RecognitionException re) { @@ -4750,17 +4758,17 @@ public IfElseIfBlockStmtContext ifElseIfBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 992; Match(ELSEIF); - State = 993; whiteSpace(); - State = 994; ifConditionStmt(); - State = 995; whiteSpace(); - State = 996; Match(THEN); - State = 997; endOfStatement(); - State = 999; + State = 1000; Match(ELSEIF); + State = 1001; whiteSpace(); + State = 1002; ifConditionStmt(); + State = 1003; whiteSpace(); + State = 1004; Match(THEN); + State = 1005; endOfStatement(); + State = 1007; switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 998; block(); + State = 1006; block(); } break; } @@ -4812,13 +4820,13 @@ public IfElseBlockStmtContext ifElseBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1001; Match(ELSE); - State = 1002; endOfStatement(); - State = 1004; + State = 1009; Match(ELSE); + State = 1010; endOfStatement(); + State = 1012; switch ( Interpreter.AdaptivePredict(_input,108,_ctx) ) { case 1: { - State = 1003; block(); + State = 1011; block(); } break; } @@ -4870,9 +4878,9 @@ public ImplementsStmtContext implementsStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1006; Match(IMPLEMENTS); - State = 1007; whiteSpace(); - State = 1008; valueStmt(0); + State = 1014; Match(IMPLEMENTS); + State = 1015; whiteSpace(); + State = 1016; valueStmt(0); } } catch (RecognitionException re) { @@ -4936,10 +4944,10 @@ public InputStmtContext inputStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1010; Match(INPUT); - State = 1011; whiteSpace(); - State = 1012; fileNumber(); - State = 1021; + State = 1018; Match(INPUT); + State = 1019; whiteSpace(); + State = 1020; fileNumber(); + State = 1029; _errHandler.Sync(this); _alt = 1; do { @@ -4947,31 +4955,31 @@ public InputStmtContext inputStmt() { case 1: { { - State = 1014; + State = 1022; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1013; whiteSpace(); + State = 1021; whiteSpace(); } } - State = 1016; Match(COMMA); - State = 1018; + State = 1024; Match(COMMA); + State = 1026; switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { case 1: { - State = 1017; whiteSpace(); + State = 1025; whiteSpace(); } break; } - State = 1020; valueStmt(0); + State = 1028; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 1023; + State = 1031; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,111,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -5023,9 +5031,9 @@ public KillStmtContext killStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1025; Match(KILL); - State = 1026; whiteSpace(); - State = 1027; valueStmt(0); + State = 1033; Match(KILL); + State = 1034; whiteSpace(); + State = 1035; valueStmt(0); } } catch (RecognitionException re) { @@ -5082,34 +5090,34 @@ public LetStmtContext letStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1031; - switch ( Interpreter.AdaptivePredict(_input,112,_ctx) ) { - case 1: + State = 1039; + _la = _input.La(1); + if (_la==LET) { { - State = 1029; Match(LET); - State = 1030; whiteSpace(); + State = 1037; Match(LET); + State = 1038; whiteSpace(); } - break; } - State = 1033; implicitCallStmt_InStmt(); - State = 1035; + + State = 1041; implicitCallStmt_InStmt(); + State = 1043; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1034; whiteSpace(); + State = 1042; whiteSpace(); } } - State = 1037; Match(EQ); - State = 1039; + State = 1045; Match(EQ); + State = 1047; switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { case 1: { - State = 1038; whiteSpace(); + State = 1046; whiteSpace(); } break; } - State = 1041; valueStmt(0); + State = 1049; valueStmt(0); } } catch (RecognitionException re) { @@ -5166,27 +5174,27 @@ public LineInputStmtContext lineInputStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1043; Match(LINE_INPUT); - State = 1044; whiteSpace(); - State = 1045; fileNumber(); - State = 1047; + State = 1051; Match(LINE_INPUT); + State = 1052; whiteSpace(); + State = 1053; fileNumber(); + State = 1055; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1046; whiteSpace(); + State = 1054; whiteSpace(); } } - State = 1049; Match(COMMA); - State = 1051; + State = 1057; Match(COMMA); + State = 1059; switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 1050; whiteSpace(); + State = 1058; whiteSpace(); } break; } - State = 1053; valueStmt(0); + State = 1061; valueStmt(0); } } catch (RecognitionException re) { @@ -5235,9 +5243,9 @@ public LoadStmtContext loadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1055; Match(LOAD); - State = 1056; whiteSpace(); - State = 1057; valueStmt(0); + State = 1063; Match(LOAD); + State = 1064; whiteSpace(); + State = 1065; valueStmt(0); } } catch (RecognitionException re) { @@ -5295,39 +5303,39 @@ public LockStmtContext lockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1059; Match(LOCK); - State = 1060; whiteSpace(); - State = 1061; valueStmt(0); - State = 1077; + State = 1067; Match(LOCK); + State = 1068; whiteSpace(); + State = 1069; valueStmt(0); + State = 1085; switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { case 1: { - State = 1063; + State = 1071; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1062; whiteSpace(); + State = 1070; whiteSpace(); } } - State = 1065; Match(COMMA); - State = 1067; + State = 1073; Match(COMMA); + State = 1075; switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1066; whiteSpace(); + State = 1074; whiteSpace(); } break; } - State = 1069; valueStmt(0); - State = 1075; + State = 1077; valueStmt(0); + State = 1083; switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1070; whiteSpace(); - State = 1071; Match(TO); - State = 1072; whiteSpace(); - State = 1073; valueStmt(0); + State = 1078; whiteSpace(); + State = 1079; Match(TO); + State = 1080; whiteSpace(); + State = 1081; valueStmt(0); } break; } @@ -5390,27 +5398,27 @@ public LsetStmtContext lsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1079; Match(LSET); - State = 1080; whiteSpace(); - State = 1081; implicitCallStmt_InStmt(); - State = 1083; + State = 1087; Match(LSET); + State = 1088; whiteSpace(); + State = 1089; implicitCallStmt_InStmt(); + State = 1091; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1082; whiteSpace(); + State = 1090; whiteSpace(); } } - State = 1085; Match(EQ); - State = 1087; + State = 1093; Match(EQ); + State = 1095; switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1086; whiteSpace(); + State = 1094; whiteSpace(); } break; } - State = 1089; valueStmt(0); + State = 1097; valueStmt(0); } } catch (RecognitionException re) { @@ -5465,34 +5473,34 @@ public MidStmtContext midStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1091; Match(MID); - State = 1093; + State = 1099; Match(MID); + State = 1101; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1092; whiteSpace(); + State = 1100; whiteSpace(); } } - State = 1095; Match(LPAREN); - State = 1097; + State = 1103; Match(LPAREN); + State = 1105; switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1096; whiteSpace(); + State = 1104; whiteSpace(); } break; } - State = 1099; argsCall(); - State = 1101; + State = 1107; argsCall(); + State = 1109; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1100; whiteSpace(); + State = 1108; whiteSpace(); } } - State = 1103; Match(RPAREN); + State = 1111; Match(RPAREN); } } catch (RecognitionException re) { @@ -5541,9 +5549,9 @@ public MkdirStmtContext mkdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1105; Match(MKDIR); - State = 1106; whiteSpace(); - State = 1107; valueStmt(0); + State = 1113; Match(MKDIR); + State = 1114; whiteSpace(); + State = 1115; valueStmt(0); } } catch (RecognitionException re) { @@ -5599,13 +5607,13 @@ public NameStmtContext nameStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1109; Match(NAME); - State = 1110; whiteSpace(); - State = 1111; valueStmt(0); - State = 1112; whiteSpace(); - State = 1113; Match(AS); - State = 1114; whiteSpace(); - State = 1115; valueStmt(0); + State = 1117; Match(NAME); + State = 1118; whiteSpace(); + State = 1119; valueStmt(0); + State = 1120; whiteSpace(); + State = 1121; Match(AS); + State = 1122; whiteSpace(); + State = 1123; valueStmt(0); } } catch (RecognitionException re) { @@ -5662,27 +5670,27 @@ public OnErrorStmtContext onErrorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1117; + State = 1125; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1118; whiteSpace(); - State = 1127; + State = 1126; whiteSpace(); + State = 1135; switch (_input.La(1)) { case GOTO: { - State = 1119; Match(GOTO); - State = 1120; whiteSpace(); - State = 1121; valueStmt(0); + State = 1127; Match(GOTO); + State = 1128; whiteSpace(); + State = 1129; valueStmt(0); } break; case RESUME: { - State = 1123; Match(RESUME); - State = 1124; whiteSpace(); - State = 1125; Match(NEXT); + State = 1131; Match(RESUME); + State = 1132; whiteSpace(); + State = 1133; Match(NEXT); } break; default: @@ -5749,42 +5757,42 @@ public OnGoToStmtContext onGoToStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1129; Match(ON); - State = 1130; whiteSpace(); - State = 1131; valueStmt(0); - State = 1132; whiteSpace(); - State = 1133; Match(GOTO); - State = 1134; whiteSpace(); - State = 1135; valueStmt(0); - State = 1146; + State = 1137; Match(ON); + State = 1138; whiteSpace(); + State = 1139; valueStmt(0); + State = 1140; whiteSpace(); + State = 1141; Match(GOTO); + State = 1142; whiteSpace(); + State = 1143; valueStmt(0); + State = 1154; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,129,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1137; + State = 1145; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1136; whiteSpace(); + State = 1144; whiteSpace(); } } - State = 1139; Match(COMMA); - State = 1141; + State = 1147; Match(COMMA); + State = 1149; switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { case 1: { - State = 1140; whiteSpace(); + State = 1148; whiteSpace(); } break; } - State = 1143; valueStmt(0); + State = 1151; valueStmt(0); } } } - State = 1148; + State = 1156; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,129,_ctx); } @@ -5849,42 +5857,42 @@ public OnGoSubStmtContext onGoSubStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1149; Match(ON); - State = 1150; whiteSpace(); - State = 1151; valueStmt(0); - State = 1152; whiteSpace(); - State = 1153; Match(GOSUB); - State = 1154; whiteSpace(); - State = 1155; valueStmt(0); - State = 1166; + State = 1157; Match(ON); + State = 1158; whiteSpace(); + State = 1159; valueStmt(0); + State = 1160; whiteSpace(); + State = 1161; Match(GOSUB); + State = 1162; whiteSpace(); + State = 1163; valueStmt(0); + State = 1174; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,132,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1157; + State = 1165; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1156; whiteSpace(); + State = 1164; whiteSpace(); } } - State = 1159; Match(COMMA); - State = 1161; + State = 1167; Match(COMMA); + State = 1169; switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { case 1: { - State = 1160; whiteSpace(); + State = 1168; whiteSpace(); } break; } - State = 1163; valueStmt(0); + State = 1171; valueStmt(0); } } } - State = 1168; + State = 1176; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,132,_ctx); } @@ -5963,26 +5971,26 @@ public OpenStmtContext openStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1169; Match(OPEN); - State = 1170; whiteSpace(); - State = 1171; valueStmt(0); - State = 1172; whiteSpace(); - State = 1173; Match(FOR); - State = 1174; whiteSpace(); - State = 1175; + State = 1177; Match(OPEN); + State = 1178; whiteSpace(); + State = 1179; valueStmt(0); + State = 1180; whiteSpace(); + State = 1181; Match(FOR); + State = 1182; whiteSpace(); + State = 1183; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 127)) & ~0x3f) == 0 && ((1L << (_la - 127)) & ((1L << (INPUT - 127)) | (1L << (OUTPUT - 127)) | (1L << (RANDOM - 127)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1181; + State = 1189; switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { case 1: { - State = 1176; whiteSpace(); - State = 1177; Match(ACCESS); - State = 1178; whiteSpace(); - State = 1179; + State = 1184; whiteSpace(); + State = 1185; Match(ACCESS); + State = 1186; whiteSpace(); + State = 1187; _la = _input.La(1); if ( !(((((_la - 177)) & ~0x3f) == 0 && ((1L << (_la - 177)) & ((1L << (READ - 177)) | (1L << (READ_WRITE - 177)) | (1L << (WRITE - 177)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -5991,12 +5999,12 @@ public OpenStmtContext openStmt() { } break; } - State = 1186; + State = 1194; switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { case 1: { - State = 1183; whiteSpace(); - State = 1184; + State = 1191; whiteSpace(); + State = 1192; _la = _input.La(1); if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (LOCK_READ - 139)) | (1L << (LOCK_WRITE - 139)) | (1L << (LOCK_READ_WRITE - 139)) | (1L << (SHARED - 139)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -6005,34 +6013,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1188; whiteSpace(); - State = 1189; Match(AS); - State = 1190; whiteSpace(); - State = 1191; fileNumber(); - State = 1203; + State = 1196; whiteSpace(); + State = 1197; Match(AS); + State = 1198; whiteSpace(); + State = 1199; fileNumber(); + State = 1211; switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: { - State = 1192; whiteSpace(); - State = 1193; Match(LEN); - State = 1195; + State = 1200; whiteSpace(); + State = 1201; Match(LEN); + State = 1203; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1194; whiteSpace(); + State = 1202; whiteSpace(); } } - State = 1197; Match(EQ); - State = 1199; + State = 1205; Match(EQ); + State = 1207; switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1198; whiteSpace(); + State = 1206; whiteSpace(); } break; } - State = 1201; valueStmt(0); + State = 1209; valueStmt(0); } break; } @@ -6097,53 +6105,53 @@ public OutputListContext outputList() { int _la; try { int _alt; - State = 1238; + State = 1246; switch ( Interpreter.AdaptivePredict(_input,147,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1205; outputList_Expression(); - State = 1218; + State = 1213; outputList_Expression(); + State = 1226; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,141,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1207; + State = 1215; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1206; whiteSpace(); + State = 1214; whiteSpace(); } } - State = 1209; + State = 1217; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1211; + State = 1219; switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1210; whiteSpace(); + State = 1218; whiteSpace(); } break; } - State = 1214; + State = 1222; switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1213; outputList_Expression(); + State = 1221; outputList_Expression(); } break; } } } } - State = 1220; + State = 1228; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,141,_ctx); } @@ -6153,15 +6161,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1222; + State = 1230; switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { case 1: { - State = 1221; outputList_Expression(); + State = 1229; outputList_Expression(); } break; } - State = 1234; + State = 1242; _errHandler.Sync(this); _alt = 1; do { @@ -6169,33 +6177,33 @@ public OutputListContext outputList() { case 1: { { - State = 1225; + State = 1233; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1224; whiteSpace(); + State = 1232; whiteSpace(); } } - State = 1227; + State = 1235; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1229; + State = 1237; switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { case 1: { - State = 1228; whiteSpace(); + State = 1236; whiteSpace(); } break; } - State = 1232; + State = 1240; switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1231; outputList_Expression(); + State = 1239; outputList_Expression(); } break; } @@ -6205,7 +6213,7 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1236; + State = 1244; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,146,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -6267,55 +6275,55 @@ public OutputList_ExpressionContext outputList_Expression() { EnterRule(_localctx, 122, RULE_outputList_Expression); int _la; try { - State = 1257; + State = 1265; switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1240; valueStmt(0); + State = 1248; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1241; + State = 1249; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1255; + State = 1263; switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1243; + State = 1251; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1242; whiteSpace(); + State = 1250; whiteSpace(); } } - State = 1245; Match(LPAREN); - State = 1247; + State = 1253; Match(LPAREN); + State = 1255; switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { case 1: { - State = 1246; whiteSpace(); + State = 1254; whiteSpace(); } break; } - State = 1249; argsCall(); - State = 1251; + State = 1257; argsCall(); + State = 1259; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1250; whiteSpace(); + State = 1258; whiteSpace(); } } - State = 1253; Match(RPAREN); + State = 1261; Match(RPAREN); } break; } @@ -6377,31 +6385,31 @@ public PrintStmtContext printStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1259; Match(PRINT); - State = 1260; whiteSpace(); - State = 1261; fileNumber(); - State = 1263; + State = 1267; Match(PRINT); + State = 1268; whiteSpace(); + State = 1269; fileNumber(); + State = 1271; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1262; whiteSpace(); + State = 1270; whiteSpace(); } } - State = 1265; Match(COMMA); - State = 1270; + State = 1273; Match(COMMA); + State = 1278; switch ( Interpreter.AdaptivePredict(_input,155,_ctx) ) { case 1: { - State = 1267; + State = 1275; switch ( Interpreter.AdaptivePredict(_input,154,_ctx) ) { case 1: { - State = 1266; whiteSpace(); + State = 1274; whiteSpace(); } break; } - State = 1269; outputList(); + State = 1277; outputList(); } break; } @@ -6477,70 +6485,70 @@ public PropertyGetStmtContext propertyGetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1275; + State = 1283; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1272; visibility(); - State = 1273; whiteSpace(); + State = 1280; visibility(); + State = 1281; whiteSpace(); } } - State = 1279; + State = 1287; _la = _input.La(1); if (_la==STATIC) { { - State = 1277; Match(STATIC); - State = 1278; whiteSpace(); + State = 1285; Match(STATIC); + State = 1286; whiteSpace(); } } - State = 1281; Match(PROPERTY_GET); - State = 1282; whiteSpace(); - State = 1283; identifier(); - State = 1285; + State = 1289; Match(PROPERTY_GET); + State = 1290; whiteSpace(); + State = 1291; identifier(); + State = 1293; switch ( Interpreter.AdaptivePredict(_input,158,_ctx) ) { case 1: { - State = 1284; typeHint(); + State = 1292; typeHint(); } break; } - State = 1291; + State = 1299; switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1288; + State = 1296; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1287; whiteSpace(); + State = 1295; whiteSpace(); } } - State = 1290; argList(); + State = 1298; argList(); } break; } - State = 1296; + State = 1304; switch ( Interpreter.AdaptivePredict(_input,161,_ctx) ) { case 1: { - State = 1293; whiteSpace(); - State = 1294; asTypeClause(); + State = 1301; whiteSpace(); + State = 1302; asTypeClause(); } break; } - State = 1298; endOfStatement(); - State = 1300; + State = 1306; endOfStatement(); + State = 1308; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1299; block(); + State = 1307; block(); } } - State = 1302; Match(END_PROPERTY); + State = 1310; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6607,53 +6615,53 @@ public PropertySetStmtContext propertySetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1307; + State = 1315; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1304; visibility(); - State = 1305; whiteSpace(); + State = 1312; visibility(); + State = 1313; whiteSpace(); } } - State = 1311; + State = 1319; _la = _input.La(1); if (_la==STATIC) { { - State = 1309; Match(STATIC); - State = 1310; whiteSpace(); + State = 1317; Match(STATIC); + State = 1318; whiteSpace(); } } - State = 1313; Match(PROPERTY_SET); - State = 1314; whiteSpace(); - State = 1315; identifier(); - State = 1320; + State = 1321; Match(PROPERTY_SET); + State = 1322; whiteSpace(); + State = 1323; identifier(); + State = 1328; switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1317; + State = 1325; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1316; whiteSpace(); + State = 1324; whiteSpace(); } } - State = 1319; argList(); + State = 1327; argList(); } break; } - State = 1322; endOfStatement(); - State = 1324; + State = 1330; endOfStatement(); + State = 1332; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1323; block(); + State = 1331; block(); } } - State = 1326; Match(END_PROPERTY); + State = 1334; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6720,53 +6728,53 @@ public PropertyLetStmtContext propertyLetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1331; + State = 1339; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1328; visibility(); - State = 1329; whiteSpace(); + State = 1336; visibility(); + State = 1337; whiteSpace(); } } - State = 1335; + State = 1343; _la = _input.La(1); if (_la==STATIC) { { - State = 1333; Match(STATIC); - State = 1334; whiteSpace(); + State = 1341; Match(STATIC); + State = 1342; whiteSpace(); } } - State = 1337; Match(PROPERTY_LET); - State = 1338; whiteSpace(); - State = 1339; identifier(); - State = 1344; + State = 1345; Match(PROPERTY_LET); + State = 1346; whiteSpace(); + State = 1347; identifier(); + State = 1352; switch ( Interpreter.AdaptivePredict(_input,171,_ctx) ) { case 1: { - State = 1341; + State = 1349; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1340; whiteSpace(); + State = 1348; whiteSpace(); } } - State = 1343; argList(); + State = 1351; argList(); } break; } - State = 1346; endOfStatement(); - State = 1348; + State = 1354; endOfStatement(); + State = 1356; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1347; block(); + State = 1355; block(); } } - State = 1350; Match(END_PROPERTY); + State = 1358; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6829,52 +6837,52 @@ public PutStmtContext putStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1352; Match(PUT); - State = 1353; whiteSpace(); - State = 1354; fileNumber(); - State = 1356; + State = 1360; Match(PUT); + State = 1361; whiteSpace(); + State = 1362; fileNumber(); + State = 1364; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1355; whiteSpace(); + State = 1363; whiteSpace(); } } - State = 1358; Match(COMMA); - State = 1360; + State = 1366; Match(COMMA); + State = 1368; switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { case 1: { - State = 1359; whiteSpace(); + State = 1367; whiteSpace(); } break; } - State = 1363; + State = 1371; switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1362; valueStmt(0); + State = 1370; valueStmt(0); } break; } - State = 1366; + State = 1374; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1365; whiteSpace(); + State = 1373; whiteSpace(); } } - State = 1368; Match(COMMA); - State = 1370; + State = 1376; Match(COMMA); + State = 1378; switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1369; whiteSpace(); + State = 1377; whiteSpace(); } break; } - State = 1372; valueStmt(0); + State = 1380; valueStmt(0); } } catch (RecognitionException re) { @@ -6932,47 +6940,47 @@ public RaiseEventStmtContext raiseEventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1374; Match(RAISEEVENT); - State = 1375; whiteSpace(); - State = 1376; identifier(); - State = 1391; + State = 1382; Match(RAISEEVENT); + State = 1383; whiteSpace(); + State = 1384; identifier(); + State = 1399; switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { case 1: { - State = 1378; + State = 1386; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1377; whiteSpace(); + State = 1385; whiteSpace(); } } - State = 1380; Match(LPAREN); - State = 1382; + State = 1388; Match(LPAREN); + State = 1390; switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1381; whiteSpace(); + State = 1389; whiteSpace(); } break; } - State = 1388; + State = 1396; switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1384; argsCall(); - State = 1386; + State = 1392; argsCall(); + State = 1394; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1385; whiteSpace(); + State = 1393; whiteSpace(); } } } break; } - State = 1390; Match(RPAREN); + State = 1398; Match(RPAREN); } break; } @@ -7024,13 +7032,13 @@ public RandomizeStmtContext randomizeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1393; Match(RANDOMIZE); - State = 1397; + State = 1401; Match(RANDOMIZE); + State = 1405; switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { case 1: { - State = 1394; whiteSpace(); - State = 1395; valueStmt(0); + State = 1402; whiteSpace(); + State = 1403; valueStmt(0); } break; } @@ -7095,47 +7103,47 @@ public RedimStmtContext redimStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1399; Match(REDIM); - State = 1400; whiteSpace(); - State = 1403; + State = 1407; Match(REDIM); + State = 1408; whiteSpace(); + State = 1411; switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1401; Match(PRESERVE); - State = 1402; whiteSpace(); + State = 1409; Match(PRESERVE); + State = 1410; whiteSpace(); } break; } - State = 1405; redimSubStmt(); - State = 1416; + State = 1413; redimSubStmt(); + State = 1424; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,187,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1407; + State = 1415; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1406; whiteSpace(); + State = 1414; whiteSpace(); } } - State = 1409; Match(COMMA); - State = 1411; + State = 1417; Match(COMMA); + State = 1419; switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { case 1: { - State = 1410; whiteSpace(); + State = 1418; whiteSpace(); } break; } - State = 1413; redimSubStmt(); + State = 1421; redimSubStmt(); } } } - State = 1418; + State = 1426; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,187,_ctx); } @@ -7198,40 +7206,40 @@ public RedimSubStmtContext redimSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1419; implicitCallStmt_InStmt(); - State = 1421; + State = 1427; implicitCallStmt_InStmt(); + State = 1429; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1420; whiteSpace(); + State = 1428; whiteSpace(); } } - State = 1423; Match(LPAREN); - State = 1425; + State = 1431; Match(LPAREN); + State = 1433; switch ( Interpreter.AdaptivePredict(_input,189,_ctx) ) { case 1: { - State = 1424; whiteSpace(); + State = 1432; whiteSpace(); } break; } - State = 1427; subscripts(); - State = 1429; + State = 1435; subscripts(); + State = 1437; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1428; whiteSpace(); + State = 1436; whiteSpace(); } } - State = 1431; Match(RPAREN); - State = 1435; + State = 1439; Match(RPAREN); + State = 1443; switch ( Interpreter.AdaptivePredict(_input,191,_ctx) ) { case 1: { - State = 1432; whiteSpace(); - State = 1433; asTypeClause(); + State = 1440; whiteSpace(); + State = 1441; asTypeClause(); } break; } @@ -7277,7 +7285,7 @@ public ResetStmtContext resetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1437; Match(RESET); + State = 1445; Match(RESET); } } catch (RecognitionException re) { @@ -7327,25 +7335,131 @@ public ResumeStmtContext resumeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1439; Match(RESUME); - State = 1445; + State = 1447; Match(RESUME); + State = 1453; switch ( Interpreter.AdaptivePredict(_input,193,_ctx) ) { case 1: { - State = 1440; whiteSpace(); - State = 1443; - switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { - case 1: + State = 1448; whiteSpace(); + State = 1451; + switch (_input.La(1)) { + case NEXT: { - State = 1441; Match(NEXT); + State = 1449; Match(NEXT); } break; - - case 2: + case ABS: + case ANY: + case ARRAY: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CDEC: + case CINT: + case CIRCLE: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CURRENCY: + case CVAR: + case CVERR: + case DEBUG: + case DOEVENTS: + case FIX: + case INPUTB: + case INT: + case LBOUND: + case LEN: + case LENB: + case LONGLONG: + case LONGPTR: + case MIDB: + case MIDBTYPESUFFIX: + case MIDTYPESUFFIX: + case PSET: + case SCALE: + case SGN: + case UBOUND: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case AS: + case BEGIN: + case BEEP: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CHDIR: + case CHDRIVE: + case CLASS: + case DATABASE: + case DATE: + case DELETESETTING: + case DOUBLE: + case END_IF: + case EQV: + case FALSE: + case FILECOPY: + case IMP: + case IN: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LONG: + case LIB: + case LIKE: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OPTIONAL: + case OR: + case PARAMARRAY: + case PRESERVE: + case RANDOMIZE: + case REM: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case SINGLE: + case SPC: + case STRING: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPEOF: + case UNLOAD: + case UNTIL: + case VARIANT: + case VERSION: + case WITHEVENTS: + case XOR: + case IDENTIFIER: + case COLLECTION: { - State = 1442; identifier(); + State = 1450; identifier(); } break; + default: + throw new NoViableAltException(this); } } break; @@ -7392,7 +7506,7 @@ public ReturnStmtContext returnStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1447; Match(RETURN); + State = 1455; Match(RETURN); } } catch (RecognitionException re) { @@ -7441,9 +7555,9 @@ public RmdirStmtContext rmdirStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1449; Match(RMDIR); - State = 1450; whiteSpace(); - State = 1451; valueStmt(0); + State = 1457; Match(RMDIR); + State = 1458; whiteSpace(); + State = 1459; valueStmt(0); } } catch (RecognitionException re) { @@ -7500,27 +7614,27 @@ public RsetStmtContext rsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1453; Match(RSET); - State = 1454; whiteSpace(); - State = 1455; implicitCallStmt_InStmt(); - State = 1457; + State = 1461; Match(RSET); + State = 1462; whiteSpace(); + State = 1463; implicitCallStmt_InStmt(); + State = 1465; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1456; whiteSpace(); + State = 1464; whiteSpace(); } } - State = 1459; Match(EQ); - State = 1461; + State = 1467; Match(EQ); + State = 1469; switch ( Interpreter.AdaptivePredict(_input,195,_ctx) ) { case 1: { - State = 1460; whiteSpace(); + State = 1468; whiteSpace(); } break; } - State = 1463; valueStmt(0); + State = 1471; valueStmt(0); } } catch (RecognitionException re) { @@ -7577,27 +7691,27 @@ public SavepictureStmtContext savepictureStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1465; Match(SAVEPICTURE); - State = 1466; whiteSpace(); - State = 1467; valueStmt(0); - State = 1469; + State = 1473; Match(SAVEPICTURE); + State = 1474; whiteSpace(); + State = 1475; valueStmt(0); + State = 1477; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1468; whiteSpace(); + State = 1476; whiteSpace(); } } - State = 1471; Match(COMMA); - State = 1473; + State = 1479; Match(COMMA); + State = 1481; switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1472; whiteSpace(); + State = 1480; whiteSpace(); } break; } - State = 1475; valueStmt(0); + State = 1483; valueStmt(0); } } catch (RecognitionException re) { @@ -7657,63 +7771,63 @@ public SaveSettingStmtContext saveSettingStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1477; Match(SAVESETTING); - State = 1478; whiteSpace(); - State = 1479; valueStmt(0); - State = 1481; + State = 1485; Match(SAVESETTING); + State = 1486; whiteSpace(); + State = 1487; valueStmt(0); + State = 1489; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1480; whiteSpace(); + State = 1488; whiteSpace(); } } - State = 1483; Match(COMMA); - State = 1485; + State = 1491; Match(COMMA); + State = 1493; switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { case 1: { - State = 1484; whiteSpace(); + State = 1492; whiteSpace(); } break; } - State = 1487; valueStmt(0); - State = 1489; + State = 1495; valueStmt(0); + State = 1497; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1488; whiteSpace(); + State = 1496; whiteSpace(); } } - State = 1491; Match(COMMA); - State = 1493; + State = 1499; Match(COMMA); + State = 1501; switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { case 1: { - State = 1492; whiteSpace(); + State = 1500; whiteSpace(); } break; } - State = 1495; valueStmt(0); - State = 1497; + State = 1503; valueStmt(0); + State = 1505; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1496; whiteSpace(); + State = 1504; whiteSpace(); } } - State = 1499; Match(COMMA); - State = 1501; + State = 1507; Match(COMMA); + State = 1509; switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1500; whiteSpace(); + State = 1508; whiteSpace(); } break; } - State = 1503; valueStmt(0); + State = 1511; valueStmt(0); } } catch (RecognitionException re) { @@ -7770,27 +7884,27 @@ public SeekStmtContext seekStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1505; Match(SEEK); - State = 1506; whiteSpace(); - State = 1507; fileNumber(); - State = 1509; + State = 1513; Match(SEEK); + State = 1514; whiteSpace(); + State = 1515; fileNumber(); + State = 1517; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1508; whiteSpace(); + State = 1516; whiteSpace(); } } - State = 1511; Match(COMMA); - State = 1513; + State = 1519; Match(COMMA); + State = 1521; switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1512; whiteSpace(); + State = 1520; whiteSpace(); } break; } - State = 1515; valueStmt(0); + State = 1523; valueStmt(0); } } catch (RecognitionException re) { @@ -7854,26 +7968,26 @@ public SelectCaseStmtContext selectCaseStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1517; Match(SELECT); - State = 1518; whiteSpace(); - State = 1519; Match(CASE); - State = 1520; whiteSpace(); - State = 1521; valueStmt(0); - State = 1522; endOfStatement(); - State = 1526; + State = 1525; Match(SELECT); + State = 1526; whiteSpace(); + State = 1527; Match(CASE); + State = 1528; whiteSpace(); + State = 1529; valueStmt(0); + State = 1530; endOfStatement(); + State = 1534; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1523; sC_Case(); + State = 1531; sC_Case(); } } - State = 1528; + State = 1536; _errHandler.Sync(this); _la = _input.La(1); } - State = 1529; Match(END_SELECT); + State = 1537; Match(END_SELECT); } } catch (RecognitionException re) { @@ -7983,31 +8097,31 @@ public SC_SelectionContext sC_Selection() { EnterRule(_localctx, 160, RULE_sC_Selection); int _la; try { - State = 1548; + State = 1556; switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1531; Match(IS); - State = 1533; + State = 1539; Match(IS); + State = 1541; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1532; whiteSpace(); + State = 1540; whiteSpace(); } } - State = 1535; comparisonOperator(); - State = 1537; + State = 1543; comparisonOperator(); + State = 1545; switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1536; whiteSpace(); + State = 1544; whiteSpace(); } break; } - State = 1539; valueStmt(0); + State = 1547; valueStmt(0); } break; @@ -8015,11 +8129,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1541; valueStmt(0); - State = 1542; whiteSpace(); - State = 1543; Match(TO); - State = 1544; whiteSpace(); - State = 1545; valueStmt(0); + State = 1549; valueStmt(0); + State = 1550; whiteSpace(); + State = 1551; Match(TO); + State = 1552; whiteSpace(); + State = 1553; valueStmt(0); } break; @@ -8027,7 +8141,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1547; valueStmt(0); + State = 1555; valueStmt(0); } break; } @@ -8081,21 +8195,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); EnterRule(_localctx, 162, RULE_sC_Case); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1550; Match(CASE); - State = 1551; whiteSpace(); - State = 1552; sC_Cond(); - State = 1553; endOfStatement(); - State = 1555; - switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { - case 1: + State = 1558; Match(CASE); + State = 1559; whiteSpace(); + State = 1560; sC_Cond(); + State = 1561; endOfStatement(); + State = 1563; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1554; block(); + State = 1562; block(); } - break; } + } } catch (RecognitionException re) { @@ -8178,100 +8293,219 @@ public SC_CondContext sC_Cond() { int _la; try { int _alt; - State = 1572; - switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { - case 1: + State = 1580; + switch (_input.La(1)) { + case ELSE: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1557; Match(ELSE); - } - break; - - case 2: - _localctx = new CaseCondSelectionContext(_localctx); - EnterOuterAlt(_localctx, 2); - { - State = 1558; sC_Selection(); - State = 1569; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,213,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - { - State = 1560; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1559; whiteSpace(); - } - } - - State = 1562; Match(COMMA); - State = 1564; - switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { - case 1: - { - State = 1563; whiteSpace(); - } - break; - } - State = 1566; sC_Selection(); - } - } - } - State = 1571; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,213,_ctx); - } + State = 1565; Match(ELSE); } break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class SendkeysStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public SendkeysStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sendkeysStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterSendkeysStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitSendkeysStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitSendkeysStmt(this); - else return visitor.VisitChildren(this); + case ABS: + case ANY: + case ARRAY: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CDEC: + case CINT: + case CIRCLE: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CURRENCY: + case CVAR: + case CVERR: + case DEBUG: + case DOEVENTS: + case FIX: + case INPUTB: + case INT: + case LBOUND: + case LEN: + case LENB: + case LONGLONG: + case LONGPTR: + case MIDB: + case MIDBTYPESUFFIX: + case MIDTYPESUFFIX: + case PSET: + case SCALE: + case SGN: + case UBOUND: + case EXCLAMATIONPOINT: + case DOT: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case AS: + case BEGIN: + case BEEP: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CHDIR: + case CHDRIVE: + case CLASS: + case DATABASE: + case DATE: + case DELETESETTING: + case DOUBLE: + case EMPTY: + case END_IF: + case EQV: + case FALSE: + case FILECOPY: + case IMP: + case IN: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LONG: + case LIB: + case LIKE: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OPTIONAL: + case OR: + case PARAMARRAY: + case PRESERVE: + case RANDOMIZE: + case REM: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case SINGLE: + case SPC: + case STRING: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPEOF: + case UNLOAD: + case UNTIL: + case VARIANT: + case VERSION: + case WITHEVENTS: + case XOR: + case LPAREN: + case MINUS: + case STRINGLITERAL: + case OCTLITERAL: + case HEXLITERAL: + case FLOATLITERAL: + case INTEGERLITERAL: + case DATELITERAL: + case WS: + case IDENTIFIER: + case LINE_CONTINUATION: + case COLLECTION: + _localctx = new CaseCondSelectionContext(_localctx); + EnterOuterAlt(_localctx, 2); + { + State = 1566; sC_Selection(); + State = 1577; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,213,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 1568; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 1567; whiteSpace(); + } + } + + State = 1570; Match(COMMA); + State = 1572; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + case 1: + { + State = 1571; whiteSpace(); + } + break; + } + State = 1574; sC_Selection(); + } + } + } + State = 1579; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,213,_ctx); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SendkeysStmtContext : ParserRuleContext { + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); + } + public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } + public IReadOnlyList whiteSpace() { + return GetRuleContexts(); + } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); + } + public SendkeysStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_sendkeysStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterSendkeysStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitSendkeysStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSendkeysStmt(this); + else return visitor.VisitChildren(this); } } @@ -8283,31 +8517,31 @@ public SendkeysStmtContext sendkeysStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1574; Match(SENDKEYS); - State = 1575; whiteSpace(); - State = 1576; valueStmt(0); - State = 1585; + State = 1582; Match(SENDKEYS); + State = 1583; whiteSpace(); + State = 1584; valueStmt(0); + State = 1593; switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1578; + State = 1586; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1577; whiteSpace(); + State = 1585; whiteSpace(); } } - State = 1580; Match(COMMA); - State = 1582; + State = 1588; Match(COMMA); + State = 1590; switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1581; whiteSpace(); + State = 1589; whiteSpace(); } break; } - State = 1584; valueStmt(0); + State = 1592; valueStmt(0); } break; } @@ -8367,27 +8601,27 @@ public SetattrStmtContext setattrStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1587; Match(SETATTR); - State = 1588; whiteSpace(); - State = 1589; valueStmt(0); - State = 1591; + State = 1595; Match(SETATTR); + State = 1596; whiteSpace(); + State = 1597; valueStmt(0); + State = 1599; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1590; whiteSpace(); + State = 1598; whiteSpace(); } } - State = 1593; Match(COMMA); - State = 1595; + State = 1601; Match(COMMA); + State = 1603; switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: { - State = 1594; whiteSpace(); + State = 1602; whiteSpace(); } break; } - State = 1597; valueStmt(0); + State = 1605; valueStmt(0); } } catch (RecognitionException re) { @@ -8444,27 +8678,27 @@ public SetStmtContext setStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1599; Match(SET); - State = 1600; whiteSpace(); - State = 1601; implicitCallStmt_InStmt(); - State = 1603; + State = 1607; Match(SET); + State = 1608; whiteSpace(); + State = 1609; implicitCallStmt_InStmt(); + State = 1611; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1602; whiteSpace(); + State = 1610; whiteSpace(); } } - State = 1605; Match(EQ); - State = 1607; + State = 1613; Match(EQ); + State = 1615; switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1606; whiteSpace(); + State = 1614; whiteSpace(); } break; } - State = 1609; valueStmt(0); + State = 1617; valueStmt(0); } } catch (RecognitionException re) { @@ -8507,7 +8741,7 @@ public StopStmtContext stopStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1611; Match(STOP); + State = 1619; Match(STOP); } } catch (RecognitionException re) { @@ -8574,60 +8808,60 @@ public SubStmtContext subStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1616; + State = 1624; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1613; visibility(); - State = 1614; whiteSpace(); + State = 1621; visibility(); + State = 1622; whiteSpace(); } } - State = 1620; + State = 1628; _la = _input.La(1); if (_la==STATIC) { { - State = 1618; Match(STATIC); - State = 1619; whiteSpace(); + State = 1626; Match(STATIC); + State = 1627; whiteSpace(); } } - State = 1622; Match(SUB); - State = 1624; + State = 1630; Match(SUB); + State = 1632; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1623; whiteSpace(); + State = 1631; whiteSpace(); } } - State = 1626; identifier(); - State = 1631; + State = 1634; identifier(); + State = 1639; switch ( Interpreter.AdaptivePredict(_input,226,_ctx) ) { case 1: { - State = 1628; + State = 1636; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1627; whiteSpace(); + State = 1635; whiteSpace(); } } - State = 1630; argList(); + State = 1638; argList(); } break; } - State = 1633; endOfStatement(); - State = 1635; + State = 1641; endOfStatement(); + State = 1643; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1634; block(); + State = 1642; block(); } } - State = 1637; Match(END_SUB); + State = 1645; Match(END_SUB); } } catch (RecognitionException re) { @@ -8681,25 +8915,25 @@ public TimeStmtContext timeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1639; Match(TIME); - State = 1641; + State = 1647; Match(TIME); + State = 1649; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1640; whiteSpace(); + State = 1648; whiteSpace(); } } - State = 1643; Match(EQ); - State = 1645; + State = 1651; Match(EQ); + State = 1653; switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1644; whiteSpace(); + State = 1652; whiteSpace(); } break; } - State = 1647; valueStmt(0); + State = 1655; valueStmt(0); } } catch (RecognitionException re) { @@ -8765,33 +8999,33 @@ public TypeStmtContext typeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1652; + State = 1660; _la = _input.La(1); if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { { - State = 1649; visibility(); - State = 1650; whiteSpace(); + State = 1657; visibility(); + State = 1658; whiteSpace(); } } - State = 1654; Match(TYPE); - State = 1655; whiteSpace(); - State = 1656; identifier(); - State = 1657; endOfStatement(); - State = 1661; + State = 1662; Match(TYPE); + State = 1663; whiteSpace(); + State = 1664; identifier(); + State = 1665; endOfStatement(); + State = 1669; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==COLLECTION) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (IDENTIFIER - 194)))) != 0) || _la==COLLECTION) { { { - State = 1658; typeStmt_Element(); + State = 1666; typeStmt_Element(); } } - State = 1663; + State = 1671; _errHandler.Sync(this); _la = _input.La(1); } - State = 1664; Match(END_TYPE); + State = 1672; Match(END_TYPE); } } catch (RecognitionException re) { @@ -8854,58 +9088,58 @@ public TypeStmt_ElementContext typeStmt_Element() { try { EnterOuterAlt(_localctx, 1); { - State = 1666; identifier(); - State = 1681; + State = 1674; identifier(); + State = 1689; switch ( Interpreter.AdaptivePredict(_input,236,_ctx) ) { case 1: { - State = 1668; + State = 1676; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1667; whiteSpace(); + State = 1675; whiteSpace(); } } - State = 1670; Match(LPAREN); - State = 1675; + State = 1678; Match(LPAREN); + State = 1683; switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { case 1: { - State = 1672; + State = 1680; switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1671; whiteSpace(); + State = 1679; whiteSpace(); } break; } - State = 1674; subscripts(); + State = 1682; subscripts(); } break; } - State = 1678; + State = 1686; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1677; whiteSpace(); + State = 1685; whiteSpace(); } } - State = 1680; Match(RPAREN); + State = 1688; Match(RPAREN); } break; } - State = 1686; + State = 1694; switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1683; whiteSpace(); - State = 1684; asTypeClause(); + State = 1691; whiteSpace(); + State = 1692; asTypeClause(); } break; } - State = 1688; endOfStatement(); + State = 1696; endOfStatement(); } } catch (RecognitionException re) { @@ -8954,9 +9188,9 @@ public UnloadStmtContext unloadStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1690; Match(UNLOAD); - State = 1691; whiteSpace(); - State = 1692; valueStmt(0); + State = 1698; Match(UNLOAD); + State = 1699; whiteSpace(); + State = 1700; valueStmt(0); } } catch (RecognitionException re) { @@ -9017,39 +9251,39 @@ public UnlockStmtContext unlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1694; Match(UNLOCK); - State = 1695; whiteSpace(); - State = 1696; fileNumber(); - State = 1712; + State = 1702; Match(UNLOCK); + State = 1703; whiteSpace(); + State = 1704; fileNumber(); + State = 1720; switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1698; + State = 1706; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1697; whiteSpace(); + State = 1705; whiteSpace(); } } - State = 1700; Match(COMMA); - State = 1702; + State = 1708; Match(COMMA); + State = 1710; switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1701; whiteSpace(); + State = 1709; whiteSpace(); } break; } - State = 1704; valueStmt(0); - State = 1710; + State = 1712; valueStmt(0); + State = 1718; switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { case 1: { - State = 1705; whiteSpace(); - State = 1706; Match(TO); - State = 1707; whiteSpace(); - State = 1708; valueStmt(0); + State = 1713; whiteSpace(); + State = 1714; Match(TO); + State = 1715; whiteSpace(); + State = 1716; valueStmt(0); } break; } @@ -9680,7 +9914,7 @@ private ValueStmtContext valueStmt(int _p) { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1759; + State = 1767; switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { case 1: { @@ -9688,16 +9922,16 @@ private ValueStmtContext valueStmt(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 1715; Match(NEW); - State = 1717; + State = 1723; Match(NEW); + State = 1725; switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { case 1: { - State = 1716; whiteSpace(); + State = 1724; whiteSpace(); } break; } - State = 1719; valueStmt(19); + State = 1727; valueStmt(19); } break; @@ -9706,16 +9940,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1720; Match(ADDRESSOF); - State = 1722; + State = 1728; Match(ADDRESSOF); + State = 1730; switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1721; whiteSpace(); + State = 1729; whiteSpace(); } break; } - State = 1724; valueStmt(16); + State = 1732; valueStmt(16); } break; @@ -9724,25 +9958,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1725; implicitCallStmt_InStmt(); - State = 1727; + State = 1733; implicitCallStmt_InStmt(); + State = 1735; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1726; whiteSpace(); + State = 1734; whiteSpace(); } } - State = 1729; Match(ASSIGN); - State = 1731; + State = 1737; Match(ASSIGN); + State = 1739; switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { case 1: { - State = 1730; whiteSpace(); + State = 1738; whiteSpace(); } break; } - State = 1733; valueStmt(15); + State = 1741; valueStmt(15); } break; @@ -9751,16 +9985,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1735; Match(MINUS); - State = 1737; + State = 1743; Match(MINUS); + State = 1745; switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1736; whiteSpace(); + State = 1744; whiteSpace(); } break; } - State = 1739; valueStmt(13); + State = 1747; valueStmt(13); } break; @@ -9769,16 +10003,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1740; Match(NOT); - State = 1742; + State = 1748; Match(NOT); + State = 1750; switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { case 1: { - State = 1741; whiteSpace(); + State = 1749; whiteSpace(); } break; } - State = 1744; valueStmt(6); + State = 1752; valueStmt(6); } break; @@ -9787,7 +10021,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1745; literal(); + State = 1753; literal(); } break; @@ -9796,7 +10030,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1746; implicitCallStmt_InStmt(); + State = 1754; implicitCallStmt_InStmt(); } break; @@ -9805,25 +10039,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1747; Match(LPAREN); - State = 1749; + State = 1755; Match(LPAREN); + State = 1757; switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1748; whiteSpace(); + State = 1756; whiteSpace(); } break; } - State = 1751; valueStmt(0); - State = 1753; + State = 1759; valueStmt(0); + State = 1761; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1752; whiteSpace(); + State = 1760; whiteSpace(); } } - State = 1755; Match(RPAREN); + State = 1763; Match(RPAREN); } break; @@ -9832,7 +10066,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1757; typeOfIsExpression(); + State = 1765; typeOfIsExpression(); } break; @@ -9841,12 +10075,12 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1758; midStmt(); + State = 1766; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1871; + State = 1879; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,276,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -9854,32 +10088,32 @@ private ValueStmtContext valueStmt(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1869; + State = 1877; switch ( Interpreter.AdaptivePredict(_input,275,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1761; + State = 1769; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1763; + State = 1771; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1762; whiteSpace(); + State = 1770; whiteSpace(); } } - State = 1765; Match(POW); - State = 1767; + State = 1773; Match(POW); + State = 1775; switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { case 1: { - State = 1766; whiteSpace(); + State = 1774; whiteSpace(); } break; } - State = 1769; valueStmt(15); + State = 1777; valueStmt(15); } break; @@ -9887,31 +10121,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1770; + State = 1778; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1772; + State = 1780; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1771; whiteSpace(); + State = 1779; whiteSpace(); } } - State = 1774; + State = 1782; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1776; + State = 1784; switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { case 1: { - State = 1775; whiteSpace(); + State = 1783; whiteSpace(); } break; } - State = 1778; valueStmt(13); + State = 1786; valueStmt(13); } break; @@ -9919,26 +10153,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1779; + State = 1787; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1781; + State = 1789; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1780; whiteSpace(); + State = 1788; whiteSpace(); } } - State = 1783; Match(INTDIV); - State = 1785; + State = 1791; Match(INTDIV); + State = 1793; switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1784; whiteSpace(); + State = 1792; whiteSpace(); } break; } - State = 1787; valueStmt(12); + State = 1795; valueStmt(12); } break; @@ -9946,26 +10180,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1788; + State = 1796; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1790; + State = 1798; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1789; whiteSpace(); + State = 1797; whiteSpace(); } } - State = 1792; Match(MOD); - State = 1794; + State = 1800; Match(MOD); + State = 1802; switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1793; whiteSpace(); + State = 1801; whiteSpace(); } break; } - State = 1796; valueStmt(11); + State = 1804; valueStmt(11); } break; @@ -9973,31 +10207,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1797; + State = 1805; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1799; + State = 1807; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1798; whiteSpace(); + State = 1806; whiteSpace(); } } - State = 1801; + State = 1809; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1803; + State = 1811; switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { case 1: { - State = 1802; whiteSpace(); + State = 1810; whiteSpace(); } break; } - State = 1805; valueStmt(10); + State = 1813; valueStmt(10); } break; @@ -10005,26 +10239,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1806; + State = 1814; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1808; + State = 1816; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1807; whiteSpace(); + State = 1815; whiteSpace(); } } - State = 1810; Match(AMPERSAND); - State = 1812; + State = 1818; Match(AMPERSAND); + State = 1820; switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1811; whiteSpace(); + State = 1819; whiteSpace(); } break; } - State = 1814; valueStmt(9); + State = 1822; valueStmt(9); } break; @@ -10032,31 +10266,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1815; + State = 1823; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1817; + State = 1825; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1816; whiteSpace(); + State = 1824; whiteSpace(); } } - State = 1819; + State = 1827; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1821; + State = 1829; switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { case 1: { - State = 1820; whiteSpace(); + State = 1828; whiteSpace(); } break; } - State = 1823; valueStmt(8); + State = 1831; valueStmt(8); } break; @@ -10064,26 +10298,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1824; + State = 1832; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1826; + State = 1834; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1825; whiteSpace(); + State = 1833; whiteSpace(); } } - State = 1828; Match(AND); - State = 1830; + State = 1836; Match(AND); + State = 1838; switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1829; whiteSpace(); + State = 1837; whiteSpace(); } break; } - State = 1832; valueStmt(6); + State = 1840; valueStmt(6); } break; @@ -10091,26 +10325,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1833; + State = 1841; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1835; + State = 1843; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1834; whiteSpace(); + State = 1842; whiteSpace(); } } - State = 1837; Match(OR); - State = 1839; + State = 1845; Match(OR); + State = 1847; switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1838; whiteSpace(); + State = 1846; whiteSpace(); } break; } - State = 1841; valueStmt(5); + State = 1849; valueStmt(5); } break; @@ -10118,26 +10352,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1842; + State = 1850; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1844; + State = 1852; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1843; whiteSpace(); + State = 1851; whiteSpace(); } } - State = 1846; Match(XOR); - State = 1848; + State = 1854; Match(XOR); + State = 1856; switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { case 1: { - State = 1847; whiteSpace(); + State = 1855; whiteSpace(); } break; } - State = 1850; valueStmt(4); + State = 1858; valueStmt(4); } break; @@ -10145,26 +10379,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1851; + State = 1859; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1853; + State = 1861; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1852; whiteSpace(); + State = 1860; whiteSpace(); } } - State = 1855; Match(EQV); - State = 1857; + State = 1863; Match(EQV); + State = 1865; switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { case 1: { - State = 1856; whiteSpace(); + State = 1864; whiteSpace(); } break; } - State = 1859; valueStmt(3); + State = 1867; valueStmt(3); } break; @@ -10172,32 +10406,32 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1860; + State = 1868; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1862; + State = 1870; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1861; whiteSpace(); + State = 1869; whiteSpace(); } } - State = 1864; Match(IMP); - State = 1866; + State = 1872; Match(IMP); + State = 1874; switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { case 1: { - State = 1865; whiteSpace(); + State = 1873; whiteSpace(); } break; } - State = 1868; valueStmt(2); + State = 1876; valueStmt(2); } break; } } } - State = 1873; + State = 1881; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,276,_ctx); } @@ -10256,17 +10490,17 @@ public TypeOfIsExpressionContext typeOfIsExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1874; Match(TYPEOF); - State = 1875; whiteSpace(); - State = 1876; valueStmt(0); - State = 1882; + State = 1882; Match(TYPEOF); + State = 1883; whiteSpace(); + State = 1884; valueStmt(0); + State = 1890; switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { case 1: { - State = 1877; whiteSpace(); - State = 1878; Match(IS); - State = 1879; whiteSpace(); - State = 1880; type(); + State = 1885; whiteSpace(); + State = 1886; Match(IS); + State = 1887; whiteSpace(); + State = 1888; type(); } break; } @@ -10326,16 +10560,16 @@ public VariableStmtContext variableStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1887; + State = 1895; switch (_input.La(1)) { case DIM: { - State = 1884; Match(DIM); + State = 1892; Match(DIM); } break; case STATIC: { - State = 1885; Match(STATIC); + State = 1893; Match(STATIC); } break; case FRIEND: @@ -10343,23 +10577,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1886; visibility(); + State = 1894; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1889; whiteSpace(); - State = 1892; + State = 1897; whiteSpace(); + State = 1900; switch ( Interpreter.AdaptivePredict(_input,279,_ctx) ) { case 1: { - State = 1890; Match(WITHEVENTS); - State = 1891; whiteSpace(); + State = 1898; Match(WITHEVENTS); + State = 1899; whiteSpace(); } break; } - State = 1894; variableListStmt(); + State = 1902; variableListStmt(); } } catch (RecognitionException re) { @@ -10419,36 +10653,36 @@ public VariableListStmtContext variableListStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1896; variableSubStmt(); - State = 1907; + State = 1904; variableSubStmt(); + State = 1915; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1898; + State = 1906; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1897; whiteSpace(); + State = 1905; whiteSpace(); } } - State = 1900; Match(COMMA); - State = 1902; + State = 1908; Match(COMMA); + State = 1910; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1901; whiteSpace(); + State = 1909; whiteSpace(); } } - State = 1904; variableSubStmt(); + State = 1912; variableSubStmt(); } } } - State = 1909; + State = 1917; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); } @@ -10514,70 +10748,70 @@ public VariableSubStmtContext variableSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1910; identifier(); - State = 1928; + State = 1918; identifier(); + State = 1936; switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 1912; + State = 1920; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1911; whiteSpace(); + State = 1919; whiteSpace(); } } - State = 1914; Match(LPAREN); - State = 1916; + State = 1922; Match(LPAREN); + State = 1924; switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: { - State = 1915; whiteSpace(); + State = 1923; whiteSpace(); } break; } - State = 1922; + State = 1930; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (EMPTY - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (LPAREN - 194)) | (1L << (MINUS - 194)) | (1L << (STRINGLITERAL - 194)) | (1L << (OCTLITERAL - 194)) | (1L << (HEXLITERAL - 194)) | (1L << (FLOATLITERAL - 194)) | (1L << (INTEGERLITERAL - 194)) | (1L << (DATELITERAL - 194)) | (1L << (WS - 194)) | (1L << (IDENTIFIER - 194)) | (1L << (LINE_CONTINUATION - 194)))) != 0) || _la==COLLECTION) { { - State = 1918; subscripts(); - State = 1920; + State = 1926; subscripts(); + State = 1928; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1919; whiteSpace(); + State = 1927; whiteSpace(); } } } } - State = 1924; Match(RPAREN); - State = 1926; + State = 1932; Match(RPAREN); + State = 1934; switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { case 1: { - State = 1925; whiteSpace(); + State = 1933; whiteSpace(); } break; } } break; } - State = 1931; + State = 1939; switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { case 1: { - State = 1930; typeHint(); + State = 1938; typeHint(); } break; } - State = 1936; + State = 1944; switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { case 1: { - State = 1933; whiteSpace(); - State = 1934; asTypeClause(); + State = 1941; whiteSpace(); + State = 1942; asTypeClause(); } break; } @@ -10633,22 +10867,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); EnterRule(_localctx, 196, RULE_whileWendStmt); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1938; Match(WHILE); - State = 1939; whiteSpace(); - State = 1940; valueStmt(0); - State = 1941; endOfStatement(); - State = 1943; - switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { - case 1: + State = 1946; Match(WHILE); + State = 1947; whiteSpace(); + State = 1948; valueStmt(0); + State = 1949; endOfStatement(); + State = 1951; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1942; block(); + State = 1950; block(); } - break; } - State = 1945; Match(WEND); + + State = 1953; Match(WEND); } } catch (RecognitionException re) { @@ -10705,27 +10940,27 @@ public WidthStmtContext widthStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1947; Match(WIDTH); - State = 1948; whiteSpace(); - State = 1949; fileNumber(); - State = 1951; + State = 1955; Match(WIDTH); + State = 1956; whiteSpace(); + State = 1957; fileNumber(); + State = 1959; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1950; whiteSpace(); + State = 1958; whiteSpace(); } } - State = 1953; Match(COMMA); - State = 1955; + State = 1961; Match(COMMA); + State = 1963; switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { case 1: { - State = 1954; whiteSpace(); + State = 1962; whiteSpace(); } break; } - State = 1957; valueStmt(0); + State = 1965; valueStmt(0); } } catch (RecognitionException re) { @@ -10782,19 +11017,19 @@ public WithStmtContext withStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1959; Match(WITH); - State = 1960; whiteSpace(); - State = 1961; withStmtExpression(); - State = 1962; endOfStatement(); - State = 1964; + State = 1967; Match(WITH); + State = 1968; whiteSpace(); + State = 1969; withStmtExpression(); + State = 1970; endOfStatement(); + State = 1972; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { { - State = 1963; block(); + State = 1971; block(); } } - State = 1966; Match(END_WITH); + State = 1974; Match(END_WITH); } } catch (RecognitionException re) { @@ -10839,7 +11074,7 @@ public WithStmtExpressionContext withStmtExpression() { try { EnterOuterAlt(_localctx, 1); { - State = 1968; valueStmt(0); + State = 1976; valueStmt(0); } } catch (RecognitionException re) { @@ -10896,31 +11131,31 @@ public WriteStmtContext writeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1970; Match(WRITE); - State = 1971; whiteSpace(); - State = 1972; fileNumber(); - State = 1974; + State = 1978; Match(WRITE); + State = 1979; whiteSpace(); + State = 1980; fileNumber(); + State = 1982; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1973; whiteSpace(); + State = 1981; whiteSpace(); } } - State = 1976; Match(COMMA); - State = 1981; + State = 1984; Match(COMMA); + State = 1989; switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: { - State = 1978; + State = 1986; switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { case 1: { - State = 1977; whiteSpace(); + State = 1985; whiteSpace(); } break; } - State = 1980; outputList(); + State = 1988; outputList(); } break; } @@ -10970,15 +11205,15 @@ public FileNumberContext fileNumber() { try { EnterOuterAlt(_localctx, 1); { - State = 1984; + State = 1992; _la = _input.La(1); if (_la==HASH) { { - State = 1983; Match(HASH); + State = 1991; Match(HASH); } } - State = 1986; valueStmt(0); + State = 1994; valueStmt(0); } } catch (RecognitionException re) { @@ -11027,9 +11262,9 @@ public ExplicitCallStmtContext explicitCallStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1988; Match(CALL); - State = 1989; whiteSpace(); - State = 1990; explicitCallStmtExpression(); + State = 1996; Match(CALL); + State = 1997; whiteSpace(); + State = 1998; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -11157,86 +11392,86 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { int _la; try { int _alt; - State = 2058; + State = 2066; switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1993; + State = 2001; switch ( Interpreter.AdaptivePredict(_input,299,_ctx) ) { case 1: { - State = 1992; implicitCallStmt_InStmt(); + State = 2000; implicitCallStmt_InStmt(); } break; } - State = 1995; Match(DOT); - State = 1996; identifier(); - State = 1998; + State = 2003; Match(DOT); + State = 2004; identifier(); + State = 2006; switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 1997; typeHint(); + State = 2005; typeHint(); } break; } - State = 2013; + State = 2021; switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { case 1: { - State = 2001; + State = 2009; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2000; whiteSpace(); + State = 2008; whiteSpace(); } } - State = 2003; Match(LPAREN); - State = 2005; + State = 2011; Match(LPAREN); + State = 2013; switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { case 1: { - State = 2004; whiteSpace(); + State = 2012; whiteSpace(); } break; } - State = 2007; argsCall(); - State = 2009; + State = 2015; argsCall(); + State = 2017; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2008; whiteSpace(); + State = 2016; whiteSpace(); } } - State = 2011; Match(RPAREN); + State = 2019; Match(RPAREN); } break; } - State = 2024; + State = 2032; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,306,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2016; + State = 2024; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2015; whiteSpace(); + State = 2023; whiteSpace(); } } - State = 2018; Match(LPAREN); - State = 2019; subscripts(); - State = 2020; Match(RPAREN); + State = 2026; Match(LPAREN); + State = 2027; subscripts(); + State = 2028; Match(RPAREN); } } } - State = 2026; + State = 2034; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,306,_ctx); } @@ -11247,71 +11482,71 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 2027; identifier(); - State = 2029; + State = 2035; identifier(); + State = 2037; switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { case 1: { - State = 2028; typeHint(); + State = 2036; typeHint(); } break; } - State = 2044; + State = 2052; switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { case 1: { - State = 2032; + State = 2040; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2031; whiteSpace(); + State = 2039; whiteSpace(); } } - State = 2034; Match(LPAREN); - State = 2036; + State = 2042; Match(LPAREN); + State = 2044; switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { case 1: { - State = 2035; whiteSpace(); + State = 2043; whiteSpace(); } break; } - State = 2038; argsCall(); - State = 2040; + State = 2046; argsCall(); + State = 2048; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2039; whiteSpace(); + State = 2047; whiteSpace(); } } - State = 2042; Match(RPAREN); + State = 2050; Match(RPAREN); } break; } - State = 2055; + State = 2063; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,313,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2047; + State = 2055; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2046; whiteSpace(); + State = 2054; whiteSpace(); } } - State = 2049; Match(LPAREN); - State = 2050; subscripts(); - State = 2051; Match(RPAREN); + State = 2057; Match(LPAREN); + State = 2058; subscripts(); + State = 2059; Match(RPAREN); } } } - State = 2057; + State = 2065; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,313,_ctx); } @@ -11362,19 +11597,19 @@ public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); try { - State = 2062; + State = 2070; switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2060; iCS_B_MemberProcedureCall(); + State = 2068; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2061; iCS_B_ProcedureCall(); + State = 2069; iCS_B_ProcedureCall(); } break; } @@ -11456,87 +11691,87 @@ public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2065; + State = 2073; switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { case 1: { - State = 2064; implicitCallStmt_InStmt(); + State = 2072; implicitCallStmt_InStmt(); } break; } - State = 2068; + State = 2076; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2067; whiteSpace(); + State = 2075; whiteSpace(); } } - State = 2070; Match(DOT); - State = 2072; + State = 2078; Match(DOT); + State = 2080; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2071; whiteSpace(); + State = 2079; whiteSpace(); } } - State = 2074; identifier(); - State = 2076; + State = 2082; identifier(); + State = 2084; switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { case 1: { - State = 2075; typeHint(); + State = 2083; typeHint(); } break; } - State = 2081; + State = 2089; switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { case 1: { - State = 2078; whiteSpace(); - State = 2079; argsCall(); + State = 2086; whiteSpace(); + State = 2087; argsCall(); } break; } - State = 2087; + State = 2095; switch ( Interpreter.AdaptivePredict(_input,322,_ctx) ) { case 1: { - State = 2084; + State = 2092; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2083; whiteSpace(); + State = 2091; whiteSpace(); } } - State = 2086; dictionaryCallStmt(); + State = 2094; dictionaryCallStmt(); } break; } - State = 2098; + State = 2106; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,324,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2090; + State = 2098; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2089; whiteSpace(); + State = 2097; whiteSpace(); } } - State = 2092; Match(LPAREN); - State = 2093; subscripts(); - State = 2094; Match(RPAREN); + State = 2100; Match(LPAREN); + State = 2101; subscripts(); + State = 2102; Match(RPAREN); } } } - State = 2100; + State = 2108; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,324,_ctx); } @@ -11609,38 +11844,38 @@ public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2101; identifier(); - State = 2105; + State = 2109; identifier(); + State = 2113; switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 2102; whiteSpace(); - State = 2103; argsCall(); + State = 2110; whiteSpace(); + State = 2111; argsCall(); } break; } - State = 2116; + State = 2124; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2108; + State = 2116; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2107; whiteSpace(); + State = 2115; whiteSpace(); } } - State = 2110; Match(LPAREN); - State = 2111; subscripts(); - State = 2112; Match(RPAREN); + State = 2118; Match(LPAREN); + State = 2119; subscripts(); + State = 2120; Match(RPAREN); } } } - State = 2118; + State = 2126; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); } @@ -11695,33 +11930,33 @@ public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); try { - State = 2123; + State = 2131; switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2119; iCS_S_MembersCall(); + State = 2127; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2120; iCS_S_VariableOrProcedureCall(); + State = 2128; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2121; iCS_S_ProcedureOrArrayCall(); + State = 2129; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2122; iCS_S_DictionaryCall(); + State = 2130; iCS_S_DictionaryCall(); } break; } @@ -11796,53 +12031,53 @@ public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2125; identifier(); - State = 2127; + State = 2133; identifier(); + State = 2135; switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2126; typeHint(); + State = 2134; typeHint(); } break; } - State = 2133; + State = 2141; switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { case 1: { - State = 2130; + State = 2138; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2129; whiteSpace(); + State = 2137; whiteSpace(); } } - State = 2132; dictionaryCallStmt(); + State = 2140; dictionaryCallStmt(); } break; } - State = 2144; + State = 2152; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,333,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2136; + State = 2144; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2135; whiteSpace(); + State = 2143; whiteSpace(); } } - State = 2138; Match(LPAREN); - State = 2139; subscripts(); - State = 2140; Match(RPAREN); + State = 2146; Match(LPAREN); + State = 2147; subscripts(); + State = 2148; Match(RPAREN); } } } - State = 2146; + State = 2154; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,333,_ctx); } @@ -11924,100 +12159,100 @@ public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2149; + State = 2157; switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { case 1: { - State = 2147; identifier(); + State = 2155; identifier(); } break; case 2: { - State = 2148; baseType(); + State = 2156; baseType(); } break; } - State = 2152; + State = 2160; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2151; typeHint(); + State = 2159; typeHint(); } } - State = 2155; + State = 2163; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2154; whiteSpace(); + State = 2162; whiteSpace(); } } - State = 2157; Match(LPAREN); - State = 2159; + State = 2165; Match(LPAREN); + State = 2167; switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { case 1: { - State = 2158; whiteSpace(); + State = 2166; whiteSpace(); } break; } - State = 2165; + State = 2173; switch ( Interpreter.AdaptivePredict(_input,339,_ctx) ) { case 1: { - State = 2161; argsCall(); - State = 2163; + State = 2169; argsCall(); + State = 2171; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2162; whiteSpace(); + State = 2170; whiteSpace(); } } } break; } - State = 2167; Match(RPAREN); - State = 2172; + State = 2175; Match(RPAREN); + State = 2180; switch ( Interpreter.AdaptivePredict(_input,341,_ctx) ) { case 1: { - State = 2169; + State = 2177; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2168; whiteSpace(); + State = 2176; whiteSpace(); } } - State = 2171; dictionaryCallStmt(); + State = 2179; dictionaryCallStmt(); } break; } - State = 2183; + State = 2191; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,343,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2175; + State = 2183; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2174; whiteSpace(); + State = 2182; whiteSpace(); } } - State = 2177; Match(LPAREN); - State = 2178; subscripts(); - State = 2179; Match(RPAREN); + State = 2185; Match(LPAREN); + State = 2186; subscripts(); + State = 2187; Match(RPAREN); } } } - State = 2185; + State = 2193; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,343,_ctx); } @@ -12034,33 +12269,330 @@ public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { return _localctx; } - public partial class ICS_S_MembersCallContext : ParserRuleContext { - public ICS_S_MemberCallContext iCS_S_MemberCall(int i) { - return GetRuleContext(i); + public partial class ICS_S_VariableOrProcedureCallUnrestrictedContext : ParserRuleContext { + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } public SubscriptsContext subscripts(int i) { return GetRuleContext(i); } - public IReadOnlyList iCS_S_MemberCall() { - return GetRuleContexts(); - } public DictionaryCallStmtContext dictionaryCallStmt() { return GetRuleContext(0); } - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { - return GetRuleContext(0); + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); } - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { - return GetRuleContext(0); + public ICS_S_VariableOrProcedureCallUnrestrictedContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { } - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); + public override int RuleIndex { get { return RULE_iCS_S_VariableOrProcedureCallUnrestricted; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterICS_S_VariableOrProcedureCallUnrestricted(this); } - public ITerminalNode RPAREN(int i) { + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitICS_S_VariableOrProcedureCallUnrestricted(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_VariableOrProcedureCallUnrestricted(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_VariableOrProcedureCallUnrestrictedContext iCS_S_VariableOrProcedureCallUnrestricted() { + ICS_S_VariableOrProcedureCallUnrestrictedContext _localctx = new ICS_S_VariableOrProcedureCallUnrestrictedContext(_ctx, State); + EnterRule(_localctx, 224, RULE_iCS_S_VariableOrProcedureCallUnrestricted); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2194; unrestrictedIdentifier(); + State = 2196; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + case 1: + { + State = 2195; typeHint(); + } + break; + } + State = 2202; + switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + case 1: + { + State = 2199; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2198; whiteSpace(); + } + } + + State = 2201; dictionaryCallStmt(); + } + break; + } + State = 2213; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2205; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2204; whiteSpace(); + } + } + + State = 2207; Match(LPAREN); + State = 2208; subscripts(); + State = 2209; Match(RPAREN); + } + } + } + State = 2215; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_ProcedureOrArrayCallUnrestrictedContext : ParserRuleContext { + public IReadOnlyList whiteSpace() { + return GetRuleContexts(); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public ArgsCallContext argsCall() { + return GetRuleContext(0); + } + public BaseTypeContext baseType() { + return GetRuleContext(0); + } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); + } + public ITerminalNode RPAREN(int i) { + return GetToken(VBAParser.RPAREN, i); + } + public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } + public TypeHintContext typeHint() { + return GetRuleContext(0); + } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } + public IReadOnlyList subscripts() { + return GetRuleContexts(); + } + public ITerminalNode LPAREN(int i) { + return GetToken(VBAParser.LPAREN, i); + } + public ICS_S_ProcedureOrArrayCallUnrestrictedContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_iCS_S_ProcedureOrArrayCallUnrestricted; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterICS_S_ProcedureOrArrayCallUnrestricted(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitICS_S_ProcedureOrArrayCallUnrestricted(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitICS_S_ProcedureOrArrayCallUnrestricted(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public ICS_S_ProcedureOrArrayCallUnrestrictedContext iCS_S_ProcedureOrArrayCallUnrestricted() { + ICS_S_ProcedureOrArrayCallUnrestrictedContext _localctx = new ICS_S_ProcedureOrArrayCallUnrestrictedContext(_ctx, State); + EnterRule(_localctx, 226, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); + int _la; + try { + int _alt; + EnterOuterAlt(_localctx, 1); + { + State = 2218; + switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { + case 1: + { + State = 2216; unrestrictedIdentifier(); + } + break; + + case 2: + { + State = 2217; baseType(); + } + break; + } + State = 2221; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { + { + State = 2220; typeHint(); + } + } + + State = 2224; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2223; whiteSpace(); + } + } + + State = 2226; Match(LPAREN); + State = 2228; + switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + case 1: + { + State = 2227; whiteSpace(); + } + break; + } + State = 2234; + switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + case 1: + { + State = 2230; argsCall(); + State = 2232; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2231; whiteSpace(); + } + } + + } + break; + } + State = 2236; Match(RPAREN); + State = 2241; + switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { + case 1: + { + State = 2238; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2237; whiteSpace(); + } + } + + State = 2240; dictionaryCallStmt(); + } + break; + } + State = 2252; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,358,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 2244; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 2243; whiteSpace(); + } + } + + State = 2246; Match(LPAREN); + State = 2247; subscripts(); + State = 2248; Match(RPAREN); + } + } + } + State = 2254; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,358,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class ICS_S_MembersCallContext : ParserRuleContext { + public ICS_S_MemberCallContext iCS_S_MemberCall(int i) { + return GetRuleContext(i); + } + public IReadOnlyList whiteSpace() { + return GetRuleContexts(); + } + public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } + public SubscriptsContext subscripts(int i) { + return GetRuleContext(i); + } + public IReadOnlyList iCS_S_MemberCall() { + return GetRuleContexts(); + } + public DictionaryCallStmtContext dictionaryCallStmt() { + return GetRuleContext(0); + } + public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { + return GetRuleContext(0); + } + public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { + return GetRuleContext(0); + } + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); + } + public ITerminalNode RPAREN(int i) { return GetToken(VBAParser.RPAREN, i); } public IReadOnlyList LPAREN() { return GetTokens(VBAParser.LPAREN); } @@ -12093,27 +12625,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 224, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 228, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2188; - switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + State = 2257; + switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2186; iCS_S_VariableOrProcedureCall(); + State = 2255; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2187; iCS_S_ProcedureOrArrayCall(); + State = 2256; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2194; + State = 2263; _errHandler.Sync(this); _alt = 1; do { @@ -12121,12 +12653,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2190; iCS_S_MemberCall(); - State = 2192; - switch ( Interpreter.AdaptivePredict(_input,345,_ctx) ) { + State = 2259; iCS_S_MemberCall(); + State = 2261; + switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { case 1: { - State = 2191; whiteSpace(); + State = 2260; whiteSpace(); } break; } @@ -12136,50 +12668,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2196; + State = 2265; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,346,_ctx); + _alt = Interpreter.AdaptivePredict(_input,361,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2202; - switch ( Interpreter.AdaptivePredict(_input,348,_ctx) ) { + State = 2271; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2199; + State = 2268; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2198; whiteSpace(); + State = 2267; whiteSpace(); } } - State = 2201; dictionaryCallStmt(); + State = 2270; dictionaryCallStmt(); } break; } - State = 2213; + State = 2282; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,350,_ctx); + _alt = Interpreter.AdaptivePredict(_input,365,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2205; + State = 2274; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2204; whiteSpace(); + State = 2273; whiteSpace(); } } - State = 2207; Match(LPAREN); - State = 2208; subscripts(); - State = 2209; Match(RPAREN); + State = 2276; Match(LPAREN); + State = 2277; subscripts(); + State = 2278; Match(RPAREN); } } } - State = 2215; + State = 2284; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,350,_ctx); + _alt = Interpreter.AdaptivePredict(_input,365,_ctx); } } } @@ -12196,16 +12728,16 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { public partial class ICS_S_MemberCallContext : ParserRuleContext { public ITerminalNode DOT() { return GetToken(VBAParser.DOT, 0); } + public ICS_S_ProcedureOrArrayCallUnrestrictedContext iCS_S_ProcedureOrArrayCallUnrestricted() { + return GetRuleContext(0); + } + public ICS_S_VariableOrProcedureCallUnrestrictedContext iCS_S_VariableOrProcedureCallUnrestricted() { + return GetRuleContext(0); + } public ITerminalNode EXCLAMATIONPOINT() { return GetToken(VBAParser.EXCLAMATIONPOINT, 0); } public WhiteSpaceContext whiteSpace() { return GetRuleContext(0); } - public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { - return GetRuleContext(0); - } - public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { - return GetRuleContext(0); - } public ICS_S_MemberCallContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -12229,36 +12761,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 230, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2216; + State = 2285; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2218; + State = 2287; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2217; whiteSpace(); + State = 2286; whiteSpace(); } } - State = 2222; - switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + State = 2291; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2220; iCS_S_VariableOrProcedureCall(); + State = 2289; iCS_S_VariableOrProcedureCallUnrestricted(); } break; case 2: { - State = 2221; iCS_S_ProcedureOrArrayCall(); + State = 2290; iCS_S_ProcedureOrArrayCallUnrestricted(); } break; } @@ -12305,20 +12837,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 232, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2225; + State = 2294; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2224; whiteSpace(); + State = 2293; whiteSpace(); } } - State = 2227; dictionaryCallStmt(); + State = 2296; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12376,100 +12908,100 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 230, RULE_argsCall); + EnterRule(_localctx, 234, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2241; + State = 2310; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,357,_ctx); + _alt = Interpreter.AdaptivePredict(_input,372,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2230; - switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + State = 2299; + switch ( Interpreter.AdaptivePredict(_input,369,_ctx) ) { case 1: { - State = 2229; argCall(); + State = 2298; argCall(); } break; } - State = 2233; + State = 2302; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2232; whiteSpace(); + State = 2301; whiteSpace(); } } - State = 2235; + State = 2304; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2237; - switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { + State = 2306; + switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { case 1: { - State = 2236; whiteSpace(); + State = 2305; whiteSpace(); } break; } } } } - State = 2243; + State = 2312; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,357,_ctx); + _alt = Interpreter.AdaptivePredict(_input,372,_ctx); } - State = 2244; argCall(); - State = 2257; + State = 2313; argCall(); + State = 2326; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,361,_ctx); + _alt = Interpreter.AdaptivePredict(_input,376,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2246; + State = 2315; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2245; whiteSpace(); + State = 2314; whiteSpace(); } } - State = 2248; + State = 2317; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2250; - switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { + State = 2319; + switch ( Interpreter.AdaptivePredict(_input,374,_ctx) ) { case 1: { - State = 2249; whiteSpace(); + State = 2318; whiteSpace(); } break; } - State = 2253; - switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { + State = 2322; + switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { case 1: { - State = 2252; argCall(); + State = 2321; argCall(); } break; } } } } - State = 2259; + State = 2328; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,361,_ctx); + _alt = Interpreter.AdaptivePredict(_input,376,_ctx); } } } @@ -12519,42 +13051,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_argCall); + EnterRule(_localctx, 236, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2261; - switch ( Interpreter.AdaptivePredict(_input,362,_ctx) ) { + State = 2330; + switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { case 1: { - State = 2260; Match(LPAREN); + State = 2329; Match(LPAREN); } break; } - State = 2265; - switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + State = 2334; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2263; + State = 2332; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2264; whiteSpace(); + State = 2333; whiteSpace(); } break; } - State = 2268; + State = 2337; _la = _input.La(1); if (_la==RPAREN) { { - State = 2267; Match(RPAREN); + State = 2336; Match(RPAREN); } } - State = 2270; valueStmt(0); + State = 2339; valueStmt(0); } } catch (RecognitionException re) { @@ -12573,12 +13105,12 @@ public TypeHintContext typeHint() { return GetRuleContext(0); } public ITerminalNode EXCLAMATIONPOINT() { return GetToken(VBAParser.EXCLAMATIONPOINT, 0); } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } public WhiteSpaceContext whiteSpace() { return GetRuleContext(0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public DictionaryCallStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -12602,26 +13134,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 234, RULE_dictionaryCallStmt); + EnterRule(_localctx, 238, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2272; Match(EXCLAMATIONPOINT); - State = 2274; + State = 2341; Match(EXCLAMATIONPOINT); + State = 2343; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2273; whiteSpace(); + State = 2342; whiteSpace(); } } - State = 2276; identifier(); - State = 2278; - switch ( Interpreter.AdaptivePredict(_input,366,_ctx) ) { + State = 2345; unrestrictedIdentifier(); + State = 2347; + switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { case 1: { - State = 2277; typeHint(); + State = 2346; typeHint(); } break; } @@ -12680,70 +13212,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 236, RULE_argList); + EnterRule(_localctx, 240, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2280; Match(LPAREN); - State = 2298; - switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + State = 2349; Match(LPAREN); + State = 2367; + switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { case 1: { - State = 2282; + State = 2351; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2281; whiteSpace(); + State = 2350; whiteSpace(); } } - State = 2284; arg(); - State = 2295; + State = 2353; arg(); + State = 2364; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,370,_ctx); + _alt = Interpreter.AdaptivePredict(_input,385,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2286; + State = 2355; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2285; whiteSpace(); + State = 2354; whiteSpace(); } } - State = 2288; Match(COMMA); - State = 2290; + State = 2357; Match(COMMA); + State = 2359; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2289; whiteSpace(); + State = 2358; whiteSpace(); } } - State = 2292; arg(); + State = 2361; arg(); } } } - State = 2297; + State = 2366; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,370,_ctx); + _alt = Interpreter.AdaptivePredict(_input,385,_ctx); } } break; } - State = 2301; + State = 2370; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2300; whiteSpace(); + State = 2369; whiteSpace(); } } - State = 2303; Match(RPAREN); + State = 2372; Match(RPAREN); } } catch (RecognitionException re) { @@ -12770,6 +13302,9 @@ public TypeHintContext typeHint() { return GetRuleContext(0); } public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } @@ -12777,9 +13312,6 @@ public AsTypeClauseContext asTypeClause() { return GetRuleContext(0); } public ITerminalNode RPAREN() { return GetToken(VBAParser.RPAREN, 0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } public ArgContext(ParserRuleContext parent, int invokingState) @@ -12805,106 +13337,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 238, RULE_arg); + EnterRule(_localctx, 242, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2307; - switch ( Interpreter.AdaptivePredict(_input,373,_ctx) ) { + State = 2376; + switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { case 1: { - State = 2305; Match(OPTIONAL); - State = 2306; whiteSpace(); + State = 2374; Match(OPTIONAL); + State = 2375; whiteSpace(); } break; } - State = 2311; - switch ( Interpreter.AdaptivePredict(_input,374,_ctx) ) { + State = 2380; + switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { case 1: { - State = 2309; + State = 2378; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2310; whiteSpace(); + State = 2379; whiteSpace(); } break; } - State = 2315; - switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + State = 2384; + switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2313; Match(PARAMARRAY); - State = 2314; whiteSpace(); + State = 2382; Match(PARAMARRAY); + State = 2383; whiteSpace(); } break; } - State = 2317; identifier(); - State = 2319; + State = 2386; unrestrictedIdentifier(); + State = 2388; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2318; typeHint(); + State = 2387; typeHint(); } } - State = 2329; - switch ( Interpreter.AdaptivePredict(_input,379,_ctx) ) { + State = 2398; + switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { case 1: { - State = 2322; + State = 2391; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2321; whiteSpace(); + State = 2390; whiteSpace(); } } - State = 2324; Match(LPAREN); - State = 2326; + State = 2393; Match(LPAREN); + State = 2395; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2325; whiteSpace(); + State = 2394; whiteSpace(); } } - State = 2328; Match(RPAREN); + State = 2397; Match(RPAREN); } break; } - State = 2335; - switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { + State = 2404; + switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { case 1: { - State = 2332; + State = 2401; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2331; whiteSpace(); + State = 2400; whiteSpace(); } } - State = 2334; asTypeClause(); + State = 2403; asTypeClause(); } break; } - State = 2341; - switch ( Interpreter.AdaptivePredict(_input,383,_ctx) ) { + State = 2410; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2338; + State = 2407; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2337; whiteSpace(); + State = 2406; whiteSpace(); } } - State = 2340; argDefaultValue(); + State = 2409; argDefaultValue(); } break; } @@ -12952,20 +13484,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 240, RULE_argDefaultValue); + EnterRule(_localctx, 244, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2343; Match(EQ); - State = 2345; - switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { + State = 2412; Match(EQ); + State = 2414; + switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { case 1: { - State = 2344; whiteSpace(); + State = 2413; whiteSpace(); } break; } - State = 2347; valueStmt(0); + State = 2416; valueStmt(0); } } catch (RecognitionException re) { @@ -13019,44 +13551,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 242, RULE_subscripts); + EnterRule(_localctx, 246, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2349; subscript(); - State = 2360; + State = 2418; subscript(); + State = 2429; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,387,_ctx); + _alt = Interpreter.AdaptivePredict(_input,402,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2351; + State = 2420; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2350; whiteSpace(); + State = 2419; whiteSpace(); } } - State = 2353; Match(COMMA); - State = 2355; - switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + State = 2422; Match(COMMA); + State = 2424; + switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { case 1: { - State = 2354; whiteSpace(); + State = 2423; whiteSpace(); } break; } - State = 2357; subscript(); + State = 2426; subscript(); } } } - State = 2362; + State = 2431; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,387,_ctx); + _alt = Interpreter.AdaptivePredict(_input,402,_ctx); } } } @@ -13108,22 +13640,279 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 244, RULE_subscript); + EnterRule(_localctx, 248, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2368; - switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { + State = 2437; + switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { case 1: { - State = 2363; valueStmt(0); - State = 2364; whiteSpace(); - State = 2365; Match(TO); - State = 2366; whiteSpace(); + State = 2432; valueStmt(0); + State = 2433; whiteSpace(); + State = 2434; Match(TO); + State = 2435; whiteSpace(); + } + break; + } + State = 2439; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class UnrestrictedIdentifierContext : ParserRuleContext { + public IdentifierContext identifier() { + return GetRuleContext(0); + } + public StatementKeywordContext statementKeyword() { + return GetRuleContext(0); + } + public UnrestrictedIdentifierContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_unrestrictedIdentifier; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterUnrestrictedIdentifier(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitUnrestrictedIdentifier(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitUnrestrictedIdentifier(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + UnrestrictedIdentifierContext _localctx = new UnrestrictedIdentifierContext(_ctx, State); + EnterRule(_localctx, 250, RULE_unrestrictedIdentifier); + try { + State = 2443; + switch (_input.La(1)) { + case ABS: + case ANY: + case ARRAY: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CDEC: + case CINT: + case CIRCLE: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CURRENCY: + case CVAR: + case CVERR: + case DEBUG: + case DOEVENTS: + case FIX: + case INPUTB: + case INT: + case LBOUND: + case LEN: + case LENB: + case LONGLONG: + case LONGPTR: + case MIDB: + case MIDBTYPESUFFIX: + case MIDTYPESUFFIX: + case PSET: + case SCALE: + case SGN: + case UBOUND: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPACTIVATE: + case AS: + case BEGIN: + case BEEP: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CHDIR: + case CHDRIVE: + case CLASS: + case DATABASE: + case DATE: + case DELETESETTING: + case DOUBLE: + case END_IF: + case EQV: + case FALSE: + case FILECOPY: + case IMP: + case IN: + case IS: + case INTEGER: + case KILL: + case LOAD: + case LONG: + case LIB: + case LIKE: + case ME: + case MID: + case MKDIR: + case MOD: + case NAME: + case NEW: + case NOT: + case NOTHING: + case NULL: + case OPTIONAL: + case OR: + case PARAMARRAY: + case PRESERVE: + case RANDOMIZE: + case REM: + case RMDIR: + case SAVEPICTURE: + case SAVESETTING: + case SENDKEYS: + case SETATTR: + case SINGLE: + case SPC: + case STRING: + case TAB: + case TEXT: + case THEN: + case TIME: + case TO: + case TRUE: + case TYPEOF: + case UNLOAD: + case UNTIL: + case VARIANT: + case VERSION: + case WITHEVENTS: + case XOR: + case IDENTIFIER: + case COLLECTION: + EnterOuterAlt(_localctx, 1); + { + State = 2441; identifier(); + } + break; + case EXIT: + case OPTION: + case ACCESS: + case APPEND: + case BINARY: + case CALL: + case CASE: + case CLOSE: + case CONST: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFLNGLNG: + case DEFLNGPTR: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DIM: + case DO: + case ELSE: + case ELSEIF: + case END_SELECT: + case END_WITH: + case END: + case ENUM: + case ERASE: + case ERROR: + case EVENT: + case EXIT_DO: + case EXIT_FOR: + case EXIT_FUNCTION: + case EXIT_PROPERTY: + case EXIT_SUB: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMPLEMENTS: + case INPUT: + case LOCK: + case LOOP: + case LET: + case LINE_INPUT: + case LOCK_READ: + case LOCK_WRITE: + case LOCK_READ_WRITE: + case LSET: + case NEXT: + case ON: + case ON_ERROR: + case OPEN: + case OUTPUT: + case PRINT: + case PRIVATE: + case PUBLIC: + case PUT: + case RANDOM: + case RAISEEVENT: + case READ: + case READ_WRITE: + case REDIM: + case RESET: + case RESUME: + case RETURN: + case RSET: + case SEEK: + case SELECT: + case SET: + case SHARED: + case STATIC: + case STEP: + case STOP: + case SUB: + case TYPE: + case UNLOCK: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WRITE: + case ENDIF: + case RESUME_NEXT: + EnterOuterAlt(_localctx, 2); + { + State = 2442; statementKeyword(); } break; - } - State = 2370; valueStmt(0); + default: + throw new NoViableAltException(this); } } catch (RecognitionException re) { @@ -13165,14 +13954,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); - EnterRule(_localctx, 246, RULE_identifier); + EnterRule(_localctx, 252, RULE_identifier); try { - State = 2374; + State = 2447; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2372; Match(IDENTIFIER); + State = 2445; Match(IDENTIFIER); } break; case ABS: @@ -13196,7 +13985,6 @@ public IdentifierContext identifier() { case CVERR: case DEBUG: case DOEVENTS: - case EXIT: case FIX: case INPUTB: case INT: @@ -13208,159 +13996,82 @@ public IdentifierContext identifier() { case MIDB: case MIDBTYPESUFFIX: case MIDTYPESUFFIX: - case OPTION: case PSET: case SCALE: case SGN: case UBOUND: - case ACCESS: case ADDRESSOF: case ALIAS: case AND: case ATTRIBUTE: case APPACTIVATE: - case APPEND: case AS: case BEGIN: case BEEP: - case BINARY: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CALL: - case CASE: case CHDIR: case CHDRIVE: case CLASS: - case CLOSE: - case CONST: case DATABASE: case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFLNGLNG: - case DEFLNGPTR: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: case DELETESETTING: - case DIM: - case DO: case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: case END_IF: - case END: - case ENUM: case EQV: - case ERASE: - case ERROR: - case EVENT: case FALSE: case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: case IMP: - case IMPLEMENTS: case IN: - case INPUT: case IS: case INTEGER: case KILL: case LOAD: - case LOCK: case LONG: - case LOOP: - case LET: case LIB: case LIKE: - case LSET: case ME: case MID: case MKDIR: case MOD: case NAME: - case NEXT: case NEW: case NOT: case NOTHING: case NULL: - case ON: - case OPEN: case OPTIONAL: case OR: - case OUTPUT: case PARAMARRAY: case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: case REM: - case RESET: - case RESUME: - case RETURN: case RMDIR: - case RSET: case SAVEPICTURE: case SAVESETTING: - case SEEK: - case SELECT: case SENDKEYS: - case SET: case SETATTR: - case SHARED: case SINGLE: case SPC: - case STATIC: - case STEP: - case STOP: case STRING: - case SUB: case TAB: case TEXT: case THEN: case TIME: case TO: case TRUE: - case TYPE: case TYPEOF: case UNLOAD: - case UNLOCK: case UNTIL: case VARIANT: case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: case WITHEVENTS: - case WRITE: case XOR: case COLLECTION: EnterOuterAlt(_localctx, 2); { - State = 2373; keyword(); + State = 2446; keyword(); } break; default: @@ -13416,43 +14127,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 248, RULE_asTypeClause); + EnterRule(_localctx, 254, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2376; Match(AS); - State = 2378; + State = 2449; Match(AS); + State = 2451; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2377; whiteSpace(); + State = 2450; whiteSpace(); } } - State = 2382; - switch ( Interpreter.AdaptivePredict(_input,391,_ctx) ) { + State = 2455; + switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2380; Match(NEW); - State = 2381; whiteSpace(); + State = 2453; Match(NEW); + State = 2454; whiteSpace(); } break; } - State = 2384; type(); - State = 2389; - switch ( Interpreter.AdaptivePredict(_input,393,_ctx) ) { + State = 2457; type(); + State = 2462; + switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { case 1: { - State = 2386; + State = 2459; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2385; whiteSpace(); + State = 2458; whiteSpace(); } } - State = 2388; fieldLength(); + State = 2461; fieldLength(); } break; } @@ -13505,12 +14216,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 250, RULE_baseType); + EnterRule(_localctx, 256, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2391; + State = 2464; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13561,12 +14272,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 252, RULE_comparisonOperator); + EnterRule(_localctx, 258, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2393; + State = 2466; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13623,33 +14334,33 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 254, RULE_complexType); + EnterRule(_localctx, 260, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2395; identifier(); - State = 2400; + State = 2468; identifier(); + State = 2473; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,394,_ctx); + _alt = Interpreter.AdaptivePredict(_input,410,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2396; + State = 2469; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2397; identifier(); + State = 2470; identifier(); } } } - State = 2402; + State = 2475; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,394,_ctx); + _alt = Interpreter.AdaptivePredict(_input,410,_ctx); } } } @@ -13698,28 +14409,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 256, RULE_fieldLength); + EnterRule(_localctx, 262, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2403; Match(MULT); - State = 2405; + State = 2476; Match(MULT); + State = 2478; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2404; whiteSpace(); + State = 2477; whiteSpace(); } } - State = 2409; + State = 2482; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2407; numberLiteral(); + State = 2480; numberLiteral(); } break; case ABS: @@ -13743,7 +14454,6 @@ public FieldLengthContext fieldLength() { case CVERR: case DEBUG: case DOEVENTS: - case EXIT: case FIX: case INPUTB: case INT: @@ -13755,159 +14465,82 @@ public FieldLengthContext fieldLength() { case MIDB: case MIDBTYPESUFFIX: case MIDTYPESUFFIX: - case OPTION: case PSET: case SCALE: case SGN: case UBOUND: - case ACCESS: case ADDRESSOF: case ALIAS: case AND: case ATTRIBUTE: case APPACTIVATE: - case APPEND: case AS: case BEGIN: case BEEP: - case BINARY: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CALL: - case CASE: case CHDIR: case CHDRIVE: case CLASS: - case CLOSE: - case CONST: case DATABASE: case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFLNGLNG: - case DEFLNGPTR: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: case DELETESETTING: - case DIM: - case DO: case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: case END_IF: - case END: - case ENUM: case EQV: - case ERASE: - case ERROR: - case EVENT: case FALSE: case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: case IMP: - case IMPLEMENTS: case IN: - case INPUT: case IS: case INTEGER: case KILL: case LOAD: - case LOCK: case LONG: - case LOOP: - case LET: case LIB: case LIKE: - case LSET: case ME: case MID: case MKDIR: case MOD: case NAME: - case NEXT: case NEW: case NOT: case NOTHING: case NULL: - case ON: - case OPEN: case OPTIONAL: case OR: - case OUTPUT: case PARAMARRAY: case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: case REM: - case RESET: - case RESUME: - case RETURN: case RMDIR: - case RSET: case SAVEPICTURE: case SAVESETTING: - case SEEK: - case SELECT: case SENDKEYS: - case SET: case SETATTR: - case SHARED: case SINGLE: case SPC: - case STATIC: - case STEP: - case STOP: case STRING: - case SUB: case TAB: case TEXT: case THEN: case TIME: case TO: case TRUE: - case TYPE: case TYPEOF: case UNLOAD: - case UNLOCK: case UNTIL: case VARIANT: case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: case WITHEVENTS: - case WRITE: case XOR: case IDENTIFIER: case COLLECTION: { - State = 2408; identifier(); + State = 2481; identifier(); } break; default: @@ -13963,34 +14596,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 258, RULE_letterrange); + EnterRule(_localctx, 264, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2411; identifier(); - State = 2420; - switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { + State = 2484; identifier(); + State = 2493; + switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { case 1: { - State = 2413; + State = 2486; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2412; whiteSpace(); + State = 2485; whiteSpace(); } } - State = 2415; Match(MINUS); - State = 2417; + State = 2488; Match(MINUS); + State = 2490; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2416; whiteSpace(); + State = 2489; whiteSpace(); } } - State = 2419; identifier(); + State = 2492; identifier(); } break; } @@ -14038,11 +14671,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 260, RULE_lineLabel); + EnterRule(_localctx, 266, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2424; + State = 2497; switch (_input.La(1)) { case ABS: case ANY: @@ -14065,7 +14698,6 @@ public LineLabelContext lineLabel() { case CVERR: case DEBUG: case DOEVENTS: - case EXIT: case FIX: case INPUTB: case INT: @@ -14077,159 +14709,82 @@ public LineLabelContext lineLabel() { case MIDB: case MIDBTYPESUFFIX: case MIDTYPESUFFIX: - case OPTION: case PSET: case SCALE: case SGN: case UBOUND: - case ACCESS: case ADDRESSOF: case ALIAS: case AND: case ATTRIBUTE: case APPACTIVATE: - case APPEND: case AS: case BEGIN: case BEEP: - case BINARY: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CALL: - case CASE: case CHDIR: case CHDRIVE: case CLASS: - case CLOSE: - case CONST: case DATABASE: case DATE: - case DECLARE: - case DEFBOOL: - case DEFBYTE: - case DEFDATE: - case DEFDBL: - case DEFCUR: - case DEFINT: - case DEFLNG: - case DEFLNGLNG: - case DEFLNGPTR: - case DEFOBJ: - case DEFSNG: - case DEFSTR: - case DEFVAR: case DELETESETTING: - case DIM: - case DO: case DOUBLE: - case EACH: - case ELSE: - case ELSEIF: case END_IF: - case END: - case ENUM: case EQV: - case ERASE: - case ERROR: - case EVENT: case FALSE: case FILECOPY: - case FRIEND: - case FOR: - case FUNCTION: - case GET: - case GLOBAL: - case GOSUB: - case GOTO: - case IF: case IMP: - case IMPLEMENTS: case IN: - case INPUT: case IS: case INTEGER: case KILL: case LOAD: - case LOCK: case LONG: - case LOOP: - case LET: case LIB: case LIKE: - case LSET: case ME: case MID: case MKDIR: case MOD: case NAME: - case NEXT: case NEW: case NOT: case NOTHING: case NULL: - case ON: - case OPEN: case OPTIONAL: case OR: - case OUTPUT: case PARAMARRAY: case PRESERVE: - case PRINT: - case PRIVATE: - case PUBLIC: - case PUT: - case RANDOM: case RANDOMIZE: - case RAISEEVENT: - case READ: - case REDIM: case REM: - case RESET: - case RESUME: - case RETURN: case RMDIR: - case RSET: case SAVEPICTURE: case SAVESETTING: - case SEEK: - case SELECT: case SENDKEYS: - case SET: case SETATTR: - case SHARED: case SINGLE: case SPC: - case STATIC: - case STEP: - case STOP: case STRING: - case SUB: case TAB: case TEXT: case THEN: case TIME: case TO: case TRUE: - case TYPE: case TYPEOF: case UNLOAD: - case UNLOCK: case UNTIL: case VARIANT: case VERSION: - case WEND: - case WHILE: - case WIDTH: - case WITH: case WITHEVENTS: - case WRITE: case XOR: case IDENTIFIER: case COLLECTION: { - State = 2422; identifier(); + State = 2495; identifier(); } break; case OCTLITERAL: @@ -14237,13 +14792,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2423; numberLiteral(); + State = 2496; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2426; Match(COLON); + State = 2499; Match(COLON); } } catch (RecognitionException re) { @@ -14291,9 +14846,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 262, RULE_literal); + EnterRule(_localctx, 268, RULE_literal); try { - State = 2436; + State = 2509; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -14301,49 +14856,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2428; numberLiteral(); + State = 2501; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2429; Match(DATELITERAL); + State = 2502; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2430; Match(STRINGLITERAL); + State = 2503; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2431; Match(TRUE); + State = 2504; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2432; Match(FALSE); + State = 2505; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2433; Match(NOTHING); + State = 2506; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2434; Match(NULL); + State = 2507; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2435; Match(EMPTY); + State = 2508; Match(EMPTY); } break; default: @@ -14389,12 +14944,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 264, RULE_numberLiteral); + EnterRule(_localctx, 270, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2438; + State = 2511; _la = _input.La(1); if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14451,47 +15006,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 266, RULE_type); + EnterRule(_localctx, 272, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2442; - switch ( Interpreter.AdaptivePredict(_input,402,_ctx) ) { + State = 2515; + switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: { - State = 2440; baseType(); + State = 2513; baseType(); } break; case 2: { - State = 2441; complexType(); + State = 2514; complexType(); } break; } - State = 2452; - switch ( Interpreter.AdaptivePredict(_input,405,_ctx) ) { + State = 2525; + switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { case 1: { - State = 2445; + State = 2518; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2444; whiteSpace(); + State = 2517; whiteSpace(); } } - State = 2447; Match(LPAREN); - State = 2449; + State = 2520; Match(LPAREN); + State = 2522; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2448; whiteSpace(); + State = 2521; whiteSpace(); } } - State = 2451; Match(RPAREN); + State = 2524; Match(RPAREN); } break; } @@ -14539,12 +15094,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 268, RULE_typeHint); + EnterRule(_localctx, 274, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2454; + State = 2527; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -14591,12 +15146,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 270, RULE_visibility); + EnterRule(_localctx, 276, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2456; + State = 2529; _la = _input.La(1); if ( !(((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14616,33 +15171,19 @@ public VisibilityContext visibility() { } public partial class KeywordContext : ParserRuleContext { - public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } - public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } - public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } - public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } - public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } public ITerminalNode CLNGLNG() { return GetToken(VBAParser.CLNGLNG, 0); } public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } - public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } public ITerminalNode MIDTYPESUFFIX() { return GetToken(VBAParser.MIDTYPESUFFIX, 0); } public ITerminalNode SCALE() { return GetToken(VBAParser.SCALE, 0); } public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } - public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } - public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } public ITerminalNode DEBUG() { return GetToken(VBAParser.DEBUG, 0); } public ITerminalNode CLNGPTR() { return GetToken(VBAParser.CLNGPTR, 0); } - public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } - public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } public ITerminalNode ME() { return GetToken(VBAParser.ME, 0); } public ITerminalNode CDEC() { return GetToken(VBAParser.CDEC, 0); } - public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } - public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } - public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } - public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } public ITerminalNode CSNG() { return GetToken(VBAParser.CSNG, 0); } public ITerminalNode LONGPTR() { return GetToken(VBAParser.LONGPTR, 0); } public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } @@ -14651,25 +15192,19 @@ public partial class KeywordContext : ParserRuleContext { public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } - public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } - public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } public ITerminalNode MIDBTYPESUFFIX() { return GetToken(VBAParser.MIDBTYPESUFFIX, 0); } + public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } public ITerminalNode SGN() { return GetToken(VBAParser.SGN, 0); } public ITerminalNode CBYTE() { return GetToken(VBAParser.CBYTE, 0); } - public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } - public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } public ITerminalNode CVAR() { return GetToken(VBAParser.CVAR, 0); } public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } public ITerminalNode LONGLONG() { return GetToken(VBAParser.LONGLONG, 0); } - public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } - public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } public ITerminalNode CDATE() { return GetToken(VBAParser.CDATE, 0); } - public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } - public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } public ITerminalNode ABS() { return GetToken(VBAParser.ABS, 0); } + public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } public ITerminalNode INT() { return GetToken(VBAParser.INT, 0); } public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } @@ -14677,127 +15212,69 @@ public partial class KeywordContext : ParserRuleContext { public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } public ITerminalNode LBOUND() { return GetToken(VBAParser.LBOUND, 0); } public ITerminalNode UBOUND() { return GetToken(VBAParser.UBOUND, 0); } - public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } - public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } - public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } - public ITerminalNode OPTION() { return GetToken(VBAParser.OPTION, 0); } - public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } - public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } - public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } public ITerminalNode ARRAY() { return GetToken(VBAParser.ARRAY, 0); } - public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } + public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } - public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } - public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } public ITerminalNode MIDB() { return GetToken(VBAParser.MIDB, 0); } public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } - public ITerminalNode DEFLNGPTR() { return GetToken(VBAParser.DEFLNGPTR, 0); } - public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } - public ITerminalNode EXIT() { return GetToken(VBAParser.EXIT, 0); } - public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } - public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } public ITerminalNode REM() { return GetToken(VBAParser.REM, 0); } - public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } - public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } public ITerminalNode PSET() { return GetToken(VBAParser.PSET, 0); } - public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } - public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } - public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } public ITerminalNode CDBL() { return GetToken(VBAParser.CDBL, 0); } public ITerminalNode CLNG() { return GetToken(VBAParser.CLNG, 0); } - public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } public ITerminalNode END_IF() { return GetToken(VBAParser.END_IF, 0); } public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } - public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } - public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } - public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } public ITerminalNode LENB() { return GetToken(VBAParser.LENB, 0); } - public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } - public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } - public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } - public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } - public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } - public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } - public ITerminalNode DEFLNGLNG() { return GetToken(VBAParser.DEFLNGLNG, 0); } - public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } - public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } - public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } public ITerminalNode INPUTB() { return GetToken(VBAParser.INPUTB, 0); } - public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } - public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } - public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } - public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } - public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } - public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } public ITerminalNode CURRENCY() { return GetToken(VBAParser.CURRENCY, 0); } public ITerminalNode CIRCLE() { return GetToken(VBAParser.CIRCLE, 0); } public ITerminalNode LEN(int i) { return GetToken(VBAParser.LEN, i); } public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } - public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } public ITerminalNode CBOOL() { return GetToken(VBAParser.CBOOL, 0); } public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } - public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } public ITerminalNode CVERR() { return GetToken(VBAParser.CVERR, 0); } + public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } public ITerminalNode FIX() { return GetToken(VBAParser.FIX, 0); } public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } - public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } public ITerminalNode CSTR() { return GetToken(VBAParser.CSTR, 0); } - public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } public ITerminalNode CINT() { return GetToken(VBAParser.CINT, 0); } public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } - public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } - public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } - public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } public ITerminalNode DOEVENTS() { return GetToken(VBAParser.DOEVENTS, 0); } public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } - public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } - public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } - public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } - public ITerminalNode WRITE() { return GetToken(VBAParser.WRITE, 0); } public IReadOnlyList LEN() { return GetTokens(VBAParser.LEN); } - public ITerminalNode EACH() { return GetToken(VBAParser.EACH, 0); } - public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } public ITerminalNode ANY() { return GetToken(VBAParser.ANY, 0); } public ITerminalNode CCUR() { return GetToken(VBAParser.CCUR, 0); } - public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } + public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } - public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } - public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } - public ITerminalNode END() { return GetToken(VBAParser.END, 0); } public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } @@ -14825,14 +15302,157 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KeywordContext keyword() { KeywordContext _localctx = new KeywordContext(_ctx, State); - EnterRule(_localctx, 272, RULE_keyword); + EnterRule(_localctx, 278, RULE_keyword); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 2531; + _la = _input.La(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)))) != 0) || _la==COLLECTION) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StatementKeywordContext : ParserRuleContext { + public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } + public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } + public ITerminalNode ELSE() { return GetToken(VBAParser.ELSE, 0); } + public ITerminalNode LOCK_WRITE() { return GetToken(VBAParser.LOCK_WRITE, 0); } + public ITerminalNode IF() { return GetToken(VBAParser.IF, 0); } + public ITerminalNode RESET() { return GetToken(VBAParser.RESET, 0); } + public ITerminalNode ERASE() { return GetToken(VBAParser.ERASE, 0); } + public ITerminalNode WRITE(int i) { + return GetToken(VBAParser.WRITE, i); + } + public ITerminalNode END_SELECT() { return GetToken(VBAParser.END_SELECT, 0); } + public ITerminalNode ON_ERROR() { return GetToken(VBAParser.ON_ERROR, 0); } + public ITerminalNode RAISEEVENT() { return GetToken(VBAParser.RAISEEVENT, 0); } + public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } + public ITerminalNode SHARED() { return GetToken(VBAParser.SHARED, 0); } + public ITerminalNode APPEND() { return GetToken(VBAParser.APPEND, 0); } + public ITerminalNode PRIVATE() { return GetToken(VBAParser.PRIVATE, 0); } + public ITerminalNode DEFBYTE() { return GetToken(VBAParser.DEFBYTE, 0); } + public ITerminalNode DEFSNG() { return GetToken(VBAParser.DEFSNG, 0); } + public ITerminalNode GOSUB() { return GetToken(VBAParser.GOSUB, 0); } + public ITerminalNode RETURN() { return GetToken(VBAParser.RETURN, 0); } + public ITerminalNode ENUM() { return GetToken(VBAParser.ENUM, 0); } + public ITerminalNode ENDIF() { return GetToken(VBAParser.ENDIF, 0); } + public ITerminalNode LOCK() { return GetToken(VBAParser.LOCK, 0); } + public ITerminalNode GLOBAL() { return GetToken(VBAParser.GLOBAL, 0); } + public ITerminalNode WEND() { return GetToken(VBAParser.WEND, 0); } + public ITerminalNode DEFSTR() { return GetToken(VBAParser.DEFSTR, 0); } + public ITerminalNode DEFLNGLNG() { return GetToken(VBAParser.DEFLNGLNG, 0); } + public ITerminalNode DEFVAR() { return GetToken(VBAParser.DEFVAR, 0); } + public ITerminalNode EXIT_DO() { return GetToken(VBAParser.EXIT_DO, 0); } + public ITerminalNode EVENT() { return GetToken(VBAParser.EVENT, 0); } + public ITerminalNode CONST() { return GetToken(VBAParser.CONST, 0); } + public ITerminalNode ELSEIF() { return GetToken(VBAParser.ELSEIF, 0); } + public ITerminalNode PRINT() { return GetToken(VBAParser.PRINT, 0); } + public ITerminalNode DEFINT() { return GetToken(VBAParser.DEFINT, 0); } + public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } + public ITerminalNode FOR() { return GetToken(VBAParser.FOR, 0); } + public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } + public ITerminalNode WIDTH() { return GetToken(VBAParser.WIDTH, 0); } + public ITerminalNode INPUT() { return GetToken(VBAParser.INPUT, 0); } + public ITerminalNode STEP() { return GetToken(VBAParser.STEP, 0); } + public ITerminalNode SEEK() { return GetToken(VBAParser.SEEK, 0); } + public ITerminalNode BINARY() { return GetToken(VBAParser.BINARY, 0); } + public ITerminalNode RANDOM() { return GetToken(VBAParser.RANDOM, 0); } + public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } + public ITerminalNode DEFCUR() { return GetToken(VBAParser.DEFCUR, 0); } + public ITerminalNode PUBLIC() { return GetToken(VBAParser.PUBLIC, 0); } + public ITerminalNode DEFDATE() { return GetToken(VBAParser.DEFDATE, 0); } + public ITerminalNode PUT() { return GetToken(VBAParser.PUT, 0); } + public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } + public ITerminalNode FRIEND() { return GetToken(VBAParser.FRIEND, 0); } + public ITerminalNode TYPE() { return GetToken(VBAParser.TYPE, 0); } + public ITerminalNode ERROR() { return GetToken(VBAParser.ERROR, 0); } + public ITerminalNode CALL() { return GetToken(VBAParser.CALL, 0); } + public ITerminalNode READ() { return GetToken(VBAParser.READ, 0); } + public ITerminalNode DEFBOOL() { return GetToken(VBAParser.DEFBOOL, 0); } + public ITerminalNode RESUME_NEXT() { return GetToken(VBAParser.RESUME_NEXT, 0); } + public ITerminalNode OPEN() { return GetToken(VBAParser.OPEN, 0); } + public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } + public ITerminalNode LOCK_READ() { return GetToken(VBAParser.LOCK_READ, 0); } + public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } + public ITerminalNode DIM() { return GetToken(VBAParser.DIM, 0); } + public ITerminalNode OPTION() { return GetToken(VBAParser.OPTION, 0); } + public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } + public ITerminalNode OUTPUT() { return GetToken(VBAParser.OUTPUT, 0); } + public ITerminalNode LINE_INPUT() { return GetToken(VBAParser.LINE_INPUT, 0); } + public ITerminalNode DEFLNG() { return GetToken(VBAParser.DEFLNG, 0); } + public ITerminalNode IMPLEMENTS() { return GetToken(VBAParser.IMPLEMENTS, 0); } + public ITerminalNode ON() { return GetToken(VBAParser.ON, 0); } + public ITerminalNode WITH() { return GetToken(VBAParser.WITH, 0); } + public ITerminalNode ACCESS() { return GetToken(VBAParser.ACCESS, 0); } + public ITerminalNode EXIT_SUB() { return GetToken(VBAParser.EXIT_SUB, 0); } + public ITerminalNode DECLARE() { return GetToken(VBAParser.DECLARE, 0); } + public ITerminalNode LOCK_READ_WRITE() { return GetToken(VBAParser.LOCK_READ_WRITE, 0); } + public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } + public IReadOnlyList WRITE() { return GetTokens(VBAParser.WRITE); } + public ITerminalNode DEFLNGPTR() { return GetToken(VBAParser.DEFLNGPTR, 0); } + public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } + public ITerminalNode EXIT() { return GetToken(VBAParser.EXIT, 0); } + public ITerminalNode GET() { return GetToken(VBAParser.GET, 0); } + public ITerminalNode EXIT_FOR() { return GetToken(VBAParser.EXIT_FOR, 0); } + public ITerminalNode DEFDBL() { return GetToken(VBAParser.DEFDBL, 0); } + public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } + public ITerminalNode END_WITH() { return GetToken(VBAParser.END_WITH, 0); } + public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } + public ITerminalNode GOTO() { return GetToken(VBAParser.GOTO, 0); } + public ITerminalNode REDIM() { return GetToken(VBAParser.REDIM, 0); } + public ITerminalNode EXIT_PROPERTY() { return GetToken(VBAParser.EXIT_PROPERTY, 0); } + public ITerminalNode END() { return GetToken(VBAParser.END, 0); } + public ITerminalNode SELECT() { return GetToken(VBAParser.SELECT, 0); } + public ITerminalNode EXIT_FUNCTION() { return GetToken(VBAParser.EXIT_FUNCTION, 0); } + public ITerminalNode READ_WRITE() { return GetToken(VBAParser.READ_WRITE, 0); } + public ITerminalNode UNLOCK() { return GetToken(VBAParser.UNLOCK, 0); } + public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } + public StatementKeywordContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_statementKeyword; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterStatementKeyword(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitStatementKeyword(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStatementKeyword(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StatementKeywordContext statementKeyword() { + StatementKeywordContext _localctx = new StatementKeywordContext(_ctx, State); + EnterRule(_localctx, 280, RULE_statementKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2458; + State = 2533; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)))) != 0) || _la==COLLECTION) ) { + if ( !(((((_la - 22)) & ~0x3f) == 0 && ((1L << (_la - 22)) & ((1L << (EXIT - 22)) | (1L << (OPTION - 22)) | (1L << (ACCESS - 22)) | (1L << (APPEND - 22)) | (1L << (BINARY - 22)) | (1L << (CALL - 22)) | (1L << (CASE - 22)) | (1L << (CLOSE - 22)) | (1L << (CONST - 22)) | (1L << (DECLARE - 22)) | (1L << (DEFBOOL - 22)) | (1L << (DEFBYTE - 22)) | (1L << (DEFDATE - 22)) | (1L << (DEFDBL - 22)) | (1L << (DEFCUR - 22)) | (1L << (DEFINT - 22)) | (1L << (DEFLNG - 22)) | (1L << (DEFLNGLNG - 22)) | (1L << (DEFLNGPTR - 22)) | (1L << (DEFOBJ - 22)) | (1L << (DEFSNG - 22)) | (1L << (DEFSTR - 22)))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (DEFVAR - 86)) | (1L << (DIM - 86)) | (1L << (DO - 86)) | (1L << (ELSE - 86)) | (1L << (ELSEIF - 86)) | (1L << (END_SELECT - 86)) | (1L << (END_WITH - 86)) | (1L << (END - 86)) | (1L << (ENUM - 86)) | (1L << (ERASE - 86)) | (1L << (ERROR - 86)) | (1L << (EVENT - 86)) | (1L << (EXIT_DO - 86)) | (1L << (EXIT_FOR - 86)) | (1L << (EXIT_FUNCTION - 86)) | (1L << (EXIT_PROPERTY - 86)) | (1L << (EXIT_SUB - 86)) | (1L << (FRIEND - 86)) | (1L << (FOR - 86)) | (1L << (FUNCTION - 86)) | (1L << (GET - 86)) | (1L << (GLOBAL - 86)) | (1L << (GOSUB - 86)) | (1L << (GOTO - 86)) | (1L << (IF - 86)) | (1L << (IMPLEMENTS - 86)) | (1L << (INPUT - 86)) | (1L << (LOCK - 86)) | (1L << (LOOP - 86)) | (1L << (LET - 86)) | (1L << (LINE_INPUT - 86)) | (1L << (LOCK_READ - 86)) | (1L << (LOCK_WRITE - 86)) | (1L << (LOCK_READ_WRITE - 86)) | (1L << (LSET - 86)) | (1L << (NEXT - 86)))) != 0) || ((((_la - 153)) & ~0x3f) == 0 && ((1L << (_la - 153)) & ((1L << (ON - 153)) | (1L << (ON_ERROR - 153)) | (1L << (OPEN - 153)) | (1L << (OUTPUT - 153)) | (1L << (PRINT - 153)) | (1L << (PRIVATE - 153)) | (1L << (PUBLIC - 153)) | (1L << (PUT - 153)) | (1L << (RANDOM - 153)) | (1L << (RAISEEVENT - 153)) | (1L << (READ - 153)) | (1L << (READ_WRITE - 153)) | (1L << (REDIM - 153)) | (1L << (RESET - 153)) | (1L << (RESUME - 153)) | (1L << (RETURN - 153)) | (1L << (RSET - 153)) | (1L << (SEEK - 153)) | (1L << (SELECT - 153)) | (1L << (SET - 153)) | (1L << (SHARED - 153)) | (1L << (STATIC - 153)) | (1L << (STEP - 153)) | (1L << (STOP - 153)) | (1L << (SUB - 153)) | (1L << (TYPE - 153)) | (1L << (UNLOCK - 153)) | (1L << (WEND - 153)) | (1L << (WHILE - 153)) | (1L << (WIDTH - 153)))) != 0) || ((((_la - 217)) & ~0x3f) == 0 && ((1L << (_la - 217)) & ((1L << (WITH - 217)) | (1L << (WRITE - 217)) | (1L << (ENDIF - 217)) | (1L << (RESUME_NEXT - 217)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14892,28 +15512,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 274, RULE_endOfLine); + EnterRule(_localctx, 282, RULE_endOfLine); int _la; try { int _alt; - State = 2479; - switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { + State = 2554; + switch ( Interpreter.AdaptivePredict(_input,427,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2461; + State = 2536; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2460; whiteSpace(); + State = 2535; whiteSpace(); } } - State = 2470; + State = 2545; switch (_input.La(1)) { case NEWLINE: { - State = 2464; + State = 2539; _errHandler.Sync(this); _alt = 1; do { @@ -14921,38 +15541,38 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2463; Match(NEWLINE); + State = 2538; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2466; + State = 2541; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,407,_ctx); + _alt = Interpreter.AdaptivePredict(_input,423,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; case COMMENT: case SINGLEQUOTE: { - State = 2468; comment(); + State = 2543; comment(); } break; case REMCOMMENT: { - State = 2469; remComment(); + State = 2544; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2473; - switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { + State = 2548; + switch ( Interpreter.AdaptivePredict(_input,425,_ctx) ) { case 1: { - State = 2472; whiteSpace(); + State = 2547; whiteSpace(); } break; } @@ -14962,15 +15582,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2476; + State = 2551; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2475; whiteSpace(); + State = 2550; whiteSpace(); } } - State = 2478; annotationList(); + State = 2553; annotationList(); } break; } @@ -15026,42 +15646,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 276, RULE_endOfStatement); + EnterRule(_localctx, 284, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2491; + State = 2566; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,415,_ctx); + _alt = Interpreter.AdaptivePredict(_input,431,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2489; - switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { + State = 2564; + switch ( Interpreter.AdaptivePredict(_input,430,_ctx) ) { case 1: { - State = 2481; endOfLine(); + State = 2556; endOfLine(); } break; case 2: { - State = 2483; + State = 2558; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2482; whiteSpace(); + State = 2557; whiteSpace(); } } - State = 2485; Match(COLON); - State = 2487; - switch ( Interpreter.AdaptivePredict(_input,413,_ctx) ) { + State = 2560; Match(COLON); + State = 2562; + switch ( Interpreter.AdaptivePredict(_input,429,_ctx) ) { case 1: { - State = 2486; whiteSpace(); + State = 2561; whiteSpace(); } break; } @@ -15070,9 +15690,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2493; + State = 2568; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,415,_ctx); + _alt = Interpreter.AdaptivePredict(_input,431,_ctx); } } } @@ -15112,11 +15732,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 278, RULE_remComment); + EnterRule(_localctx, 286, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2494; Match(REMCOMMENT); + State = 2569; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15156,12 +15776,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 280, RULE_comment); + EnterRule(_localctx, 288, RULE_comment); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2496; + State = 2571; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -15211,22 +15831,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationListContext annotationList() { AnnotationListContext _localctx = new AnnotationListContext(_ctx, State); - EnterRule(_localctx, 282, RULE_annotationList); + EnterRule(_localctx, 290, RULE_annotationList); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2498; Match(SINGLEQUOTE); - State = 2500; + State = 2573; Match(SINGLEQUOTE); + State = 2575; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2499; annotation(); + State = 2574; annotation(); } } - State = 2502; + State = 2577; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -15274,17 +15894,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationContext annotation() { AnnotationContext _localctx = new AnnotationContext(_ctx, State); - EnterRule(_localctx, 284, RULE_annotation); + EnterRule(_localctx, 292, RULE_annotation); try { EnterOuterAlt(_localctx, 1); { - State = 2504; Match(AT); - State = 2505; annotationName(); - State = 2507; - switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { + State = 2579; Match(AT); + State = 2580; annotationName(); + State = 2582; + switch ( Interpreter.AdaptivePredict(_input,433,_ctx) ) { case 1: { - State = 2506; annotationArgList(); + State = 2581; annotationArgList(); } break; } @@ -15326,11 +15946,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationNameContext annotationName() { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, State); - EnterRule(_localctx, 286, RULE_annotationName); + EnterRule(_localctx, 294, RULE_annotationName); try { EnterOuterAlt(_localctx, 1); { - State = 2509; Match(IDENTIFIER); + State = 2584; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -15386,22 +16006,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgListContext annotationArgList() { AnnotationArgListContext _localctx = new AnnotationArgListContext(_ctx, State); - EnterRule(_localctx, 288, RULE_annotationArgList); + EnterRule(_localctx, 296, RULE_annotationArgList); int _la; try { int _alt; - State = 2572; - switch ( Interpreter.AdaptivePredict(_input,433,_ctx) ) { + State = 2647; + switch ( Interpreter.AdaptivePredict(_input,449,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2511; whiteSpace(); - State = 2512; annotationArg(); - State = 2514; - switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { + State = 2586; whiteSpace(); + State = 2587; annotationArg(); + State = 2589; + switch ( Interpreter.AdaptivePredict(_input,434,_ctx) ) { case 1: { - State = 2513; whiteSpace(); + State = 2588; whiteSpace(); } break; } @@ -15411,9 +16031,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2516; whiteSpace(); - State = 2517; annotationArg(); - State = 2526; + State = 2591; whiteSpace(); + State = 2592; annotationArg(); + State = 2601; _errHandler.Sync(this); _alt = 1; do { @@ -15421,39 +16041,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2519; + State = 2594; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2518; whiteSpace(); + State = 2593; whiteSpace(); } } - State = 2521; Match(COMMA); - State = 2523; + State = 2596; Match(COMMA); + State = 2598; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2522; whiteSpace(); + State = 2597; whiteSpace(); } } - State = 2525; annotationArg(); + State = 2600; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2528; + State = 2603; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,421,_ctx); + _alt = Interpreter.AdaptivePredict(_input,437,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2531; - switch ( Interpreter.AdaptivePredict(_input,422,_ctx) ) { + State = 2606; + switch ( Interpreter.AdaptivePredict(_input,438,_ctx) ) { case 1: { - State = 2530; whiteSpace(); + State = 2605; whiteSpace(); } break; } @@ -15463,38 +16083,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2534; + State = 2609; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2533; whiteSpace(); + State = 2608; whiteSpace(); } } - State = 2536; Match(LPAREN); - State = 2538; + State = 2611; Match(LPAREN); + State = 2613; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2537; whiteSpace(); + State = 2612; whiteSpace(); } } - State = 2540; annotationArg(); - State = 2542; + State = 2615; annotationArg(); + State = 2617; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2541; whiteSpace(); + State = 2616; whiteSpace(); } } - State = 2544; Match(RPAREN); - State = 2546; - switch ( Interpreter.AdaptivePredict(_input,426,_ctx) ) { + State = 2619; Match(RPAREN); + State = 2621; + switch ( Interpreter.AdaptivePredict(_input,442,_ctx) ) { case 1: { - State = 2545; whiteSpace(); + State = 2620; whiteSpace(); } break; } @@ -15504,17 +16124,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2549; + State = 2624; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2548; whiteSpace(); + State = 2623; whiteSpace(); } } - State = 2551; Match(LPAREN); - State = 2552; annotationArg(); - State = 2561; + State = 2626; Match(LPAREN); + State = 2627; annotationArg(); + State = 2636; _errHandler.Sync(this); _alt = 1; do { @@ -15522,48 +16142,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2554; + State = 2629; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2553; whiteSpace(); + State = 2628; whiteSpace(); } } - State = 2556; Match(COMMA); - State = 2558; + State = 2631; Match(COMMA); + State = 2633; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2557; whiteSpace(); + State = 2632; whiteSpace(); } } - State = 2560; annotationArg(); + State = 2635; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2563; + State = 2638; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,430,_ctx); + _alt = Interpreter.AdaptivePredict(_input,446,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2566; + State = 2641; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2565; whiteSpace(); + State = 2640; whiteSpace(); } } - State = 2568; Match(RPAREN); - State = 2570; - switch ( Interpreter.AdaptivePredict(_input,432,_ctx) ) { + State = 2643; Match(RPAREN); + State = 2645; + switch ( Interpreter.AdaptivePredict(_input,448,_ctx) ) { case 1: { - State = 2569; whiteSpace(); + State = 2644; whiteSpace(); } break; } @@ -15610,14 +16230,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); - EnterRule(_localctx, 290, RULE_annotationArg); + EnterRule(_localctx, 298, RULE_annotationArg); try { - State = 2576; + State = 2651; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2574; Match(IDENTIFIER); + State = 2649; Match(IDENTIFIER); } break; case EMPTY: @@ -15633,7 +16253,7 @@ public AnnotationArgContext annotationArg() { case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2575; literal(); + State = 2650; literal(); } break; default: @@ -15683,13 +16303,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 292, RULE_whiteSpace); + EnterRule(_localctx, 300, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2579; + State = 2654; _errHandler.Sync(this); _alt = 1; do { @@ -15697,7 +16317,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2578; + State = 2653; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -15709,9 +16329,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2581; + State = 2656; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,435,_ctx); + _alt = Interpreter.AdaptivePredict(_input,451,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -15762,7 +16382,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x105\xA1A\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x107\xA65\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -15783,1195 +16403,1239 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92"+ - "\x4\x93\t\x93\x4\x94\t\x94\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x12D\n\x3\x3"+ - "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x133\n\x3\x3\x3\x5\x3\x136\n\x3\x3\x3\x3\x3"+ - "\x5\x3\x13A\n\x3\x3\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n"+ - "\x3\x3\x3\x3\x3\x5\x3\x146\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x14C\n\x4"+ - "\x3\x4\x5\x4\x14F\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5"+ - "\x5\x5\x159\n\x5\x5\x5\x15B\n\x5\x3\x5\x3\x5\x6\x5\x15F\n\x5\r\x5\xE\x5"+ - "\x160\x3\x5\x3\x5\x3\x6\x3\x6\a\x6\x167\n\x6\f\x6\xE\x6\x16A\v\x6\x3\x6"+ - "\x3\x6\a\x6\x16E\n\x6\f\x6\xE\x6\x171\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x176"+ - "\n\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6\a\x17D\n\a\r\a\xE\a\x17E\x3\b\x3\b"+ - "\x3\b\x3\b\a\b\x185\n\b\f\b\xE\b\x188\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x196\n\t\x3\n\x3\n\x3\n\x3\n\x3"+ - "\n\x3\n\x3\n\x3\n\x5\n\x1A0\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x1A6\n\v\f\v\xE"+ - "\v\x1A9\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x1B2\n\f\x3\r\x3\r"+ - "\x3\r\x3\r\x5\r\x1B8\n\r\x3\r\x3\r\x5\r\x1BC\n\r\x3\r\x3\r\x5\r\x1C0\n"+ - "\r\x3\r\x3\r\x5\r\x1C4\n\r\x3\r\a\r\x1C7\n\r\f\r\xE\r\x1CA\v\r\x3\xE\x3"+ - "\xE\x3\xE\x3\xE\a\xE\x1D0\n\xE\f\xE\xE\xE\x1D3\v\xE\x3\xE\x3\xE\x3\xF"+ + "\x4\x93\t\x93\x4\x94\t\x94\x4\x95\t\x95\x4\x96\t\x96\x4\x97\t\x97\x4\x98"+ + "\t\x98\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x135\n\x3\x3\x3\x3\x3\x3\x3\x3\x3"+ + "\x5\x3\x13B\n\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n\x3\x3"+ + "\x3\x3\x3\x5\x3\x146\n\x3\x3\x3\x3\x3\x5\x3\x14A\n\x3\x3\x3\x3\x3\x5\x3"+ + "\x14E\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x154\n\x4\x3\x4\x5\x4\x157\n"+ + "\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x161\n\x5\x5"+ + "\x5\x163\n\x5\x3\x5\x3\x5\x6\x5\x167\n\x5\r\x5\xE\x5\x168\x3\x5\x3\x5"+ + "\x3\x6\x3\x6\a\x6\x16F\n\x6\f\x6\xE\x6\x172\v\x6\x3\x6\x3\x6\a\x6\x176"+ + "\n\x6\f\x6\xE\x6\x179\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x17E\n\x6\x3\x6\x3"+ + "\x6\x3\a\x3\a\x3\a\x6\a\x185\n\a\r\a\xE\a\x186\x3\b\x3\b\x3\b\x3\b\a\b"+ + "\x18D\n\b\f\b\xE\b\x190\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x5\t\x19E\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ + "\n\x5\n\x1A8\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x1AE\n\v\f\v\xE\v\x1B1\v\v\x3"+ + "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x1BA\n\f\x3\r\x3\r\x3\r\x3\r\x5"+ + "\r\x1C0\n\r\x3\r\x3\r\x5\r\x1C4\n\r\x3\r\x3\r\x5\r\x1C8\n\r\x3\r\x3\r"+ + "\x5\r\x1CC\n\r\x3\r\a\r\x1CF\n\r\f\r\xE\r\x1D2\v\r\x3\xE\x3\xE\x3\xE\x3"+ + "\xE\a\xE\x1D8\n\xE\f\xE\xE\xE\x1DB\v\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x219\n\xF\x3\x10\x3"+ - "\x10\x3\x10\x3\x10\x5\x10\x21F\n\x10\x3\x10\x3\x10\x5\x10\x223\n\x10\x3"+ - "\x10\x5\x10\x226\n\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13"+ - "\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x236\n\x14\x3"+ - "\x14\x3\x14\x5\x14\x23A\n\x14\x3\x14\a\x14\x23D\n\x14\f\x14\xE\x14\x240"+ - "\v\x14\x5\x14\x242\n\x14\x3\x15\x3\x15\x3\x15\x5\x15\x247\n\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x15\x5\x15\x24D\n\x15\x3\x15\x3\x15\x5\x15\x251\n\x15"+ - "\x3\x15\a\x15\x254\n\x15\f\x15\xE\x15\x257\v\x15\x3\x16\x3\x16\x5\x16"+ - "\x25B\n\x16\x3\x16\x3\x16\x3\x16\x5\x16\x260\n\x16\x3\x16\x5\x16\x263"+ - "\n\x16\x3\x16\x3\x16\x5\x16\x267\n\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5"+ - "\x17\x26D\n\x17\x3\x17\x3\x17\x5\x17\x271\n\x17\x3\x17\x3\x17\x3\x18\x3"+ - "\x18\x3\x18\x5\x18\x278\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x27E"+ - "\n\x18\x3\x18\x3\x18\x5\x18\x282\n\x18\x3\x18\x5\x18\x285\n\x18\x3\x18"+ - "\x3\x18\x3\x18\x5\x18\x28A\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3"+ - "\x18\x3\x18\x3\x18\x3\x18\x5\x18\x295\n\x18\x3\x18\x5\x18\x298\n\x18\x3"+ - "\x18\x5\x18\x29B\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x2A0\n\x18\x3\x19\x3"+ - "\x19\x3\x19\x3\x19\x5\x19\x2A6\n\x19\x3\x19\x3\x19\x5\x19\x2AA\n\x19\x3"+ - "\x19\a\x19\x2AD\n\x19\f\x19\xE\x19\x2B0\v\x19\x3\x1A\x3\x1A\x3\x1A\x3"+ - "\x1A\x5\x1A\x2B6\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2BC\n\x1A\x3"+ - "\x1A\x3\x1A\x5\x1A\x2C0\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A"+ - "\x5\x1A\x2C8\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2CC\n\x1A\x3\x1A\x3\x1A\x5\x1A"+ - "\x2D0\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D4\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D8"+ - "\n\x1A\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2DD\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2E8\n\x1B\x3\x1B\x3\x1B"+ - "\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2EF\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x5\x1B\x2F7\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D"+ - "\x2FE\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x305\n\x1D\f\x1D"+ - "\xE\x1D\x308\v\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x30E\n\x1E\x3\x1E"+ - "\x3\x1E\x5\x1E\x312\n\x1E\x3\x1E\x5\x1E\x315\n\x1E\x3\x1E\x3\x1E\x3\x1F"+ - "\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x31D\n\x1F\x3\x1F\x3\x1F\x5\x1F\x321\n\x1F"+ - "\x3\x1F\a\x1F\x324\n\x1F\f\x1F\xE\x1F\x327\v\x1F\x3 \x3 \x3 \x3 \x3!\x3"+ - "!\x3!\x5!\x330\n!\x3!\x3!\x3!\x3!\x5!\x336\n!\x3!\x3!\x3\"\x3\"\x3#\x3"+ - "#\x3#\x3#\x5#\x340\n#\x3#\x3#\x5#\x344\n#\x3#\x3#\x3$\x3$\x3$\x3$\x3$"+ - "\x3$\x3$\x3$\x3$\x3$\x3$\x5$\x353\n$\x3$\x3$\x3$\x3$\x5$\x359\n$\x3%\x3"+ - "%\x3%\x3%\x5%\x35F\n%\x3%\x3%\x5%\x363\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%"+ - "\x3%\x3%\x3%\x5%\x36F\n%\x3%\x3%\x5%\x373\n%\x3%\x3%\x3%\x3%\x5%\x379"+ - "\n%\x3&\x3&\x3&\x5&\x37E\n&\x3&\x3&\x5&\x382\n&\x3&\x3&\x5&\x386\n&\x3"+ - "&\x3&\x5&\x38A\n&\x3&\x5&\x38D\n&\x3&\x5&\x390\n&\x3&\x5&\x393\n&\x3&"+ - "\x5&\x396\n&\x3&\x3&\x5&\x39A\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3A2"+ - "\n\'\x3\'\x3\'\x5\'\x3A6\n\'\x3\'\x5\'\x3A9\n\'\x3\'\x5\'\x3AC\n\'\x3"+ - "\'\x3\'\x5\'\x3B0\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3"+ - "*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3C8\n*\x3*\x3*\a*\x3CC"+ - "\n*\f*\xE*\x3CF\v*\x3*\x5*\x3D2\n*\x3*\x3*\x5*\x3D6\n*\x3+\x3+\x3+\x3"+ - "+\x3+\x3+\x3+\x5+\x3DF\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3EA"+ - "\n-\x3.\x3.\x3.\x5.\x3EF\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30"+ - "\x5\x30\x3F9\n\x30\x3\x30\x3\x30\x5\x30\x3FD\n\x30\x3\x30\x6\x30\x400"+ - "\n\x30\r\x30\xE\x30\x401\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5"+ - "\x32\x40A\n\x32\x3\x32\x3\x32\x5\x32\x40E\n\x32\x3\x32\x3\x32\x5\x32\x412"+ - "\n\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x41A\n\x33\x3"+ - "\x33\x3\x33\x5\x33\x41E\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34"+ - "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x42A\n\x35\x3\x35\x3\x35\x5\x35\x42E"+ - "\n\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x436\n\x35\x5"+ - "\x35\x438\n\x35\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x43E\n\x36\x3\x36\x3"+ - "\x36\x5\x36\x442\n\x36\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x448\n\x37\x3"+ - "\x37\x3\x37\x5\x37\x44C\n\x37\x3\x37\x3\x37\x5\x37\x450\n\x37\x3\x37\x3"+ - "\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ - "\x39\x3\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x46A\n"+ - ":\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x5;\x474\n;\x3;\x3;\x5;\x478\n;\x3;"+ - "\a;\x47B\n;\f;\xE;\x47E\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x488\n"+ - "<\x3<\x3<\x5<\x48C\n<\x3<\a<\x48F\n<\f<\xE<\x492\v<\x3=\x3=\x3=\x3=\x3"+ - "=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4A0\n=\x3=\x3=\x3=\x5=\x4A5\n=\x3="+ - "\x3=\x3=\x3=\x3=\x3=\x3=\x5=\x4AE\n=\x3=\x3=\x5=\x4B2\n=\x3=\x3=\x5=\x4B6"+ - "\n=\x3>\x3>\x5>\x4BA\n>\x3>\x3>\x5>\x4BE\n>\x3>\x5>\x4C1\n>\a>\x4C3\n"+ - ">\f>\xE>\x4C6\v>\x3>\x5>\x4C9\n>\x3>\x5>\x4CC\n>\x3>\x3>\x5>\x4D0\n>\x3"+ - ">\x5>\x4D3\n>\x6>\x4D5\n>\r>\xE>\x4D6\x5>\x4D9\n>\x3?\x3?\x3?\x5?\x4DE"+ - "\n?\x3?\x3?\x5?\x4E2\n?\x3?\x3?\x5?\x4E6\n?\x3?\x3?\x5?\x4EA\n?\x5?\x4EC"+ - "\n?\x3@\x3@\x3@\x3@\x5@\x4F2\n@\x3@\x3@\x5@\x4F6\n@\x3@\x5@\x4F9\n@\x3"+ - "\x41\x3\x41\x3\x41\x5\x41\x4FE\n\x41\x3\x41\x3\x41\x5\x41\x502\n\x41\x3"+ - "\x41\x3\x41\x3\x41\x3\x41\x5\x41\x508\n\x41\x3\x41\x5\x41\x50B\n\x41\x3"+ - "\x41\x5\x41\x50E\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x513\n\x41\x3\x41\x3"+ - "\x41\x5\x41\x517\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x51E"+ - "\n\x42\x3\x42\x3\x42\x5\x42\x522\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5"+ - "\x42\x528\n\x42\x3\x42\x5\x42\x52B\n\x42\x3\x42\x3\x42\x5\x42\x52F\n\x42"+ - "\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x5\x43\x536\n\x43\x3\x43\x3\x43\x5"+ - "\x43\x53A\n\x43\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x540\n\x43\x3\x43\x5"+ - "\x43\x543\n\x43\x3\x43\x3\x43\x5\x43\x547\n\x43\x3\x43\x3\x43\x3\x44\x3"+ - "\x44\x3\x44\x3\x44\x5\x44\x54F\n\x44\x3\x44\x3\x44\x5\x44\x553\n\x44\x3"+ - "\x44\x5\x44\x556\n\x44\x3\x44\x5\x44\x559\n\x44\x3\x44\x3\x44\x5\x44\x55D"+ - "\n\x44\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x565\n\x45\x3"+ - "\x45\x3\x45\x5\x45\x569\n\x45\x3\x45\x3\x45\x5\x45\x56D\n\x45\x5\x45\x56F"+ - "\n\x45\x3\x45\x5\x45\x572\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x578"+ - "\n\x46\x3G\x3G\x3G\x3G\x5G\x57E\nG\x3G\x3G\x5G\x582\nG\x3G\x3G\x5G\x586"+ - "\nG\x3G\aG\x589\nG\fG\xEG\x58C\vG\x3H\x3H\x5H\x590\nH\x3H\x3H\x5H\x594"+ - "\nH\x3H\x3H\x5H\x598\nH\x3H\x3H\x3H\x3H\x5H\x59E\nH\x3I\x3I\x3J\x3J\x3"+ - "J\x3J\x5J\x5A6\nJ\x5J\x5A8\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M"+ - "\x5M\x5B4\nM\x3M\x3M\x5M\x5B8\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5C0\nN\x3"+ - "N\x3N\x5N\x5C4\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5CC\nO\x3O\x3O\x5O\x5D0"+ - "\nO\x3O\x3O\x5O\x5D4\nO\x3O\x3O\x5O\x5D8\nO\x3O\x3O\x5O\x5DC\nO\x3O\x3"+ - "O\x5O\x5E0\nO\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5E8\nP\x3P\x3P\x5P\x5EC\nP"+ - "\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5F7\nQ\fQ\xEQ\x5FA\vQ\x3Q\x3"+ - "Q\x3R\x3R\x5R\x600\nR\x3R\x3R\x5R\x604\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R"+ - "\x3R\x3R\x5R\x60F\nR\x3S\x3S\x3S\x3S\x3S\x5S\x616\nS\x3T\x3T\x3T\x5T\x61B"+ - "\nT\x3T\x3T\x5T\x61F\nT\x3T\aT\x622\nT\fT\xET\x625\vT\x5T\x627\nT\x3U"+ - "\x3U\x3U\x3U\x5U\x62D\nU\x3U\x3U\x5U\x631\nU\x3U\x5U\x634\nU\x3V\x3V\x3"+ - "V\x3V\x5V\x63A\nV\x3V\x3V\x5V\x63E\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x646"+ - "\nW\x3W\x3W\x5W\x64A\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x653\nY\x3Y\x3"+ - "Y\x5Y\x657\nY\x3Y\x3Y\x5Y\x65B\nY\x3Y\x3Y\x5Y\x65F\nY\x3Y\x5Y\x662\nY"+ - "\x3Y\x3Y\x5Y\x666\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x66C\nZ\x3Z\x3Z\x5Z\x670\nZ\x3"+ - "Z\x3Z\x3[\x3[\x3[\x5[\x677\n[\x3[\x3[\x3[\x3[\x3[\a[\x67E\n[\f[\xE[\x681"+ - "\v[\x3[\x3[\x3\\\x3\\\x5\\\x687\n\\\x3\\\x3\\\x5\\\x68B\n\\\x3\\\x5\\"+ - "\x68E\n\\\x3\\\x5\\\x691\n\\\x3\\\x5\\\x694\n\\\x3\\\x3\\\x3\\\x5\\\x699"+ - "\n\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6A5\n^\x3^\x3^\x5"+ - "^\x6A9\n^\x3^\x3^\x3^\x3^\x3^\x3^\x5^\x6B1\n^\x5^\x6B3\n^\x3_\x3_\x3_"+ - "\x5_\x6B8\n_\x3_\x3_\x3_\x5_\x6BD\n_\x3_\x3_\x3_\x5_\x6C2\n_\x3_\x3_\x5"+ - "_\x6C6\n_\x3_\x3_\x3_\x3_\x5_\x6CC\n_\x3_\x3_\x3_\x5_\x6D1\n_\x3_\x3_"+ - "\x3_\x3_\x3_\x5_\x6D8\n_\x3_\x3_\x5_\x6DC\n_\x3_\x3_\x3_\x3_\x5_\x6E2"+ - "\n_\x3_\x3_\x5_\x6E6\n_\x3_\x3_\x5_\x6EA\n_\x3_\x3_\x3_\x5_\x6EF\n_\x3"+ - "_\x3_\x5_\x6F3\n_\x3_\x3_\x3_\x5_\x6F8\n_\x3_\x3_\x5_\x6FC\n_\x3_\x3_"+ - "\x3_\x5_\x701\n_\x3_\x3_\x5_\x705\n_\x3_\x3_\x3_\x5_\x70A\n_\x3_\x3_\x5"+ - "_\x70E\n_\x3_\x3_\x3_\x5_\x713\n_\x3_\x3_\x5_\x717\n_\x3_\x3_\x3_\x5_"+ - "\x71C\n_\x3_\x3_\x5_\x720\n_\x3_\x3_\x3_\x5_\x725\n_\x3_\x3_\x5_\x729"+ - "\n_\x3_\x3_\x3_\x5_\x72E\n_\x3_\x3_\x5_\x732\n_\x3_\x3_\x3_\x5_\x737\n"+ - "_\x3_\x3_\x5_\x73B\n_\x3_\x3_\x3_\x5_\x740\n_\x3_\x3_\x5_\x744\n_\x3_"+ - "\x3_\x3_\x5_\x749\n_\x3_\x3_\x5_\x74D\n_\x3_\a_\x750\n_\f_\xE_\x753\v"+ - "_\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x5`\x75D\n`\x3\x61\x3\x61\x3\x61\x5"+ - "\x61\x762\n\x61\x3\x61\x3\x61\x3\x61\x5\x61\x767\n\x61\x3\x61\x3\x61\x3"+ - "\x62\x3\x62\x5\x62\x76D\n\x62\x3\x62\x3\x62\x5\x62\x771\n\x62\x3\x62\a"+ - "\x62\x774\n\x62\f\x62\xE\x62\x777\v\x62\x3\x63\x3\x63\x5\x63\x77B\n\x63"+ - "\x3\x63\x3\x63\x5\x63\x77F\n\x63\x3\x63\x3\x63\x5\x63\x783\n\x63\x5\x63"+ - "\x785\n\x63\x3\x63\x3\x63\x5\x63\x789\n\x63\x5\x63\x78B\n\x63\x3\x63\x5"+ - "\x63\x78E\n\x63\x3\x63\x3\x63\x3\x63\x5\x63\x793\n\x63\x3\x64\x3\x64\x3"+ - "\x64\x3\x64\x3\x64\x5\x64\x79A\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65"+ - "\x3\x65\x5\x65\x7A2\n\x65\x3\x65\x3\x65\x5\x65\x7A6\n\x65\x3\x65\x3\x65"+ - "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x5\x66\x7AF\n\x66\x3\x66\x3\x66\x3"+ - "g\x3g\x3h\x3h\x3h\x3h\x5h\x7B9\nh\x3h\x3h\x5h\x7BD\nh\x3h\x5h\x7C0\nh"+ - "\x3i\x5i\x7C3\ni\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x5k\x7CC\nk\x3k\x3k\x3k\x5"+ - "k\x7D1\nk\x3k\x5k\x7D4\nk\x3k\x3k\x5k\x7D8\nk\x3k\x3k\x5k\x7DC\nk\x3k"+ - "\x3k\x5k\x7E0\nk\x3k\x5k\x7E3\nk\x3k\x3k\x3k\x3k\ak\x7E9\nk\fk\xEk\x7EC"+ - "\vk\x3k\x3k\x5k\x7F0\nk\x3k\x5k\x7F3\nk\x3k\x3k\x5k\x7F7\nk\x3k\x3k\x5"+ - "k\x7FB\nk\x3k\x3k\x5k\x7FF\nk\x3k\x5k\x802\nk\x3k\x3k\x3k\x3k\ak\x808"+ - "\nk\fk\xEk\x80B\vk\x5k\x80D\nk\x3l\x3l\x5l\x811\nl\x3m\x5m\x814\nm\x3"+ - "m\x5m\x817\nm\x3m\x3m\x5m\x81B\nm\x3m\x3m\x5m\x81F\nm\x3m\x3m\x3m\x5m"+ - "\x824\nm\x3m\x5m\x827\nm\x3m\x5m\x82A\nm\x3m\x5m\x82D\nm\x3m\x3m\x3m\x3"+ - "m\am\x833\nm\fm\xEm\x836\vm\x3n\x3n\x3n\x3n\x5n\x83C\nn\x3n\x5n\x83F\n"+ - "n\x3n\x3n\x3n\x3n\an\x845\nn\fn\xEn\x848\vn\x3o\x3o\x3o\x3o\x5o\x84E\n"+ - "o\x3p\x3p\x5p\x852\np\x3p\x5p\x855\np\x3p\x5p\x858\np\x3p\x5p\x85B\np"+ - "\x3p\x3p\x3p\x3p\ap\x861\np\fp\xEp\x864\vp\x3q\x3q\x5q\x868\nq\x3q\x5"+ - "q\x86B\nq\x3q\x5q\x86E\nq\x3q\x3q\x5q\x872\nq\x3q\x3q\x5q\x876\nq\x5q"+ - "\x878\nq\x3q\x3q\x5q\x87C\nq\x3q\x5q\x87F\nq\x3q\x5q\x882\nq\x3q\x3q\x3"+ - "q\x3q\aq\x888\nq\fq\xEq\x88B\vq\x3r\x3r\x5r\x88F\nr\x3r\x3r\x5r\x893\n"+ - "r\x6r\x895\nr\rr\xEr\x896\x3r\x5r\x89A\nr\x3r\x5r\x89D\nr\x3r\x5r\x8A0"+ + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x221\n\xF\x3\x10\x3\x10\x3\x10"+ + "\x3\x10\x5\x10\x227\n\x10\x3\x10\x3\x10\x5\x10\x22B\n\x10\x3\x10\x5\x10"+ + "\x22E\n\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3"+ + "\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x23E\n\x14\x3\x14\x3\x14"+ + "\x5\x14\x242\n\x14\x3\x14\a\x14\x245\n\x14\f\x14\xE\x14\x248\v\x14\x5"+ + "\x14\x24A\n\x14\x3\x15\x3\x15\x3\x15\x5\x15\x24F\n\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x5\x15\x255\n\x15\x3\x15\x3\x15\x5\x15\x259\n\x15\x3\x15\a"+ + "\x15\x25C\n\x15\f\x15\xE\x15\x25F\v\x15\x3\x16\x3\x16\x5\x16\x263\n\x16"+ + "\x3\x16\x3\x16\x3\x16\x5\x16\x268\n\x16\x3\x16\x5\x16\x26B\n\x16\x3\x16"+ + "\x3\x16\x5\x16\x26F\n\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5\x17\x275\n\x17"+ + "\x3\x17\x3\x17\x5\x17\x279\n\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x5"+ + "\x18\x280\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x286\n\x18\x3\x18\x3"+ + "\x18\x5\x18\x28A\n\x18\x3\x18\x5\x18\x28D\n\x18\x3\x18\x3\x18\x3\x18\x5"+ + "\x18\x292\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ + "\x3\x18\x5\x18\x29D\n\x18\x3\x18\x5\x18\x2A0\n\x18\x3\x18\x5\x18\x2A3"+ + "\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x2A8\n\x18\x3\x19\x3\x19\x3\x19\x3"+ + "\x19\x5\x19\x2AE\n\x19\x3\x19\x3\x19\x5\x19\x2B2\n\x19\x3\x19\a\x19\x2B5"+ + "\n\x19\f\x19\xE\x19\x2B8\v\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2BE"+ + "\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2C4\n\x1A\x3\x1A\x3\x1A\x5"+ + "\x1A\x2C8\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2D0"+ + "\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D4\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D8\n\x1A"+ + "\x3\x1A\x3\x1A\x5\x1A\x2DC\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2E0\n\x1A\x3\x1B"+ + "\x3\x1B\x3\x1B\x5\x1B\x2E5\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2F0\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B"+ + "\x3\x1B\x5\x1B\x2F7\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5"+ + "\x1B\x2FF\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x306\n\x1D\x3"+ + "\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x30D\n\x1D\f\x1D\xE\x1D\x310\v"+ + "\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x316\n\x1E\x3\x1E\x3\x1E\x5\x1E"+ + "\x31A\n\x1E\x3\x1E\x5\x1E\x31D\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F"+ + "\x3\x1F\x5\x1F\x325\n\x1F\x3\x1F\x3\x1F\x5\x1F\x329\n\x1F\x3\x1F\a\x1F"+ + "\x32C\n\x1F\f\x1F\xE\x1F\x32F\v\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x5!\x338"+ + "\n!\x3!\x3!\x3!\x3!\x5!\x33E\n!\x3!\x3!\x3\"\x3\"\x3#\x3#\x3#\x3#\x5#"+ + "\x348\n#\x3#\x3#\x5#\x34C\n#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3"+ + "$\x3$\x3$\x5$\x35B\n$\x3$\x3$\x3$\x3$\x5$\x361\n$\x3%\x3%\x3%\x3%\x5%"+ + "\x367\n%\x3%\x3%\x5%\x36B\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5"+ + "%\x377\n%\x3%\x3%\x5%\x37B\n%\x3%\x3%\x3%\x3%\x5%\x381\n%\x3&\x3&\x3&"+ + "\x5&\x386\n&\x3&\x3&\x5&\x38A\n&\x3&\x3&\x5&\x38E\n&\x3&\x3&\x5&\x392"+ + "\n&\x3&\x5&\x395\n&\x3&\x5&\x398\n&\x3&\x5&\x39B\n&\x3&\x5&\x39E\n&\x3"+ + "&\x3&\x5&\x3A2\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3AA\n\'\x3\'\x3\'"+ + "\x5\'\x3AE\n\'\x3\'\x5\'\x3B1\n\'\x3\'\x5\'\x3B4\n\'\x3\'\x3\'\x5\'\x3B8"+ + "\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3D0\n*\x3*\x3*\a*\x3D4\n*\f*\xE*\x3D7\v"+ + "*\x3*\x5*\x3DA\n*\x3*\x3*\x5*\x3DE\n*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x5+"+ + "\x3E7\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3F2\n-\x3.\x3.\x3.\x5"+ + ".\x3F7\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x401\n\x30"+ + "\x3\x30\x3\x30\x5\x30\x405\n\x30\x3\x30\x6\x30\x408\n\x30\r\x30\xE\x30"+ + "\x409\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x412\n\x32\x3\x32"+ + "\x3\x32\x5\x32\x416\n\x32\x3\x32\x3\x32\x5\x32\x41A\n\x32\x3\x32\x3\x32"+ + "\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x422\n\x33\x3\x33\x3\x33\x5\x33\x426"+ + "\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35"+ + "\x3\x35\x5\x35\x432\n\x35\x3\x35\x3\x35\x5\x35\x436\n\x35\x3\x35\x3\x35"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x43E\n\x35\x5\x35\x440\n\x35\x3\x36"+ + "\x3\x36\x3\x36\x3\x36\x5\x36\x446\n\x36\x3\x36\x3\x36\x5\x36\x44A\n\x36"+ + "\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x450\n\x37\x3\x37\x3\x37\x5\x37\x454"+ + "\n\x37\x3\x37\x3\x37\x5\x37\x458\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ + "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ + ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x472\n:\x3;\x3;\x3;\x3;\x3;"+ + "\x3;\x3;\x3;\x5;\x47C\n;\x3;\x3;\x5;\x480\n;\x3;\a;\x483\n;\f;\xE;\x486"+ + "\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x490\n<\x3<\x3<\x5<\x494\n<\x3"+ + "<\a<\x497\n<\f<\xE<\x49A\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3"+ + "=\x3=\x5=\x4A8\n=\x3=\x3=\x3=\x5=\x4AD\n=\x3=\x3=\x3=\x3=\x3=\x3=\x3="+ + "\x5=\x4B6\n=\x3=\x3=\x5=\x4BA\n=\x3=\x3=\x5=\x4BE\n=\x3>\x3>\x5>\x4C2"+ + "\n>\x3>\x3>\x5>\x4C6\n>\x3>\x5>\x4C9\n>\a>\x4CB\n>\f>\xE>\x4CE\v>\x3>"+ + "\x5>\x4D1\n>\x3>\x5>\x4D4\n>\x3>\x3>\x5>\x4D8\n>\x3>\x5>\x4DB\n>\x6>\x4DD"+ + "\n>\r>\xE>\x4DE\x5>\x4E1\n>\x3?\x3?\x3?\x5?\x4E6\n?\x3?\x3?\x5?\x4EA\n"+ + "?\x3?\x3?\x5?\x4EE\n?\x3?\x3?\x5?\x4F2\n?\x5?\x4F4\n?\x3@\x3@\x3@\x3@"+ + "\x5@\x4FA\n@\x3@\x3@\x5@\x4FE\n@\x3@\x5@\x501\n@\x3\x41\x3\x41\x3\x41"+ + "\x5\x41\x506\n\x41\x3\x41\x3\x41\x5\x41\x50A\n\x41\x3\x41\x3\x41\x3\x41"+ + "\x3\x41\x5\x41\x510\n\x41\x3\x41\x5\x41\x513\n\x41\x3\x41\x5\x41\x516"+ + "\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x51B\n\x41\x3\x41\x3\x41\x5\x41\x51F"+ + "\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x526\n\x42\x3\x42\x3"+ + "\x42\x5\x42\x52A\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x530\n\x42\x3"+ + "\x42\x5\x42\x533\n\x42\x3\x42\x3\x42\x5\x42\x537\n\x42\x3\x42\x3\x42\x3"+ + "\x43\x3\x43\x3\x43\x5\x43\x53E\n\x43\x3\x43\x3\x43\x5\x43\x542\n\x43\x3"+ + "\x43\x3\x43\x3\x43\x3\x43\x5\x43\x548\n\x43\x3\x43\x5\x43\x54B\n\x43\x3"+ + "\x43\x3\x43\x5\x43\x54F\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44"+ + "\x5\x44\x557\n\x44\x3\x44\x3\x44\x5\x44\x55B\n\x44\x3\x44\x5\x44\x55E"+ + "\n\x44\x3\x44\x5\x44\x561\n\x44\x3\x44\x3\x44\x5\x44\x565\n\x44\x3\x44"+ + "\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x56D\n\x45\x3\x45\x3\x45\x5"+ + "\x45\x571\n\x45\x3\x45\x3\x45\x5\x45\x575\n\x45\x5\x45\x577\n\x45\x3\x45"+ + "\x5\x45\x57A\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x580\n\x46\x3G\x3"+ + "G\x3G\x3G\x5G\x586\nG\x3G\x3G\x5G\x58A\nG\x3G\x3G\x5G\x58E\nG\x3G\aG\x591"+ + "\nG\fG\xEG\x594\vG\x3H\x3H\x5H\x598\nH\x3H\x3H\x5H\x59C\nH\x3H\x3H\x5"+ + "H\x5A0\nH\x3H\x3H\x3H\x3H\x5H\x5A6\nH\x3I\x3I\x3J\x3J\x3J\x3J\x5J\x5AE"+ + "\nJ\x5J\x5B0\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5BC\nM\x3"+ + "M\x3M\x5M\x5C0\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5C8\nN\x3N\x3N\x5N\x5CC"+ + "\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5D4\nO\x3O\x3O\x5O\x5D8\nO\x3O\x3O\x5"+ + "O\x5DC\nO\x3O\x3O\x5O\x5E0\nO\x3O\x3O\x5O\x5E4\nO\x3O\x3O\x5O\x5E8\nO"+ + "\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5F0\nP\x3P\x3P\x5P\x5F4\nP\x3P\x3P\x3Q\x3"+ + "Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5FF\nQ\fQ\xEQ\x602\vQ\x3Q\x3Q\x3R\x3R\x5R\x608"+ + "\nR\x3R\x3R\x5R\x60C\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x5R\x617\n"+ + "R\x3S\x3S\x3S\x3S\x3S\x5S\x61E\nS\x3T\x3T\x3T\x5T\x623\nT\x3T\x3T\x5T"+ + "\x627\nT\x3T\aT\x62A\nT\fT\xET\x62D\vT\x5T\x62F\nT\x3U\x3U\x3U\x3U\x5"+ + "U\x635\nU\x3U\x3U\x5U\x639\nU\x3U\x5U\x63C\nU\x3V\x3V\x3V\x3V\x5V\x642"+ + "\nV\x3V\x3V\x5V\x646\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x64E\nW\x3W\x3W\x5"+ + "W\x652\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x65B\nY\x3Y\x3Y\x5Y\x65F\nY"+ + "\x3Y\x3Y\x5Y\x663\nY\x3Y\x3Y\x5Y\x667\nY\x3Y\x5Y\x66A\nY\x3Y\x3Y\x5Y\x66E"+ + "\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x674\nZ\x3Z\x3Z\x5Z\x678\nZ\x3Z\x3Z\x3[\x3[\x3"+ + "[\x5[\x67F\n[\x3[\x3[\x3[\x3[\x3[\a[\x686\n[\f[\xE[\x689\v[\x3[\x3[\x3"+ + "\\\x3\\\x5\\\x68F\n\\\x3\\\x3\\\x5\\\x693\n\\\x3\\\x5\\\x696\n\\\x3\\"+ + "\x5\\\x699\n\\\x3\\\x5\\\x69C\n\\\x3\\\x3\\\x3\\\x5\\\x6A1\n\\\x3\\\x3"+ + "\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6AD\n^\x3^\x3^\x5^\x6B1\n^\x3"+ + "^\x3^\x3^\x3^\x3^\x3^\x5^\x6B9\n^\x5^\x6BB\n^\x3_\x3_\x3_\x5_\x6C0\n_"+ + "\x3_\x3_\x3_\x5_\x6C5\n_\x3_\x3_\x3_\x5_\x6CA\n_\x3_\x3_\x5_\x6CE\n_\x3"+ + "_\x3_\x3_\x3_\x5_\x6D4\n_\x3_\x3_\x3_\x5_\x6D9\n_\x3_\x3_\x3_\x3_\x3_"+ + "\x5_\x6E0\n_\x3_\x3_\x5_\x6E4\n_\x3_\x3_\x3_\x3_\x5_\x6EA\n_\x3_\x3_\x5"+ + "_\x6EE\n_\x3_\x3_\x5_\x6F2\n_\x3_\x3_\x3_\x5_\x6F7\n_\x3_\x3_\x5_\x6FB"+ + "\n_\x3_\x3_\x3_\x5_\x700\n_\x3_\x3_\x5_\x704\n_\x3_\x3_\x3_\x5_\x709\n"+ + "_\x3_\x3_\x5_\x70D\n_\x3_\x3_\x3_\x5_\x712\n_\x3_\x3_\x5_\x716\n_\x3_"+ + "\x3_\x3_\x5_\x71B\n_\x3_\x3_\x5_\x71F\n_\x3_\x3_\x3_\x5_\x724\n_\x3_\x3"+ + "_\x5_\x728\n_\x3_\x3_\x3_\x5_\x72D\n_\x3_\x3_\x5_\x731\n_\x3_\x3_\x3_"+ + "\x5_\x736\n_\x3_\x3_\x5_\x73A\n_\x3_\x3_\x3_\x5_\x73F\n_\x3_\x3_\x5_\x743"+ + "\n_\x3_\x3_\x3_\x5_\x748\n_\x3_\x3_\x5_\x74C\n_\x3_\x3_\x3_\x5_\x751\n"+ + "_\x3_\x3_\x5_\x755\n_\x3_\a_\x758\n_\f_\xE_\x75B\v_\x3`\x3`\x3`\x3`\x3"+ + "`\x3`\x3`\x3`\x5`\x765\n`\x3\x61\x3\x61\x3\x61\x5\x61\x76A\n\x61\x3\x61"+ + "\x3\x61\x3\x61\x5\x61\x76F\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62\x775"+ + "\n\x62\x3\x62\x3\x62\x5\x62\x779\n\x62\x3\x62\a\x62\x77C\n\x62\f\x62\xE"+ + "\x62\x77F\v\x62\x3\x63\x3\x63\x5\x63\x783\n\x63\x3\x63\x3\x63\x5\x63\x787"+ + "\n\x63\x3\x63\x3\x63\x5\x63\x78B\n\x63\x5\x63\x78D\n\x63\x3\x63\x3\x63"+ + "\x5\x63\x791\n\x63\x5\x63\x793\n\x63\x3\x63\x5\x63\x796\n\x63\x3\x63\x3"+ + "\x63\x3\x63\x5\x63\x79B\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x5\x64"+ + "\x7A2\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x7AA\n\x65"+ + "\x3\x65\x3\x65\x5\x65\x7AE\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3"+ + "\x66\x3\x66\x5\x66\x7B7\n\x66\x3\x66\x3\x66\x3g\x3g\x3h\x3h\x3h\x3h\x5"+ + "h\x7C1\nh\x3h\x3h\x5h\x7C5\nh\x3h\x5h\x7C8\nh\x3i\x5i\x7CB\ni\x3i\x3i"+ + "\x3j\x3j\x3j\x3j\x3k\x5k\x7D4\nk\x3k\x3k\x3k\x5k\x7D9\nk\x3k\x5k\x7DC"+ + "\nk\x3k\x3k\x5k\x7E0\nk\x3k\x3k\x5k\x7E4\nk\x3k\x3k\x5k\x7E8\nk\x3k\x5"+ + "k\x7EB\nk\x3k\x3k\x3k\x3k\ak\x7F1\nk\fk\xEk\x7F4\vk\x3k\x3k\x5k\x7F8\n"+ + "k\x3k\x5k\x7FB\nk\x3k\x3k\x5k\x7FF\nk\x3k\x3k\x5k\x803\nk\x3k\x3k\x5k"+ + "\x807\nk\x3k\x5k\x80A\nk\x3k\x3k\x3k\x3k\ak\x810\nk\fk\xEk\x813\vk\x5"+ + "k\x815\nk\x3l\x3l\x5l\x819\nl\x3m\x5m\x81C\nm\x3m\x5m\x81F\nm\x3m\x3m"+ + "\x5m\x823\nm\x3m\x3m\x5m\x827\nm\x3m\x3m\x3m\x5m\x82C\nm\x3m\x5m\x82F"+ + "\nm\x3m\x5m\x832\nm\x3m\x5m\x835\nm\x3m\x3m\x3m\x3m\am\x83B\nm\fm\xEm"+ + "\x83E\vm\x3n\x3n\x3n\x3n\x5n\x844\nn\x3n\x5n\x847\nn\x3n\x3n\x3n\x3n\a"+ + "n\x84D\nn\fn\xEn\x850\vn\x3o\x3o\x3o\x3o\x5o\x856\no\x3p\x3p\x5p\x85A"+ + "\np\x3p\x5p\x85D\np\x3p\x5p\x860\np\x3p\x5p\x863\np\x3p\x3p\x3p\x3p\a"+ + "p\x869\np\fp\xEp\x86C\vp\x3q\x3q\x5q\x870\nq\x3q\x5q\x873\nq\x3q\x5q\x876"+ + "\nq\x3q\x3q\x5q\x87A\nq\x3q\x3q\x5q\x87E\nq\x5q\x880\nq\x3q\x3q\x5q\x884"+ + "\nq\x3q\x5q\x887\nq\x3q\x5q\x88A\nq\x3q\x3q\x3q\x3q\aq\x890\nq\fq\xEq"+ + "\x893\vq\x3r\x3r\x5r\x897\nr\x3r\x5r\x89A\nr\x3r\x5r\x89D\nr\x3r\x5r\x8A0"+ "\nr\x3r\x3r\x3r\x3r\ar\x8A6\nr\fr\xEr\x8A9\vr\x3s\x3s\x5s\x8AD\ns\x3s"+ - "\x3s\x5s\x8B1\ns\x3t\x5t\x8B4\nt\x3t\x3t\x3u\x5u\x8B9\nu\x3u\x5u\x8BC"+ - "\nu\x3u\x3u\x5u\x8C0\nu\au\x8C2\nu\fu\xEu\x8C5\vu\x3u\x3u\x5u\x8C9\nu"+ - "\x3u\x3u\x5u\x8CD\nu\x3u\x5u\x8D0\nu\au\x8D2\nu\fu\xEu\x8D5\vu\x3v\x5"+ - "v\x8D8\nv\x3v\x3v\x5v\x8DC\nv\x3v\x5v\x8DF\nv\x3v\x3v\x3w\x3w\x5w\x8E5"+ - "\nw\x3w\x3w\x5w\x8E9\nw\x3x\x3x\x5x\x8ED\nx\x3x\x3x\x5x\x8F1\nx\x3x\x3"+ - "x\x5x\x8F5\nx\x3x\ax\x8F8\nx\fx\xEx\x8FB\vx\x5x\x8FD\nx\x3x\x5x\x900\n"+ - "x\x3x\x3x\x3y\x3y\x5y\x906\ny\x3y\x3y\x5y\x90A\ny\x3y\x3y\x5y\x90E\ny"+ - "\x3y\x3y\x5y\x912\ny\x3y\x5y\x915\ny\x3y\x3y\x5y\x919\ny\x3y\x5y\x91C"+ - "\ny\x3y\x5y\x91F\ny\x3y\x5y\x922\ny\x3y\x5y\x925\ny\x3y\x5y\x928\ny\x3"+ - "z\x3z\x5z\x92C\nz\x3z\x3z\x3{\x3{\x5{\x932\n{\x3{\x3{\x5{\x936\n{\x3{"+ - "\a{\x939\n{\f{\xE{\x93C\v{\x3|\x3|\x3|\x3|\x3|\x5|\x943\n|\x3|\x3|\x3"+ - "}\x3}\x5}\x949\n}\x3~\x3~\x5~\x94D\n~\x3~\x3~\x5~\x951\n~\x3~\x3~\x5~"+ - "\x955\n~\x3~\x5~\x958\n~\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3"+ - "\x81\a\x81\x961\n\x81\f\x81\xE\x81\x964\v\x81\x3\x82\x3\x82\x5\x82\x968"+ - "\n\x82\x3\x82\x3\x82\x5\x82\x96C\n\x82\x3\x83\x3\x83\x5\x83\x970\n\x83"+ - "\x3\x83\x3\x83\x5\x83\x974\n\x83\x3\x83\x5\x83\x977\n\x83\x3\x84\x3\x84"+ - "\x5\x84\x97B\n\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3"+ - "\x85\x3\x85\x3\x85\x5\x85\x987\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x5\x87"+ - "\x98D\n\x87\x3\x87\x5\x87\x990\n\x87\x3\x87\x3\x87\x5\x87\x994\n\x87\x3"+ - "\x87\x5\x87\x997\n\x87\x3\x88\x3\x88\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8B"+ - "\x5\x8B\x9A0\n\x8B\x3\x8B\x6\x8B\x9A3\n\x8B\r\x8B\xE\x8B\x9A4\x3\x8B\x3"+ - "\x8B\x5\x8B\x9A9\n\x8B\x3\x8B\x5\x8B\x9AC\n\x8B\x3\x8B\x5\x8B\x9AF\n\x8B"+ - "\x3\x8B\x5\x8B\x9B2\n\x8B\x3\x8C\x3\x8C\x5\x8C\x9B6\n\x8C\x3\x8C\x3\x8C"+ - "\x5\x8C\x9BA\n\x8C\a\x8C\x9BC\n\x8C\f\x8C\xE\x8C\x9BF\v\x8C\x3\x8D\x3"+ - "\x8D\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x6\x8F\x9C7\n\x8F\r\x8F\xE\x8F\x9C8\x3"+ - "\x90\x3\x90\x3\x90\x5\x90\x9CE\n\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x92"+ - "\x5\x92\x9D5\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9DA\n\x92\x3\x92\x3\x92"+ - "\x5\x92\x9DE\n\x92\x3\x92\x6\x92\x9E1\n\x92\r\x92\xE\x92\x9E2\x3\x92\x5"+ - "\x92\x9E6\n\x92\x3\x92\x5\x92\x9E9\n\x92\x3\x92\x3\x92\x5\x92\x9ED\n\x92"+ - "\x3\x92\x3\x92\x5\x92\x9F1\n\x92\x3\x92\x3\x92\x5\x92\x9F5\n\x92\x3\x92"+ - "\x5\x92\x9F8\n\x92\x3\x92\x3\x92\x3\x92\x5\x92\x9FD\n\x92\x3\x92\x3\x92"+ - "\x5\x92\xA01\n\x92\x3\x92\x6\x92\xA04\n\x92\r\x92\xE\x92\xA05\x3\x92\x5"+ - "\x92\xA09\n\x92\x3\x92\x3\x92\x5\x92\xA0D\n\x92\x5\x92\xA0F\n\x92\x3\x93"+ - "\x3\x93\x5\x93\xA13\n\x93\x3\x94\x6\x94\xA16\n\x94\r\x94\xE\x94\xA17\x3"+ - "\x94\x2\x2\x3\xBC\x95\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ - "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ - ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ - "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ - "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ - "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ - "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ - "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ - "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ - "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ - "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ - "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2"+ - "\x10C\x2\x10E\x2\x110\x2\x112\x2\x114\x2\x116\x2\x118\x2\x11A\x2\x11C"+ - "\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126\x2\x2\x19\x5\x2==II\xCC\xCC\x3"+ - "\x2LX\x4\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81"+ - "\xA5\xA5\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))+"+ - "+\x4\x2\xC5\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a"+ - "\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3"+ - "\x2?@\r\x2\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9"+ - "\xD6\xD6\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE"+ - "\r\x2\x3(\x33_\x63\x63int\x8B\x90\x9B\x9E\x9F\xA4\xA9\xAE\xB3\xB5\xDE"+ - "\x105\x105\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBA7\x2\x128\x3\x2"+ - "\x2\x2\x4\x12C\x3\x2\x2\x2\x6\x147\x3\x2\x2\x2\b\x152\x3\x2\x2\x2\n\x164"+ - "\x3\x2\x2\x2\f\x17C\x3\x2\x2\x2\xE\x180\x3\x2\x2\x2\x10\x195\x3\x2\x2"+ - "\x2\x12\x19F\x3\x2\x2\x2\x14\x1A1\x3\x2\x2\x2\x16\x1B1\x3\x2\x2\x2\x18"+ - "\x1B3\x3\x2\x2\x2\x1A\x1CB\x3\x2\x2\x2\x1C\x218\x3\x2\x2\x2\x1E\x21A\x3"+ - "\x2\x2\x2 \x227\x3\x2\x2\x2\"\x229\x3\x2\x2\x2$\x22D\x3\x2\x2\x2&\x231"+ - "\x3\x2\x2\x2(\x246\x3\x2\x2\x2*\x258\x3\x2\x2\x2,\x26A\x3\x2\x2\x2.\x277"+ - "\x3\x2\x2\x2\x30\x2A1\x3\x2\x2\x2\x32\x2D7\x3\x2\x2\x2\x34\x2F6\x3\x2"+ - "\x2\x2\x36\x2F8\x3\x2\x2\x2\x38\x2FD\x3\x2\x2\x2:\x30B\x3\x2\x2\x2<\x318"+ - "\x3\x2\x2\x2>\x328\x3\x2\x2\x2@\x32F\x3\x2\x2\x2\x42\x339\x3\x2\x2\x2"+ - "\x44\x33B\x3\x2\x2\x2\x46\x347\x3\x2\x2\x2H\x35A\x3\x2\x2\x2J\x37D\x3"+ - "\x2\x2\x2L\x39D\x3\x2\x2\x2N\x3B3\x3\x2\x2\x2P\x3B7\x3\x2\x2\x2R\x3D5"+ - "\x3\x2\x2\x2T\x3D7\x3\x2\x2\x2V\x3E0\x3\x2\x2\x2X\x3E2\x3\x2\x2\x2Z\x3EB"+ - "\x3\x2\x2\x2\\\x3F0\x3\x2\x2\x2^\x3F4\x3\x2\x2\x2`\x403\x3\x2\x2\x2\x62"+ - "\x409\x3\x2\x2\x2\x64\x415\x3\x2\x2\x2\x66\x421\x3\x2\x2\x2h\x425\x3\x2"+ - "\x2\x2j\x439\x3\x2\x2\x2l\x445\x3\x2\x2\x2n\x453\x3\x2\x2\x2p\x457\x3"+ - "\x2\x2\x2r\x45F\x3\x2\x2\x2t\x46B\x3\x2\x2\x2v\x47F\x3\x2\x2\x2x\x493"+ - "\x3\x2\x2\x2z\x4D8\x3\x2\x2\x2|\x4EB\x3\x2\x2\x2~\x4ED\x3\x2\x2\x2\x80"+ - "\x4FD\x3\x2\x2\x2\x82\x51D\x3\x2\x2\x2\x84\x535\x3\x2\x2\x2\x86\x54A\x3"+ - "\x2\x2\x2\x88\x560\x3\x2\x2\x2\x8A\x573\x3\x2\x2\x2\x8C\x579\x3\x2\x2"+ - "\x2\x8E\x58D\x3\x2\x2\x2\x90\x59F\x3\x2\x2\x2\x92\x5A1\x3\x2\x2\x2\x94"+ - "\x5A9\x3\x2\x2\x2\x96\x5AB\x3\x2\x2\x2\x98\x5AF\x3\x2\x2\x2\x9A\x5BB\x3"+ - "\x2\x2\x2\x9C\x5C7\x3\x2\x2\x2\x9E\x5E3\x3\x2\x2\x2\xA0\x5EF\x3\x2\x2"+ - "\x2\xA2\x60E\x3\x2\x2\x2\xA4\x610\x3\x2\x2\x2\xA6\x626\x3\x2\x2\x2\xA8"+ - "\x628\x3\x2\x2\x2\xAA\x635\x3\x2\x2\x2\xAC\x641\x3\x2\x2\x2\xAE\x64D\x3"+ - "\x2\x2\x2\xB0\x652\x3\x2\x2\x2\xB2\x669\x3\x2\x2\x2\xB4\x676\x3\x2\x2"+ - "\x2\xB6\x684\x3\x2\x2\x2\xB8\x69C\x3\x2\x2\x2\xBA\x6A0\x3\x2\x2\x2\xBC"+ - "\x6E1\x3\x2\x2\x2\xBE\x754\x3\x2\x2\x2\xC0\x761\x3\x2\x2\x2\xC2\x76A\x3"+ - "\x2\x2\x2\xC4\x778\x3\x2\x2\x2\xC6\x794\x3\x2\x2\x2\xC8\x79D\x3\x2\x2"+ - "\x2\xCA\x7A9\x3\x2\x2\x2\xCC\x7B2\x3\x2\x2\x2\xCE\x7B4\x3\x2\x2\x2\xD0"+ - "\x7C2\x3\x2\x2\x2\xD2\x7C6\x3\x2\x2\x2\xD4\x80C\x3\x2\x2\x2\xD6\x810\x3"+ - "\x2\x2\x2\xD8\x813\x3\x2\x2\x2\xDA\x837\x3\x2\x2\x2\xDC\x84D\x3\x2\x2"+ - "\x2\xDE\x84F\x3\x2\x2\x2\xE0\x867\x3\x2\x2\x2\xE2\x88E\x3\x2\x2\x2\xE4"+ - "\x8AA\x3\x2\x2\x2\xE6\x8B3\x3\x2\x2\x2\xE8\x8C3\x3\x2\x2\x2\xEA\x8D7\x3"+ - "\x2\x2\x2\xEC\x8E2\x3\x2\x2\x2\xEE\x8EA\x3\x2\x2\x2\xF0\x905\x3\x2\x2"+ - "\x2\xF2\x929\x3\x2\x2\x2\xF4\x92F\x3\x2\x2\x2\xF6\x942\x3\x2\x2\x2\xF8"+ - "\x948\x3\x2\x2\x2\xFA\x94A\x3\x2\x2\x2\xFC\x959\x3\x2\x2\x2\xFE\x95B\x3"+ - "\x2\x2\x2\x100\x95D\x3\x2\x2\x2\x102\x965\x3\x2\x2\x2\x104\x96D\x3\x2"+ - "\x2\x2\x106\x97A\x3\x2\x2\x2\x108\x986\x3\x2\x2\x2\x10A\x988\x3\x2\x2"+ - "\x2\x10C\x98C\x3\x2\x2\x2\x10E\x998\x3\x2\x2\x2\x110\x99A\x3\x2\x2\x2"+ - "\x112\x99C\x3\x2\x2\x2\x114\x9B1\x3\x2\x2\x2\x116\x9BD\x3\x2\x2\x2\x118"+ - "\x9C0\x3\x2\x2\x2\x11A\x9C2\x3\x2\x2\x2\x11C\x9C4\x3\x2\x2\x2\x11E\x9CA"+ - "\x3\x2\x2\x2\x120\x9CF\x3\x2\x2\x2\x122\xA0E\x3\x2\x2\x2\x124\xA12\x3"+ - "\x2\x2\x2\x126\xA15\x3\x2\x2\x2\x128\x129\x5\x4\x3\x2\x129\x12A\a\x2\x2"+ - "\x3\x12A\x3\x3\x2\x2\x2\x12B\x12D\x5\x126\x94\x2\x12C\x12B\x3\x2\x2\x2"+ - "\x12C\x12D\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x132\x5\x116\x8C\x2"+ - "\x12F\x130\x5\x6\x4\x2\x130\x131\x5\x116\x8C\x2\x131\x133\x3\x2\x2\x2"+ - "\x132\x12F\x3\x2\x2\x2\x132\x133\x3\x2\x2\x2\x133\x135\x3\x2\x2\x2\x134"+ - "\x136\x5\b\x5\x2\x135\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x137"+ - "\x3\x2\x2\x2\x137\x139\x5\x116\x8C\x2\x138\x13A\x5\f\a\x2\x139\x138\x3"+ - "\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x5\x116"+ - "\x8C\x2\x13C\x13E\x5\xE\b\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ - "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x116\x8C\x2\x140\x142\x5\x14\v"+ - "\x2\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2"+ - "\x143\x145\x5\x116\x8C\x2\x144\x146\x5\x126\x94\x2\x145\x144\x3\x2\x2"+ - "\x2\x145\x146\x3\x2\x2\x2\x146\x5\x3\x2\x2\x2\x147\x148\a\xD7\x2\x2\x148"+ - "\x149\x5\x126\x94\x2\x149\x14B\x5\x10A\x86\x2\x14A\x14C\x5\x126\x94\x2"+ - "\x14B\x14A\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x14E\x3\x2\x2\x2\x14D"+ - "\x14F\a\x46\x2\x2\x14E\x14D\x3\x2\x2\x2\x14E\x14F\x3\x2\x2\x2\x14F\x150"+ - "\x3\x2\x2\x2\x150\x151\x5\x116\x8C\x2\x151\a\x3\x2\x2\x2\x152\x15A\a;"+ - "\x2\x2\x153\x154\x5\x126\x94\x2\x154\x155\a\x103\x2\x2\x155\x156\x5\x126"+ - "\x94\x2\x156\x158\x5\xF8}\x2\x157\x159\x5\x126\x94\x2\x158\x157\x3\x2"+ - "\x2\x2\x158\x159\x3\x2\x2\x2\x159\x15B\x3\x2\x2\x2\x15A\x153\x3\x2\x2"+ - "\x2\x15A\x15B\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15E\x5\x116\x8C"+ - "\x2\x15D\x15F\x5\n\x6\x2\x15E\x15D\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160"+ - "\x15E\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x163"+ - "\ai\x2\x2\x163\t\x3\x2\x2\x2\x164\x168\x5\xF8}\x2\x165\x167\x5\x126\x94"+ - "\x2\x166\x165\x3\x2\x2\x2\x167\x16A\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2"+ - "\x168\x169\x3\x2\x2\x2\x169\x16B\x3\x2\x2\x2\x16A\x168\x3\x2\x2\x2\x16B"+ - "\x16F\a\xE2\x2\x2\x16C\x16E\x5\x126\x94\x2\x16D\x16C\x3\x2\x2\x2\x16E"+ - "\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170\x172"+ - "\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2\x172\x175\x5\x108\x85\x2\x173\x174"+ - "\a*\x2\x2\x174\x176\x5\x10A\x86\x2\x175\x173\x3\x2\x2\x2\x175\x176\x3"+ - "\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177\x178\x5\x116\x8C\x2\x178\v\x3\x2"+ - "\x2\x2\x179\x17A\x5\x18\r\x2\x17A\x17B\x5\x116\x8C\x2\x17B\x17D\x3\x2"+ - "\x2\x2\x17C\x179\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17C\x3\x2\x2"+ - "\x2\x17E\x17F\x3\x2\x2\x2\x17F\r\x3\x2\x2\x2\x180\x186\x5\x12\n\x2\x181"+ - "\x182\x5\x116\x8C\x2\x182\x183\x5\x12\n\x2\x183\x185\x3\x2\x2\x2\x184"+ - "\x181\x3\x2\x2\x2\x185\x188\x3\x2\x2\x2\x186\x184\x3\x2\x2\x2\x186\x187"+ - "\x3\x2\x2\x2\x187\x189\x3\x2\x2\x2\x188\x186\x3\x2\x2\x2\x189\x18A\x5"+ - "\x116\x8C\x2\x18A\xF\x3\x2\x2\x2\x18B\x18C\a\xA0\x2\x2\x18C\x18D\x5\x126"+ - "\x94\x2\x18D\x18E\x5\x10A\x86\x2\x18E\x196\x3\x2\x2\x2\x18F\x190\a\xA2"+ - "\x2\x2\x190\x191\x5\x126\x94\x2\x191\x192\t\x2\x2\x2\x192\x196\x3\x2\x2"+ - "\x2\x193\x196\a\xA1\x2\x2\x194\x196\a\xA3\x2\x2\x195\x18B\x3\x2\x2\x2"+ - "\x195\x18F\x3\x2\x2\x2\x195\x193\x3\x2\x2\x2\x195\x194\x3\x2\x2\x2\x196"+ - "\x11\x3\x2\x2\x2\x197\x1A0\x5.\x18\x2\x198\x1A0\x5\x38\x1D\x2\x199\x1A0"+ - "\x5@!\x2\x19A\x1A0\x5(\x15\x2\x19B\x1A0\x5\\/\x2\x19C\x1A0\x5\xC0\x61"+ - "\x2\x19D\x1A0\x5\x10\t\x2\x19E\x1A0\x5\xB4[\x2\x19F\x197\x3\x2\x2\x2\x19F"+ - "\x198\x3\x2\x2\x2\x19F\x199\x3\x2\x2\x2\x19F\x19A\x3\x2\x2\x2\x19F\x19B"+ - "\x3\x2\x2\x2\x19F\x19C\x3\x2\x2\x2\x19F\x19D\x3\x2\x2\x2\x19F\x19E\x3"+ - "\x2\x2\x2\x1A0\x13\x3\x2\x2\x2\x1A1\x1A7\x5\x16\f\x2\x1A2\x1A3\x5\x116"+ - "\x8C\x2\x1A3\x1A4\x5\x16\f\x2\x1A4\x1A6\x3\x2\x2\x2\x1A5\x1A2\x3\x2\x2"+ - "\x2\x1A6\x1A9\x3\x2\x2\x2\x1A7\x1A5\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2"+ - "\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1A7\x3\x2\x2\x2\x1AA\x1AB\x5\x116\x8C\x2"+ - "\x1AB\x15\x3\x2\x2\x2\x1AC\x1B2\x5J&\x2\x1AD\x1B2\x5\x80\x41\x2\x1AE\x1B2"+ - "\x5\x82\x42\x2\x1AF\x1B2\x5\x84\x43\x2\x1B0\x1B2\x5\xB0Y\x2\x1B1\x1AC"+ - "\x3\x2\x2\x2\x1B1\x1AD\x3\x2\x2\x2\x1B1\x1AE\x3\x2\x2\x2\x1B1\x1AF\x3"+ - "\x2\x2\x2\x1B1\x1B0\x3\x2\x2\x2\x1B2\x17\x3\x2\x2\x2\x1B3\x1B4\a\x37\x2"+ - "\x2\x1B4\x1B5\x5\x126\x94\x2\x1B5\x1B7\x5\xDCo\x2\x1B6\x1B8\x5\x126\x94"+ - "\x2\x1B7\x1B6\x3\x2\x2\x2\x1B7\x1B8\x3\x2\x2\x2\x1B8\x1B9\x3\x2\x2\x2"+ - "\x1B9\x1BB\a\xE2\x2\x2\x1BA\x1BC\x5\x126\x94\x2\x1BB\x1BA\x3\x2\x2\x2"+ - "\x1BB\x1BC\x3\x2\x2\x2\x1BC\x1BD\x3\x2\x2\x2\x1BD\x1C8\x5\x108\x85\x2"+ - "\x1BE\x1C0\x5\x126\x94\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2"+ - "\x1C0\x1C1\x3\x2\x2\x2\x1C1\x1C3\a)\x2\x2\x1C2\x1C4\x5\x126\x94\x2\x1C3"+ - "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1C7"+ - "\x5\x108\x85\x2\x1C6\x1BF\x3\x2\x2\x2\x1C7\x1CA\x3\x2\x2\x2\x1C8\x1C6"+ - "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x19\x3\x2\x2\x2\x1CA\x1C8\x3\x2"+ - "\x2\x2\x1CB\x1D1\x5\x1C\xF\x2\x1CC\x1CD\x5\x116\x8C\x2\x1CD\x1CE\x5\x1C"+ - "\xF\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CC\x3\x2\x2\x2\x1D0\x1D3\x3\x2\x2"+ - "\x2\x1D1\x1CF\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2\x2"+ - "\x1D3\x1D1\x3\x2\x2\x2\x1D4\x1D5\x5\x116\x8C\x2\x1D5\x1B\x3\x2\x2\x2\x1D6"+ - "\x219\x5\x106\x84\x2\x1D7\x219\x5\x1E\x10\x2\x1D8\x219\x5\x18\r\x2\x1D9"+ - "\x219\x5 \x11\x2\x1DA\x219\x5\"\x12\x2\x1DB\x219\x5$\x13\x2\x1DC\x219"+ - "\x5&\x14\x2\x1DD\x219\x5(\x15\x2\x1DE\x219\x5,\x17\x2\x1DF\x219\x5\x32"+ - "\x1A\x2\x1E0\x219\x5\x30\x19\x2\x1E1\x219\x5\x34\x1B\x2\x1E2\x219\x5\x36"+ - "\x1C\x2\x1E3\x219\x5<\x1F\x2\x1E4\x219\x5> \x2\x1E5\x219\x5\x42\"\x2\x1E6"+ - "\x219\x5\xD2j\x2\x1E7\x219\x5\x44#\x2\x1E8\x219\x5\x46$\x2\x1E9\x219\x5"+ - "H%\x2\x1EA\x219\x5L\'\x2\x1EB\x219\x5N(\x2\x1EC\x219\x5P)\x2\x1ED\x219"+ - "\x5R*\x2\x1EE\x219\x5\\/\x2\x1EF\x219\x5^\x30\x2\x1F0\x219\x5`\x31\x2"+ - "\x1F1\x219\x5\x62\x32\x2\x1F2\x219\x5\x64\x33\x2\x1F3\x219\x5\x66\x34"+ - "\x2\x1F4\x219\x5h\x35\x2\x1F5\x219\x5j\x36\x2\x1F6\x219\x5l\x37\x2\x1F7"+ - "\x219\x5n\x38\x2\x1F8\x219\x5p\x39\x2\x1F9\x219\x5r:\x2\x1FA\x219\x5t"+ - ";\x2\x1FB\x219\x5v<\x2\x1FC\x219\x5x=\x2\x1FD\x219\x5~@\x2\x1FE\x219\x5"+ - "\x86\x44\x2\x1FF\x219\x5\x88\x45\x2\x200\x219\x5\x8A\x46\x2\x201\x219"+ - "\x5\x8CG\x2\x202\x219\x5\x90I\x2\x203\x219\x5\x92J\x2\x204\x219\x5\x94"+ - "K\x2\x205\x219\x5\x96L\x2\x206\x219\x5\x98M\x2\x207\x219\x5\x9AN\x2\x208"+ - "\x219\x5\x9CO\x2\x209\x219\x5\x9EP\x2\x20A\x219\x5\xA0Q\x2\x20B\x219\x5"+ - "\xA8U\x2\x20C\x219\x5\xAAV\x2\x20D\x219\x5\xACW\x2\x20E\x219\x5\xAEX\x2"+ - "\x20F\x219\x5\xB2Z\x2\x210\x219\x5\xB8]\x2\x211\x219\x5\xBA^\x2\x212\x219"+ - "\x5\xC0\x61\x2\x213\x219\x5\xC6\x64\x2\x214\x219\x5\xC8\x65\x2\x215\x219"+ - "\x5\xCA\x66\x2\x216\x219\x5\xCEh\x2\x217\x219\x5\xD6l\x2\x218\x1D6\x3"+ - "\x2\x2\x2\x218\x1D7\x3\x2\x2\x2\x218\x1D8\x3\x2\x2\x2\x218\x1D9\x3\x2"+ - "\x2\x2\x218\x1DA\x3\x2\x2\x2\x218\x1DB\x3\x2\x2\x2\x218\x1DC\x3\x2\x2"+ - "\x2\x218\x1DD\x3\x2\x2\x2\x218\x1DE\x3\x2\x2\x2\x218\x1DF\x3\x2\x2\x2"+ - "\x218\x1E0\x3\x2\x2\x2\x218\x1E1\x3\x2\x2\x2\x218\x1E2\x3\x2\x2\x2\x218"+ - "\x1E3\x3\x2\x2\x2\x218\x1E4\x3\x2\x2\x2\x218\x1E5\x3\x2\x2\x2\x218\x1E6"+ - "\x3\x2\x2\x2\x218\x1E7\x3\x2\x2\x2\x218\x1E8\x3\x2\x2\x2\x218\x1E9\x3"+ - "\x2\x2\x2\x218\x1EA\x3\x2\x2\x2\x218\x1EB\x3\x2\x2\x2\x218\x1EC\x3\x2"+ - "\x2\x2\x218\x1ED\x3\x2\x2\x2\x218\x1EE\x3\x2\x2\x2\x218\x1EF\x3\x2\x2"+ - "\x2\x218\x1F0\x3\x2\x2\x2\x218\x1F1\x3\x2\x2\x2\x218\x1F2\x3\x2\x2\x2"+ - "\x218\x1F3\x3\x2\x2\x2\x218\x1F4\x3\x2\x2\x2\x218\x1F5\x3\x2\x2\x2\x218"+ - "\x1F6\x3\x2\x2\x2\x218\x1F7\x3\x2\x2\x2\x218\x1F8\x3\x2\x2\x2\x218\x1F9"+ - "\x3\x2\x2\x2\x218\x1FA\x3\x2\x2\x2\x218\x1FB\x3\x2\x2\x2\x218\x1FC\x3"+ - "\x2\x2\x2\x218\x1FD\x3\x2\x2\x2\x218\x1FE\x3\x2\x2\x2\x218\x1FF\x3\x2"+ - "\x2\x2\x218\x200\x3\x2\x2\x2\x218\x201\x3\x2\x2\x2\x218\x202\x3\x2\x2"+ - "\x2\x218\x203\x3\x2\x2\x2\x218\x204\x3\x2\x2\x2\x218\x205\x3\x2\x2\x2"+ - "\x218\x206\x3\x2\x2\x2\x218\x207\x3\x2\x2\x2\x218\x208\x3\x2\x2\x2\x218"+ - "\x209\x3\x2\x2\x2\x218\x20A\x3\x2\x2\x2\x218\x20B\x3\x2\x2\x2\x218\x20C"+ - "\x3\x2\x2\x2\x218\x20D\x3\x2\x2\x2\x218\x20E\x3\x2\x2\x2\x218\x20F\x3"+ - "\x2\x2\x2\x218\x210\x3\x2\x2\x2\x218\x211\x3\x2\x2\x2\x218\x212\x3\x2"+ - "\x2\x2\x218\x213\x3\x2\x2\x2\x218\x214\x3\x2\x2\x2\x218\x215\x3\x2\x2"+ - "\x2\x218\x216\x3\x2\x2\x2\x218\x217\x3\x2\x2\x2\x219\x1D\x3\x2\x2\x2\x21A"+ - "\x21B\a\x38\x2\x2\x21B\x21C\x5\x126\x94\x2\x21C\x225\x5\xBC_\x2\x21D\x21F"+ - "\x5\x126\x94\x2\x21E\x21D\x3\x2\x2\x2\x21E\x21F\x3\x2\x2\x2\x21F\x220"+ - "\x3\x2\x2\x2\x220\x222\a)\x2\x2\x221\x223\x5\x126\x94\x2\x222\x221\x3"+ - "\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2\x224\x226\x5\xBC"+ - "_\x2\x225\x21E\x3\x2\x2\x2\x225\x226\x3\x2\x2\x2\x226\x1F\x3\x2\x2\x2"+ - "\x227\x228\a<\x2\x2\x228!\x3\x2\x2\x2\x229\x22A\a\x44\x2\x2\x22A\x22B"+ - "\x5\x126\x94\x2\x22B\x22C\x5\xBC_\x2\x22C#\x3\x2\x2\x2\x22D\x22E\a\x45"+ - "\x2\x2\x22E\x22F\x5\x126\x94\x2\x22F\x230\x5\xBC_\x2\x230%\x3\x2\x2\x2"+ - "\x231\x241\aG\x2\x2\x232\x233\x5\x126\x94\x2\x233\x23E\x5\xD0i\x2\x234"+ - "\x236\x5\x126\x94\x2\x235\x234\x3\x2\x2\x2\x235\x236\x3\x2\x2\x2\x236"+ - "\x237\x3\x2\x2\x2\x237\x239\a)\x2\x2\x238\x23A\x5\x126\x94\x2\x239\x238"+ - "\x3\x2\x2\x2\x239\x23A\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2\x23B\x23D\x5"+ - "\xD0i\x2\x23C\x235\x3\x2\x2\x2\x23D\x240\x3\x2\x2\x2\x23E\x23C\x3\x2\x2"+ - "\x2\x23E\x23F\x3\x2\x2\x2\x23F\x242\x3\x2\x2\x2\x240\x23E\x3\x2\x2\x2"+ - "\x241\x232\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\'\x3\x2\x2\x2\x243\x244"+ - "\x5\x110\x89\x2\x244\x245\x5\x126\x94\x2\x245\x247\x3\x2\x2\x2\x246\x243"+ - "\x3\x2\x2\x2\x246\x247\x3\x2\x2\x2\x247\x248\x3\x2\x2\x2\x248\x249\aH"+ - "\x2\x2\x249\x24A\x5\x126\x94\x2\x24A\x255\x5*\x16\x2\x24B\x24D\x5\x126"+ - "\x94\x2\x24C\x24B\x3\x2\x2\x2\x24C\x24D\x3\x2\x2\x2\x24D\x24E\x3\x2\x2"+ - "\x2\x24E\x250\a)\x2\x2\x24F\x251\x5\x126\x94\x2\x250\x24F\x3\x2\x2\x2"+ - "\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x254\x5*\x16\x2\x253"+ - "\x24C\x3\x2\x2\x2\x254\x257\x3\x2\x2\x2\x255\x253\x3\x2\x2\x2\x255\x256"+ - "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x255\x3\x2\x2\x2\x258\x25A\x5\xF8"+ - "}\x2\x259\x25B\x5\x10E\x88\x2\x25A\x259\x3\x2\x2\x2\x25A\x25B\x3\x2\x2"+ - "\x2\x25B\x25F\x3\x2\x2\x2\x25C\x25D\x5\x126\x94\x2\x25D\x25E\x5\xFA~\x2"+ - "\x25E\x260\x3\x2\x2\x2\x25F\x25C\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2\x260"+ - "\x262\x3\x2\x2\x2\x261\x263\x5\x126\x94\x2\x262\x261\x3\x2\x2\x2\x262"+ - "\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\a\xE2\x2\x2\x265\x267"+ - "\x5\x126\x94\x2\x266\x265\x3\x2\x2\x2\x266\x267\x3\x2\x2\x2\x267\x268"+ - "\x3\x2\x2\x2\x268\x269\x5\xBC_\x2\x269+\x3\x2\x2\x2\x26A\x26C\aJ\x2\x2"+ - "\x26B\x26D\x5\x126\x94\x2\x26C\x26B\x3\x2\x2\x2\x26C\x26D\x3\x2\x2\x2"+ - "\x26D\x26E\x3\x2\x2\x2\x26E\x270\a\xE2\x2\x2\x26F\x271\x5\x126\x94\x2"+ - "\x270\x26F\x3\x2\x2\x2\x270\x271\x3\x2\x2\x2\x271\x272\x3\x2\x2\x2\x272"+ - "\x273\x5\xBC_\x2\x273-\x3\x2\x2\x2\x274\x275\x5\x110\x89\x2\x275\x276"+ - "\x5\x126\x94\x2\x276\x278\x3\x2\x2\x2\x277\x274\x3\x2\x2\x2\x277\x278"+ - "\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\aK\x2\x2\x27A\x27D\x5\x126"+ - "\x94\x2\x27B\x27C\a\xAD\x2\x2\x27C\x27E\x5\x126\x94\x2\x27D\x27B\x3\x2"+ - "\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x284\x3\x2\x2\x2\x27F\x281\ax\x2\x2"+ - "\x280\x282\x5\x10E\x88\x2\x281\x280\x3\x2\x2\x2\x281\x282\x3\x2\x2\x2"+ - "\x282\x285\x3\x2\x2\x2\x283\x285\a\xCA\x2\x2\x284\x27F\x3\x2\x2\x2\x284"+ - "\x283\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x287\x5\x126\x94\x2\x287"+ - "\x289\x5\xF8}\x2\x288\x28A\x5\x10E\x88\x2\x289\x288\x3\x2\x2\x2\x289\x28A"+ - "\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\x5\x126\x94\x2\x28C\x28D"+ - "\a\x8A\x2\x2\x28D\x28E\x5\x126\x94\x2\x28E\x294\a\xF5\x2\x2\x28F\x290"+ - "\x5\x126\x94\x2\x290\x291\a\x35\x2\x2\x291\x292\x5\x126\x94\x2\x292\x293"+ - "\a\xF5\x2\x2\x293\x295\x3\x2\x2\x2\x294\x28F\x3\x2\x2\x2\x294\x295\x3"+ - "\x2\x2\x2\x295\x29A\x3\x2\x2\x2\x296\x298\x5\x126\x94\x2\x297\x296\x3"+ - "\x2\x2\x2\x297\x298\x3\x2\x2\x2\x298\x299\x3\x2\x2\x2\x299\x29B\x5\xEE"+ - "x\x2\x29A\x297\x3\x2\x2\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29F\x3\x2\x2\x2"+ - "\x29C\x29D\x5\x126\x94\x2\x29D\x29E\x5\xFA~\x2\x29E\x2A0\x3\x2\x2\x2\x29F"+ - "\x29C\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0/\x3\x2\x2\x2\x2A1\x2A2\t"+ - "\x3\x2\x2\x2A2\x2A3\x5\x126\x94\x2\x2A3\x2AE\x5\x104\x83\x2\x2A4\x2A6"+ - "\x5\x126\x94\x2\x2A5\x2A4\x3\x2\x2\x2\x2A5\x2A6\x3\x2\x2\x2\x2A6\x2A7"+ - "\x3\x2\x2\x2\x2A7\x2A9\a)\x2\x2\x2A8\x2AA\x5\x126\x94\x2\x2A9\x2A8\x3"+ - "\x2\x2\x2\x2A9\x2AA\x3\x2\x2\x2\x2AA\x2AB\x3\x2\x2\x2\x2AB\x2AD\x5\x104"+ - "\x83\x2\x2AC\x2A5\x3\x2\x2\x2\x2AD\x2B0\x3\x2\x2\x2\x2AE\x2AC\x3\x2\x2"+ - "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x31\x3\x2\x2\x2\x2B0\x2AE\x3\x2\x2\x2\x2B1"+ - "\x2B2\aY\x2\x2\x2B2\x2B3\x5\x126\x94\x2\x2B3\x2B5\x5\xBC_\x2\x2B4\x2B6"+ - "\x5\x126\x94\x2\x2B5\x2B4\x3\x2\x2\x2\x2B5\x2B6\x3\x2\x2\x2\x2B6\x2D8"+ - "\x3\x2\x2\x2\x2B7\x2B8\aY\x2\x2\x2B8\x2B9\x5\x126\x94\x2\x2B9\x2BB\x5"+ - "\xBC_\x2\x2BA\x2BC\x5\x126\x94\x2\x2BB\x2BA\x3\x2\x2\x2\x2BB\x2BC\x3\x2"+ - "\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BF\a)\x2\x2\x2BE\x2C0\x5\x126\x94"+ - "\x2\x2BF\x2BE\x3\x2\x2\x2\x2BF\x2C0\x3\x2\x2\x2\x2C0\x2C1\x3\x2\x2\x2"+ - "\x2C1\x2C2\x5\xBC_\x2\x2C2\x2D8\x3\x2\x2\x2\x2C3\x2C4\aY\x2\x2\x2C4\x2C5"+ - "\x5\x126\x94\x2\x2C5\x2C7\x5\xBC_\x2\x2C6\x2C8\x5\x126\x94\x2\x2C7\x2C6"+ - "\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9\x3\x2\x2\x2\x2C9\x2CB\a)"+ - "\x2\x2\x2CA\x2CC\x5\x126\x94\x2\x2CB\x2CA\x3\x2\x2\x2\x2CB\x2CC\x3\x2"+ - "\x2\x2\x2CC\x2CD\x3\x2\x2\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x126\x94"+ + "\x5s\x8B0\ns\x3s\x5s\x8B3\ns\x3s\x3s\x5s\x8B7\ns\x3s\x3s\x5s\x8BB\ns\x5"+ + "s\x8BD\ns\x3s\x3s\x5s\x8C1\ns\x3s\x5s\x8C4\ns\x3s\x5s\x8C7\ns\x3s\x3s"+ + "\x3s\x3s\as\x8CD\ns\fs\xEs\x8D0\vs\x3t\x3t\x5t\x8D4\nt\x3t\x3t\x5t\x8D8"+ + "\nt\x6t\x8DA\nt\rt\xEt\x8DB\x3t\x5t\x8DF\nt\x3t\x5t\x8E2\nt\x3t\x5t\x8E5"+ + "\nt\x3t\x3t\x3t\x3t\at\x8EB\nt\ft\xEt\x8EE\vt\x3u\x3u\x5u\x8F2\nu\x3u"+ + "\x3u\x5u\x8F6\nu\x3v\x5v\x8F9\nv\x3v\x3v\x3w\x5w\x8FE\nw\x3w\x5w\x901"+ + "\nw\x3w\x3w\x5w\x905\nw\aw\x907\nw\fw\xEw\x90A\vw\x3w\x3w\x5w\x90E\nw"+ + "\x3w\x3w\x5w\x912\nw\x3w\x5w\x915\nw\aw\x917\nw\fw\xEw\x91A\vw\x3x\x5"+ + "x\x91D\nx\x3x\x3x\x5x\x921\nx\x3x\x5x\x924\nx\x3x\x3x\x3y\x3y\x5y\x92A"+ + "\ny\x3y\x3y\x5y\x92E\ny\x3z\x3z\x5z\x932\nz\x3z\x3z\x5z\x936\nz\x3z\x3"+ + "z\x5z\x93A\nz\x3z\az\x93D\nz\fz\xEz\x940\vz\x5z\x942\nz\x3z\x5z\x945\n"+ + "z\x3z\x3z\x3{\x3{\x5{\x94B\n{\x3{\x3{\x5{\x94F\n{\x3{\x3{\x5{\x953\n{"+ + "\x3{\x3{\x5{\x957\n{\x3{\x5{\x95A\n{\x3{\x3{\x5{\x95E\n{\x3{\x5{\x961"+ + "\n{\x3{\x5{\x964\n{\x3{\x5{\x967\n{\x3{\x5{\x96A\n{\x3{\x5{\x96D\n{\x3"+ + "|\x3|\x5|\x971\n|\x3|\x3|\x3}\x3}\x5}\x977\n}\x3}\x3}\x5}\x97B\n}\x3}"+ + "\a}\x97E\n}\f}\xE}\x981\v}\x3~\x3~\x3~\x3~\x3~\x5~\x988\n~\x3~\x3~\x3"+ + "\x7F\x3\x7F\x5\x7F\x98E\n\x7F\x3\x80\x3\x80\x5\x80\x992\n\x80\x3\x81\x3"+ + "\x81\x5\x81\x996\n\x81\x3\x81\x3\x81\x5\x81\x99A\n\x81\x3\x81\x3\x81\x5"+ + "\x81\x99E\n\x81\x3\x81\x5\x81\x9A1\n\x81\x3\x82\x3\x82\x3\x83\x3\x83\x3"+ + "\x84\x3\x84\x3\x84\a\x84\x9AA\n\x84\f\x84\xE\x84\x9AD\v\x84\x3\x85\x3"+ + "\x85\x5\x85\x9B1\n\x85\x3\x85\x3\x85\x5\x85\x9B5\n\x85\x3\x86\x3\x86\x5"+ + "\x86\x9B9\n\x86\x3\x86\x3\x86\x5\x86\x9BD\n\x86\x3\x86\x5\x86\x9C0\n\x86"+ + "\x3\x87\x3\x87\x5\x87\x9C4\n\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3"+ + "\x88\x3\x88\x3\x88\x3\x88\x3\x88\x5\x88\x9D0\n\x88\x3\x89\x3\x89\x3\x8A"+ + "\x3\x8A\x5\x8A\x9D6\n\x8A\x3\x8A\x5\x8A\x9D9\n\x8A\x3\x8A\x3\x8A\x5\x8A"+ + "\x9DD\n\x8A\x3\x8A\x5\x8A\x9E0\n\x8A\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8D"+ + "\x3\x8D\x3\x8E\x3\x8E\x3\x8F\x5\x8F\x9EB\n\x8F\x3\x8F\x6\x8F\x9EE\n\x8F"+ + "\r\x8F\xE\x8F\x9EF\x3\x8F\x3\x8F\x5\x8F\x9F4\n\x8F\x3\x8F\x5\x8F\x9F7"+ + "\n\x8F\x3\x8F\x5\x8F\x9FA\n\x8F\x3\x8F\x5\x8F\x9FD\n\x8F\x3\x90\x3\x90"+ + "\x5\x90\xA01\n\x90\x3\x90\x3\x90\x5\x90\xA05\n\x90\a\x90\xA07\n\x90\f"+ + "\x90\xE\x90\xA0A\v\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x93\x3\x93\x6\x93"+ + "\xA12\n\x93\r\x93\xE\x93\xA13\x3\x94\x3\x94\x3\x94\x5\x94\xA19\n\x94\x3"+ + "\x95\x3\x95\x3\x96\x3\x96\x3\x96\x5\x96\xA20\n\x96\x3\x96\x3\x96\x3\x96"+ + "\x5\x96\xA25\n\x96\x3\x96\x3\x96\x5\x96\xA29\n\x96\x3\x96\x6\x96\xA2C"+ + "\n\x96\r\x96\xE\x96\xA2D\x3\x96\x5\x96\xA31\n\x96\x3\x96\x5\x96\xA34\n"+ + "\x96\x3\x96\x3\x96\x5\x96\xA38\n\x96\x3\x96\x3\x96\x5\x96\xA3C\n\x96\x3"+ + "\x96\x3\x96\x5\x96\xA40\n\x96\x3\x96\x5\x96\xA43\n\x96\x3\x96\x3\x96\x3"+ + "\x96\x5\x96\xA48\n\x96\x3\x96\x3\x96\x5\x96\xA4C\n\x96\x3\x96\x6\x96\xA4F"+ + "\n\x96\r\x96\xE\x96\xA50\x3\x96\x5\x96\xA54\n\x96\x3\x96\x3\x96\x5\x96"+ + "\xA58\n\x96\x5\x96\xA5A\n\x96\x3\x97\x3\x97\x5\x97\xA5E\n\x97\x3\x98\x6"+ + "\x98\xA61\n\x98\r\x98\xE\x98\xA62\x3\x98\x2\x2\x3\xBC\x99\x2\x2\x4\x2"+ + "\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2"+ + "\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36"+ + "\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2"+ + "T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2"+ + "r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2"+ + "\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2"+ + "\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2"+ + "\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2"+ + "\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2"+ + "\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2"+ + "\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102"+ + "\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114"+ + "\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126"+ + "\x2\x128\x2\x12A\x2\x12C\x2\x12E\x2\x2\x1A\x5\x2==II\xCC\xCC\x3\x2LX\x4"+ + "\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81\xA5\xA5"+ + "\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))++\x4\x2\xC5"+ + "\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82"+ + "\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3\x2?@\r\x2"+ + "\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6"+ + "\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE\'\x2\x3"+ + "\x17\x19#%(\x34\x38:<>\x41\x44\x46IJYY\\\\\x63\x63kktu~~\x80\x80\x82\x85"+ + "\x87\x87\x8A\x8B\x91\x95\x97\x9A\x9F\x9F\xA4\xA4\xA6\xA7\xB1\xB1\xB6\xB6"+ + "\xBA\xBA\xBC\xBD\xC0\xC0\xC2\xC2\xC4\xC5\xC9\xC9\xCB\xD0\xD2\xD3\xD5\xD7"+ + "\xDC\xDC\xDE\xDE\x105\x105(\x2\x18\x18$$\x33\x33\x39\x39==\x42\x43GHK"+ + "XZ[^_\x65\x65hjlsv}\x7F\x7F\x81\x81\x86\x86\x88\x89\x8C\x90\x96\x96\x9B"+ + "\x9C\x9E\x9E\xA5\xA5\xA8\xA9\xAE\xB0\xB2\xB5\xB7\xB9\xBB\xBB\xBE\xBF\xC1"+ + "\xC1\xC3\xC3\xC6\xC8\xCA\xCA\xD1\xD1\xD4\xD4\xD8\xDB\xDD\xDD\x106\x107"+ + "\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBFE\x2\x130\x3\x2\x2\x2\x4\x134"+ + "\x3\x2\x2\x2\x6\x14F\x3\x2\x2\x2\b\x15A\x3\x2\x2\x2\n\x16C\x3\x2\x2\x2"+ + "\f\x184\x3\x2\x2\x2\xE\x188\x3\x2\x2\x2\x10\x19D\x3\x2\x2\x2\x12\x1A7"+ + "\x3\x2\x2\x2\x14\x1A9\x3\x2\x2\x2\x16\x1B9\x3\x2\x2\x2\x18\x1BB\x3\x2"+ + "\x2\x2\x1A\x1D3\x3\x2\x2\x2\x1C\x220\x3\x2\x2\x2\x1E\x222\x3\x2\x2\x2"+ + " \x22F\x3\x2\x2\x2\"\x231\x3\x2\x2\x2$\x235\x3\x2\x2\x2&\x239\x3\x2\x2"+ + "\x2(\x24E\x3\x2\x2\x2*\x260\x3\x2\x2\x2,\x272\x3\x2\x2\x2.\x27F\x3\x2"+ + "\x2\x2\x30\x2A9\x3\x2\x2\x2\x32\x2DF\x3\x2\x2\x2\x34\x2FE\x3\x2\x2\x2"+ + "\x36\x300\x3\x2\x2\x2\x38\x305\x3\x2\x2\x2:\x313\x3\x2\x2\x2<\x320\x3"+ + "\x2\x2\x2>\x330\x3\x2\x2\x2@\x337\x3\x2\x2\x2\x42\x341\x3\x2\x2\x2\x44"+ + "\x343\x3\x2\x2\x2\x46\x34F\x3\x2\x2\x2H\x362\x3\x2\x2\x2J\x385\x3\x2\x2"+ + "\x2L\x3A5\x3\x2\x2\x2N\x3BB\x3\x2\x2\x2P\x3BF\x3\x2\x2\x2R\x3DD\x3\x2"+ + "\x2\x2T\x3DF\x3\x2\x2\x2V\x3E8\x3\x2\x2\x2X\x3EA\x3\x2\x2\x2Z\x3F3\x3"+ + "\x2\x2\x2\\\x3F8\x3\x2\x2\x2^\x3FC\x3\x2\x2\x2`\x40B\x3\x2\x2\x2\x62\x411"+ + "\x3\x2\x2\x2\x64\x41D\x3\x2\x2\x2\x66\x429\x3\x2\x2\x2h\x42D\x3\x2\x2"+ + "\x2j\x441\x3\x2\x2\x2l\x44D\x3\x2\x2\x2n\x45B\x3\x2\x2\x2p\x45F\x3\x2"+ + "\x2\x2r\x467\x3\x2\x2\x2t\x473\x3\x2\x2\x2v\x487\x3\x2\x2\x2x\x49B\x3"+ + "\x2\x2\x2z\x4E0\x3\x2\x2\x2|\x4F3\x3\x2\x2\x2~\x4F5\x3\x2\x2\x2\x80\x505"+ + "\x3\x2\x2\x2\x82\x525\x3\x2\x2\x2\x84\x53D\x3\x2\x2\x2\x86\x552\x3\x2"+ + "\x2\x2\x88\x568\x3\x2\x2\x2\x8A\x57B\x3\x2\x2\x2\x8C\x581\x3\x2\x2\x2"+ + "\x8E\x595\x3\x2\x2\x2\x90\x5A7\x3\x2\x2\x2\x92\x5A9\x3\x2\x2\x2\x94\x5B1"+ + "\x3\x2\x2\x2\x96\x5B3\x3\x2\x2\x2\x98\x5B7\x3\x2\x2\x2\x9A\x5C3\x3\x2"+ + "\x2\x2\x9C\x5CF\x3\x2\x2\x2\x9E\x5EB\x3\x2\x2\x2\xA0\x5F7\x3\x2\x2\x2"+ + "\xA2\x616\x3\x2\x2\x2\xA4\x618\x3\x2\x2\x2\xA6\x62E\x3\x2\x2\x2\xA8\x630"+ + "\x3\x2\x2\x2\xAA\x63D\x3\x2\x2\x2\xAC\x649\x3\x2\x2\x2\xAE\x655\x3\x2"+ + "\x2\x2\xB0\x65A\x3\x2\x2\x2\xB2\x671\x3\x2\x2\x2\xB4\x67E\x3\x2\x2\x2"+ + "\xB6\x68C\x3\x2\x2\x2\xB8\x6A4\x3\x2\x2\x2\xBA\x6A8\x3\x2\x2\x2\xBC\x6E9"+ + "\x3\x2\x2\x2\xBE\x75C\x3\x2\x2\x2\xC0\x769\x3\x2\x2\x2\xC2\x772\x3\x2"+ + "\x2\x2\xC4\x780\x3\x2\x2\x2\xC6\x79C\x3\x2\x2\x2\xC8\x7A5\x3\x2\x2\x2"+ + "\xCA\x7B1\x3\x2\x2\x2\xCC\x7BA\x3\x2\x2\x2\xCE\x7BC\x3\x2\x2\x2\xD0\x7CA"+ + "\x3\x2\x2\x2\xD2\x7CE\x3\x2\x2\x2\xD4\x814\x3\x2\x2\x2\xD6\x818\x3\x2"+ + "\x2\x2\xD8\x81B\x3\x2\x2\x2\xDA\x83F\x3\x2\x2\x2\xDC\x855\x3\x2\x2\x2"+ + "\xDE\x857\x3\x2\x2\x2\xE0\x86F\x3\x2\x2\x2\xE2\x894\x3\x2\x2\x2\xE4\x8AC"+ + "\x3\x2\x2\x2\xE6\x8D3\x3\x2\x2\x2\xE8\x8EF\x3\x2\x2\x2\xEA\x8F8\x3\x2"+ + "\x2\x2\xEC\x908\x3\x2\x2\x2\xEE\x91C\x3\x2\x2\x2\xF0\x927\x3\x2\x2\x2"+ + "\xF2\x92F\x3\x2\x2\x2\xF4\x94A\x3\x2\x2\x2\xF6\x96E\x3\x2\x2\x2\xF8\x974"+ + "\x3\x2\x2\x2\xFA\x987\x3\x2\x2\x2\xFC\x98D\x3\x2\x2\x2\xFE\x991\x3\x2"+ + "\x2\x2\x100\x993\x3\x2\x2\x2\x102\x9A2\x3\x2\x2\x2\x104\x9A4\x3\x2\x2"+ + "\x2\x106\x9A6\x3\x2\x2\x2\x108\x9AE\x3\x2\x2\x2\x10A\x9B6\x3\x2\x2\x2"+ + "\x10C\x9C3\x3\x2\x2\x2\x10E\x9CF\x3\x2\x2\x2\x110\x9D1\x3\x2\x2\x2\x112"+ + "\x9D5\x3\x2\x2\x2\x114\x9E1\x3\x2\x2\x2\x116\x9E3\x3\x2\x2\x2\x118\x9E5"+ + "\x3\x2\x2\x2\x11A\x9E7\x3\x2\x2\x2\x11C\x9FC\x3\x2\x2\x2\x11E\xA08\x3"+ + "\x2\x2\x2\x120\xA0B\x3\x2\x2\x2\x122\xA0D\x3\x2\x2\x2\x124\xA0F\x3\x2"+ + "\x2\x2\x126\xA15\x3\x2\x2\x2\x128\xA1A\x3\x2\x2\x2\x12A\xA59\x3\x2\x2"+ + "\x2\x12C\xA5D\x3\x2\x2\x2\x12E\xA60\x3\x2\x2\x2\x130\x131\x5\x4\x3\x2"+ + "\x131\x132\a\x2\x2\x3\x132\x3\x3\x2\x2\x2\x133\x135\x5\x12E\x98\x2\x134"+ + "\x133\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x13A"+ + "\x5\x11E\x90\x2\x137\x138\x5\x6\x4\x2\x138\x139\x5\x11E\x90\x2\x139\x13B"+ + "\x3\x2\x2\x2\x13A\x137\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x3"+ + "\x2\x2\x2\x13C\x13E\x5\b\x5\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ + "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x11E\x90\x2\x140\x142\x5\f\a\x2"+ + "\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143"+ + "\x145\x5\x11E\x90\x2\x144\x146\x5\xE\b\x2\x145\x144\x3\x2\x2\x2\x145\x146"+ + "\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x149\x5\x11E\x90\x2\x148\x14A"+ + "\x5\x14\v\x2\x149\x148\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2\x14A\x14B\x3"+ + "\x2\x2\x2\x14B\x14D\x5\x11E\x90\x2\x14C\x14E\x5\x12E\x98\x2\x14D\x14C"+ + "\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E\x5\x3\x2\x2\x2\x14F\x150\a\xD7"+ + "\x2\x2\x150\x151\x5\x12E\x98\x2\x151\x153\x5\x110\x89\x2\x152\x154\x5"+ + "\x12E\x98\x2\x153\x152\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x156\x3"+ + "\x2\x2\x2\x155\x157\a\x46\x2\x2\x156\x155\x3\x2\x2\x2\x156\x157\x3\x2"+ + "\x2\x2\x157\x158\x3\x2\x2\x2\x158\x159\x5\x11E\x90\x2\x159\a\x3\x2\x2"+ + "\x2\x15A\x162\a;\x2\x2\x15B\x15C\x5\x12E\x98\x2\x15C\x15D\a\x103\x2\x2"+ + "\x15D\x15E\x5\x12E\x98\x2\x15E\x160\x5\xFC\x7F\x2\x15F\x161\x5\x12E\x98"+ + "\x2\x160\x15F\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x163\x3\x2\x2\x2"+ + "\x162\x15B\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3\x2\x2\x2\x164"+ + "\x166\x5\x11E\x90\x2\x165\x167\x5\n\x6\x2\x166\x165\x3\x2\x2\x2\x167\x168"+ + "\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3"+ + "\x2\x2\x2\x16A\x16B\ai\x2\x2\x16B\t\x3\x2\x2\x2\x16C\x170\x5\xFC\x7F\x2"+ + "\x16D\x16F\x5\x12E\x98\x2\x16E\x16D\x3\x2\x2\x2\x16F\x172\x3\x2\x2\x2"+ + "\x170\x16E\x3\x2\x2\x2\x170\x171\x3\x2\x2\x2\x171\x173\x3\x2\x2\x2\x172"+ + "\x170\x3\x2\x2\x2\x173\x177\a\xE2\x2\x2\x174\x176\x5\x12E\x98\x2\x175"+ + "\x174\x3\x2\x2\x2\x176\x179\x3\x2\x2\x2\x177\x175\x3\x2\x2\x2\x177\x178"+ + "\x3\x2\x2\x2\x178\x17A\x3\x2\x2\x2\x179\x177\x3\x2\x2\x2\x17A\x17D\x5"+ + "\x10E\x88\x2\x17B\x17C\a*\x2\x2\x17C\x17E\x5\x110\x89\x2\x17D\x17B\x3"+ + "\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x180\x5\x11E"+ + "\x90\x2\x180\v\x3\x2\x2\x2\x181\x182\x5\x18\r\x2\x182\x183\x5\x11E\x90"+ + "\x2\x183\x185\x3\x2\x2\x2\x184\x181\x3\x2\x2\x2\x185\x186\x3\x2\x2\x2"+ + "\x186\x184\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\r\x3\x2\x2\x2\x188\x18E"+ + "\x5\x12\n\x2\x189\x18A\x5\x11E\x90\x2\x18A\x18B\x5\x12\n\x2\x18B\x18D"+ + "\x3\x2\x2\x2\x18C\x189\x3\x2\x2\x2\x18D\x190\x3\x2\x2\x2\x18E\x18C\x3"+ + "\x2\x2\x2\x18E\x18F\x3\x2\x2\x2\x18F\x191\x3\x2\x2\x2\x190\x18E\x3\x2"+ + "\x2\x2\x191\x192\x5\x11E\x90\x2\x192\xF\x3\x2\x2\x2\x193\x194\a\xA0\x2"+ + "\x2\x194\x195\x5\x12E\x98\x2\x195\x196\x5\x110\x89\x2\x196\x19E\x3\x2"+ + "\x2\x2\x197\x198\a\xA2\x2\x2\x198\x199\x5\x12E\x98\x2\x199\x19A\t\x2\x2"+ + "\x2\x19A\x19E\x3\x2\x2\x2\x19B\x19E\a\xA1\x2\x2\x19C\x19E\a\xA3\x2\x2"+ + "\x19D\x193\x3\x2\x2\x2\x19D\x197\x3\x2\x2\x2\x19D\x19B\x3\x2\x2\x2\x19D"+ + "\x19C\x3\x2\x2\x2\x19E\x11\x3\x2\x2\x2\x19F\x1A8\x5.\x18\x2\x1A0\x1A8"+ + "\x5\x38\x1D\x2\x1A1\x1A8\x5@!\x2\x1A2\x1A8\x5(\x15\x2\x1A3\x1A8\x5\\/"+ + "\x2\x1A4\x1A8\x5\xC0\x61\x2\x1A5\x1A8\x5\x10\t\x2\x1A6\x1A8\x5\xB4[\x2"+ + "\x1A7\x19F\x3\x2\x2\x2\x1A7\x1A0\x3\x2\x2\x2\x1A7\x1A1\x3\x2\x2\x2\x1A7"+ + "\x1A2\x3\x2\x2\x2\x1A7\x1A3\x3\x2\x2\x2\x1A7\x1A4\x3\x2\x2\x2\x1A7\x1A5"+ + "\x3\x2\x2\x2\x1A7\x1A6\x3\x2\x2\x2\x1A8\x13\x3\x2\x2\x2\x1A9\x1AF\x5\x16"+ + "\f\x2\x1AA\x1AB\x5\x11E\x90\x2\x1AB\x1AC\x5\x16\f\x2\x1AC\x1AE\x3\x2\x2"+ + "\x2\x1AD\x1AA\x3\x2\x2\x2\x1AE\x1B1\x3\x2\x2\x2\x1AF\x1AD\x3\x2\x2\x2"+ + "\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B2\x3\x2\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B2"+ + "\x1B3\x5\x11E\x90\x2\x1B3\x15\x3\x2\x2\x2\x1B4\x1BA\x5J&\x2\x1B5\x1BA"+ + "\x5\x80\x41\x2\x1B6\x1BA\x5\x82\x42\x2\x1B7\x1BA\x5\x84\x43\x2\x1B8\x1BA"+ + "\x5\xB0Y\x2\x1B9\x1B4\x3\x2\x2\x2\x1B9\x1B5\x3\x2\x2\x2\x1B9\x1B6\x3\x2"+ + "\x2\x2\x1B9\x1B7\x3\x2\x2\x2\x1B9\x1B8\x3\x2\x2\x2\x1BA\x17\x3\x2\x2\x2"+ + "\x1BB\x1BC\a\x37\x2\x2\x1BC\x1BD\x5\x12E\x98\x2\x1BD\x1BF\x5\xDCo\x2\x1BE"+ + "\x1C0\x5\x12E\x98\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2\x1C0"+ + "\x1C1\x3\x2\x2\x2\x1C1\x1C3\a\xE2\x2\x2\x1C2\x1C4\x5\x12E\x98\x2\x1C3"+ + "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1D0"+ + "\x5\x10E\x88\x2\x1C6\x1C8\x5\x12E\x98\x2\x1C7\x1C6\x3\x2\x2\x2\x1C7\x1C8"+ + "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x1CB\a)\x2\x2\x1CA\x1CC\x5\x12E"+ + "\x98\x2\x1CB\x1CA\x3\x2\x2\x2\x1CB\x1CC\x3\x2\x2\x2\x1CC\x1CD\x3\x2\x2"+ + "\x2\x1CD\x1CF\x5\x10E\x88\x2\x1CE\x1C7\x3\x2\x2\x2\x1CF\x1D2\x3\x2\x2"+ + "\x2\x1D0\x1CE\x3\x2\x2\x2\x1D0\x1D1\x3\x2\x2\x2\x1D1\x19\x3\x2\x2\x2\x1D2"+ + "\x1D0\x3\x2\x2\x2\x1D3\x1D9\x5\x1C\xF\x2\x1D4\x1D5\x5\x11E\x90\x2\x1D5"+ + "\x1D6\x5\x1C\xF\x2\x1D6\x1D8\x3\x2\x2\x2\x1D7\x1D4\x3\x2\x2\x2\x1D8\x1DB"+ + "\x3\x2\x2\x2\x1D9\x1D7\x3\x2\x2\x2\x1D9\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3"+ + "\x2\x2\x2\x1DB\x1D9\x3\x2\x2\x2\x1DC\x1DD\x5\x11E\x90\x2\x1DD\x1B\x3\x2"+ + "\x2\x2\x1DE\x221\x5\x10C\x87\x2\x1DF\x221\x5\x1E\x10\x2\x1E0\x221\x5\x18"+ + "\r\x2\x1E1\x221\x5 \x11\x2\x1E2\x221\x5\"\x12\x2\x1E3\x221\x5$\x13\x2"+ + "\x1E4\x221\x5&\x14\x2\x1E5\x221\x5(\x15\x2\x1E6\x221\x5,\x17\x2\x1E7\x221"+ + "\x5\x32\x1A\x2\x1E8\x221\x5\x30\x19\x2\x1E9\x221\x5\x34\x1B\x2\x1EA\x221"+ + "\x5\x36\x1C\x2\x1EB\x221\x5<\x1F\x2\x1EC\x221\x5> \x2\x1ED\x221\x5\x42"+ + "\"\x2\x1EE\x221\x5\xD2j\x2\x1EF\x221\x5\x44#\x2\x1F0\x221\x5\x46$\x2\x1F1"+ + "\x221\x5H%\x2\x1F2\x221\x5L\'\x2\x1F3\x221\x5N(\x2\x1F4\x221\x5P)\x2\x1F5"+ + "\x221\x5R*\x2\x1F6\x221\x5\\/\x2\x1F7\x221\x5^\x30\x2\x1F8\x221\x5`\x31"+ + "\x2\x1F9\x221\x5\x62\x32\x2\x1FA\x221\x5\x64\x33\x2\x1FB\x221\x5\x66\x34"+ + "\x2\x1FC\x221\x5h\x35\x2\x1FD\x221\x5j\x36\x2\x1FE\x221\x5l\x37\x2\x1FF"+ + "\x221\x5n\x38\x2\x200\x221\x5p\x39\x2\x201\x221\x5r:\x2\x202\x221\x5t"+ + ";\x2\x203\x221\x5v<\x2\x204\x221\x5x=\x2\x205\x221\x5~@\x2\x206\x221\x5"+ + "\x86\x44\x2\x207\x221\x5\x88\x45\x2\x208\x221\x5\x8A\x46\x2\x209\x221"+ + "\x5\x8CG\x2\x20A\x221\x5\x90I\x2\x20B\x221\x5\x92J\x2\x20C\x221\x5\x94"+ + "K\x2\x20D\x221\x5\x96L\x2\x20E\x221\x5\x98M\x2\x20F\x221\x5\x9AN\x2\x210"+ + "\x221\x5\x9CO\x2\x211\x221\x5\x9EP\x2\x212\x221\x5\xA0Q\x2\x213\x221\x5"+ + "\xA8U\x2\x214\x221\x5\xAAV\x2\x215\x221\x5\xACW\x2\x216\x221\x5\xAEX\x2"+ + "\x217\x221\x5\xB2Z\x2\x218\x221\x5\xB8]\x2\x219\x221\x5\xBA^\x2\x21A\x221"+ + "\x5\xC0\x61\x2\x21B\x221\x5\xC6\x64\x2\x21C\x221\x5\xC8\x65\x2\x21D\x221"+ + "\x5\xCA\x66\x2\x21E\x221\x5\xCEh\x2\x21F\x221\x5\xD6l\x2\x220\x1DE\x3"+ + "\x2\x2\x2\x220\x1DF\x3\x2\x2\x2\x220\x1E0\x3\x2\x2\x2\x220\x1E1\x3\x2"+ + "\x2\x2\x220\x1E2\x3\x2\x2\x2\x220\x1E3\x3\x2\x2\x2\x220\x1E4\x3\x2\x2"+ + "\x2\x220\x1E5\x3\x2\x2\x2\x220\x1E6\x3\x2\x2\x2\x220\x1E7\x3\x2\x2\x2"+ + "\x220\x1E8\x3\x2\x2\x2\x220\x1E9\x3\x2\x2\x2\x220\x1EA\x3\x2\x2\x2\x220"+ + "\x1EB\x3\x2\x2\x2\x220\x1EC\x3\x2\x2\x2\x220\x1ED\x3\x2\x2\x2\x220\x1EE"+ + "\x3\x2\x2\x2\x220\x1EF\x3\x2\x2\x2\x220\x1F0\x3\x2\x2\x2\x220\x1F1\x3"+ + "\x2\x2\x2\x220\x1F2\x3\x2\x2\x2\x220\x1F3\x3\x2\x2\x2\x220\x1F4\x3\x2"+ + "\x2\x2\x220\x1F5\x3\x2\x2\x2\x220\x1F6\x3\x2\x2\x2\x220\x1F7\x3\x2\x2"+ + "\x2\x220\x1F8\x3\x2\x2\x2\x220\x1F9\x3\x2\x2\x2\x220\x1FA\x3\x2\x2\x2"+ + "\x220\x1FB\x3\x2\x2\x2\x220\x1FC\x3\x2\x2\x2\x220\x1FD\x3\x2\x2\x2\x220"+ + "\x1FE\x3\x2\x2\x2\x220\x1FF\x3\x2\x2\x2\x220\x200\x3\x2\x2\x2\x220\x201"+ + "\x3\x2\x2\x2\x220\x202\x3\x2\x2\x2\x220\x203\x3\x2\x2\x2\x220\x204\x3"+ + "\x2\x2\x2\x220\x205\x3\x2\x2\x2\x220\x206\x3\x2\x2\x2\x220\x207\x3\x2"+ + "\x2\x2\x220\x208\x3\x2\x2\x2\x220\x209\x3\x2\x2\x2\x220\x20A\x3\x2\x2"+ + "\x2\x220\x20B\x3\x2\x2\x2\x220\x20C\x3\x2\x2\x2\x220\x20D\x3\x2\x2\x2"+ + "\x220\x20E\x3\x2\x2\x2\x220\x20F\x3\x2\x2\x2\x220\x210\x3\x2\x2\x2\x220"+ + "\x211\x3\x2\x2\x2\x220\x212\x3\x2\x2\x2\x220\x213\x3\x2\x2\x2\x220\x214"+ + "\x3\x2\x2\x2\x220\x215\x3\x2\x2\x2\x220\x216\x3\x2\x2\x2\x220\x217\x3"+ + "\x2\x2\x2\x220\x218\x3\x2\x2\x2\x220\x219\x3\x2\x2\x2\x220\x21A\x3\x2"+ + "\x2\x2\x220\x21B\x3\x2\x2\x2\x220\x21C\x3\x2\x2\x2\x220\x21D\x3\x2\x2"+ + "\x2\x220\x21E\x3\x2\x2\x2\x220\x21F\x3\x2\x2\x2\x221\x1D\x3\x2\x2\x2\x222"+ + "\x223\a\x38\x2\x2\x223\x224\x5\x12E\x98\x2\x224\x22D\x5\xBC_\x2\x225\x227"+ + "\x5\x12E\x98\x2\x226\x225\x3\x2\x2\x2\x226\x227\x3\x2\x2\x2\x227\x228"+ + "\x3\x2\x2\x2\x228\x22A\a)\x2\x2\x229\x22B\x5\x12E\x98\x2\x22A\x229\x3"+ + "\x2\x2\x2\x22A\x22B\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22E\x5\xBC"+ + "_\x2\x22D\x226\x3\x2\x2\x2\x22D\x22E\x3\x2\x2\x2\x22E\x1F\x3\x2\x2\x2"+ + "\x22F\x230\a<\x2\x2\x230!\x3\x2\x2\x2\x231\x232\a\x44\x2\x2\x232\x233"+ + "\x5\x12E\x98\x2\x233\x234\x5\xBC_\x2\x234#\x3\x2\x2\x2\x235\x236\a\x45"+ + "\x2\x2\x236\x237\x5\x12E\x98\x2\x237\x238\x5\xBC_\x2\x238%\x3\x2\x2\x2"+ + "\x239\x249\aG\x2\x2\x23A\x23B\x5\x12E\x98\x2\x23B\x246\x5\xD0i\x2\x23C"+ + "\x23E\x5\x12E\x98\x2\x23D\x23C\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E"+ + "\x23F\x3\x2\x2\x2\x23F\x241\a)\x2\x2\x240\x242\x5\x12E\x98\x2\x241\x240"+ + "\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\x243\x3\x2\x2\x2\x243\x245\x5"+ + "\xD0i\x2\x244\x23D\x3\x2\x2\x2\x245\x248\x3\x2\x2\x2\x246\x244\x3\x2\x2"+ + "\x2\x246\x247\x3\x2\x2\x2\x247\x24A\x3\x2\x2\x2\x248\x246\x3\x2\x2\x2"+ + "\x249\x23A\x3\x2\x2\x2\x249\x24A\x3\x2\x2\x2\x24A\'\x3\x2\x2\x2\x24B\x24C"+ + "\x5\x116\x8C\x2\x24C\x24D\x5\x12E\x98\x2\x24D\x24F\x3\x2\x2\x2\x24E\x24B"+ + "\x3\x2\x2\x2\x24E\x24F\x3\x2\x2\x2\x24F\x250\x3\x2\x2\x2\x250\x251\aH"+ + "\x2\x2\x251\x252\x5\x12E\x98\x2\x252\x25D\x5*\x16\x2\x253\x255\x5\x12E"+ + "\x98\x2\x254\x253\x3\x2\x2\x2\x254\x255\x3\x2\x2\x2\x255\x256\x3\x2\x2"+ + "\x2\x256\x258\a)\x2\x2\x257\x259\x5\x12E\x98\x2\x258\x257\x3\x2\x2\x2"+ + "\x258\x259\x3\x2\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25C\x5*\x16\x2\x25B"+ + "\x254\x3\x2\x2\x2\x25C\x25F\x3\x2\x2\x2\x25D\x25B\x3\x2\x2\x2\x25D\x25E"+ + "\x3\x2\x2\x2\x25E)\x3\x2\x2\x2\x25F\x25D\x3\x2\x2\x2\x260\x262\x5\xFE"+ + "\x80\x2\x261\x263\x5\x114\x8B\x2\x262\x261\x3\x2\x2\x2\x262\x263\x3\x2"+ + "\x2\x2\x263\x267\x3\x2\x2\x2\x264\x265\x5\x12E\x98\x2\x265\x266\x5\x100"+ + "\x81\x2\x266\x268\x3\x2\x2\x2\x267\x264\x3\x2\x2\x2\x267\x268\x3\x2\x2"+ + "\x2\x268\x26A\x3\x2\x2\x2\x269\x26B\x5\x12E\x98\x2\x26A\x269\x3\x2\x2"+ + "\x2\x26A\x26B\x3\x2\x2\x2\x26B\x26C\x3\x2\x2\x2\x26C\x26E\a\xE2\x2\x2"+ + "\x26D\x26F\x5\x12E\x98\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3\x2\x2\x2"+ + "\x26F\x270\x3\x2\x2\x2\x270\x271\x5\xBC_\x2\x271+\x3\x2\x2\x2\x272\x274"+ + "\aJ\x2\x2\x273\x275\x5\x12E\x98\x2\x274\x273\x3\x2\x2\x2\x274\x275\x3"+ + "\x2\x2\x2\x275\x276\x3\x2\x2\x2\x276\x278\a\xE2\x2\x2\x277\x279\x5\x12E"+ + "\x98\x2\x278\x277\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\x3\x2\x2"+ + "\x2\x27A\x27B\x5\xBC_\x2\x27B-\x3\x2\x2\x2\x27C\x27D\x5\x116\x8C\x2\x27D"+ + "\x27E\x5\x12E\x98\x2\x27E\x280\x3\x2\x2\x2\x27F\x27C\x3\x2\x2\x2\x27F"+ + "\x280\x3\x2\x2\x2\x280\x281\x3\x2\x2\x2\x281\x282\aK\x2\x2\x282\x285\x5"+ + "\x12E\x98\x2\x283\x284\a\xAD\x2\x2\x284\x286\x5\x12E\x98\x2\x285\x283"+ + "\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x28C\x3\x2\x2\x2\x287\x289\ax"+ + "\x2\x2\x288\x28A\x5\x114\x8B\x2\x289\x288\x3\x2\x2\x2\x289\x28A\x3\x2"+ + "\x2\x2\x28A\x28D\x3\x2\x2\x2\x28B\x28D\a\xCA\x2\x2\x28C\x287\x3\x2\x2"+ + "\x2\x28C\x28B\x3\x2\x2\x2\x28D\x28E\x3\x2\x2\x2\x28E\x28F\x5\x12E\x98"+ + "\x2\x28F\x291\x5\xFE\x80\x2\x290\x292\x5\x114\x8B\x2\x291\x290\x3\x2\x2"+ + "\x2\x291\x292\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x294\x5\x12E\x98"+ + "\x2\x294\x295\a\x8A\x2\x2\x295\x296\x5\x12E\x98\x2\x296\x29C\a\xF5\x2"+ + "\x2\x297\x298\x5\x12E\x98\x2\x298\x299\a\x35\x2\x2\x299\x29A\x5\x12E\x98"+ + "\x2\x29A\x29B\a\xF5\x2\x2\x29B\x29D\x3\x2\x2\x2\x29C\x297\x3\x2\x2\x2"+ + "\x29C\x29D\x3\x2\x2\x2\x29D\x2A2\x3\x2\x2\x2\x29E\x2A0\x5\x12E\x98\x2"+ + "\x29F\x29E\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1"+ + "\x2A3\x5\xF2z\x2\x2A2\x29F\x3\x2\x2\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A7"+ + "\x3\x2\x2\x2\x2A4\x2A5\x5\x12E\x98\x2\x2A5\x2A6\x5\x100\x81\x2\x2A6\x2A8"+ + "\x3\x2\x2\x2\x2A7\x2A4\x3\x2\x2\x2\x2A7\x2A8\x3\x2\x2\x2\x2A8/\x3\x2\x2"+ + "\x2\x2A9\x2AA\t\x3\x2\x2\x2AA\x2AB\x5\x12E\x98\x2\x2AB\x2B6\x5\x10A\x86"+ + "\x2\x2AC\x2AE\x5\x12E\x98\x2\x2AD\x2AC\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2"+ + "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x2B1\a)\x2\x2\x2B0\x2B2\x5\x12E\x98\x2"+ + "\x2B1\x2B0\x3\x2\x2\x2\x2B1\x2B2\x3\x2\x2\x2\x2B2\x2B3\x3\x2\x2\x2\x2B3"+ + "\x2B5\x5\x10A\x86\x2\x2B4\x2AD\x3\x2\x2\x2\x2B5\x2B8\x3\x2\x2\x2\x2B6"+ + "\x2B4\x3\x2\x2\x2\x2B6\x2B7\x3\x2\x2\x2\x2B7\x31\x3\x2\x2\x2\x2B8\x2B6"+ + "\x3\x2\x2\x2\x2B9\x2BA\aY\x2\x2\x2BA\x2BB\x5\x12E\x98\x2\x2BB\x2BD\x5"+ + "\xBC_\x2\x2BC\x2BE\x5\x12E\x98\x2\x2BD\x2BC\x3\x2\x2\x2\x2BD\x2BE\x3\x2"+ + "\x2\x2\x2BE\x2E0\x3\x2\x2\x2\x2BF\x2C0\aY\x2\x2\x2C0\x2C1\x5\x12E\x98"+ + "\x2\x2C1\x2C3\x5\xBC_\x2\x2C2\x2C4\x5\x12E\x98\x2\x2C3\x2C2\x3\x2\x2\x2"+ + "\x2C3\x2C4\x3\x2\x2\x2\x2C4\x2C5\x3\x2\x2\x2\x2C5\x2C7\a)\x2\x2\x2C6\x2C8"+ + "\x5\x12E\x98\x2\x2C7\x2C6\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9"+ + "\x3\x2\x2\x2\x2C9\x2CA\x5\xBC_\x2\x2CA\x2E0\x3\x2\x2\x2\x2CB\x2CC\aY\x2"+ + "\x2\x2CC\x2CD\x5\x12E\x98\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x12E\x98"+ "\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2"+ - "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x126\x94\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ - "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x5\xBC_\x2\x2D6\x2D8"+ - "\x3\x2\x2\x2\x2D7\x2B1\x3\x2\x2\x2\x2D7\x2B7\x3\x2\x2\x2\x2D7\x2C3\x3"+ - "\x2\x2\x2\x2D8\x33\x3\x2\x2\x2\x2D9\x2DA\a[\x2\x2\x2DA\x2DC\x5\x116\x8C"+ - "\x2\x2DB\x2DD\x5\x1A\xE\x2\x2DC\x2DB\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2"+ - "\x2DD\x2DE\x3\x2\x2\x2\x2DE\x2DF\a\x88\x2\x2\x2DF\x2F7\x3\x2\x2\x2\x2E0"+ - "\x2E1\a[\x2\x2\x2E1\x2E2\x5\x126\x94\x2\x2E2\x2E3\t\x4\x2\x2\x2E3\x2E4"+ - "\x5\x126\x94\x2\x2E4\x2E5\x5\xBC_\x2\x2E5\x2E7\x5\x116\x8C\x2\x2E6\x2E8"+ - "\x5\x1A\xE\x2\x2E7\x2E6\x3\x2\x2\x2\x2E7\x2E8\x3\x2\x2\x2\x2E8\x2E9\x3"+ - "\x2\x2\x2\x2E9\x2EA\a\x88\x2\x2\x2EA\x2F7\x3\x2\x2\x2\x2EB\x2EC\a[\x2"+ - "\x2\x2EC\x2EE\x5\x116\x8C\x2\x2ED\x2EF\x5\x1A\xE\x2\x2EE\x2ED\x3\x2\x2"+ - "\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F1\a\x88\x2\x2"+ - "\x2F1\x2F2\x5\x126\x94\x2\x2F2\x2F3\t\x4\x2\x2\x2F3\x2F4\x5\x126\x94\x2"+ - "\x2F4\x2F5\x5\xBC_\x2\x2F5\x2F7\x3\x2\x2\x2\x2F6\x2D9\x3\x2\x2\x2\x2F6"+ - "\x2E0\x3\x2\x2\x2\x2F6\x2EB\x3\x2\x2\x2\x2F7\x35\x3\x2\x2\x2\x2F8\x2F9"+ - "\ai\x2\x2\x2F9\x37\x3\x2\x2\x2\x2FA\x2FB\x5\x110\x89\x2\x2FB\x2FC\x5\x126"+ - "\x94\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3\x2\x2"+ - "\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\aj\x2\x2\x300\x301\x5\x126\x94\x2"+ - "\x301\x302\x5\xF8}\x2\x302\x306\x5\x116\x8C\x2\x303\x305\x5:\x1E\x2\x304"+ - "\x303\x3\x2\x2\x2\x305\x308\x3\x2\x2\x2\x306\x304\x3\x2\x2\x2\x306\x307"+ - "\x3\x2\x2\x2\x307\x309\x3\x2\x2\x2\x308\x306\x3\x2\x2\x2\x309\x30A\a\x61"+ - "\x2\x2\x30A\x39\x3\x2\x2\x2\x30B\x314\x5\xF8}\x2\x30C\x30E\x5\x126\x94"+ - "\x2\x30D\x30C\x3\x2\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x30F\x3\x2\x2\x2"+ - "\x30F\x311\a\xE2\x2\x2\x310\x312\x5\x126\x94\x2\x311\x310\x3\x2\x2\x2"+ - "\x311\x312\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x315\x5\xBC_\x2\x314"+ - "\x30D\x3\x2\x2\x2\x314\x315\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ - "\x5\x116\x8C\x2\x317;\x3\x2\x2\x2\x318\x319\al\x2\x2\x319\x31A\x5\x126"+ - "\x94\x2\x31A\x325\x5\xBC_\x2\x31B\x31D\x5\x126\x94\x2\x31C\x31B\x3\x2"+ - "\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2\x31E\x320\a)\x2\x2"+ - "\x31F\x321\x5\x126\x94\x2\x320\x31F\x3\x2\x2\x2\x320\x321\x3\x2\x2\x2"+ - "\x321\x322\x3\x2\x2\x2\x322\x324\x5\xBC_\x2\x323\x31C\x3\x2\x2\x2\x324"+ - "\x327\x3\x2\x2\x2\x325\x323\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326=\x3"+ - "\x2\x2\x2\x327\x325\x3\x2\x2\x2\x328\x329\am\x2\x2\x329\x32A\x5\x126\x94"+ - "\x2\x32A\x32B\x5\xBC_\x2\x32B?\x3\x2\x2\x2\x32C\x32D\x5\x110\x89\x2\x32D"+ - "\x32E\x5\x126\x94\x2\x32E\x330\x3\x2\x2\x2\x32F\x32C\x3\x2\x2\x2\x32F"+ - "\x330\x3\x2\x2\x2\x330\x331\x3\x2\x2\x2\x331\x332\an\x2\x2\x332\x333\x5"+ - "\x126\x94\x2\x333\x335\x5\xF8}\x2\x334\x336\x5\x126\x94\x2\x335\x334\x3"+ - "\x2\x2\x2\x335\x336\x3\x2\x2\x2\x336\x337\x3\x2\x2\x2\x337\x338\x5\xEE"+ - "x\x2\x338\x41\x3\x2\x2\x2\x339\x33A\t\x5\x2\x2\x33A\x43\x3\x2\x2\x2\x33B"+ - "\x33C\au\x2\x2\x33C\x33D\x5\x126\x94\x2\x33D\x33F\x5\xBC_\x2\x33E\x340"+ - "\x5\x126\x94\x2\x33F\x33E\x3\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x341"+ - "\x3\x2\x2\x2\x341\x343\a)\x2\x2\x342\x344\x5\x126\x94\x2\x343\x342\x3"+ - "\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344\x345\x3\x2\x2\x2\x345\x346\x5\xBC"+ - "_\x2\x346\x45\x3\x2\x2\x2\x347\x348\aw\x2\x2\x348\x349\x5\x126\x94\x2"+ - "\x349\x34A\a]\x2\x2\x34A\x34B\x5\x126\x94\x2\x34B\x34C\x5\xBC_\x2\x34C"+ - "\x34D\x5\x126\x94\x2\x34D\x34E\a\x80\x2\x2\x34E\x34F\x5\x126\x94\x2\x34F"+ - "\x350\x5\xBC_\x2\x350\x352\x5\x116\x8C\x2\x351\x353\x5\x1A\xE\x2\x352"+ - "\x351\x3\x2\x2\x2\x352\x353\x3\x2\x2\x2\x353\x354\x3\x2\x2\x2\x354\x358"+ - "\a\x96\x2\x2\x355\x356\x5\x126\x94\x2\x356\x357\x5\xBC_\x2\x357\x359\x3"+ - "\x2\x2\x2\x358\x355\x3\x2\x2\x2\x358\x359\x3\x2\x2\x2\x359G\x3\x2\x2\x2"+ - "\x35A\x35B\aw\x2\x2\x35B\x35C\x5\x126\x94\x2\x35C\x35E\x5\xBC_\x2\x35D"+ - "\x35F\x5\x126\x94\x2\x35E\x35D\x3\x2\x2\x2\x35E\x35F\x3\x2\x2\x2\x35F"+ - "\x360\x3\x2\x2\x2\x360\x362\a\xE2\x2\x2\x361\x363\x5\x126\x94\x2\x362"+ - "\x361\x3\x2\x2\x2\x362\x363\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2\x364\x365"+ - "\x5\xBC_\x2\x365\x366\x5\x126\x94\x2\x366\x367\a\xCF\x2\x2\x367\x368\x5"+ - "\x126\x94\x2\x368\x36E\x5\xBC_\x2\x369\x36A\x5\x126\x94\x2\x36A\x36B\a"+ - "\xC7\x2\x2\x36B\x36C\x5\x126\x94\x2\x36C\x36D\x5\xBC_\x2\x36D\x36F\x3"+ - "\x2\x2\x2\x36E\x369\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370\x3\x2"+ - "\x2\x2\x370\x372\x5\x116\x8C\x2\x371\x373\x5\x1A\xE\x2\x372\x371\x3\x2"+ - "\x2\x2\x372\x373\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374\x378\a\x96\x2"+ - "\x2\x375\x376\x5\x126\x94\x2\x376\x377\x5\xBC_\x2\x377\x379\x3\x2\x2\x2"+ - "\x378\x375\x3\x2\x2\x2\x378\x379\x3\x2\x2\x2\x379I\x3\x2\x2\x2\x37A\x37B"+ - "\x5\x110\x89\x2\x37B\x37C\x5\x126\x94\x2\x37C\x37E\x3\x2\x2\x2\x37D\x37A"+ - "\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x381\x3\x2\x2\x2\x37F\x380\a\xC6"+ - "\x2\x2\x380\x382\x5\x126\x94\x2\x381\x37F\x3\x2\x2\x2\x381\x382\x3\x2"+ - "\x2\x2\x382\x383\x3\x2\x2\x2\x383\x385\ax\x2\x2\x384\x386\x5\x126\x94"+ - "\x2\x385\x384\x3\x2\x2\x2\x385\x386\x3\x2\x2\x2\x386\x387\x3\x2\x2\x2"+ - "\x387\x389\x5\xF8}\x2\x388\x38A\x5\x10E\x88\x2\x389\x388\x3\x2\x2\x2\x389"+ - "\x38A\x3\x2\x2\x2\x38A\x38F\x3\x2\x2\x2\x38B\x38D\x5\x126\x94\x2\x38C"+ - "\x38B\x3\x2\x2\x2\x38C\x38D\x3\x2\x2\x2\x38D\x38E\x3\x2\x2\x2\x38E\x390"+ - "\x5\xEEx\x2\x38F\x38C\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x395\x3\x2"+ - "\x2\x2\x391\x393\x5\x126\x94\x2\x392\x391\x3\x2\x2\x2\x392\x393\x3\x2"+ - "\x2\x2\x393\x394\x3\x2\x2\x2\x394\x396\x5\xFA~\x2\x395\x392\x3\x2\x2\x2"+ - "\x395\x396\x3\x2\x2\x2\x396\x397\x3\x2\x2\x2\x397\x399\x5\x116\x8C\x2"+ - "\x398\x39A\x5\x1A\xE\x2\x399\x398\x3\x2\x2\x2\x399\x39A\x3\x2\x2\x2\x39A"+ - "\x39B\x3\x2\x2\x2\x39B\x39C\a\x62\x2\x2\x39CK\x3\x2\x2\x2\x39D\x39E\a"+ - "y\x2\x2\x39E\x39F\x5\x126\x94\x2\x39F\x3A1\x5\xD0i\x2\x3A0\x3A2\x5\x126"+ - "\x94\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2"+ - "\x2\x3A3\x3A5\a)\x2\x2\x3A4\x3A6\x5\x126\x94\x2\x3A5\x3A4\x3\x2\x2\x2"+ - "\x3A5\x3A6\x3\x2\x2\x2\x3A6\x3A8\x3\x2\x2\x2\x3A7\x3A9\x5\xBC_\x2\x3A8"+ - "\x3A7\x3\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AB\x3\x2\x2\x2\x3AA\x3AC"+ - "\x5\x126\x94\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC\x3AD"+ - "\x3\x2\x2\x2\x3AD\x3AF\a)\x2\x2\x3AE\x3B0\x5\x126\x94\x2\x3AF\x3AE\x3"+ - "\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2\x3B0\x3B1\x3\x2\x2\x2\x3B1\x3B2\x5\xBC"+ - "_\x2\x3B2M\x3\x2\x2\x2\x3B3\x3B4\a{\x2\x2\x3B4\x3B5\x5\x126\x94\x2\x3B5"+ - "\x3B6\x5\xBC_\x2\x3B6O\x3\x2\x2\x2\x3B7\x3B8\a|\x2\x2\x3B8\x3B9\x5\x126"+ - "\x94\x2\x3B9\x3BA\x5\xBC_\x2\x3BAQ\x3\x2\x2\x2\x3BB\x3BC\a}\x2\x2\x3BC"+ - "\x3BD\x5\x126\x94\x2\x3BD\x3BE\x5V,\x2\x3BE\x3BF\x5\x126\x94\x2\x3BF\x3C0"+ - "\a\xCD\x2\x2\x3C0\x3C1\x5\x126\x94\x2\x3C1\x3C7\x5\x1C\xF\x2\x3C2\x3C3"+ - "\x5\x126\x94\x2\x3C3\x3C4\a^\x2\x2\x3C4\x3C5\x5\x126\x94\x2\x3C5\x3C6"+ - "\x5\x1C\xF\x2\x3C6\x3C8\x3\x2\x2\x2\x3C7\x3C2\x3\x2\x2\x2\x3C7\x3C8\x3"+ - "\x2\x2\x2\x3C8\x3D6\x3\x2\x2\x2\x3C9\x3CD\x5T+\x2\x3CA\x3CC\x5X-\x2\x3CB"+ - "\x3CA\x3\x2\x2\x2\x3CC\x3CF\x3\x2\x2\x2\x3CD\x3CB\x3\x2\x2\x2\x3CD\x3CE"+ - "\x3\x2\x2\x2\x3CE\x3D1\x3\x2\x2\x2\x3CF\x3CD\x3\x2\x2\x2\x3D0\x3D2\x5"+ - "Z.\x2\x3D1\x3D0\x3\x2\x2\x2\x3D1\x3D2\x3\x2\x2\x2\x3D2\x3D3\x3\x2\x2\x2"+ - "\x3D3\x3D4\a\x63\x2\x2\x3D4\x3D6\x3\x2\x2\x2\x3D5\x3BB\x3\x2\x2\x2\x3D5"+ - "\x3C9\x3\x2\x2\x2\x3D6S\x3\x2\x2\x2\x3D7\x3D8\a}\x2\x2\x3D8\x3D9\x5\x126"+ - "\x94\x2\x3D9\x3DA\x5V,\x2\x3DA\x3DB\x5\x126\x94\x2\x3DB\x3DC\a\xCD\x2"+ - "\x2\x3DC\x3DE\x5\x116\x8C\x2\x3DD\x3DF\x5\x1A\xE\x2\x3DE\x3DD\x3\x2\x2"+ - "\x2\x3DE\x3DF\x3\x2\x2\x2\x3DFU\x3\x2\x2\x2\x3E0\x3E1\x5\xBC_\x2\x3E1"+ - "W\x3\x2\x2\x2\x3E2\x3E3\a_\x2\x2\x3E3\x3E4\x5\x126\x94\x2\x3E4\x3E5\x5"+ - "V,\x2\x3E5\x3E6\x5\x126\x94\x2\x3E6\x3E7\a\xCD\x2\x2\x3E7\x3E9\x5\x116"+ - "\x8C\x2\x3E8\x3EA\x5\x1A\xE\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2"+ - "\x2\x3EAY\x3\x2\x2\x2\x3EB\x3EC\a^\x2\x2\x3EC\x3EE\x5\x116\x8C\x2\x3ED"+ - "\x3EF\x5\x1A\xE\x2\x3EE\x3ED\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2\x2\x3EF[\x3"+ - "\x2\x2\x2\x3F0\x3F1\a\x7F\x2\x2\x3F1\x3F2\x5\x126\x94\x2\x3F2\x3F3\x5"+ - "\xBC_\x2\x3F3]\x3\x2\x2\x2\x3F4\x3F5\a\x81\x2\x2\x3F5\x3F6\x5\x126\x94"+ - "\x2\x3F6\x3FF\x5\xD0i\x2\x3F7\x3F9\x5\x126\x94\x2\x3F8\x3F7\x3\x2\x2\x2"+ - "\x3F8\x3F9\x3\x2\x2\x2\x3F9\x3FA\x3\x2\x2\x2\x3FA\x3FC\a)\x2\x2\x3FB\x3FD"+ - "\x5\x126\x94\x2\x3FC\x3FB\x3\x2\x2\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE"+ - "\x3\x2\x2\x2\x3FE\x400\x5\xBC_\x2\x3FF\x3F8\x3\x2\x2\x2\x400\x401\x3\x2"+ - "\x2\x2\x401\x3FF\x3\x2\x2\x2\x401\x402\x3\x2\x2\x2\x402_\x3\x2\x2\x2\x403"+ - "\x404\a\x84\x2\x2\x404\x405\x5\x126\x94\x2\x405\x406\x5\xBC_\x2\x406\x61"+ - "\x3\x2\x2\x2\x407\x408\a\x89\x2\x2\x408\x40A\x5\x126\x94\x2\x409\x407"+ - "\x3\x2\x2\x2\x409\x40A\x3\x2\x2\x2\x40A\x40B\x3\x2\x2\x2\x40B\x40D\x5"+ - "\xDCo\x2\x40C\x40E\x5\x126\x94\x2\x40D\x40C\x3\x2\x2\x2\x40D\x40E\x3\x2"+ - "\x2\x2\x40E\x40F\x3\x2\x2\x2\x40F\x411\a\xE2\x2\x2\x410\x412\x5\x126\x94"+ - "\x2\x411\x410\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x3\x2\x2\x2"+ - "\x413\x414\x5\xBC_\x2\x414\x63\x3\x2\x2\x2\x415\x416\a\x8C\x2\x2\x416"+ - "\x417\x5\x126\x94\x2\x417\x419\x5\xD0i\x2\x418\x41A\x5\x126\x94\x2\x419"+ - "\x418\x3\x2\x2\x2\x419\x41A\x3\x2\x2\x2\x41A\x41B\x3\x2\x2\x2\x41B\x41D"+ - "\a)\x2\x2\x41C\x41E\x5\x126\x94\x2\x41D\x41C\x3\x2\x2\x2\x41D\x41E\x3"+ - "\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x420\x5\xBC_\x2\x420\x65\x3\x2\x2"+ - "\x2\x421\x422\a\x85\x2\x2\x422\x423\x5\x126\x94\x2\x423\x424\x5\xBC_\x2"+ - "\x424g\x3\x2\x2\x2\x425\x426\a\x86\x2\x2\x426\x427\x5\x126\x94\x2\x427"+ - "\x437\x5\xBC_\x2\x428\x42A\x5\x126\x94\x2\x429\x428\x3\x2\x2\x2\x429\x42A"+ - "\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42D\a)\x2\x2\x42C\x42E\x5\x126"+ - "\x94\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E\x42F\x3\x2\x2"+ - "\x2\x42F\x435\x5\xBC_\x2\x430\x431\x5\x126\x94\x2\x431\x432\a\xCF\x2\x2"+ - "\x432\x433\x5\x126\x94\x2\x433\x434\x5\xBC_\x2\x434\x436\x3\x2\x2\x2\x435"+ - "\x430\x3\x2\x2\x2\x435\x436\x3\x2\x2\x2\x436\x438\x3\x2\x2\x2\x437\x429"+ - "\x3\x2\x2\x2\x437\x438\x3\x2\x2\x2\x438i\x3\x2\x2\x2\x439\x43A\a\x90\x2"+ - "\x2\x43A\x43B\x5\x126\x94\x2\x43B\x43D\x5\xDCo\x2\x43C\x43E\x5\x126\x94"+ - "\x2\x43D\x43C\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x43F\x3\x2\x2\x2"+ - "\x43F\x441\a\xE2\x2\x2\x440\x442\x5\x126\x94\x2\x441\x440\x3\x2\x2\x2"+ - "\x441\x442\x3\x2\x2\x2\x442\x443\x3\x2\x2\x2\x443\x444\x5\xBC_\x2\x444"+ - "k\x3\x2\x2\x2\x445\x447\a\x92\x2\x2\x446\x448\x5\x126\x94\x2\x447\x446"+ - "\x3\x2\x2\x2\x447\x448\x3\x2\x2\x2\x448\x449\x3\x2\x2\x2\x449\x44B\a\xE6"+ - "\x2\x2\x44A\x44C\x5\x126\x94\x2\x44B\x44A\x3\x2\x2\x2\x44B\x44C\x3\x2"+ - "\x2\x2\x44C\x44D\x3\x2\x2\x2\x44D\x44F\x5\xE8u\x2\x44E\x450\x5\x126\x94"+ - "\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3\x2\x2\x2"+ - "\x451\x452\a\xED\x2\x2\x452m\x3\x2\x2\x2\x453\x454\a\x93\x2\x2\x454\x455"+ - "\x5\x126\x94\x2\x455\x456\x5\xBC_\x2\x456o\x3\x2\x2\x2\x457\x458\a\x95"+ - "\x2\x2\x458\x459\x5\x126\x94\x2\x459\x45A\x5\xBC_\x2\x45A\x45B\x5\x126"+ - "\x94\x2\x45B\x45C\a:\x2\x2\x45C\x45D\x5\x126\x94\x2\x45D\x45E\x5\xBC_"+ - "\x2\x45Eq\x3\x2\x2\x2\x45F\x460\t\x6\x2\x2\x460\x469\x5\x126\x94\x2\x461"+ - "\x462\a|\x2\x2\x462\x463\x5\x126\x94\x2\x463\x464\x5\xBC_\x2\x464\x46A"+ - "\x3\x2\x2\x2\x465\x466\a\xB8\x2\x2\x466\x467\x5\x126\x94\x2\x467\x468"+ - "\a\x96\x2\x2\x468\x46A\x3\x2\x2\x2\x469\x461\x3\x2\x2\x2\x469\x465\x3"+ - "\x2\x2\x2\x46As\x3\x2\x2\x2\x46B\x46C\a\x9B\x2\x2\x46C\x46D\x5\x126\x94"+ - "\x2\x46D\x46E\x5\xBC_\x2\x46E\x46F\x5\x126\x94\x2\x46F\x470\a|\x2\x2\x470"+ - "\x471\x5\x126\x94\x2\x471\x47C\x5\xBC_\x2\x472\x474\x5\x126\x94\x2\x473"+ - "\x472\x3\x2\x2\x2\x473\x474\x3\x2\x2\x2\x474\x475\x3\x2\x2\x2\x475\x477"+ - "\a)\x2\x2\x476\x478\x5\x126\x94\x2\x477\x476\x3\x2\x2\x2\x477\x478\x3"+ - "\x2\x2\x2\x478\x479\x3\x2\x2\x2\x479\x47B\x5\xBC_\x2\x47A\x473\x3\x2\x2"+ - "\x2\x47B\x47E\x3\x2\x2\x2\x47C\x47A\x3\x2\x2\x2\x47C\x47D\x3\x2\x2\x2"+ - "\x47Du\x3\x2\x2\x2\x47E\x47C\x3\x2\x2\x2\x47F\x480\a\x9B\x2\x2\x480\x481"+ - "\x5\x126\x94\x2\x481\x482\x5\xBC_\x2\x482\x483\x5\x126\x94\x2\x483\x484"+ - "\a{\x2\x2\x484\x485\x5\x126\x94\x2\x485\x490\x5\xBC_\x2\x486\x488\x5\x126"+ - "\x94\x2\x487\x486\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2\x488\x489\x3\x2\x2"+ - "\x2\x489\x48B\a)\x2\x2\x48A\x48C\x5\x126\x94\x2\x48B\x48A\x3\x2\x2\x2"+ - "\x48B\x48C\x3\x2\x2\x2\x48C\x48D\x3\x2\x2\x2\x48D\x48F\x5\xBC_\x2\x48E"+ - "\x487\x3\x2\x2\x2\x48F\x492\x3\x2\x2\x2\x490\x48E\x3\x2\x2\x2\x490\x491"+ - "\x3\x2\x2\x2\x491w\x3\x2\x2\x2\x492\x490\x3\x2\x2\x2\x493\x494\a\x9E\x2"+ - "\x2\x494\x495\x5\x126\x94\x2\x495\x496\x5\xBC_\x2\x496\x497\x5\x126\x94"+ - "\x2\x497\x498\aw\x2\x2\x498\x499\x5\x126\x94\x2\x499\x49F\t\a\x2\x2\x49A"+ - "\x49B\x5\x126\x94\x2\x49B\x49C\a\x33\x2\x2\x49C\x49D\x5\x126\x94\x2\x49D"+ - "\x49E\t\b\x2\x2\x49E\x4A0\x3\x2\x2\x2\x49F\x49A\x3\x2\x2\x2\x49F\x4A0"+ - "\x3\x2\x2\x2\x4A0\x4A4\x3\x2\x2\x2\x4A1\x4A2\x5\x126\x94\x2\x4A2\x4A3"+ - "\t\t\x2\x2\x4A3\x4A5\x3\x2\x2\x2\x4A4\x4A1\x3\x2\x2\x2\x4A4\x4A5\x3\x2"+ - "\x2\x2\x4A5\x4A6\x3\x2\x2\x2\x4A6\x4A7\x5\x126\x94\x2\x4A7\x4A8\a:\x2"+ - "\x2\x4A8\x4A9\x5\x126\x94\x2\x4A9\x4B5\x5\xD0i\x2\x4AA\x4AB\x5\x126\x94"+ - "\x2\x4AB\x4AD\a\x1D\x2\x2\x4AC\x4AE\x5\x126\x94\x2\x4AD\x4AC\x3\x2\x2"+ - "\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF\x4B1\a\xE2\x2\x2"+ - "\x4B0\x4B2\x5\x126\x94\x2\x4B1\x4B0\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2"+ - "\x4B2\x4B3\x3\x2\x2\x2\x4B3\x4B4\x5\xBC_\x2\x4B4\x4B6\x3\x2\x2\x2\x4B5"+ - "\x4AA\x3\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6y\x3\x2\x2\x2\x4B7\x4C4\x5"+ - "|?\x2\x4B8\x4BA\x5\x126\x94\x2\x4B9\x4B8\x3\x2\x2\x2\x4B9\x4BA\x3\x2\x2"+ - "\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BD\t\n\x2\x2\x4BC\x4BE\x5\x126\x94\x2"+ - "\x4BD\x4BC\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BE\x4C0\x3\x2\x2\x2\x4BF"+ - "\x4C1\x5|?\x2\x4C0\x4BF\x3\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x3"+ - "\x2\x2\x2\x4C2\x4B9\x3\x2\x2\x2\x4C3\x4C6\x3\x2\x2\x2\x4C4\x4C2\x3\x2"+ - "\x2\x2\x4C4\x4C5\x3\x2\x2\x2\x4C5\x4D9\x3\x2\x2\x2\x4C6\x4C4\x3\x2\x2"+ - "\x2\x4C7\x4C9\x5|?\x2\x4C8\x4C7\x3\x2\x2\x2\x4C8\x4C9\x3\x2\x2\x2\x4C9"+ - "\x4D4\x3\x2\x2\x2\x4CA\x4CC\x5\x126\x94\x2\x4CB\x4CA\x3\x2\x2\x2\x4CB"+ - "\x4CC\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CF\t\n\x2\x2\x4CE\x4D0"+ - "\x5\x126\x94\x2\x4CF\x4CE\x3\x2\x2\x2\x4CF\x4D0\x3\x2\x2\x2\x4D0\x4D2"+ - "\x3\x2\x2\x2\x4D1\x4D3\x5|?\x2\x4D2\x4D1\x3\x2\x2\x2\x4D2\x4D3\x3\x2\x2"+ - "\x2\x4D3\x4D5\x3\x2\x2\x2\x4D4\x4CB\x3\x2\x2\x2\x4D5\x4D6\x3\x2\x2\x2"+ - "\x4D6\x4D4\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4D9\x3\x2\x2\x2\x4D8"+ - "\x4B7\x3\x2\x2\x2\x4D8\x4C8\x3\x2\x2\x2\x4D9{\x3\x2\x2\x2\x4DA\x4EC\x5"+ - "\xBC_\x2\x4DB\x4E9\t\v\x2\x2\x4DC\x4DE\x5\x126\x94\x2\x4DD\x4DC\x3\x2"+ - "\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1\a\xE6\x2"+ - "\x2\x4E0\x4E2\x5\x126\x94\x2\x4E1\x4E0\x3\x2\x2\x2\x4E1\x4E2\x3\x2\x2"+ - "\x2\x4E2\x4E3\x3\x2\x2\x2\x4E3\x4E5\x5\xE8u\x2\x4E4\x4E6\x5\x126\x94\x2"+ + "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x12E\x98\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ + "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D7\x5\xBC_\x2\x2D6\x2D8"+ + "\x5\x12E\x98\x2\x2D7\x2D6\x3\x2\x2\x2\x2D7\x2D8\x3\x2\x2\x2\x2D8\x2D9"+ + "\x3\x2\x2\x2\x2D9\x2DB\a)\x2\x2\x2DA\x2DC\x5\x12E\x98\x2\x2DB\x2DA\x3"+ + "\x2\x2\x2\x2DB\x2DC\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DE\x5\xBC"+ + "_\x2\x2DE\x2E0\x3\x2\x2\x2\x2DF\x2B9\x3\x2\x2\x2\x2DF\x2BF\x3\x2\x2\x2"+ + "\x2DF\x2CB\x3\x2\x2\x2\x2E0\x33\x3\x2\x2\x2\x2E1\x2E2\a[\x2\x2\x2E2\x2E4"+ + "\x5\x11E\x90\x2\x2E3\x2E5\x5\x1A\xE\x2\x2E4\x2E3\x3\x2\x2\x2\x2E4\x2E5"+ + "\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6\x2E7\a\x88\x2\x2\x2E7\x2FF\x3"+ + "\x2\x2\x2\x2E8\x2E9\a[\x2\x2\x2E9\x2EA\x5\x12E\x98\x2\x2EA\x2EB\t\x4\x2"+ + "\x2\x2EB\x2EC\x5\x12E\x98\x2\x2EC\x2ED\x5\xBC_\x2\x2ED\x2EF\x5\x11E\x90"+ + "\x2\x2EE\x2F0\x5\x1A\xE\x2\x2EF\x2EE\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2"+ + "\x2F0\x2F1\x3\x2\x2\x2\x2F1\x2F2\a\x88\x2\x2\x2F2\x2FF\x3\x2\x2\x2\x2F3"+ + "\x2F4\a[\x2\x2\x2F4\x2F6\x5\x11E\x90\x2\x2F5\x2F7\x5\x1A\xE\x2\x2F6\x2F5"+ + "\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2\x2F8\x2F9\a\x88"+ + "\x2\x2\x2F9\x2FA\x5\x12E\x98\x2\x2FA\x2FB\t\x4\x2\x2\x2FB\x2FC\x5\x12E"+ + "\x98\x2\x2FC\x2FD\x5\xBC_\x2\x2FD\x2FF\x3\x2\x2\x2\x2FE\x2E1\x3\x2\x2"+ + "\x2\x2FE\x2E8\x3\x2\x2\x2\x2FE\x2F3\x3\x2\x2\x2\x2FF\x35\x3\x2\x2\x2\x300"+ + "\x301\ai\x2\x2\x301\x37\x3\x2\x2\x2\x302\x303\x5\x116\x8C\x2\x303\x304"+ + "\x5\x12E\x98\x2\x304\x306\x3\x2\x2\x2\x305\x302\x3\x2\x2\x2\x305\x306"+ + "\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x308\aj\x2\x2\x308\x309\x5\x12E"+ + "\x98\x2\x309\x30A\x5\xFE\x80\x2\x30A\x30E\x5\x11E\x90\x2\x30B\x30D\x5"+ + ":\x1E\x2\x30C\x30B\x3\x2\x2\x2\x30D\x310\x3\x2\x2\x2\x30E\x30C\x3\x2\x2"+ + "\x2\x30E\x30F\x3\x2\x2\x2\x30F\x311\x3\x2\x2\x2\x310\x30E\x3\x2\x2\x2"+ + "\x311\x312\a\x61\x2\x2\x312\x39\x3\x2\x2\x2\x313\x31C\x5\xFE\x80\x2\x314"+ + "\x316\x5\x12E\x98\x2\x315\x314\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316"+ + "\x317\x3\x2\x2\x2\x317\x319\a\xE2\x2\x2\x318\x31A\x5\x12E\x98\x2\x319"+ + "\x318\x3\x2\x2\x2\x319\x31A\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31D"+ + "\x5\xBC_\x2\x31C\x315\x3\x2\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2"+ + "\x2\x2\x31E\x31F\x5\x11E\x90\x2\x31F;\x3\x2\x2\x2\x320\x321\al\x2\x2\x321"+ + "\x322\x5\x12E\x98\x2\x322\x32D\x5\xBC_\x2\x323\x325\x5\x12E\x98\x2\x324"+ + "\x323\x3\x2\x2\x2\x324\x325\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326\x328"+ + "\a)\x2\x2\x327\x329\x5\x12E\x98\x2\x328\x327\x3\x2\x2\x2\x328\x329\x3"+ + "\x2\x2\x2\x329\x32A\x3\x2\x2\x2\x32A\x32C\x5\xBC_\x2\x32B\x324\x3\x2\x2"+ + "\x2\x32C\x32F\x3\x2\x2\x2\x32D\x32B\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2"+ + "\x32E=\x3\x2\x2\x2\x32F\x32D\x3\x2\x2\x2\x330\x331\am\x2\x2\x331\x332"+ + "\x5\x12E\x98\x2\x332\x333\x5\xBC_\x2\x333?\x3\x2\x2\x2\x334\x335\x5\x116"+ + "\x8C\x2\x335\x336\x5\x12E\x98\x2\x336\x338\x3\x2\x2\x2\x337\x334\x3\x2"+ + "\x2\x2\x337\x338\x3\x2\x2\x2\x338\x339\x3\x2\x2\x2\x339\x33A\an\x2\x2"+ + "\x33A\x33B\x5\x12E\x98\x2\x33B\x33D\x5\xFE\x80\x2\x33C\x33E\x5\x12E\x98"+ + "\x2\x33D\x33C\x3\x2\x2\x2\x33D\x33E\x3\x2\x2\x2\x33E\x33F\x3\x2\x2\x2"+ + "\x33F\x340\x5\xF2z\x2\x340\x41\x3\x2\x2\x2\x341\x342\t\x5\x2\x2\x342\x43"+ + "\x3\x2\x2\x2\x343\x344\au\x2\x2\x344\x345\x5\x12E\x98\x2\x345\x347\x5"+ + "\xBC_\x2\x346\x348\x5\x12E\x98\x2\x347\x346\x3\x2\x2\x2\x347\x348\x3\x2"+ + "\x2\x2\x348\x349\x3\x2\x2\x2\x349\x34B\a)\x2\x2\x34A\x34C\x5\x12E\x98"+ + "\x2\x34B\x34A\x3\x2\x2\x2\x34B\x34C\x3\x2\x2\x2\x34C\x34D\x3\x2\x2\x2"+ + "\x34D\x34E\x5\xBC_\x2\x34E\x45\x3\x2\x2\x2\x34F\x350\aw\x2\x2\x350\x351"+ + "\x5\x12E\x98\x2\x351\x352\a]\x2\x2\x352\x353\x5\x12E\x98\x2\x353\x354"+ + "\x5\xBC_\x2\x354\x355\x5\x12E\x98\x2\x355\x356\a\x80\x2\x2\x356\x357\x5"+ + "\x12E\x98\x2\x357\x358\x5\xBC_\x2\x358\x35A\x5\x11E\x90\x2\x359\x35B\x5"+ + "\x1A\xE\x2\x35A\x359\x3\x2\x2\x2\x35A\x35B\x3\x2\x2\x2\x35B\x35C\x3\x2"+ + "\x2\x2\x35C\x360\a\x96\x2\x2\x35D\x35E\x5\x12E\x98\x2\x35E\x35F\x5\xBC"+ + "_\x2\x35F\x361\x3\x2\x2\x2\x360\x35D\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ + "\x361G\x3\x2\x2\x2\x362\x363\aw\x2\x2\x363\x364\x5\x12E\x98\x2\x364\x366"+ + "\x5\xBC_\x2\x365\x367\x5\x12E\x98\x2\x366\x365\x3\x2\x2\x2\x366\x367\x3"+ + "\x2\x2\x2\x367\x368\x3\x2\x2\x2\x368\x36A\a\xE2\x2\x2\x369\x36B\x5\x12E"+ + "\x98\x2\x36A\x369\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2"+ + "\x2\x36C\x36D\x5\xBC_\x2\x36D\x36E\x5\x12E\x98\x2\x36E\x36F\a\xCF\x2\x2"+ + "\x36F\x370\x5\x12E\x98\x2\x370\x376\x5\xBC_\x2\x371\x372\x5\x12E\x98\x2"+ + "\x372\x373\a\xC7\x2\x2\x373\x374\x5\x12E\x98\x2\x374\x375\x5\xBC_\x2\x375"+ + "\x377\x3\x2\x2\x2\x376\x371\x3\x2\x2\x2\x376\x377\x3\x2\x2\x2\x377\x378"+ + "\x3\x2\x2\x2\x378\x37A\x5\x11E\x90\x2\x379\x37B\x5\x1A\xE\x2\x37A\x379"+ + "\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x380\a\x96"+ + "\x2\x2\x37D\x37E\x5\x12E\x98\x2\x37E\x37F\x5\xBC_\x2\x37F\x381\x3\x2\x2"+ + "\x2\x380\x37D\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381I\x3\x2\x2\x2\x382"+ + "\x383\x5\x116\x8C\x2\x383\x384\x5\x12E\x98\x2\x384\x386\x3\x2\x2\x2\x385"+ + "\x382\x3\x2\x2\x2\x385\x386\x3\x2\x2\x2\x386\x389\x3\x2\x2\x2\x387\x388"+ + "\a\xC6\x2\x2\x388\x38A\x5\x12E\x98\x2\x389\x387\x3\x2\x2\x2\x389\x38A"+ + "\x3\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38D\ax\x2\x2\x38C\x38E\x5\x12E"+ + "\x98\x2\x38D\x38C\x3\x2\x2\x2\x38D\x38E\x3\x2\x2\x2\x38E\x38F\x3\x2\x2"+ + "\x2\x38F\x391\x5\xFE\x80\x2\x390\x392\x5\x114\x8B\x2\x391\x390\x3\x2\x2"+ + "\x2\x391\x392\x3\x2\x2\x2\x392\x397\x3\x2\x2\x2\x393\x395\x5\x12E\x98"+ + "\x2\x394\x393\x3\x2\x2\x2\x394\x395\x3\x2\x2\x2\x395\x396\x3\x2\x2\x2"+ + "\x396\x398\x5\xF2z\x2\x397\x394\x3\x2\x2\x2\x397\x398\x3\x2\x2\x2\x398"+ + "\x39D\x3\x2\x2\x2\x399\x39B\x5\x12E\x98\x2\x39A\x399\x3\x2\x2\x2\x39A"+ + "\x39B\x3\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39C\x39E\x5\x100\x81\x2\x39D"+ + "\x39A\x3\x2\x2\x2\x39D\x39E\x3\x2\x2\x2\x39E\x39F\x3\x2\x2\x2\x39F\x3A1"+ + "\x5\x11E\x90\x2\x3A0\x3A2\x5\x1A\xE\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2"+ + "\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3\x3A4\a\x62\x2\x2\x3A4K\x3\x2\x2"+ + "\x2\x3A5\x3A6\ay\x2\x2\x3A6\x3A7\x5\x12E\x98\x2\x3A7\x3A9\x5\xD0i\x2\x3A8"+ + "\x3AA\x5\x12E\x98\x2\x3A9\x3A8\x3\x2\x2\x2\x3A9\x3AA\x3\x2\x2\x2\x3AA"+ + "\x3AB\x3\x2\x2\x2\x3AB\x3AD\a)\x2\x2\x3AC\x3AE\x5\x12E\x98\x2\x3AD\x3AC"+ + "\x3\x2\x2\x2\x3AD\x3AE\x3\x2\x2\x2\x3AE\x3B0\x3\x2\x2\x2\x3AF\x3B1\x5"+ + "\xBC_\x2\x3B0\x3AF\x3\x2\x2\x2\x3B0\x3B1\x3\x2\x2\x2\x3B1\x3B3\x3\x2\x2"+ + "\x2\x3B2\x3B4\x5\x12E\x98\x2\x3B3\x3B2\x3\x2\x2\x2\x3B3\x3B4\x3\x2\x2"+ + "\x2\x3B4\x3B5\x3\x2\x2\x2\x3B5\x3B7\a)\x2\x2\x3B6\x3B8\x5\x12E\x98\x2"+ + "\x3B7\x3B6\x3\x2\x2\x2\x3B7\x3B8\x3\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9"+ + "\x3BA\x5\xBC_\x2\x3BAM\x3\x2\x2\x2\x3BB\x3BC\a{\x2\x2\x3BC\x3BD\x5\x12E"+ + "\x98\x2\x3BD\x3BE\x5\xBC_\x2\x3BEO\x3\x2\x2\x2\x3BF\x3C0\a|\x2\x2\x3C0"+ + "\x3C1\x5\x12E\x98\x2\x3C1\x3C2\x5\xBC_\x2\x3C2Q\x3\x2\x2\x2\x3C3\x3C4"+ + "\a}\x2\x2\x3C4\x3C5\x5\x12E\x98\x2\x3C5\x3C6\x5V,\x2\x3C6\x3C7\x5\x12E"+ + "\x98\x2\x3C7\x3C8\a\xCD\x2\x2\x3C8\x3C9\x5\x12E\x98\x2\x3C9\x3CF\x5\x1C"+ + "\xF\x2\x3CA\x3CB\x5\x12E\x98\x2\x3CB\x3CC\a^\x2\x2\x3CC\x3CD\x5\x12E\x98"+ + "\x2\x3CD\x3CE\x5\x1C\xF\x2\x3CE\x3D0\x3\x2\x2\x2\x3CF\x3CA\x3\x2\x2\x2"+ + "\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3DE\x3\x2\x2\x2\x3D1\x3D5\x5T+\x2\x3D2\x3D4"+ + "\x5X-\x2\x3D3\x3D2\x3\x2\x2\x2\x3D4\x3D7\x3\x2\x2\x2\x3D5\x3D3\x3\x2\x2"+ + "\x2\x3D5\x3D6\x3\x2\x2\x2\x3D6\x3D9\x3\x2\x2\x2\x3D7\x3D5\x3\x2\x2\x2"+ + "\x3D8\x3DA\x5Z.\x2\x3D9\x3D8\x3\x2\x2\x2\x3D9\x3DA\x3\x2\x2\x2\x3DA\x3DB"+ + "\x3\x2\x2\x2\x3DB\x3DC\a\x63\x2\x2\x3DC\x3DE\x3\x2\x2\x2\x3DD\x3C3\x3"+ + "\x2\x2\x2\x3DD\x3D1\x3\x2\x2\x2\x3DES\x3\x2\x2\x2\x3DF\x3E0\a}\x2\x2\x3E0"+ + "\x3E1\x5\x12E\x98\x2\x3E1\x3E2\x5V,\x2\x3E2\x3E3\x5\x12E\x98\x2\x3E3\x3E4"+ + "\a\xCD\x2\x2\x3E4\x3E6\x5\x11E\x90\x2\x3E5\x3E7\x5\x1A\xE\x2\x3E6\x3E5"+ + "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7U\x3\x2\x2\x2\x3E8\x3E9\x5\xBC"+ + "_\x2\x3E9W\x3\x2\x2\x2\x3EA\x3EB\a_\x2\x2\x3EB\x3EC\x5\x12E\x98\x2\x3EC"+ + "\x3ED\x5V,\x2\x3ED\x3EE\x5\x12E\x98\x2\x3EE\x3EF\a\xCD\x2\x2\x3EF\x3F1"+ + "\x5\x11E\x90\x2\x3F0\x3F2\x5\x1A\xE\x2\x3F1\x3F0\x3\x2\x2\x2\x3F1\x3F2"+ + "\x3\x2\x2\x2\x3F2Y\x3\x2\x2\x2\x3F3\x3F4\a^\x2\x2\x3F4\x3F6\x5\x11E\x90"+ + "\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2"+ + "\x3F7[\x3\x2\x2\x2\x3F8\x3F9\a\x7F\x2\x2\x3F9\x3FA\x5\x12E\x98\x2\x3FA"+ + "\x3FB\x5\xBC_\x2\x3FB]\x3\x2\x2\x2\x3FC\x3FD\a\x81\x2\x2\x3FD\x3FE\x5"+ + "\x12E\x98\x2\x3FE\x407\x5\xD0i\x2\x3FF\x401\x5\x12E\x98\x2\x400\x3FF\x3"+ + "\x2\x2\x2\x400\x401\x3\x2\x2\x2\x401\x402\x3\x2\x2\x2\x402\x404\a)\x2"+ + "\x2\x403\x405\x5\x12E\x98\x2\x404\x403\x3\x2\x2\x2\x404\x405\x3\x2\x2"+ + "\x2\x405\x406\x3\x2\x2\x2\x406\x408\x5\xBC_\x2\x407\x400\x3\x2\x2\x2\x408"+ + "\x409\x3\x2\x2\x2\x409\x407\x3\x2\x2\x2\x409\x40A\x3\x2\x2\x2\x40A_\x3"+ + "\x2\x2\x2\x40B\x40C\a\x84\x2\x2\x40C\x40D\x5\x12E\x98\x2\x40D\x40E\x5"+ + "\xBC_\x2\x40E\x61\x3\x2\x2\x2\x40F\x410\a\x89\x2\x2\x410\x412\x5\x12E"+ + "\x98\x2\x411\x40F\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x3\x2\x2"+ + "\x2\x413\x415\x5\xDCo\x2\x414\x416\x5\x12E\x98\x2\x415\x414\x3\x2\x2\x2"+ + "\x415\x416\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x419\a\xE2\x2\x2\x418"+ + "\x41A\x5\x12E\x98\x2\x419\x418\x3\x2\x2\x2\x419\x41A\x3\x2\x2\x2\x41A"+ + "\x41B\x3\x2\x2\x2\x41B\x41C\x5\xBC_\x2\x41C\x63\x3\x2\x2\x2\x41D\x41E"+ + "\a\x8C\x2\x2\x41E\x41F\x5\x12E\x98\x2\x41F\x421\x5\xD0i\x2\x420\x422\x5"+ + "\x12E\x98\x2\x421\x420\x3\x2\x2\x2\x421\x422\x3\x2\x2\x2\x422\x423\x3"+ + "\x2\x2\x2\x423\x425\a)\x2\x2\x424\x426\x5\x12E\x98\x2\x425\x424\x3\x2"+ + "\x2\x2\x425\x426\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2\x427\x428\x5\xBC_\x2"+ + "\x428\x65\x3\x2\x2\x2\x429\x42A\a\x85\x2\x2\x42A\x42B\x5\x12E\x98\x2\x42B"+ + "\x42C\x5\xBC_\x2\x42Cg\x3\x2\x2\x2\x42D\x42E\a\x86\x2\x2\x42E\x42F\x5"+ + "\x12E\x98\x2\x42F\x43F\x5\xBC_\x2\x430\x432\x5\x12E\x98\x2\x431\x430\x3"+ + "\x2\x2\x2\x431\x432\x3\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x435\a)\x2"+ + "\x2\x434\x436\x5\x12E\x98\x2\x435\x434\x3\x2\x2\x2\x435\x436\x3\x2\x2"+ + "\x2\x436\x437\x3\x2\x2\x2\x437\x43D\x5\xBC_\x2\x438\x439\x5\x12E\x98\x2"+ + "\x439\x43A\a\xCF\x2\x2\x43A\x43B\x5\x12E\x98\x2\x43B\x43C\x5\xBC_\x2\x43C"+ + "\x43E\x3\x2\x2\x2\x43D\x438\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x440"+ + "\x3\x2\x2\x2\x43F\x431\x3\x2\x2\x2\x43F\x440\x3\x2\x2\x2\x440i\x3\x2\x2"+ + "\x2\x441\x442\a\x90\x2\x2\x442\x443\x5\x12E\x98\x2\x443\x445\x5\xDCo\x2"+ + "\x444\x446\x5\x12E\x98\x2\x445\x444\x3\x2\x2\x2\x445\x446\x3\x2\x2\x2"+ + "\x446\x447\x3\x2\x2\x2\x447\x449\a\xE2\x2\x2\x448\x44A\x5\x12E\x98\x2"+ + "\x449\x448\x3\x2\x2\x2\x449\x44A\x3\x2\x2\x2\x44A\x44B\x3\x2\x2\x2\x44B"+ + "\x44C\x5\xBC_\x2\x44Ck\x3\x2\x2\x2\x44D\x44F\a\x92\x2\x2\x44E\x450\x5"+ + "\x12E\x98\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3"+ + "\x2\x2\x2\x451\x453\a\xE6\x2\x2\x452\x454\x5\x12E\x98\x2\x453\x452\x3"+ + "\x2\x2\x2\x453\x454\x3\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455\x457\x5\xEC"+ + "w\x2\x456\x458\x5\x12E\x98\x2\x457\x456\x3\x2\x2\x2\x457\x458\x3\x2\x2"+ + "\x2\x458\x459\x3\x2\x2\x2\x459\x45A\a\xED\x2\x2\x45Am\x3\x2\x2\x2\x45B"+ + "\x45C\a\x93\x2\x2\x45C\x45D\x5\x12E\x98\x2\x45D\x45E\x5\xBC_\x2\x45Eo"+ + "\x3\x2\x2\x2\x45F\x460\a\x95\x2\x2\x460\x461\x5\x12E\x98\x2\x461\x462"+ + "\x5\xBC_\x2\x462\x463\x5\x12E\x98\x2\x463\x464\a:\x2\x2\x464\x465\x5\x12E"+ + "\x98\x2\x465\x466\x5\xBC_\x2\x466q\x3\x2\x2\x2\x467\x468\t\x6\x2\x2\x468"+ + "\x471\x5\x12E\x98\x2\x469\x46A\a|\x2\x2\x46A\x46B\x5\x12E\x98\x2\x46B"+ + "\x46C\x5\xBC_\x2\x46C\x472\x3\x2\x2\x2\x46D\x46E\a\xB8\x2\x2\x46E\x46F"+ + "\x5\x12E\x98\x2\x46F\x470\a\x96\x2\x2\x470\x472\x3\x2\x2\x2\x471\x469"+ + "\x3\x2\x2\x2\x471\x46D\x3\x2\x2\x2\x472s\x3\x2\x2\x2\x473\x474\a\x9B\x2"+ + "\x2\x474\x475\x5\x12E\x98\x2\x475\x476\x5\xBC_\x2\x476\x477\x5\x12E\x98"+ + "\x2\x477\x478\a|\x2\x2\x478\x479\x5\x12E\x98\x2\x479\x484\x5\xBC_\x2\x47A"+ + "\x47C\x5\x12E\x98\x2\x47B\x47A\x3\x2\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C"+ + "\x47D\x3\x2\x2\x2\x47D\x47F\a)\x2\x2\x47E\x480\x5\x12E\x98\x2\x47F\x47E"+ + "\x3\x2\x2\x2\x47F\x480\x3\x2\x2\x2\x480\x481\x3\x2\x2\x2\x481\x483\x5"+ + "\xBC_\x2\x482\x47B\x3\x2\x2\x2\x483\x486\x3\x2\x2\x2\x484\x482\x3\x2\x2"+ + "\x2\x484\x485\x3\x2\x2\x2\x485u\x3\x2\x2\x2\x486\x484\x3\x2\x2\x2\x487"+ + "\x488\a\x9B\x2\x2\x488\x489\x5\x12E\x98\x2\x489\x48A\x5\xBC_\x2\x48A\x48B"+ + "\x5\x12E\x98\x2\x48B\x48C\a{\x2\x2\x48C\x48D\x5\x12E\x98\x2\x48D\x498"+ + "\x5\xBC_\x2\x48E\x490\x5\x12E\x98\x2\x48F\x48E\x3\x2\x2\x2\x48F\x490\x3"+ + "\x2\x2\x2\x490\x491\x3\x2\x2\x2\x491\x493\a)\x2\x2\x492\x494\x5\x12E\x98"+ + "\x2\x493\x492\x3\x2\x2\x2\x493\x494\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2"+ + "\x495\x497\x5\xBC_\x2\x496\x48F\x3\x2\x2\x2\x497\x49A\x3\x2\x2\x2\x498"+ + "\x496\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499w\x3\x2\x2\x2\x49A\x498\x3"+ + "\x2\x2\x2\x49B\x49C\a\x9E\x2\x2\x49C\x49D\x5\x12E\x98\x2\x49D\x49E\x5"+ + "\xBC_\x2\x49E\x49F\x5\x12E\x98\x2\x49F\x4A0\aw\x2\x2\x4A0\x4A1\x5\x12E"+ + "\x98\x2\x4A1\x4A7\t\a\x2\x2\x4A2\x4A3\x5\x12E\x98\x2\x4A3\x4A4\a\x33\x2"+ + "\x2\x4A4\x4A5\x5\x12E\x98\x2\x4A5\x4A6\t\b\x2\x2\x4A6\x4A8\x3\x2\x2\x2"+ + "\x4A7\x4A2\x3\x2\x2\x2\x4A7\x4A8\x3\x2\x2\x2\x4A8\x4AC\x3\x2\x2\x2\x4A9"+ + "\x4AA\x5\x12E\x98\x2\x4AA\x4AB\t\t\x2\x2\x4AB\x4AD\x3\x2\x2\x2\x4AC\x4A9"+ + "\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4AF\x5"+ + "\x12E\x98\x2\x4AF\x4B0\a:\x2\x2\x4B0\x4B1\x5\x12E\x98\x2\x4B1\x4BD\x5"+ + "\xD0i\x2\x4B2\x4B3\x5\x12E\x98\x2\x4B3\x4B5\a\x1D\x2\x2\x4B4\x4B6\x5\x12E"+ + "\x98\x2\x4B5\x4B4\x3\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6\x4B7\x3\x2\x2"+ + "\x2\x4B7\x4B9\a\xE2\x2\x2\x4B8\x4BA\x5\x12E\x98\x2\x4B9\x4B8\x3\x2\x2"+ + "\x2\x4B9\x4BA\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x5\xBC_\x2\x4BC"+ + "\x4BE\x3\x2\x2\x2\x4BD\x4B2\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BEy\x3"+ + "\x2\x2\x2\x4BF\x4CC\x5|?\x2\x4C0\x4C2\x5\x12E\x98\x2\x4C1\x4C0\x3\x2\x2"+ + "\x2\x4C1\x4C2\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C5\t\n\x2\x2\x4C4"+ + "\x4C6\x5\x12E\x98\x2\x4C5\x4C4\x3\x2\x2\x2\x4C5\x4C6\x3\x2\x2\x2\x4C6"+ + "\x4C8\x3\x2\x2\x2\x4C7\x4C9\x5|?\x2\x4C8\x4C7\x3\x2\x2\x2\x4C8\x4C9\x3"+ + "\x2\x2\x2\x4C9\x4CB\x3\x2\x2\x2\x4CA\x4C1\x3\x2\x2\x2\x4CB\x4CE\x3\x2"+ + "\x2\x2\x4CC\x4CA\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4E1\x3\x2\x2"+ + "\x2\x4CE\x4CC\x3\x2\x2\x2\x4CF\x4D1\x5|?\x2\x4D0\x4CF\x3\x2\x2\x2\x4D0"+ + "\x4D1\x3\x2\x2\x2\x4D1\x4DC\x3\x2\x2\x2\x4D2\x4D4\x5\x12E\x98\x2\x4D3"+ + "\x4D2\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2\x2\x4D4\x4D5\x3\x2\x2\x2\x4D5\x4D7"+ + "\t\n\x2\x2\x4D6\x4D8\x5\x12E\x98\x2\x4D7\x4D6\x3\x2\x2\x2\x4D7\x4D8\x3"+ + "\x2\x2\x2\x4D8\x4DA\x3\x2\x2\x2\x4D9\x4DB\x5|?\x2\x4DA\x4D9\x3\x2\x2\x2"+ + "\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\x3\x2\x2\x2\x4DC\x4D3\x3\x2\x2\x2\x4DD"+ + "\x4DE\x3\x2\x2\x2\x4DE\x4DC\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1"+ + "\x3\x2\x2\x2\x4E0\x4BF\x3\x2\x2\x2\x4E0\x4D0\x3\x2\x2\x2\x4E1{\x3\x2\x2"+ + "\x2\x4E2\x4F4\x5\xBC_\x2\x4E3\x4F1\t\v\x2\x2\x4E4\x4E6\x5\x12E\x98\x2"+ "\x4E5\x4E4\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2\x4E6\x4E7\x3\x2\x2\x2\x4E7"+ - "\x4E8\a\xED\x2\x2\x4E8\x4EA\x3\x2\x2\x2\x4E9\x4DD\x3\x2\x2\x2\x4E9\x4EA"+ - "\x3\x2\x2\x2\x4EA\x4EC\x3\x2\x2\x2\x4EB\x4DA\x3\x2\x2\x2\x4EB\x4DB\x3"+ - "\x2\x2\x2\x4EC}\x3\x2\x2\x2\x4ED\x4EE\a\xA8\x2\x2\x4EE\x4EF\x5\x126\x94"+ - "\x2\x4EF\x4F1\x5\xD0i\x2\x4F0\x4F2\x5\x126\x94\x2\x4F1\x4F0\x3\x2\x2\x2"+ - "\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2\x4F3\x4F8\a)\x2\x2\x4F4\x4F6"+ - "\x5\x126\x94\x2\x4F5\x4F4\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2\x4F6\x4F7"+ - "\x3\x2\x2\x2\x4F7\x4F9\x5z>\x2\x4F8\x4F5\x3\x2\x2\x2\x4F8\x4F9\x3\x2\x2"+ - "\x2\x4F9\x7F\x3\x2\x2\x2\x4FA\x4FB\x5\x110\x89\x2\x4FB\x4FC\x5\x126\x94"+ - "\x2\x4FC\x4FE\x3\x2\x2\x2\x4FD\x4FA\x3\x2\x2\x2\x4FD\x4FE\x3\x2\x2\x2"+ - "\x4FE\x501\x3\x2\x2\x2\x4FF\x500\a\xC6\x2\x2\x500\x502\x5\x126\x94\x2"+ - "\x501\x4FF\x3\x2\x2\x2\x501\x502\x3\x2\x2\x2\x502\x503\x3\x2\x2\x2\x503"+ - "\x504\a\xAA\x2\x2\x504\x505\x5\x126\x94\x2\x505\x507\x5\xF8}\x2\x506\x508"+ - "\x5\x10E\x88\x2\x507\x506\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x50D"+ - "\x3\x2\x2\x2\x509\x50B\x5\x126\x94\x2\x50A\x509\x3\x2\x2\x2\x50A\x50B"+ - "\x3\x2\x2\x2\x50B\x50C\x3\x2\x2\x2\x50C\x50E\x5\xEEx\x2\x50D\x50A\x3\x2"+ - "\x2\x2\x50D\x50E\x3\x2\x2\x2\x50E\x512\x3\x2\x2\x2\x50F\x510\x5\x126\x94"+ - "\x2\x510\x511\x5\xFA~\x2\x511\x513\x3\x2\x2\x2\x512\x50F\x3\x2\x2\x2\x512"+ - "\x513\x3\x2\x2\x2\x513\x514\x3\x2\x2\x2\x514\x516\x5\x116\x8C\x2\x515"+ - "\x517\x5\x1A\xE\x2\x516\x515\x3\x2\x2\x2\x516\x517\x3\x2\x2\x2\x517\x518"+ - "\x3\x2\x2\x2\x518\x519\a\x64\x2\x2\x519\x81\x3\x2\x2\x2\x51A\x51B\x5\x110"+ - "\x89\x2\x51B\x51C\x5\x126\x94\x2\x51C\x51E\x3\x2\x2\x2\x51D\x51A\x3\x2"+ - "\x2\x2\x51D\x51E\x3\x2\x2\x2\x51E\x521\x3\x2\x2\x2\x51F\x520\a\xC6\x2"+ - "\x2\x520\x522\x5\x126\x94\x2\x521\x51F\x3\x2\x2\x2\x521\x522\x3\x2\x2"+ - "\x2\x522\x523\x3\x2\x2\x2\x523\x524\a\xAC\x2\x2\x524\x525\x5\x126\x94"+ - "\x2\x525\x52A\x5\xF8}\x2\x526\x528\x5\x126\x94\x2\x527\x526\x3\x2\x2\x2"+ - "\x527\x528\x3\x2\x2\x2\x528\x529\x3\x2\x2\x2\x529\x52B\x5\xEEx\x2\x52A"+ - "\x527\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52C\x3\x2\x2\x2\x52C\x52E"+ - "\x5\x116\x8C\x2\x52D\x52F\x5\x1A\xE\x2\x52E\x52D\x3\x2\x2\x2\x52E\x52F"+ - "\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531\a\x64\x2\x2\x531\x83\x3\x2"+ - "\x2\x2\x532\x533\x5\x110\x89\x2\x533\x534\x5\x126\x94\x2\x534\x536\x3"+ - "\x2\x2\x2\x535\x532\x3\x2\x2\x2\x535\x536\x3\x2\x2\x2\x536\x539\x3\x2"+ - "\x2\x2\x537\x538\a\xC6\x2\x2\x538\x53A\x5\x126\x94\x2\x539\x537\x3\x2"+ - "\x2\x2\x539\x53A\x3\x2\x2\x2\x53A\x53B\x3\x2\x2\x2\x53B\x53C\a\xAB\x2"+ - "\x2\x53C\x53D\x5\x126\x94\x2\x53D\x542\x5\xF8}\x2\x53E\x540\x5\x126\x94"+ - "\x2\x53F\x53E\x3\x2\x2\x2\x53F\x540\x3\x2\x2\x2\x540\x541\x3\x2\x2\x2"+ - "\x541\x543\x5\xEEx\x2\x542\x53F\x3\x2\x2\x2\x542\x543\x3\x2\x2\x2\x543"+ - "\x544\x3\x2\x2\x2\x544\x546\x5\x116\x8C\x2\x545\x547\x5\x1A\xE\x2\x546"+ - "\x545\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2\x2\x548\x549"+ - "\a\x64\x2\x2\x549\x85\x3\x2\x2\x2\x54A\x54B\a\xAF\x2\x2\x54B\x54C\x5\x126"+ - "\x94\x2\x54C\x54E\x5\xD0i\x2\x54D\x54F\x5\x126\x94\x2\x54E\x54D\x3\x2"+ - "\x2\x2\x54E\x54F\x3\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x552\a)\x2\x2"+ - "\x551\x553\x5\x126\x94\x2\x552\x551\x3\x2\x2\x2\x552\x553\x3\x2\x2\x2"+ - "\x553\x555\x3\x2\x2\x2\x554\x556\x5\xBC_\x2\x555\x554\x3\x2\x2\x2\x555"+ - "\x556\x3\x2\x2\x2\x556\x558\x3\x2\x2\x2\x557\x559\x5\x126\x94\x2\x558"+ - "\x557\x3\x2\x2\x2\x558\x559\x3\x2\x2\x2\x559\x55A\x3\x2\x2\x2\x55A\x55C"+ - "\a)\x2\x2\x55B\x55D\x5\x126\x94\x2\x55C\x55B\x3\x2\x2\x2\x55C\x55D\x3"+ - "\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x55F\x5\xBC_\x2\x55F\x87\x3\x2\x2"+ - "\x2\x560\x561\a\xB2\x2\x2\x561\x562\x5\x126\x94\x2\x562\x571\x5\xF8}\x2"+ - "\x563\x565\x5\x126\x94\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2"+ - "\x565\x566\x3\x2\x2\x2\x566\x568\a\xE6\x2\x2\x567\x569\x5\x126\x94\x2"+ - "\x568\x567\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569\x56E\x3\x2\x2\x2\x56A"+ - "\x56C\x5\xE8u\x2\x56B\x56D\x5\x126\x94\x2\x56C\x56B\x3\x2\x2\x2\x56C\x56D"+ - "\x3\x2\x2\x2\x56D\x56F\x3\x2\x2\x2\x56E\x56A\x3\x2\x2\x2\x56E\x56F\x3"+ - "\x2\x2\x2\x56F\x570\x3\x2\x2\x2\x570\x572\a\xED\x2\x2\x571\x564\x3\x2"+ - "\x2\x2\x571\x572\x3\x2\x2\x2\x572\x89\x3\x2\x2\x2\x573\x577\a\xB1\x2\x2"+ - "\x574\x575\x5\x126\x94\x2\x575\x576\x5\xBC_\x2\x576\x578\x3\x2\x2\x2\x577"+ - "\x574\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x8B\x3\x2\x2\x2\x579\x57A"+ - "\a\xB5\x2\x2\x57A\x57D\x5\x126\x94\x2\x57B\x57C\a\xA7\x2\x2\x57C\x57E"+ - "\x5\x126\x94\x2\x57D\x57B\x3\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x57F"+ - "\x3\x2\x2\x2\x57F\x58A\x5\x8EH\x2\x580\x582\x5\x126\x94\x2\x581\x580\x3"+ - "\x2\x2\x2\x581\x582\x3\x2\x2\x2\x582\x583\x3\x2\x2\x2\x583\x585\a)\x2"+ - "\x2\x584\x586\x5\x126\x94\x2\x585\x584\x3\x2\x2\x2\x585\x586\x3\x2\x2"+ - "\x2\x586\x587\x3\x2\x2\x2\x587\x589\x5\x8EH\x2\x588\x581\x3\x2\x2\x2\x589"+ - "\x58C\x3\x2\x2\x2\x58A\x588\x3\x2\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x8D"+ - "\x3\x2\x2\x2\x58C\x58A\x3\x2\x2\x2\x58D\x58F\x5\xDCo\x2\x58E\x590\x5\x126"+ - "\x94\x2\x58F\x58E\x3\x2\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591\x3\x2\x2"+ - "\x2\x591\x593\a\xE6\x2\x2\x592\x594\x5\x126\x94\x2\x593\x592\x3\x2\x2"+ - "\x2\x593\x594\x3\x2\x2\x2\x594\x595\x3\x2\x2\x2\x595\x597\x5\xF4{\x2\x596"+ - "\x598\x5\x126\x94\x2\x597\x596\x3\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598"+ - "\x599\x3\x2\x2\x2\x599\x59D\a\xED\x2\x2\x59A\x59B\x5\x126\x94\x2\x59B"+ - "\x59C\x5\xFA~\x2\x59C\x59E\x3\x2\x2\x2\x59D\x59A\x3\x2\x2\x2\x59D\x59E"+ - "\x3\x2\x2\x2\x59E\x8F\x3\x2\x2\x2\x59F\x5A0\a\xB7\x2\x2\x5A0\x91\x3\x2"+ - "\x2\x2\x5A1\x5A7\a\xB8\x2\x2\x5A2\x5A5\x5\x126\x94\x2\x5A3\x5A6\a\x96"+ - "\x2\x2\x5A4\x5A6\x5\xF8}\x2\x5A5\x5A3\x3\x2\x2\x2\x5A5\x5A4\x3\x2\x2\x2"+ - "\x5A6\x5A8\x3\x2\x2\x2\x5A7\x5A2\x3\x2\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8"+ - "\x93\x3\x2\x2\x2\x5A9\x5AA\a\xB9\x2\x2\x5AA\x95\x3\x2\x2\x2\x5AB\x5AC"+ - "\a\xBA\x2\x2\x5AC\x5AD\x5\x126\x94\x2\x5AD\x5AE\x5\xBC_\x2\x5AE\x97\x3"+ - "\x2\x2\x2\x5AF\x5B0\a\xBB\x2\x2\x5B0\x5B1\x5\x126\x94\x2\x5B1\x5B3\x5"+ - "\xDCo\x2\x5B2\x5B4\x5\x126\x94\x2\x5B3\x5B2\x3\x2\x2\x2\x5B3\x5B4\x3\x2"+ - "\x2\x2\x5B4\x5B5\x3\x2\x2\x2\x5B5\x5B7\a\xE2\x2\x2\x5B6\x5B8\x5\x126\x94"+ - "\x2\x5B7\x5B6\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x3\x2\x2\x2"+ - "\x5B9\x5BA\x5\xBC_\x2\x5BA\x99\x3\x2\x2\x2\x5BB\x5BC\a\xBC\x2\x2\x5BC"+ - "\x5BD\x5\x126\x94\x2\x5BD\x5BF\x5\xBC_\x2\x5BE\x5C0\x5\x126\x94\x2\x5BF"+ - "\x5BE\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C3"+ - "\a)\x2\x2\x5C2\x5C4\x5\x126\x94\x2\x5C3\x5C2\x3\x2\x2\x2\x5C3\x5C4\x3"+ - "\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5\x5C6\x5\xBC_\x2\x5C6\x9B\x3\x2\x2"+ - "\x2\x5C7\x5C8\a\xBD\x2\x2\x5C8\x5C9\x5\x126\x94\x2\x5C9\x5CB\x5\xBC_\x2"+ - "\x5CA\x5CC\x5\x126\x94\x2\x5CB\x5CA\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2"+ - "\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CF\a)\x2\x2\x5CE\x5D0\x5\x126\x94\x2\x5CF"+ - "\x5CE\x3\x2\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0\x5D1\x3\x2\x2\x2\x5D1\x5D3"+ - "\x5\xBC_\x2\x5D2\x5D4\x5\x126\x94\x2\x5D3\x5D2\x3\x2\x2\x2\x5D3\x5D4\x3"+ - "\x2\x2\x2\x5D4\x5D5\x3\x2\x2\x2\x5D5\x5D7\a)\x2\x2\x5D6\x5D8\x5\x126\x94"+ - "\x2\x5D7\x5D6\x3\x2\x2\x2\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5D9\x3\x2\x2\x2"+ - "\x5D9\x5DB\x5\xBC_\x2\x5DA\x5DC\x5\x126\x94\x2\x5DB\x5DA\x3\x2\x2\x2\x5DB"+ - "\x5DC\x3\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DF\a)\x2\x2\x5DE\x5E0\x5"+ - "\x126\x94\x2\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3"+ - "\x2\x2\x2\x5E1\x5E2\x5\xBC_\x2\x5E2\x9D\x3\x2\x2\x2\x5E3\x5E4\a\xBE\x2"+ - "\x2\x5E4\x5E5\x5\x126\x94\x2\x5E5\x5E7\x5\xD0i\x2\x5E6\x5E8\x5\x126\x94"+ - "\x2\x5E7\x5E6\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2"+ - "\x5E9\x5EB\a)\x2\x2\x5EA\x5EC\x5\x126\x94\x2\x5EB\x5EA\x3\x2\x2\x2\x5EB"+ - "\x5EC\x3\x2\x2\x2\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x5\xBC_\x2\x5EE\x9F"+ - "\x3\x2\x2\x2\x5EF\x5F0\a\xBF\x2\x2\x5F0\x5F1\x5\x126\x94\x2\x5F1\x5F2"+ - "\a\x43\x2\x2\x5F2\x5F3\x5\x126\x94\x2\x5F3\x5F4\x5\xBC_\x2\x5F4\x5F8\x5"+ - "\x116\x8C\x2\x5F5\x5F7\x5\xA4S\x2\x5F6\x5F5\x3\x2\x2\x2\x5F7\x5FA\x3\x2"+ - "\x2\x2\x5F8\x5F6\x3\x2\x2\x2\x5F8\x5F9\x3\x2\x2\x2\x5F9\x5FB\x3\x2\x2"+ - "\x2\x5FA\x5F8\x3\x2\x2\x2\x5FB\x5FC\a\x65\x2\x2\x5FC\xA1\x3\x2\x2\x2\x5FD"+ - "\x5FF\a\x82\x2\x2\x5FE\x600\x5\x126\x94\x2\x5FF\x5FE\x3\x2\x2\x2\x5FF"+ - "\x600\x3\x2\x2\x2\x600\x601\x3\x2\x2\x2\x601\x603\x5\xFE\x80\x2\x602\x604"+ - "\x5\x126\x94\x2\x603\x602\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x605"+ - "\x3\x2\x2\x2\x605\x606\x5\xBC_\x2\x606\x60F\x3\x2\x2\x2\x607\x608\x5\xBC"+ - "_\x2\x608\x609\x5\x126\x94\x2\x609\x60A\a\xCF\x2\x2\x60A\x60B\x5\x126"+ - "\x94\x2\x60B\x60C\x5\xBC_\x2\x60C\x60F\x3\x2\x2\x2\x60D\x60F\x5\xBC_\x2"+ - "\x60E\x5FD\x3\x2\x2\x2\x60E\x607\x3\x2\x2\x2\x60E\x60D\x3\x2\x2\x2\x60F"+ - "\xA3\x3\x2\x2\x2\x610\x611\a\x43\x2\x2\x611\x612\x5\x126\x94\x2\x612\x613"+ - "\x5\xA6T\x2\x613\x615\x5\x116\x8C\x2\x614\x616\x5\x1A\xE\x2\x615\x614"+ - "\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\xA5\x3\x2\x2\x2\x617\x627\a^\x2"+ - "\x2\x618\x623\x5\xA2R\x2\x619\x61B\x5\x126\x94\x2\x61A\x619\x3\x2\x2\x2"+ - "\x61A\x61B\x3\x2\x2\x2\x61B\x61C\x3\x2\x2\x2\x61C\x61E\a)\x2\x2\x61D\x61F"+ - "\x5\x126\x94\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F\x3\x2\x2\x2\x61F\x620"+ - "\x3\x2\x2\x2\x620\x622\x5\xA2R\x2\x621\x61A\x3\x2\x2\x2\x622\x625\x3\x2"+ - "\x2\x2\x623\x621\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x627\x3\x2\x2"+ - "\x2\x625\x623\x3\x2\x2\x2\x626\x617\x3\x2\x2\x2\x626\x618\x3\x2\x2\x2"+ - "\x627\xA7\x3\x2\x2\x2\x628\x629\a\xC0\x2\x2\x629\x62A\x5\x126\x94\x2\x62A"+ - "\x633\x5\xBC_\x2\x62B\x62D\x5\x126\x94\x2\x62C\x62B\x3\x2\x2\x2\x62C\x62D"+ - "\x3\x2\x2\x2\x62D\x62E\x3\x2\x2\x2\x62E\x630\a)\x2\x2\x62F\x631\x5\x126"+ - "\x94\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631\x632\x3\x2\x2"+ - "\x2\x632\x634\x5\xBC_\x2\x633\x62C\x3\x2\x2\x2\x633\x634\x3\x2\x2\x2\x634"+ - "\xA9\x3\x2\x2\x2\x635\x636\a\xC2\x2\x2\x636\x637\x5\x126\x94\x2\x637\x639"+ - "\x5\xBC_\x2\x638\x63A\x5\x126\x94\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3"+ - "\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a)\x2\x2\x63C\x63E\x5\x126\x94"+ - "\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2"+ - "\x63F\x640\x5\xBC_\x2\x640\xAB\x3\x2\x2\x2\x641\x642\a\xC1\x2\x2\x642"+ - "\x643\x5\x126\x94\x2\x643\x645\x5\xDCo\x2\x644\x646\x5\x126\x94\x2\x645"+ - "\x644\x3\x2\x2\x2\x645\x646\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x649"+ - "\a\xE2\x2\x2\x648\x64A\x5\x126\x94\x2\x649\x648\x3\x2\x2\x2\x649\x64A"+ - "\x3\x2\x2\x2\x64A\x64B\x3\x2\x2\x2\x64B\x64C\x5\xBC_\x2\x64C\xAD\x3\x2"+ - "\x2\x2\x64D\x64E\a\xC8\x2\x2\x64E\xAF\x3\x2\x2\x2\x64F\x650\x5\x110\x89"+ - "\x2\x650\x651\x5\x126\x94\x2\x651\x653\x3\x2\x2\x2\x652\x64F\x3\x2\x2"+ - "\x2\x652\x653\x3\x2\x2\x2\x653\x656\x3\x2\x2\x2\x654\x655\a\xC6\x2\x2"+ - "\x655\x657\x5\x126\x94\x2\x656\x654\x3\x2\x2\x2\x656\x657\x3\x2\x2\x2"+ - "\x657\x658\x3\x2\x2\x2\x658\x65A\a\xCA\x2\x2\x659\x65B\x5\x126\x94\x2"+ - "\x65A\x659\x3\x2\x2\x2\x65A\x65B\x3\x2\x2\x2\x65B\x65C\x3\x2\x2\x2\x65C"+ - "\x661\x5\xF8}\x2\x65D\x65F\x5\x126\x94\x2\x65E\x65D\x3\x2\x2\x2\x65E\x65F"+ - "\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x662\x5\xEEx\x2\x661\x65E\x3\x2"+ - "\x2\x2\x661\x662\x3\x2\x2\x2\x662\x663\x3\x2\x2\x2\x663\x665\x5\x116\x8C"+ - "\x2\x664\x666\x5\x1A\xE\x2\x665\x664\x3\x2\x2\x2\x665\x666\x3\x2\x2\x2"+ - "\x666\x667\x3\x2\x2\x2\x667\x668\a\x66\x2\x2\x668\xB1\x3\x2\x2\x2\x669"+ - "\x66B\a\xCE\x2\x2\x66A\x66C\x5\x126\x94\x2\x66B\x66A\x3\x2\x2\x2\x66B"+ - "\x66C\x3\x2\x2\x2\x66C\x66D\x3\x2\x2\x2\x66D\x66F\a\xE2\x2\x2\x66E\x670"+ - "\x5\x126\x94\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2\x2\x670\x671"+ - "\x3\x2\x2\x2\x671\x672\x5\xBC_\x2\x672\xB3\x3\x2\x2\x2\x673\x674\x5\x110"+ - "\x89\x2\x674\x675\x5\x126\x94\x2\x675\x677\x3\x2\x2\x2\x676\x673\x3\x2"+ - "\x2\x2\x676\x677\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2\x678\x679\a\xD1\x2"+ - "\x2\x679\x67A\x5\x126\x94\x2\x67A\x67B\x5\xF8}\x2\x67B\x67F\x5\x116\x8C"+ - "\x2\x67C\x67E\x5\xB6\\\x2\x67D\x67C\x3\x2\x2\x2\x67E\x681\x3\x2\x2\x2"+ - "\x67F\x67D\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x682\x3\x2\x2\x2\x681"+ - "\x67F\x3\x2\x2\x2\x682\x683\ag\x2\x2\x683\xB5\x3\x2\x2\x2\x684\x693\x5"+ - "\xF8}\x2\x685\x687\x5\x126\x94\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2"+ - "\x2\x2\x687\x688\x3\x2\x2\x2\x688\x68D\a\xE6\x2\x2\x689\x68B\x5\x126\x94"+ - "\x2\x68A\x689\x3\x2\x2\x2\x68A\x68B\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2"+ - "\x68C\x68E\x5\xF4{\x2\x68D\x68A\x3\x2\x2\x2\x68D\x68E\x3\x2\x2\x2\x68E"+ - "\x690\x3\x2\x2\x2\x68F\x691\x5\x126\x94\x2\x690\x68F\x3\x2\x2\x2\x690"+ - "\x691\x3\x2\x2\x2\x691\x692\x3\x2\x2\x2\x692\x694\a\xED\x2\x2\x693\x686"+ - "\x3\x2\x2\x2\x693\x694\x3\x2\x2\x2\x694\x698\x3\x2\x2\x2\x695\x696\x5"+ - "\x126\x94\x2\x696\x697\x5\xFA~\x2\x697\x699\x3\x2\x2\x2\x698\x695\x3\x2"+ - "\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69B\x5\x116\x8C"+ - "\x2\x69B\xB7\x3\x2\x2\x2\x69C\x69D\a\xD3\x2\x2\x69D\x69E\x5\x126\x94\x2"+ - "\x69E\x69F\x5\xBC_\x2\x69F\xB9\x3\x2\x2\x2\x6A0\x6A1\a\xD4\x2\x2\x6A1"+ - "\x6A2\x5\x126\x94\x2\x6A2\x6B2\x5\xD0i\x2\x6A3\x6A5\x5\x126\x94\x2\x6A4"+ - "\x6A3\x3\x2\x2\x2\x6A4\x6A5\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A8"+ - "\a)\x2\x2\x6A7\x6A9\x5\x126\x94\x2\x6A8\x6A7\x3\x2\x2\x2\x6A8\x6A9\x3"+ - "\x2\x2\x2\x6A9\x6AA\x3\x2\x2\x2\x6AA\x6B0\x5\xBC_\x2\x6AB\x6AC\x5\x126"+ - "\x94\x2\x6AC\x6AD\a\xCF\x2\x2\x6AD\x6AE\x5\x126\x94\x2\x6AE\x6AF\x5\xBC"+ - "_\x2\x6AF\x6B1\x3\x2\x2\x2\x6B0\x6AB\x3\x2\x2\x2\x6B0\x6B1\x3\x2\x2\x2"+ - "\x6B1\x6B3\x3\x2\x2\x2\x6B2\x6A4\x3\x2\x2\x2\x6B2\x6B3\x3\x2\x2\x2\x6B3"+ - "\xBB\x3\x2\x2\x2\x6B4\x6B5\b_\x1\x2\x6B5\x6B7\a\x97\x2\x2\x6B6\x6B8\x5"+ - "\x126\x94\x2\x6B7\x6B6\x3\x2\x2\x2\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6B9\x3"+ - "\x2\x2\x2\x6B9\x6E2\x5\xBC_\x15\x6BA\x6BC\a\x34\x2\x2\x6BB\x6BD\x5\x126"+ - "\x94\x2\x6BC\x6BB\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BE\x3\x2\x2"+ - "\x2\x6BE\x6E2\x5\xBC_\x12\x6BF\x6C1\x5\xDCo\x2\x6C0\x6C2\x5\x126\x94\x2"+ - "\x6C1\x6C0\x3\x2\x2\x2\x6C1\x6C2\x3\x2\x2\x2\x6C2\x6C3\x3\x2\x2\x2\x6C3"+ - "\x6C5\a\xDF\x2\x2\x6C4\x6C6\x5\x126\x94\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5"+ - "\x6C6\x3\x2\x2\x2\x6C6\x6C7\x3\x2\x2\x2\x6C7\x6C8\x5\xBC_\x11\x6C8\x6E2"+ - "\x3\x2\x2\x2\x6C9\x6CB\a\xE8\x2\x2\x6CA\x6CC\x5\x126\x94\x2\x6CB\x6CA"+ - "\x3\x2\x2\x2\x6CB\x6CC\x3\x2\x2\x2\x6CC\x6CD\x3\x2\x2\x2\x6CD\x6E2\x5"+ - "\xBC_\xF\x6CE\x6D0\a\x98\x2\x2\x6CF\x6D1\x5\x126\x94\x2\x6D0\x6CF\x3\x2"+ - "\x2\x2\x6D0\x6D1\x3\x2\x2\x2\x6D1\x6D2\x3\x2\x2\x2\x6D2\x6E2\x5\xBC_\b"+ - "\x6D3\x6E2\x5\x108\x85\x2\x6D4\x6E2\x5\xDCo\x2\x6D5\x6D7\a\xE6\x2\x2\x6D6"+ - "\x6D8\x5\x126\x94\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8"+ - "\x6D9\x3\x2\x2\x2\x6D9\x6DB\x5\xBC_\x2\x6DA\x6DC\x5\x126\x94\x2\x6DB\x6DA"+ - "\x3\x2\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x6DE\a\xED"+ - "\x2\x2\x6DE\x6E2\x3\x2\x2\x2\x6DF\x6E2\x5\xBE`\x2\x6E0\x6E2\x5l\x37\x2"+ - "\x6E1\x6B4\x3\x2\x2\x2\x6E1\x6BA\x3\x2\x2\x2\x6E1\x6BF\x3\x2\x2\x2\x6E1"+ - "\x6C9\x3\x2\x2\x2\x6E1\x6CE\x3\x2\x2\x2\x6E1\x6D3\x3\x2\x2\x2\x6E1\x6D4"+ - "\x3\x2\x2\x2\x6E1\x6D5\x3\x2\x2\x2\x6E1\x6DF\x3\x2\x2\x2\x6E1\x6E0\x3"+ - "\x2\x2\x2\x6E2\x751\x3\x2\x2\x2\x6E3\x6E5\f\x10\x2\x2\x6E4\x6E6\x5\x126"+ - "\x94\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2\x6E6\x6E7\x3\x2\x2"+ - "\x2\x6E7\x6E9\a\xEC\x2\x2\x6E8\x6EA\x5\x126\x94\x2\x6E9\x6E8\x3\x2\x2"+ - "\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB\x750\x5\xBC_\x11"+ - "\x6EC\x6EE\f\xE\x2\x2\x6ED\x6EF\x5\x126\x94\x2\x6EE\x6ED\x3\x2\x2\x2\x6EE"+ - "\x6EF\x3\x2\x2\x2\x6EF\x6F0\x3\x2\x2\x2\x6F0\x6F2\t\f\x2\x2\x6F1\x6F3"+ - "\x5\x126\x94\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F4"+ - "\x3\x2\x2\x2\x6F4\x750\x5\xBC_\xF\x6F5\x6F7\f\r\x2\x2\x6F6\x6F8\x5\x126"+ - "\x94\x2\x6F7\x6F6\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x6F9\x3\x2\x2"+ - "\x2\x6F9\x6FB\a\xE1\x2\x2\x6FA\x6FC\x5\x126\x94\x2\x6FB\x6FA\x3\x2\x2"+ - "\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x750\x5\xBC_\xE\x6FE"+ - "\x700\f\f\x2\x2\x6FF\x701\x5\x126\x94\x2\x700\x6FF\x3\x2\x2\x2\x700\x701"+ - "\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x704\a\x94\x2\x2\x703\x705\x5"+ - "\x126\x94\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x706\x3"+ - "\x2\x2\x2\x706\x750\x5\xBC_\r\x707\x709\f\v\x2\x2\x708\x70A\x5\x126\x94"+ - "\x2\x709\x708\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x70B\x3\x2\x2\x2"+ - "\x70B\x70D\t\r\x2\x2\x70C\x70E\x5\x126\x94\x2\x70D\x70C\x3\x2\x2\x2\x70D"+ - "\x70E\x3\x2\x2\x2\x70E\x70F\x3\x2\x2\x2\x70F\x750\x5\xBC_\f\x710\x712"+ - "\f\n\x2\x2\x711\x713\x5\x126\x94\x2\x712\x711\x3\x2\x2\x2\x712\x713\x3"+ - "\x2\x2\x2\x713\x714\x3\x2\x2\x2\x714\x716\a\x32\x2\x2\x715\x717\x5\x126"+ - "\x94\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2"+ - "\x2\x718\x750\x5\xBC_\v\x719\x71B\f\t\x2\x2\x71A\x71C\x5\x126\x94\x2\x71B"+ - "\x71A\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71D\x3\x2\x2\x2\x71D\x71F"+ - "\t\xE\x2\x2\x71E\x720\x5\x126\x94\x2\x71F\x71E\x3\x2\x2\x2\x71F\x720\x3"+ - "\x2\x2\x2\x720\x721\x3\x2\x2\x2\x721\x750\x5\xBC_\n\x722\x724\f\a\x2\x2"+ - "\x723\x725\x5\x126\x94\x2\x724\x723\x3\x2\x2\x2\x724\x725\x3\x2\x2\x2"+ - "\x725\x726\x3\x2\x2\x2\x726\x728\a\x36\x2\x2\x727\x729\x5\x126\x94\x2"+ - "\x728\x727\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A"+ - "\x750\x5\xBC_\b\x72B\x72D\f\x6\x2\x2\x72C\x72E\x5\x126\x94\x2\x72D\x72C"+ - "\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x72F\x3\x2\x2\x2\x72F\x731\a\xA4"+ - "\x2\x2\x730\x732\x5\x126\x94\x2\x731\x730\x3\x2\x2\x2\x731\x732\x3\x2"+ - "\x2\x2\x732\x733\x3\x2\x2\x2\x733\x750\x5\xBC_\a\x734\x736\f\x5\x2\x2"+ - "\x735\x737\x5\x126\x94\x2\x736\x735\x3\x2\x2\x2\x736\x737\x3\x2\x2\x2"+ - "\x737\x738\x3\x2\x2\x2\x738\x73A\a\xDE\x2\x2\x739\x73B\x5\x126\x94\x2"+ - "\x73A\x739\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B\x73C\x3\x2\x2\x2\x73C"+ - "\x750\x5\xBC_\x6\x73D\x73F\f\x4\x2\x2\x73E\x740\x5\x126\x94\x2\x73F\x73E"+ - "\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x743\ak"+ - "\x2\x2\x742\x744\x5\x126\x94\x2\x743\x742\x3\x2\x2\x2\x743\x744\x3\x2"+ - "\x2\x2\x744\x745\x3\x2\x2\x2\x745\x750\x5\xBC_\x5\x746\x748\f\x3\x2\x2"+ - "\x747\x749\x5\x126\x94\x2\x748\x747\x3\x2\x2\x2\x748\x749\x3\x2\x2\x2"+ - "\x749\x74A\x3\x2\x2\x2\x74A\x74C\a~\x2\x2\x74B\x74D\x5\x126\x94\x2\x74C"+ - "\x74B\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x74E\x3\x2\x2\x2\x74E\x750"+ - "\x5\xBC_\x4\x74F\x6E3\x3\x2\x2\x2\x74F\x6EC\x3\x2\x2\x2\x74F\x6F5\x3\x2"+ - "\x2\x2\x74F\x6FE\x3\x2\x2\x2\x74F\x707\x3\x2\x2\x2\x74F\x710\x3\x2\x2"+ - "\x2\x74F\x719\x3\x2\x2\x2\x74F\x722\x3\x2\x2\x2\x74F\x72B\x3\x2\x2\x2"+ - "\x74F\x734\x3\x2\x2\x2\x74F\x73D\x3\x2\x2\x2\x74F\x746\x3\x2\x2\x2\x750"+ - "\x753\x3\x2\x2\x2\x751\x74F\x3\x2\x2\x2\x751\x752\x3\x2\x2\x2\x752\xBD"+ - "\x3\x2\x2\x2\x753\x751\x3\x2\x2\x2\x754\x755\a\xD2\x2\x2\x755\x756\x5"+ - "\x126\x94\x2\x756\x75C\x5\xBC_\x2\x757\x758\x5\x126\x94\x2\x758\x759\a"+ - "\x82\x2\x2\x759\x75A\x5\x126\x94\x2\x75A\x75B\x5\x10C\x87\x2\x75B\x75D"+ - "\x3\x2\x2\x2\x75C\x757\x3\x2\x2\x2\x75C\x75D\x3\x2\x2\x2\x75D\xBF\x3\x2"+ - "\x2\x2\x75E\x762\aZ\x2\x2\x75F\x762\a\xC6\x2\x2\x760\x762\x5\x110\x89"+ - "\x2\x761\x75E\x3\x2\x2\x2\x761\x75F\x3\x2\x2\x2\x761\x760\x3\x2\x2\x2"+ - "\x762\x763\x3\x2\x2\x2\x763\x766\x5\x126\x94\x2\x764\x765\a\xDC\x2\x2"+ - "\x765\x767\x5\x126\x94\x2\x766\x764\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2"+ - "\x767\x768\x3\x2\x2\x2\x768\x769\x5\xC2\x62\x2\x769\xC1\x3\x2\x2\x2\x76A"+ - "\x775\x5\xC4\x63\x2\x76B\x76D\x5\x126\x94\x2\x76C\x76B\x3\x2\x2\x2\x76C"+ - "\x76D\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2\x76E\x770\a)\x2\x2\x76F\x771\x5"+ - "\x126\x94\x2\x770\x76F\x3\x2\x2\x2\x770\x771\x3\x2\x2\x2\x771\x772\x3"+ - "\x2\x2\x2\x772\x774\x5\xC4\x63\x2\x773\x76C\x3\x2\x2\x2\x774\x777\x3\x2"+ - "\x2\x2\x775\x773\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776\xC3\x3\x2\x2\x2"+ - "\x777\x775\x3\x2\x2\x2\x778\x78A\x5\xF8}\x2\x779\x77B\x5\x126\x94\x2\x77A"+ - "\x779\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x77E"+ - "\a\xE6\x2\x2\x77D\x77F\x5\x126\x94\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F"+ - "\x3\x2\x2\x2\x77F\x784\x3\x2\x2\x2\x780\x782\x5\xF4{\x2\x781\x783\x5\x126"+ - "\x94\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x785\x3\x2\x2"+ - "\x2\x784\x780\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x786\x3\x2\x2\x2"+ - "\x786\x788\a\xED\x2\x2\x787\x789\x5\x126\x94\x2\x788\x787\x3\x2\x2\x2"+ - "\x788\x789\x3\x2\x2\x2\x789\x78B\x3\x2\x2\x2\x78A\x77A\x3\x2\x2\x2\x78A"+ - "\x78B\x3\x2\x2\x2\x78B\x78D\x3\x2\x2\x2\x78C\x78E\x5\x10E\x88\x2\x78D"+ - "\x78C\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x792\x3\x2\x2\x2\x78F\x790"+ - "\x5\x126\x94\x2\x790\x791\x5\xFA~\x2\x791\x793\x3\x2\x2\x2\x792\x78F\x3"+ - "\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\xC5\x3\x2\x2\x2\x794\x795\a\xD9\x2"+ - "\x2\x795\x796\x5\x126\x94\x2\x796\x797\x5\xBC_\x2\x797\x799\x5\x116\x8C"+ - "\x2\x798\x79A\x5\x1A\xE\x2\x799\x798\x3\x2\x2\x2\x799\x79A\x3\x2\x2\x2"+ - "\x79A\x79B\x3\x2\x2\x2\x79B\x79C\a\xD8\x2\x2\x79C\xC7\x3\x2\x2\x2\x79D"+ - "\x79E\a\xDA\x2\x2\x79E\x79F\x5\x126\x94\x2\x79F\x7A1\x5\xD0i\x2\x7A0\x7A2"+ - "\x5\x126\x94\x2\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A3"+ - "\x3\x2\x2\x2\x7A3\x7A5\a)\x2\x2\x7A4\x7A6\x5\x126\x94\x2\x7A5\x7A4\x3"+ - "\x2\x2\x2\x7A5\x7A6\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7\x7A8\x5\xBC"+ - "_\x2\x7A8\xC9\x3\x2\x2\x2\x7A9\x7AA\a\xDB\x2\x2\x7AA\x7AB\x5\x126\x94"+ - "\x2\x7AB\x7AC\x5\xCCg\x2\x7AC\x7AE\x5\x116\x8C\x2\x7AD\x7AF\x5\x1A\xE"+ - "\x2\x7AE\x7AD\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x3\x2\x2\x2"+ - "\x7B0\x7B1\ah\x2\x2\x7B1\xCB\x3\x2\x2\x2\x7B2\x7B3\x5\xBC_\x2\x7B3\xCD"+ - "\x3\x2\x2\x2\x7B4\x7B5\a\xDD\x2\x2\x7B5\x7B6\x5\x126\x94\x2\x7B6\x7B8"+ - "\x5\xD0i\x2\x7B7\x7B9\x5\x126\x94\x2\x7B8\x7B7\x3\x2\x2\x2\x7B8\x7B9\x3"+ - "\x2\x2\x2\x7B9\x7BA\x3\x2\x2\x2\x7BA\x7BF\a)\x2\x2\x7BB\x7BD\x5\x126\x94"+ - "\x2\x7BC\x7BB\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BE\x3\x2\x2\x2"+ - "\x7BE\x7C0\x5z>\x2\x7BF\x7BC\x3\x2\x2\x2\x7BF\x7C0\x3\x2\x2\x2\x7C0\xCF"+ - "\x3\x2\x2\x2\x7C1\x7C3\a.\x2\x2\x7C2\x7C1\x3\x2\x2\x2\x7C2\x7C3\x3\x2"+ - "\x2\x2\x7C3\x7C4\x3\x2\x2\x2\x7C4\x7C5\x5\xBC_\x2\x7C5\xD1\x3\x2\x2\x2"+ - "\x7C6\x7C7\a\x42\x2\x2\x7C7\x7C8\x5\x126\x94\x2\x7C8\x7C9\x5\xD4k\x2\x7C9"+ - "\xD3\x3\x2\x2\x2\x7CA\x7CC\x5\xDCo\x2\x7CB\x7CA\x3\x2\x2\x2\x7CB\x7CC"+ - "\x3\x2\x2\x2\x7CC\x7CD\x3\x2\x2\x2\x7CD\x7CE\a-\x2\x2\x7CE\x7D0\x5\xF8"+ - "}\x2\x7CF\x7D1\x5\x10E\x88\x2\x7D0\x7CF\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2"+ - "\x2\x7D1\x7DF\x3\x2\x2\x2\x7D2\x7D4\x5\x126\x94\x2\x7D3\x7D2\x3\x2\x2"+ - "\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D7\a\xE6\x2\x2"+ - "\x7D6\x7D8\x5\x126\x94\x2\x7D7\x7D6\x3\x2\x2\x2\x7D7\x7D8\x3\x2\x2\x2"+ - "\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DB\x5\xE8u\x2\x7DA\x7DC\x5\x126\x94\x2\x7DB"+ - "\x7DA\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\x7DD\x3\x2\x2\x2\x7DD\x7DE"+ - "\a\xED\x2\x2\x7DE\x7E0\x3\x2\x2\x2\x7DF\x7D3\x3\x2\x2\x2\x7DF\x7E0\x3"+ - "\x2\x2\x2\x7E0\x7EA\x3\x2\x2\x2\x7E1\x7E3\x5\x126\x94\x2\x7E2\x7E1\x3"+ - "\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7E4\x3\x2\x2\x2\x7E4\x7E5\a\xE6"+ - "\x2\x2\x7E5\x7E6\x5\xF4{\x2\x7E6\x7E7\a\xED\x2\x2\x7E7\x7E9\x3\x2\x2\x2"+ - "\x7E8\x7E2\x3\x2\x2\x2\x7E9\x7EC\x3\x2\x2\x2\x7EA\x7E8\x3\x2\x2\x2\x7EA"+ - "\x7EB\x3\x2\x2\x2\x7EB\x80D\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2\x2\x7ED\x7EF"+ - "\x5\xF8}\x2\x7EE\x7F0\x5\x10E\x88\x2\x7EF\x7EE\x3\x2\x2\x2\x7EF\x7F0\x3"+ - "\x2\x2\x2\x7F0\x7FE\x3\x2\x2\x2\x7F1\x7F3\x5\x126\x94\x2\x7F2\x7F1\x3"+ - "\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\x3\x2\x2\x2\x7F4\x7F6\a\xE6"+ - "\x2\x2\x7F5\x7F7\x5\x126\x94\x2\x7F6\x7F5\x3\x2\x2\x2\x7F6\x7F7\x3\x2"+ - "\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x7FA\x5\xE8u\x2\x7F9\x7FB\x5\x126\x94"+ - "\x2\x7FA\x7F9\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2"+ - "\x7FC\x7FD\a\xED\x2\x2\x7FD\x7FF\x3\x2\x2\x2\x7FE\x7F2\x3\x2\x2\x2\x7FE"+ - "\x7FF\x3\x2\x2\x2\x7FF\x809\x3\x2\x2\x2\x800\x802\x5\x126\x94\x2\x801"+ - "\x800\x3\x2\x2\x2\x801\x802\x3\x2\x2\x2\x802\x803\x3\x2\x2\x2\x803\x804"+ - "\a\xE6\x2\x2\x804\x805\x5\xF4{\x2\x805\x806\a\xED\x2\x2\x806\x808\x3\x2"+ - "\x2\x2\x807\x801\x3\x2\x2\x2\x808\x80B\x3\x2\x2\x2\x809\x807\x3\x2\x2"+ - "\x2\x809\x80A\x3\x2\x2\x2\x80A\x80D\x3\x2\x2\x2\x80B\x809\x3\x2\x2\x2"+ - "\x80C\x7CB\x3\x2\x2\x2\x80C\x7ED\x3\x2\x2\x2\x80D\xD5\x3\x2\x2\x2\x80E"+ - "\x811\x5\xD8m\x2\x80F\x811\x5\xDAn\x2\x810\x80E\x3\x2\x2\x2\x810\x80F"+ - "\x3\x2\x2\x2\x811\xD7\x3\x2\x2\x2\x812\x814\x5\xDCo\x2\x813\x812\x3\x2"+ - "\x2\x2\x813\x814\x3\x2\x2\x2\x814\x816\x3\x2\x2\x2\x815\x817\x5\x126\x94"+ - "\x2\x816\x815\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2\x817\x818\x3\x2\x2\x2"+ - "\x818\x81A\a-\x2\x2\x819\x81B\x5\x126\x94\x2\x81A\x819\x3\x2\x2\x2\x81A"+ - "\x81B\x3\x2\x2\x2\x81B\x81C\x3\x2\x2\x2\x81C\x81E\x5\xF8}\x2\x81D\x81F"+ - "\x5\x10E\x88\x2\x81E\x81D\x3\x2\x2\x2\x81E\x81F\x3\x2\x2\x2\x81F\x823"+ - "\x3\x2\x2\x2\x820\x821\x5\x126\x94\x2\x821\x822\x5\xE8u\x2\x822\x824\x3"+ - "\x2\x2\x2\x823\x820\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x829\x3\x2"+ - "\x2\x2\x825\x827\x5\x126\x94\x2\x826\x825\x3\x2\x2\x2\x826\x827\x3\x2"+ - "\x2\x2\x827\x828\x3\x2\x2\x2\x828\x82A\x5\xECw\x2\x829\x826\x3\x2\x2\x2"+ - "\x829\x82A\x3\x2\x2\x2\x82A\x834\x3\x2\x2\x2\x82B\x82D\x5\x126\x94\x2"+ - "\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3\x2\x2\x2\x82D\x82E\x3\x2\x2\x2\x82E"+ - "\x82F\a\xE6\x2\x2\x82F\x830\x5\xF4{\x2\x830\x831\a\xED\x2\x2\x831\x833"+ - "\x3\x2\x2\x2\x832\x82C\x3\x2\x2\x2\x833\x836\x3\x2\x2\x2\x834\x832\x3"+ - "\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835\xD9\x3\x2\x2\x2\x836\x834\x3\x2\x2"+ - "\x2\x837\x83B\x5\xF8}\x2\x838\x839\x5\x126\x94\x2\x839\x83A\x5\xE8u\x2"+ - "\x83A\x83C\x3\x2\x2\x2\x83B\x838\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C"+ - "\x846\x3\x2\x2\x2\x83D\x83F\x5\x126\x94\x2\x83E\x83D\x3\x2\x2\x2\x83E"+ - "\x83F\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\a\xE6\x2\x2\x841\x842"+ - "\x5\xF4{\x2\x842\x843\a\xED\x2\x2\x843\x845\x3\x2\x2\x2\x844\x83E\x3\x2"+ - "\x2\x2\x845\x848\x3\x2\x2\x2\x846\x844\x3\x2\x2\x2\x846\x847\x3\x2\x2"+ - "\x2\x847\xDB\x3\x2\x2\x2\x848\x846\x3\x2\x2\x2\x849\x84E\x5\xE2r\x2\x84A"+ - "\x84E\x5\xDEp\x2\x84B\x84E\x5\xE0q\x2\x84C\x84E\x5\xE6t\x2\x84D\x849\x3"+ - "\x2\x2\x2\x84D\x84A\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2\x84D\x84C\x3\x2"+ - "\x2\x2\x84E\xDD\x3\x2\x2\x2\x84F\x851\x5\xF8}\x2\x850\x852\x5\x10E\x88"+ - "\x2\x851\x850\x3\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x857\x3\x2\x2\x2"+ - "\x853\x855\x5\x126\x94\x2\x854\x853\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2"+ - "\x855\x856\x3\x2\x2\x2\x856\x858\x5\xECw\x2\x857\x854\x3\x2\x2\x2\x857"+ - "\x858\x3\x2\x2\x2\x858\x862\x3\x2\x2\x2\x859\x85B\x5\x126\x94\x2\x85A"+ - "\x859\x3\x2\x2\x2\x85A\x85B\x3\x2\x2\x2\x85B\x85C\x3\x2\x2\x2\x85C\x85D"+ - "\a\xE6\x2\x2\x85D\x85E\x5\xF4{\x2\x85E\x85F\a\xED\x2\x2\x85F\x861\x3\x2"+ - "\x2\x2\x860\x85A\x3\x2\x2\x2\x861\x864\x3\x2\x2\x2\x862\x860\x3\x2\x2"+ - "\x2\x862\x863\x3\x2\x2\x2\x863\xDF\x3\x2\x2\x2\x864\x862\x3\x2\x2\x2\x865"+ - "\x868\x5\xF8}\x2\x866\x868\x5\xFC\x7F\x2\x867\x865\x3\x2\x2\x2\x867\x866"+ - "\x3\x2\x2\x2\x868\x86A\x3\x2\x2\x2\x869\x86B\x5\x10E\x88\x2\x86A\x869"+ - "\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86D\x3\x2\x2\x2\x86C\x86E\x5"+ - "\x126\x94\x2\x86D\x86C\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x86F\x3"+ - "\x2\x2\x2\x86F\x871\a\xE6\x2\x2\x870\x872\x5\x126\x94\x2\x871\x870\x3"+ - "\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x877\x3\x2\x2\x2\x873\x875\x5\xE8"+ - "u\x2\x874\x876\x5\x126\x94\x2\x875\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2"+ - "\x2\x876\x878\x3\x2\x2\x2\x877\x873\x3\x2\x2\x2\x877\x878\x3\x2\x2\x2"+ - "\x878\x879\x3\x2\x2\x2\x879\x87E\a\xED\x2\x2\x87A\x87C\x5\x126\x94\x2"+ - "\x87B\x87A\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87D\x3\x2\x2\x2\x87D"+ - "\x87F\x5\xECw\x2\x87E\x87B\x3\x2\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x889"+ - "\x3\x2\x2\x2\x880\x882\x5\x126\x94\x2\x881\x880\x3\x2\x2\x2\x881\x882"+ - "\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x884\a\xE6\x2\x2\x884\x885\x5"+ - "\xF4{\x2\x885\x886\a\xED\x2\x2\x886\x888\x3\x2\x2\x2\x887\x881\x3\x2\x2"+ - "\x2\x888\x88B\x3\x2\x2\x2\x889\x887\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2"+ - "\x88A\xE1\x3\x2\x2\x2\x88B\x889\x3\x2\x2\x2\x88C\x88F\x5\xDEp\x2\x88D"+ - "\x88F\x5\xE0q\x2\x88E\x88C\x3\x2\x2\x2\x88E\x88D\x3\x2\x2\x2\x88E\x88F"+ - "\x3\x2\x2\x2\x88F\x894\x3\x2\x2\x2\x890\x892\x5\xE4s\x2\x891\x893\x5\x126"+ - "\x94\x2\x892\x891\x3\x2\x2\x2\x892\x893\x3\x2\x2\x2\x893\x895\x3\x2\x2"+ - "\x2\x894\x890\x3\x2\x2\x2\x895\x896\x3\x2\x2\x2\x896\x894\x3\x2\x2\x2"+ - "\x896\x897\x3\x2\x2\x2\x897\x89C\x3\x2\x2\x2\x898\x89A\x5\x126\x94\x2"+ - "\x899\x898\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89B\x3\x2\x2\x2\x89B"+ - "\x89D\x5\xECw\x2\x89C\x899\x3\x2\x2\x2\x89C\x89D\x3\x2\x2\x2\x89D\x8A7"+ - "\x3\x2\x2\x2\x89E\x8A0\x5\x126\x94\x2\x89F\x89E\x3\x2\x2\x2\x89F\x8A0"+ - "\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A2\a\xE6\x2\x2\x8A2\x8A3\x5"+ - "\xF4{\x2\x8A3\x8A4\a\xED\x2\x2\x8A4\x8A6\x3\x2\x2\x2\x8A5\x89F\x3\x2\x2"+ - "\x2\x8A6\x8A9\x3\x2\x2\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2"+ - "\x8A8\xE3\x3\x2\x2\x2\x8A9\x8A7\x3\x2\x2\x2\x8AA\x8AC\t\xF\x2\x2\x8AB"+ - "\x8AD\x5\x126\x94\x2\x8AC\x8AB\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD"+ - "\x8B0\x3\x2\x2\x2\x8AE\x8B1\x5\xDEp\x2\x8AF\x8B1\x5\xE0q\x2\x8B0\x8AE"+ - "\x3\x2\x2\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\xE5\x3\x2\x2\x2\x8B2\x8B4\x5\x126"+ - "\x94\x2\x8B3\x8B2\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B5\x3\x2\x2"+ - "\x2\x8B5\x8B6\x5\xECw\x2\x8B6\xE7\x3\x2\x2\x2\x8B7\x8B9\x5\xEAv\x2\x8B8"+ - "\x8B7\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2\x8B9\x8BB\x3\x2\x2\x2\x8BA\x8BC"+ - "\x5\x126\x94\x2\x8BB\x8BA\x3\x2\x2\x2\x8BB\x8BC\x3\x2\x2\x2\x8BC\x8BD"+ - "\x3\x2\x2\x2\x8BD\x8BF\t\n\x2\x2\x8BE\x8C0\x5\x126\x94\x2\x8BF\x8BE\x3"+ - "\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C2\x3\x2\x2\x2\x8C1\x8B8\x3\x2"+ - "\x2\x2\x8C2\x8C5\x3\x2\x2\x2\x8C3\x8C1\x3\x2\x2\x2\x8C3\x8C4\x3\x2\x2"+ - "\x2\x8C4\x8C6\x3\x2\x2\x2\x8C5\x8C3\x3\x2\x2\x2\x8C6\x8D3\x5\xEAv\x2\x8C7"+ - "\x8C9\x5\x126\x94\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9"+ - "\x8CA\x3\x2\x2\x2\x8CA\x8CC\t\n\x2\x2\x8CB\x8CD\x5\x126\x94\x2\x8CC\x8CB"+ - "\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8D0\x5"+ - "\xEAv\x2\x8CF\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D2\x3\x2\x2"+ - "\x2\x8D1\x8C8\x3\x2\x2\x2\x8D2\x8D5\x3\x2\x2\x2\x8D3\x8D1\x3\x2\x2\x2"+ - "\x8D3\x8D4\x3\x2\x2\x2\x8D4\xE9\x3\x2\x2\x2\x8D5\x8D3\x3\x2\x2\x2\x8D6"+ - "\x8D8\a\xE6\x2\x2\x8D7\x8D6\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8DB"+ - "\x3\x2\x2\x2\x8D9\x8DA\t\x10\x2\x2\x8DA\x8DC\x5\x126\x94\x2\x8DB\x8D9"+ - "\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DE\x3\x2\x2\x2\x8DD\x8DF\a\xED"+ - "\x2\x2\x8DE\x8DD\x3\x2\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2"+ - "\x2\x8E0\x8E1\x5\xBC_\x2\x8E1\xEB\x3\x2\x2\x2\x8E2\x8E4\a,\x2\x2\x8E3"+ - "\x8E5\x5\x126\x94\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5"+ - "\x8E6\x3\x2\x2\x2\x8E6\x8E8\x5\xF8}\x2\x8E7\x8E9\x5\x10E\x88\x2\x8E8\x8E7"+ - "\x3\x2\x2\x2\x8E8\x8E9\x3\x2\x2\x2\x8E9\xED\x3\x2\x2\x2\x8EA\x8FC\a\xE6"+ - "\x2\x2\x8EB\x8ED\x5\x126\x94\x2\x8EC\x8EB\x3\x2\x2\x2\x8EC\x8ED\x3\x2"+ - "\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\x8F9\x5\xF0y\x2\x8EF\x8F1\x5\x126\x94"+ - "\x2\x8F0\x8EF\x3\x2\x2\x2\x8F0\x8F1\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2"+ - "\x8F2\x8F4\a)\x2\x2\x8F3\x8F5\x5\x126\x94\x2\x8F4\x8F3\x3\x2\x2\x2\x8F4"+ - "\x8F5\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6\x8F8\x5\xF0y\x2\x8F7\x8F0"+ - "\x3\x2\x2\x2\x8F8\x8FB\x3\x2\x2\x2\x8F9\x8F7\x3\x2\x2\x2\x8F9\x8FA\x3"+ - "\x2\x2\x2\x8FA\x8FD\x3\x2\x2\x2\x8FB\x8F9\x3\x2\x2\x2\x8FC\x8EC\x3\x2"+ - "\x2\x2\x8FC\x8FD\x3\x2\x2\x2\x8FD\x8FF\x3\x2\x2\x2\x8FE\x900\x5\x126\x94"+ - "\x2\x8FF\x8FE\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2"+ - "\x901\x902\a\xED\x2\x2\x902\xEF\x3\x2\x2\x2\x903\x904\a\x9F\x2\x2\x904"+ - "\x906\x5\x126\x94\x2\x905\x903\x3\x2\x2\x2\x905\x906\x3\x2\x2\x2\x906"+ - "\x909\x3\x2\x2\x2\x907\x908\t\x11\x2\x2\x908\x90A\x5\x126\x94\x2\x909"+ - "\x907\x3\x2\x2\x2\x909\x90A\x3\x2\x2\x2\x90A\x90D\x3\x2\x2\x2\x90B\x90C"+ - "\a\xA6\x2\x2\x90C\x90E\x5\x126\x94\x2\x90D\x90B\x3\x2\x2\x2\x90D\x90E"+ - "\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F\x911\x5\xF8}\x2\x910\x912\x5\x10E"+ - "\x88\x2\x911\x910\x3\x2\x2\x2\x911\x912\x3\x2\x2\x2\x912\x91B\x3\x2\x2"+ - "\x2\x913\x915\x5\x126\x94\x2\x914\x913\x3\x2\x2\x2\x914\x915\x3\x2\x2"+ - "\x2\x915\x916\x3\x2\x2\x2\x916\x918\a\xE6\x2\x2\x917\x919\x5\x126\x94"+ - "\x2\x918\x917\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2\x919\x91A\x3\x2\x2\x2"+ - "\x91A\x91C\a\xED\x2\x2\x91B\x914\x3\x2\x2\x2\x91B\x91C\x3\x2\x2\x2\x91C"+ - "\x921\x3\x2\x2\x2\x91D\x91F\x5\x126\x94\x2\x91E\x91D\x3\x2\x2\x2\x91E"+ - "\x91F\x3\x2\x2\x2\x91F\x920\x3\x2\x2\x2\x920\x922\x5\xFA~\x2\x921\x91E"+ - "\x3\x2\x2\x2\x921\x922\x3\x2\x2\x2\x922\x927\x3\x2\x2\x2\x923\x925\x5"+ - "\x126\x94\x2\x924\x923\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2\x925\x926\x3"+ - "\x2\x2\x2\x926\x928\x5\xF2z\x2\x927\x924\x3\x2\x2\x2\x927\x928\x3\x2\x2"+ - "\x2\x928\xF1\x3\x2\x2\x2\x929\x92B\a\xE2\x2\x2\x92A\x92C\x5\x126\x94\x2"+ - "\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C\x92D\x3\x2\x2\x2\x92D"+ - "\x92E\x5\xBC_\x2\x92E\xF3\x3\x2\x2\x2\x92F\x93A\x5\xF6|\x2\x930\x932\x5"+ - "\x126\x94\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933\x3"+ - "\x2\x2\x2\x933\x935\a)\x2\x2\x934\x936\x5\x126\x94\x2\x935\x934\x3\x2"+ - "\x2\x2\x935\x936\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x939\x5\xF6|\x2"+ - "\x938\x931\x3\x2\x2\x2\x939\x93C\x3\x2\x2\x2\x93A\x938\x3\x2\x2\x2\x93A"+ - "\x93B\x3\x2\x2\x2\x93B\xF5\x3\x2\x2\x2\x93C\x93A\x3\x2\x2\x2\x93D\x93E"+ - "\x5\xBC_\x2\x93E\x93F\x5\x126\x94\x2\x93F\x940\a\xCF\x2\x2\x940\x941\x5"+ - "\x126\x94\x2\x941\x943\x3\x2\x2\x2\x942\x93D\x3\x2\x2\x2\x942\x943\x3"+ - "\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x945\x5\xBC_\x2\x945\xF7\x3\x2\x2"+ - "\x2\x946\x949\a\x101\x2\x2\x947\x949\x5\x112\x8A\x2\x948\x946\x3\x2\x2"+ - "\x2\x948\x947\x3\x2\x2\x2\x949\xF9\x3\x2\x2\x2\x94A\x94C\a:\x2\x2\x94B"+ - "\x94D\x5\x126\x94\x2\x94C\x94B\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D"+ - "\x950\x3\x2\x2\x2\x94E\x94F\a\x97\x2\x2\x94F\x951\x5\x126\x94\x2\x950"+ - "\x94E\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2\x951\x952\x3\x2\x2\x2\x952\x957"+ - "\x5\x10C\x87\x2\x953\x955\x5\x126\x94\x2\x954\x953\x3\x2\x2\x2\x954\x955"+ - "\x3\x2\x2\x2\x955\x956\x3\x2\x2\x2\x956\x958\x5\x102\x82\x2\x957\x954"+ - "\x3\x2\x2\x2\x957\x958\x3\x2\x2\x2\x958\xFB\x3\x2\x2\x2\x959\x95A\t\x12"+ - "\x2\x2\x95A\xFD\x3\x2\x2\x2\x95B\x95C\t\xE\x2\x2\x95C\xFF\x3\x2\x2\x2"+ - "\x95D\x962\x5\xF8}\x2\x95E\x95F\t\xF\x2\x2\x95F\x961\x5\xF8}\x2\x960\x95E"+ - "\x3\x2\x2\x2\x961\x964\x3\x2\x2\x2\x962\x960\x3\x2\x2\x2\x962\x963\x3"+ - "\x2\x2\x2\x963\x101\x3\x2\x2\x2\x964\x962\x3\x2\x2\x2\x965\x967\a\xE9"+ - "\x2\x2\x966\x968\x5\x126\x94\x2\x967\x966\x3\x2\x2\x2\x967\x968\x3\x2"+ - "\x2\x2\x968\x96B\x3\x2\x2\x2\x969\x96C\x5\x10A\x86\x2\x96A\x96C\x5\xF8"+ - "}\x2\x96B\x969\x3\x2\x2\x2\x96B\x96A\x3\x2\x2\x2\x96C\x103\x3\x2\x2\x2"+ - "\x96D\x976\x5\xF8}\x2\x96E\x970\x5\x126\x94\x2\x96F\x96E\x3\x2\x2\x2\x96F"+ - "\x970\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x973\a\xE8\x2\x2\x972\x974"+ - "\x5\x126\x94\x2\x973\x972\x3\x2\x2\x2\x973\x974\x3\x2\x2\x2\x974\x975"+ - "\x3\x2\x2\x2\x975\x977\x5\xF8}\x2\x976\x96F\x3\x2\x2\x2\x976\x977\x3\x2"+ - "\x2\x2\x977\x105\x3\x2\x2\x2\x978\x97B\x5\xF8}\x2\x979\x97B\x5\x10A\x86"+ - "\x2\x97A\x978\x3\x2\x2\x2\x97A\x979\x3\x2\x2\x2\x97B\x97C\x3\x2\x2\x2"+ - "\x97C\x97D\a*\x2\x2\x97D\x107\x3\x2\x2\x2\x97E\x987\x5\x10A\x86\x2\x97F"+ - "\x987\a\xFA\x2\x2\x980\x987\a\xF5\x2\x2\x981\x987\a\xD0\x2\x2\x982\x987"+ - "\at\x2\x2\x983\x987\a\x99\x2\x2\x984\x987\a\x9A\x2\x2\x985\x987\a`\x2"+ - "\x2\x986\x97E\x3\x2\x2\x2\x986\x97F\x3\x2\x2\x2\x986\x980\x3\x2\x2\x2"+ - "\x986\x981\x3\x2\x2\x2\x986\x982\x3\x2\x2\x2\x986\x983\x3\x2\x2\x2\x986"+ - "\x984\x3\x2\x2\x2\x986\x985\x3\x2\x2\x2\x987\x109\x3\x2\x2\x2\x988\x989"+ - "\t\x13\x2\x2\x989\x10B\x3\x2\x2\x2\x98A\x98D\x5\xFC\x7F\x2\x98B\x98D\x5"+ - "\x100\x81\x2\x98C\x98A\x3\x2\x2\x2\x98C\x98B\x3\x2\x2\x2\x98D\x996\x3"+ - "\x2\x2\x2\x98E\x990\x5\x126\x94\x2\x98F\x98E\x3\x2\x2\x2\x98F\x990\x3"+ - "\x2\x2\x2\x990\x991\x3\x2\x2\x2\x991\x993\a\xE6\x2\x2\x992\x994\x5\x126"+ - "\x94\x2\x993\x992\x3\x2\x2\x2\x993\x994\x3\x2\x2\x2\x994\x995\x3\x2\x2"+ - "\x2\x995\x997\a\xED\x2\x2\x996\x98F\x3\x2\x2\x2\x996\x997\x3\x2\x2\x2"+ - "\x997\x10D\x3\x2\x2\x2\x998\x999\t\x14\x2\x2\x999\x10F\x3\x2\x2\x2\x99A"+ - "\x99B\t\x15\x2\x2\x99B\x111\x3\x2\x2\x2\x99C\x99D\t\x16\x2\x2\x99D\x113"+ - "\x3\x2\x2\x2\x99E\x9A0\x5\x126\x94\x2\x99F\x99E\x3\x2\x2\x2\x99F\x9A0"+ - "\x3\x2\x2\x2\x9A0\x9A8\x3\x2\x2\x2\x9A1\x9A3\a\xFB\x2\x2\x9A2\x9A1\x3"+ - "\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x9A2\x3\x2\x2\x2\x9A4\x9A5\x3\x2"+ - "\x2\x2\x9A5\x9A9\x3\x2\x2\x2\x9A6\x9A9\x5\x11A\x8E\x2\x9A7\x9A9\x5\x118"+ - "\x8D\x2\x9A8\x9A2\x3\x2\x2\x2\x9A8\x9A6\x3\x2\x2\x2\x9A8\x9A7\x3\x2\x2"+ - "\x2\x9A9\x9AB\x3\x2\x2\x2\x9AA\x9AC\x5\x126\x94\x2\x9AB\x9AA\x3\x2\x2"+ - "\x2\x9AB\x9AC\x3\x2\x2\x2\x9AC\x9B2\x3\x2\x2\x2\x9AD\x9AF\x5\x126\x94"+ - "\x2\x9AE\x9AD\x3\x2\x2\x2\x9AE\x9AF\x3\x2\x2\x2\x9AF\x9B0\x3\x2\x2\x2"+ - "\x9B0\x9B2\x5\x11C\x8F\x2\x9B1\x99F\x3\x2\x2\x2\x9B1\x9AE\x3\x2\x2\x2"+ - "\x9B2\x115\x3\x2\x2\x2\x9B3\x9BC\x5\x114\x8B\x2\x9B4\x9B6\x5\x126\x94"+ - "\x2\x9B5\x9B4\x3\x2\x2\x2\x9B5\x9B6\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2"+ - "\x9B7\x9B9\a*\x2\x2\x9B8\x9BA\x5\x126\x94\x2\x9B9\x9B8\x3\x2\x2\x2\x9B9"+ - "\x9BA\x3\x2\x2\x2\x9BA\x9BC\x3\x2\x2\x2\x9BB\x9B3\x3\x2\x2\x2\x9BB\x9B5"+ - "\x3\x2\x2\x2\x9BC\x9BF\x3\x2\x2\x2\x9BD\x9BB\x3\x2\x2\x2\x9BD\x9BE\x3"+ - "\x2\x2\x2\x9BE\x117\x3\x2\x2\x2\x9BF\x9BD\x3\x2\x2\x2\x9C0\x9C1\a\xFC"+ - "\x2\x2\x9C1\x119\x3\x2\x2\x2\x9C2\x9C3\t\x17\x2\x2\x9C3\x11B\x3\x2\x2"+ - "\x2\x9C4\x9C6\a\xFE\x2\x2\x9C5\x9C7\x5\x11E\x90\x2\x9C6\x9C5\x3\x2\x2"+ - "\x2\x9C7\x9C8\x3\x2\x2\x2\x9C8\x9C6\x3\x2\x2\x2\x9C8\x9C9\x3\x2\x2\x2"+ - "\x9C9\x11D\x3\x2\x2\x2\x9CA\x9CB\a/\x2\x2\x9CB\x9CD\x5\x120\x91\x2\x9CC"+ - "\x9CE\x5\x122\x92\x2\x9CD\x9CC\x3\x2\x2\x2\x9CD\x9CE\x3\x2\x2\x2\x9CE"+ - "\x11F\x3\x2\x2\x2\x9CF\x9D0\a\x101\x2\x2\x9D0\x121\x3\x2\x2\x2\x9D1\x9D2"+ - "\x5\x126\x94\x2\x9D2\x9D4\x5\x124\x93\x2\x9D3\x9D5\x5\x126\x94\x2\x9D4"+ - "\x9D3\x3\x2\x2\x2\x9D4\x9D5\x3\x2\x2\x2\x9D5\xA0F\x3\x2\x2\x2\x9D6\x9D7"+ - "\x5\x126\x94\x2\x9D7\x9E0\x5\x124\x93\x2\x9D8\x9DA\x5\x126\x94\x2\x9D9"+ - "\x9D8\x3\x2\x2\x2\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9DB\x3\x2\x2\x2\x9DB\x9DD"+ - "\a)\x2\x2\x9DC\x9DE\x5\x126\x94\x2\x9DD\x9DC\x3\x2\x2\x2\x9DD\x9DE\x3"+ - "\x2\x2\x2\x9DE\x9DF\x3\x2\x2\x2\x9DF\x9E1\x5\x124\x93\x2\x9E0\x9D9\x3"+ - "\x2\x2\x2\x9E1\x9E2\x3\x2\x2\x2\x9E2\x9E0\x3\x2\x2\x2\x9E2\x9E3\x3\x2"+ - "\x2\x2\x9E3\x9E5\x3\x2\x2\x2\x9E4\x9E6\x5\x126\x94\x2\x9E5\x9E4\x3\x2"+ - "\x2\x2\x9E5\x9E6\x3\x2\x2\x2\x9E6\xA0F\x3\x2\x2\x2\x9E7\x9E9\x5\x126\x94"+ - "\x2\x9E8\x9E7\x3\x2\x2\x2\x9E8\x9E9\x3\x2\x2\x2\x9E9\x9EA\x3\x2\x2\x2"+ - "\x9EA\x9EC\a\xE6\x2\x2\x9EB\x9ED\x5\x126\x94\x2\x9EC\x9EB\x3\x2\x2\x2"+ - "\x9EC\x9ED\x3\x2\x2\x2\x9ED\x9EE\x3\x2\x2\x2\x9EE\x9F0\x5\x124\x93\x2"+ - "\x9EF\x9F1\x5\x126\x94\x2\x9F0\x9EF\x3\x2\x2\x2\x9F0\x9F1\x3\x2\x2\x2"+ - "\x9F1\x9F2\x3\x2\x2\x2\x9F2\x9F4\a\xED\x2\x2\x9F3\x9F5\x5\x126\x94\x2"+ - "\x9F4\x9F3\x3\x2\x2\x2\x9F4\x9F5\x3\x2\x2\x2\x9F5\xA0F\x3\x2\x2\x2\x9F6"+ - "\x9F8\x5\x126\x94\x2\x9F7\x9F6\x3\x2\x2\x2\x9F7\x9F8\x3\x2\x2\x2\x9F8"+ - "\x9F9\x3\x2\x2\x2\x9F9\x9FA\a\xE6\x2\x2\x9FA\xA03\x5\x124\x93\x2\x9FB"+ - "\x9FD\x5\x126\x94\x2\x9FC\x9FB\x3\x2\x2\x2\x9FC\x9FD\x3\x2\x2\x2\x9FD"+ - "\x9FE\x3\x2\x2\x2\x9FE\xA00\a)\x2\x2\x9FF\xA01\x5\x126\x94\x2\xA00\x9FF"+ - "\x3\x2\x2\x2\xA00\xA01\x3\x2\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA04\x5"+ - "\x124\x93\x2\xA03\x9FC\x3\x2\x2\x2\xA04\xA05\x3\x2\x2\x2\xA05\xA03\x3"+ - "\x2\x2\x2\xA05\xA06\x3\x2\x2\x2\xA06\xA08\x3\x2\x2\x2\xA07\xA09\x5\x126"+ - "\x94\x2\xA08\xA07\x3\x2\x2\x2\xA08\xA09\x3\x2\x2\x2\xA09\xA0A\x3\x2\x2"+ - "\x2\xA0A\xA0C\a\xED\x2\x2\xA0B\xA0D\x5\x126\x94\x2\xA0C\xA0B\x3\x2\x2"+ - "\x2\xA0C\xA0D\x3\x2\x2\x2\xA0D\xA0F\x3\x2\x2\x2\xA0E\x9D1\x3\x2\x2\x2"+ - "\xA0E\x9D6\x3\x2\x2\x2\xA0E\x9E8\x3\x2\x2\x2\xA0E\x9F7\x3\x2\x2\x2\xA0F"+ - "\x123\x3\x2\x2\x2\xA10\xA13\a\x101\x2\x2\xA11\xA13\x5\x108\x85\x2\xA12"+ - "\xA10\x3\x2\x2\x2\xA12\xA11\x3\x2\x2\x2\xA13\x125\x3\x2\x2\x2\xA14\xA16"+ - "\t\x18\x2\x2\xA15\xA14\x3\x2\x2\x2\xA16\xA17\x3\x2\x2\x2\xA17\xA15\x3"+ - "\x2\x2\x2\xA17\xA18\x3\x2\x2\x2\xA18\x127\x3\x2\x2\x2\x1B6\x12C\x132\x135"+ - "\x139\x13D\x141\x145\x14B\x14E\x158\x15A\x160\x168\x16F\x175\x17E\x186"+ - "\x195\x19F\x1A7\x1B1\x1B7\x1BB\x1BF\x1C3\x1C8\x1D1\x218\x21E\x222\x225"+ - "\x235\x239\x23E\x241\x246\x24C\x250\x255\x25A\x25F\x262\x266\x26C\x270"+ - "\x277\x27D\x281\x284\x289\x294\x297\x29A\x29F\x2A5\x2A9\x2AE\x2B5\x2BB"+ - "\x2BF\x2C7\x2CB\x2CF\x2D3\x2D7\x2DC\x2E7\x2EE\x2F6\x2FD\x306\x30D\x311"+ - "\x314\x31C\x320\x325\x32F\x335\x33F\x343\x352\x358\x35E\x362\x36E\x372"+ - "\x378\x37D\x381\x385\x389\x38C\x38F\x392\x395\x399\x3A1\x3A5\x3A8\x3AB"+ - "\x3AF\x3C7\x3CD\x3D1\x3D5\x3DE\x3E9\x3EE\x3F8\x3FC\x401\x409\x40D\x411"+ - "\x419\x41D\x429\x42D\x435\x437\x43D\x441\x447\x44B\x44F\x469\x473\x477"+ - "\x47C\x487\x48B\x490\x49F\x4A4\x4AD\x4B1\x4B5\x4B9\x4BD\x4C0\x4C4\x4C8"+ - "\x4CB\x4CF\x4D2\x4D6\x4D8\x4DD\x4E1\x4E5\x4E9\x4EB\x4F1\x4F5\x4F8\x4FD"+ - "\x501\x507\x50A\x50D\x512\x516\x51D\x521\x527\x52A\x52E\x535\x539\x53F"+ - "\x542\x546\x54E\x552\x555\x558\x55C\x564\x568\x56C\x56E\x571\x577\x57D"+ - "\x581\x585\x58A\x58F\x593\x597\x59D\x5A5\x5A7\x5B3\x5B7\x5BF\x5C3\x5CB"+ - "\x5CF\x5D3\x5D7\x5DB\x5DF\x5E7\x5EB\x5F8\x5FF\x603\x60E\x615\x61A\x61E"+ - "\x623\x626\x62C\x630\x633\x639\x63D\x645\x649\x652\x656\x65A\x65E\x661"+ - "\x665\x66B\x66F\x676\x67F\x686\x68A\x68D\x690\x693\x698\x6A4\x6A8\x6B0"+ - "\x6B2\x6B7\x6BC\x6C1\x6C5\x6CB\x6D0\x6D7\x6DB\x6E1\x6E5\x6E9\x6EE\x6F2"+ - "\x6F7\x6FB\x700\x704\x709\x70D\x712\x716\x71B\x71F\x724\x728\x72D\x731"+ - "\x736\x73A\x73F\x743\x748\x74C\x74F\x751\x75C\x761\x766\x76C\x770\x775"+ - "\x77A\x77E\x782\x784\x788\x78A\x78D\x792\x799\x7A1\x7A5\x7AE\x7B8\x7BC"+ - "\x7BF\x7C2\x7CB\x7D0\x7D3\x7D7\x7DB\x7DF\x7E2\x7EA\x7EF\x7F2\x7F6\x7FA"+ - "\x7FE\x801\x809\x80C\x810\x813\x816\x81A\x81E\x823\x826\x829\x82C\x834"+ - "\x83B\x83E\x846\x84D\x851\x854\x857\x85A\x862\x867\x86A\x86D\x871\x875"+ - "\x877\x87B\x87E\x881\x889\x88E\x892\x896\x899\x89C\x89F\x8A7\x8AC\x8B0"+ - "\x8B3\x8B8\x8BB\x8BF\x8C3\x8C8\x8CC\x8CF\x8D3\x8D7\x8DB\x8DE\x8E4\x8E8"+ - "\x8EC\x8F0\x8F4\x8F9\x8FC\x8FF\x905\x909\x90D\x911\x914\x918\x91B\x91E"+ - "\x921\x924\x927\x92B\x931\x935\x93A\x942\x948\x94C\x950\x954\x957\x962"+ - "\x967\x96B\x96F\x973\x976\x97A\x986\x98C\x98F\x993\x996\x99F\x9A4\x9A8"+ - "\x9AB\x9AE\x9B1\x9B5\x9B9\x9BB\x9BD\x9C8\x9CD\x9D4\x9D9\x9DD\x9E2\x9E5"+ - "\x9E8\x9EC\x9F0\x9F4\x9F7\x9FC\xA00\xA05\xA08\xA0C\xA0E\xA12\xA17"; + "\x4E9\a\xE6\x2\x2\x4E8\x4EA\x5\x12E\x98\x2\x4E9\x4E8\x3\x2\x2\x2\x4E9"+ + "\x4EA\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4ED\x5\xECw\x2\x4EC\x4EE"+ + "\x5\x12E\x98\x2\x4ED\x4EC\x3\x2\x2\x2\x4ED\x4EE\x3\x2\x2\x2\x4EE\x4EF"+ + "\x3\x2\x2\x2\x4EF\x4F0\a\xED\x2\x2\x4F0\x4F2\x3\x2\x2\x2\x4F1\x4E5\x3"+ + "\x2\x2\x2\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F4\x3\x2\x2\x2\x4F3\x4E2\x3\x2"+ + "\x2\x2\x4F3\x4E3\x3\x2\x2\x2\x4F4}\x3\x2\x2\x2\x4F5\x4F6\a\xA8\x2\x2\x4F6"+ + "\x4F7\x5\x12E\x98\x2\x4F7\x4F9\x5\xD0i\x2\x4F8\x4FA\x5\x12E\x98\x2\x4F9"+ + "\x4F8\x3\x2\x2\x2\x4F9\x4FA\x3\x2\x2\x2\x4FA\x4FB\x3\x2\x2\x2\x4FB\x500"+ + "\a)\x2\x2\x4FC\x4FE\x5\x12E\x98\x2\x4FD\x4FC\x3\x2\x2\x2\x4FD\x4FE\x3"+ + "\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x501\x5z>\x2\x500\x4FD\x3\x2\x2\x2"+ + "\x500\x501\x3\x2\x2\x2\x501\x7F\x3\x2\x2\x2\x502\x503\x5\x116\x8C\x2\x503"+ + "\x504\x5\x12E\x98\x2\x504\x506\x3\x2\x2\x2\x505\x502\x3\x2\x2\x2\x505"+ + "\x506\x3\x2\x2\x2\x506\x509\x3\x2\x2\x2\x507\x508\a\xC6\x2\x2\x508\x50A"+ + "\x5\x12E\x98\x2\x509\x507\x3\x2\x2\x2\x509\x50A\x3\x2\x2\x2\x50A\x50B"+ + "\x3\x2\x2\x2\x50B\x50C\a\xAA\x2\x2\x50C\x50D\x5\x12E\x98\x2\x50D\x50F"+ + "\x5\xFE\x80\x2\x50E\x510\x5\x114\x8B\x2\x50F\x50E\x3\x2\x2\x2\x50F\x510"+ + "\x3\x2\x2\x2\x510\x515\x3\x2\x2\x2\x511\x513\x5\x12E\x98\x2\x512\x511"+ + "\x3\x2\x2\x2\x512\x513\x3\x2\x2\x2\x513\x514\x3\x2\x2\x2\x514\x516\x5"+ + "\xF2z\x2\x515\x512\x3\x2\x2\x2\x515\x516\x3\x2\x2\x2\x516\x51A\x3\x2\x2"+ + "\x2\x517\x518\x5\x12E\x98\x2\x518\x519\x5\x100\x81\x2\x519\x51B\x3\x2"+ + "\x2\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3\x2\x2"+ + "\x2\x51C\x51E\x5\x11E\x90\x2\x51D\x51F\x5\x1A\xE\x2\x51E\x51D\x3\x2\x2"+ + "\x2\x51E\x51F\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\a\x64\x2\x2"+ + "\x521\x81\x3\x2\x2\x2\x522\x523\x5\x116\x8C\x2\x523\x524\x5\x12E\x98\x2"+ + "\x524\x526\x3\x2\x2\x2\x525\x522\x3\x2\x2\x2\x525\x526\x3\x2\x2\x2\x526"+ + "\x529\x3\x2\x2\x2\x527\x528\a\xC6\x2\x2\x528\x52A\x5\x12E\x98\x2\x529"+ + "\x527\x3\x2\x2\x2\x529\x52A\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52C"+ + "\a\xAC\x2\x2\x52C\x52D\x5\x12E\x98\x2\x52D\x532\x5\xFE\x80\x2\x52E\x530"+ + "\x5\x12E\x98\x2\x52F\x52E\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531"+ + "\x3\x2\x2\x2\x531\x533\x5\xF2z\x2\x532\x52F\x3\x2\x2\x2\x532\x533\x3\x2"+ + "\x2\x2\x533\x534\x3\x2\x2\x2\x534\x536\x5\x11E\x90\x2\x535\x537\x5\x1A"+ + "\xE\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2"+ + "\x2\x538\x539\a\x64\x2\x2\x539\x83\x3\x2\x2\x2\x53A\x53B\x5\x116\x8C\x2"+ + "\x53B\x53C\x5\x12E\x98\x2\x53C\x53E\x3\x2\x2\x2\x53D\x53A\x3\x2\x2\x2"+ + "\x53D\x53E\x3\x2\x2\x2\x53E\x541\x3\x2\x2\x2\x53F\x540\a\xC6\x2\x2\x540"+ + "\x542\x5\x12E\x98\x2\x541\x53F\x3\x2\x2\x2\x541\x542\x3\x2\x2\x2\x542"+ + "\x543\x3\x2\x2\x2\x543\x544\a\xAB\x2\x2\x544\x545\x5\x12E\x98\x2\x545"+ + "\x54A\x5\xFE\x80\x2\x546\x548\x5\x12E\x98\x2\x547\x546\x3\x2\x2\x2\x547"+ + "\x548\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54B\x5\xF2z\x2\x54A\x547"+ + "\x3\x2\x2\x2\x54A\x54B\x3\x2\x2\x2\x54B\x54C\x3\x2\x2\x2\x54C\x54E\x5"+ + "\x11E\x90\x2\x54D\x54F\x5\x1A\xE\x2\x54E\x54D\x3\x2\x2\x2\x54E\x54F\x3"+ + "\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\a\x64\x2\x2\x551\x85\x3\x2\x2"+ + "\x2\x552\x553\a\xAF\x2\x2\x553\x554\x5\x12E\x98\x2\x554\x556\x5\xD0i\x2"+ + "\x555\x557\x5\x12E\x98\x2\x556\x555\x3\x2\x2\x2\x556\x557\x3\x2\x2\x2"+ + "\x557\x558\x3\x2\x2\x2\x558\x55A\a)\x2\x2\x559\x55B\x5\x12E\x98\x2\x55A"+ + "\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55D\x3\x2\x2\x2\x55C\x55E"+ + "\x5\xBC_\x2\x55D\x55C\x3\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x560\x3\x2"+ + "\x2\x2\x55F\x561\x5\x12E\x98\x2\x560\x55F\x3\x2\x2\x2\x560\x561\x3\x2"+ + "\x2\x2\x561\x562\x3\x2\x2\x2\x562\x564\a)\x2\x2\x563\x565\x5\x12E\x98"+ + "\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2"+ + "\x566\x567\x5\xBC_\x2\x567\x87\x3\x2\x2\x2\x568\x569\a\xB2\x2\x2\x569"+ + "\x56A\x5\x12E\x98\x2\x56A\x579\x5\xFE\x80\x2\x56B\x56D\x5\x12E\x98\x2"+ + "\x56C\x56B\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x3\x2\x2\x2\x56E"+ + "\x570\a\xE6\x2\x2\x56F\x571\x5\x12E\x98\x2\x570\x56F\x3\x2\x2\x2\x570"+ + "\x571\x3\x2\x2\x2\x571\x576\x3\x2\x2\x2\x572\x574\x5\xECw\x2\x573\x575"+ + "\x5\x12E\x98\x2\x574\x573\x3\x2\x2\x2\x574\x575\x3\x2\x2\x2\x575\x577"+ + "\x3\x2\x2\x2\x576\x572\x3\x2\x2\x2\x576\x577\x3\x2\x2\x2\x577\x578\x3"+ + "\x2\x2\x2\x578\x57A\a\xED\x2\x2\x579\x56C\x3\x2\x2\x2\x579\x57A\x3\x2"+ + "\x2\x2\x57A\x89\x3\x2\x2\x2\x57B\x57F\a\xB1\x2\x2\x57C\x57D\x5\x12E\x98"+ + "\x2\x57D\x57E\x5\xBC_\x2\x57E\x580\x3\x2\x2\x2\x57F\x57C\x3\x2\x2\x2\x57F"+ + "\x580\x3\x2\x2\x2\x580\x8B\x3\x2\x2\x2\x581\x582\a\xB5\x2\x2\x582\x585"+ + "\x5\x12E\x98\x2\x583\x584\a\xA7\x2\x2\x584\x586\x5\x12E\x98\x2\x585\x583"+ + "\x3\x2\x2\x2\x585\x586\x3\x2\x2\x2\x586\x587\x3\x2\x2\x2\x587\x592\x5"+ + "\x8EH\x2\x588\x58A\x5\x12E\x98\x2\x589\x588\x3\x2\x2\x2\x589\x58A\x3\x2"+ + "\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x58D\a)\x2\x2\x58C\x58E\x5\x12E\x98"+ + "\x2\x58D\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2"+ + "\x58F\x591\x5\x8EH\x2\x590\x589\x3\x2\x2\x2\x591\x594\x3\x2\x2\x2\x592"+ + "\x590\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x8D\x3\x2\x2\x2\x594\x592"+ + "\x3\x2\x2\x2\x595\x597\x5\xDCo\x2\x596\x598\x5\x12E\x98\x2\x597\x596\x3"+ + "\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598\x599\x3\x2\x2\x2\x599\x59B\a\xE6"+ + "\x2\x2\x59A\x59C\x5\x12E\x98\x2\x59B\x59A\x3\x2\x2\x2\x59B\x59C\x3\x2"+ + "\x2\x2\x59C\x59D\x3\x2\x2\x2\x59D\x59F\x5\xF8}\x2\x59E\x5A0\x5\x12E\x98"+ + "\x2\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2"+ + "\x5A1\x5A5\a\xED\x2\x2\x5A2\x5A3\x5\x12E\x98\x2\x5A3\x5A4\x5\x100\x81"+ + "\x2\x5A4\x5A6\x3\x2\x2\x2\x5A5\x5A2\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2"+ + "\x5A6\x8F\x3\x2\x2\x2\x5A7\x5A8\a\xB7\x2\x2\x5A8\x91\x3\x2\x2\x2\x5A9"+ + "\x5AF\a\xB8\x2\x2\x5AA\x5AD\x5\x12E\x98\x2\x5AB\x5AE\a\x96\x2\x2\x5AC"+ + "\x5AE\x5\xFE\x80\x2\x5AD\x5AB\x3\x2\x2\x2\x5AD\x5AC\x3\x2\x2\x2\x5AE\x5B0"+ + "\x3\x2\x2\x2\x5AF\x5AA\x3\x2\x2\x2\x5AF\x5B0\x3\x2\x2\x2\x5B0\x93\x3\x2"+ + "\x2\x2\x5B1\x5B2\a\xB9\x2\x2\x5B2\x95\x3\x2\x2\x2\x5B3\x5B4\a\xBA\x2\x2"+ + "\x5B4\x5B5\x5\x12E\x98\x2\x5B5\x5B6\x5\xBC_\x2\x5B6\x97\x3\x2\x2\x2\x5B7"+ + "\x5B8\a\xBB\x2\x2\x5B8\x5B9\x5\x12E\x98\x2\x5B9\x5BB\x5\xDCo\x2\x5BA\x5BC"+ + "\x5\x12E\x98\x2\x5BB\x5BA\x3\x2\x2\x2\x5BB\x5BC\x3\x2\x2\x2\x5BC\x5BD"+ + "\x3\x2\x2\x2\x5BD\x5BF\a\xE2\x2\x2\x5BE\x5C0\x5\x12E\x98\x2\x5BF\x5BE"+ + "\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x5"+ + "\xBC_\x2\x5C2\x99\x3\x2\x2\x2\x5C3\x5C4\a\xBC\x2\x2\x5C4\x5C5\x5\x12E"+ + "\x98\x2\x5C5\x5C7\x5\xBC_\x2\x5C6\x5C8\x5\x12E\x98\x2\x5C7\x5C6\x3\x2"+ + "\x2\x2\x5C7\x5C8\x3\x2\x2\x2\x5C8\x5C9\x3\x2\x2\x2\x5C9\x5CB\a)\x2\x2"+ + "\x5CA\x5CC\x5\x12E\x98\x2\x5CB\x5CA\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2"+ + "\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CE\x5\xBC_\x2\x5CE\x9B\x3\x2\x2\x2\x5CF"+ + "\x5D0\a\xBD\x2\x2\x5D0\x5D1\x5\x12E\x98\x2\x5D1\x5D3\x5\xBC_\x2\x5D2\x5D4"+ + "\x5\x12E\x98\x2\x5D3\x5D2\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D5"+ + "\x3\x2\x2\x2\x5D5\x5D7\a)\x2\x2\x5D6\x5D8\x5\x12E\x98\x2\x5D7\x5D6\x3"+ + "\x2\x2\x2\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5D9\x3\x2\x2\x2\x5D9\x5DB\x5\xBC"+ + "_\x2\x5DA\x5DC\x5\x12E\x98\x2\x5DB\x5DA\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2"+ + "\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DF\a)\x2\x2\x5DE\x5E0\x5\x12E\x98\x2"+ + "\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1"+ + "\x5E3\x5\xBC_\x2\x5E2\x5E4\x5\x12E\x98\x2\x5E3\x5E2\x3\x2\x2\x2\x5E3\x5E4"+ + "\x3\x2\x2\x2\x5E4\x5E5\x3\x2\x2\x2\x5E5\x5E7\a)\x2\x2\x5E6\x5E8\x5\x12E"+ + "\x98\x2\x5E7\x5E6\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2"+ + "\x2\x5E9\x5EA\x5\xBC_\x2\x5EA\x9D\x3\x2\x2\x2\x5EB\x5EC\a\xBE\x2\x2\x5EC"+ + "\x5ED\x5\x12E\x98\x2\x5ED\x5EF\x5\xD0i\x2\x5EE\x5F0\x5\x12E\x98\x2\x5EF"+ + "\x5EE\x3\x2\x2\x2\x5EF\x5F0\x3\x2\x2\x2\x5F0\x5F1\x3\x2\x2\x2\x5F1\x5F3"+ + "\a)\x2\x2\x5F2\x5F4\x5\x12E\x98\x2\x5F3\x5F2\x3\x2\x2\x2\x5F3\x5F4\x3"+ + "\x2\x2\x2\x5F4\x5F5\x3\x2\x2\x2\x5F5\x5F6\x5\xBC_\x2\x5F6\x9F\x3\x2\x2"+ + "\x2\x5F7\x5F8\a\xBF\x2\x2\x5F8\x5F9\x5\x12E\x98\x2\x5F9\x5FA\a\x43\x2"+ + "\x2\x5FA\x5FB\x5\x12E\x98\x2\x5FB\x5FC\x5\xBC_\x2\x5FC\x600\x5\x11E\x90"+ + "\x2\x5FD\x5FF\x5\xA4S\x2\x5FE\x5FD\x3\x2\x2\x2\x5FF\x602\x3\x2\x2\x2\x600"+ + "\x5FE\x3\x2\x2\x2\x600\x601\x3\x2\x2\x2\x601\x603\x3\x2\x2\x2\x602\x600"+ + "\x3\x2\x2\x2\x603\x604\a\x65\x2\x2\x604\xA1\x3\x2\x2\x2\x605\x607\a\x82"+ + "\x2\x2\x606\x608\x5\x12E\x98\x2\x607\x606\x3\x2\x2\x2\x607\x608\x3\x2"+ + "\x2\x2\x608\x609\x3\x2\x2\x2\x609\x60B\x5\x104\x83\x2\x60A\x60C\x5\x12E"+ + "\x98\x2\x60B\x60A\x3\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60D\x3\x2\x2"+ + "\x2\x60D\x60E\x5\xBC_\x2\x60E\x617\x3\x2\x2\x2\x60F\x610\x5\xBC_\x2\x610"+ + "\x611\x5\x12E\x98\x2\x611\x612\a\xCF\x2\x2\x612\x613\x5\x12E\x98\x2\x613"+ + "\x614\x5\xBC_\x2\x614\x617\x3\x2\x2\x2\x615\x617\x5\xBC_\x2\x616\x605"+ + "\x3\x2\x2\x2\x616\x60F\x3\x2\x2\x2\x616\x615\x3\x2\x2\x2\x617\xA3\x3\x2"+ + "\x2\x2\x618\x619\a\x43\x2\x2\x619\x61A\x5\x12E\x98\x2\x61A\x61B\x5\xA6"+ + "T\x2\x61B\x61D\x5\x11E\x90\x2\x61C\x61E\x5\x1A\xE\x2\x61D\x61C\x3\x2\x2"+ + "\x2\x61D\x61E\x3\x2\x2\x2\x61E\xA5\x3\x2\x2\x2\x61F\x62F\a^\x2\x2\x620"+ + "\x62B\x5\xA2R\x2\x621\x623\x5\x12E\x98\x2\x622\x621\x3\x2\x2\x2\x622\x623"+ + "\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x626\a)\x2\x2\x625\x627\x5\x12E"+ + "\x98\x2\x626\x625\x3\x2\x2\x2\x626\x627\x3\x2\x2\x2\x627\x628\x3\x2\x2"+ + "\x2\x628\x62A\x5\xA2R\x2\x629\x622\x3\x2\x2\x2\x62A\x62D\x3\x2\x2\x2\x62B"+ + "\x629\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62F\x3\x2\x2\x2\x62D\x62B"+ + "\x3\x2\x2\x2\x62E\x61F\x3\x2\x2\x2\x62E\x620\x3\x2\x2\x2\x62F\xA7\x3\x2"+ + "\x2\x2\x630\x631\a\xC0\x2\x2\x631\x632\x5\x12E\x98\x2\x632\x63B\x5\xBC"+ + "_\x2\x633\x635\x5\x12E\x98\x2\x634\x633\x3\x2\x2\x2\x634\x635\x3\x2\x2"+ + "\x2\x635\x636\x3\x2\x2\x2\x636\x638\a)\x2\x2\x637\x639\x5\x12E\x98\x2"+ + "\x638\x637\x3\x2\x2\x2\x638\x639\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A"+ + "\x63C\x5\xBC_\x2\x63B\x634\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\xA9"+ + "\x3\x2\x2\x2\x63D\x63E\a\xC2\x2\x2\x63E\x63F\x5\x12E\x98\x2\x63F\x641"+ + "\x5\xBC_\x2\x640\x642\x5\x12E\x98\x2\x641\x640\x3\x2\x2\x2\x641\x642\x3"+ + "\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\x645\a)\x2\x2\x644\x646\x5\x12E\x98"+ + "\x2\x645\x644\x3\x2\x2\x2\x645\x646\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2"+ + "\x647\x648\x5\xBC_\x2\x648\xAB\x3\x2\x2\x2\x649\x64A\a\xC1\x2\x2\x64A"+ + "\x64B\x5\x12E\x98\x2\x64B\x64D\x5\xDCo\x2\x64C\x64E\x5\x12E\x98\x2\x64D"+ + "\x64C\x3\x2\x2\x2\x64D\x64E\x3\x2\x2\x2\x64E\x64F\x3\x2\x2\x2\x64F\x651"+ + "\a\xE2\x2\x2\x650\x652\x5\x12E\x98\x2\x651\x650\x3\x2\x2\x2\x651\x652"+ + "\x3\x2\x2\x2\x652\x653\x3\x2\x2\x2\x653\x654\x5\xBC_\x2\x654\xAD\x3\x2"+ + "\x2\x2\x655\x656\a\xC8\x2\x2\x656\xAF\x3\x2\x2\x2\x657\x658\x5\x116\x8C"+ + "\x2\x658\x659\x5\x12E\x98\x2\x659\x65B\x3\x2\x2\x2\x65A\x657\x3\x2\x2"+ + "\x2\x65A\x65B\x3\x2\x2\x2\x65B\x65E\x3\x2\x2\x2\x65C\x65D\a\xC6\x2\x2"+ + "\x65D\x65F\x5\x12E\x98\x2\x65E\x65C\x3\x2\x2\x2\x65E\x65F\x3\x2\x2\x2"+ + "\x65F\x660\x3\x2\x2\x2\x660\x662\a\xCA\x2\x2\x661\x663\x5\x12E\x98\x2"+ + "\x662\x661\x3\x2\x2\x2\x662\x663\x3\x2\x2\x2\x663\x664\x3\x2\x2\x2\x664"+ + "\x669\x5\xFE\x80\x2\x665\x667\x5\x12E\x98\x2\x666\x665\x3\x2\x2\x2\x666"+ + "\x667\x3\x2\x2\x2\x667\x668\x3\x2\x2\x2\x668\x66A\x5\xF2z\x2\x669\x666"+ + "\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A\x66B\x3\x2\x2\x2\x66B\x66D\x5"+ + "\x11E\x90\x2\x66C\x66E\x5\x1A\xE\x2\x66D\x66C\x3\x2\x2\x2\x66D\x66E\x3"+ + "\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F\x670\a\x66\x2\x2\x670\xB1\x3\x2\x2"+ + "\x2\x671\x673\a\xCE\x2\x2\x672\x674\x5\x12E\x98\x2\x673\x672\x3\x2\x2"+ + "\x2\x673\x674\x3\x2\x2\x2\x674\x675\x3\x2\x2\x2\x675\x677\a\xE2\x2\x2"+ + "\x676\x678\x5\x12E\x98\x2\x677\x676\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2"+ + "\x678\x679\x3\x2\x2\x2\x679\x67A\x5\xBC_\x2\x67A\xB3\x3\x2\x2\x2\x67B"+ + "\x67C\x5\x116\x8C\x2\x67C\x67D\x5\x12E\x98\x2\x67D\x67F\x3\x2\x2\x2\x67E"+ + "\x67B\x3\x2\x2\x2\x67E\x67F\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x681"+ + "\a\xD1\x2\x2\x681\x682\x5\x12E\x98\x2\x682\x683\x5\xFE\x80\x2\x683\x687"+ + "\x5\x11E\x90\x2\x684\x686\x5\xB6\\\x2\x685\x684\x3\x2\x2\x2\x686\x689"+ + "\x3\x2\x2\x2\x687\x685\x3\x2\x2\x2\x687\x688\x3\x2\x2\x2\x688\x68A\x3"+ + "\x2\x2\x2\x689\x687\x3\x2\x2\x2\x68A\x68B\ag\x2\x2\x68B\xB5\x3\x2\x2\x2"+ + "\x68C\x69B\x5\xFE\x80\x2\x68D\x68F\x5\x12E\x98\x2\x68E\x68D\x3\x2\x2\x2"+ + "\x68E\x68F\x3\x2\x2\x2\x68F\x690\x3\x2\x2\x2\x690\x695\a\xE6\x2\x2\x691"+ + "\x693\x5\x12E\x98\x2\x692\x691\x3\x2\x2\x2\x692\x693\x3\x2\x2\x2\x693"+ + "\x694\x3\x2\x2\x2\x694\x696\x5\xF8}\x2\x695\x692\x3\x2\x2\x2\x695\x696"+ + "\x3\x2\x2\x2\x696\x698\x3\x2\x2\x2\x697\x699\x5\x12E\x98\x2\x698\x697"+ + "\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69C\a\xED"+ + "\x2\x2\x69B\x68E\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2\x69C\x6A0\x3\x2\x2"+ + "\x2\x69D\x69E\x5\x12E\x98\x2\x69E\x69F\x5\x100\x81\x2\x69F\x6A1\x3\x2"+ + "\x2\x2\x6A0\x69D\x3\x2\x2\x2\x6A0\x6A1\x3\x2\x2\x2\x6A1\x6A2\x3\x2\x2"+ + "\x2\x6A2\x6A3\x5\x11E\x90\x2\x6A3\xB7\x3\x2\x2\x2\x6A4\x6A5\a\xD3\x2\x2"+ + "\x6A5\x6A6\x5\x12E\x98\x2\x6A6\x6A7\x5\xBC_\x2\x6A7\xB9\x3\x2\x2\x2\x6A8"+ + "\x6A9\a\xD4\x2\x2\x6A9\x6AA\x5\x12E\x98\x2\x6AA\x6BA\x5\xD0i\x2\x6AB\x6AD"+ + "\x5\x12E\x98\x2\x6AC\x6AB\x3\x2\x2\x2\x6AC\x6AD\x3\x2\x2\x2\x6AD\x6AE"+ + "\x3\x2\x2\x2\x6AE\x6B0\a)\x2\x2\x6AF\x6B1\x5\x12E\x98\x2\x6B0\x6AF\x3"+ + "\x2\x2\x2\x6B0\x6B1\x3\x2\x2\x2\x6B1\x6B2\x3\x2\x2\x2\x6B2\x6B8\x5\xBC"+ + "_\x2\x6B3\x6B4\x5\x12E\x98\x2\x6B4\x6B5\a\xCF\x2\x2\x6B5\x6B6\x5\x12E"+ + "\x98\x2\x6B6\x6B7\x5\xBC_\x2\x6B7\x6B9\x3\x2\x2\x2\x6B8\x6B3\x3\x2\x2"+ + "\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9\x6BB\x3\x2\x2\x2\x6BA\x6AC\x3\x2\x2\x2"+ + "\x6BA\x6BB\x3\x2\x2\x2\x6BB\xBB\x3\x2\x2\x2\x6BC\x6BD\b_\x1\x2\x6BD\x6BF"+ + "\a\x97\x2\x2\x6BE\x6C0\x5\x12E\x98\x2\x6BF\x6BE\x3\x2\x2\x2\x6BF\x6C0"+ + "\x3\x2\x2\x2\x6C0\x6C1\x3\x2\x2\x2\x6C1\x6EA\x5\xBC_\x15\x6C2\x6C4\a\x34"+ + "\x2\x2\x6C3\x6C5\x5\x12E\x98\x2\x6C4\x6C3\x3\x2\x2\x2\x6C4\x6C5\x3\x2"+ + "\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6EA\x5\xBC_\x12\x6C7\x6C9\x5\xDCo\x2"+ + "\x6C8\x6CA\x5\x12E\x98\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2"+ + "\x6CA\x6CB\x3\x2\x2\x2\x6CB\x6CD\a\xDF\x2\x2\x6CC\x6CE\x5\x12E\x98\x2"+ + "\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF"+ + "\x6D0\x5\xBC_\x11\x6D0\x6EA\x3\x2\x2\x2\x6D1\x6D3\a\xE8\x2\x2\x6D2\x6D4"+ + "\x5\x12E\x98\x2\x6D3\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6D5"+ + "\x3\x2\x2\x2\x6D5\x6EA\x5\xBC_\xF\x6D6\x6D8\a\x98\x2\x2\x6D7\x6D9\x5\x12E"+ + "\x98\x2\x6D8\x6D7\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x3\x2\x2"+ + "\x2\x6DA\x6EA\x5\xBC_\b\x6DB\x6EA\x5\x10E\x88\x2\x6DC\x6EA\x5\xDCo\x2"+ + "\x6DD\x6DF\a\xE6\x2\x2\x6DE\x6E0\x5\x12E\x98\x2\x6DF\x6DE\x3\x2\x2\x2"+ + "\x6DF\x6E0\x3\x2\x2\x2\x6E0\x6E1\x3\x2\x2\x2\x6E1\x6E3\x5\xBC_\x2\x6E2"+ + "\x6E4\x5\x12E\x98\x2\x6E3\x6E2\x3\x2\x2\x2\x6E3\x6E4\x3\x2\x2\x2\x6E4"+ + "\x6E5\x3\x2\x2\x2\x6E5\x6E6\a\xED\x2\x2\x6E6\x6EA\x3\x2\x2\x2\x6E7\x6EA"+ + "\x5\xBE`\x2\x6E8\x6EA\x5l\x37\x2\x6E9\x6BC\x3\x2\x2\x2\x6E9\x6C2\x3\x2"+ + "\x2\x2\x6E9\x6C7\x3\x2\x2\x2\x6E9\x6D1\x3\x2\x2\x2\x6E9\x6D6\x3\x2\x2"+ + "\x2\x6E9\x6DB\x3\x2\x2\x2\x6E9\x6DC\x3\x2\x2\x2\x6E9\x6DD\x3\x2\x2\x2"+ + "\x6E9\x6E7\x3\x2\x2\x2\x6E9\x6E8\x3\x2\x2\x2\x6EA\x759\x3\x2\x2\x2\x6EB"+ + "\x6ED\f\x10\x2\x2\x6EC\x6EE\x5\x12E\x98\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED"+ + "\x6EE\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x6F1\a\xEC\x2\x2\x6F0\x6F2"+ + "\x5\x12E\x98\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F3"+ + "\x3\x2\x2\x2\x6F3\x758\x5\xBC_\x11\x6F4\x6F6\f\xE\x2\x2\x6F5\x6F7\x5\x12E"+ + "\x98\x2\x6F6\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2"+ + "\x2\x6F8\x6FA\t\f\x2\x2\x6F9\x6FB\x5\x12E\x98\x2\x6FA\x6F9\x3\x2\x2\x2"+ + "\x6FA\x6FB\x3\x2\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x758\x5\xBC_\xF\x6FD"+ + "\x6FF\f\r\x2\x2\x6FE\x700\x5\x12E\x98\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700"+ + "\x3\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x703\a\xE1\x2\x2\x702\x704\x5"+ + "\x12E\x98\x2\x703\x702\x3\x2\x2\x2\x703\x704\x3\x2\x2\x2\x704\x705\x3"+ + "\x2\x2\x2\x705\x758\x5\xBC_\xE\x706\x708\f\f\x2\x2\x707\x709\x5\x12E\x98"+ + "\x2\x708\x707\x3\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2"+ + "\x70A\x70C\a\x94\x2\x2\x70B\x70D\x5\x12E\x98\x2\x70C\x70B\x3\x2\x2\x2"+ + "\x70C\x70D\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E\x758\x5\xBC_\r\x70F"+ + "\x711\f\v\x2\x2\x710\x712\x5\x12E\x98\x2\x711\x710\x3\x2\x2\x2\x711\x712"+ + "\x3\x2\x2\x2\x712\x713\x3\x2\x2\x2\x713\x715\t\r\x2\x2\x714\x716\x5\x12E"+ + "\x98\x2\x715\x714\x3\x2\x2\x2\x715\x716\x3\x2\x2\x2\x716\x717\x3\x2\x2"+ + "\x2\x717\x758\x5\xBC_\f\x718\x71A\f\n\x2\x2\x719\x71B\x5\x12E\x98\x2\x71A"+ + "\x719\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71E"+ + "\a\x32\x2\x2\x71D\x71F\x5\x12E\x98\x2\x71E\x71D\x3\x2\x2\x2\x71E\x71F"+ + "\x3\x2\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x758\x5\xBC_\v\x721\x723\f\t\x2"+ + "\x2\x722\x724\x5\x12E\x98\x2\x723\x722\x3\x2\x2\x2\x723\x724\x3\x2\x2"+ + "\x2\x724\x725\x3\x2\x2\x2\x725\x727\t\xE\x2\x2\x726\x728\x5\x12E\x98\x2"+ + "\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729"+ + "\x758\x5\xBC_\n\x72A\x72C\f\a\x2\x2\x72B\x72D\x5\x12E\x98\x2\x72C\x72B"+ + "\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x730\a\x36"+ + "\x2\x2\x72F\x731\x5\x12E\x98\x2\x730\x72F\x3\x2\x2\x2\x730\x731\x3\x2"+ + "\x2\x2\x731\x732\x3\x2\x2\x2\x732\x758\x5\xBC_\b\x733\x735\f\x6\x2\x2"+ + "\x734\x736\x5\x12E\x98\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2\x2\x2"+ + "\x736\x737\x3\x2\x2\x2\x737\x739\a\xA4\x2\x2\x738\x73A\x5\x12E\x98\x2"+ + "\x739\x738\x3\x2\x2\x2\x739\x73A\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B"+ + "\x758\x5\xBC_\a\x73C\x73E\f\x5\x2\x2\x73D\x73F\x5\x12E\x98\x2\x73E\x73D"+ + "\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x742\a\xDE"+ + "\x2\x2\x741\x743\x5\x12E\x98\x2\x742\x741\x3\x2\x2\x2\x742\x743\x3\x2"+ + "\x2\x2\x743\x744\x3\x2\x2\x2\x744\x758\x5\xBC_\x6\x745\x747\f\x4\x2\x2"+ + "\x746\x748\x5\x12E\x98\x2\x747\x746\x3\x2\x2\x2\x747\x748\x3\x2\x2\x2"+ + "\x748\x749\x3\x2\x2\x2\x749\x74B\ak\x2\x2\x74A\x74C\x5\x12E\x98\x2\x74B"+ + "\x74A\x3\x2\x2\x2\x74B\x74C\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x758"+ + "\x5\xBC_\x5\x74E\x750\f\x3\x2\x2\x74F\x751\x5\x12E\x98\x2\x750\x74F\x3"+ + "\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x752\x3\x2\x2\x2\x752\x754\a~\x2"+ + "\x2\x753\x755\x5\x12E\x98\x2\x754\x753\x3\x2\x2\x2\x754\x755\x3\x2\x2"+ + "\x2\x755\x756\x3\x2\x2\x2\x756\x758\x5\xBC_\x4\x757\x6EB\x3\x2\x2\x2\x757"+ + "\x6F4\x3\x2\x2\x2\x757\x6FD\x3\x2\x2\x2\x757\x706\x3\x2\x2\x2\x757\x70F"+ + "\x3\x2\x2\x2\x757\x718\x3\x2\x2\x2\x757\x721\x3\x2\x2\x2\x757\x72A\x3"+ + "\x2\x2\x2\x757\x733\x3\x2\x2\x2\x757\x73C\x3\x2\x2\x2\x757\x745\x3\x2"+ + "\x2\x2\x757\x74E\x3\x2\x2\x2\x758\x75B\x3\x2\x2\x2\x759\x757\x3\x2\x2"+ + "\x2\x759\x75A\x3\x2\x2\x2\x75A\xBD\x3\x2\x2\x2\x75B\x759\x3\x2\x2\x2\x75C"+ + "\x75D\a\xD2\x2\x2\x75D\x75E\x5\x12E\x98\x2\x75E\x764\x5\xBC_\x2\x75F\x760"+ + "\x5\x12E\x98\x2\x760\x761\a\x82\x2\x2\x761\x762\x5\x12E\x98\x2\x762\x763"+ + "\x5\x112\x8A\x2\x763\x765\x3\x2\x2\x2\x764\x75F\x3\x2\x2\x2\x764\x765"+ + "\x3\x2\x2\x2\x765\xBF\x3\x2\x2\x2\x766\x76A\aZ\x2\x2\x767\x76A\a\xC6\x2"+ + "\x2\x768\x76A\x5\x116\x8C\x2\x769\x766\x3\x2\x2\x2\x769\x767\x3\x2\x2"+ + "\x2\x769\x768\x3\x2\x2\x2\x76A\x76B\x3\x2\x2\x2\x76B\x76E\x5\x12E\x98"+ + "\x2\x76C\x76D\a\xDC\x2\x2\x76D\x76F\x5\x12E\x98\x2\x76E\x76C\x3\x2\x2"+ + "\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\x3\x2\x2\x2\x770\x771\x5\xC2\x62\x2"+ + "\x771\xC1\x3\x2\x2\x2\x772\x77D\x5\xC4\x63\x2\x773\x775\x5\x12E\x98\x2"+ + "\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776"+ + "\x778\a)\x2\x2\x777\x779\x5\x12E\x98\x2\x778\x777\x3\x2\x2\x2\x778\x779"+ + "\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A\x77C\x5\xC4\x63\x2\x77B\x774\x3"+ + "\x2\x2\x2\x77C\x77F\x3\x2\x2\x2\x77D\x77B\x3\x2\x2\x2\x77D\x77E\x3\x2"+ + "\x2\x2\x77E\xC3\x3\x2\x2\x2\x77F\x77D\x3\x2\x2\x2\x780\x792\x5\xFE\x80"+ + "\x2\x781\x783\x5\x12E\x98\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2"+ + "\x2\x783\x784\x3\x2\x2\x2\x784\x786\a\xE6\x2\x2\x785\x787\x5\x12E\x98"+ + "\x2\x786\x785\x3\x2\x2\x2\x786\x787\x3\x2\x2\x2\x787\x78C\x3\x2\x2\x2"+ + "\x788\x78A\x5\xF8}\x2\x789\x78B\x5\x12E\x98\x2\x78A\x789\x3\x2\x2\x2\x78A"+ + "\x78B\x3\x2\x2\x2\x78B\x78D\x3\x2\x2\x2\x78C\x788\x3\x2\x2\x2\x78C\x78D"+ + "\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x790\a\xED\x2\x2\x78F\x791\x5"+ + "\x12E\x98\x2\x790\x78F\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x793\x3"+ + "\x2\x2\x2\x792\x782\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x795\x3\x2"+ + "\x2\x2\x794\x796\x5\x114\x8B\x2\x795\x794\x3\x2\x2\x2\x795\x796\x3\x2"+ + "\x2\x2\x796\x79A\x3\x2\x2\x2\x797\x798\x5\x12E\x98\x2\x798\x799\x5\x100"+ + "\x81\x2\x799\x79B\x3\x2\x2\x2\x79A\x797\x3\x2\x2\x2\x79A\x79B\x3\x2\x2"+ + "\x2\x79B\xC5\x3\x2\x2\x2\x79C\x79D\a\xD9\x2\x2\x79D\x79E\x5\x12E\x98\x2"+ + "\x79E\x79F\x5\xBC_\x2\x79F\x7A1\x5\x11E\x90\x2\x7A0\x7A2\x5\x1A\xE\x2"+ + "\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2\x7A3"+ + "\x7A4\a\xD8\x2\x2\x7A4\xC7\x3\x2\x2\x2\x7A5\x7A6\a\xDA\x2\x2\x7A6\x7A7"+ + "\x5\x12E\x98\x2\x7A7\x7A9\x5\xD0i\x2\x7A8\x7AA\x5\x12E\x98\x2\x7A9\x7A8"+ + "\x3\x2\x2\x2\x7A9\x7AA\x3\x2\x2\x2\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AD\a)"+ + "\x2\x2\x7AC\x7AE\x5\x12E\x98\x2\x7AD\x7AC\x3\x2\x2\x2\x7AD\x7AE\x3\x2"+ + "\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x5\xBC_\x2\x7B0\xC9\x3\x2\x2\x2"+ + "\x7B1\x7B2\a\xDB\x2\x2\x7B2\x7B3\x5\x12E\x98\x2\x7B3\x7B4\x5\xCCg\x2\x7B4"+ + "\x7B6\x5\x11E\x90\x2\x7B5\x7B7\x5\x1A\xE\x2\x7B6\x7B5\x3\x2\x2\x2\x7B6"+ + "\x7B7\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8\x7B9\ah\x2\x2\x7B9\xCB\x3"+ + "\x2\x2\x2\x7BA\x7BB\x5\xBC_\x2\x7BB\xCD\x3\x2\x2\x2\x7BC\x7BD\a\xDD\x2"+ + "\x2\x7BD\x7BE\x5\x12E\x98\x2\x7BE\x7C0\x5\xD0i\x2\x7BF\x7C1\x5\x12E\x98"+ + "\x2\x7C0\x7BF\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2"+ + "\x7C2\x7C7\a)\x2\x2\x7C3\x7C5\x5\x12E\x98\x2\x7C4\x7C3\x3\x2\x2\x2\x7C4"+ + "\x7C5\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C8\x5z>\x2\x7C7\x7C4\x3"+ + "\x2\x2\x2\x7C7\x7C8\x3\x2\x2\x2\x7C8\xCF\x3\x2\x2\x2\x7C9\x7CB\a.\x2\x2"+ + "\x7CA\x7C9\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC"+ + "\x7CD\x5\xBC_\x2\x7CD\xD1\x3\x2\x2\x2\x7CE\x7CF\a\x42\x2\x2\x7CF\x7D0"+ + "\x5\x12E\x98\x2\x7D0\x7D1\x5\xD4k\x2\x7D1\xD3\x3\x2\x2\x2\x7D2\x7D4\x5"+ + "\xDCo\x2\x7D3\x7D2\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2"+ + "\x2\x7D5\x7D6\a-\x2\x2\x7D6\x7D8\x5\xFE\x80\x2\x7D7\x7D9\x5\x114\x8B\x2"+ + "\x7D8\x7D7\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7E7\x3\x2\x2\x2\x7DA"+ + "\x7DC\x5\x12E\x98\x2\x7DB\x7DA\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC"+ + "\x7DD\x3\x2\x2\x2\x7DD\x7DF\a\xE6\x2\x2\x7DE\x7E0\x5\x12E\x98\x2\x7DF"+ + "\x7DE\x3\x2\x2\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E1\x3\x2\x2\x2\x7E1\x7E3"+ + "\x5\xECw\x2\x7E2\x7E4\x5\x12E\x98\x2\x7E3\x7E2\x3\x2\x2\x2\x7E3\x7E4\x3"+ + "\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\a\xED\x2\x2\x7E6\x7E8\x3\x2"+ + "\x2\x2\x7E7\x7DB\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\x7F2\x3\x2\x2"+ + "\x2\x7E9\x7EB\x5\x12E\x98\x2\x7EA\x7E9\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2"+ + "\x2\x7EB\x7EC\x3\x2\x2\x2\x7EC\x7ED\a\xE6\x2\x2\x7ED\x7EE\x5\xF8}\x2\x7EE"+ + "\x7EF\a\xED\x2\x2\x7EF\x7F1\x3\x2\x2\x2\x7F0\x7EA\x3\x2\x2\x2\x7F1\x7F4"+ + "\x3\x2\x2\x2\x7F2\x7F0\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x815\x3"+ + "\x2\x2\x2\x7F4\x7F2\x3\x2\x2\x2\x7F5\x7F7\x5\xFE\x80\x2\x7F6\x7F8\x5\x114"+ + "\x8B\x2\x7F7\x7F6\x3\x2\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x806\x3\x2\x2"+ + "\x2\x7F9\x7FB\x5\x12E\x98\x2\x7FA\x7F9\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2"+ + "\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC\x7FE\a\xE6\x2\x2\x7FD\x7FF\x5\x12E\x98"+ + "\x2\x7FE\x7FD\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2"+ + "\x800\x802\x5\xECw\x2\x801\x803\x5\x12E\x98\x2\x802\x801\x3\x2\x2\x2\x802"+ + "\x803\x3\x2\x2\x2\x803\x804\x3\x2\x2\x2\x804\x805\a\xED\x2\x2\x805\x807"+ + "\x3\x2\x2\x2\x806\x7FA\x3\x2\x2\x2\x806\x807\x3\x2\x2\x2\x807\x811\x3"+ + "\x2\x2\x2\x808\x80A\x5\x12E\x98\x2\x809\x808\x3\x2\x2\x2\x809\x80A\x3"+ + "\x2\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80C\a\xE6\x2\x2\x80C\x80D\x5\xF8"+ + "}\x2\x80D\x80E\a\xED\x2\x2\x80E\x810\x3\x2\x2\x2\x80F\x809\x3\x2\x2\x2"+ + "\x810\x813\x3\x2\x2\x2\x811\x80F\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812"+ + "\x815\x3\x2\x2\x2\x813\x811\x3\x2\x2\x2\x814\x7D3\x3\x2\x2\x2\x814\x7F5"+ + "\x3\x2\x2\x2\x815\xD5\x3\x2\x2\x2\x816\x819\x5\xD8m\x2\x817\x819\x5\xDA"+ + "n\x2\x818\x816\x3\x2\x2\x2\x818\x817\x3\x2\x2\x2\x819\xD7\x3\x2\x2\x2"+ + "\x81A\x81C\x5\xDCo\x2\x81B\x81A\x3\x2\x2\x2\x81B\x81C\x3\x2\x2\x2\x81C"+ + "\x81E\x3\x2\x2\x2\x81D\x81F\x5\x12E\x98\x2\x81E\x81D\x3\x2\x2\x2\x81E"+ + "\x81F\x3\x2\x2\x2\x81F\x820\x3\x2\x2\x2\x820\x822\a-\x2\x2\x821\x823\x5"+ + "\x12E\x98\x2\x822\x821\x3\x2\x2\x2\x822\x823\x3\x2\x2\x2\x823\x824\x3"+ + "\x2\x2\x2\x824\x826\x5\xFE\x80\x2\x825\x827\x5\x114\x8B\x2\x826\x825\x3"+ + "\x2\x2\x2\x826\x827\x3\x2\x2\x2\x827\x82B\x3\x2\x2\x2\x828\x829\x5\x12E"+ + "\x98\x2\x829\x82A\x5\xECw\x2\x82A\x82C\x3\x2\x2\x2\x82B\x828\x3\x2\x2"+ + "\x2\x82B\x82C\x3\x2\x2\x2\x82C\x831\x3\x2\x2\x2\x82D\x82F\x5\x12E\x98"+ + "\x2\x82E\x82D\x3\x2\x2\x2\x82E\x82F\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2"+ + "\x830\x832\x5\xF0y\x2\x831\x82E\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832"+ + "\x83C\x3\x2\x2\x2\x833\x835\x5\x12E\x98\x2\x834\x833\x3\x2\x2\x2\x834"+ + "\x835\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836\x837\a\xE6\x2\x2\x837\x838"+ + "\x5\xF8}\x2\x838\x839\a\xED\x2\x2\x839\x83B\x3\x2\x2\x2\x83A\x834\x3\x2"+ + "\x2\x2\x83B\x83E\x3\x2\x2\x2\x83C\x83A\x3\x2\x2\x2\x83C\x83D\x3\x2\x2"+ + "\x2\x83D\xD9\x3\x2\x2\x2\x83E\x83C\x3\x2\x2\x2\x83F\x843\x5\xFE\x80\x2"+ + "\x840\x841\x5\x12E\x98\x2\x841\x842\x5\xECw\x2\x842\x844\x3\x2\x2\x2\x843"+ + "\x840\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x84E\x3\x2\x2\x2\x845\x847"+ + "\x5\x12E\x98\x2\x846\x845\x3\x2\x2\x2\x846\x847\x3\x2\x2\x2\x847\x848"+ + "\x3\x2\x2\x2\x848\x849\a\xE6\x2\x2\x849\x84A\x5\xF8}\x2\x84A\x84B\a\xED"+ + "\x2\x2\x84B\x84D\x3\x2\x2\x2\x84C\x846\x3\x2\x2\x2\x84D\x850\x3\x2\x2"+ + "\x2\x84E\x84C\x3\x2\x2\x2\x84E\x84F\x3\x2\x2\x2\x84F\xDB\x3\x2\x2\x2\x850"+ + "\x84E\x3\x2\x2\x2\x851\x856\x5\xE6t\x2\x852\x856\x5\xDEp\x2\x853\x856"+ + "\x5\xE0q\x2\x854\x856\x5\xEAv\x2\x855\x851\x3\x2\x2\x2\x855\x852\x3\x2"+ + "\x2\x2\x855\x853\x3\x2\x2\x2\x855\x854\x3\x2\x2\x2\x856\xDD\x3\x2\x2\x2"+ + "\x857\x859\x5\xFE\x80\x2\x858\x85A\x5\x114\x8B\x2\x859\x858\x3\x2\x2\x2"+ + "\x859\x85A\x3\x2\x2\x2\x85A\x85F\x3\x2\x2\x2\x85B\x85D\x5\x12E\x98\x2"+ + "\x85C\x85B\x3\x2\x2\x2\x85C\x85D\x3\x2\x2\x2\x85D\x85E\x3\x2\x2\x2\x85E"+ + "\x860\x5\xF0y\x2\x85F\x85C\x3\x2\x2\x2\x85F\x860\x3\x2\x2\x2\x860\x86A"+ + "\x3\x2\x2\x2\x861\x863\x5\x12E\x98\x2\x862\x861\x3\x2\x2\x2\x862\x863"+ + "\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x865\a\xE6\x2\x2\x865\x866\x5"+ + "\xF8}\x2\x866\x867\a\xED\x2\x2\x867\x869\x3\x2\x2\x2\x868\x862\x3\x2\x2"+ + "\x2\x869\x86C\x3\x2\x2\x2\x86A\x868\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2"+ + "\x86B\xDF\x3\x2\x2\x2\x86C\x86A\x3\x2\x2\x2\x86D\x870\x5\xFE\x80\x2\x86E"+ + "\x870\x5\x102\x82\x2\x86F\x86D\x3\x2\x2\x2\x86F\x86E\x3\x2\x2\x2\x870"+ + "\x872\x3\x2\x2\x2\x871\x873\x5\x114\x8B\x2\x872\x871\x3\x2\x2\x2\x872"+ + "\x873\x3\x2\x2\x2\x873\x875\x3\x2\x2\x2\x874\x876\x5\x12E\x98\x2\x875"+ + "\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x879"+ + "\a\xE6\x2\x2\x878\x87A\x5\x12E\x98\x2\x879\x878\x3\x2\x2\x2\x879\x87A"+ + "\x3\x2\x2\x2\x87A\x87F\x3\x2\x2\x2\x87B\x87D\x5\xECw\x2\x87C\x87E\x5\x12E"+ + "\x98\x2\x87D\x87C\x3\x2\x2\x2\x87D\x87E\x3\x2\x2\x2\x87E\x880\x3\x2\x2"+ + "\x2\x87F\x87B\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2"+ + "\x881\x886\a\xED\x2\x2\x882\x884\x5\x12E\x98\x2\x883\x882\x3\x2\x2\x2"+ + "\x883\x884\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887\x5\xF0y\x2\x886"+ + "\x883\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x891\x3\x2\x2\x2\x888\x88A"+ + "\x5\x12E\x98\x2\x889\x888\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88B"+ + "\x3\x2\x2\x2\x88B\x88C\a\xE6\x2\x2\x88C\x88D\x5\xF8}\x2\x88D\x88E\a\xED"+ + "\x2\x2\x88E\x890\x3\x2\x2\x2\x88F\x889\x3\x2\x2\x2\x890\x893\x3\x2\x2"+ + "\x2\x891\x88F\x3\x2\x2\x2\x891\x892\x3\x2\x2\x2\x892\xE1\x3\x2\x2\x2\x893"+ + "\x891\x3\x2\x2\x2\x894\x896\x5\xFC\x7F\x2\x895\x897\x5\x114\x8B\x2\x896"+ + "\x895\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x89C\x3\x2\x2\x2\x898\x89A"+ + "\x5\x12E\x98\x2\x899\x898\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89B"+ + "\x3\x2\x2\x2\x89B\x89D\x5\xF0y\x2\x89C\x899\x3\x2\x2\x2\x89C\x89D\x3\x2"+ + "\x2\x2\x89D\x8A7\x3\x2\x2\x2\x89E\x8A0\x5\x12E\x98\x2\x89F\x89E\x3\x2"+ + "\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A2\a\xE6\x2"+ + "\x2\x8A2\x8A3\x5\xF8}\x2\x8A3\x8A4\a\xED\x2\x2\x8A4\x8A6\x3\x2\x2\x2\x8A5"+ + "\x89F\x3\x2\x2\x2\x8A6\x8A9\x3\x2\x2\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8"+ + "\x3\x2\x2\x2\x8A8\xE3\x3\x2\x2\x2\x8A9\x8A7\x3\x2\x2\x2\x8AA\x8AD\x5\xFC"+ + "\x7F\x2\x8AB\x8AD\x5\x102\x82\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC\x8AB\x3\x2"+ + "\x2\x2\x8AD\x8AF\x3\x2\x2\x2\x8AE\x8B0\x5\x114\x8B\x2\x8AF\x8AE\x3\x2"+ + "\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B2\x3\x2\x2\x2\x8B1\x8B3\x5\x12E\x98"+ + "\x2\x8B2\x8B1\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2"+ + "\x8B4\x8B6\a\xE6\x2\x2\x8B5\x8B7\x5\x12E\x98\x2\x8B6\x8B5\x3\x2\x2\x2"+ + "\x8B6\x8B7\x3\x2\x2\x2\x8B7\x8BC\x3\x2\x2\x2\x8B8\x8BA\x5\xECw\x2\x8B9"+ + "\x8BB\x5\x12E\x98\x2\x8BA\x8B9\x3\x2\x2\x2\x8BA\x8BB\x3\x2\x2\x2\x8BB"+ + "\x8BD\x3\x2\x2\x2\x8BC\x8B8\x3\x2\x2\x2\x8BC\x8BD\x3\x2\x2\x2\x8BD\x8BE"+ + "\x3\x2\x2\x2\x8BE\x8C3\a\xED\x2\x2\x8BF\x8C1\x5\x12E\x98\x2\x8C0\x8BF"+ + "\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C4\x5"+ + "\xF0y\x2\x8C3\x8C0\x3\x2\x2\x2\x8C3\x8C4\x3\x2\x2\x2\x8C4\x8CE\x3\x2\x2"+ + "\x2\x8C5\x8C7\x5\x12E\x98\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2"+ + "\x2\x8C7\x8C8\x3\x2\x2\x2\x8C8\x8C9\a\xE6\x2\x2\x8C9\x8CA\x5\xF8}\x2\x8CA"+ + "\x8CB\a\xED\x2\x2\x8CB\x8CD\x3\x2\x2\x2\x8CC\x8C6\x3\x2\x2\x2\x8CD\x8D0"+ + "\x3\x2\x2\x2\x8CE\x8CC\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\xE5\x3\x2"+ + "\x2\x2\x8D0\x8CE\x3\x2\x2\x2\x8D1\x8D4\x5\xDEp\x2\x8D2\x8D4\x5\xE0q\x2"+ + "\x8D3\x8D1\x3\x2\x2\x2\x8D3\x8D2\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4"+ + "\x8D9\x3\x2\x2\x2\x8D5\x8D7\x5\xE8u\x2\x8D6\x8D8\x5\x12E\x98\x2\x8D7\x8D6"+ + "\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8DA\x3\x2\x2\x2\x8D9\x8D5\x3"+ + "\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8D9\x3\x2\x2\x2\x8DB\x8DC\x3\x2"+ + "\x2\x2\x8DC\x8E1\x3\x2\x2\x2\x8DD\x8DF\x5\x12E\x98\x2\x8DE\x8DD\x3\x2"+ + "\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8E2\x5\xF0y\x2"+ + "\x8E1\x8DE\x3\x2\x2\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8EC\x3\x2\x2\x2\x8E3"+ + "\x8E5\x5\x12E\x98\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5"+ + "\x8E6\x3\x2\x2\x2\x8E6\x8E7\a\xE6\x2\x2\x8E7\x8E8\x5\xF8}\x2\x8E8\x8E9"+ + "\a\xED\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8E4\x3\x2\x2\x2\x8EB\x8EE\x3"+ + "\x2\x2\x2\x8EC\x8EA\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\xE7\x3\x2\x2"+ + "\x2\x8EE\x8EC\x3\x2\x2\x2\x8EF\x8F1\t\xF\x2\x2\x8F0\x8F2\x5\x12E\x98\x2"+ + "\x8F1\x8F0\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F5\x3\x2\x2\x2\x8F3"+ + "\x8F6\x5\xE2r\x2\x8F4\x8F6\x5\xE4s\x2\x8F5\x8F3\x3\x2\x2\x2\x8F5\x8F4"+ + "\x3\x2\x2\x2\x8F6\xE9\x3\x2\x2\x2\x8F7\x8F9\x5\x12E\x98\x2\x8F8\x8F7\x3"+ + "\x2\x2\x2\x8F8\x8F9\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x5\xF0"+ + "y\x2\x8FB\xEB\x3\x2\x2\x2\x8FC\x8FE\x5\xEEx\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD"+ + "\x8FE\x3\x2\x2\x2\x8FE\x900\x3\x2\x2\x2\x8FF\x901\x5\x12E\x98\x2\x900"+ + "\x8FF\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\x904"+ + "\t\n\x2\x2\x903\x905\x5\x12E\x98\x2\x904\x903\x3\x2\x2\x2\x904\x905\x3"+ + "\x2\x2\x2\x905\x907\x3\x2\x2\x2\x906\x8FD\x3\x2\x2\x2\x907\x90A\x3\x2"+ + "\x2\x2\x908\x906\x3\x2\x2\x2\x908\x909\x3\x2\x2\x2\x909\x90B\x3\x2\x2"+ + "\x2\x90A\x908\x3\x2\x2\x2\x90B\x918\x5\xEEx\x2\x90C\x90E\x5\x12E\x98\x2"+ + "\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ + "\x911\t\n\x2\x2\x910\x912\x5\x12E\x98\x2\x911\x910\x3\x2\x2\x2\x911\x912"+ + "\x3\x2\x2\x2\x912\x914\x3\x2\x2\x2\x913\x915\x5\xEEx\x2\x914\x913\x3\x2"+ + "\x2\x2\x914\x915\x3\x2\x2\x2\x915\x917\x3\x2\x2\x2\x916\x90D\x3\x2\x2"+ + "\x2\x917\x91A\x3\x2\x2\x2\x918\x916\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2"+ + "\x919\xED\x3\x2\x2\x2\x91A\x918\x3\x2\x2\x2\x91B\x91D\a\xE6\x2\x2\x91C"+ + "\x91B\x3\x2\x2\x2\x91C\x91D\x3\x2\x2\x2\x91D\x920\x3\x2\x2\x2\x91E\x91F"+ + "\t\x10\x2\x2\x91F\x921\x5\x12E\x98\x2\x920\x91E\x3\x2\x2\x2\x920\x921"+ + "\x3\x2\x2\x2\x921\x923\x3\x2\x2\x2\x922\x924\a\xED\x2\x2\x923\x922\x3"+ + "\x2\x2\x2\x923\x924\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2\x925\x926\x5\xBC"+ + "_\x2\x926\xEF\x3\x2\x2\x2\x927\x929\a,\x2\x2\x928\x92A\x5\x12E\x98\x2"+ + "\x929\x928\x3\x2\x2\x2\x929\x92A\x3\x2\x2\x2\x92A\x92B\x3\x2\x2\x2\x92B"+ + "\x92D\x5\xFC\x7F\x2\x92C\x92E\x5\x114\x8B\x2\x92D\x92C\x3\x2\x2\x2\x92D"+ + "\x92E\x3\x2\x2\x2\x92E\xF1\x3\x2\x2\x2\x92F\x941\a\xE6\x2\x2\x930\x932"+ + "\x5\x12E\x98\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933"+ + "\x3\x2\x2\x2\x933\x93E\x5\xF4{\x2\x934\x936\x5\x12E\x98\x2\x935\x934\x3"+ + "\x2\x2\x2\x935\x936\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x939\a)\x2"+ + "\x2\x938\x93A\x5\x12E\x98\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2"+ + "\x2\x93A\x93B\x3\x2\x2\x2\x93B\x93D\x5\xF4{\x2\x93C\x935\x3\x2\x2\x2\x93D"+ + "\x940\x3\x2\x2\x2\x93E\x93C\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x942"+ + "\x3\x2\x2\x2\x940\x93E\x3\x2\x2\x2\x941\x931\x3\x2\x2\x2\x941\x942\x3"+ + "\x2\x2\x2\x942\x944\x3\x2\x2\x2\x943\x945\x5\x12E\x98\x2\x944\x943\x3"+ + "\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x946\x3\x2\x2\x2\x946\x947\a\xED"+ + "\x2\x2\x947\xF3\x3\x2\x2\x2\x948\x949\a\x9F\x2\x2\x949\x94B\x5\x12E\x98"+ + "\x2\x94A\x948\x3\x2\x2\x2\x94A\x94B\x3\x2\x2\x2\x94B\x94E\x3\x2\x2\x2"+ + "\x94C\x94D\t\x11\x2\x2\x94D\x94F\x5\x12E\x98\x2\x94E\x94C\x3\x2\x2\x2"+ + "\x94E\x94F\x3\x2\x2\x2\x94F\x952\x3\x2\x2\x2\x950\x951\a\xA6\x2\x2\x951"+ + "\x953\x5\x12E\x98\x2\x952\x950\x3\x2\x2\x2\x952\x953\x3\x2\x2\x2\x953"+ + "\x954\x3\x2\x2\x2\x954\x956\x5\xFC\x7F\x2\x955\x957\x5\x114\x8B\x2\x956"+ + "\x955\x3\x2\x2\x2\x956\x957\x3\x2\x2\x2\x957\x960\x3\x2\x2\x2\x958\x95A"+ + "\x5\x12E\x98\x2\x959\x958\x3\x2\x2\x2\x959\x95A\x3\x2\x2\x2\x95A\x95B"+ + "\x3\x2\x2\x2\x95B\x95D\a\xE6\x2\x2\x95C\x95E\x5\x12E\x98\x2\x95D\x95C"+ + "\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E\x95F\x3\x2\x2\x2\x95F\x961\a\xED"+ + "\x2\x2\x960\x959\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x966\x3\x2\x2"+ + "\x2\x962\x964\x5\x12E\x98\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2"+ + "\x2\x964\x965\x3\x2\x2\x2\x965\x967\x5\x100\x81\x2\x966\x963\x3\x2\x2"+ + "\x2\x966\x967\x3\x2\x2\x2\x967\x96C\x3\x2\x2\x2\x968\x96A\x5\x12E\x98"+ + "\x2\x969\x968\x3\x2\x2\x2\x969\x96A\x3\x2\x2\x2\x96A\x96B\x3\x2\x2\x2"+ + "\x96B\x96D\x5\xF6|\x2\x96C\x969\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D"+ + "\xF5\x3\x2\x2\x2\x96E\x970\a\xE2\x2\x2\x96F\x971\x5\x12E\x98\x2\x970\x96F"+ + "\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x972\x3\x2\x2\x2\x972\x973\x5"+ + "\xBC_\x2\x973\xF7\x3\x2\x2\x2\x974\x97F\x5\xFA~\x2\x975\x977\x5\x12E\x98"+ + "\x2\x976\x975\x3\x2\x2\x2\x976\x977\x3\x2\x2\x2\x977\x978\x3\x2\x2\x2"+ + "\x978\x97A\a)\x2\x2\x979\x97B\x5\x12E\x98\x2\x97A\x979\x3\x2\x2\x2\x97A"+ + "\x97B\x3\x2\x2\x2\x97B\x97C\x3\x2\x2\x2\x97C\x97E\x5\xFA~\x2\x97D\x976"+ + "\x3\x2\x2\x2\x97E\x981\x3\x2\x2\x2\x97F\x97D\x3\x2\x2\x2\x97F\x980\x3"+ + "\x2\x2\x2\x980\xF9\x3\x2\x2\x2\x981\x97F\x3\x2\x2\x2\x982\x983\x5\xBC"+ + "_\x2\x983\x984\x5\x12E\x98\x2\x984\x985\a\xCF\x2\x2\x985\x986\x5\x12E"+ + "\x98\x2\x986\x988\x3\x2\x2\x2\x987\x982\x3\x2\x2\x2\x987\x988\x3\x2\x2"+ + "\x2\x988\x989\x3\x2\x2\x2\x989\x98A\x5\xBC_\x2\x98A\xFB\x3\x2\x2\x2\x98B"+ + "\x98E\x5\xFE\x80\x2\x98C\x98E\x5\x11A\x8E\x2\x98D\x98B\x3\x2\x2\x2\x98D"+ + "\x98C\x3\x2\x2\x2\x98E\xFD\x3\x2\x2\x2\x98F\x992\a\x101\x2\x2\x990\x992"+ + "\x5\x118\x8D\x2\x991\x98F\x3\x2\x2\x2\x991\x990\x3\x2\x2\x2\x992\xFF\x3"+ + "\x2\x2\x2\x993\x995\a:\x2\x2\x994\x996\x5\x12E\x98\x2\x995\x994\x3\x2"+ + "\x2\x2\x995\x996\x3\x2\x2\x2\x996\x999\x3\x2\x2\x2\x997\x998\a\x97\x2"+ + "\x2\x998\x99A\x5\x12E\x98\x2\x999\x997\x3\x2\x2\x2\x999\x99A\x3\x2\x2"+ + "\x2\x99A\x99B\x3\x2\x2\x2\x99B\x9A0\x5\x112\x8A\x2\x99C\x99E\x5\x12E\x98"+ + "\x2\x99D\x99C\x3\x2\x2\x2\x99D\x99E\x3\x2\x2\x2\x99E\x99F\x3\x2\x2\x2"+ + "\x99F\x9A1\x5\x108\x85\x2\x9A0\x99D\x3\x2\x2\x2\x9A0\x9A1\x3\x2\x2\x2"+ + "\x9A1\x101\x3\x2\x2\x2\x9A2\x9A3\t\x12\x2\x2\x9A3\x103\x3\x2\x2\x2\x9A4"+ + "\x9A5\t\xE\x2\x2\x9A5\x105\x3\x2\x2\x2\x9A6\x9AB\x5\xFE\x80\x2\x9A7\x9A8"+ + "\t\xF\x2\x2\x9A8\x9AA\x5\xFE\x80\x2\x9A9\x9A7\x3\x2\x2\x2\x9AA\x9AD\x3"+ + "\x2\x2\x2\x9AB\x9A9\x3\x2\x2\x2\x9AB\x9AC\x3\x2\x2\x2\x9AC\x107\x3\x2"+ + "\x2\x2\x9AD\x9AB\x3\x2\x2\x2\x9AE\x9B0\a\xE9\x2\x2\x9AF\x9B1\x5\x12E\x98"+ + "\x2\x9B0\x9AF\x3\x2\x2\x2\x9B0\x9B1\x3\x2\x2\x2\x9B1\x9B4\x3\x2\x2\x2"+ + "\x9B2\x9B5\x5\x110\x89\x2\x9B3\x9B5\x5\xFE\x80\x2\x9B4\x9B2\x3\x2\x2\x2"+ + "\x9B4\x9B3\x3\x2\x2\x2\x9B5\x109\x3\x2\x2\x2\x9B6\x9BF\x5\xFE\x80\x2\x9B7"+ + "\x9B9\x5\x12E\x98\x2\x9B8\x9B7\x3\x2\x2\x2\x9B8\x9B9\x3\x2\x2\x2\x9B9"+ + "\x9BA\x3\x2\x2\x2\x9BA\x9BC\a\xE8\x2\x2\x9BB\x9BD\x5\x12E\x98\x2\x9BC"+ + "\x9BB\x3\x2\x2\x2\x9BC\x9BD\x3\x2\x2\x2\x9BD\x9BE\x3\x2\x2\x2\x9BE\x9C0"+ + "\x5\xFE\x80\x2\x9BF\x9B8\x3\x2\x2\x2\x9BF\x9C0\x3\x2\x2\x2\x9C0\x10B\x3"+ + "\x2\x2\x2\x9C1\x9C4\x5\xFE\x80\x2\x9C2\x9C4\x5\x110\x89\x2\x9C3\x9C1\x3"+ + "\x2\x2\x2\x9C3\x9C2\x3\x2\x2\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C6\a*\x2"+ + "\x2\x9C6\x10D\x3\x2\x2\x2\x9C7\x9D0\x5\x110\x89\x2\x9C8\x9D0\a\xFA\x2"+ + "\x2\x9C9\x9D0\a\xF5\x2\x2\x9CA\x9D0\a\xD0\x2\x2\x9CB\x9D0\at\x2\x2\x9CC"+ + "\x9D0\a\x99\x2\x2\x9CD\x9D0\a\x9A\x2\x2\x9CE\x9D0\a`\x2\x2\x9CF\x9C7\x3"+ + "\x2\x2\x2\x9CF\x9C8\x3\x2\x2\x2\x9CF\x9C9\x3\x2\x2\x2\x9CF\x9CA\x3\x2"+ + "\x2\x2\x9CF\x9CB\x3\x2\x2\x2\x9CF\x9CC\x3\x2\x2\x2\x9CF\x9CD\x3\x2\x2"+ + "\x2\x9CF\x9CE\x3\x2\x2\x2\x9D0\x10F\x3\x2\x2\x2\x9D1\x9D2\t\x13\x2\x2"+ + "\x9D2\x111\x3\x2\x2\x2\x9D3\x9D6\x5\x102\x82\x2\x9D4\x9D6\x5\x106\x84"+ + "\x2\x9D5\x9D3\x3\x2\x2\x2\x9D5\x9D4\x3\x2\x2\x2\x9D6\x9DF\x3\x2\x2\x2"+ + "\x9D7\x9D9\x5\x12E\x98\x2\x9D8\x9D7\x3\x2\x2\x2\x9D8\x9D9\x3\x2\x2\x2"+ + "\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9DC\a\xE6\x2\x2\x9DB\x9DD\x5\x12E\x98\x2"+ + "\x9DC\x9DB\x3\x2\x2\x2\x9DC\x9DD\x3\x2\x2\x2\x9DD\x9DE\x3\x2\x2\x2\x9DE"+ + "\x9E0\a\xED\x2\x2\x9DF\x9D8\x3\x2\x2\x2\x9DF\x9E0\x3\x2\x2\x2\x9E0\x113"+ + "\x3\x2\x2\x2\x9E1\x9E2\t\x14\x2\x2\x9E2\x115\x3\x2\x2\x2\x9E3\x9E4\t\x15"+ + "\x2\x2\x9E4\x117\x3\x2\x2\x2\x9E5\x9E6\t\x16\x2\x2\x9E6\x119\x3\x2\x2"+ + "\x2\x9E7\x9E8\t\x17\x2\x2\x9E8\x11B\x3\x2\x2\x2\x9E9\x9EB\x5\x12E\x98"+ + "\x2\x9EA\x9E9\x3\x2\x2\x2\x9EA\x9EB\x3\x2\x2\x2\x9EB\x9F3\x3\x2\x2\x2"+ + "\x9EC\x9EE\a\xFB\x2\x2\x9ED\x9EC\x3\x2\x2\x2\x9EE\x9EF\x3\x2\x2\x2\x9EF"+ + "\x9ED\x3\x2\x2\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F4\x3\x2\x2\x2\x9F1\x9F4"+ + "\x5\x122\x92\x2\x9F2\x9F4\x5\x120\x91\x2\x9F3\x9ED\x3\x2\x2\x2\x9F3\x9F1"+ + "\x3\x2\x2\x2\x9F3\x9F2\x3\x2\x2\x2\x9F4\x9F6\x3\x2\x2\x2\x9F5\x9F7\x5"+ + "\x12E\x98\x2\x9F6\x9F5\x3\x2\x2\x2\x9F6\x9F7\x3\x2\x2\x2\x9F7\x9FD\x3"+ + "\x2\x2\x2\x9F8\x9FA\x5\x12E\x98\x2\x9F9\x9F8\x3\x2\x2\x2\x9F9\x9FA\x3"+ + "\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2\x9FB\x9FD\x5\x124\x93\x2\x9FC\x9EA\x3"+ + "\x2\x2\x2\x9FC\x9F9\x3\x2\x2\x2\x9FD\x11D\x3\x2\x2\x2\x9FE\xA07\x5\x11C"+ + "\x8F\x2\x9FF\xA01\x5\x12E\x98\x2\xA00\x9FF\x3\x2\x2\x2\xA00\xA01\x3\x2"+ + "\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA04\a*\x2\x2\xA03\xA05\x5\x12E\x98"+ + "\x2\xA04\xA03\x3\x2\x2\x2\xA04\xA05\x3\x2\x2\x2\xA05\xA07\x3\x2\x2\x2"+ + "\xA06\x9FE\x3\x2\x2\x2\xA06\xA00\x3\x2\x2\x2\xA07\xA0A\x3\x2\x2\x2\xA08"+ + "\xA06\x3\x2\x2\x2\xA08\xA09\x3\x2\x2\x2\xA09\x11F\x3\x2\x2\x2\xA0A\xA08"+ + "\x3\x2\x2\x2\xA0B\xA0C\a\xFC\x2\x2\xA0C\x121\x3\x2\x2\x2\xA0D\xA0E\t\x18"+ + "\x2\x2\xA0E\x123\x3\x2\x2\x2\xA0F\xA11\a\xFE\x2\x2\xA10\xA12\x5\x126\x94"+ + "\x2\xA11\xA10\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA11\x3\x2\x2\x2"+ + "\xA13\xA14\x3\x2\x2\x2\xA14\x125\x3\x2\x2\x2\xA15\xA16\a/\x2\x2\xA16\xA18"+ + "\x5\x128\x95\x2\xA17\xA19\x5\x12A\x96\x2\xA18\xA17\x3\x2\x2\x2\xA18\xA19"+ + "\x3\x2\x2\x2\xA19\x127\x3\x2\x2\x2\xA1A\xA1B\a\x101\x2\x2\xA1B\x129\x3"+ + "\x2\x2\x2\xA1C\xA1D\x5\x12E\x98\x2\xA1D\xA1F\x5\x12C\x97\x2\xA1E\xA20"+ + "\x5\x12E\x98\x2\xA1F\xA1E\x3\x2\x2\x2\xA1F\xA20\x3\x2\x2\x2\xA20\xA5A"+ + "\x3\x2\x2\x2\xA21\xA22\x5\x12E\x98\x2\xA22\xA2B\x5\x12C\x97\x2\xA23\xA25"+ + "\x5\x12E\x98\x2\xA24\xA23\x3\x2\x2\x2\xA24\xA25\x3\x2\x2\x2\xA25\xA26"+ + "\x3\x2\x2\x2\xA26\xA28\a)\x2\x2\xA27\xA29\x5\x12E\x98\x2\xA28\xA27\x3"+ + "\x2\x2\x2\xA28\xA29\x3\x2\x2\x2\xA29\xA2A\x3\x2\x2\x2\xA2A\xA2C\x5\x12C"+ + "\x97\x2\xA2B\xA24\x3\x2\x2\x2\xA2C\xA2D\x3\x2\x2\x2\xA2D\xA2B\x3\x2\x2"+ + "\x2\xA2D\xA2E\x3\x2\x2\x2\xA2E\xA30\x3\x2\x2\x2\xA2F\xA31\x5\x12E\x98"+ + "\x2\xA30\xA2F\x3\x2\x2\x2\xA30\xA31\x3\x2\x2\x2\xA31\xA5A\x3\x2\x2\x2"+ + "\xA32\xA34\x5\x12E\x98\x2\xA33\xA32\x3\x2\x2\x2\xA33\xA34\x3\x2\x2\x2"+ + "\xA34\xA35\x3\x2\x2\x2\xA35\xA37\a\xE6\x2\x2\xA36\xA38\x5\x12E\x98\x2"+ + "\xA37\xA36\x3\x2\x2\x2\xA37\xA38\x3\x2\x2\x2\xA38\xA39\x3\x2\x2\x2\xA39"+ + "\xA3B\x5\x12C\x97\x2\xA3A\xA3C\x5\x12E\x98\x2\xA3B\xA3A\x3\x2\x2\x2\xA3B"+ + "\xA3C\x3\x2\x2\x2\xA3C\xA3D\x3\x2\x2\x2\xA3D\xA3F\a\xED\x2\x2\xA3E\xA40"+ + "\x5\x12E\x98\x2\xA3F\xA3E\x3\x2\x2\x2\xA3F\xA40\x3\x2\x2\x2\xA40\xA5A"+ + "\x3\x2\x2\x2\xA41\xA43\x5\x12E\x98\x2\xA42\xA41\x3\x2\x2\x2\xA42\xA43"+ + "\x3\x2\x2\x2\xA43\xA44\x3\x2\x2\x2\xA44\xA45\a\xE6\x2\x2\xA45\xA4E\x5"+ + "\x12C\x97\x2\xA46\xA48\x5\x12E\x98\x2\xA47\xA46\x3\x2\x2\x2\xA47\xA48"+ + "\x3\x2\x2\x2\xA48\xA49\x3\x2\x2\x2\xA49\xA4B\a)\x2\x2\xA4A\xA4C\x5\x12E"+ + "\x98\x2\xA4B\xA4A\x3\x2\x2\x2\xA4B\xA4C\x3\x2\x2\x2\xA4C\xA4D\x3\x2\x2"+ + "\x2\xA4D\xA4F\x5\x12C\x97\x2\xA4E\xA47\x3\x2\x2\x2\xA4F\xA50\x3\x2\x2"+ + "\x2\xA50\xA4E\x3\x2\x2\x2\xA50\xA51\x3\x2\x2\x2\xA51\xA53\x3\x2\x2\x2"+ + "\xA52\xA54\x5\x12E\x98\x2\xA53\xA52\x3\x2\x2\x2\xA53\xA54\x3\x2\x2\x2"+ + "\xA54\xA55\x3\x2\x2\x2\xA55\xA57\a\xED\x2\x2\xA56\xA58\x5\x12E\x98\x2"+ + "\xA57\xA56\x3\x2\x2\x2\xA57\xA58\x3\x2\x2\x2\xA58\xA5A\x3\x2\x2\x2\xA59"+ + "\xA1C\x3\x2\x2\x2\xA59\xA21\x3\x2\x2\x2\xA59\xA33\x3\x2\x2\x2\xA59\xA42"+ + "\x3\x2\x2\x2\xA5A\x12B\x3\x2\x2\x2\xA5B\xA5E\a\x101\x2\x2\xA5C\xA5E\x5"+ + "\x10E\x88\x2\xA5D\xA5B\x3\x2\x2\x2\xA5D\xA5C\x3\x2\x2\x2\xA5E\x12D\x3"+ + "\x2\x2\x2\xA5F\xA61\t\x19\x2\x2\xA60\xA5F\x3\x2\x2\x2\xA61\xA62\x3\x2"+ + "\x2\x2\xA62\xA60\x3\x2\x2\x2\xA62\xA63\x3\x2\x2\x2\xA63\x12F\x3\x2\x2"+ + "\x2\x1C6\x134\x13A\x13D\x141\x145\x149\x14D\x153\x156\x160\x162\x168\x170"+ + "\x177\x17D\x186\x18E\x19D\x1A7\x1AF\x1B9\x1BF\x1C3\x1C7\x1CB\x1D0\x1D9"+ + "\x220\x226\x22A\x22D\x23D\x241\x246\x249\x24E\x254\x258\x25D\x262\x267"+ + "\x26A\x26E\x274\x278\x27F\x285\x289\x28C\x291\x29C\x29F\x2A2\x2A7\x2AD"+ + "\x2B1\x2B6\x2BD\x2C3\x2C7\x2CF\x2D3\x2D7\x2DB\x2DF\x2E4\x2EF\x2F6\x2FE"+ + "\x305\x30E\x315\x319\x31C\x324\x328\x32D\x337\x33D\x347\x34B\x35A\x360"+ + "\x366\x36A\x376\x37A\x380\x385\x389\x38D\x391\x394\x397\x39A\x39D\x3A1"+ + "\x3A9\x3AD\x3B0\x3B3\x3B7\x3CF\x3D5\x3D9\x3DD\x3E6\x3F1\x3F6\x400\x404"+ + "\x409\x411\x415\x419\x421\x425\x431\x435\x43D\x43F\x445\x449\x44F\x453"+ + "\x457\x471\x47B\x47F\x484\x48F\x493\x498\x4A7\x4AC\x4B5\x4B9\x4BD\x4C1"+ + "\x4C5\x4C8\x4CC\x4D0\x4D3\x4D7\x4DA\x4DE\x4E0\x4E5\x4E9\x4ED\x4F1\x4F3"+ + "\x4F9\x4FD\x500\x505\x509\x50F\x512\x515\x51A\x51E\x525\x529\x52F\x532"+ + "\x536\x53D\x541\x547\x54A\x54E\x556\x55A\x55D\x560\x564\x56C\x570\x574"+ + "\x576\x579\x57F\x585\x589\x58D\x592\x597\x59B\x59F\x5A5\x5AD\x5AF\x5BB"+ + "\x5BF\x5C7\x5CB\x5D3\x5D7\x5DB\x5DF\x5E3\x5E7\x5EF\x5F3\x600\x607\x60B"+ + "\x616\x61D\x622\x626\x62B\x62E\x634\x638\x63B\x641\x645\x64D\x651\x65A"+ + "\x65E\x662\x666\x669\x66D\x673\x677\x67E\x687\x68E\x692\x695\x698\x69B"+ + "\x6A0\x6AC\x6B0\x6B8\x6BA\x6BF\x6C4\x6C9\x6CD\x6D3\x6D8\x6DF\x6E3\x6E9"+ + "\x6ED\x6F1\x6F6\x6FA\x6FF\x703\x708\x70C\x711\x715\x71A\x71E\x723\x727"+ + "\x72C\x730\x735\x739\x73E\x742\x747\x74B\x750\x754\x757\x759\x764\x769"+ + "\x76E\x774\x778\x77D\x782\x786\x78A\x78C\x790\x792\x795\x79A\x7A1\x7A9"+ + "\x7AD\x7B6\x7C0\x7C4\x7C7\x7CA\x7D3\x7D8\x7DB\x7DF\x7E3\x7E7\x7EA\x7F2"+ + "\x7F7\x7FA\x7FE\x802\x806\x809\x811\x814\x818\x81B\x81E\x822\x826\x82B"+ + "\x82E\x831\x834\x83C\x843\x846\x84E\x855\x859\x85C\x85F\x862\x86A\x86F"+ + "\x872\x875\x879\x87D\x87F\x883\x886\x889\x891\x896\x899\x89C\x89F\x8A7"+ + "\x8AC\x8AF\x8B2\x8B6\x8BA\x8BC\x8C0\x8C3\x8C6\x8CE\x8D3\x8D7\x8DB\x8DE"+ + "\x8E1\x8E4\x8EC\x8F1\x8F5\x8F8\x8FD\x900\x904\x908\x90D\x911\x914\x918"+ + "\x91C\x920\x923\x929\x92D\x931\x935\x939\x93E\x941\x944\x94A\x94E\x952"+ + "\x956\x959\x95D\x960\x963\x966\x969\x96C\x970\x976\x97A\x97F\x987\x98D"+ + "\x991\x995\x999\x99D\x9A0\x9AB\x9B0\x9B4\x9B8\x9BC\x9BF\x9C3\x9CF\x9D5"+ + "\x9D8\x9DC\x9DF\x9EA\x9EF\x9F3\x9F6\x9F9\x9FC\xA00\xA04\xA06\xA08\xA13"+ + "\xA18\xA1F\xA24\xA28\xA2D\xA30\xA33\xA37\xA3B\xA3F\xA42\xA47\xA4B\xA50"+ + "\xA53\xA57\xA59\xA5D\xA62"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index 6facd042d3..a0b3b32e5f 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -37,13 +37,13 @@ module : moduleHeader : VERSION whiteSpace numberLiteral whiteSpace? CLASS? endOfStatement; moduleConfig : - BEGIN (whiteSpace GUIDLITERAL whiteSpace identifier whiteSpace?)? endOfStatement + BEGIN (whiteSpace GUIDLITERAL whiteSpace unrestrictedIdentifier whiteSpace?)? endOfStatement moduleConfigElement+ END ; moduleConfigElement : - identifier whiteSpace* EQ whiteSpace* literal (COLON numberLiteral)? endOfStatement + unrestrictedIdentifier whiteSpace* EQ whiteSpace* literal (COLON numberLiteral)? endOfStatement ; moduleAttributes : (attributeStmt endOfStatement)+; @@ -463,7 +463,7 @@ explicitCallStmt : CALL whiteSpace explicitCallStmtExpression; explicitCallStmtExpression : implicitCallStmt_InStmt? DOT identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)* # ECS_MemberCall - | identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)* # ECS_ProcedureCall + | identifier typeHint? (whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN)? (whiteSpace? LPAREN subscripts RPAREN)* # ECS_ProcedureCall ; implicitCallStmt_InBlock : @@ -483,12 +483,14 @@ implicitCallStmt_InStmt : ; iCS_S_VariableOrProcedureCall : identifier typeHint? (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; - iCS_S_ProcedureOrArrayCall : (identifier | baseType) typeHint? whiteSpace? LPAREN whiteSpace? (argsCall whiteSpace?)? RPAREN (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; +iCS_S_VariableOrProcedureCallUnrestricted : unrestrictedIdentifier typeHint? (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; +iCS_S_ProcedureOrArrayCallUnrestricted : (unrestrictedIdentifier | baseType) typeHint? whiteSpace? LPAREN whiteSpace? (argsCall whiteSpace?)? RPAREN (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; + iCS_S_MembersCall : (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall)? (iCS_S_MemberCall whiteSpace?)+ (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; -iCS_S_MemberCall : (DOT | EXCLAMATIONPOINT) whiteSpace? (iCS_S_VariableOrProcedureCall | iCS_S_ProcedureOrArrayCall); +iCS_S_MemberCall : (DOT | EXCLAMATIONPOINT) whiteSpace? (iCS_S_VariableOrProcedureCallUnrestricted | iCS_S_ProcedureOrArrayCallUnrestricted); iCS_S_DictionaryCall : whiteSpace? dictionaryCallStmt; @@ -496,11 +498,11 @@ argsCall : (argCall? whiteSpace? (COMMA | SEMICOLON) whiteSpace?)* argCall (whit argCall : LPAREN? ((BYVAL | BYREF | PARAMARRAY) whiteSpace)? RPAREN? valueStmt; -dictionaryCallStmt : EXCLAMATIONPOINT whiteSpace? identifier typeHint?; +dictionaryCallStmt : EXCLAMATIONPOINT whiteSpace? unrestrictedIdentifier typeHint?; argList : LPAREN (whiteSpace? arg (whiteSpace? COMMA whiteSpace? arg)*)? whiteSpace? RPAREN; -arg : (OPTIONAL whiteSpace)? ((BYVAL | BYREF) whiteSpace)? (PARAMARRAY whiteSpace)? identifier typeHint? (whiteSpace? LPAREN whiteSpace? RPAREN)? (whiteSpace? asTypeClause)? (whiteSpace? argDefaultValue)?; +arg : (OPTIONAL whiteSpace)? ((BYVAL | BYREF) whiteSpace)? (PARAMARRAY whiteSpace)? unrestrictedIdentifier typeHint? (whiteSpace? LPAREN whiteSpace? RPAREN)? (whiteSpace? asTypeClause)? (whiteSpace? argDefaultValue)?; argDefaultValue : EQ whiteSpace? valueStmt; @@ -508,6 +510,8 @@ subscripts : subscript (whiteSpace? COMMA whiteSpace? subscript)*; subscript : (valueStmt whiteSpace TO whiteSpace)? valueStmt; +unrestrictedIdentifier : identifier | statementKeyword; + identifier : IDENTIFIER | keyword; asTypeClause : AS whiteSpace? (NEW whiteSpace)? type (whiteSpace? fieldLength)?; @@ -535,30 +539,208 @@ typeHint : PERCENT | AMPERSAND | POW | EXCLAMATIONPOINT | HASH | AT | DOLLAR; visibility : PRIVATE | PUBLIC | FRIEND | GLOBAL; keyword : - ACCESS | ADDRESSOF | ALIAS | AND | ATTRIBUTE | APPACTIVATE | APPEND | AS | - BEEP | BEGIN | BINARY | BOOLEAN | BYVAL | BYREF | BYTE | - CALL | CASE | CLASS | CLOSE | CHDIR | CHDRIVE | COLLECTION | CONST | - DATABASE | DATE | DECLARE | DEFBOOL | DEFBYTE | DEFCUR | DEFDBL | DEFDATE | DEFINT | DEFLNG | DEFLNGLNG | DEFLNGPTR | DEFOBJ | DEFSNG | DEFSTR | DEFVAR | DELETESETTING | DIM | DO | DOUBLE | - EACH | ELSE | ELSEIF | END | ENUM | EQV | ERASE | ERROR | EVENT | - FALSE | FILECOPY | FRIEND | FOR | FUNCTION | - GET | GLOBAL | GOSUB | GOTO | - IF | IMP | IMPLEMENTS | IN | INPUT | IS | INTEGER | - KILL | - LOAD | LOCK | LONG | LOOP | LEN | LET | LIB | LIKE | LSET | - ME | MID | MKDIR | MOD | - NAME | NEXT | NEW | NOT | NOTHING | NULL | - ON | OPEN | OPTIONAL | OR | OUTPUT | - PARAMARRAY | PRESERVE | PRINT | PRIVATE | PUBLIC | PUT | - RANDOM | RANDOMIZE | RAISEEVENT | READ | REDIM | REM | RESET | RESUME | RETURN | RMDIR | RSET | - SAVEPICTURE | SAVESETTING | SEEK | SELECT | SENDKEYS | SET | SETATTR | SHARED | SINGLE | SPC | STATIC | STEP | STOP | STRING | SUB | - TAB | TEXT | THEN | TIME | TO | TRUE | TYPE | TYPEOF | - UNLOAD | UNLOCK | UNTIL | - VARIANT | VERSION | - WEND | WHILE | WIDTH | WITH | WITHEVENTS | WRITE | - XOR | ABS | ANY | ARRAY | CBOOL | CBYTE | CCUR | - CDATE | CDBL | CDEC | CINT | CIRCLE | CLNG | CLNGLNG | CLNGPTR | CSNG | CSTR | CURRENCY | CVAR | - CVERR | DEBUG | DOEVENTS | END_IF | EXIT | FIX | INPUTB | INT | LBOUND | - LEN | LENB | LONGLONG | LONGPTR | MIDB | MIDBTYPESUFFIX | MIDTYPESUFFIX | OPTION | PSET | SCALE | SGN | UBOUND + ABS + | ADDRESSOF + | ALIAS + | AND + | ANY + | APPACTIVATE + | ARRAY + | AS + | ATTRIBUTE + | BEEP + | BEGIN + | BOOLEAN + | BYREF + | BYTE + | BYVAL + | CBOOL + | CBYTE + | CCUR + | CDATE + | CDBL + | CDEC + | CHDIR + | CHDRIVE + | CINT + | CIRCLE + | CLASS + | CLNG + | CLNGLNG + | CLNGPTR + | COLLECTION + | CSNG + | CSTR + | CURRENCY + | CVAR + | CVERR + | DATABASE + | DATE + | DEBUG + | DELETESETTING + | DOEVENTS + | DOUBLE + | END_IF + | EQV + | FALSE + | FILECOPY + | FIX + | IMP + | IN + | INPUTB + | INT + | INTEGER + | IS + | KILL + | LBOUND + | LEN + | LEN + | LENB + | LIB + | LIKE + | LOAD + | LONG + | LONGLONG + | LONGPTR + | ME + | MID + | MIDB + | MIDBTYPESUFFIX + | MIDTYPESUFFIX + | MKDIR + | MOD + | NAME + | NEW + | NOT + | NOTHING + | NULL + | OPTIONAL + | OR + | PARAMARRAY + | PRESERVE + | PSET + | RANDOMIZE + | REM + | RMDIR + | SAVEPICTURE + | SAVESETTING + | SCALE + | SENDKEYS + | SETATTR + | SGN + | SINGLE + | SPC + | STRING + | TAB + | TEXT + | THEN + | TIME + | TO + | TRUE + | TYPEOF + | UBOUND + | UNLOAD + | UNTIL + | VARIANT + | VERSION + | WITHEVENTS + | XOR +; + +statementKeyword : + CALL + | CASE + | CLOSE + | CONST + | DECLARE + | DEFBOOL + | DEFBYTE + | DEFCUR + | DEFDATE + | DEFDBL + | DEFINT + | DEFLNG + | DEFLNGLNG + | DEFLNGPTR + | DEFOBJ + | DEFSNG + | DEFSTR + | DEFVAR + | DIM + | DO + | ELSE + | ELSEIF + | END + | ENDIF + | ENUM + | ERASE + | EVENT + | EXIT + | FOR + | FRIEND + | FUNCTION + | GET + | GLOBAL + | GOSUB + | GOTO + | IF + | IMPLEMENTS + | INPUT + | LET + | LOCK + | LOOP + | LSET + | NEXT + | ON + | OPEN + | OPTION + | PRINT + | PRIVATE + | PUBLIC + | PUT + | RAISEEVENT + | REDIM + | RESUME + | RETURN + | RSET + | SEEK + | SELECT + | SET + | STATIC + | STOP + | SUB + | TYPE + | UNLOCK + | WEND + | WHILE + | WITH + | WRITE + | STEP + | EXIT_DO + | EXIT_FOR + | EXIT_FUNCTION + | EXIT_PROPERTY + | EXIT_SUB + | END_SELECT + | END_WITH + | ON_ERROR + | RESUME_NEXT + | ERROR + | APPEND + | BINARY + | OUTPUT + | RANDOM + | ACCESS + | READ + | WRITE + | READ_WRITE + | SHARED + | LOCK_READ + | LOCK_WRITE + | LOCK_READ_WRITE + | RESET + | LINE_INPUT + | WIDTH ; endOfLine : diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs index 12bffd8d4a..f6e4989667 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs @@ -839,6 +839,19 @@ public virtual void EnterLiteral([NotNull] VBAParser.LiteralContext context) { } /// The parse tree. public virtual void ExitLiteral([NotNull] VBAParser.LiteralContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1437,6 +1450,19 @@ public virtual void EnterInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseCo /// The parse tree. public virtual void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStatementKeyword([NotNull] VBAParser.StatementKeywordContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStatementKeyword([NotNull] VBAParser.StatementKeywordContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2061,6 +2087,19 @@ public virtual void EnterVariableListStmt([NotNull] VBAParser.VariableListStmtCo /// The parse tree. public virtual void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2308,6 +2347,19 @@ public virtual void EnterModuleBodyElement([NotNull] VBAParser.ModuleBodyElement /// The parse tree. public virtual void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs index 7621c41061..176fa5b7ab 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs @@ -714,6 +714,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitLiteral([NotNull] VBAParser.LiteralContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1220,6 +1231,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStatementKeyword([NotNull] VBAParser.StatementKeywordContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1748,6 +1770,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1957,6 +1990,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserListener.cs b/Rubberduck.Parsing/Grammar/VBAParserListener.cs index 7cc19bb763..2624640372 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserListener.cs @@ -729,6 +729,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitLiteral([NotNull] VBAParser.LiteralContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context); + /// /// Enter a parse tree produced by . /// @@ -1261,6 +1272,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStatementKeyword([NotNull] VBAParser.StatementKeywordContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStatementKeyword([NotNull] VBAParser.StatementKeywordContext context); + /// /// Enter a parse tree produced by . /// @@ -1805,6 +1827,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context); + /// /// Enter a parse tree produced by . /// @@ -2022,6 +2055,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context); + /// /// Enter a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs index df98476483..298ad91380 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs @@ -473,6 +473,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitLiteral([NotNull] VBAParser.LiteralContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_ProcedureOrArrayCallUnrestricted([NotNull] VBAParser.ICS_S_ProcedureOrArrayCallUnrestrictedContext context); + /// /// Visit a parse tree produced by . /// @@ -808,6 +815,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitInlineIfThenElse([NotNull] VBAParser.InlineIfThenElseContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStatementKeyword([NotNull] VBAParser.StatementKeywordContext context); + /// /// Visit a parse tree produced by . /// @@ -1152,6 +1166,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVariableListStmt([NotNull] VBAParser.VariableListStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitICS_S_VariableOrProcedureCallUnrestricted([NotNull] VBAParser.ICS_S_VariableOrProcedureCallUnrestrictedContext context); + /// /// Visit a parse tree produced by . /// @@ -1289,6 +1310,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitModuleBodyElement([NotNull] VBAParser.ModuleBodyElementContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitUnrestrictedIdentifier([NotNull] VBAParser.UnrestrictedIdentifierContext context); + /// /// Visit a parse tree produced by the vsMid /// labeled alternative in . diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index 79c4e3fb66..e5ee2783df 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -453,7 +453,7 @@ public override void EnterArgList(VBAParser.ArgListContext context) var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var identifier = argContext.identifier(); + var identifier = argContext.unrestrictedIdentifier(); if (identifier == null) { return; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index ecf8997b36..55ee45406a 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -167,11 +167,11 @@ private IEnumerable FindAnnotations(int line) private void ResolveType(VBAParser.ICS_S_MembersCallContext context) { - var first = context.iCS_S_VariableOrProcedureCall().identifier(); - var identifiers = new[] { first }.Concat(context.iCS_S_MemberCall() - .Select(member => member.iCS_S_VariableOrProcedureCall().identifier())) - .ToList(); - ResolveType(identifiers); + //var first = context.iCS_S_VariableOrProcedureCall().identifier(); + //var identifiers = new[] { first }.Concat(context.iCS_S_MemberCall() + // .Select(member => member.iCS_S_VariableOrProcedureCallUnrestricted().unrestrictedIdentifier())) + // .ToList(); + //ResolveType(identifiers); } private Declaration ResolveType(VBAParser.ComplexTypeContext context) @@ -555,14 +555,14 @@ private Declaration ResolveInternal(VBAParser.DictionaryCallStmtContext fieldCal return null; } - var fieldName = fieldCall.identifier().GetText(); + var fieldName = fieldCall.unrestrictedIdentifier().GetText(); var result = _declarationFinder.MatchName(fieldName).SingleOrDefault(declaration => declaration.ParentScope == parentType.Scope); if (result == null) { return null; } - var identifierContext = fieldCall.identifier(); + var identifierContext = fieldCall.unrestrictedIdentifier(); var reference = CreateReference(identifierContext, result, isAssignmentTarget, hasExplicitLetStatement); result.AddReference(reference); _alreadyResolved.Add(reference.Context); @@ -626,37 +626,37 @@ private Declaration ResolveInternal(VBAParser.ICS_S_MembersCallContext context, var lastCall = chainedCalls.Last(); foreach (var memberCall in chainedCalls) { - // if we're on the left side of an assignment, only the last memberCall is the assignment target. - var isLast = memberCall.Equals(lastCall); - var accessor = isLast - ? accessorType - : ContextAccessorType.GetValueOrReference; - var isTarget = isLast && isAssignmentTarget; + //// if we're on the left side of an assignment, only the last memberCall is the assignment target. + //var isLast = memberCall.Equals(lastCall); + //var accessor = isLast + // ? accessorType + // : ContextAccessorType.GetValueOrReference; + //var isTarget = isLast && isAssignmentTarget; - var parentType = ResolveType(parent); + //var parentType = ResolveType(parent); - var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType, accessor, hasExplicitLetStatement, isTarget) - ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType, accessor, hasExplicitLetStatement, isTarget); + //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) + // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); - if (member == null && parent != null) - { - var parentComTypeName = GetParentComTypeName(parent); + //if (member == null && parent != null) + //{ + // var parentComTypeName = GetParentComTypeName(parent); - // if the member can't be found on the parentType, maybe we're looking at a document or form module? - parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); - member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType, accessor, hasExplicitLetStatement, isTarget) - ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType, accessor, hasExplicitLetStatement, isTarget); - } + // // if the member can't be found on the parentType, maybe we're looking at a document or form module? + // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); + // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) + // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); + //} - if (member == null) - { - // if member still can't be found, it's hopeless - return null; - } + //if (member == null) + //{ + // // if member still can't be found, it's hopeless + // return null; + //} - var memberReference = CreateReference(GetMemberCallIdentifierContext(memberCall), parent); - member.AddMemberCall(memberReference); - parent = ResolveType(member); + //var memberReference = CreateReference(GetMemberCallIdentifierContext(memberCall), parent); + //member.AddMemberCall(memberReference); + //parent = ResolveType(member); } var fieldCall = context.dictionaryCallStmt(); @@ -842,34 +842,34 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) var chainedCalls = context.iCS_S_MemberCall(); foreach (var memberCall in chainedCalls) { - var notationToken = memberCall.children[0]; - if (notationToken.GetText() == "!") - { - // the memberCall is a shorthand reference to the type's default member. - // since the reference isn't explicit, we don't need to care for it. - // (and we couldn't handle it if we wanted to, since we aren't parsing member attributes) - return; - } + //var notationToken = memberCall.children[0]; + //if (notationToken.GetText() == "!") + //{ + // // the memberCall is a shorthand reference to the type's default member. + // // since the reference isn't explicit, we don't need to care for it. + // // (and we couldn't handle it if we wanted to, since we aren't parsing member attributes) + // return; + //} - var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parent) - ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parent); + //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parent) + // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parent); - if (member == null && parent != null) - { - var parentComTypeName = GetParentComTypeName(parent); - // if the member can't be found on the parentType, maybe we're looking at a document or form module? - var parentType = _declarationFinder.FindClass(null, parentComTypeName); - member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) - ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType); - } + //if (member == null && parent != null) + //{ + // var parentComTypeName = GetParentComTypeName(parent); + // // if the member can't be found on the parentType, maybe we're looking at a document or form module? + // var parentType = _declarationFinder.FindClass(null, parentComTypeName); + // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) + // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType); + //} - if (member == null) - { - return; - } + //if (member == null) + //{ + // return; + //} - member.AddReference(CreateReference(GetMemberCallIdentifierContext(memberCall), member)); - parent = ResolveType(member); + //member.AddReference(CreateReference(GetMemberCallIdentifierContext(memberCall), member)); + //parent = ResolveType(member); } var fieldCall = context.dictionaryCallStmt(); @@ -908,7 +908,6 @@ public void Resolve(VBAParser.DoLoopStmtContext context) public void Resolve(VBAParser.BlockIfThenElseContext context) { - // TODO: Nested if statements don't work because the parse tree is built differently. var ifExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.ifBlockStmt().ifConditionStmt().GetText(), GetInnerMostWithExpression()); if (ifExpr != null) { @@ -940,7 +939,6 @@ public void Resolve(VBAParser.InlineIfThenElseContext context) public void Resolve(VBAParser.SelectCaseStmtContext context) { - // TODO: Grammar does not build correct select case parse tree, thus not resolvable right now. var selectExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); if (selectExpr != null) { @@ -1008,23 +1006,23 @@ private string GetParentComTypeName(Declaration declaration) return string.Empty; } - private VBAParser.IdentifierContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) + private ParserRuleContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) { if (callContext == null) { return null; } - var procedureOrArrayCall = callContext.iCS_S_ProcedureOrArrayCall(); + var procedureOrArrayCall = callContext.iCS_S_ProcedureOrArrayCallUnrestricted(); if (procedureOrArrayCall != null) { - return procedureOrArrayCall.identifier(); + return procedureOrArrayCall.unrestrictedIdentifier(); } - var variableOrProcedureCall = callContext.iCS_S_VariableOrProcedureCall(); + var variableOrProcedureCall = callContext.iCS_S_VariableOrProcedureCallUnrestricted(); if (variableOrProcedureCall != null) { - return variableOrProcedureCall.identifier(); + return variableOrProcedureCall.unrestrictedIdentifier(); } return null; diff --git a/Rubberduck.Parsing/VBA/AttributeParser.cs b/Rubberduck.Parsing/VBA/AttributeParser.cs index e42a94890d..8087147ca3 100644 --- a/Rubberduck.Parsing/VBA/AttributeParser.cs +++ b/Rubberduck.Parsing/VBA/AttributeParser.cs @@ -178,7 +178,7 @@ public override void ExitAttributeStmt(VBAParser.AttributeStmtContext context) public override void ExitModuleConfigElement(VBAParser.ModuleConfigElementContext context) { - var name = context.identifier().GetText(); + var name = context.unrestrictedIdentifier().GetText(); var literal = context.literal(); var values = new[] { literal == null ? string.Empty : literal.GetText()}; _currentScopeAttributes.Add(name, values); From bc5b7d566713b6a6605428d242a7c34b1b9e944c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 1 May 2016 22:30:37 +0200 Subject: [PATCH 11/72] resolve all statements, labels and events --- ...soleteLetStatementUsageInspectionResult.cs | 4 +- .../ParameterCanBeByValInspection.cs | 16 +- .../Inspections/ParameterNotUsedInspection.cs | 2 +- Rubberduck.Parsing/Binding/BindingService.cs | 14 +- .../Binding/DefaultBindingContext.cs | 18 +- .../Binding/IndexDefaultBinding.cs | 4 +- .../Binding/VBAExpressionParser.cs | 655 +- .../Binding/VBAExpressionParser.g4 | 9 +- Rubberduck.Parsing/Grammar/VBALexer.cs | 2431 +++-- Rubberduck.Parsing/Grammar/VBALexer.g4 | 18 - Rubberduck.Parsing/Grammar/VBAParser.cs | 8567 +++++++---------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 94 +- .../Grammar/VBAParserBaseListener.cs | 273 - .../Grammar/VBAParserBaseVisitor.cs | 231 - .../Grammar/VBAParserListener.cs | 231 - .../Grammar/VBAParserVisitor.cs | 147 - .../VBAConditionalCompilationParser.cs | 409 +- .../Symbols/BoundExpressionVisitor.cs | 11 +- .../Symbols/DeclarationFinder.cs | 16 +- .../Symbols/IdentifierReferenceListener.cs | 126 + .../Symbols/IdentifierReferenceResolver.cs | 401 +- .../Symbols/TypeAnnotationPass.cs | 1 + 22 files changed, 5558 insertions(+), 8120 deletions(-) diff --git a/RetailCoder.VBE/Inspections/ObsoleteLetStatementUsageInspectionResult.cs b/RetailCoder.VBE/Inspections/ObsoleteLetStatementUsageInspectionResult.cs index 210f66a44e..39433d37c7 100644 --- a/RetailCoder.VBE/Inspections/ObsoleteLetStatementUsageInspectionResult.cs +++ b/RetailCoder.VBE/Inspections/ObsoleteLetStatementUsageInspectionResult.cs @@ -52,8 +52,8 @@ public override void Fix() .Replace("_", string.Empty); var originalInstruction = Context.GetText(); - var identifier = context.implicitCallStmt_InStmt().GetText(); - var value = context.valueStmt().GetText(); + var identifier = context.valueStmt()[0].GetText(); + var value = context.valueStmt()[1].GetText(); module.DeleteLines(selection.StartLine, selection.LineCount); diff --git a/RetailCoder.VBE/Inspections/ParameterCanBeByValInspection.cs b/RetailCoder.VBE/Inspections/ParameterCanBeByValInspection.cs index c58077a32f..06e52b72c3 100644 --- a/RetailCoder.VBE/Inspections/ParameterCanBeByValInspection.cs +++ b/RetailCoder.VBE/Inspections/ParameterCanBeByValInspection.cs @@ -51,12 +51,12 @@ public override IEnumerable GetInspectionResults() var formEventHandlerScopes = declarations.FindFormEventHandlers() .Select(handler => handler.Scope); - var eventScopes = declarations.Where(item => + var eventScopes = declarations.Where(item => !item.IsBuiltIn && item.DeclarationType == DeclarationType.Event) .Select(e => e.Scope); - var declareScopes = declarations.Where(item => - item.DeclarationType == DeclarationType.LibraryFunction + var declareScopes = declarations.Where(item => + item.DeclarationType == DeclarationType.LibraryFunction || item.DeclarationType == DeclarationType.LibraryProcedure) .Select(e => e.Scope); @@ -67,10 +67,10 @@ public override IEnumerable GetInspectionResults() && !ignoredScopes.Contains(declaration.ParentScope) && declaration.DeclarationType == DeclarationType.Parameter && !interfaceMembers.Select(m => m.Scope).Contains(declaration.ParentScope) - && ((VBAParser.ArgContext) declaration.Context).BYVAL() == null + && ((VBAParser.ArgContext)declaration.Context).BYVAL() == null && !IsUsedAsByRefParam(declarations, declaration) && !declaration.References.Any(reference => reference.IsAssignment)) - .Select(issue => new ParameterCanBeByValInspectionResult(this, issue, ((dynamic)issue.Context).identifier(), issue.QualifiedName)); + .Select(issue => new ParameterCanBeByValInspectionResult(this, issue, ((dynamic)issue.Context).unrestrictedIdentifier(), issue.QualifiedName)); return issues; } @@ -97,7 +97,7 @@ private static bool IsUsedAsByRefParam(IEnumerable declarations, De for (var i = 0; i < calledProcedureArgs.Count(); i++) { - if (((VBAParser.ArgContext) calledProcedureArgs[i].Context).BYVAL() != null) + if (((VBAParser.ArgContext)calledProcedureArgs[i].Context).BYVAL() != null) { continue; } @@ -110,6 +110,10 @@ private static bool IsUsedAsByRefParam(IEnumerable declarations, De continue; } + if (!(reference.Context is VBAParser.ArgCallContext)) + { + continue; + } var context = ((dynamic)reference.Context.Parent).argsCall() as VBAParser.ArgsCallContext; if (context == null) { diff --git a/RetailCoder.VBE/Inspections/ParameterNotUsedInspection.cs b/RetailCoder.VBE/Inspections/ParameterNotUsedInspection.cs index 51e37d8993..5d65b66a4b 100644 --- a/RetailCoder.VBE/Inspections/ParameterNotUsedInspection.cs +++ b/RetailCoder.VBE/Inspections/ParameterNotUsedInspection.cs @@ -52,7 +52,7 @@ public override IEnumerable GetInspectionResults() && !builtInHandlers.Contains(parameter.ParentDeclaration)) let isInterfaceImplementationMember = IsInterfaceMemberImplementationParameter(issue, interfaceImplementationMemberScopes) select new ParameterNotUsedInspectionResult(this, issue, - ((dynamic) issue.Context).identifier(), issue.QualifiedName, + ((dynamic) issue.Context).unrestrictedIdentifier(), issue.QualifiedName, isInterfaceImplementationMember, quickFixRefactoring, State); return issues.ToList(); diff --git a/Rubberduck.Parsing/Binding/BindingService.cs b/Rubberduck.Parsing/Binding/BindingService.cs index 8d26bb8665..0c1570d7ea 100644 --- a/Rubberduck.Parsing/Binding/BindingService.cs +++ b/Rubberduck.Parsing/Binding/BindingService.cs @@ -1,26 +1,38 @@ using Antlr4.Runtime; using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.Symbols; -using System; namespace Rubberduck.Parsing.Binding { public sealed class BindingService { + private readonly DeclarationFinder _declarationFinder; private readonly IBindingContext _defaultBindingContext; private readonly IBindingContext _typedBindingContext; private readonly IBindingContext _procedurePointerBindingContext; public BindingService( + DeclarationFinder declarationFinder, IBindingContext defaultBindingContext, IBindingContext typedBindingContext, IBindingContext procedurePointerBindingContext) { + _declarationFinder = declarationFinder; _defaultBindingContext = defaultBindingContext; _typedBindingContext = typedBindingContext; _procedurePointerBindingContext = procedurePointerBindingContext; } + public Declaration ResolveEvent(Declaration module, string identifier) + { + return _declarationFinder.FindEvent(module, identifier); + } + + public Declaration ResolveGoTo(Declaration procedure, string label) + { + return _declarationFinder.FindLabel(procedure, label); + } + public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, IBoundExpression withBlockVariable) { // Trim the expression because the grammar allows whitespace in some places. diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index ce2707e5db..3db20b6272 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -117,6 +117,10 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr private ArgumentList VisitArgumentList(Declaration module, Declaration parent, VBAExpressionParser.ArgumentListContext argumentList, IBoundExpression withBlockVariable) { var convertedList = new ArgumentList(); + if (argumentList == null) + { + return convertedList; + } var list = argumentList.positionalOrNamedArgumentList(); if (list.positionalArgument() != null) { @@ -221,6 +225,13 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new ParenthesizedDefaultBinding(expression, expressionBinding); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExpressionContext expression, IBoundExpression withBlockVariable) + { + dynamic expressionParens = expression.expression(); + var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable); + return new ParenthesizedDefaultBinding(expression, expressionBinding); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExprContext expression, IBoundExpression withBlockVariable) { return Visit(module, parent, expression.typeOfIsExpression(), withBlockVariable); @@ -250,6 +261,11 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ModOpContext expression, IBoundExpression withBlockVariable) + { + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddOpContext expression, IBoundExpression withBlockVariable) { return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); @@ -333,7 +349,7 @@ private IExpressionBinding VisitUnaryOp(Declaration module, Declaration parent, { dynamic exprExpr = expr; var exprBinding = Visit(module, parent, exprExpr, withBlockVariable); - return new UnaryOpDefaultBinding(context, exprExpr); + return new UnaryOpDefaultBinding(context, exprBinding); } } } diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index d00d46c726..79c4a23468 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -104,7 +104,7 @@ with a parameter list that cannot accept any parameters and an t bool propertyWithParameters = lExpression.Classification == ExpressionClassification.Property && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); bool functionWithParameters = lExpression.Classification == ExpressionClassification.Function && ((IDeclarationWithParameter)lExpression.ReferencedDeclaration).Parameters.Any(); if (isVariable || - ((!propertyWithParameters || !functionWithParameters)) && _argumentList.HasArguments) + ((lExpression.Classification == ExpressionClassification.Property || lExpression.Classification == ExpressionClassification.Function) && _argumentList.HasArguments)) { IBoundExpression boundExpression = null; var asTypeName = lExpression.ReferencedDeclaration.AsTypeName; @@ -211,7 +211,7 @@ private IBoundExpression ResolveLExpressionDeclaredTypeIsArray(IBoundExpression The declared type of is an array type, an empty argument list has not already been specified for it, and one of the following is true: */ - if (asTypeDeclaration != null && asTypeDeclaration.IsArray()) + if (lExpression.ReferencedDeclaration.IsArray()) { /* represents an empty argument list. In this case, the index expression diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs index ec2e46de14..a4685b39f7 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs @@ -29,47 +29,44 @@ namespace Rubberduck.Parsing.Binding { [System.CLSCompliant(false)] public partial class VBAExpressionParser : Parser { public const int - PRINT=166, ELSEIF=93, CBYTE=5, CLOSE=69, STATIC=196, MINUS=230, OPTION_EXPLICIT=159, - L_SQUARE_BRACKET=241, SETATTR=192, DOEVENTS=21, HASHENDIF=240, DATELITERAL=248, - ERROR=107, NOTHING=151, EACH=91, SUB=200, FILECOPY=115, STOP=198, LPAREN=228, - MID=144, CVERR=19, BEEP=58, AS=56, END_PROPERTY=98, AT=45, DATABASE=71, - GOSUB=121, CSNG=15, HASHCONST=236, CHDIR=66, POW=234, DOLLAR=47, PROPERTY_LET=169, - THEN=203, XOR=220, EXIT_FOR=110, DEFINT=79, HASHIF=237, UNLOCK=210, CALL=64, - LOCK_READ=139, SET=191, LOCK_READ_WRITE=141, ABS=1, LSET=142, RAISEEVENT=176, - MIDBTYPESUFFIX=32, SEEK=188, LONG=133, CBOOL=4, LIB=136, DIM=88, APPEND=55, - MKDIR=145, OPEN=156, DIV=222, PROPERTY_SET=170, CDBL=8, PERCENT=46, SENDKEYS=190, - END_SELECT=99, STRING=199, HASHELSEIF=238, SGN=37, REM=180, TO=205, DEFDBL=77, - BYVAL=61, FRIEND=116, LOOP=134, DELETESETTING=87, CLASS=68, DO=89, VARIANT=212, - END_WITH=102, DEFBOOL=74, OPTIONAL=157, ADDRESSOF=50, CONST=70, RSET=185, - INTEGER=129, CDEC=9, REMCOMMENT=250, ATTRIBUTE=53, OUTPUT=163, FOR=117, - PTRSAFE=171, EQ=224, BOOLEAN=60, CIRCLE=11, NAME=147, END_FUNCTION=96, - DEFSNG=84, DEFBYTE=75, NOT=150, CINT=10, SAVESETTING=187, END=103, PRESERVE=165, - ON_LOCAL_ERROR=155, FLOATLITERAL=246, HASHELSE=239, LOAD=131, BINARY=59, - LENB=28, RETURN=183, EXCLAMATIONPOINT=42, NEXT=148, GLOBAL=120, INPUTB=24, - IDENTIFIER=255, WS=254, EMPTY=94, CURRENCY=17, CCUR=6, MOD=146, WITHEVENTS=218, - COLON=40, DEFLNGLNG=81, STEP=197, TIME=204, OPTION_BASE=158, GT=226, PUT=173, - WITH=217, CSTR=16, LOCK_WRITE=140, LINE_CONTINUATION=256, TYPEOF=208, - DEFVAR=86, RMDIR=184, DEFLNG=80, UBOUND=38, FALSE=114, ERRORCHAR=258, - UNDERSCORE=253, INTEGERLITERAL=247, END_IF=97, LOCK=132, TEXT=202, SINGLEQUOTE=252, - SAVEPICTURE=186, MULT=231, SEMICOLON=41, BYTE=63, HEXLITERAL=245, ELSE=92, - IF=123, TYPE=207, AMPERSAND=48, DEFLNGPTR=82, ENUM=104, DEFOBJ=83, IN=126, - CHDRIVE=67, OPTION=34, DOT=43, EXIT_DO=109, GUIDLITERAL=257, IS=128, EQV=105, - WEND=214, FUNCTION=118, HASH=44, CASE=65, GEQ=225, GET=119, PUBLIC=172, - ON_ERROR=154, EXIT=22, MIDB=31, END_ENUM=95, GOTO=122, INTDIV=223, LONGPTR=30, - WIDTH=216, BEGIN=57, EXIT_SUB=113, ASSIGN=221, COMMENT=251, WRITE=219, - RANDOMIZE=175, DOUBLE=90, EXIT_PROPERTY=112, COMMA=39, RANDOM=174, PROPERTY_GET=168, - SELECT=189, PRIVATE=167, ERASE=106, TAB=201, BYREF=62, VERSION=213, NEQ=232, - END_TYPE=101, KILL=130, NEW=149, ARRAY=3, INPUT=127, SINGLE=194, UNLOAD=209, - ALIAS=51, SPC=195, LT=229, RESET=181, END_SUB=100, EVENT=108, READ_WRITE=178, - OPTION_COMPARE=160, ME=143, SCALE=36, CDATE=7, MIDTYPESUFFIX=33, NULL=152, - NEWLINE=249, TRUE=206, RPAREN=235, APPACTIVATE=54, IMP=124, STRINGLITERAL=243, - OCTLITERAL=244, READ=177, DATE=72, LIKE=137, AND=52, OPTION_PRIVATE_MODULE=161, - CLNGLNG=13, PLUS=233, ANY=2, RESUME=182, INT=25, SHARED=193, EXIT_FUNCTION=111, - PSET=35, ACCESS=49, LINE_INPUT=138, ON=153, OR=162, PARAMARRAY=164, LBOUND=26, - R_SQUARE_BRACKET=242, IMPLEMENTS=125, UNTIL=211, DEBUG=20, DEFCUR=78, - CLNGPTR=14, LONGLONG=29, DECLARE=73, DEFDATE=76, FIX=23, LEN=27, REDIM=179, - LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12, FOREIGNNAME=259, - OBJECT=260, COLLECTION=261; + PRINT=156, ELSEIF=88, CBYTE=5, CLOSE=65, STATIC=180, MINUS=212, OPTION_EXPLICIT=149, + L_SQUARE_BRACKET=223, DOEVENTS=21, HASHENDIF=222, DATELITERAL=230, ERROR=102, + NOTHING=141, EACH=86, SUB=184, STOP=182, LPAREN=210, MID=136, CVERR=19, + AS=55, END_PROPERTY=93, AT=45, DATABASE=67, GOSUB=115, CSNG=15, HASHCONST=218, + POW=216, DOLLAR=47, PROPERTY_LET=159, THEN=187, XOR=202, EXIT_FOR=105, + DEFINT=75, HASHIF=219, UNLOCK=192, CALL=62, LOCK_READ=131, SET=176, LOCK_READ_WRITE=133, + ABS=1, LSET=134, RAISEEVENT=165, MIDBTYPESUFFIX=32, SEEK=174, LONG=125, + CBOOL=4, LIB=128, DIM=83, APPEND=54, OPEN=146, DIV=204, PROPERTY_SET=160, + CDBL=8, PERCENT=46, END_SELECT=94, STRING=183, HASHELSEIF=220, SGN=37, + REM=169, TO=188, DEFDBL=73, BYVAL=59, FRIEND=110, LOOP=126, CLASS=64, + DO=84, VARIANT=194, END_WITH=97, DEFBOOL=70, OPTIONAL=147, ADDRESSOF=50, + CONST=66, RSET=173, INTEGER=123, CDEC=9, REMCOMMENT=232, ATTRIBUTE=53, + OUTPUT=153, FOR=111, PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91, + DEFSNG=80, DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145, + FLOATLITERAL=228, HASHELSE=221, BINARY=57, LENB=28, RETURN=172, EXCLAMATIONPOINT=42, + NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=237, WS=236, EMPTY=89, CURRENCY=17, + CCUR=6, MOD=137, WITHEVENTS=200, COLON=40, DEFLNGLNG=77, STEP=181, OPTION_BASE=148, + GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=238, + TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=240, + UNDERSCORE=235, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=234, + MULT=213, SEMICOLON=41, BYTE=61, HEXLITERAL=227, ELSE=87, IF=117, TYPE=190, + AMPERSAND=48, DEFLNGPTR=78, ENUM=99, DEFOBJ=79, IN=120, OPTION=34, DOT=43, + EXIT_DO=104, GUIDLITERAL=239, IS=122, EQV=100, WEND=196, FUNCTION=112, + HASH=44, CASE=63, GEQ=207, GET=113, PUBLIC=162, ON_ERROR=144, EXIT=22, + MIDB=31, END_ENUM=90, GOTO=116, INTDIV=205, LONGPTR=30, WIDTH=198, BEGIN=56, + EXIT_SUB=108, ASSIGN=203, COMMENT=233, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107, + COMMA=39, RANDOM=164, PROPERTY_GET=158, SELECT=175, PRIVATE=157, ERASE=101, + TAB=185, BYREF=60, VERSION=195, NEQ=214, END_TYPE=96, NEW=139, ARRAY=3, + INPUT=121, SINGLE=178, ALIAS=51, SPC=179, LT=211, RESET=170, END_SUB=95, + EVENT=103, READ_WRITE=167, OPTION_COMPARE=150, ME=135, SCALE=36, CDATE=7, + MIDTYPESUFFIX=33, NULL=142, NEWLINE=231, TRUE=189, RPAREN=217, IMP=118, + STRINGLITERAL=225, OCTLITERAL=226, READ=166, DATE=68, LIKE=129, AND=52, + OPTION_PRIVATE_MODULE=151, CLNGLNG=13, PLUS=215, ANY=2, RESUME=171, INT=25, + SHARED=177, EXIT_FUNCTION=106, PSET=35, ACCESS=49, LINE_INPUT=130, ON=143, + OR=152, PARAMARRAY=154, LBOUND=26, R_SQUARE_BRACKET=224, IMPLEMENTS=119, + UNTIL=193, DEBUG=20, DEFCUR=74, CLNGPTR=14, LONGLONG=29, DECLARE=69, DEFDATE=72, + FIX=23, LEN=27, REDIM=168, LEQ=209, DEFSTR=81, LET=127, WHILE=197, CVAR=18, + CLNG=12, FOREIGNNAME=241, OBJECT=242, COLLECTION=243; public static readonly string[] tokenNames = { "", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", @@ -77,32 +74,29 @@ public const int "INPUTB", "INT", "LBOUND", "LEN", "LENB", "LONGLONG", "LONGPTR", "MIDB", "MIDBTYPESUFFIX", "MIDTYPESUFFIX", "OPTION", "PSET", "SCALE", "SGN", "UBOUND", "','", "':'", "';'", "'!'", "'.'", "'#'", "'@'", "'%'", "'$'", "'&'", - "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", - "AS", "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", - "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "CONST", "DATABASE", - "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFCUR", - "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", "DEFOBJ", "DEFSNG", "DEFSTR", - "DEFVAR", "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", - "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", - "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", - "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", - "FALSE", "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", - "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", - "LOAD", "LOCK", "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", - "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", - "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", - "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", - "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", - "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", - "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", - "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", - "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", - "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", - "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", - "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", "LEQ", "'('", - "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", "HASHIF", - "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", + "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPEND", "AS", "BEGIN", + "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", "CASE", "CLASS", + "CLOSE", "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", + "DEFDATE", "DEFDBL", "DEFCUR", "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", + "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DIM", "DO", "DOUBLE", "EACH", + "ELSE", "ELSEIF", "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", + "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", + "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", + "EXIT_SUB", "FALSE", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", + "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "LOCK", + "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", + "LOCK_READ_WRITE", "LSET", "ME", "MID", "MOD", "NEXT", "NEW", "NOT", "NOTHING", + "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", + "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", + "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", + "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", "RAISEEVENT", "READ", + "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", "RETURN", "RSET", "SEEK", + "SELECT", "SET", "SHARED", "SINGLE", "SPC", "STATIC", "STEP", "STOP", + "STRING", "SUB", "TAB", "TEXT", "THEN", "TO", "TRUE", "TYPE", "TYPEOF", + "UNLOCK", "UNTIL", "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", + "WITHEVENTS", "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", + "LEQ", "'('", "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", + "HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER", "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "FOREIGNNAME", "OBJECT", @@ -1576,36 +1570,18 @@ private ExpressionContext expression(int _p) { case DOT: case ALIAS: case ATTRIBUTE: - case APPACTIVATE: case BEGIN: - case BEEP: case BINARY: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: - case DELETESETTING: case ERROR: - case FILECOPY: case INPUT: - case KILL: - case LOAD: case LIB: case ME: case MID: - case MKDIR: - case NAME: case ON: - case RANDOMIZE: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case TAB: case TEXT: - case TIME: - case UNLOAD: case VERSION: case IDENTIFIER: case FOREIGNNAME: @@ -1880,7 +1856,7 @@ private ExpressionContext expression(int _p) { State = 262; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -2178,7 +2154,7 @@ public NumberLiteralContext numberLiteral() { { State = 326; _la = _input.La(1); - if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { + if ( !(((((_la - 226)) & ~0x3f) == 0 && ((1L << (_la - 226)) & ((1L << (OCTLITERAL - 226)) | (1L << (HEXLITERAL - 226)) | (1L << (FLOATLITERAL - 226)) | (1L << (INTEGERLITERAL - 226)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -2596,35 +2572,17 @@ private LExpressionContext lExpression(int _p) { case UBOUND: case ALIAS: case ATTRIBUTE: - case APPACTIVATE: case BEGIN: - case BEEP: case BINARY: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: - case DELETESETTING: case ERROR: - case FILECOPY: case INPUT: - case KILL: - case LOAD: case LIB: case MID: - case MKDIR: - case NAME: case ON: - case RANDOMIZE: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case TAB: case TEXT: - case TIME: - case UNLOAD: case VERSION: case IDENTIFIER: case FOREIGNNAME: @@ -3149,7 +3107,7 @@ public PositionalOrNamedArgumentListContext positionalOrNamedArgumentList() { { State = 448; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (EMPTY - 66)) | (1L << (ERROR - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (INPUT - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TEXT - 201)) | (1L << (TIME - 201)) | (1L << (TRUE - 201)) | (1L << (TYPEOF - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (LPAREN - 201)) | (1L << (MINUS - 201)) | (1L << (STRINGLITERAL - 201)) | (1L << (OCTLITERAL - 201)) | (1L << (HEXLITERAL - 201)) | (1L << (FLOATLITERAL - 201)) | (1L << (INTEGERLITERAL - 201)) | (1L << (DATELITERAL - 201)) | (1L << (IDENTIFIER - 201)) | (1L << (FOREIGNNAME - 201)) | (1L << (OBJECT - 201)) | (1L << (COLLECTION - 201)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (EMPTY - 64)) | (1L << (ERROR - 64)) | (1L << (FALSE - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (VERSION - 195)) | (1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (FLOATLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (IDENTIFIER - 195)) | (1L << (FOREIGNNAME - 195)) | (1L << (OBJECT - 195)) | (1L << (COLLECTION - 195)))) != 0)) { { State = 447; positionalArgument(); } @@ -3195,7 +3153,7 @@ public PositionalOrNamedArgumentListContext positionalOrNamedArgumentList() { { State = 464; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (EMPTY - 66)) | (1L << (ERROR - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (INPUT - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TEXT - 201)) | (1L << (TIME - 201)) | (1L << (TRUE - 201)) | (1L << (TYPEOF - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (LPAREN - 201)) | (1L << (MINUS - 201)) | (1L << (STRINGLITERAL - 201)) | (1L << (OCTLITERAL - 201)) | (1L << (HEXLITERAL - 201)) | (1L << (FLOATLITERAL - 201)) | (1L << (INTEGERLITERAL - 201)) | (1L << (DATELITERAL - 201)) | (1L << (IDENTIFIER - 201)) | (1L << (FOREIGNNAME - 201)) | (1L << (OBJECT - 201)) | (1L << (COLLECTION - 201)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (EMPTY - 64)) | (1L << (ERROR - 64)) | (1L << (FALSE - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (VERSION - 195)) | (1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (FLOATLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (IDENTIFIER - 195)) | (1L << (FOREIGNNAME - 195)) | (1L << (OBJECT - 195)) | (1L << (COLLECTION - 195)))) != 0)) { { State = 463; positionalArgument(); } @@ -3572,45 +3530,27 @@ public ArgumentExpressionContext argumentExpression() { case DOT: case ALIAS: case ATTRIBUTE: - case APPACTIVATE: case BEGIN: - case BEEP: case BINARY: case BYVAL: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: - case DELETESETTING: case EMPTY: case ERROR: case FALSE: - case FILECOPY: case INPUT: - case KILL: - case LOAD: case LIB: case ME: case MID: - case MKDIR: - case NAME: case NEW: case NOT: case NOTHING: case NULL: case ON: - case RANDOMIZE: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case TAB: case TEXT: - case TIME: case TRUE: case TYPEOF: - case UNLOAD: case VERSION: case LPAREN: case MINUS: @@ -4423,7 +4363,7 @@ public StatementKeywordContext statementKeyword() { { State = 559; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXIT) | (1L << OPTION) | (1L << ACCESS) | (1L << APPEND) | (1L << BINARY))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 132)) & ~0x3f) == 0 && ((1L << (_la - 132)) & ((1L << (LOCK - 132)) | (1L << (LOOP - 132)) | (1L << (LET - 132)) | (1L << (LINE_INPUT - 132)) | (1L << (LOCK_READ - 132)) | (1L << (LOCK_WRITE - 132)) | (1L << (LOCK_READ_WRITE - 132)) | (1L << (LSET - 132)) | (1L << (NEXT - 132)) | (1L << (ON - 132)) | (1L << (ON_ERROR - 132)) | (1L << (OPEN - 132)) | (1L << (OUTPUT - 132)) | (1L << (PRINT - 132)) | (1L << (PRIVATE - 132)) | (1L << (PUBLIC - 132)) | (1L << (PUT - 132)) | (1L << (RANDOM - 132)) | (1L << (RAISEEVENT - 132)) | (1L << (READ - 132)) | (1L << (READ_WRITE - 132)) | (1L << (REDIM - 132)) | (1L << (RESET - 132)) | (1L << (RESUME - 132)) | (1L << (RETURN - 132)) | (1L << (RSET - 132)) | (1L << (SEEK - 132)) | (1L << (SELECT - 132)) | (1L << (SET - 132)) | (1L << (SHARED - 132)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (STATIC - 196)) | (1L << (STEP - 196)) | (1L << (STOP - 196)) | (1L << (SUB - 196)) | (1L << (TYPE - 196)) | (1L << (UNLOCK - 196)) | (1L << (WEND - 196)) | (1L << (WHILE - 196)) | (1L << (WIDTH - 196)) | (1L << (WITH - 196)) | (1L << (WRITE - 196)))) != 0)) ) { + if ( !(((((_la - 22)) & ~0x3f) == 0 && ((1L << (_la - 22)) & ((1L << (EXIT - 22)) | (1L << (OPTION - 22)) | (1L << (ACCESS - 22)) | (1L << (APPEND - 22)) | (1L << (BINARY - 22)) | (1L << (CALL - 22)) | (1L << (CASE - 22)) | (1L << (CLOSE - 22)) | (1L << (CONST - 22)) | (1L << (DECLARE - 22)) | (1L << (DEFBOOL - 22)) | (1L << (DEFBYTE - 22)) | (1L << (DEFDATE - 22)) | (1L << (DEFDBL - 22)) | (1L << (DEFCUR - 22)) | (1L << (DEFINT - 22)) | (1L << (DEFLNG - 22)) | (1L << (DEFLNGLNG - 22)) | (1L << (DEFLNGPTR - 22)) | (1L << (DEFOBJ - 22)) | (1L << (DEFSNG - 22)) | (1L << (DEFSTR - 22)) | (1L << (DEFVAR - 22)) | (1L << (DIM - 22)) | (1L << (DO - 22)))) != 0) || ((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & ((1L << (ELSE - 87)) | (1L << (ELSEIF - 87)) | (1L << (END_IF - 87)) | (1L << (END_SELECT - 87)) | (1L << (END_WITH - 87)) | (1L << (END - 87)) | (1L << (ENUM - 87)) | (1L << (ERASE - 87)) | (1L << (ERROR - 87)) | (1L << (EVENT - 87)) | (1L << (EXIT_DO - 87)) | (1L << (EXIT_FOR - 87)) | (1L << (EXIT_FUNCTION - 87)) | (1L << (EXIT_PROPERTY - 87)) | (1L << (EXIT_SUB - 87)) | (1L << (FRIEND - 87)) | (1L << (FOR - 87)) | (1L << (FUNCTION - 87)) | (1L << (GET - 87)) | (1L << (GLOBAL - 87)) | (1L << (GOSUB - 87)) | (1L << (GOTO - 87)) | (1L << (IF - 87)) | (1L << (IMPLEMENTS - 87)) | (1L << (INPUT - 87)) | (1L << (LOCK - 87)) | (1L << (LOOP - 87)) | (1L << (LET - 87)) | (1L << (LINE_INPUT - 87)) | (1L << (LOCK_READ - 87)) | (1L << (LOCK_WRITE - 87)) | (1L << (LOCK_READ_WRITE - 87)) | (1L << (LSET - 87)) | (1L << (NEXT - 87)) | (1L << (ON - 87)) | (1L << (ON_ERROR - 87)) | (1L << (OPEN - 87)))) != 0) || ((((_la - 153)) & ~0x3f) == 0 && ((1L << (_la - 153)) & ((1L << (OUTPUT - 153)) | (1L << (PRINT - 153)) | (1L << (PRIVATE - 153)) | (1L << (PUBLIC - 153)) | (1L << (PUT - 153)) | (1L << (RANDOM - 153)) | (1L << (RAISEEVENT - 153)) | (1L << (READ - 153)) | (1L << (READ_WRITE - 153)) | (1L << (REDIM - 153)) | (1L << (RESET - 153)) | (1L << (RESUME - 153)) | (1L << (RETURN - 153)) | (1L << (RSET - 153)) | (1L << (SEEK - 153)) | (1L << (SELECT - 153)) | (1L << (SET - 153)) | (1L << (SHARED - 153)) | (1L << (STATIC - 153)) | (1L << (STEP - 153)) | (1L << (STOP - 153)) | (1L << (SUB - 153)) | (1L << (TYPE - 153)) | (1L << (UNLOCK - 153)) | (1L << (WEND - 153)) | (1L << (WHILE - 153)) | (1L << (WIDTH - 153)) | (1L << (WITH - 153)) | (1L << (WRITE - 153)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -4534,7 +4474,7 @@ public MarkerKeywordContext markerKeyword() { { State = 563; _la = _input.La(1); - if ( !(((((_la - 2)) & ~0x3f) == 0 && ((1L << (_la - 2)) & ((1L << (ANY - 2)) | (1L << (AS - 2)) | (1L << (BYVAL - 2)) | (1L << (BYREF - 2)) | (1L << (CASE - 2)))) != 0) || ((((_la - 91)) & ~0x3f) == 0 && ((1L << (_la - 91)) & ((1L << (EACH - 91)) | (1L << (ELSE - 91)) | (1L << (IN - 91)) | (1L << (NEW - 91)))) != 0) || ((((_la - 157)) & ~0x3f) == 0 && ((1L << (_la - 157)) & ((1L << (OPTIONAL - 157)) | (1L << (PARAMARRAY - 157)) | (1L << (PRESERVE - 157)) | (1L << (SHARED - 157)) | (1L << (SPC - 157)) | (1L << (TAB - 157)) | (1L << (THEN - 157)) | (1L << (TO - 157)) | (1L << (UNTIL - 157)) | (1L << (WITHEVENTS - 157)) | (1L << (WRITE - 157)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ANY) | (1L << AS) | (1L << BYVAL) | (1L << BYREF) | (1L << CASE))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (EACH - 86)) | (1L << (ELSE - 86)) | (1L << (IN - 86)) | (1L << (NEW - 86)) | (1L << (OPTIONAL - 86)))) != 0) || ((((_la - 154)) & ~0x3f) == 0 && ((1L << (_la - 154)) & ((1L << (PARAMARRAY - 154)) | (1L << (PRESERVE - 154)) | (1L << (SHARED - 154)) | (1L << (SPC - 154)) | (1L << (TAB - 154)) | (1L << (THEN - 154)) | (1L << (TO - 154)) | (1L << (UNTIL - 154)) | (1L << (WITHEVENTS - 154)) | (1L << (WRITE - 154)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -4594,7 +4534,7 @@ public OperatorIdentifierContext operatorIdentifier() { { State = 565; _la = _input.La(1); - if ( !(_la==ADDRESSOF || _la==AND || ((((_la - 105)) & ~0x3f) == 0 && ((1L << (_la - 105)) & ((1L << (EQV - 105)) | (1L << (IMP - 105)) | (1L << (IS - 105)) | (1L << (LIKE - 105)) | (1L << (MOD - 105)) | (1L << (NEW - 105)) | (1L << (NOT - 105)) | (1L << (OR - 105)))) != 0) || _la==TYPEOF || _la==XOR) ) { + if ( !(_la==ADDRESSOF || _la==AND || ((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & ((1L << (EQV - 100)) | (1L << (IMP - 100)) | (1L << (IS - 100)) | (1L << (LIKE - 100)) | (1L << (MOD - 100)) | (1L << (NEW - 100)) | (1L << (NOT - 100)) | (1L << (OR - 100)))) != 0) || _la==TYPEOF || _la==XOR) ) { _errHandler.RecoverInline(this); } Consume(); @@ -4871,7 +4811,7 @@ public ReservedTypeIdentifierContext reservedTypeIdentifier() { { State = 575; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (DATE - 68)) | (1L << (DOUBLE - 68)) | (1L << (INTEGER - 68)) | (1L << (LONG - 68)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SINGLE - 178)) | (1L << (STRING - 178)) | (1L << (VARIANT - 178)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -4889,33 +4829,15 @@ public ReservedTypeIdentifierContext reservedTypeIdentifier() { } public partial class UncategorizedKeywordContext : ParserRuleContext { - public ITerminalNode APPACTIVATE() { return GetToken(VBAExpressionParser.APPACTIVATE, 0); } - public ITerminalNode TIME() { return GetToken(VBAExpressionParser.TIME, 0); } - public ITerminalNode RMDIR() { return GetToken(VBAExpressionParser.RMDIR, 0); } - public ITerminalNode LOAD() { return GetToken(VBAExpressionParser.LOAD, 0); } - public ITerminalNode CHDIR() { return GetToken(VBAExpressionParser.CHDIR, 0); } - public ITerminalNode UNLOAD() { return GetToken(VBAExpressionParser.UNLOAD, 0); } - public ITerminalNode BEEP() { return GetToken(VBAExpressionParser.BEEP, 0); } - public ITerminalNode NAME() { return GetToken(VBAExpressionParser.NAME, 0); } - public ITerminalNode DELETESETTING() { return GetToken(VBAExpressionParser.DELETESETTING, 0); } - public ITerminalNode BEGIN() { return GetToken(VBAExpressionParser.BEGIN, 0); } - public ITerminalNode KILL() { return GetToken(VBAExpressionParser.KILL, 0); } - public ITerminalNode CHDRIVE() { return GetToken(VBAExpressionParser.CHDRIVE, 0); } + public ITerminalNode TAB() { return GetToken(VBAExpressionParser.TAB, 0); } + public ITerminalNode LIB() { return GetToken(VBAExpressionParser.LIB, 0); } public ITerminalNode VERSION() { return GetToken(VBAExpressionParser.VERSION, 0); } public ITerminalNode ON() { return GetToken(VBAExpressionParser.ON, 0); } public ITerminalNode COLLECTION() { return GetToken(VBAExpressionParser.COLLECTION, 0); } - public ITerminalNode SETATTR() { return GetToken(VBAExpressionParser.SETATTR, 0); } - public ITerminalNode SAVEPICTURE() { return GetToken(VBAExpressionParser.SAVEPICTURE, 0); } - public ITerminalNode FILECOPY() { return GetToken(VBAExpressionParser.FILECOPY, 0); } - public ITerminalNode TAB() { return GetToken(VBAExpressionParser.TAB, 0); } - public ITerminalNode LIB() { return GetToken(VBAExpressionParser.LIB, 0); } - public ITerminalNode SAVESETTING() { return GetToken(VBAExpressionParser.SAVESETTING, 0); } - public ITerminalNode SENDKEYS() { return GetToken(VBAExpressionParser.SENDKEYS, 0); } public ITerminalNode ALIAS() { return GetToken(VBAExpressionParser.ALIAS, 0); } public ITerminalNode ATTRIBUTE() { return GetToken(VBAExpressionParser.ATTRIBUTE, 0); } + public ITerminalNode BEGIN() { return GetToken(VBAExpressionParser.BEGIN, 0); } public ITerminalNode CLASS() { return GetToken(VBAExpressionParser.CLASS, 0); } - public ITerminalNode RANDOMIZE() { return GetToken(VBAExpressionParser.RANDOMIZE, 0); } - public ITerminalNode MKDIR() { return GetToken(VBAExpressionParser.MKDIR, 0); } public UncategorizedKeywordContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -4946,7 +4868,7 @@ public UncategorizedKeywordContext uncategorizedKeyword() { { State = 577; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ALIAS) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << BEGIN) | (1L << BEEP))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DELETESETTING - 66)) | (1L << (FILECOPY - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LIB - 130)) | (1L << (MKDIR - 130)) | (1L << (NAME - 130)) | (1L << (ON - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 201)) & ~0x3f) == 0 && ((1L << (_la - 201)) & ((1L << (TAB - 201)) | (1L << (TIME - 201)) | (1L << (UNLOAD - 201)) | (1L << (VERSION - 201)) | (1L << (COLLECTION - 201)))) != 0)) ) { + if ( !(((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & ((1L << (ALIAS - 51)) | (1L << (ATTRIBUTE - 51)) | (1L << (BEGIN - 51)) | (1L << (CLASS - 51)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)))) != 0) || _la==VERSION || _la==COLLECTION) ) { _errHandler.RecoverInline(this); } Consume(); @@ -5307,7 +5229,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x107\x256\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x256\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -5367,222 +5289,219 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { "\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2"+ "&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2"+ "\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2"+ - "`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2\x2\x12\x5\x2,,.\x32\xEC\xEC\x5\x2"+ - "==II\xCC\xCC\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82"+ - "\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2\xF6\xF9(\x2\x18\x18$$\x33\x33\x39"+ - "\x39==\x42\x43GHKXZ[^_\x63\x63\x65\x65hjlsv}\x7F\x7F\x81\x81\x86\x86\x88"+ - "\x89\x8C\x90\x96\x96\x9B\x9C\x9E\x9E\xA5\xA5\xA8\xA9\xAE\xB0\xB2\xB5\xB7"+ - "\xB9\xBB\xBB\xBE\xBF\xC1\xC1\xC3\xC3\xC6\xC8\xCA\xCA\xD1\xD1\xD4\xD4\xD8"+ - "\xDB\xDD\xDD\x12\x2\x4\x4::?@\x43\x43]^\x80\x80\x97\x97\x9F\x9F\xA6\xA7"+ - "\xC3\xC3\xC5\xC5\xCB\xCB\xCD\xCD\xCF\xCF\xD5\xD5\xDC\xDD\r\x2\x34\x34"+ - "\x36\x36kk~~\x82\x82\x8B\x8B\x94\x94\x97\x98\xA4\xA4\xD2\xD2\xDE\xDE\f"+ - "\x2\x3\x3\x6\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x92\x92\t\x2"+ - "\x5\x5\r\r\x1A\x1A\x1C\x1C&&((\x81\x81\r\x2\x13\x13\x1F >>\x41\x41JJ\\"+ - "\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6\x17\x2\x35\x35\x37\x38;<\x44"+ - "\x46YYuu\x84\x85\x8A\x8A\x93\x93\x95\x95\x9B\x9B\xB1\xB1\xBA\xBA\xBC\xBD"+ - "\xC0\xC0\xC2\xC2\xCB\xCB\xCE\xCE\xD3\xD3\xD7\xD7\x107\x107\x4\x2tt\xD0"+ - "\xD0\x4\x2``\x9A\x9A\x4\x2\x100\x100\x102\x102\x29E\x2n\x3\x2\x2\x2\x4"+ - "s\x3\x2\x2\x2\x6w\x3\x2\x2\x2\b{\x3\x2\x2\x2\n}\x3\x2\x2\x2\f\x7F\x3\x2"+ - "\x2\x2\xE\x8A\x3\x2\x2\x2\x10\x8C\x3\x2\x2\x2\x12\x96\x3\x2\x2\x2\x14"+ - "\x98\x3\x2\x2\x2\x16\x9A\x3\x2\x2\x2\x18\xB1\x3\x2\x2\x2\x1A\xCC\x3\x2"+ - "\x2\x2\x1C\x146\x3\x2\x2\x2\x1E\x148\x3\x2\x2\x2 \x14A\x3\x2\x2\x2\"\x154"+ - "\x3\x2\x2\x2$\x15C\x3\x2\x2\x2&\x164\x3\x2\x2\x2(\x19C\x3\x2\x2\x2*\x19E"+ - "\x3\x2\x2\x2,\x1BD\x3\x2\x2\x2.\x1BF\x3\x2\x2\x2\x30\x1E1\x3\x2\x2\x2"+ - "\x32\x1E3\x3\x2\x2\x2\x34\x1E5\x3\x2\x2\x2\x36\x1E7\x3\x2\x2\x2\x38\x1F5"+ - "\x3\x2\x2\x2:\x205\x3\x2\x2\x2<\x207\x3\x2\x2\x2>\x209\x3\x2\x2\x2@\x20D"+ - "\x3\x2\x2\x2\x42\x20F\x3\x2\x2\x2\x44\x212\x3\x2\x2\x2\x46\x215\x3\x2"+ - "\x2\x2H\x219\x3\x2\x2\x2J\x21D\x3\x2\x2\x2L\x21F\x3\x2\x2\x2N\x225\x3"+ - "\x2\x2\x2P\x22F\x3\x2\x2\x2R\x231\x3\x2\x2\x2T\x233\x3\x2\x2\x2V\x235"+ - "\x3\x2\x2\x2X\x237\x3\x2\x2\x2Z\x23B\x3\x2\x2\x2\\\x23D\x3\x2\x2\x2^\x23F"+ - "\x3\x2\x2\x2`\x241\x3\x2\x2\x2\x62\x243\x3\x2\x2\x2\x64\x248\x3\x2\x2"+ - "\x2\x66\x24A\x3\x2\x2\x2h\x24C\x3\x2\x2\x2j\x24E\x3\x2\x2\x2l\x251\x3"+ - "\x2\x2\x2no\x5\x1A\xE\x2op\a\x2\x2\x3p\x3\x3\x2\x2\x2qt\x5\x6\x4\x2rt"+ - "\x5\b\x5\x2sq\x3\x2\x2\x2sr\x3\x2\x2\x2t\x5\x3\x2\x2\x2ux\x5\xE\b\x2v"+ - "x\x5\x10\t\x2wu\x3\x2\x2\x2wv\x3\x2\x2\x2x\a\x3\x2\x2\x2y|\x5\n\x6\x2"+ - "z|\x5\f\a\x2{y\x3\x2\x2\x2{z\x3\x2\x2\x2|\t\x3\x2\x2\x2}~\x5P)\x2~\v\x3"+ - "\x2\x2\x2\x7F\x80\x5P)\x2\x80\x81\x5\x14\v\x2\x81\r\x3\x2\x2\x2\x82\x8B"+ - "\a\x101\x2\x2\x83\x8B\a\x105\x2\x2\x84\x8B\x5\\/\x2\x85\x8B\x5^\x30\x2"+ - "\x86\x8B\x5\x16\f\x2\x87\x8B\a\x106\x2\x2\x88\x8B\x5\x62\x32\x2\x89\x8B"+ - "\am\x2\x2\x8A\x82\x3\x2\x2\x2\x8A\x83\x3\x2\x2\x2\x8A\x84\x3\x2\x2\x2"+ - "\x8A\x85\x3\x2\x2\x2\x8A\x86\x3\x2\x2\x2\x8A\x87\x3\x2\x2\x2\x8A\x88\x3"+ - "\x2\x2\x2\x8A\x89\x3\x2\x2\x2\x8B\xF\x3\x2\x2\x2\x8C\x8D\x5\x12\n\x2\x8D"+ - "\x8E\x5\x14\v\x2\x8E\x11\x3\x2\x2\x2\x8F\x97\a\x101\x2\x2\x90\x97\x5\\"+ - "/\x2\x91\x97\x5^\x30\x2\x92\x97\x5\x16\f\x2\x93\x97\a\x106\x2\x2\x94\x97"+ - "\x5\x62\x32\x2\x95\x97\am\x2\x2\x96\x8F\x3\x2\x2\x2\x96\x90\x3\x2\x2\x2"+ - "\x96\x91\x3\x2\x2\x2\x96\x92\x3\x2\x2\x2\x96\x93\x3\x2\x2\x2\x96\x94\x3"+ - "\x2\x2\x2\x96\x95\x3\x2\x2\x2\x97\x13\x3\x2\x2\x2\x98\x99\t\x2\x2\x2\x99"+ - "\x15\x3\x2\x2\x2\x9A\x9B\t\x3\x2\x2\x9B\x17\x3\x2\x2\x2\x9C\xB2\x5`\x31"+ - "\x2\x9D\x9F\a\xF3\x2\x2\x9E\xA0\x5l\x37\x2\x9F\x9E\x3\x2\x2\x2\x9F\xA0"+ - "\x3\x2\x2\x2\xA0\xA1\x3\x2\x2\x2\xA1\xA3\x5`\x31\x2\xA2\xA4\x5l\x37\x2"+ - "\xA3\xA2\x3\x2\x2\x2\xA3\xA4\x3\x2\x2\x2\xA4\xA5\x3\x2\x2\x2\xA5\xA6\a"+ - "\xF4\x2\x2\xA6\xB2\x3\x2\x2\x2\xA7\xB2\a\x106\x2\x2\xA8\xAA\a\xF3\x2\x2"+ - "\xA9\xAB\x5l\x37\x2\xAA\xA9\x3\x2\x2\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAC\x3"+ - "\x2\x2\x2\xAC\xAE\a\x106\x2\x2\xAD\xAF\x5l\x37\x2\xAE\xAD\x3\x2\x2\x2"+ - "\xAE\xAF\x3\x2\x2\x2\xAF\xB0\x3\x2\x2\x2\xB0\xB2\a\xF4\x2\x2\xB1\x9C\x3"+ - "\x2\x2\x2\xB1\x9D\x3\x2\x2\x2\xB1\xA7\x3\x2\x2\x2\xB1\xA8\x3\x2\x2\x2"+ - "\xB2\x19\x3\x2\x2\x2\xB3\xB4\b\xE\x1\x2\xB4\xB6\a\xE8\x2\x2\xB5\xB7\x5"+ - "l\x37\x2\xB6\xB5\x3\x2\x2\x2\xB6\xB7\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2\xB8"+ - "\xCD\x5\x1A\xE\x10\xB9\xBB\a\x98\x2\x2\xBA\xBC\x5l\x37\x2\xBB\xBA\x3\x2"+ - "\x2\x2\xBB\xBC\x3\x2\x2\x2\xBC\xBD\x3\x2\x2\x2\xBD\xCD\x5\x1A\xE\t\xBE"+ - "\xCD\x5&\x14\x2\xBF\xC1\a\xE6\x2\x2\xC0\xC2\x5l\x37\x2\xC1\xC0\x3\x2\x2"+ - "\x2\xC1\xC2\x3\x2\x2\x2\xC2\xC3\x3\x2\x2\x2\xC3\xC5\x5\x1A\xE\x2\xC4\xC6"+ - "\x5l\x37\x2\xC5\xC4\x3\x2\x2\x2\xC5\xC6\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2"+ - "\xC7\xC8\a\xED\x2\x2\xC8\xCD\x3\x2\x2\x2\xC9\xCD\x5\"\x12\x2\xCA\xCD\x5"+ - "$\x13\x2\xCB\xCD\x5\x1C\xF\x2\xCC\xB3\x3\x2\x2\x2\xCC\xB9\x3\x2\x2\x2"+ - "\xCC\xBE\x3\x2\x2\x2\xCC\xBF\x3\x2\x2\x2\xCC\xC9\x3\x2\x2\x2\xCC\xCA\x3"+ - "\x2\x2\x2\xCC\xCB\x3\x2\x2\x2\xCD\x13C\x3\x2\x2\x2\xCE\xD0\f\x11\x2\x2"+ - "\xCF\xD1\x5l\x37\x2\xD0\xCF\x3\x2\x2\x2\xD0\xD1\x3\x2\x2\x2\xD1\xD2\x3"+ - "\x2\x2\x2\xD2\xD4\a\xEC\x2\x2\xD3\xD5\x5l\x37\x2\xD4\xD3\x3\x2\x2\x2\xD4"+ - "\xD5\x3\x2\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\x13B\x5\x1A\xE\x12\xD7\xD9\f"+ - "\xF\x2\x2\xD8\xDA\x5l\x37\x2\xD9\xD8\x3\x2\x2\x2\xD9\xDA\x3\x2\x2\x2\xDA"+ - "\xDB\x3\x2\x2\x2\xDB\xDD\t\x4\x2\x2\xDC\xDE\x5l\x37\x2\xDD\xDC\x3\x2\x2"+ - "\x2\xDD\xDE\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\x13B\x5\x1A\xE\x10\xE0"+ - "\xE2\f\xE\x2\x2\xE1\xE3\x5l\x37\x2\xE2\xE1\x3\x2\x2\x2\xE2\xE3\x3\x2\x2"+ - "\x2\xE3\xE4\x3\x2\x2\x2\xE4\xE6\a\xE1\x2\x2\xE5\xE7\x5l\x37\x2\xE6\xE5"+ - "\x3\x2\x2\x2\xE6\xE7\x3\x2\x2\x2\xE7\xE8\x3\x2\x2\x2\xE8\x13B\x5\x1A\xE"+ - "\xF\xE9\xEB\f\r\x2\x2\xEA\xEC\x5l\x37\x2\xEB\xEA\x3\x2\x2\x2\xEB\xEC\x3"+ - "\x2\x2\x2\xEC\xED\x3\x2\x2\x2\xED\xEF\a\x94\x2\x2\xEE\xF0\x5l\x37\x2\xEF"+ - "\xEE\x3\x2\x2\x2\xEF\xF0\x3\x2\x2\x2\xF0\xF1\x3\x2\x2\x2\xF1\x13B\x5\x1A"+ - "\xE\xE\xF2\xF4\f\f\x2\x2\xF3\xF5\x5l\x37\x2\xF4\xF3\x3\x2\x2\x2\xF4\xF5"+ - "\x3\x2\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF8\t\x5\x2\x2\xF7\xF9\x5l\x37\x2"+ - "\xF8\xF7\x3\x2\x2\x2\xF8\xF9\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x13B"+ - "\x5\x1A\xE\r\xFB\xFD\f\v\x2\x2\xFC\xFE\x5l\x37\x2\xFD\xFC\x3\x2\x2\x2"+ - "\xFD\xFE\x3\x2\x2\x2\xFE\xFF\x3\x2\x2\x2\xFF\x101\a\x32\x2\x2\x100\x102"+ - "\x5l\x37\x2\x101\x100\x3\x2\x2\x2\x101\x102\x3\x2\x2\x2\x102\x103\x3\x2"+ - "\x2\x2\x103\x13B\x5\x1A\xE\f\x104\x106\f\n\x2\x2\x105\x107\x5l\x37\x2"+ - "\x106\x105\x3\x2\x2\x2\x106\x107\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108"+ - "\x10A\t\x6\x2\x2\x109\x10B\x5l\x37\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B"+ - "\x3\x2\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x13B\x5\x1A\xE\v\x10D\x10F\f\b"+ - "\x2\x2\x10E\x110\x5l\x37\x2\x10F\x10E\x3\x2\x2\x2\x10F\x110\x3\x2\x2\x2"+ - "\x110\x111\x3\x2\x2\x2\x111\x113\a\x36\x2\x2\x112\x114\x5l\x37\x2\x113"+ - "\x112\x3\x2\x2\x2\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x13B"+ - "\x5\x1A\xE\t\x116\x118\f\a\x2\x2\x117\x119\x5l\x37\x2\x118\x117\x3\x2"+ - "\x2\x2\x118\x119\x3\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11C\a\xA4\x2"+ - "\x2\x11B\x11D\x5l\x37\x2\x11C\x11B\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D"+ - "\x11E\x3\x2\x2\x2\x11E\x13B\x5\x1A\xE\b\x11F\x121\f\x6\x2\x2\x120\x122"+ - "\x5l\x37\x2\x121\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2"+ - "\x2\x2\x123\x125\a\xDE\x2\x2\x124\x126\x5l\x37\x2\x125\x124\x3\x2\x2\x2"+ - "\x125\x126\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x13B\x5\x1A\xE\a\x128"+ - "\x12A\f\x5\x2\x2\x129\x12B\x5l\x37\x2\x12A\x129\x3\x2\x2\x2\x12A\x12B"+ - "\x3\x2\x2\x2\x12B\x12C\x3\x2\x2\x2\x12C\x12E\ak\x2\x2\x12D\x12F\x5l\x37"+ - "\x2\x12E\x12D\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x130\x3\x2\x2\x2"+ - "\x130\x13B\x5\x1A\xE\x6\x131\x133\f\x4\x2\x2\x132\x134\x5l\x37\x2\x133"+ - "\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x137"+ - "\a~\x2\x2\x136\x138\x5l\x37\x2\x137\x136\x3\x2\x2\x2\x137\x138\x3\x2\x2"+ - "\x2\x138\x139\x3\x2\x2\x2\x139\x13B\x5\x1A\xE\x5\x13A\xCE\x3\x2\x2\x2"+ - "\x13A\xD7\x3\x2\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xE9\x3\x2\x2\x2\x13A\xF2"+ - "\x3\x2\x2\x2\x13A\xFB\x3\x2\x2\x2\x13A\x104\x3\x2\x2\x2\x13A\x10D\x3\x2"+ - "\x2\x2\x13A\x116\x3\x2\x2\x2\x13A\x11F\x3\x2\x2\x2\x13A\x128\x3\x2\x2"+ - "\x2\x13A\x131\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2"+ - "\x13C\x13D\x3\x2\x2\x2\x13D\x1B\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F"+ - "\x147\x5\x1E\x10\x2\x140\x147\a\xFA\x2\x2\x141\x147\a\xF5\x2\x2\x142\x144"+ - "\x5\x64\x33\x2\x143\x145\x5\x14\v\x2\x144\x143\x3\x2\x2\x2\x144\x145\x3"+ - "\x2\x2\x2\x145\x147\x3\x2\x2\x2\x146\x13F\x3\x2\x2\x2\x146\x140\x3\x2"+ - "\x2\x2\x146\x141\x3\x2\x2\x2\x146\x142\x3\x2\x2\x2\x147\x1D\x3\x2\x2\x2"+ - "\x148\x149\t\a\x2\x2\x149\x1F\x3\x2\x2\x2\x14A\x14C\a\xE6\x2\x2\x14B\x14D"+ - "\x5l\x37\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2"+ - "\x2\x2\x14E\x150\x5\x1A\xE\x2\x14F\x151\x5l\x37\x2\x150\x14F\x3\x2\x2"+ - "\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\a\xED\x2\x2"+ - "\x153!\x3\x2\x2\x2\x154\x155\a\xD2\x2\x2\x155\x156\x5l\x37\x2\x156\x157"+ - "\x5\x1A\xE\x2\x157\x158\x5l\x37\x2\x158\x159\a\x82\x2\x2\x159\x15A\x5"+ - "l\x37\x2\x15A\x15B\x5H%\x2\x15B#\x3\x2\x2\x2\x15C\x15D\a\x97\x2\x2\x15D"+ - "\x15E\x5l\x37\x2\x15E\x15F\x5H%\x2\x15F%\x3\x2\x2\x2\x160\x161\b\x14\x1"+ - "\x2\x161\x165\x5> \x2\x162\x165\x5<\x1F\x2\x163\x165\x5@!\x2\x164\x160"+ - "\x3\x2\x2\x2\x164\x162\x3\x2\x2\x2\x164\x163\x3\x2\x2\x2\x165\x18D\x3"+ - "\x2\x2\x2\x166\x168\f\v\x2\x2\x167\x169\x5l\x37\x2\x168\x167\x3\x2\x2"+ - "\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3\x2\x2\x2\x16A\x16C\a\xE6\x2\x2"+ - "\x16B\x16D\x5l\x37\x2\x16C\x16B\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D"+ - "\x16F\x3\x2\x2\x2\x16E\x170\x5.\x18\x2\x16F\x16E\x3\x2\x2\x2\x16F\x170"+ - "\x3\x2\x2\x2\x170\x172\x3\x2\x2\x2\x171\x173\x5l\x37\x2\x172\x171\x3\x2"+ - "\x2\x2\x172\x173\x3\x2\x2\x2\x173\x174\x3\x2\x2\x2\x174\x18C\a\xED\x2"+ - "\x2\x175\x176\f\n\x2\x2\x176\x177\a-\x2\x2\x177\x18C\x5\x4\x3\x2\x178"+ - "\x179\f\t\x2\x2\x179\x17B\a\x102\x2\x2\x17A\x17C\x5l\x37\x2\x17B\x17A"+ - "\x3\x2\x2\x2\x17B\x17C\x3\x2\x2\x2\x17C\x17D\x3\x2\x2\x2\x17D\x17E\a-"+ - "\x2\x2\x17E\x18C\x5\x4\x3\x2\x17F\x180\f\b\x2\x2\x180\x181\a,\x2\x2\x181"+ - "\x18C\x5\x4\x3\x2\x182\x183\f\a\x2\x2\x183\x184\a\x102\x2\x2\x184\x185"+ - "\a,\x2\x2\x185\x18C\x5\x4\x3\x2\x186\x187\f\x6\x2\x2\x187\x188\a\x102"+ - "\x2\x2\x188\x189\a,\x2\x2\x189\x18A\a\x102\x2\x2\x18A\x18C\x5\x4\x3\x2"+ - "\x18B\x166\x3\x2\x2\x2\x18B\x175\x3\x2\x2\x2\x18B\x178\x3\x2\x2\x2\x18B"+ - "\x17F\x3\x2\x2\x2\x18B\x182\x3\x2\x2\x2\x18B\x186\x3\x2\x2\x2\x18C\x18F"+ - "\x3\x2\x2\x2\x18D\x18B\x3\x2\x2\x2\x18D\x18E\x3\x2\x2\x2\x18E\'\x3\x2"+ - "\x2\x2\x18F\x18D\x3\x2\x2\x2\x190\x191\x5&\x14\x2\x191\x192\a-\x2\x2\x192"+ - "\x193\x5\x4\x3\x2\x193\x19D\x3\x2\x2\x2\x194\x195\x5&\x14\x2\x195\x197"+ - "\a\x102\x2\x2\x196\x198\x5l\x37\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3"+ - "\x2\x2\x2\x198\x199\x3\x2\x2\x2\x199\x19A\a-\x2\x2\x19A\x19B\x5\x4\x3"+ - "\x2\x19B\x19D\x3\x2\x2\x2\x19C\x190\x3\x2\x2\x2\x19C\x194\x3\x2\x2\x2"+ - "\x19D)\x3\x2\x2\x2\x19E\x1A0\x5&\x14\x2\x19F\x1A1\x5l\x37\x2\x1A0\x19F"+ - "\x3\x2\x2\x2\x1A0\x1A1\x3\x2\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A4\a\xE6"+ - "\x2\x2\x1A3\x1A5\x5l\x37\x2\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2"+ - "\x1A5\x1A7\x3\x2\x2\x2\x1A6\x1A8\x5.\x18\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7"+ - "\x1A8\x3\x2\x2\x2\x1A8\x1AA\x3\x2\x2\x2\x1A9\x1AB\x5l\x37\x2\x1AA\x1A9"+ - "\x3\x2\x2\x2\x1AA\x1AB\x3\x2\x2\x2\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\a\xED"+ - "\x2\x2\x1AD+\x3\x2\x2\x2\x1AE\x1AF\x5&\x14\x2\x1AF\x1B0\a,\x2\x2\x1B0"+ - "\x1B1\x5\x4\x3\x2\x1B1\x1BE\x3\x2\x2\x2\x1B2\x1B3\x5&\x14\x2\x1B3\x1B4"+ - "\a\x102\x2\x2\x1B4\x1B5\a,\x2\x2\x1B5\x1B6\x5\x4\x3\x2\x1B6\x1BE\x3\x2"+ - "\x2\x2\x1B7\x1B8\x5&\x14\x2\x1B8\x1B9\a\x102\x2\x2\x1B9\x1BA\a,\x2\x2"+ - "\x1BA\x1BB\a\x102\x2\x2\x1BB\x1BC\x5\x4\x3\x2\x1BC\x1BE\x3\x2\x2\x2\x1BD"+ - "\x1AE\x3\x2\x2\x2\x1BD\x1B2\x3\x2\x2\x2\x1BD\x1B7\x3\x2\x2\x2\x1BE-\x3"+ - "\x2\x2\x2\x1BF\x1C0\x5\x30\x19\x2\x1C0/\x3\x2\x2\x2\x1C1\x1C3\x5\x32\x1A"+ - "\x2\x1C2\x1C1\x3\x2\x2\x2\x1C2\x1C3\x3\x2\x2\x2\x1C3\x1C5\x3\x2\x2\x2"+ - "\x1C4\x1C6\x5l\x37\x2\x1C5\x1C4\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2\x1C6"+ - "\x1C7\x3\x2\x2\x2\x1C7\x1C9\a)\x2\x2\x1C8\x1CA\x5l\x37\x2\x1C9\x1C8\x3"+ - "\x2\x2\x2\x1C9\x1CA\x3\x2\x2\x2\x1CA\x1CC\x3\x2\x2\x2\x1CB\x1C2\x3\x2"+ - "\x2\x2\x1CC\x1CF\x3\x2\x2\x2\x1CD\x1CB\x3\x2\x2\x2\x1CD\x1CE\x3\x2\x2"+ - "\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CD\x3\x2\x2\x2\x1D0\x1E2\x5\x34\x1B\x2"+ - "\x1D1\x1D3\x5\x32\x1A\x2\x1D2\x1D1\x3\x2\x2\x2\x1D2\x1D3\x3\x2\x2\x2\x1D3"+ - "\x1D5\x3\x2\x2\x2\x1D4\x1D6\x5l\x37\x2\x1D5\x1D4\x3\x2\x2\x2\x1D5\x1D6"+ - "\x3\x2\x2\x2\x1D6\x1D7\x3\x2\x2\x2\x1D7\x1D9\a)\x2\x2\x1D8\x1DA\x5l\x37"+ - "\x2\x1D9\x1D8\x3\x2\x2\x2\x1D9\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3\x2\x2\x2"+ - "\x1DB\x1D2\x3\x2\x2\x2\x1DC\x1DF\x3\x2\x2\x2\x1DD\x1DB\x3\x2\x2\x2\x1DD"+ - "\x1DE\x3\x2\x2\x2\x1DE\x1E0\x3\x2\x2\x2\x1DF\x1DD\x3\x2\x2\x2\x1E0\x1E2"+ - "\x5\x36\x1C\x2\x1E1\x1CD\x3\x2\x2\x2\x1E1\x1DD\x3\x2\x2\x2\x1E2\x31\x3"+ - "\x2\x2\x2\x1E3\x1E4\x5:\x1E\x2\x1E4\x33\x3\x2\x2\x2\x1E5\x1E6\x5:\x1E"+ - "\x2\x1E6\x35\x3\x2\x2\x2\x1E7\x1F2\x5\x38\x1D\x2\x1E8\x1EA\x5l\x37\x2"+ - "\x1E9\x1E8\x3\x2\x2\x2\x1E9\x1EA\x3\x2\x2\x2\x1EA\x1EB\x3\x2\x2\x2\x1EB"+ - "\x1ED\a)\x2\x2\x1EC\x1EE\x5l\x37\x2\x1ED\x1EC\x3\x2\x2\x2\x1ED\x1EE\x3"+ - "\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF\x1F1\x5\x38\x1D\x2\x1F0\x1E9\x3\x2"+ - "\x2\x2\x1F1\x1F4\x3\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F2\x1F3\x3\x2\x2"+ - "\x2\x1F3\x37\x3\x2\x2\x2\x1F4\x1F2\x3\x2\x2\x2\x1F5\x1F7\x5\x4\x3\x2\x1F6"+ - "\x1F8\x5l\x37\x2\x1F7\x1F6\x3\x2\x2\x2\x1F7\x1F8\x3\x2\x2\x2\x1F8\x1F9"+ - "\x3\x2\x2\x2\x1F9\x1FB\a\xDF\x2\x2\x1FA\x1FC\x5l\x37\x2\x1FB\x1FA\x3\x2"+ - "\x2\x2\x1FB\x1FC\x3\x2\x2\x2\x1FC\x1FD\x3\x2\x2\x2\x1FD\x1FE\x5:\x1E\x2"+ - "\x1FE\x39\x3\x2\x2\x2\x1FF\x200\a?\x2\x2\x200\x202\x5l\x37\x2\x201\x1FF"+ - "\x3\x2\x2\x2\x201\x202\x3\x2\x2\x2\x202\x203\x3\x2\x2\x2\x203\x206\x5"+ - "\x1A\xE\x2\x204\x206\x5L\'\x2\x205\x201\x3\x2\x2\x2\x205\x204\x3\x2\x2"+ - "\x2\x206;\x3\x2\x2\x2\x207\x208\x5\x6\x4\x2\x208=\x3\x2\x2\x2\x209\x20A"+ - "\a\x91\x2\x2\x20A?\x3\x2\x2\x2\x20B\x20E\x5\x42\"\x2\x20C\x20E\x5\x44"+ - "#\x2\x20D\x20B\x3\x2\x2\x2\x20D\x20C\x3\x2\x2\x2\x20E\x41\x3\x2\x2\x2"+ - "\x20F\x210\a-\x2\x2\x210\x211\x5\x4\x3\x2\x211\x43\x3\x2\x2\x2\x212\x213"+ - "\a,\x2\x2\x213\x214\x5\x4\x3\x2\x214\x45\x3\x2\x2\x2\x215\x216\x5\x1A"+ - "\xE\x2\x216G\x3\x2\x2\x2\x217\x21A\x5\x18\r\x2\x218\x21A\x5J&\x2\x219"+ - "\x217\x3\x2\x2\x2\x219\x218\x3\x2\x2\x2\x21AI\x3\x2\x2\x2\x21B\x21E\x5"+ - "<\x1F\x2\x21C\x21E\x5(\x15\x2\x21D\x21B\x3\x2\x2\x2\x21D\x21C\x3\x2\x2"+ - "\x2\x21EK\x3\x2\x2\x2\x21F\x220\a\x34\x2\x2\x220\x221\x5l\x37\x2\x221"+ - "\x222\x5N(\x2\x222M\x3\x2\x2\x2\x223\x226\x5(\x15\x2\x224\x226\x5<\x1F"+ - "\x2\x225\x223\x3\x2\x2\x2\x225\x224\x3\x2\x2\x2\x226O\x3\x2\x2\x2\x227"+ - "\x230\x5R*\x2\x228\x230\x5V,\x2\x229\x230\x5X-\x2\x22A\x230\x5^\x30\x2"+ - "\x22B\x230\x5Z.\x2\x22C\x230\x5\x64\x33\x2\x22D\x230\x5T+\x2\x22E\x230"+ - "\x5`\x31\x2\x22F\x227\x3\x2\x2\x2\x22F\x228\x3\x2\x2\x2\x22F\x229\x3\x2"+ - "\x2\x2\x22F\x22A\x3\x2\x2\x2\x22F\x22B\x3\x2\x2\x2\x22F\x22C\x3\x2\x2"+ - "\x2\x22F\x22D\x3\x2\x2\x2\x22F\x22E\x3\x2\x2\x2\x230Q\x3\x2\x2\x2\x231"+ - "\x232\t\b\x2\x2\x232S\x3\x2\x2\x2\x233\x234\a\xB6\x2\x2\x234U\x3\x2\x2"+ - "\x2\x235\x236\t\t\x2\x2\x236W\x3\x2\x2\x2\x237\x238\t\n\x2\x2\x238Y\x3"+ - "\x2\x2\x2\x239\x23C\a\x91\x2\x2\x23A\x23C\x5\\/\x2\x23B\x239\x3\x2\x2"+ - "\x2\x23B\x23A\x3\x2\x2\x2\x23C[\x3\x2\x2\x2\x23D\x23E\t\v\x2\x2\x23E]"+ - "\x3\x2\x2\x2\x23F\x240\t\f\x2\x2\x240_\x3\x2\x2\x2\x241\x242\t\r\x2\x2"+ - "\x242\x61\x3\x2\x2\x2\x243\x244\t\xE\x2\x2\x244\x63\x3\x2\x2\x2\x245\x249"+ - "\x5\x66\x34\x2\x246\x249\x5h\x35\x2\x247\x249\x5j\x36\x2\x248\x245\x3"+ - "\x2\x2\x2\x248\x246\x3\x2\x2\x2\x248\x247\x3\x2\x2\x2\x249\x65\x3\x2\x2"+ - "\x2\x24A\x24B\t\xF\x2\x2\x24Bg\x3\x2\x2\x2\x24C\x24D\a\x99\x2\x2\x24D"+ - "i\x3\x2\x2\x2\x24E\x24F\t\x10\x2\x2\x24Fk\x3\x2\x2\x2\x250\x252\t\x11"+ - "\x2\x2\x251\x250\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253\x251\x3\x2\x2"+ - "\x2\x253\x254\x3\x2\x2\x2\x254m\x3\x2\x2\x2Vsw{\x8A\x96\x9F\xA3\xAA\xAE"+ - "\xB1\xB6\xBB\xC1\xC5\xCC\xD0\xD4\xD9\xDD\xE2\xE6\xEB\xEF\xF4\xF8\xFD\x101"+ - "\x106\x10A\x10F\x113\x118\x11C\x121\x125\x12A\x12E\x133\x137\x13A\x13C"+ - "\x144\x146\x14C\x150\x164\x168\x16C\x16F\x172\x17B\x18B\x18D\x197\x19C"+ - "\x1A0\x1A4\x1A7\x1AA\x1BD\x1C2\x1C5\x1C9\x1CD\x1D2\x1D5\x1D9\x1DD\x1E1"+ - "\x1E9\x1ED\x1F2\x1F7\x1FB\x201\x205\x20D\x219\x21D\x225\x22F\x23B\x248"+ - "\x253"; + "`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2\x2\x12\x5\x2,,.\x32\xDA\xDA\x5\x2"+ + ";;\x45\x45\xBC\xBC\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9\a\x2||"+ + "\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2\xE4\xE7\"\x2\x18\x18$$\x33\x33"+ + "\x38\x38;;@\x41\x43\x44GVYZ^^``\x63\x65gnpwyy{{~~\x80\x81\x84\x88\x8C"+ + "\x8C\x91\x92\x94\x94\x9B\x9B\x9E\x9F\xA4\xAA\xAC\xB3\xB6\xB8\xBA\xBA\xC0"+ + "\xC0\xC2\xC2\xC6\xC9\xCB\xCB\x11\x2\x4\x4\x39\x39=>\x41\x41XYzz\x8D\x8D"+ + "\x95\x95\x9C\x9D\xB3\xB3\xB5\xB5\xBB\xBB\xBD\xBE\xC3\xC3\xCA\xCB\r\x2"+ + "\x34\x34\x36\x36\x66\x66xx||\x83\x83\x8B\x8B\x8D\x8E\x9A\x9A\xC1\xC1\xCC"+ + "\xCC\f\x2\x3\x3\x6\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x8A\x8A"+ + "\t\x2\x5\x5\r\r\x1A\x1A\x1C\x1C&&(({{\r\x2\x13\x13\x1F <\x209\x3\x2\x2\x2@\x20D\x3\x2\x2\x2\x42"+ + "\x20F\x3\x2\x2\x2\x44\x212\x3\x2\x2\x2\x46\x215\x3\x2\x2\x2H\x219\x3\x2"+ + "\x2\x2J\x21D\x3\x2\x2\x2L\x21F\x3\x2\x2\x2N\x225\x3\x2\x2\x2P\x22F\x3"+ + "\x2\x2\x2R\x231\x3\x2\x2\x2T\x233\x3\x2\x2\x2V\x235\x3\x2\x2\x2X\x237"+ + "\x3\x2\x2\x2Z\x23B\x3\x2\x2\x2\\\x23D\x3\x2\x2\x2^\x23F\x3\x2\x2\x2`\x241"+ + "\x3\x2\x2\x2\x62\x243\x3\x2\x2\x2\x64\x248\x3\x2\x2\x2\x66\x24A\x3\x2"+ + "\x2\x2h\x24C\x3\x2\x2\x2j\x24E\x3\x2\x2\x2l\x251\x3\x2\x2\x2no\x5\x1A"+ + "\xE\x2op\a\x2\x2\x3p\x3\x3\x2\x2\x2qt\x5\x6\x4\x2rt\x5\b\x5\x2sq\x3\x2"+ + "\x2\x2sr\x3\x2\x2\x2t\x5\x3\x2\x2\x2ux\x5\xE\b\x2vx\x5\x10\t\x2wu\x3\x2"+ + "\x2\x2wv\x3\x2\x2\x2x\a\x3\x2\x2\x2y|\x5\n\x6\x2z|\x5\f\a\x2{y\x3\x2\x2"+ + "\x2{z\x3\x2\x2\x2|\t\x3\x2\x2\x2}~\x5P)\x2~\v\x3\x2\x2\x2\x7F\x80\x5P"+ + ")\x2\x80\x81\x5\x14\v\x2\x81\r\x3\x2\x2\x2\x82\x8B\a\xEF\x2\x2\x83\x8B"+ + "\a\xF3\x2\x2\x84\x8B\x5\\/\x2\x85\x8B\x5^\x30\x2\x86\x8B\x5\x16\f\x2\x87"+ + "\x8B\a\xF4\x2\x2\x88\x8B\x5\x62\x32\x2\x89\x8B\ah\x2\x2\x8A\x82\x3\x2"+ + "\x2\x2\x8A\x83\x3\x2\x2\x2\x8A\x84\x3\x2\x2\x2\x8A\x85\x3\x2\x2\x2\x8A"+ + "\x86\x3\x2\x2\x2\x8A\x87\x3\x2\x2\x2\x8A\x88\x3\x2\x2\x2\x8A\x89\x3\x2"+ + "\x2\x2\x8B\xF\x3\x2\x2\x2\x8C\x8D\x5\x12\n\x2\x8D\x8E\x5\x14\v\x2\x8E"+ + "\x11\x3\x2\x2\x2\x8F\x97\a\xEF\x2\x2\x90\x97\x5\\/\x2\x91\x97\x5^\x30"+ + "\x2\x92\x97\x5\x16\f\x2\x93\x97\a\xF4\x2\x2\x94\x97\x5\x62\x32\x2\x95"+ + "\x97\ah\x2\x2\x96\x8F\x3\x2\x2\x2\x96\x90\x3\x2\x2\x2\x96\x91\x3\x2\x2"+ + "\x2\x96\x92\x3\x2\x2\x2\x96\x93\x3\x2\x2\x2\x96\x94\x3\x2\x2\x2\x96\x95"+ + "\x3\x2\x2\x2\x97\x13\x3\x2\x2\x2\x98\x99\t\x2\x2\x2\x99\x15\x3\x2\x2\x2"+ + "\x9A\x9B\t\x3\x2\x2\x9B\x17\x3\x2\x2\x2\x9C\xB2\x5`\x31\x2\x9D\x9F\a\xE1"+ + "\x2\x2\x9E\xA0\x5l\x37\x2\x9F\x9E\x3\x2\x2\x2\x9F\xA0\x3\x2\x2\x2\xA0"+ + "\xA1\x3\x2\x2\x2\xA1\xA3\x5`\x31\x2\xA2\xA4\x5l\x37\x2\xA3\xA2\x3\x2\x2"+ + "\x2\xA3\xA4\x3\x2\x2\x2\xA4\xA5\x3\x2\x2\x2\xA5\xA6\a\xE2\x2\x2\xA6\xB2"+ + "\x3\x2\x2\x2\xA7\xB2\a\xF4\x2\x2\xA8\xAA\a\xE1\x2\x2\xA9\xAB\x5l\x37\x2"+ + "\xAA\xA9\x3\x2\x2\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAC\x3\x2\x2\x2\xAC\xAE\a"+ + "\xF4\x2\x2\xAD\xAF\x5l\x37\x2\xAE\xAD\x3\x2\x2\x2\xAE\xAF\x3\x2\x2\x2"+ + "\xAF\xB0\x3\x2\x2\x2\xB0\xB2\a\xE2\x2\x2\xB1\x9C\x3\x2\x2\x2\xB1\x9D\x3"+ + "\x2\x2\x2\xB1\xA7\x3\x2\x2\x2\xB1\xA8\x3\x2\x2\x2\xB2\x19\x3\x2\x2\x2"+ + "\xB3\xB4\b\xE\x1\x2\xB4\xB6\a\xD6\x2\x2\xB5\xB7\x5l\x37\x2\xB6\xB5\x3"+ + "\x2\x2\x2\xB6\xB7\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2\xB8\xCD\x5\x1A\xE\x10"+ + "\xB9\xBB\a\x8E\x2\x2\xBA\xBC\x5l\x37\x2\xBB\xBA\x3\x2\x2\x2\xBB\xBC\x3"+ + "\x2\x2\x2\xBC\xBD\x3\x2\x2\x2\xBD\xCD\x5\x1A\xE\t\xBE\xCD\x5&\x14\x2\xBF"+ + "\xC1\a\xD4\x2\x2\xC0\xC2\x5l\x37\x2\xC1\xC0\x3\x2\x2\x2\xC1\xC2\x3\x2"+ + "\x2\x2\xC2\xC3\x3\x2\x2\x2\xC3\xC5\x5\x1A\xE\x2\xC4\xC6\x5l\x37\x2\xC5"+ + "\xC4\x3\x2\x2\x2\xC5\xC6\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2\xC7\xC8\a\xDB"+ + "\x2\x2\xC8\xCD\x3\x2\x2\x2\xC9\xCD\x5\"\x12\x2\xCA\xCD\x5$\x13\x2\xCB"+ + "\xCD\x5\x1C\xF\x2\xCC\xB3\x3\x2\x2\x2\xCC\xB9\x3\x2\x2\x2\xCC\xBE\x3\x2"+ + "\x2\x2\xCC\xBF\x3\x2\x2\x2\xCC\xC9\x3\x2\x2\x2\xCC\xCA\x3\x2\x2\x2\xCC"+ + "\xCB\x3\x2\x2\x2\xCD\x13C\x3\x2\x2\x2\xCE\xD0\f\x11\x2\x2\xCF\xD1\x5l"+ + "\x37\x2\xD0\xCF\x3\x2\x2\x2\xD0\xD1\x3\x2\x2\x2\xD1\xD2\x3\x2\x2\x2\xD2"+ + "\xD4\a\xDA\x2\x2\xD3\xD5\x5l\x37\x2\xD4\xD3\x3\x2\x2\x2\xD4\xD5\x3\x2"+ + "\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\x13B\x5\x1A\xE\x12\xD7\xD9\f\xF\x2\x2\xD8"+ + "\xDA\x5l\x37\x2\xD9\xD8\x3\x2\x2\x2\xD9\xDA\x3\x2\x2\x2\xDA\xDB\x3\x2"+ + "\x2\x2\xDB\xDD\t\x4\x2\x2\xDC\xDE\x5l\x37\x2\xDD\xDC\x3\x2\x2\x2\xDD\xDE"+ + "\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\x13B\x5\x1A\xE\x10\xE0\xE2\f\xE\x2"+ + "\x2\xE1\xE3\x5l\x37\x2\xE2\xE1\x3\x2\x2\x2\xE2\xE3\x3\x2\x2\x2\xE3\xE4"+ + "\x3\x2\x2\x2\xE4\xE6\a\xCF\x2\x2\xE5\xE7\x5l\x37\x2\xE6\xE5\x3\x2\x2\x2"+ + "\xE6\xE7\x3\x2\x2\x2\xE7\xE8\x3\x2\x2\x2\xE8\x13B\x5\x1A\xE\xF\xE9\xEB"+ + "\f\r\x2\x2\xEA\xEC\x5l\x37\x2\xEB\xEA\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2"+ + "\xEC\xED\x3\x2\x2\x2\xED\xEF\a\x8B\x2\x2\xEE\xF0\x5l\x37\x2\xEF\xEE\x3"+ + "\x2\x2\x2\xEF\xF0\x3\x2\x2\x2\xF0\xF1\x3\x2\x2\x2\xF1\x13B\x5\x1A\xE\xE"+ + "\xF2\xF4\f\f\x2\x2\xF3\xF5\x5l\x37\x2\xF4\xF3\x3\x2\x2\x2\xF4\xF5\x3\x2"+ + "\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF8\t\x5\x2\x2\xF7\xF9\x5l\x37\x2\xF8\xF7"+ + "\x3\x2\x2\x2\xF8\xF9\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x13B\x5\x1A\xE"+ + "\r\xFB\xFD\f\v\x2\x2\xFC\xFE\x5l\x37\x2\xFD\xFC\x3\x2\x2\x2\xFD\xFE\x3"+ + "\x2\x2\x2\xFE\xFF\x3\x2\x2\x2\xFF\x101\a\x32\x2\x2\x100\x102\x5l\x37\x2"+ + "\x101\x100\x3\x2\x2\x2\x101\x102\x3\x2\x2\x2\x102\x103\x3\x2\x2\x2\x103"+ + "\x13B\x5\x1A\xE\f\x104\x106\f\n\x2\x2\x105\x107\x5l\x37\x2\x106\x105\x3"+ + "\x2\x2\x2\x106\x107\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108\x10A\t\x6\x2"+ + "\x2\x109\x10B\x5l\x37\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B\x3\x2\x2\x2\x10B"+ + "\x10C\x3\x2\x2\x2\x10C\x13B\x5\x1A\xE\v\x10D\x10F\f\b\x2\x2\x10E\x110"+ + "\x5l\x37\x2\x10F\x10E\x3\x2\x2\x2\x10F\x110\x3\x2\x2\x2\x110\x111\x3\x2"+ + "\x2\x2\x111\x113\a\x36\x2\x2\x112\x114\x5l\x37\x2\x113\x112\x3\x2\x2\x2"+ + "\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x13B\x5\x1A\xE\t\x116"+ + "\x118\f\a\x2\x2\x117\x119\x5l\x37\x2\x118\x117\x3\x2\x2\x2\x118\x119\x3"+ + "\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11C\a\x9A\x2\x2\x11B\x11D\x5l\x37"+ + "\x2\x11C\x11B\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D\x11E\x3\x2\x2\x2"+ + "\x11E\x13B\x5\x1A\xE\b\x11F\x121\f\x6\x2\x2\x120\x122\x5l\x37\x2\x121"+ + "\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2\x2\x2\x123\x125"+ + "\a\xCC\x2\x2\x124\x126\x5l\x37\x2\x125\x124\x3\x2\x2\x2\x125\x126\x3\x2"+ + "\x2\x2\x126\x127\x3\x2\x2\x2\x127\x13B\x5\x1A\xE\a\x128\x12A\f\x5\x2\x2"+ + "\x129\x12B\x5l\x37\x2\x12A\x129\x3\x2\x2\x2\x12A\x12B\x3\x2\x2\x2\x12B"+ + "\x12C\x3\x2\x2\x2\x12C\x12E\a\x66\x2\x2\x12D\x12F\x5l\x37\x2\x12E\x12D"+ + "\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x130\x3\x2\x2\x2\x130\x13B\x5"+ + "\x1A\xE\x6\x131\x133\f\x4\x2\x2\x132\x134\x5l\x37\x2\x133\x132\x3\x2\x2"+ + "\x2\x133\x134\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x137\ax\x2\x2\x136"+ + "\x138\x5l\x37\x2\x137\x136\x3\x2\x2\x2\x137\x138\x3\x2\x2\x2\x138\x139"+ + "\x3\x2\x2\x2\x139\x13B\x5\x1A\xE\x5\x13A\xCE\x3\x2\x2\x2\x13A\xD7\x3\x2"+ + "\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xE9\x3\x2\x2\x2\x13A\xF2\x3\x2\x2\x2"+ + "\x13A\xFB\x3\x2\x2\x2\x13A\x104\x3\x2\x2\x2\x13A\x10D\x3\x2\x2\x2\x13A"+ + "\x116\x3\x2\x2\x2\x13A\x11F\x3\x2\x2\x2\x13A\x128\x3\x2\x2\x2\x13A\x131"+ + "\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2\x13C\x13D\x3"+ + "\x2\x2\x2\x13D\x1B\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F\x147\x5\x1E"+ + "\x10\x2\x140\x147\a\xE8\x2\x2\x141\x147\a\xE3\x2\x2\x142\x144\x5\x64\x33"+ + "\x2\x143\x145\x5\x14\v\x2\x144\x143\x3\x2\x2\x2\x144\x145\x3\x2\x2\x2"+ + "\x145\x147\x3\x2\x2\x2\x146\x13F\x3\x2\x2\x2\x146\x140\x3\x2\x2\x2\x146"+ + "\x141\x3\x2\x2\x2\x146\x142\x3\x2\x2\x2\x147\x1D\x3\x2\x2\x2\x148\x149"+ + "\t\a\x2\x2\x149\x1F\x3\x2\x2\x2\x14A\x14C\a\xD4\x2\x2\x14B\x14D\x5l\x37"+ + "\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2"+ + "\x14E\x150\x5\x1A\xE\x2\x14F\x151\x5l\x37\x2\x150\x14F\x3\x2\x2\x2\x150"+ + "\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\a\xDB\x2\x2\x153!\x3"+ + "\x2\x2\x2\x154\x155\a\xC1\x2\x2\x155\x156\x5l\x37\x2\x156\x157\x5\x1A"+ + "\xE\x2\x157\x158\x5l\x37\x2\x158\x159\a|\x2\x2\x159\x15A\x5l\x37\x2\x15A"+ + "\x15B\x5H%\x2\x15B#\x3\x2\x2\x2\x15C\x15D\a\x8D\x2\x2\x15D\x15E\x5l\x37"+ + "\x2\x15E\x15F\x5H%\x2\x15F%\x3\x2\x2\x2\x160\x161\b\x14\x1\x2\x161\x165"+ + "\x5> \x2\x162\x165\x5<\x1F\x2\x163\x165\x5@!\x2\x164\x160\x3\x2\x2\x2"+ + "\x164\x162\x3\x2\x2\x2\x164\x163\x3\x2\x2\x2\x165\x18D\x3\x2\x2\x2\x166"+ + "\x168\f\v\x2\x2\x167\x169\x5l\x37\x2\x168\x167\x3\x2\x2\x2\x168\x169\x3"+ + "\x2\x2\x2\x169\x16A\x3\x2\x2\x2\x16A\x16C\a\xD4\x2\x2\x16B\x16D\x5l\x37"+ + "\x2\x16C\x16B\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16F\x3\x2\x2\x2"+ + "\x16E\x170\x5.\x18\x2\x16F\x16E\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170"+ + "\x172\x3\x2\x2\x2\x171\x173\x5l\x37\x2\x172\x171\x3\x2\x2\x2\x172\x173"+ + "\x3\x2\x2\x2\x173\x174\x3\x2\x2\x2\x174\x18C\a\xDB\x2\x2\x175\x176\f\n"+ + "\x2\x2\x176\x177\a-\x2\x2\x177\x18C\x5\x4\x3\x2\x178\x179\f\t\x2\x2\x179"+ + "\x17B\a\xF0\x2\x2\x17A\x17C\x5l\x37\x2\x17B\x17A\x3\x2\x2\x2\x17B\x17C"+ + "\x3\x2\x2\x2\x17C\x17D\x3\x2\x2\x2\x17D\x17E\a-\x2\x2\x17E\x18C\x5\x4"+ + "\x3\x2\x17F\x180\f\b\x2\x2\x180\x181\a,\x2\x2\x181\x18C\x5\x4\x3\x2\x182"+ + "\x183\f\a\x2\x2\x183\x184\a\xF0\x2\x2\x184\x185\a,\x2\x2\x185\x18C\x5"+ + "\x4\x3\x2\x186\x187\f\x6\x2\x2\x187\x188\a\xF0\x2\x2\x188\x189\a,\x2\x2"+ + "\x189\x18A\a\xF0\x2\x2\x18A\x18C\x5\x4\x3\x2\x18B\x166\x3\x2\x2\x2\x18B"+ + "\x175\x3\x2\x2\x2\x18B\x178\x3\x2\x2\x2\x18B\x17F\x3\x2\x2\x2\x18B\x182"+ + "\x3\x2\x2\x2\x18B\x186\x3\x2\x2\x2\x18C\x18F\x3\x2\x2\x2\x18D\x18B\x3"+ + "\x2\x2\x2\x18D\x18E\x3\x2\x2\x2\x18E\'\x3\x2\x2\x2\x18F\x18D\x3\x2\x2"+ + "\x2\x190\x191\x5&\x14\x2\x191\x192\a-\x2\x2\x192\x193\x5\x4\x3\x2\x193"+ + "\x19D\x3\x2\x2\x2\x194\x195\x5&\x14\x2\x195\x197\a\xF0\x2\x2\x196\x198"+ + "\x5l\x37\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x199\x3\x2"+ + "\x2\x2\x199\x19A\a-\x2\x2\x19A\x19B\x5\x4\x3\x2\x19B\x19D\x3\x2\x2\x2"+ + "\x19C\x190\x3\x2\x2\x2\x19C\x194\x3\x2\x2\x2\x19D)\x3\x2\x2\x2\x19E\x1A0"+ + "\x5&\x14\x2\x19F\x1A1\x5l\x37\x2\x1A0\x19F\x3\x2\x2\x2\x1A0\x1A1\x3\x2"+ + "\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A4\a\xD4\x2\x2\x1A3\x1A5\x5l\x37\x2"+ + "\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A7\x3\x2\x2\x2\x1A6"+ + "\x1A8\x5.\x18\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1AA"+ + "\x3\x2\x2\x2\x1A9\x1AB\x5l\x37\x2\x1AA\x1A9\x3\x2\x2\x2\x1AA\x1AB\x3\x2"+ + "\x2\x2\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\a\xDB\x2\x2\x1AD+\x3\x2\x2\x2\x1AE"+ + "\x1AF\x5&\x14\x2\x1AF\x1B0\a,\x2\x2\x1B0\x1B1\x5\x4\x3\x2\x1B1\x1BE\x3"+ + "\x2\x2\x2\x1B2\x1B3\x5&\x14\x2\x1B3\x1B4\a\xF0\x2\x2\x1B4\x1B5\a,\x2\x2"+ + "\x1B5\x1B6\x5\x4\x3\x2\x1B6\x1BE\x3\x2\x2\x2\x1B7\x1B8\x5&\x14\x2\x1B8"+ + "\x1B9\a\xF0\x2\x2\x1B9\x1BA\a,\x2\x2\x1BA\x1BB\a\xF0\x2\x2\x1BB\x1BC\x5"+ + "\x4\x3\x2\x1BC\x1BE\x3\x2\x2\x2\x1BD\x1AE\x3\x2\x2\x2\x1BD\x1B2\x3\x2"+ + "\x2\x2\x1BD\x1B7\x3\x2\x2\x2\x1BE-\x3\x2\x2\x2\x1BF\x1C0\x5\x30\x19\x2"+ + "\x1C0/\x3\x2\x2\x2\x1C1\x1C3\x5\x32\x1A\x2\x1C2\x1C1\x3\x2\x2\x2\x1C2"+ + "\x1C3\x3\x2\x2\x2\x1C3\x1C5\x3\x2\x2\x2\x1C4\x1C6\x5l\x37\x2\x1C5\x1C4"+ + "\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2\x1C6\x1C7\x3\x2\x2\x2\x1C7\x1C9\a)"+ + "\x2\x2\x1C8\x1CA\x5l\x37\x2\x1C9\x1C8\x3\x2\x2\x2\x1C9\x1CA\x3\x2\x2\x2"+ + "\x1CA\x1CC\x3\x2\x2\x2\x1CB\x1C2\x3\x2\x2\x2\x1CC\x1CF\x3\x2\x2\x2\x1CD"+ + "\x1CB\x3\x2\x2\x2\x1CD\x1CE\x3\x2\x2\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CD"+ + "\x3\x2\x2\x2\x1D0\x1E2\x5\x34\x1B\x2\x1D1\x1D3\x5\x32\x1A\x2\x1D2\x1D1"+ + "\x3\x2\x2\x2\x1D2\x1D3\x3\x2\x2\x2\x1D3\x1D5\x3\x2\x2\x2\x1D4\x1D6\x5"+ + "l\x37\x2\x1D5\x1D4\x3\x2\x2\x2\x1D5\x1D6\x3\x2\x2\x2\x1D6\x1D7\x3\x2\x2"+ + "\x2\x1D7\x1D9\a)\x2\x2\x1D8\x1DA\x5l\x37\x2\x1D9\x1D8\x3\x2\x2\x2\x1D9"+ + "\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3\x2\x2\x2\x1DB\x1D2\x3\x2\x2\x2\x1DC\x1DF"+ + "\x3\x2\x2\x2\x1DD\x1DB\x3\x2\x2\x2\x1DD\x1DE\x3\x2\x2\x2\x1DE\x1E0\x3"+ + "\x2\x2\x2\x1DF\x1DD\x3\x2\x2\x2\x1E0\x1E2\x5\x36\x1C\x2\x1E1\x1CD\x3\x2"+ + "\x2\x2\x1E1\x1DD\x3\x2\x2\x2\x1E2\x31\x3\x2\x2\x2\x1E3\x1E4\x5:\x1E\x2"+ + "\x1E4\x33\x3\x2\x2\x2\x1E5\x1E6\x5:\x1E\x2\x1E6\x35\x3\x2\x2\x2\x1E7\x1F2"+ + "\x5\x38\x1D\x2\x1E8\x1EA\x5l\x37\x2\x1E9\x1E8\x3\x2\x2\x2\x1E9\x1EA\x3"+ + "\x2\x2\x2\x1EA\x1EB\x3\x2\x2\x2\x1EB\x1ED\a)\x2\x2\x1EC\x1EE\x5l\x37\x2"+ + "\x1ED\x1EC\x3\x2\x2\x2\x1ED\x1EE\x3\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF"+ + "\x1F1\x5\x38\x1D\x2\x1F0\x1E9\x3\x2\x2\x2\x1F1\x1F4\x3\x2\x2\x2\x1F2\x1F0"+ + "\x3\x2\x2\x2\x1F2\x1F3\x3\x2\x2\x2\x1F3\x37\x3\x2\x2\x2\x1F4\x1F2\x3\x2"+ + "\x2\x2\x1F5\x1F7\x5\x4\x3\x2\x1F6\x1F8\x5l\x37\x2\x1F7\x1F6\x3\x2\x2\x2"+ + "\x1F7\x1F8\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2\x2\x1F9\x1FB\a\xCD\x2\x2\x1FA"+ + "\x1FC\x5l\x37\x2\x1FB\x1FA\x3\x2\x2\x2\x1FB\x1FC\x3\x2\x2\x2\x1FC\x1FD"+ + "\x3\x2\x2\x2\x1FD\x1FE\x5:\x1E\x2\x1FE\x39\x3\x2\x2\x2\x1FF\x200\a=\x2"+ + "\x2\x200\x202\x5l\x37\x2\x201\x1FF\x3\x2\x2\x2\x201\x202\x3\x2\x2\x2\x202"+ + "\x203\x3\x2\x2\x2\x203\x206\x5\x1A\xE\x2\x204\x206\x5L\'\x2\x205\x201"+ + "\x3\x2\x2\x2\x205\x204\x3\x2\x2\x2\x206;\x3\x2\x2\x2\x207\x208\x5\x6\x4"+ + "\x2\x208=\x3\x2\x2\x2\x209\x20A\a\x89\x2\x2\x20A?\x3\x2\x2\x2\x20B\x20E"+ + "\x5\x42\"\x2\x20C\x20E\x5\x44#\x2\x20D\x20B\x3\x2\x2\x2\x20D\x20C\x3\x2"+ + "\x2\x2\x20E\x41\x3\x2\x2\x2\x20F\x210\a-\x2\x2\x210\x211\x5\x4\x3\x2\x211"+ + "\x43\x3\x2\x2\x2\x212\x213\a,\x2\x2\x213\x214\x5\x4\x3\x2\x214\x45\x3"+ + "\x2\x2\x2\x215\x216\x5\x1A\xE\x2\x216G\x3\x2\x2\x2\x217\x21A\x5\x18\r"+ + "\x2\x218\x21A\x5J&\x2\x219\x217\x3\x2\x2\x2\x219\x218\x3\x2\x2\x2\x21A"+ + "I\x3\x2\x2\x2\x21B\x21E\x5<\x1F\x2\x21C\x21E\x5(\x15\x2\x21D\x21B\x3\x2"+ + "\x2\x2\x21D\x21C\x3\x2\x2\x2\x21EK\x3\x2\x2\x2\x21F\x220\a\x34\x2\x2\x220"+ + "\x221\x5l\x37\x2\x221\x222\x5N(\x2\x222M\x3\x2\x2\x2\x223\x226\x5(\x15"+ + "\x2\x224\x226\x5<\x1F\x2\x225\x223\x3\x2\x2\x2\x225\x224\x3\x2\x2\x2\x226"+ + "O\x3\x2\x2\x2\x227\x230\x5R*\x2\x228\x230\x5V,\x2\x229\x230\x5X-\x2\x22A"+ + "\x230\x5^\x30\x2\x22B\x230\x5Z.\x2\x22C\x230\x5\x64\x33\x2\x22D\x230\x5"+ + "T+\x2\x22E\x230\x5`\x31\x2\x22F\x227\x3\x2\x2\x2\x22F\x228\x3\x2\x2\x2"+ + "\x22F\x229\x3\x2\x2\x2\x22F\x22A\x3\x2\x2\x2\x22F\x22B\x3\x2\x2\x2\x22F"+ + "\x22C\x3\x2\x2\x2\x22F\x22D\x3\x2\x2\x2\x22F\x22E\x3\x2\x2\x2\x230Q\x3"+ + "\x2\x2\x2\x231\x232\t\b\x2\x2\x232S\x3\x2\x2\x2\x233\x234\a\xAB\x2\x2"+ + "\x234U\x3\x2\x2\x2\x235\x236\t\t\x2\x2\x236W\x3\x2\x2\x2\x237\x238\t\n"+ + "\x2\x2\x238Y\x3\x2\x2\x2\x239\x23C\a\x89\x2\x2\x23A\x23C\x5\\/\x2\x23B"+ + "\x239\x3\x2\x2\x2\x23B\x23A\x3\x2\x2\x2\x23C[\x3\x2\x2\x2\x23D\x23E\t"+ + "\v\x2\x2\x23E]\x3\x2\x2\x2\x23F\x240\t\f\x2\x2\x240_\x3\x2\x2\x2\x241"+ + "\x242\t\r\x2\x2\x242\x61\x3\x2\x2\x2\x243\x244\t\xE\x2\x2\x244\x63\x3"+ + "\x2\x2\x2\x245\x249\x5\x66\x34\x2\x246\x249\x5h\x35\x2\x247\x249\x5j\x36"+ + "\x2\x248\x245\x3\x2\x2\x2\x248\x246\x3\x2\x2\x2\x248\x247\x3\x2\x2\x2"+ + "\x249\x65\x3\x2\x2\x2\x24A\x24B\t\xF\x2\x2\x24Bg\x3\x2\x2\x2\x24C\x24D"+ + "\a\x8F\x2\x2\x24Di\x3\x2\x2\x2\x24E\x24F\t\x10\x2\x2\x24Fk\x3\x2\x2\x2"+ + "\x250\x252\t\x11\x2\x2\x251\x250\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253"+ + "\x251\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254m\x3\x2\x2\x2Vsw{\x8A\x96"+ + "\x9F\xA3\xAA\xAE\xB1\xB6\xBB\xC1\xC5\xCC\xD0\xD4\xD9\xDD\xE2\xE6\xEB\xEF"+ + "\xF4\xF8\xFD\x101\x106\x10A\x10F\x113\x118\x11C\x121\x125\x12A\x12E\x133"+ + "\x137\x13A\x13C\x144\x146\x14C\x150\x164\x168\x16C\x16F\x172\x17B\x18B"+ + "\x18D\x197\x19C\x1A0\x1A4\x1A7\x1AA\x1BD\x1C2\x1C5\x1C9\x1CD\x1D2\x1D5"+ + "\x1D9\x1DD\x1E1\x1E9\x1ED\x1F2\x1F7\x1FB\x201\x205\x20D\x219\x21D\x225"+ + "\x22F\x23B\x248\x253"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 index 1e7123770b..99407b06e1 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 @@ -352,12 +352,9 @@ reservedTypeIdentifier : ; uncategorizedKeyword : - ALIAS | ATTRIBUTE | APPACTIVATE | - BEEP | BEGIN | CLASS | CHDIR | CHDRIVE | COLLECTION | DELETESETTING | - FILECOPY | KILL | LOAD | LIB | MKDIR | NAME | ON | - RANDOMIZE | RMDIR | - SAVEPICTURE | SAVESETTING | SENDKEYS | SETATTR | - TAB | TIME | UNLOAD | VERSION + ALIAS | ATTRIBUTE | + BEGIN | CLASS | COLLECTION | + LIB | ON | TAB | VERSION ; literalIdentifier : booleanLiteralIdentifier | objectLiteralIdentifier | variantLiteralIdentifier; diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index e5ebd1e5c7..d8b6fbad8b 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -34,40 +34,37 @@ public const int MIDB=31, MIDBTYPESUFFIX=32, MIDTYPESUFFIX=33, OPTION=34, PSET=35, SCALE=36, SGN=37, UBOUND=38, COMMA=39, COLON=40, SEMICOLON=41, EXCLAMATIONPOINT=42, DOT=43, HASH=44, AT=45, PERCENT=46, DOLLAR=47, AMPERSAND=48, ACCESS=49, - ADDRESSOF=50, ALIAS=51, AND=52, ATTRIBUTE=53, APPACTIVATE=54, APPEND=55, - AS=56, BEGIN=57, BEEP=58, BINARY=59, BOOLEAN=60, BYVAL=61, BYREF=62, BYTE=63, - CALL=64, CASE=65, CHDIR=66, CHDRIVE=67, CLASS=68, CLOSE=69, CONST=70, - DATABASE=71, DATE=72, DECLARE=73, DEFBOOL=74, DEFBYTE=75, DEFDATE=76, - DEFDBL=77, DEFCUR=78, DEFINT=79, DEFLNG=80, DEFLNGLNG=81, DEFLNGPTR=82, - DEFOBJ=83, DEFSNG=84, DEFSTR=85, DEFVAR=86, DELETESETTING=87, DIM=88, - DO=89, DOUBLE=90, EACH=91, ELSE=92, ELSEIF=93, EMPTY=94, END_ENUM=95, - END_FUNCTION=96, END_IF=97, END_PROPERTY=98, END_SELECT=99, END_SUB=100, - END_TYPE=101, END_WITH=102, END=103, ENUM=104, EQV=105, ERASE=106, ERROR=107, - EVENT=108, EXIT_DO=109, EXIT_FOR=110, EXIT_FUNCTION=111, EXIT_PROPERTY=112, - EXIT_SUB=113, FALSE=114, FILECOPY=115, FRIEND=116, FOR=117, FUNCTION=118, - GET=119, GLOBAL=120, GOSUB=121, GOTO=122, IF=123, IMP=124, IMPLEMENTS=125, - IN=126, INPUT=127, IS=128, INTEGER=129, KILL=130, LOAD=131, LOCK=132, - LONG=133, LOOP=134, LET=135, LIB=136, LIKE=137, LINE_INPUT=138, LOCK_READ=139, - LOCK_WRITE=140, LOCK_READ_WRITE=141, LSET=142, ME=143, MID=144, MKDIR=145, - MOD=146, NAME=147, NEXT=148, NEW=149, NOT=150, NOTHING=151, NULL=152, - ON=153, ON_ERROR=154, ON_LOCAL_ERROR=155, OPEN=156, OPTIONAL=157, OPTION_BASE=158, - OPTION_EXPLICIT=159, OPTION_COMPARE=160, OPTION_PRIVATE_MODULE=161, OR=162, - OUTPUT=163, PARAMARRAY=164, PRESERVE=165, PRINT=166, PRIVATE=167, PROPERTY_GET=168, - PROPERTY_LET=169, PROPERTY_SET=170, PTRSAFE=171, PUBLIC=172, PUT=173, - RANDOM=174, RANDOMIZE=175, RAISEEVENT=176, READ=177, READ_WRITE=178, REDIM=179, - REM=180, RESET=181, RESUME=182, RETURN=183, RMDIR=184, RSET=185, SAVEPICTURE=186, - SAVESETTING=187, SEEK=188, SELECT=189, SENDKEYS=190, SET=191, SETATTR=192, - SHARED=193, SINGLE=194, SPC=195, STATIC=196, STEP=197, STOP=198, STRING=199, - SUB=200, TAB=201, TEXT=202, THEN=203, TIME=204, TO=205, TRUE=206, TYPE=207, - TYPEOF=208, UNLOAD=209, UNLOCK=210, UNTIL=211, VARIANT=212, VERSION=213, - WEND=214, WHILE=215, WIDTH=216, WITH=217, WITHEVENTS=218, WRITE=219, XOR=220, - ASSIGN=221, DIV=222, INTDIV=223, EQ=224, GEQ=225, GT=226, LEQ=227, LPAREN=228, - LT=229, MINUS=230, MULT=231, NEQ=232, PLUS=233, POW=234, RPAREN=235, HASHCONST=236, - HASHIF=237, HASHELSEIF=238, HASHELSE=239, HASHENDIF=240, L_SQUARE_BRACKET=241, - R_SQUARE_BRACKET=242, STRINGLITERAL=243, OCTLITERAL=244, HEXLITERAL=245, - FLOATLITERAL=246, INTEGERLITERAL=247, DATELITERAL=248, NEWLINE=249, REMCOMMENT=250, - COMMENT=251, SINGLEQUOTE=252, UNDERSCORE=253, WS=254, IDENTIFIER=255, - LINE_CONTINUATION=256, GUIDLITERAL=257, ERRORCHAR=258; + ADDRESSOF=50, ALIAS=51, AND=52, ATTRIBUTE=53, APPEND=54, AS=55, BEGIN=56, + BINARY=57, BOOLEAN=58, BYVAL=59, BYREF=60, BYTE=61, CALL=62, CASE=63, + CLASS=64, CLOSE=65, CONST=66, DATABASE=67, DATE=68, DECLARE=69, DEFBOOL=70, + DEFBYTE=71, DEFDATE=72, DEFDBL=73, DEFCUR=74, DEFINT=75, DEFLNG=76, DEFLNGLNG=77, + DEFLNGPTR=78, DEFOBJ=79, DEFSNG=80, DEFSTR=81, DEFVAR=82, DIM=83, DO=84, + DOUBLE=85, EACH=86, ELSE=87, ELSEIF=88, EMPTY=89, END_ENUM=90, END_FUNCTION=91, + END_IF=92, END_PROPERTY=93, END_SELECT=94, END_SUB=95, END_TYPE=96, END_WITH=97, + END=98, ENUM=99, EQV=100, ERASE=101, ERROR=102, EVENT=103, EXIT_DO=104, + EXIT_FOR=105, EXIT_FUNCTION=106, EXIT_PROPERTY=107, EXIT_SUB=108, FALSE=109, + FRIEND=110, FOR=111, FUNCTION=112, GET=113, GLOBAL=114, GOSUB=115, GOTO=116, + IF=117, IMP=118, IMPLEMENTS=119, IN=120, INPUT=121, IS=122, INTEGER=123, + LOCK=124, LONG=125, LOOP=126, LET=127, LIB=128, LIKE=129, LINE_INPUT=130, + LOCK_READ=131, LOCK_WRITE=132, LOCK_READ_WRITE=133, LSET=134, ME=135, + MID=136, MOD=137, NEXT=138, NEW=139, NOT=140, NOTHING=141, NULL=142, ON=143, + ON_ERROR=144, ON_LOCAL_ERROR=145, OPEN=146, OPTIONAL=147, OPTION_BASE=148, + OPTION_EXPLICIT=149, OPTION_COMPARE=150, OPTION_PRIVATE_MODULE=151, OR=152, + OUTPUT=153, PARAMARRAY=154, PRESERVE=155, PRINT=156, PRIVATE=157, PROPERTY_GET=158, + PROPERTY_LET=159, PROPERTY_SET=160, PTRSAFE=161, PUBLIC=162, PUT=163, + RANDOM=164, RAISEEVENT=165, READ=166, READ_WRITE=167, REDIM=168, REM=169, + RESET=170, RESUME=171, RETURN=172, RSET=173, SEEK=174, SELECT=175, SET=176, + SHARED=177, SINGLE=178, SPC=179, STATIC=180, STEP=181, STOP=182, STRING=183, + SUB=184, TAB=185, TEXT=186, THEN=187, TO=188, TRUE=189, TYPE=190, TYPEOF=191, + UNLOCK=192, UNTIL=193, VARIANT=194, VERSION=195, WEND=196, WHILE=197, + WIDTH=198, WITH=199, WITHEVENTS=200, WRITE=201, XOR=202, ASSIGN=203, DIV=204, + INTDIV=205, EQ=206, GEQ=207, GT=208, LEQ=209, LPAREN=210, LT=211, MINUS=212, + MULT=213, NEQ=214, PLUS=215, POW=216, RPAREN=217, HASHCONST=218, HASHIF=219, + HASHELSEIF=220, HASHELSE=221, HASHENDIF=222, L_SQUARE_BRACKET=223, R_SQUARE_BRACKET=224, + STRINGLITERAL=225, OCTLITERAL=226, HEXLITERAL=227, FLOATLITERAL=228, INTEGERLITERAL=229, + DATELITERAL=230, NEWLINE=231, REMCOMMENT=232, COMMENT=233, SINGLEQUOTE=234, + UNDERSCORE=235, WS=236, IDENTIFIER=237, LINE_CONTINUATION=238, GUIDLITERAL=239, + ERRORCHAR=240; public static string[] modeNames = { "DEFAULT_MODE" }; @@ -106,10 +103,7 @@ public const int "'\\u00DB'", "'\\u00DC'", "'\\u00DD'", "'\\u00DE'", "'\\u00DF'", "'\\u00E0'", "'\\u00E1'", "'\\u00E2'", "'\\u00E3'", "'\\u00E4'", "'\\u00E5'", "'\\u00E6'", "'\\u00E7'", "'\\u00E8'", "'\\u00E9'", "'\\u00EA'", "'\\u00EB'", "'\\u00EC'", - "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'", "'\\u00F1'", "'\\u00F2'", - "'\\u00F3'", "'\\u00F4'", "'\\u00F5'", "'\\u00F6'", "'\\u00F7'", "'\\u00F8'", - "'\\u00F9'", "'\\u00FA'", "'\\u00FB'", "'\\u00FC'", "'\\u00FD'", "'\\u00FE'", - "'\\u00FF'", "'\\u0100'", "'\\u0101'", "'\\u0102'" + "'\\u00ED'", "'\\u00EE'", "'\\u00EF'", "'\\u00F0'" }; public static readonly string[] ruleNames = { "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", @@ -119,44 +113,41 @@ public const int "MIDTYPESUFFIX", "OPTION", "PSET", "SCALE", "SGN", "UBOUND", "COMMA", "COLON", "SEMICOLON", "EXCLAMATIONPOINT", "DOT", "HASH", "AT", "PERCENT", "DOLLAR", "AMPERSAND", "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", - "APPACTIVATE", "APPEND", "AS", "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", - "BYREF", "BYTE", "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", - "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", - "DEFDBL", "DEFCUR", "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", "DEFOBJ", - "DEFSNG", "DEFSTR", "DEFVAR", "DELETESETTING", "DIM", "DO", "DOUBLE", - "EACH", "ELSE", "ELSEIF", "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", - "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", "END", - "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", - "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FILECOPY", "FRIEND", "FOR", "FUNCTION", - "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", - "IS", "INTEGER", "KILL", "LOAD", "LOCK", "LONG", "LOOP", "LET", "LIB", + "APPEND", "AS", "BEGIN", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", + "CALL", "CASE", "CLASS", "CLOSE", "CONST", "DATABASE", "DATE", "DECLARE", + "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFCUR", "DEFINT", "DEFLNG", + "DEFLNGLNG", "DEFLNGPTR", "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DIM", + "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", "EMPTY", "END_ENUM", "END_FUNCTION", + "END_IF", "END_PROPERTY", "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", + "END", "ENUM", "EQV", "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", + "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", "FALSE", "FRIEND", "FOR", + "FUNCTION", "GET", "GLOBAL", "GOSUB", "GOTO", "IF", "IMP", "IMPLEMENTS", + "IN", "INPUT", "IS", "INTEGER", "LOCK", "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", - "ME", "MID", "MKDIR", "MOD", "NAME", "NEXT", "NEW", "NOT", "NOTHING", - "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", - "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", - "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", - "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", - "READ", "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", - "RSET", "SAVEPICTURE", "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", - "SETATTR", "SHARED", "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", - "SUB", "TAB", "TEXT", "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", - "UNLOAD", "UNLOCK", "UNTIL", "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", - "WITH", "WITHEVENTS", "WRITE", "XOR", "ASSIGN", "DIV", "INTDIV", "EQ", - "GEQ", "GT", "LEQ", "LPAREN", "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", - "RPAREN", "HASHCONST", "HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", - "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", "STRINGLITERAL", "OCTLITERAL", - "HEXLITERAL", "FLOATLITERAL", "FLOATINGPOINTLITERAL", "INTEGERLITERAL", - "INTEGERTYPESUFFIX", "FLOATINGPOINTTYPESUFFIX", "EXPONENT", "EXPONENTLETTER", - "EXPONENTSIGN", "DECIMALLITERAL", "DATELITERAL", "DATEORTIME", "DATEVALUE", - "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", "ENGLISHMONTHABBREVIATION", - "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", "FEBRUARY", "MARCH", - "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", - "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", "JUL", "AUG", "SEP", "OCT", - "NOV", "DEC", "NEWLINE", "REMCOMMENT", "COMMENT", "SINGLEQUOTE", "UNDERSCORE", - "WS", "IDENTIFIER", "LINE_CONTINUATION", "GUIDLITERAL", "LETTER", "DIGIT", - "LETTERORDIGIT", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", - "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", - "Z", "ERRORCHAR" + "ME", "MID", "MOD", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", + "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", + "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", + "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", + "PTRSAFE", "PUBLIC", "PUT", "RANDOM", "RAISEEVENT", "READ", "READ_WRITE", + "REDIM", "REM", "RESET", "RESUME", "RETURN", "RSET", "SEEK", "SELECT", + "SET", "SHARED", "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", + "SUB", "TAB", "TEXT", "THEN", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOCK", + "UNTIL", "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", + "WRITE", "XOR", "ASSIGN", "DIV", "INTDIV", "EQ", "GEQ", "GT", "LEQ", "LPAREN", + "LT", "MINUS", "MULT", "NEQ", "PLUS", "POW", "RPAREN", "HASHCONST", "HASHIF", + "HASHELSEIF", "HASHELSE", "HASHENDIF", "L_SQUARE_BRACKET", "R_SQUARE_BRACKET", + "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "FLOATINGPOINTLITERAL", + "INTEGERLITERAL", "INTEGERTYPESUFFIX", "FLOATINGPOINTTYPESUFFIX", "EXPONENT", + "EXPONENTLETTER", "EXPONENTSIGN", "DECIMALLITERAL", "DATELITERAL", "DATEORTIME", + "DATEVALUE", "DATEVALUEPART", "DATESEPARATOR", "MONTHNAME", "ENGLISHMONTHNAME", + "ENGLISHMONTHABBREVIATION", "TIMEVALUE", "TIMESEPARATOR", "AMPM", "JANUARY", + "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", + "OCTOBER", "NOVEMBER", "DECEMBER", "JAN", "FEB", "MAR", "APR", "JUN", + "JUL", "AUG", "SEP", "OCT", "NOV", "DEC", "NEWLINE", "REMCOMMENT", "COMMENT", + "SINGLEQUOTE", "UNDERSCORE", "WS", "IDENTIFIER", "LINE_CONTINUATION", + "GUIDLITERAL", "LETTER", "DIGIT", "LETTERORDIGIT", "A", "B", "C", "D", + "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", + "S", "T", "U", "V", "W", "X", "Y", "Z", "ERRORCHAR" }; @@ -177,10 +168,10 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\x104\xAB3\b\x1"+ - "\x4\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b"+ - "\t\b\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF"+ - "\x4\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF2\x9FF\b\x1\x4"+ + "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ + "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ + "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ "\t\x15\x4\x16\t\x16\x4\x17\t\x17\x4\x18\t\x18\x4\x19\t\x19\x4\x1A\t\x1A"+ "\x4\x1B\t\x1B\x4\x1C\t\x1C\x4\x1D\t\x1D\x4\x1E\t\x1E\x4\x1F\t\x1F\x4 "+ "\t \x4!\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t"+ @@ -229,1192 +220,1106 @@ public VBALexer(ICharStream input) "\t\x126\x4\x127\t\x127\x4\x128\t\x128\x4\x129\t\x129\x4\x12A\t\x12A\x4"+ "\x12B\t\x12B\x4\x12C\t\x12C\x4\x12D\t\x12D\x4\x12E\t\x12E\x4\x12F\t\x12F"+ "\x4\x130\t\x130\x4\x131\t\x131\x4\x132\t\x132\x4\x133\t\x133\x4\x134\t"+ - "\x134\x4\x135\t\x135\x4\x136\t\x136\x4\x137\t\x137\x4\x138\t\x138\x4\x139"+ - "\t\x139\x4\x13A\t\x13A\x4\x13B\t\x13B\x4\x13C\t\x13C\x4\x13D\t\x13D\x4"+ - "\x13E\t\x13E\x4\x13F\t\x13F\x4\x140\t\x140\x4\x141\t\x141\x4\x142\t\x142"+ - "\x4\x143\t\x143\x4\x144\t\x144\x4\x145\t\x145\x4\x146\t\x146\x4\x147\t"+ - "\x147\x4\x148\t\x148\x3\x2\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\x3\x3\x3"+ - "\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5"+ - "\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x3\a\x3\a\x3\b\x3"+ - "\b\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3"+ - "\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\f\x3\r\x3"+ - "\r\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12"+ - "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13"+ - "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16"+ - "\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x3\x18"+ - "\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A"+ - "\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C"+ - "\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E"+ - "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F"+ - "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3!\x3"+ - "!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3"+ - "$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x3\'"+ - "\x3\'\x3\'\x3(\x3(\x3)\x3)\x3*\x3*\x3+\x3+\x3,\x3,\x3-\x3-\x3.\x3.\x3"+ - "/\x3/\x3\x30\x3\x30\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32\x3\x32\x3\x32\x3"+ - "\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3"+ - "\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3"+ - "\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3"+ - "\x36\x3\x36\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3"+ - "\x37\x3\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3\x38\x3"+ - "\x38\x3\x39\x3\x39\x3\x39\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;"+ - "\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3>\x3>\x3"+ - ">\x3>\x3>\x3>\x3?\x3?\x3?\x3?\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3\x41\x3\x41"+ - "\x3\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x43\x3\x43"+ - "\x3\x43\x3\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44"+ - "\x3\x44\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x46\x3\x46"+ - "\x3\x46\x3\x46\x3\x46\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3H\x3H\x3H\x3"+ - "H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J\x3J\x3J\x3J\x3J"+ - "\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3M\x3"+ - "M\x3M\x3M\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3O\x3O\x3O\x3O"+ - "\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3"+ - "R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x3S\x3S\x3S\x3S"+ - "\x3S\x3S\x3T\x3T\x3T\x3T\x3T\x3T\x3T\x3U\x3U\x3U\x3U\x3U\x3U\x3U\x3V\x3"+ - "V\x3V\x3V\x3V\x3V\x3V\x3W\x3W\x3W\x3W\x3W\x3W\x3W\x3X\x3X\x3X\x3X\x3X"+ - "\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z\x3Z\x3[\x3"+ - "[\x3[\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3"+ - "^\x3^\x3^\x3^\x3^\x3^\x3^\x3_\x3_\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3`"+ - "\x3`\x3`\x3`\x3`\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61"+ - "\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62"+ - "\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63"+ - "\x3\x63\x3\x63\x3\x63\x3\x63\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64"+ - "\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65"+ - "\x3\x65\x3\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66"+ - "\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3g\x3h\x3h\x3h"+ - "\x3h\x3i\x3i\x3i\x3i\x3i\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3k\x3l\x3"+ - "l\x3l\x3l\x3l\x3l\x3m\x3m\x3m\x3m\x3m\x3m\x3n\x3n\x3n\x3n\x3n\x3n\x3n"+ - "\x3n\x3o\x3o\x3o\x3o\x3o\x3o\x3o\x3o\x3o\x3p\x3p\x3p\x3p\x3p\x3p\x3p\x3"+ - "p\x3p\x3p\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q"+ - "\x3q\x3q\x3q\x3r\x3r\x3r\x3r\x3r\x3r\x3r\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3"+ - "s\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3u\x3u\x3u\x3u\x3u\x3u\x3v"+ - "\x3v\x3v\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3y\x3"+ - "y\x3y\x3y\x3y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3{\x3{\x3|"+ - "\x3|\x3|\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3~\x3"+ - "\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81\x3"+ - "\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3"+ - "\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3"+ - "\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ - "\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3\x88\x3\x89\x3"+ - "\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8A\x3\x8B\x3\x8B\x3"+ - "\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3"+ - "\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3\x8D\x3"+ - "\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8D\x3"+ - "\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3"+ - "\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3"+ - "\x8F\x3\x90\x3\x90\x3\x90\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3\x92\x3"+ - "\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3\x94\x3"+ - "\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x96\x3\x96\x3"+ - "\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3"+ - "\x98\x3\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x99\x3\x99\x3\x9A\x3"+ - "\x9A\x3\x9A\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3"+ - "\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3"+ - "\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3"+ - "\x9D\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3"+ + "\x134\x4\x135\t\x135\x4\x136\t\x136\x3\x2\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3"+ + "\x3\x3\x3\x3\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3"+ + "\x5\x3\x5\x3\x5\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x3"+ + "\a\x3\a\x3\b\x3\b\x3\b\x3\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\n\x3"+ + "\n\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x3"+ + "\f\x3\f\x3\r\x3\r\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3"+ + "\xE\x3\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x12\x3\x12"+ + "\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13"+ + "\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16"+ + "\x3\x16\x3\x16\x3\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x18\x3\x18"+ + "\x3\x18\x3\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A"+ + "\x3\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B"+ + "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1E"+ + "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F"+ + "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3 \x3!\x3"+ + "!\x3!\x3!\x3!\x3!\x3\"\x3\"\x3\"\x3\"\x3\"\x3#\x3#\x3#\x3#\x3#\x3#\x3"+ + "#\x3$\x3$\x3$\x3$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x3&\x3&\x3&\x3&\x3\'\x3"+ + "\'\x3\'\x3\'\x3\'\x3\'\x3\'\x3(\x3(\x3)\x3)\x3*\x3*\x3+\x3+\x3,\x3,\x3"+ + "-\x3-\x3.\x3.\x3/\x3/\x3\x30\x3\x30\x3\x31\x3\x31\x3\x32\x3\x32\x3\x32"+ + "\x3\x32\x3\x32\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33"+ + "\x3\x33\x3\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34"+ + "\x3\x35\x3\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36\x3\x36"+ + "\x3\x36\x3\x36\x3\x36\x3\x36\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37\x3\x37"+ + "\x3\x37\x3\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39"+ + "\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3;\x3<\x3<\x3"+ + "<\x3<\x3<\x3<\x3=\x3=\x3=\x3=\x3=\x3=\x3>\x3>\x3>\x3>\x3>\x3?\x3?\x3?"+ + "\x3?\x3?\x3@\x3@\x3@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41"+ + "\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43"+ + "\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44"+ + "\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x46\x3\x46\x3\x46\x3\x46"+ + "\x3\x46\x3\x46\x3\x46\x3\x46\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3G\x3H\x3H\x3"+ + "H\x3H\x3H\x3H\x3H\x3H\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3I\x3J\x3J\x3J\x3J"+ + "\x3J\x3J\x3J\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3L\x3L\x3L\x3L\x3L\x3L\x3L\x3"+ + "M\x3M\x3M\x3M\x3M\x3M\x3M\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3N\x3O"+ + "\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3Q\x3"+ + "Q\x3Q\x3Q\x3Q\x3Q\x3Q\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3S\x3S\x3S\x3S\x3S"+ + "\x3S\x3S\x3T\x3T\x3T\x3T\x3U\x3U\x3U\x3V\x3V\x3V\x3V\x3V\x3V\x3V\x3W\x3"+ + "W\x3W\x3W\x3W\x3X\x3X\x3X\x3X\x3X\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Y\x3Z\x3Z"+ + "\x3Z\x3Z\x3Z\x3Z\x3[\x3[\x3[\x3[\x3[\x3[\x3[\x3[\x3[\x3\\\x3\\\x3\\\x3"+ + "\\\x3\\\x3\\\x3\\\x3\\\x3\\\x3\\\x3\\\x3\\\x3\\\x3]\x3]\x3]\x3]\x3]\x3"+ + "]\x3]\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3^\x3_\x3_\x3_"+ + "\x3_\x3_\x3_\x3_\x3_\x3_\x3_\x3_\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x3`\x3\x61"+ + "\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x61\x3\x62\x3\x62"+ + "\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x62\x3\x63\x3\x63\x3\x63"+ + "\x3\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65"+ + "\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3\x66\x3g\x3g\x3g\x3g\x3g\x3g\x3"+ + "h\x3h\x3h\x3h\x3h\x3h\x3i\x3i\x3i\x3i\x3i\x3i\x3i\x3i\x3j\x3j\x3j\x3j"+ + "\x3j\x3j\x3j\x3j\x3j\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3k\x3"+ + "k\x3k\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3l\x3m\x3m"+ + "\x3m\x3m\x3m\x3m\x3m\x3m\x3m\x3n\x3n\x3n\x3n\x3n\x3n\x3o\x3o\x3o\x3o\x3"+ + "o\x3o\x3o\x3p\x3p\x3p\x3p\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3q\x3r\x3r"+ + "\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3t\x3t\x3t\x3t\x3t\x3t\x3u\x3u\x3"+ + "u\x3u\x3u\x3v\x3v\x3v\x3w\x3w\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x"+ + "\x3x\x3x\x3x\x3y\x3y\x3y\x3z\x3z\x3z\x3z\x3z\x3z\x3{\x3{\x3{\x3|\x3|\x3"+ + "|\x3|\x3|\x3|\x3|\x3|\x3}\x3}\x3}\x3}\x3}\x3~\x3~\x3~\x3~\x3~\x3\x7F\x3"+ + "\x7F\x3\x7F\x3\x7F\x3\x7F\x3\x80\x3\x80\x3\x80\x3\x80\x3\x81\x3\x81\x3"+ + "\x81\x3\x81\x3\x82\x3\x82\x3\x82\x3\x82\x3\x82\x3\x83\x3\x83\x3\x83\x3"+ + "\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x83\x3\x84\x3\x84\x3"+ + "\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x84\x3\x85\x3\x85\x3"+ + "\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x85\x3\x86\x3"+ + "\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3"+ + "\x86\x3\x86\x3\x86\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x3\x87\x3\x87\x3"+ + "\x88\x3\x88\x3\x88\x3\x89\x3\x89\x3\x89\x3\x89\x3\x8A\x3\x8A\x3\x8A\x3"+ + "\x8A\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8C\x3\x8C\x3"+ + "\x8D\x3\x8D\x3\x8D\x3\x8D\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3\x8E\x3"+ + "\x8E\x3\x8E\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x8F\x3\x90\x3\x90\x3\x90\x3"+ + "\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x91\x3\x92\x3"+ + "\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3\x92\x3"+ + "\x92\x3\x92\x3\x92\x3\x92\x3\x93\x3\x93\x3\x93\x3\x93\x3\x93\x3\x94\x3"+ + "\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x94\x3\x95\x3\x95\x3"+ + "\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3\x95\x3"+ + "\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3"+ + "\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x96\x3\x97\x3\x97\x3\x97\x3\x97\x3"+ + "\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3\x97\x3"+ + "\x97\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3"+ + "\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3\x98\x3"+ + "\x98\x3\x98\x3\x98\x3\x99\x3\x99\x3\x99\x3\x9A\x3\x9A\x3\x9A\x3\x9A\x3"+ + "\x9A\x3\x9A\x3\x9A\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9B\x3"+ + "\x9B\x3\x9B\x3\x9B\x3\x9B\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3\x9C\x3"+ + "\x9C\x3\x9C\x3\x9C\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9D\x3\x9E\x3"+ + "\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9E\x3\x9F\x3\x9F\x3\x9F\x3"+ "\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3\x9F\x3"+ - "\x9F\x3\x9F\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3"+ - "\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3"+ - "\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3"+ - "\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3"+ - "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3"+ - "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA4\x3\xA4\x3"+ - "\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3"+ - "\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3"+ - "\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3"+ - "\xA7\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3"+ - "\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3"+ - "\xA9\x3\xA9\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3"+ - "\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3"+ - "\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3"+ - "\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3"+ - "\xAD\x3\xAD\x3\xAD\x3\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3"+ - "\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3"+ - "\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3"+ - "\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3"+ - "\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB3\x3"+ - "\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3\xB5\x3"+ - "\xB5\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB7\x3\xB7\x3\xB7\x3"+ - "\xB7\x3\xB7\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3"+ - "\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA\x3\xBA\x3"+ - "\xBA\x3\xBA\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3"+ - "\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3"+ - "\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBD\x3\xBD\x3\xBD\x3\xBD\x3"+ - "\xBD\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBF\x3\xBF\x3"+ - "\xBF\x3\xBF\x3\xBF\x3\xBF\x3\xBF\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC0\x3"+ - "\xC0\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC2\x3"+ - "\xC2\x3\xC2\x3\xC2\x3\xC2\x3\xC2\x3\xC2\x3\xC3\x3\xC3\x3\xC3\x3\xC3\x3"+ - "\xC3\x3\xC3\x3\xC3\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC5\x3\xC5\x3\xC5\x3"+ - "\xC5\x3\xC5\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC6\x3\xC6\x3\xC6\x3\xC7\x3"+ - "\xC7\x3\xC7\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC8\x3\xC8\x3\xC8\x3\xC8\x3"+ - "\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x3\xCB\x3"+ - "\xCB\x3\xCB\x3\xCB\x3\xCB\x3\xCC\x3\xCC\x3\xCC\x3\xCC\x3\xCC\x3\xCD\x3"+ - "\xCD\x3\xCD\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCE\x3\xCF\x3\xCF\x3\xCF\x3"+ - "\xCF\x3\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x3\xD1\x3\xD1\x3\xD1\x3"+ - "\xD1\x3\xD1\x3\xD1\x3\xD1\x3\xD2\x3\xD2\x3\xD2\x3\xD2\x3\xD2\x3\xD2\x3"+ - "\xD2\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD3\x3\xD4\x3\xD4\x3"+ - "\xD4\x3\xD4\x3\xD4\x3\xD4\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3\xD5\x3"+ - "\xD5\x3\xD5\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3\xD6\x3"+ - "\xD7\x3\xD7\x3\xD7\x3\xD7\x3\xD7\x3\xD8\x3\xD8\x3\xD8\x3\xD8\x3\xD8\x3"+ - "\xD8\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xD9\x3\xDA\x3\xDA\x3\xDA\x3"+ - "\xDA\x3\xDA\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDB\x3"+ - "\xDB\x3\xDB\x3\xDB\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDD\x3"+ - "\xDD\x3\xDD\x3\xDD\x3\xDE\x3\xDE\x3\xDE\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3"+ - "\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2\x3\xE2\x5\xE2\x85F\n\xE2\x3\xE3\x3\xE3"+ - "\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x5\xE4\x867\n\xE4\x3\xE5\x3\xE5\x3\xE6\x3"+ - "\xE6\x3\xE7\x3\xE7\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xE9\x3\xE9\x5\xE9\x875"+ - "\n\xE9\x3\xEA\x3\xEA\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xED\a\xED\x87E\n\xED"+ - "\f\xED\xE\xED\x881\v\xED\x3\xED\x3\xED\x3\xED\x3\xEE\a\xEE\x887\n\xEE"+ - "\f\xEE\xE\xEE\x88A\v\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\a\xEF\x891"+ - "\n\xEF\f\xEF\xE\xEF\x894\v\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xEF"+ - "\x3\xEF\x3\xEF\x3\xF0\a\xF0\x89F\n\xF0\f\xF0\xE\xF0\x8A2\v\xF0\x3\xF0"+ - "\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF1\a\xF1\x8AB\n\xF1\f\xF1\xE\xF1"+ - "\x8AE\v\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF1\a\xF1\x8B5\n\xF1\f\xF1"+ - "\xE\xF1\x8B8\v\xF1\x3\xF1\x3\xF1\x3\xF1\x3\xF2\x3\xF2\x3\xF3\x3\xF3\x3"+ - "\xF4\x3\xF4\x3\xF4\x3\xF4\a\xF4\x8C5\n\xF4\f\xF4\xE\xF4\x8C8\v\xF4\x3"+ - "\xF4\x3\xF4\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x6\xF5\x8D0\n\xF5\r\xF5\xE\xF5"+ - "\x8D1\x3\xF5\x5\xF5\x8D5\n\xF5\x3\xF6\x3\xF6\x3\xF6\x3\xF6\x6\xF6\x8DB"+ - "\n\xF6\r\xF6\xE\xF6\x8DC\x3\xF6\x5\xF6\x8E0\n\xF6\x3\xF7\x3\xF7\x5\xF7"+ - "\x8E4\n\xF7\x3\xF7\x3\xF7\x3\xF7\x5\xF7\x8E9\n\xF7\x3\xF8\x3\xF8\x3\xF8"+ - "\x3\xF8\x3\xF8\x3\xF8\x5\xF8\x8F1\n\xF8\x3\xF8\x5\xF8\x8F4\n\xF8\x3\xF8"+ - "\x3\xF8\x3\xF8\x5\xF8\x8F9\n\xF8\x5\xF8\x8FB\n\xF8\x3\xF9\x3\xF9\x5\xF9"+ - "\x8FF\n\xF9\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x5\xFC\x907\n\xFC"+ - "\x3\xFC\x6\xFC\x90A\n\xFC\r\xFC\xE\xFC\x90B\x3\xFD\x3\xFD\x3\xFE\x3\xFE"+ - "\x3\xFF\x6\xFF\x913\n\xFF\r\xFF\xE\xFF\x914\x3\x100\x3\x100\x3\x100\x3"+ - "\x100\x3\x101\x3\x101\x5\x101\x91D\n\x101\x3\x101\x3\x101\x3\x101\x3\x101"+ - "\x5\x101\x923\n\x101\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x5"+ - "\x102\x92B\n\x102\x3\x103\x6\x103\x92E\n\x103\r\x103\xE\x103\x92F\x3\x103"+ - "\x5\x103\x933\n\x103\x3\x104\x5\x104\x936\n\x104\x3\x104\x5\x104\x939"+ - "\n\x104\x3\x104\x5\x104\x93C\n\x104\x3\x105\x3\x105\x5\x105\x940\n\x105"+ - "\x3\x106\x3\x106\x3\x106\x3\x106\x3\x106\x3\x106\x3\x106\x3\x106\x3\x106"+ - "\x3\x106\x3\x106\x3\x106\x5\x106\x94E\n\x106\x3\x107\x3\x107\x3\x107\x3"+ - "\x107\x3\x107\x3\x107\x3\x107\x3\x107\x3\x107\x3\x107\x3\x107\x5\x107"+ - "\x95B\n\x107\x3\x108\x6\x108\x95E\n\x108\r\x108\xE\x108\x95F\x3\x108\x3"+ - "\x108\x3\x108\x6\x108\x965\n\x108\r\x108\xE\x108\x966\x3\x108\x3\x108"+ - "\x6\x108\x96B\n\x108\r\x108\xE\x108\x96C\x3\x108\x3\x108\x6\x108\x971"+ - "\n\x108\r\x108\xE\x108\x972\x5\x108\x975\n\x108\x3\x108\x5\x108\x978\n"+ - "\x108\x5\x108\x97A\n\x108\x3\x109\x5\x109\x97D\n\x109\x3\x109\x3\x109"+ - "\x5\x109\x981\n\x109\x3\x10A\x5\x10A\x984\n\x10A\x3\x10A\x3\x10A\x3\x10A"+ - "\x3\x10A\x3\x10A\x3\x10A\x3\x10A\x3\x10A\x5\x10A\x98E\n\x10A\x3\x10B\x3"+ - "\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10C\x3\x10C"+ - "\x3\x10C\x3\x10C\x3\x10C\x3\x10C\x3\x10C\x3\x10C\x3\x10C\x3\x10D\x3\x10D"+ - "\x3\x10D\x3\x10D\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10E\x3\x10E\x3\x10E"+ - "\x3\x10E\x3\x10F\x3\x10F\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x110\x3\x110"+ - "\x3\x110\x3\x111\x3\x111\x3\x111\x3\x111\x3\x111\x3\x112\x3\x112\x3\x112"+ - "\x3\x112\x3\x112\x3\x112\x3\x112\x3\x113\x3\x113\x3\x113\x3\x113\x3\x113"+ - "\x3\x113\x3\x113\x3\x113\x3\x113\x3\x113\x3\x114\x3\x114\x3\x114\x3\x114"+ - "\x3\x114\x3\x114\x3\x114\x3\x114\x3\x115\x3\x115\x3\x115\x3\x115\x3\x115"+ - "\x3\x115\x3\x115\x3\x115\x3\x115\x3\x116\x3\x116\x3\x116\x3\x116\x3\x116"+ - "\x3\x116\x3\x116\x3\x116\x3\x116\x3\x117\x3\x117\x3\x117\x3\x117\x3\x118"+ - "\x3\x118\x3\x118\x3\x118\x3\x119\x3\x119\x3\x119\x3\x119\x3\x11A\x3\x11A"+ - "\x3\x11A\x3\x11A\x3\x11B\x3\x11B\x3\x11B\x3\x11B\x3\x11C\x3\x11C\x3\x11C"+ - "\x3\x11C\x3\x11D\x3\x11D\x3\x11D\x3\x11D\x3\x11E\x3\x11E\x3\x11E\x3\x11E"+ - "\x3\x11F\x3\x11F\x3\x11F\x3\x11F\x3\x120\x3\x120\x3\x120\x3\x120\x3\x121"+ - "\x3\x121\x3\x121\x3\x121\x3\x122\x3\x122\x3\x122\x5\x122\xA15\n\x122\x3"+ - "\x123\x5\x123\xA18\n\x123\x3\x123\x3\x123\x3\x123\x3\x123\a\x123\xA1E"+ - "\n\x123\f\x123\xE\x123\xA21\v\x123\x3\x124\x3\x124\x3\x124\x5\x124\xA26"+ - "\n\x124\x3\x124\x3\x124\a\x124\xA2A\n\x124\f\x124\xE\x124\xA2D\v\x124"+ - "\x3\x125\x3\x125\x3\x126\x3\x126\x3\x127\x3\x127\x3\x128\x3\x128\a\x128"+ - "\xA37\n\x128\f\x128\xE\x128\xA3A\v\x128\x3\x128\x3\x128\x6\x128\xA3E\n"+ - "\x128\r\x128\xE\x128\xA3F\x3\x128\x3\x128\x5\x128\xA44\n\x128\x3\x129"+ - "\a\x129\xA47\n\x129\f\x129\xE\x129\xA4A\v\x129\x3\x129\x3\x129\a\x129"+ - "\xA4E\n\x129\f\x129\xE\x129\xA51\v\x129\x3\x129\x5\x129\xA54\n\x129\x3"+ - "\x129\x3\x129\x3\x12A\x3\x12A\x6\x12A\xA5A\n\x12A\r\x12A\xE\x12A\xA5B"+ - "\x3\x12A\x3\x12A\x6\x12A\xA60\n\x12A\r\x12A\xE\x12A\xA61\x3\x12A\x3\x12A"+ - "\x6\x12A\xA66\n\x12A\r\x12A\xE\x12A\xA67\x3\x12A\x3\x12A\x6\x12A\xA6C"+ - "\n\x12A\r\x12A\xE\x12A\xA6D\x3\x12A\x3\x12A\x6\x12A\xA72\n\x12A\r\x12A"+ - "\xE\x12A\xA73\x3\x12A\x3\x12A\x3\x12B\x3\x12B\x3\x12C\x3\x12C\x3\x12D"+ - "\x3\x12D\x3\x12E\x3\x12E\x3\x12F\x3\x12F\x3\x130\x3\x130\x3\x131\x3\x131"+ - "\x3\x132\x3\x132\x3\x133\x3\x133\x3\x134\x3\x134\x3\x135\x3\x135\x3\x136"+ - "\x3\x136\x3\x137\x3\x137\x3\x138\x3\x138\x3\x139\x3\x139\x3\x13A\x3\x13A"+ - "\x3\x13B\x3\x13B\x3\x13C\x3\x13C\x3\x13D\x3\x13D\x3\x13E\x3\x13E\x3\x13F"+ - "\x3\x13F\x3\x140\x3\x140\x3\x141\x3\x141\x3\x142\x3\x142\x3\x143\x3\x143"+ - "\x3\x144\x3\x144\x3\x145\x3\x145\x3\x146\x3\x146\x3\x147\x3\x147\x3\x148"+ - "\x3\x148\x2\x2\x2\x149\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b"+ - "\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2"+ - "\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18"+ - "/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F"+ - "=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2"+ - "+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63\x2\x33\x65\x2\x34"+ - "g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u\x2{\x2"+ - "?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87\x2\x45\x89\x2\x46"+ - "\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2"+ - "O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD"+ - "\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`"+ - "\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB"+ - "\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD"+ - "\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF"+ - "\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF"+ - "\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B"+ - "\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117"+ - "\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123"+ - "\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F"+ - "\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B"+ - "\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147"+ - "\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153"+ - "\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F"+ - "\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B"+ - "\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177"+ - "\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183"+ - "\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F"+ - "\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B"+ - "\x2\xCF\x19D\x2\xD0\x19F\x2\xD1\x1A1\x2\xD2\x1A3\x2\xD3\x1A5\x2\xD4\x1A7"+ - "\x2\xD5\x1A9\x2\xD6\x1AB\x2\xD7\x1AD\x2\xD8\x1AF\x2\xD9\x1B1\x2\xDA\x1B3"+ - "\x2\xDB\x1B5\x2\xDC\x1B7\x2\xDD\x1B9\x2\xDE\x1BB\x2\xDF\x1BD\x2\xE0\x1BF"+ - "\x2\xE1\x1C1\x2\xE2\x1C3\x2\xE3\x1C5\x2\xE4\x1C7\x2\xE5\x1C9\x2\xE6\x1CB"+ - "\x2\xE7\x1CD\x2\xE8\x1CF\x2\xE9\x1D1\x2\xEA\x1D3\x2\xEB\x1D5\x2\xEC\x1D7"+ - "\x2\xED\x1D9\x2\xEE\x1DB\x2\xEF\x1DD\x2\xF0\x1DF\x2\xF1\x1E1\x2\xF2\x1E3"+ - "\x2\xF3\x1E5\x2\xF4\x1E7\x2\xF5\x1E9\x2\xF6\x1EB\x2\xF7\x1ED\x2\xF8\x1EF"+ - "\x2\x2\x1F1\x2\xF9\x1F3\x2\x2\x1F5\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2"+ - "\x2\x1FD\x2\x2\x1FF\x2\xFA\x201\x2\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2"+ - "\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215"+ - "\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2\x2\x221\x2"+ - "\x2\x223\x2\x2\x225\x2\x2\x227\x2\x2\x229\x2\x2\x22B\x2\x2\x22D\x2\x2"+ - "\x22F\x2\x2\x231\x2\x2\x233\x2\x2\x235\x2\x2\x237\x2\x2\x239\x2\x2\x23B"+ - "\x2\x2\x23D\x2\x2\x23F\x2\x2\x241\x2\x2\x243\x2\xFB\x245\x2\xFC\x247\x2"+ - "\xFD\x249\x2\xFE\x24B\x2\xFF\x24D\x2\x100\x24F\x2\x101\x251\x2\x102\x253"+ - "\x2\x103\x255\x2\x2\x257\x2\x2\x259\x2\x2\x25B\x2\x2\x25D\x2\x2\x25F\x2"+ - "\x2\x261\x2\x2\x263\x2\x2\x265\x2\x2\x267\x2\x2\x269\x2\x2\x26B\x2\x2"+ - "\x26D\x2\x2\x26F\x2\x2\x271\x2\x2\x273\x2\x2\x275\x2\x2\x277\x2\x2\x279"+ - "\x2\x2\x27B\x2\x2\x27D\x2\x2\x27F\x2\x2\x281\x2\x2\x283\x2\x2\x285\x2"+ - "\x2\x287\x2\x2\x289\x2\x2\x28B\x2\x2\x28D\x2\x2\x28F\x2\x104\x3\x2.\x5"+ - "\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x4\x2\'(``\x5\x2##%%\x42\x42"+ - "\x4\x2\x46G\x66g\x4\x2--//\x4\x2./\x31\x31\x4\x2\x30\x30<<\x5\x2\f\f\xF"+ - "\xF\x202A\x202B\x6\x2\f\f\xF\xF\x42\x42\x202A\x202B\x4\x2\v\v\"\"\t\x2"+ - "\v\f\xF\xF\"=??\x42\x42]`~~\v\x2\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~"+ - "\x6\x2\f\f\xF\xF##^_\f\x2\x43\\\x61\x61\x63|\xA6\xA6\xB8\xB8\xBE\xBE\xC5"+ - "\xC5\x155\x155\x2015\x2015\x2020\x2020\x3\x2\x32;\r\x2\x32;\x43\\\x61"+ + "\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3\xA0\x3"+ + "\xA0\x3\xA0\x3\xA0\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3"+ + "\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA1\x3\xA2\x3\xA2\x3\xA2\x3\xA2\x3"+ + "\xA2\x3\xA2\x3\xA2\x3\xA2\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3\xA3\x3"+ + "\xA3\x3\xA4\x3\xA4\x3\xA4\x3\xA4\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3\xA5\x3"+ + "\xA5\x3\xA5\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3\xA6\x3"+ + "\xA6\x3\xA6\x3\xA6\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA7\x3\xA8\x3\xA8\x3"+ + "\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA8\x3\xA9\x3"+ + "\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xA9\x3\xAA\x3\xAA\x3\xAA\x3\xAA\x3\xAB\x3"+ + "\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAB\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3\xAC\x3"+ + "\xAC\x3\xAC\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAD\x3\xAE\x3"+ + "\xAE\x3\xAE\x3\xAE\x3\xAE\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xAF\x3\xB0\x3"+ + "\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB0\x3\xB1\x3\xB1\x3\xB1\x3\xB1\x3"+ + "\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB2\x3\xB3\x3\xB3\x3\xB3\x3"+ + "\xB3\x3\xB3\x3\xB3\x3\xB3\x3\xB4\x3\xB4\x3\xB4\x3\xB4\x3\xB5\x3\xB5\x3"+ + "\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB5\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3\xB6\x3"+ + "\xB7\x3\xB7\x3\xB7\x3\xB7\x3\xB7\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3\xB8\x3"+ + "\xB8\x3\xB8\x3\xB9\x3\xB9\x3\xB9\x3\xB9\x3\xBA\x3\xBA\x3\xBA\x3\xBA\x3"+ + "\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBB\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3\xBC\x3"+ + "\xBD\x3\xBD\x3\xBD\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBE\x3\xBF\x3\xBF\x3"+ + "\xBF\x3\xBF\x3\xBF\x3\xC0\x3\xC0\x3\xC0\x3\xC0\x3\xC0\x3\xC0\x3\xC0\x3"+ + "\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC1\x3\xC2\x3\xC2\x3\xC2\x3"+ + "\xC2\x3\xC2\x3\xC2\x3\xC3\x3\xC3\x3\xC3\x3\xC3\x3\xC3\x3\xC3\x3\xC3\x3"+ + "\xC3\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC4\x3\xC5\x3"+ + "\xC5\x3\xC5\x3\xC5\x3\xC5\x3\xC6\x3\xC6\x3\xC6\x3\xC6\x3\xC6\x3\xC6\x3"+ + "\xC7\x3\xC7\x3\xC7\x3\xC7\x3\xC7\x3\xC7\x3\xC8\x3\xC8\x3\xC8\x3\xC8\x3"+ + "\xC8\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3\xC9\x3"+ + "\xC9\x3\xC9\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x3\xCA\x3\xCB\x3\xCB\x3"+ + "\xCB\x3\xCB\x3\xCC\x3\xCC\x3\xCC\x3\xCD\x3\xCD\x3\xCE\x3\xCE\x3\xCF\x3"+ + "\xCF\x3\xD0\x3\xD0\x3\xD0\x3\xD0\x5\xD0\x7AB\n\xD0\x3\xD1\x3\xD1\x3\xD2"+ + "\x3\xD2\x3\xD2\x3\xD2\x5\xD2\x7B3\n\xD2\x3\xD3\x3\xD3\x3\xD4\x3\xD4\x3"+ + "\xD5\x3\xD5\x3\xD6\x3\xD6\x3\xD7\x3\xD7\x3\xD7\x3\xD7\x5\xD7\x7C1\n\xD7"+ + "\x3\xD8\x3\xD8\x3\xD9\x3\xD9\x3\xDA\x3\xDA\x3\xDB\a\xDB\x7CA\n\xDB\f\xDB"+ + "\xE\xDB\x7CD\v\xDB\x3\xDB\x3\xDB\x3\xDB\x3\xDC\a\xDC\x7D3\n\xDC\f\xDC"+ + "\xE\xDC\x7D6\v\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDD\a\xDD\x7DD\n\xDD"+ + "\f\xDD\xE\xDD\x7E0\v\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3"+ + "\xDD\x3\xDD\x3\xDE\a\xDE\x7EB\n\xDE\f\xDE\xE\xDE\x7EE\v\xDE\x3\xDE\x3"+ + "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDF\a\xDF\x7F7\n\xDF\f\xDF\xE\xDF"+ + "\x7FA\v\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\a\xDF\x801\n\xDF\f\xDF"+ + "\xE\xDF\x804\v\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xE0\x3\xE0\x3\xE1\x3\xE1\x3"+ + "\xE2\x3\xE2\x3\xE2\x3\xE2\a\xE2\x811\n\xE2\f\xE2\xE\xE2\x814\v\xE2\x3"+ + "\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x6\xE3\x81C\n\xE3\r\xE3\xE\xE3"+ + "\x81D\x3\xE3\x5\xE3\x821\n\xE3\x3\xE4\x3\xE4\x3\xE4\x3\xE4\x6\xE4\x827"+ + "\n\xE4\r\xE4\xE\xE4\x828\x3\xE4\x5\xE4\x82C\n\xE4\x3\xE5\x3\xE5\x5\xE5"+ + "\x830\n\xE5\x3\xE5\x3\xE5\x3\xE5\x5\xE5\x835\n\xE5\x3\xE6\x3\xE6\x3\xE6"+ + "\x3\xE6\x3\xE6\x3\xE6\x5\xE6\x83D\n\xE6\x3\xE6\x5\xE6\x840\n\xE6\x3\xE6"+ + "\x3\xE6\x3\xE6\x5\xE6\x845\n\xE6\x5\xE6\x847\n\xE6\x3\xE7\x3\xE7\x5\xE7"+ + "\x84B\n\xE7\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3\xEA\x3\xEA\x5\xEA\x853\n\xEA"+ + "\x3\xEA\x6\xEA\x856\n\xEA\r\xEA\xE\xEA\x857\x3\xEB\x3\xEB\x3\xEC\x3\xEC"+ + "\x3\xED\x6\xED\x85F\n\xED\r\xED\xE\xED\x860\x3\xEE\x3\xEE\x3\xEE\x3\xEE"+ + "\x3\xEF\x3\xEF\x5\xEF\x869\n\xEF\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x5\xEF\x86F"+ + "\n\xEF\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x5\xF0\x877\n\xF0\x3"+ + "\xF1\x6\xF1\x87A\n\xF1\r\xF1\xE\xF1\x87B\x3\xF1\x5\xF1\x87F\n\xF1\x3\xF2"+ + "\x5\xF2\x882\n\xF2\x3\xF2\x5\xF2\x885\n\xF2\x3\xF2\x5\xF2\x888\n\xF2\x3"+ + "\xF3\x3\xF3\x5\xF3\x88C\n\xF3\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4"+ + "\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x5\xF4\x89A\n\xF4\x3\xF5\x3"+ + "\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x5"+ + "\xF5\x8A7\n\xF5\x3\xF6\x6\xF6\x8AA\n\xF6\r\xF6\xE\xF6\x8AB\x3\xF6\x3\xF6"+ + "\x3\xF6\x6\xF6\x8B1\n\xF6\r\xF6\xE\xF6\x8B2\x3\xF6\x3\xF6\x6\xF6\x8B7"+ + "\n\xF6\r\xF6\xE\xF6\x8B8\x3\xF6\x3\xF6\x6\xF6\x8BD\n\xF6\r\xF6\xE\xF6"+ + "\x8BE\x5\xF6\x8C1\n\xF6\x3\xF6\x5\xF6\x8C4\n\xF6\x5\xF6\x8C6\n\xF6\x3"+ + "\xF7\x5\xF7\x8C9\n\xF7\x3\xF7\x3\xF7\x5\xF7\x8CD\n\xF7\x3\xF8\x5\xF8\x8D0"+ + "\n\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x5\xF8"+ + "\x8DA\n\xF8\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3"+ + "\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFB\x3"+ + "\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3"+ + "\xFC\x3\xFD\x3\xFD\x3\xFD\x3\xFD\x3\xFE\x3\xFE\x3\xFE\x3\xFE\x3\xFE\x3"+ + "\xFF\x3\xFF\x3\xFF\x3\xFF\x3\xFF\x3\x100\x3\x100\x3\x100\x3\x100\x3\x100"+ + "\x3\x100\x3\x100\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101"+ + "\x3\x101\x3\x101\x3\x101\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102"+ + "\x3\x102\x3\x102\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103"+ + "\x3\x103\x3\x103\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104"+ + "\x3\x104\x3\x104\x3\x105\x3\x105\x3\x105\x3\x105\x3\x106\x3\x106\x3\x106"+ + "\x3\x106\x3\x107\x3\x107\x3\x107\x3\x107\x3\x108\x3\x108\x3\x108\x3\x108"+ + "\x3\x109\x3\x109\x3\x109\x3\x109\x3\x10A\x3\x10A\x3\x10A\x3\x10A\x3\x10B"+ + "\x3\x10B\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10C\x3\x10C\x3\x10D\x3\x10D"+ + "\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10E\x3\x10E\x3\x10F\x3\x10F\x3\x10F"+ + "\x3\x10F\x3\x110\x3\x110\x3\x110\x5\x110\x961\n\x110\x3\x111\x5\x111\x964"+ + "\n\x111\x3\x111\x3\x111\x3\x111\x3\x111\a\x111\x96A\n\x111\f\x111\xE\x111"+ + "\x96D\v\x111\x3\x112\x3\x112\x3\x112\x5\x112\x972\n\x112\x3\x112\x3\x112"+ + "\a\x112\x976\n\x112\f\x112\xE\x112\x979\v\x112\x3\x113\x3\x113\x3\x114"+ + "\x3\x114\x3\x115\x3\x115\x3\x116\x3\x116\a\x116\x983\n\x116\f\x116\xE"+ + "\x116\x986\v\x116\x3\x116\x3\x116\x6\x116\x98A\n\x116\r\x116\xE\x116\x98B"+ + "\x3\x116\x3\x116\x5\x116\x990\n\x116\x3\x117\a\x117\x993\n\x117\f\x117"+ + "\xE\x117\x996\v\x117\x3\x117\x3\x117\a\x117\x99A\n\x117\f\x117\xE\x117"+ + "\x99D\v\x117\x3\x117\x5\x117\x9A0\n\x117\x3\x117\x3\x117\x3\x118\x3\x118"+ + "\x6\x118\x9A6\n\x118\r\x118\xE\x118\x9A7\x3\x118\x3\x118\x6\x118\x9AC"+ + "\n\x118\r\x118\xE\x118\x9AD\x3\x118\x3\x118\x6\x118\x9B2\n\x118\r\x118"+ + "\xE\x118\x9B3\x3\x118\x3\x118\x6\x118\x9B8\n\x118\r\x118\xE\x118\x9B9"+ + "\x3\x118\x3\x118\x6\x118\x9BE\n\x118\r\x118\xE\x118\x9BF\x3\x118\x3\x118"+ + "\x3\x119\x3\x119\x3\x11A\x3\x11A\x3\x11B\x3\x11B\x3\x11C\x3\x11C\x3\x11D"+ + "\x3\x11D\x3\x11E\x3\x11E\x3\x11F\x3\x11F\x3\x120\x3\x120\x3\x121\x3\x121"+ + "\x3\x122\x3\x122\x3\x123\x3\x123\x3\x124\x3\x124\x3\x125\x3\x125\x3\x126"+ + "\x3\x126\x3\x127\x3\x127\x3\x128\x3\x128\x3\x129\x3\x129\x3\x12A\x3\x12A"+ + "\x3\x12B\x3\x12B\x3\x12C\x3\x12C\x3\x12D\x3\x12D\x3\x12E\x3\x12E\x3\x12F"+ + "\x3\x12F\x3\x130\x3\x130\x3\x131\x3\x131\x3\x132\x3\x132\x3\x133\x3\x133"+ + "\x3\x134\x3\x134\x3\x135\x3\x135\x3\x136\x3\x136\x2\x2\x2\x137\x3\x2\x3"+ + "\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15"+ + "\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13"+ + "%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B"+ + "\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45"+ + "\x2$G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_"+ + "\x2\x31\x61\x2\x32\x63\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38"+ + "o\x2\x39q\x2:s\x2;u\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83"+ + "\x2\x43\x85\x2\x44\x87\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2"+ + "J\x93\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3"+ + "\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5"+ + "\x2\\\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63"+ + "\xC5\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3"+ + "\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5"+ + "\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7"+ + "\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83"+ + "\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89"+ + "\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F"+ + "\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95"+ + "\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B"+ + "\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1"+ + "\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7"+ + "\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD"+ + "\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3"+ + "\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9"+ + "\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF"+ + "\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5"+ + "\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB"+ + "\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\xD1"+ + "\x1A1\x2\xD2\x1A3\x2\xD3\x1A5\x2\xD4\x1A7\x2\xD5\x1A9\x2\xD6\x1AB\x2\xD7"+ + "\x1AD\x2\xD8\x1AF\x2\xD9\x1B1\x2\xDA\x1B3\x2\xDB\x1B5\x2\xDC\x1B7\x2\xDD"+ + "\x1B9\x2\xDE\x1BB\x2\xDF\x1BD\x2\xE0\x1BF\x2\xE1\x1C1\x2\xE2\x1C3\x2\xE3"+ + "\x1C5\x2\xE4\x1C7\x2\xE5\x1C9\x2\xE6\x1CB\x2\x2\x1CD\x2\xE7\x1CF\x2\x2"+ + "\x1D1\x2\x2\x1D3\x2\x2\x1D5\x2\x2\x1D7\x2\x2\x1D9\x2\x2\x1DB\x2\xE8\x1DD"+ + "\x2\x2\x1DF\x2\x2\x1E1\x2\x2\x1E3\x2\x2\x1E5\x2\x2\x1E7\x2\x2\x1E9\x2"+ + "\x2\x1EB\x2\x2\x1ED\x2\x2\x1EF\x2\x2\x1F1\x2\x2\x1F3\x2\x2\x1F5\x2\x2"+ + "\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203"+ + "\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2"+ + "\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2"+ + "\x21D\x2\x2\x21F\x2\xE9\x221\x2\xEA\x223\x2\xEB\x225\x2\xEC\x227\x2\xED"+ + "\x229\x2\xEE\x22B\x2\xEF\x22D\x2\xF0\x22F\x2\xF1\x231\x2\x2\x233\x2\x2"+ + "\x235\x2\x2\x237\x2\x2\x239\x2\x2\x23B\x2\x2\x23D\x2\x2\x23F\x2\x2\x241"+ + "\x2\x2\x243\x2\x2\x245\x2\x2\x247\x2\x2\x249\x2\x2\x24B\x2\x2\x24D\x2"+ + "\x2\x24F\x2\x2\x251\x2\x2\x253\x2\x2\x255\x2\x2\x257\x2\x2\x259\x2\x2"+ + "\x25B\x2\x2\x25D\x2\x2\x25F\x2\x2\x261\x2\x2\x263\x2\x2\x265\x2\x2\x267"+ + "\x2\x2\x269\x2\x2\x26B\x2\xF2\x3\x2.\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2"+ + "\x32;\x43H\x4\x2\'(``\x5\x2##%%\x42\x42\x4\x2\x46G\x66g\x4\x2--//\x4\x2"+ + "./\x31\x31\x4\x2\x30\x30<<\x5\x2\f\f\xF\xF\x202A\x202B\x6\x2\f\f\xF\xF"+ + "\x42\x42\x202A\x202B\x4\x2\v\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`~~\v\x2"+ + "\v\f\xF\xF\".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\f\x2\x43\\\x61"+ "\x61\x63|\xA6\xA6\xB8\xB8\xBE\xBE\xC5\xC5\x155\x155\x2015\x2015\x2020"+ - "\x2020\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65"+ - "\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2K"+ - "Kkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2"+ - "RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2"+ - "YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\xAC5\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2"+ - "\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2"+ - "\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3"+ - "\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2"+ - "\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2"+ - "%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3"+ - "\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35"+ - "\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2"+ - "=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2"+ - "\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3"+ - "\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2"+ - "\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2"+ - "_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2"+ - "\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3"+ - "\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2"+ - "\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2"+ - "\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2"+ - "\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F"+ - "\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2"+ - "\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2"+ - "\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5"+ - "\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2"+ - "\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2"+ - "\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB"+ - "\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2"+ - "\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2"+ - "\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1"+ - "\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2"+ - "\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2"+ - "\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7"+ - "\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2"+ - "\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2"+ - "\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD"+ - "\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2"+ - "\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3"+ - "\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2"+ - "\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3"+ - "\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2"+ - "\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3"+ - "\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2"+ - "\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3"+ - "\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2"+ - "\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3"+ - "\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2"+ - "\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3"+ - "\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2"+ - "\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3"+ - "\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2"+ - "\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3"+ - "\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2"+ - "\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3"+ - "\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2"+ - "\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3"+ - "\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2"+ - "\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3"+ - "\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2"+ - "\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2\x2\x2\x1A5\x3"+ - "\x2\x2\x2\x2\x1A7\x3\x2\x2\x2\x2\x1A9\x3\x2\x2\x2\x2\x1AB\x3\x2\x2\x2"+ - "\x2\x1AD\x3\x2\x2\x2\x2\x1AF\x3\x2\x2\x2\x2\x1B1\x3\x2\x2\x2\x2\x1B3\x3"+ - "\x2\x2\x2\x2\x1B5\x3\x2\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3\x2\x2\x2"+ - "\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3"+ - "\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2\x2"+ - "\x2\x1C9\x3\x2\x2\x2\x2\x1CB\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1CF\x3"+ - "\x2\x2\x2\x2\x1D1\x3\x2\x2\x2\x2\x1D3\x3\x2\x2\x2\x2\x1D5\x3\x2\x2\x2"+ - "\x2\x1D7\x3\x2\x2\x2\x2\x1D9\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x1DD\x3"+ - "\x2\x2\x2\x2\x1DF\x3\x2\x2\x2\x2\x1E1\x3\x2\x2\x2\x2\x1E3\x3\x2\x2\x2"+ - "\x2\x1E5\x3\x2\x2\x2\x2\x1E7\x3\x2\x2\x2\x2\x1E9\x3\x2\x2\x2\x2\x1EB\x3"+ - "\x2\x2\x2\x2\x1ED\x3\x2\x2\x2\x2\x1F1\x3\x2\x2\x2\x2\x1FF\x3\x2\x2\x2"+ - "\x2\x243\x3\x2\x2\x2\x2\x245\x3\x2\x2\x2\x2\x247\x3\x2\x2\x2\x2\x249\x3"+ - "\x2\x2\x2\x2\x24B\x3\x2\x2\x2\x2\x24D\x3\x2\x2\x2\x2\x24F\x3\x2\x2\x2"+ - "\x2\x251\x3\x2\x2\x2\x2\x253\x3\x2\x2\x2\x2\x28F\x3\x2\x2\x2\x3\x291\x3"+ - "\x2\x2\x2\x5\x295\x3\x2\x2\x2\a\x299\x3\x2\x2\x2\t\x29F\x3\x2\x2\x2\v"+ - "\x2A5\x3\x2\x2\x2\r\x2AB\x3\x2\x2\x2\xF\x2B0\x3\x2\x2\x2\x11\x2B6\x3\x2"+ - "\x2\x2\x13\x2BB\x3\x2\x2\x2\x15\x2C0\x3\x2\x2\x2\x17\x2C5\x3\x2\x2\x2"+ - "\x19\x2CC\x3\x2\x2\x2\x1B\x2D1\x3\x2\x2\x2\x1D\x2D9\x3\x2\x2\x2\x1F\x2E1"+ - "\x3\x2\x2\x2!\x2E6\x3\x2\x2\x2#\x2EB\x3\x2\x2\x2%\x2F4\x3\x2\x2\x2\'\x2F9"+ - "\x3\x2\x2\x2)\x2FF\x3\x2\x2\x2+\x305\x3\x2\x2\x2-\x30E\x3\x2\x2\x2/\x313"+ - "\x3\x2\x2\x2\x31\x317\x3\x2\x2\x2\x33\x31E\x3\x2\x2\x2\x35\x322\x3\x2"+ - "\x2\x2\x37\x329\x3\x2\x2\x2\x39\x32D\x3\x2\x2\x2;\x332\x3\x2\x2\x2=\x33B"+ - "\x3\x2\x2\x2?\x343\x3\x2\x2\x2\x41\x348\x3\x2\x2\x2\x43\x34E\x3\x2\x2"+ - "\x2\x45\x353\x3\x2\x2\x2G\x35A\x3\x2\x2\x2I\x35F\x3\x2\x2\x2K\x365\x3"+ - "\x2\x2\x2M\x369\x3\x2\x2\x2O\x370\x3\x2\x2\x2Q\x372\x3\x2\x2\x2S\x374"+ - "\x3\x2\x2\x2U\x376\x3\x2\x2\x2W\x378\x3\x2\x2\x2Y\x37A\x3\x2\x2\x2[\x37C"+ - "\x3\x2\x2\x2]\x37E\x3\x2\x2\x2_\x380\x3\x2\x2\x2\x61\x382\x3\x2\x2\x2"+ - "\x63\x384\x3\x2\x2\x2\x65\x38B\x3\x2\x2\x2g\x395\x3\x2\x2\x2i\x39B\x3"+ - "\x2\x2\x2k\x39F\x3\x2\x2\x2m\x3A9\x3\x2\x2\x2o\x3B5\x3\x2\x2\x2q\x3BC"+ - "\x3\x2\x2\x2s\x3BF\x3\x2\x2\x2u\x3C5\x3\x2\x2\x2w\x3CA\x3\x2\x2\x2y\x3D1"+ - "\x3\x2\x2\x2{\x3D9\x3\x2\x2\x2}\x3DF\x3\x2\x2\x2\x7F\x3E5\x3\x2\x2\x2"+ - "\x81\x3EA\x3\x2\x2\x2\x83\x3EF\x3\x2\x2\x2\x85\x3F4\x3\x2\x2\x2\x87\x3FA"+ - "\x3\x2\x2\x2\x89\x402\x3\x2\x2\x2\x8B\x408\x3\x2\x2\x2\x8D\x40E\x3\x2"+ - "\x2\x2\x8F\x414\x3\x2\x2\x2\x91\x41D\x3\x2\x2\x2\x93\x422\x3\x2\x2\x2"+ - "\x95\x42A\x3\x2\x2\x2\x97\x432\x3\x2\x2\x2\x99\x43A\x3\x2\x2\x2\x9B\x442"+ - "\x3\x2\x2\x2\x9D\x449\x3\x2\x2\x2\x9F\x450\x3\x2\x2\x2\xA1\x457\x3\x2"+ - "\x2\x2\xA3\x45E\x3\x2\x2\x2\xA5\x468\x3\x2\x2\x2\xA7\x472\x3\x2\x2\x2"+ - "\xA9\x479\x3\x2\x2\x2\xAB\x480\x3\x2\x2\x2\xAD\x487\x3\x2\x2\x2\xAF\x48E"+ - "\x3\x2\x2\x2\xB1\x49C\x3\x2\x2\x2\xB3\x4A0\x3\x2\x2\x2\xB5\x4A3\x3\x2"+ - "\x2\x2\xB7\x4AA\x3\x2\x2\x2\xB9\x4AF\x3\x2\x2\x2\xBB\x4B4\x3\x2\x2\x2"+ - "\xBD\x4BB\x3\x2\x2\x2\xBF\x4C1\x3\x2\x2\x2\xC1\x4CA\x3\x2\x2\x2\xC3\x4D7"+ - "\x3\x2\x2\x2\xC5\x4DE\x3\x2\x2\x2\xC7\x4EB\x3\x2\x2\x2\xC9\x4F6\x3\x2"+ - "\x2\x2\xCB\x4FE\x3\x2\x2\x2\xCD\x507\x3\x2\x2\x2\xCF\x510\x3\x2\x2\x2"+ - "\xD1\x514\x3\x2\x2\x2\xD3\x519\x3\x2\x2\x2\xD5\x51D\x3\x2\x2\x2\xD7\x523"+ - "\x3\x2\x2\x2\xD9\x529\x3\x2\x2\x2\xDB\x52F\x3\x2\x2\x2\xDD\x537\x3\x2"+ - "\x2\x2\xDF\x540\x3\x2\x2\x2\xE1\x54E\x3\x2\x2\x2\xE3\x55C\x3\x2\x2\x2"+ - "\xE5\x565\x3\x2\x2\x2\xE7\x56B\x3\x2\x2\x2\xE9\x574\x3\x2\x2\x2\xEB\x57B"+ - "\x3\x2\x2\x2\xED\x57F\x3\x2\x2\x2\xEF\x588\x3\x2\x2\x2\xF1\x58C\x3\x2"+ - "\x2\x2\xF3\x593\x3\x2\x2\x2\xF5\x599\x3\x2\x2\x2\xF7\x59E\x3\x2\x2\x2"+ - "\xF9\x5A1\x3\x2\x2\x2\xFB\x5A5\x3\x2\x2\x2\xFD\x5B0\x3\x2\x2\x2\xFF\x5B3"+ - "\x3\x2\x2\x2\x101\x5B9\x3\x2\x2\x2\x103\x5BC\x3\x2\x2\x2\x105\x5C4\x3"+ - "\x2\x2\x2\x107\x5C9\x3\x2\x2\x2\x109\x5CE\x3\x2\x2\x2\x10B\x5D3\x3\x2"+ - "\x2\x2\x10D\x5D8\x3\x2\x2\x2\x10F\x5DD\x3\x2\x2\x2\x111\x5E1\x3\x2\x2"+ - "\x2\x113\x5E5\x3\x2\x2\x2\x115\x5EA\x3\x2\x2\x2\x117\x5F5\x3\x2\x2\x2"+ - "\x119\x5FF\x3\x2\x2\x2\x11B\x60A\x3\x2\x2\x2\x11D\x61A\x3\x2\x2\x2\x11F"+ - "\x61F\x3\x2\x2\x2\x121\x622\x3\x2\x2\x2\x123\x626\x3\x2\x2\x2\x125\x62C"+ - "\x3\x2\x2\x2\x127\x630\x3\x2\x2\x2\x129\x635\x3\x2\x2\x2\x12B\x63A\x3"+ - "\x2\x2\x2\x12D\x63E\x3\x2\x2\x2\x12F\x642\x3\x2\x2\x2\x131\x64A\x3\x2"+ - "\x2\x2\x133\x64F\x3\x2\x2\x2\x135\x652\x3\x2\x2\x2\x137\x65B\x3\x2\x2"+ - "\x2\x139\x66A\x3\x2\x2\x2\x13B\x66F\x3\x2\x2\x2\x13D\x678\x3\x2\x2\x2"+ - "\x13F\x684\x3\x2\x2\x2\x141\x694\x3\x2\x2\x2\x143\x6A3\x3\x2\x2\x2\x145"+ - "\x6B9\x3\x2\x2\x2\x147\x6BC\x3\x2\x2\x2\x149\x6C3\x3\x2\x2\x2\x14B\x6CE"+ - "\x3\x2\x2\x2\x14D\x6D7\x3\x2\x2\x2\x14F\x6DD\x3\x2\x2\x2\x151\x6E5\x3"+ - "\x2\x2\x2\x153\x6F2\x3\x2\x2\x2\x155\x6FF\x3\x2\x2\x2\x157\x70C\x3\x2"+ - "\x2\x2\x159\x714\x3\x2\x2\x2\x15B\x71B\x3\x2\x2\x2\x15D\x71F\x3\x2\x2"+ - "\x2\x15F\x726\x3\x2\x2\x2\x161\x730\x3\x2\x2\x2\x163\x73B\x3\x2\x2\x2"+ - "\x165\x740\x3\x2\x2\x2\x167\x74B\x3\x2\x2\x2\x169\x751\x3\x2\x2\x2\x16B"+ - "\x755\x3\x2\x2\x2\x16D\x75B\x3\x2\x2\x2\x16F\x762\x3\x2\x2\x2\x171\x769"+ - "\x3\x2\x2\x2\x173\x76F\x3\x2\x2\x2\x175\x774\x3\x2\x2\x2\x177\x780\x3"+ - "\x2\x2\x2\x179\x78C\x3\x2\x2\x2\x17B\x791\x3\x2\x2\x2\x17D\x798\x3\x2"+ - "\x2\x2\x17F\x7A1\x3\x2\x2\x2\x181\x7A5\x3\x2\x2\x2\x183\x7AD\x3\x2\x2"+ - "\x2\x185\x7B4\x3\x2\x2\x2\x187\x7BB\x3\x2\x2\x2\x189\x7BF\x3\x2\x2\x2"+ - "\x18B\x7C6\x3\x2\x2\x2\x18D\x7CB\x3\x2\x2\x2\x18F\x7D0\x3\x2\x2\x2\x191"+ - "\x7D7\x3\x2\x2\x2\x193\x7DB\x3\x2\x2\x2\x195\x7DF\x3\x2\x2\x2\x197\x7E4"+ - "\x3\x2\x2\x2\x199\x7E9\x3\x2\x2\x2\x19B\x7EE\x3\x2\x2\x2\x19D\x7F1\x3"+ - "\x2\x2\x2\x19F\x7F6\x3\x2\x2\x2\x1A1\x7FB\x3\x2\x2\x2\x1A3\x802\x3\x2"+ - "\x2\x2\x1A5\x809\x3\x2\x2\x2\x1A7\x810\x3\x2\x2\x2\x1A9\x816\x3\x2\x2"+ - "\x2\x1AB\x81E\x3\x2\x2\x2\x1AD\x826\x3\x2\x2\x2\x1AF\x82B\x3\x2\x2\x2"+ - "\x1B1\x831\x3\x2\x2\x2\x1B3\x837\x3\x2\x2\x2\x1B5\x83C\x3\x2\x2\x2\x1B7"+ - "\x847\x3\x2\x2\x2\x1B9\x84D\x3\x2\x2\x2\x1BB\x851\x3\x2\x2\x2\x1BD\x854"+ - "\x3\x2\x2\x2\x1BF\x856\x3\x2\x2\x2\x1C1\x858\x3\x2\x2\x2\x1C3\x85E\x3"+ - "\x2\x2\x2\x1C5\x860\x3\x2\x2\x2\x1C7\x866\x3\x2\x2\x2\x1C9\x868\x3\x2"+ - "\x2\x2\x1CB\x86A\x3\x2\x2\x2\x1CD\x86C\x3\x2\x2\x2\x1CF\x86E\x3\x2\x2"+ - "\x2\x1D1\x874\x3\x2\x2\x2\x1D3\x876\x3\x2\x2\x2\x1D5\x878\x3\x2\x2\x2"+ - "\x1D7\x87A\x3\x2\x2\x2\x1D9\x87F\x3\x2\x2\x2\x1DB\x888\x3\x2\x2\x2\x1DD"+ - "\x892\x3\x2\x2\x2\x1DF\x8A0\x3\x2\x2\x2\x1E1\x8AC\x3\x2\x2\x2\x1E3\x8BC"+ - "\x3\x2\x2\x2\x1E5\x8BE\x3\x2\x2\x2\x1E7\x8C0\x3\x2\x2\x2\x1E9\x8CB\x3"+ - "\x2\x2\x2\x1EB\x8D6\x3\x2\x2\x2\x1ED\x8E8\x3\x2\x2\x2\x1EF\x8FA\x3\x2"+ - "\x2\x2\x1F1\x8FC\x3\x2\x2\x2\x1F3\x900\x3\x2\x2\x2\x1F5\x902\x3\x2\x2"+ - "\x2\x1F7\x904\x3\x2\x2\x2\x1F9\x90D\x3\x2\x2\x2\x1FB\x90F\x3\x2\x2\x2"+ - "\x1FD\x912\x3\x2\x2\x2\x1FF\x916\x3\x2\x2\x2\x201\x922\x3\x2\x2\x2\x203"+ - "\x924\x3\x2\x2\x2\x205\x932\x3\x2\x2\x2\x207\x935\x3\x2\x2\x2\x209\x93F"+ - "\x3\x2\x2\x2\x20B\x94D\x3\x2\x2\x2\x20D\x95A\x3\x2\x2\x2\x20F\x979\x3"+ - "\x2\x2\x2\x211\x97C\x3\x2\x2\x2\x213\x983\x3\x2\x2\x2\x215\x98F\x3\x2"+ - "\x2\x2\x217\x997\x3\x2\x2\x2\x219\x9A0\x3\x2\x2\x2\x21B\x9A6\x3\x2\x2"+ - "\x2\x21D\x9AC\x3\x2\x2\x2\x21F\x9B0\x3\x2\x2\x2\x221\x9B5\x3\x2\x2\x2"+ - "\x223\x9BA\x3\x2\x2\x2\x225\x9C1\x3\x2\x2\x2\x227\x9CB\x3\x2\x2\x2\x229"+ - "\x9D3\x3\x2\x2\x2\x22B\x9DC\x3\x2\x2\x2\x22D\x9E5\x3\x2\x2\x2\x22F\x9E9"+ - "\x3\x2\x2\x2\x231\x9ED\x3\x2\x2\x2\x233\x9F1\x3\x2\x2\x2\x235\x9F5\x3"+ - "\x2\x2\x2\x237\x9F9\x3\x2\x2\x2\x239\x9FD\x3\x2\x2\x2\x23B\xA01\x3\x2"+ - "\x2\x2\x23D\xA05\x3\x2\x2\x2\x23F\xA09\x3\x2\x2\x2\x241\xA0D\x3\x2\x2"+ - "\x2\x243\xA14\x3\x2\x2\x2\x245\xA17\x3\x2\x2\x2\x247\xA22\x3\x2\x2\x2"+ - "\x249\xA2E\x3\x2\x2\x2\x24B\xA30\x3\x2\x2\x2\x24D\xA32\x3\x2\x2\x2\x24F"+ - "\xA43\x3\x2\x2\x2\x251\xA48\x3\x2\x2\x2\x253\xA57\x3\x2\x2\x2\x255\xA77"+ - "\x3\x2\x2\x2\x257\xA79\x3\x2\x2\x2\x259\xA7B\x3\x2\x2\x2\x25B\xA7D\x3"+ - "\x2\x2\x2\x25D\xA7F\x3\x2\x2\x2\x25F\xA81\x3\x2\x2\x2\x261\xA83\x3\x2"+ - "\x2\x2\x263\xA85\x3\x2\x2\x2\x265\xA87\x3\x2\x2\x2\x267\xA89\x3\x2\x2"+ - "\x2\x269\xA8B\x3\x2\x2\x2\x26B\xA8D\x3\x2\x2\x2\x26D\xA8F\x3\x2\x2\x2"+ - "\x26F\xA91\x3\x2\x2\x2\x271\xA93\x3\x2\x2\x2\x273\xA95\x3\x2\x2\x2\x275"+ - "\xA97\x3\x2\x2\x2\x277\xA99\x3\x2\x2\x2\x279\xA9B\x3\x2\x2\x2\x27B\xA9D"+ - "\x3\x2\x2\x2\x27D\xA9F\x3\x2\x2\x2\x27F\xAA1\x3\x2\x2\x2\x281\xAA3\x3"+ - "\x2\x2\x2\x283\xAA5\x3\x2\x2\x2\x285\xAA7\x3\x2\x2\x2\x287\xAA9\x3\x2"+ - "\x2\x2\x289\xAAB\x3\x2\x2\x2\x28B\xAAD\x3\x2\x2\x2\x28D\xAAF\x3\x2\x2"+ - "\x2\x28F\xAB1\x3\x2\x2\x2\x291\x292\x5\x25B\x12E\x2\x292\x293\x5\x25D"+ - "\x12F\x2\x293\x294\x5\x27F\x140\x2\x294\x4\x3\x2\x2\x2\x295\x296\x5\x25B"+ - "\x12E\x2\x296\x297\x5\x275\x13B\x2\x297\x298\x5\x28B\x146\x2\x298\x6\x3"+ - "\x2\x2\x2\x299\x29A\x5\x25B\x12E\x2\x29A\x29B\x5\x27D\x13F\x2\x29B\x29C"+ - "\x5\x27D\x13F\x2\x29C\x29D\x5\x25B\x12E\x2\x29D\x29E\x5\x28B\x146\x2\x29E"+ - "\b\x3\x2\x2\x2\x29F\x2A0\x5\x25F\x130\x2\x2A0\x2A1\x5\x25D\x12F\x2\x2A1"+ - "\x2A2\x5\x277\x13C\x2\x2A2\x2A3\x5\x277\x13C\x2\x2A3\x2A4\x5\x271\x139"+ - "\x2\x2A4\n\x3\x2\x2\x2\x2A5\x2A6\x5\x25F\x130\x2\x2A6\x2A7\x5\x25D\x12F"+ - "\x2\x2A7\x2A8\x5\x28B\x146\x2\x2A8\x2A9\x5\x281\x141\x2\x2A9\x2AA\x5\x263"+ - "\x132\x2\x2AA\f\x3\x2\x2\x2\x2AB\x2AC\x5\x25F\x130\x2\x2AC\x2AD\x5\x25F"+ - "\x130\x2\x2AD\x2AE\x5\x283\x142\x2\x2AE\x2AF\x5\x27D\x13F\x2\x2AF\xE\x3"+ - "\x2\x2\x2\x2B0\x2B1\x5\x25F\x130\x2\x2B1\x2B2\x5\x261\x131\x2\x2B2\x2B3"+ - "\x5\x25B\x12E\x2\x2B3\x2B4\x5\x281\x141\x2\x2B4\x2B5\x5\x263\x132\x2\x2B5"+ - "\x10\x3\x2\x2\x2\x2B6\x2B7\x5\x25F\x130\x2\x2B7\x2B8\x5\x261\x131\x2\x2B8"+ - "\x2B9\x5\x25D\x12F\x2\x2B9\x2BA\x5\x271\x139\x2\x2BA\x12\x3\x2\x2\x2\x2BB"+ - "\x2BC\x5\x25F\x130\x2\x2BC\x2BD\x5\x261\x131\x2\x2BD\x2BE\x5\x263\x132"+ - "\x2\x2BE\x2BF\x5\x25F\x130\x2\x2BF\x14\x3\x2\x2\x2\x2C0\x2C1\x5\x25F\x130"+ - "\x2\x2C1\x2C2\x5\x26B\x136\x2\x2C2\x2C3\x5\x275\x13B\x2\x2C3\x2C4\x5\x281"+ - "\x141\x2\x2C4\x16\x3\x2\x2\x2\x2C5\x2C6\x5\x25F\x130\x2\x2C6\x2C7\x5\x26B"+ - "\x136\x2\x2C7\x2C8\x5\x27D\x13F\x2\x2C8\x2C9\x5\x25F\x130\x2\x2C9\x2CA"+ - "\x5\x271\x139\x2\x2CA\x2CB\x5\x263\x132\x2\x2CB\x18\x3\x2\x2\x2\x2CC\x2CD"+ - "\x5\x25F\x130\x2\x2CD\x2CE\x5\x271\x139\x2\x2CE\x2CF\x5\x275\x13B\x2\x2CF"+ - "\x2D0\x5\x267\x134\x2\x2D0\x1A\x3\x2\x2\x2\x2D1\x2D2\x5\x25F\x130\x2\x2D2"+ - "\x2D3\x5\x271\x139\x2\x2D3\x2D4\x5\x275\x13B\x2\x2D4\x2D5\x5\x267\x134"+ - "\x2\x2D5\x2D6\x5\x271\x139\x2\x2D6\x2D7\x5\x275\x13B\x2\x2D7\x2D8\x5\x267"+ - "\x134\x2\x2D8\x1C\x3\x2\x2\x2\x2D9\x2DA\x5\x25F\x130\x2\x2DA\x2DB\x5\x271"+ - "\x139\x2\x2DB\x2DC\x5\x275\x13B\x2\x2DC\x2DD\x5\x267\x134\x2\x2DD\x2DE"+ - "\x5\x279\x13D\x2\x2DE\x2DF\x5\x281\x141\x2\x2DF\x2E0\x5\x27D\x13F\x2\x2E0"+ - "\x1E\x3\x2\x2\x2\x2E1\x2E2\x5\x25F\x130\x2\x2E2\x2E3\x5\x27F\x140\x2\x2E3"+ - "\x2E4\x5\x275\x13B\x2\x2E4\x2E5\x5\x267\x134\x2\x2E5 \x3\x2\x2\x2\x2E6"+ - "\x2E7\x5\x25F\x130\x2\x2E7\x2E8\x5\x27F\x140\x2\x2E8\x2E9\x5\x281\x141"+ - "\x2\x2E9\x2EA\x5\x27D\x13F\x2\x2EA\"\x3\x2\x2\x2\x2EB\x2EC\x5\x25F\x130"+ - "\x2\x2EC\x2ED\x5\x283\x142\x2\x2ED\x2EE\x5\x27D\x13F\x2\x2EE\x2EF\x5\x27D"+ - "\x13F\x2\x2EF\x2F0\x5\x263\x132\x2\x2F0\x2F1\x5\x275\x13B\x2\x2F1\x2F2"+ - "\x5\x25F\x130\x2\x2F2\x2F3\x5\x28B\x146\x2\x2F3$\x3\x2\x2\x2\x2F4\x2F5"+ - "\x5\x25F\x130\x2\x2F5\x2F6\x5\x285\x143\x2\x2F6\x2F7\x5\x25B\x12E\x2\x2F7"+ - "\x2F8\x5\x27D\x13F\x2\x2F8&\x3\x2\x2\x2\x2F9\x2FA\x5\x25F\x130\x2\x2FA"+ - "\x2FB\x5\x285\x143\x2\x2FB\x2FC\x5\x263\x132\x2\x2FC\x2FD\x5\x27D\x13F"+ - "\x2\x2FD\x2FE\x5\x27D\x13F\x2\x2FE(\x3\x2\x2\x2\x2FF\x300\x5\x261\x131"+ - "\x2\x300\x301\x5\x263\x132\x2\x301\x302\x5\x25D\x12F\x2\x302\x303\x5\x283"+ - "\x142\x2\x303\x304\x5\x267\x134\x2\x304*\x3\x2\x2\x2\x305\x306\x5\x261"+ - "\x131\x2\x306\x307\x5\x277\x13C\x2\x307\x308\x5\x263\x132\x2\x308\x309"+ - "\x5\x285\x143\x2\x309\x30A\x5\x263\x132\x2\x30A\x30B\x5\x275\x13B\x2\x30B"+ - "\x30C\x5\x281\x141\x2\x30C\x30D\x5\x27F\x140\x2\x30D,\x3\x2\x2\x2\x30E"+ - "\x30F\x5\x263\x132\x2\x30F\x310\x5\x289\x145\x2\x310\x311\x5\x26B\x136"+ - "\x2\x311\x312\x5\x281\x141\x2\x312.\x3\x2\x2\x2\x313\x314\x5\x265\x133"+ - "\x2\x314\x315\x5\x26B\x136\x2\x315\x316\x5\x289\x145\x2\x316\x30\x3\x2"+ - "\x2\x2\x317\x318\x5\x26B\x136\x2\x318\x319\x5\x275\x13B\x2\x319\x31A\x5"+ - "\x279\x13D\x2\x31A\x31B\x5\x283\x142\x2\x31B\x31C\x5\x281\x141\x2\x31C"+ - "\x31D\x5\x25D\x12F\x2\x31D\x32\x3\x2\x2\x2\x31E\x31F\x5\x26B\x136\x2\x31F"+ - "\x320\x5\x275\x13B\x2\x320\x321\x5\x281\x141\x2\x321\x34\x3\x2\x2\x2\x322"+ - "\x323\x5\x271\x139\x2\x323\x324\x5\x25D\x12F\x2\x324\x325\x5\x277\x13C"+ - "\x2\x325\x326\x5\x283\x142\x2\x326\x327\x5\x275\x13B\x2\x327\x328\x5\x261"+ - "\x131\x2\x328\x36\x3\x2\x2\x2\x329\x32A\x5\x271\x139\x2\x32A\x32B\x5\x263"+ - "\x132\x2\x32B\x32C\x5\x275\x13B\x2\x32C\x38\x3\x2\x2\x2\x32D\x32E\x5\x271"+ - "\x139\x2\x32E\x32F\x5\x263\x132\x2\x32F\x330\x5\x275\x13B\x2\x330\x331"+ - "\x5\x25D\x12F\x2\x331:\x3\x2\x2\x2\x332\x333\x5\x271\x139\x2\x333\x334"+ - "\x5\x277\x13C\x2\x334\x335\x5\x275\x13B\x2\x335\x336\x5\x267\x134\x2\x336"+ - "\x337\x5\x271\x139\x2\x337\x338\x5\x277\x13C\x2\x338\x339\x5\x275\x13B"+ - "\x2\x339\x33A\x5\x267\x134\x2\x33A<\x3\x2\x2\x2\x33B\x33C\x5\x271\x139"+ - "\x2\x33C\x33D\x5\x277\x13C\x2\x33D\x33E\x5\x275\x13B\x2\x33E\x33F\x5\x267"+ - "\x134\x2\x33F\x340\x5\x279\x13D\x2\x340\x341\x5\x281\x141\x2\x341\x342"+ - "\x5\x27D\x13F\x2\x342>\x3\x2\x2\x2\x343\x344\x5\x273\x13A\x2\x344\x345"+ - "\x5\x26B\x136\x2\x345\x346\x5\x261\x131\x2\x346\x347\x5\x25D\x12F\x2\x347"+ - "@\x3\x2\x2\x2\x348\x349\x5\x273\x13A\x2\x349\x34A\x5\x26B\x136\x2\x34A"+ - "\x34B\x5\x261\x131\x2\x34B\x34C\x5\x25D\x12F\x2\x34C\x34D\a&\x2\x2\x34D"+ - "\x42\x3\x2\x2\x2\x34E\x34F\x5\x273\x13A\x2\x34F\x350\x5\x26B\x136\x2\x350"+ - "\x351\x5\x261\x131\x2\x351\x352\a&\x2\x2\x352\x44\x3\x2\x2\x2\x353\x354"+ - "\x5\x277\x13C\x2\x354\x355\x5\x279\x13D\x2\x355\x356\x5\x281\x141\x2\x356"+ - "\x357\x5\x26B\x136\x2\x357\x358\x5\x277\x13C\x2\x358\x359\x5\x275\x13B"+ - "\x2\x359\x46\x3\x2\x2\x2\x35A\x35B\x5\x279\x13D\x2\x35B\x35C\x5\x27F\x140"+ - "\x2\x35C\x35D\x5\x263\x132\x2\x35D\x35E\x5\x281\x141\x2\x35EH\x3\x2\x2"+ - "\x2\x35F\x360\x5\x27F\x140\x2\x360\x361\x5\x25F\x130\x2\x361\x362\x5\x25B"+ - "\x12E\x2\x362\x363\x5\x271\x139\x2\x363\x364\x5\x263\x132\x2\x364J\x3"+ - "\x2\x2\x2\x365\x366\x5\x27F\x140\x2\x366\x367\x5\x267\x134\x2\x367\x368"+ - "\x5\x275\x13B\x2\x368L\x3\x2\x2\x2\x369\x36A\x5\x283\x142\x2\x36A\x36B"+ - "\x5\x25D\x12F\x2\x36B\x36C\x5\x277\x13C\x2\x36C\x36D\x5\x283\x142\x2\x36D"+ - "\x36E\x5\x275\x13B\x2\x36E\x36F\x5\x261\x131\x2\x36FN\x3\x2\x2\x2\x370"+ - "\x371\a.\x2\x2\x371P\x3\x2\x2\x2\x372\x373\a<\x2\x2\x373R\x3\x2\x2\x2"+ - "\x374\x375\a=\x2\x2\x375T\x3\x2\x2\x2\x376\x377\a#\x2\x2\x377V\x3\x2\x2"+ - "\x2\x378\x379\a\x30\x2\x2\x379X\x3\x2\x2\x2\x37A\x37B\a%\x2\x2\x37BZ\x3"+ - "\x2\x2\x2\x37C\x37D\a\x42\x2\x2\x37D\\\x3\x2\x2\x2\x37E\x37F\a\'\x2\x2"+ - "\x37F^\x3\x2\x2\x2\x380\x381\a&\x2\x2\x381`\x3\x2\x2\x2\x382\x383\a(\x2"+ - "\x2\x383\x62\x3\x2\x2\x2\x384\x385\x5\x25B\x12E\x2\x385\x386\x5\x25F\x130"+ - "\x2\x386\x387\x5\x25F\x130\x2\x387\x388\x5\x263\x132\x2\x388\x389\x5\x27F"+ - "\x140\x2\x389\x38A\x5\x27F\x140\x2\x38A\x64\x3\x2\x2\x2\x38B\x38C\x5\x25B"+ - "\x12E\x2\x38C\x38D\x5\x261\x131\x2\x38D\x38E\x5\x261\x131\x2\x38E\x38F"+ - "\x5\x27D\x13F\x2\x38F\x390\x5\x263\x132\x2\x390\x391\x5\x27F\x140\x2\x391"+ - "\x392\x5\x27F\x140\x2\x392\x393\x5\x277\x13C\x2\x393\x394\x5\x265\x133"+ - "\x2\x394\x66\x3\x2\x2\x2\x395\x396\x5\x25B\x12E\x2\x396\x397\x5\x271\x139"+ - "\x2\x397\x398\x5\x26B\x136\x2\x398\x399\x5\x25B\x12E\x2\x399\x39A\x5\x27F"+ - "\x140\x2\x39Ah\x3\x2\x2\x2\x39B\x39C\x5\x25B\x12E\x2\x39C\x39D\x5\x275"+ - "\x13B\x2\x39D\x39E\x5\x261\x131\x2\x39Ej\x3\x2\x2\x2\x39F\x3A0\x5\x25B"+ - "\x12E\x2\x3A0\x3A1\x5\x281\x141\x2\x3A1\x3A2\x5\x281\x141\x2\x3A2\x3A3"+ - "\x5\x27D\x13F\x2\x3A3\x3A4\x5\x26B\x136\x2\x3A4\x3A5\x5\x25D\x12F\x2\x3A5"+ - "\x3A6\x5\x283\x142\x2\x3A6\x3A7\x5\x281\x141\x2\x3A7\x3A8\x5\x263\x132"+ - "\x2\x3A8l\x3\x2\x2\x2\x3A9\x3AA\x5\x25B\x12E\x2\x3AA\x3AB\x5\x279\x13D"+ - "\x2\x3AB\x3AC\x5\x279\x13D\x2\x3AC\x3AD\x5\x25B\x12E\x2\x3AD\x3AE\x5\x25F"+ - "\x130\x2\x3AE\x3AF\x5\x281\x141\x2\x3AF\x3B0\x5\x26B\x136\x2\x3B0\x3B1"+ - "\x5\x285\x143\x2\x3B1\x3B2\x5\x25B\x12E\x2\x3B2\x3B3\x5\x281\x141\x2\x3B3"+ - "\x3B4\x5\x263\x132\x2\x3B4n\x3\x2\x2\x2\x3B5\x3B6\x5\x25B\x12E\x2\x3B6"+ - "\x3B7\x5\x279\x13D\x2\x3B7\x3B8\x5\x279\x13D\x2\x3B8\x3B9\x5\x263\x132"+ - "\x2\x3B9\x3BA\x5\x275\x13B\x2\x3BA\x3BB\x5\x261\x131\x2\x3BBp\x3\x2\x2"+ - "\x2\x3BC\x3BD\x5\x25B\x12E\x2\x3BD\x3BE\x5\x27F\x140\x2\x3BEr\x3\x2\x2"+ - "\x2\x3BF\x3C0\x5\x25D\x12F\x2\x3C0\x3C1\x5\x263\x132\x2\x3C1\x3C2\x5\x267"+ - "\x134\x2\x3C2\x3C3\x5\x26B\x136\x2\x3C3\x3C4\x5\x275\x13B\x2\x3C4t\x3"+ - "\x2\x2\x2\x3C5\x3C6\x5\x25D\x12F\x2\x3C6\x3C7\x5\x263\x132\x2\x3C7\x3C8"+ - "\x5\x263\x132\x2\x3C8\x3C9\x5\x279\x13D\x2\x3C9v\x3\x2\x2\x2\x3CA\x3CB"+ - "\x5\x25D\x12F\x2\x3CB\x3CC\x5\x26B\x136\x2\x3CC\x3CD\x5\x275\x13B\x2\x3CD"+ - "\x3CE\x5\x25B\x12E\x2\x3CE\x3CF\x5\x27D\x13F\x2\x3CF\x3D0\x5\x28B\x146"+ - "\x2\x3D0x\x3\x2\x2\x2\x3D1\x3D2\x5\x25D\x12F\x2\x3D2\x3D3\x5\x277\x13C"+ - "\x2\x3D3\x3D4\x5\x277\x13C\x2\x3D4\x3D5\x5\x271\x139\x2\x3D5\x3D6\x5\x263"+ - "\x132\x2\x3D6\x3D7\x5\x25B\x12E\x2\x3D7\x3D8\x5\x275\x13B\x2\x3D8z\x3"+ - "\x2\x2\x2\x3D9\x3DA\x5\x25D\x12F\x2\x3DA\x3DB\x5\x28B\x146\x2\x3DB\x3DC"+ - "\x5\x285\x143\x2\x3DC\x3DD\x5\x25B\x12E\x2\x3DD\x3DE\x5\x271\x139\x2\x3DE"+ - "|\x3\x2\x2\x2\x3DF\x3E0\x5\x25D\x12F\x2\x3E0\x3E1\x5\x28B\x146\x2\x3E1"+ - "\x3E2\x5\x27D\x13F\x2\x3E2\x3E3\x5\x263\x132\x2\x3E3\x3E4\x5\x265\x133"+ - "\x2\x3E4~\x3\x2\x2\x2\x3E5\x3E6\x5\x25D\x12F\x2\x3E6\x3E7\x5\x28B\x146"+ - "\x2\x3E7\x3E8\x5\x281\x141\x2\x3E8\x3E9\x5\x263\x132\x2\x3E9\x80\x3\x2"+ - "\x2\x2\x3EA\x3EB\x5\x25F\x130\x2\x3EB\x3EC\x5\x25B\x12E\x2\x3EC\x3ED\x5"+ - "\x271\x139\x2\x3ED\x3EE\x5\x271\x139\x2\x3EE\x82\x3\x2\x2\x2\x3EF\x3F0"+ - "\x5\x25F\x130\x2\x3F0\x3F1\x5\x25B\x12E\x2\x3F1\x3F2\x5\x27F\x140\x2\x3F2"+ - "\x3F3\x5\x263\x132\x2\x3F3\x84\x3\x2\x2\x2\x3F4\x3F5\x5\x25F\x130\x2\x3F5"+ - "\x3F6\x5\x269\x135\x2\x3F6\x3F7\x5\x261\x131\x2\x3F7\x3F8\x5\x26B\x136"+ - "\x2\x3F8\x3F9\x5\x27D\x13F\x2\x3F9\x86\x3\x2\x2\x2\x3FA\x3FB\x5\x25F\x130"+ - "\x2\x3FB\x3FC\x5\x269\x135\x2\x3FC\x3FD\x5\x261\x131\x2\x3FD\x3FE\x5\x27D"+ - "\x13F\x2\x3FE\x3FF\x5\x26B\x136\x2\x3FF\x400\x5\x285\x143\x2\x400\x401"+ - "\x5\x263\x132\x2\x401\x88\x3\x2\x2\x2\x402\x403\x5\x25F\x130\x2\x403\x404"+ - "\x5\x271\x139\x2\x404\x405\x5\x25B\x12E\x2\x405\x406\x5\x27F\x140\x2\x406"+ - "\x407\x5\x27F\x140\x2\x407\x8A\x3\x2\x2\x2\x408\x409\x5\x25F\x130\x2\x409"+ - "\x40A\x5\x271\x139\x2\x40A\x40B\x5\x277\x13C\x2\x40B\x40C\x5\x27F\x140"+ - "\x2\x40C\x40D\x5\x263\x132\x2\x40D\x8C\x3\x2\x2\x2\x40E\x40F\x5\x25F\x130"+ - "\x2\x40F\x410\x5\x277\x13C\x2\x410\x411\x5\x275\x13B\x2\x411\x412\x5\x27F"+ - "\x140\x2\x412\x413\x5\x281\x141\x2\x413\x8E\x3\x2\x2\x2\x414\x415\x5\x261"+ - "\x131\x2\x415\x416\x5\x25B\x12E\x2\x416\x417\x5\x281\x141\x2\x417\x418"+ - "\x5\x25B\x12E\x2\x418\x419\x5\x25D\x12F\x2\x419\x41A\x5\x25B\x12E\x2\x41A"+ - "\x41B\x5\x27F\x140\x2\x41B\x41C\x5\x263\x132\x2\x41C\x90\x3\x2\x2\x2\x41D"+ - "\x41E\x5\x261\x131\x2\x41E\x41F\x5\x25B\x12E\x2\x41F\x420\x5\x281\x141"+ - "\x2\x420\x421\x5\x263\x132\x2\x421\x92\x3\x2\x2\x2\x422\x423\x5\x261\x131"+ - "\x2\x423\x424\x5\x263\x132\x2\x424\x425\x5\x25F\x130\x2\x425\x426\x5\x271"+ - "\x139\x2\x426\x427\x5\x25B\x12E\x2\x427\x428\x5\x27D\x13F\x2\x428\x429"+ - "\x5\x263\x132\x2\x429\x94\x3\x2\x2\x2\x42A\x42B\x5\x261\x131\x2\x42B\x42C"+ - "\x5\x263\x132\x2\x42C\x42D\x5\x265\x133\x2\x42D\x42E\x5\x25D\x12F\x2\x42E"+ - "\x42F\x5\x277\x13C\x2\x42F\x430\x5\x277\x13C\x2\x430\x431\x5\x271\x139"+ - "\x2\x431\x96\x3\x2\x2\x2\x432\x433\x5\x261\x131\x2\x433\x434\x5\x263\x132"+ - "\x2\x434\x435\x5\x265\x133\x2\x435\x436\x5\x25D\x12F\x2\x436\x437\x5\x28B"+ - "\x146\x2\x437\x438\x5\x281\x141\x2\x438\x439\x5\x263\x132\x2\x439\x98"+ - "\x3\x2\x2\x2\x43A\x43B\x5\x261\x131\x2\x43B\x43C\x5\x263\x132\x2\x43C"+ - "\x43D\x5\x265\x133\x2\x43D\x43E\x5\x261\x131\x2\x43E\x43F\x5\x25B\x12E"+ - "\x2\x43F\x440\x5\x281\x141\x2\x440\x441\x5\x263\x132\x2\x441\x9A\x3\x2"+ - "\x2\x2\x442\x443\x5\x261\x131\x2\x443\x444\x5\x263\x132\x2\x444\x445\x5"+ - "\x265\x133\x2\x445\x446\x5\x261\x131\x2\x446\x447\x5\x25D\x12F\x2\x447"+ - "\x448\x5\x271\x139\x2\x448\x9C\x3\x2\x2\x2\x449\x44A\x5\x261\x131\x2\x44A"+ - "\x44B\x5\x263\x132\x2\x44B\x44C\x5\x265\x133\x2\x44C\x44D\x5\x25F\x130"+ - "\x2\x44D\x44E\x5\x283\x142\x2\x44E\x44F\x5\x27D\x13F\x2\x44F\x9E\x3\x2"+ - "\x2\x2\x450\x451\x5\x261\x131\x2\x451\x452\x5\x263\x132\x2\x452\x453\x5"+ - "\x265\x133\x2\x453\x454\x5\x26B\x136\x2\x454\x455\x5\x275\x13B\x2\x455"+ - "\x456\x5\x281\x141\x2\x456\xA0\x3\x2\x2\x2\x457\x458\x5\x261\x131\x2\x458"+ - "\x459\x5\x263\x132\x2\x459\x45A\x5\x265\x133\x2\x45A\x45B\x5\x271\x139"+ - "\x2\x45B\x45C\x5\x275\x13B\x2\x45C\x45D\x5\x267\x134\x2\x45D\xA2\x3\x2"+ - "\x2\x2\x45E\x45F\x5\x261\x131\x2\x45F\x460\x5\x263\x132\x2\x460\x461\x5"+ - "\x265\x133\x2\x461\x462\x5\x271\x139\x2\x462\x463\x5\x275\x13B\x2\x463"+ - "\x464\x5\x267\x134\x2\x464\x465\x5\x271\x139\x2\x465\x466\x5\x275\x13B"+ - "\x2\x466\x467\x5\x267\x134\x2\x467\xA4\x3\x2\x2\x2\x468\x469\x5\x261\x131"+ - "\x2\x469\x46A\x5\x263\x132\x2\x46A\x46B\x5\x265\x133\x2\x46B\x46C\x5\x271"+ - "\x139\x2\x46C\x46D\x5\x275\x13B\x2\x46D\x46E\x5\x267\x134\x2\x46E\x46F"+ - "\x5\x279\x13D\x2\x46F\x470\x5\x281\x141\x2\x470\x471\x5\x27D\x13F\x2\x471"+ - "\xA6\x3\x2\x2\x2\x472\x473\x5\x261\x131\x2\x473\x474\x5\x263\x132\x2\x474"+ - "\x475\x5\x265\x133\x2\x475\x476\x5\x277\x13C\x2\x476\x477\x5\x25D\x12F"+ - "\x2\x477\x478\x5\x26D\x137\x2\x478\xA8\x3\x2\x2\x2\x479\x47A\x5\x261\x131"+ - "\x2\x47A\x47B\x5\x263\x132\x2\x47B\x47C\x5\x265\x133\x2\x47C\x47D\x5\x27F"+ - "\x140\x2\x47D\x47E\x5\x275\x13B\x2\x47E\x47F\x5\x267\x134\x2\x47F\xAA"+ - "\x3\x2\x2\x2\x480\x481\x5\x261\x131\x2\x481\x482\x5\x263\x132\x2\x482"+ - "\x483\x5\x265\x133\x2\x483\x484\x5\x27F\x140\x2\x484\x485\x5\x281\x141"+ - "\x2\x485\x486\x5\x27D\x13F\x2\x486\xAC\x3\x2\x2\x2\x487\x488\x5\x261\x131"+ - "\x2\x488\x489\x5\x263\x132\x2\x489\x48A\x5\x265\x133\x2\x48A\x48B\x5\x285"+ - "\x143\x2\x48B\x48C\x5\x25B\x12E\x2\x48C\x48D\x5\x27D\x13F\x2\x48D\xAE"+ - "\x3\x2\x2\x2\x48E\x48F\x5\x261\x131\x2\x48F\x490\x5\x263\x132\x2\x490"+ - "\x491\x5\x271\x139\x2\x491\x492\x5\x263\x132\x2\x492\x493\x5\x281\x141"+ - "\x2\x493\x494\x5\x263\x132\x2\x494\x495\x5\x27F\x140\x2\x495\x496\x5\x263"+ - "\x132\x2\x496\x497\x5\x281\x141\x2\x497\x498\x5\x281\x141\x2\x498\x499"+ - "\x5\x26B\x136\x2\x499\x49A\x5\x275\x13B\x2\x49A\x49B\x5\x267\x134\x2\x49B"+ - "\xB0\x3\x2\x2\x2\x49C\x49D\x5\x261\x131\x2\x49D\x49E\x5\x26B\x136\x2\x49E"+ - "\x49F\x5\x273\x13A\x2\x49F\xB2\x3\x2\x2\x2\x4A0\x4A1\x5\x261\x131\x2\x4A1"+ - "\x4A2\x5\x277\x13C\x2\x4A2\xB4\x3\x2\x2\x2\x4A3\x4A4\x5\x261\x131\x2\x4A4"+ - "\x4A5\x5\x277\x13C\x2\x4A5\x4A6\x5\x283\x142\x2\x4A6\x4A7\x5\x25D\x12F"+ - "\x2\x4A7\x4A8\x5\x271\x139\x2\x4A8\x4A9\x5\x263\x132\x2\x4A9\xB6\x3\x2"+ - "\x2\x2\x4AA\x4AB\x5\x263\x132\x2\x4AB\x4AC\x5\x25B\x12E\x2\x4AC\x4AD\x5"+ - "\x25F\x130\x2\x4AD\x4AE\x5\x269\x135\x2\x4AE\xB8\x3\x2\x2\x2\x4AF\x4B0"+ - "\x5\x263\x132\x2\x4B0\x4B1\x5\x271\x139\x2\x4B1\x4B2\x5\x27F\x140\x2\x4B2"+ - "\x4B3\x5\x263\x132\x2\x4B3\xBA\x3\x2\x2\x2\x4B4\x4B5\x5\x263\x132\x2\x4B5"+ - "\x4B6\x5\x271\x139\x2\x4B6\x4B7\x5\x27F\x140\x2\x4B7\x4B8\x5\x263\x132"+ - "\x2\x4B8\x4B9\x5\x26B\x136\x2\x4B9\x4BA\x5\x265\x133\x2\x4BA\xBC\x3\x2"+ - "\x2\x2\x4BB\x4BC\x5\x263\x132\x2\x4BC\x4BD\x5\x273\x13A\x2\x4BD\x4BE\x5"+ - "\x279\x13D\x2\x4BE\x4BF\x5\x281\x141\x2\x4BF\x4C0\x5\x28B\x146\x2\x4C0"+ - "\xBE\x3\x2\x2\x2\x4C1\x4C2\x5\x263\x132\x2\x4C2\x4C3\x5\x275\x13B\x2\x4C3"+ - "\x4C4\x5\x261\x131\x2\x4C4\x4C5\x5\x24D\x127\x2\x4C5\x4C6\x5\x263\x132"+ - "\x2\x4C6\x4C7\x5\x275\x13B\x2\x4C7\x4C8\x5\x283\x142\x2\x4C8\x4C9\x5\x273"+ - "\x13A\x2\x4C9\xC0\x3\x2\x2\x2\x4CA\x4CB\x5\x263\x132\x2\x4CB\x4CC\x5\x275"+ - "\x13B\x2\x4CC\x4CD\x5\x261\x131\x2\x4CD\x4CE\x5\x24D\x127\x2\x4CE\x4CF"+ - "\x5\x265\x133\x2\x4CF\x4D0\x5\x283\x142\x2\x4D0\x4D1\x5\x275\x13B\x2\x4D1"+ - "\x4D2\x5\x25F\x130\x2\x4D2\x4D3\x5\x281\x141\x2\x4D3\x4D4\x5\x26B\x136"+ - "\x2\x4D4\x4D5\x5\x277\x13C\x2\x4D5\x4D6\x5\x275\x13B\x2\x4D6\xC2\x3\x2"+ - "\x2\x2\x4D7\x4D8\x5\x263\x132\x2\x4D8\x4D9\x5\x275\x13B\x2\x4D9\x4DA\x5"+ - "\x261\x131\x2\x4DA\x4DB\x5\x24D\x127\x2\x4DB\x4DC\x5\x26B\x136\x2\x4DC"+ - "\x4DD\x5\x265\x133\x2\x4DD\xC4\x3\x2\x2\x2\x4DE\x4DF\x5\x263\x132\x2\x4DF"+ - "\x4E0\x5\x275\x13B\x2\x4E0\x4E1\x5\x261\x131\x2\x4E1\x4E2\x5\x24D\x127"+ - "\x2\x4E2\x4E3\x5\x279\x13D\x2\x4E3\x4E4\x5\x27D\x13F\x2\x4E4\x4E5\x5\x277"+ - "\x13C\x2\x4E5\x4E6\x5\x279\x13D\x2\x4E6\x4E7\x5\x263\x132\x2\x4E7\x4E8"+ - "\x5\x27D\x13F\x2\x4E8\x4E9\x5\x281\x141\x2\x4E9\x4EA\x5\x28B\x146\x2\x4EA"+ - "\xC6\x3\x2\x2\x2\x4EB\x4EC\x5\x263\x132\x2\x4EC\x4ED\x5\x275\x13B\x2\x4ED"+ - "\x4EE\x5\x261\x131\x2\x4EE\x4EF\x5\x24D\x127\x2\x4EF\x4F0\x5\x27F\x140"+ - "\x2\x4F0\x4F1\x5\x263\x132\x2\x4F1\x4F2\x5\x271\x139\x2\x4F2\x4F3\x5\x263"+ - "\x132\x2\x4F3\x4F4\x5\x25F\x130\x2\x4F4\x4F5\x5\x281\x141\x2\x4F5\xC8"+ - "\x3\x2\x2\x2\x4F6\x4F7\x5\x263\x132\x2\x4F7\x4F8\x5\x275\x13B\x2\x4F8"+ - "\x4F9\x5\x261\x131\x2\x4F9\x4FA\x5\x24D\x127\x2\x4FA\x4FB\x5\x27F\x140"+ - "\x2\x4FB\x4FC\x5\x283\x142\x2\x4FC\x4FD\x5\x25D\x12F\x2\x4FD\xCA\x3\x2"+ - "\x2\x2\x4FE\x4FF\x5\x263\x132\x2\x4FF\x500\x5\x275\x13B\x2\x500\x501\x5"+ - "\x261\x131\x2\x501\x502\x5\x24D\x127\x2\x502\x503\x5\x281\x141\x2\x503"+ - "\x504\x5\x28B\x146\x2\x504\x505\x5\x279\x13D\x2\x505\x506\x5\x263\x132"+ - "\x2\x506\xCC\x3\x2\x2\x2\x507\x508\x5\x263\x132\x2\x508\x509\x5\x275\x13B"+ - "\x2\x509\x50A\x5\x261\x131\x2\x50A\x50B\x5\x24D\x127\x2\x50B\x50C\x5\x287"+ - "\x144\x2\x50C\x50D\x5\x26B\x136\x2\x50D\x50E\x5\x281\x141\x2\x50E\x50F"+ - "\x5\x269\x135\x2\x50F\xCE\x3\x2\x2\x2\x510\x511\x5\x263\x132\x2\x511\x512"+ - "\x5\x275\x13B\x2\x512\x513\x5\x261\x131\x2\x513\xD0\x3\x2\x2\x2\x514\x515"+ - "\x5\x263\x132\x2\x515\x516\x5\x275\x13B\x2\x516\x517\x5\x283\x142\x2\x517"+ - "\x518\x5\x273\x13A\x2\x518\xD2\x3\x2\x2\x2\x519\x51A\x5\x263\x132\x2\x51A"+ - "\x51B\x5\x27B\x13E\x2\x51B\x51C\x5\x285\x143\x2\x51C\xD4\x3\x2\x2\x2\x51D"+ - "\x51E\x5\x263\x132\x2\x51E\x51F\x5\x27D\x13F\x2\x51F\x520\x5\x25B\x12E"+ - "\x2\x520\x521\x5\x27F\x140\x2\x521\x522\x5\x263\x132\x2\x522\xD6\x3\x2"+ - "\x2\x2\x523\x524\x5\x263\x132\x2\x524\x525\x5\x27D\x13F\x2\x525\x526\x5"+ - "\x27D\x13F\x2\x526\x527\x5\x277\x13C\x2\x527\x528\x5\x27D\x13F\x2\x528"+ - "\xD8\x3\x2\x2\x2\x529\x52A\x5\x263\x132\x2\x52A\x52B\x5\x285\x143\x2\x52B"+ - "\x52C\x5\x263\x132\x2\x52C\x52D\x5\x275\x13B\x2\x52D\x52E\x5\x281\x141"+ - "\x2\x52E\xDA\x3\x2\x2\x2\x52F\x530\x5\x263\x132\x2\x530\x531\x5\x289\x145"+ - "\x2\x531\x532\x5\x26B\x136\x2\x532\x533\x5\x281\x141\x2\x533\x534\x5\x24D"+ - "\x127\x2\x534\x535\x5\x261\x131\x2\x535\x536\x5\x277\x13C\x2\x536\xDC"+ - "\x3\x2\x2\x2\x537\x538\x5\x263\x132\x2\x538\x539\x5\x289\x145\x2\x539"+ - "\x53A\x5\x26B\x136\x2\x53A\x53B\x5\x281\x141\x2\x53B\x53C\x5\x24D\x127"+ - "\x2\x53C\x53D\x5\x265\x133\x2\x53D\x53E\x5\x277\x13C\x2\x53E\x53F\x5\x27D"+ - "\x13F\x2\x53F\xDE\x3\x2\x2\x2\x540\x541\x5\x263\x132\x2\x541\x542\x5\x289"+ - "\x145\x2\x542\x543\x5\x26B\x136\x2\x543\x544\x5\x281\x141\x2\x544\x545"+ - "\x5\x24D\x127\x2\x545\x546\x5\x265\x133\x2\x546\x547\x5\x283\x142\x2\x547"+ - "\x548\x5\x275\x13B\x2\x548\x549\x5\x25F\x130\x2\x549\x54A\x5\x281\x141"+ - "\x2\x54A\x54B\x5\x26B\x136\x2\x54B\x54C\x5\x277\x13C\x2\x54C\x54D\x5\x275"+ - "\x13B\x2\x54D\xE0\x3\x2\x2\x2\x54E\x54F\x5\x263\x132\x2\x54F\x550\x5\x289"+ - "\x145\x2\x550\x551\x5\x26B\x136\x2\x551\x552\x5\x281\x141\x2\x552\x553"+ - "\x5\x24D\x127\x2\x553\x554\x5\x279\x13D\x2\x554\x555\x5\x27D\x13F\x2\x555"+ - "\x556\x5\x277\x13C\x2\x556\x557\x5\x279\x13D\x2\x557\x558\x5\x263\x132"+ - "\x2\x558\x559\x5\x27D\x13F\x2\x559\x55A\x5\x281\x141\x2\x55A\x55B\x5\x28B"+ - "\x146\x2\x55B\xE2\x3\x2\x2\x2\x55C\x55D\x5\x263\x132\x2\x55D\x55E\x5\x289"+ - "\x145\x2\x55E\x55F\x5\x26B\x136\x2\x55F\x560\x5\x281\x141\x2\x560\x561"+ - "\x5\x24D\x127\x2\x561\x562\x5\x27F\x140\x2\x562\x563\x5\x283\x142\x2\x563"+ - "\x564\x5\x25D\x12F\x2\x564\xE4\x3\x2\x2\x2\x565\x566\x5\x265\x133\x2\x566"+ - "\x567\x5\x25B\x12E\x2\x567\x568\x5\x271\x139\x2\x568\x569\x5\x27F\x140"+ - "\x2\x569\x56A\x5\x263\x132\x2\x56A\xE6\x3\x2\x2\x2\x56B\x56C\x5\x265\x133"+ - "\x2\x56C\x56D\x5\x26B\x136\x2\x56D\x56E\x5\x271\x139\x2\x56E\x56F\x5\x263"+ - "\x132\x2\x56F\x570\x5\x25F\x130\x2\x570\x571\x5\x277\x13C\x2\x571\x572"+ - "\x5\x279\x13D\x2\x572\x573\x5\x28B\x146\x2\x573\xE8\x3\x2\x2\x2\x574\x575"+ - "\x5\x265\x133\x2\x575\x576\x5\x27D\x13F\x2\x576\x577\x5\x26B\x136\x2\x577"+ - "\x578\x5\x263\x132\x2\x578\x579\x5\x275\x13B\x2\x579\x57A\x5\x261\x131"+ - "\x2\x57A\xEA\x3\x2\x2\x2\x57B\x57C\x5\x265\x133\x2\x57C\x57D\x5\x277\x13C"+ - "\x2\x57D\x57E\x5\x27D\x13F\x2\x57E\xEC\x3\x2\x2\x2\x57F\x580\x5\x265\x133"+ - "\x2\x580\x581\x5\x283\x142\x2\x581\x582\x5\x275\x13B\x2\x582\x583\x5\x25F"+ - "\x130\x2\x583\x584\x5\x281\x141\x2\x584\x585\x5\x26B\x136\x2\x585\x586"+ - "\x5\x277\x13C\x2\x586\x587\x5\x275\x13B\x2\x587\xEE\x3\x2\x2\x2\x588\x589"+ - "\x5\x267\x134\x2\x589\x58A\x5\x263\x132\x2\x58A\x58B\x5\x281\x141\x2\x58B"+ - "\xF0\x3\x2\x2\x2\x58C\x58D\x5\x267\x134\x2\x58D\x58E\x5\x271\x139\x2\x58E"+ - "\x58F\x5\x277\x13C\x2\x58F\x590\x5\x25D\x12F\x2\x590\x591\x5\x25B\x12E"+ - "\x2\x591\x592\x5\x271\x139\x2\x592\xF2\x3\x2\x2\x2\x593\x594\x5\x267\x134"+ - "\x2\x594\x595\x5\x277\x13C\x2\x595\x596\x5\x27F\x140\x2\x596\x597\x5\x283"+ - "\x142\x2\x597\x598\x5\x25D\x12F\x2\x598\xF4\x3\x2\x2\x2\x599\x59A\x5\x267"+ - "\x134\x2\x59A\x59B\x5\x277\x13C\x2\x59B\x59C\x5\x281\x141\x2\x59C\x59D"+ - "\x5\x277\x13C\x2\x59D\xF6\x3\x2\x2\x2\x59E\x59F\x5\x26B\x136\x2\x59F\x5A0"+ - "\x5\x265\x133\x2\x5A0\xF8\x3\x2\x2\x2\x5A1\x5A2\x5\x26B\x136\x2\x5A2\x5A3"+ - "\x5\x273\x13A\x2\x5A3\x5A4\x5\x279\x13D\x2\x5A4\xFA\x3\x2\x2\x2\x5A5\x5A6"+ - "\x5\x26B\x136\x2\x5A6\x5A7\x5\x273\x13A\x2\x5A7\x5A8\x5\x279\x13D\x2\x5A8"+ - "\x5A9\x5\x271\x139\x2\x5A9\x5AA\x5\x263\x132\x2\x5AA\x5AB\x5\x273\x13A"+ - "\x2\x5AB\x5AC\x5\x263\x132\x2\x5AC\x5AD\x5\x275\x13B\x2\x5AD\x5AE\x5\x281"+ - "\x141\x2\x5AE\x5AF\x5\x27F\x140\x2\x5AF\xFC\x3\x2\x2\x2\x5B0\x5B1\x5\x26B"+ - "\x136\x2\x5B1\x5B2\x5\x275\x13B\x2\x5B2\xFE\x3\x2\x2\x2\x5B3\x5B4\x5\x26B"+ - "\x136\x2\x5B4\x5B5\x5\x275\x13B\x2\x5B5\x5B6\x5\x279\x13D\x2\x5B6\x5B7"+ - "\x5\x283\x142\x2\x5B7\x5B8\x5\x281\x141\x2\x5B8\x100\x3\x2\x2\x2\x5B9"+ - "\x5BA\x5\x26B\x136\x2\x5BA\x5BB\x5\x27F\x140\x2\x5BB\x102\x3\x2\x2\x2"+ - "\x5BC\x5BD\x5\x26B\x136\x2\x5BD\x5BE\x5\x275\x13B\x2\x5BE\x5BF\x5\x281"+ - "\x141\x2\x5BF\x5C0\x5\x263\x132\x2\x5C0\x5C1\x5\x267\x134\x2\x5C1\x5C2"+ - "\x5\x263\x132\x2\x5C2\x5C3\x5\x27D\x13F\x2\x5C3\x104\x3\x2\x2\x2\x5C4"+ - "\x5C5\x5\x26F\x138\x2\x5C5\x5C6\x5\x26B\x136\x2\x5C6\x5C7\x5\x271\x139"+ - "\x2\x5C7\x5C8\x5\x271\x139\x2\x5C8\x106\x3\x2\x2\x2\x5C9\x5CA\x5\x271"+ - "\x139\x2\x5CA\x5CB\x5\x277\x13C\x2\x5CB\x5CC\x5\x25B\x12E\x2\x5CC\x5CD"+ - "\x5\x261\x131\x2\x5CD\x108\x3\x2\x2\x2\x5CE\x5CF\x5\x271\x139\x2\x5CF"+ - "\x5D0\x5\x277\x13C\x2\x5D0\x5D1\x5\x25F\x130\x2\x5D1\x5D2\x5\x26F\x138"+ - "\x2\x5D2\x10A\x3\x2\x2\x2\x5D3\x5D4\x5\x271\x139\x2\x5D4\x5D5\x5\x277"+ - "\x13C\x2\x5D5\x5D6\x5\x275\x13B\x2\x5D6\x5D7\x5\x267\x134\x2\x5D7\x10C"+ - "\x3\x2\x2\x2\x5D8\x5D9\x5\x271\x139\x2\x5D9\x5DA\x5\x277\x13C\x2\x5DA"+ - "\x5DB\x5\x277\x13C\x2\x5DB\x5DC\x5\x279\x13D\x2\x5DC\x10E\x3\x2\x2\x2"+ - "\x5DD\x5DE\x5\x271\x139\x2\x5DE\x5DF\x5\x263\x132\x2\x5DF\x5E0\x5\x281"+ - "\x141\x2\x5E0\x110\x3\x2\x2\x2\x5E1\x5E2\x5\x271\x139\x2\x5E2\x5E3\x5"+ - "\x26B\x136\x2\x5E3\x5E4\x5\x25D\x12F\x2\x5E4\x112\x3\x2\x2\x2\x5E5\x5E6"+ - "\x5\x271\x139\x2\x5E6\x5E7\x5\x26B\x136\x2\x5E7\x5E8\x5\x26F\x138\x2\x5E8"+ - "\x5E9\x5\x263\x132\x2\x5E9\x114\x3\x2\x2\x2\x5EA\x5EB\x5\x271\x139\x2"+ - "\x5EB\x5EC\x5\x26B\x136\x2\x5EC\x5ED\x5\x275\x13B\x2\x5ED\x5EE\x5\x263"+ - "\x132\x2\x5EE\x5EF\x5\x24D\x127\x2\x5EF\x5F0\x5\x26B\x136\x2\x5F0\x5F1"+ - "\x5\x275\x13B\x2\x5F1\x5F2\x5\x279\x13D\x2\x5F2\x5F3\x5\x283\x142\x2\x5F3"+ - "\x5F4\x5\x281\x141\x2\x5F4\x116\x3\x2\x2\x2\x5F5\x5F6\x5\x271\x139\x2"+ - "\x5F6\x5F7\x5\x277\x13C\x2\x5F7\x5F8\x5\x25F\x130\x2\x5F8\x5F9\x5\x26F"+ - "\x138\x2\x5F9\x5FA\x5\x24D\x127\x2\x5FA\x5FB\x5\x27D\x13F\x2\x5FB\x5FC"+ - "\x5\x263\x132\x2\x5FC\x5FD\x5\x25B\x12E\x2\x5FD\x5FE\x5\x261\x131\x2\x5FE"+ - "\x118\x3\x2\x2\x2\x5FF\x600\x5\x271\x139\x2\x600\x601\x5\x277\x13C\x2"+ - "\x601\x602\x5\x25F\x130\x2\x602\x603\x5\x26F\x138\x2\x603\x604\x5\x24D"+ - "\x127\x2\x604\x605\x5\x287\x144\x2\x605\x606\x5\x27D\x13F\x2\x606\x607"+ - "\x5\x26B\x136\x2\x607\x608\x5\x281\x141\x2\x608\x609\x5\x263\x132\x2\x609"+ - "\x11A\x3\x2\x2\x2\x60A\x60B\x5\x271\x139\x2\x60B\x60C\x5\x277\x13C\x2"+ - "\x60C\x60D\x5\x25F\x130\x2\x60D\x60E\x5\x26F\x138\x2\x60E\x60F\x5\x24D"+ - "\x127\x2\x60F\x610\x5\x27D\x13F\x2\x610\x611\x5\x263\x132\x2\x611\x612"+ - "\x5\x25B\x12E\x2\x612\x613\x5\x261\x131\x2\x613\x614\x5\x24D\x127\x2\x614"+ - "\x615\x5\x287\x144\x2\x615\x616\x5\x27D\x13F\x2\x616\x617\x5\x26B\x136"+ - "\x2\x617\x618\x5\x281\x141\x2\x618\x619\x5\x263\x132\x2\x619\x11C\x3\x2"+ - "\x2\x2\x61A\x61B\x5\x271\x139\x2\x61B\x61C\x5\x27F\x140\x2\x61C\x61D\x5"+ - "\x263\x132\x2\x61D\x61E\x5\x281\x141\x2\x61E\x11E\x3\x2\x2\x2\x61F\x620"+ - "\x5\x273\x13A\x2\x620\x621\x5\x263\x132\x2\x621\x120\x3\x2\x2\x2\x622"+ - "\x623\x5\x273\x13A\x2\x623\x624\x5\x26B\x136\x2\x624\x625\x5\x261\x131"+ - "\x2\x625\x122\x3\x2\x2\x2\x626\x627\x5\x273\x13A\x2\x627\x628\x5\x26F"+ - "\x138\x2\x628\x629\x5\x261\x131\x2\x629\x62A\x5\x26B\x136\x2\x62A\x62B"+ - "\x5\x27D\x13F\x2\x62B\x124\x3\x2\x2\x2\x62C\x62D\x5\x273\x13A\x2\x62D"+ - "\x62E\x5\x277\x13C\x2\x62E\x62F\x5\x261\x131\x2\x62F\x126\x3\x2\x2\x2"+ - "\x630\x631\x5\x275\x13B\x2\x631\x632\x5\x25B\x12E\x2\x632\x633\x5\x273"+ - "\x13A\x2\x633\x634\x5\x263\x132\x2\x634\x128\x3\x2\x2\x2\x635\x636\x5"+ - "\x275\x13B\x2\x636\x637\x5\x263\x132\x2\x637\x638\x5\x289\x145\x2\x638"+ - "\x639\x5\x281\x141\x2\x639\x12A\x3\x2\x2\x2\x63A\x63B\x5\x275\x13B\x2"+ - "\x63B\x63C\x5\x263\x132\x2\x63C\x63D\x5\x287\x144\x2\x63D\x12C\x3\x2\x2"+ - "\x2\x63E\x63F\x5\x275\x13B\x2\x63F\x640\x5\x277\x13C\x2\x640\x641\x5\x281"+ - "\x141\x2\x641\x12E\x3\x2\x2\x2\x642\x643\x5\x275\x13B\x2\x643\x644\x5"+ - "\x277\x13C\x2\x644\x645\x5\x281\x141\x2\x645\x646\x5\x269\x135\x2\x646"+ - "\x647\x5\x26B\x136\x2\x647\x648\x5\x275\x13B\x2\x648\x649\x5\x267\x134"+ - "\x2\x649\x130\x3\x2\x2\x2\x64A\x64B\x5\x275\x13B\x2\x64B\x64C\x5\x283"+ - "\x142\x2\x64C\x64D\x5\x271\x139\x2\x64D\x64E\x5\x271\x139\x2\x64E\x132"+ - "\x3\x2\x2\x2\x64F\x650\x5\x277\x13C\x2\x650\x651\x5\x275\x13B\x2\x651"+ - "\x134\x3\x2\x2\x2\x652\x653\x5\x277\x13C\x2\x653\x654\x5\x275\x13B\x2"+ - "\x654\x655\x5\x24D\x127\x2\x655\x656\x5\x263\x132\x2\x656\x657\x5\x27D"+ - "\x13F\x2\x657\x658\x5\x27D\x13F\x2\x658\x659\x5\x277\x13C\x2\x659\x65A"+ - "\x5\x27D\x13F\x2\x65A\x136\x3\x2\x2\x2\x65B\x65C\x5\x277\x13C\x2\x65C"+ - "\x65D\x5\x275\x13B\x2\x65D\x65E\x5\x24D\x127\x2\x65E\x65F\x5\x271\x139"+ - "\x2\x65F\x660\x5\x277\x13C\x2\x660\x661\x5\x25F\x130\x2\x661\x662\x5\x25B"+ - "\x12E\x2\x662\x663\x5\x271\x139\x2\x663\x664\x5\x24D\x127\x2\x664\x665"+ - "\x5\x263\x132\x2\x665\x666\x5\x27D\x13F\x2\x666\x667\x5\x27D\x13F\x2\x667"+ - "\x668\x5\x277\x13C\x2\x668\x669\x5\x27D\x13F\x2\x669\x138\x3\x2\x2\x2"+ - "\x66A\x66B\x5\x277\x13C\x2\x66B\x66C\x5\x279\x13D\x2\x66C\x66D\x5\x263"+ - "\x132\x2\x66D\x66E\x5\x275\x13B\x2\x66E\x13A\x3\x2\x2\x2\x66F\x670\x5"+ - "\x277\x13C\x2\x670\x671\x5\x279\x13D\x2\x671\x672\x5\x281\x141\x2\x672"+ - "\x673\x5\x26B\x136\x2\x673\x674\x5\x277\x13C\x2\x674\x675\x5\x275\x13B"+ - "\x2\x675\x676\x5\x25B\x12E\x2\x676\x677\x5\x271\x139\x2\x677\x13C\x3\x2"+ - "\x2\x2\x678\x679\x5\x277\x13C\x2\x679\x67A\x5\x279\x13D\x2\x67A\x67B\x5"+ - "\x281\x141\x2\x67B\x67C\x5\x26B\x136\x2\x67C\x67D\x5\x277\x13C\x2\x67D"+ - "\x67E\x5\x275\x13B\x2\x67E\x67F\x5\x24D\x127\x2\x67F\x680\x5\x25D\x12F"+ - "\x2\x680\x681\x5\x25B\x12E\x2\x681\x682\x5\x27F\x140\x2\x682\x683\x5\x263"+ - "\x132\x2\x683\x13E\x3\x2\x2\x2\x684\x685\x5\x277\x13C\x2\x685\x686\x5"+ - "\x279\x13D\x2\x686\x687\x5\x281\x141\x2\x687\x688\x5\x26B\x136\x2\x688"+ - "\x689\x5\x277\x13C\x2\x689\x68A\x5\x275\x13B\x2\x68A\x68B\x5\x24D\x127"+ - "\x2\x68B\x68C\x5\x263\x132\x2\x68C\x68D\x5\x289\x145\x2\x68D\x68E\x5\x279"+ - "\x13D\x2\x68E\x68F\x5\x271\x139\x2\x68F\x690\x5\x26B\x136\x2\x690\x691"+ - "\x5\x25F\x130\x2\x691\x692\x5\x26B\x136\x2\x692\x693\x5\x281\x141\x2\x693"+ - "\x140\x3\x2\x2\x2\x694\x695\x5\x277\x13C\x2\x695\x696\x5\x279\x13D\x2"+ - "\x696\x697\x5\x281\x141\x2\x697\x698\x5\x26B\x136\x2\x698\x699\x5\x277"+ - "\x13C\x2\x699\x69A\x5\x275\x13B\x2\x69A\x69B\x5\x24D\x127\x2\x69B\x69C"+ - "\x5\x25F\x130\x2\x69C\x69D\x5\x277\x13C\x2\x69D\x69E\x5\x273\x13A\x2\x69E"+ - "\x69F\x5\x279\x13D\x2\x69F\x6A0\x5\x25B\x12E\x2\x6A0\x6A1\x5\x27D\x13F"+ - "\x2\x6A1\x6A2\x5\x263\x132\x2\x6A2\x142\x3\x2\x2\x2\x6A3\x6A4\x5\x277"+ - "\x13C\x2\x6A4\x6A5\x5\x279\x13D\x2\x6A5\x6A6\x5\x281\x141\x2\x6A6\x6A7"+ - "\x5\x26B\x136\x2\x6A7\x6A8\x5\x277\x13C\x2\x6A8\x6A9\x5\x275\x13B\x2\x6A9"+ - "\x6AA\x5\x24D\x127\x2\x6AA\x6AB\x5\x279\x13D\x2\x6AB\x6AC\x5\x27D\x13F"+ - "\x2\x6AC\x6AD\x5\x26B\x136\x2\x6AD\x6AE\x5\x285\x143\x2\x6AE\x6AF\x5\x25B"+ - "\x12E\x2\x6AF\x6B0\x5\x281\x141\x2\x6B0\x6B1\x5\x263\x132\x2\x6B1\x6B2"+ - "\x5\x24D\x127\x2\x6B2\x6B3\x5\x273\x13A\x2\x6B3\x6B4\x5\x277\x13C\x2\x6B4"+ - "\x6B5\x5\x261\x131\x2\x6B5\x6B6\x5\x283\x142\x2\x6B6\x6B7\x5\x271\x139"+ - "\x2\x6B7\x6B8\x5\x263\x132\x2\x6B8\x144\x3\x2\x2\x2\x6B9\x6BA\x5\x277"+ - "\x13C\x2\x6BA\x6BB\x5\x27D\x13F\x2\x6BB\x146\x3\x2\x2\x2\x6BC\x6BD\x5"+ - "\x277\x13C\x2\x6BD\x6BE\x5\x283\x142\x2\x6BE\x6BF\x5\x281\x141\x2\x6BF"+ - "\x6C0\x5\x279\x13D\x2\x6C0\x6C1\x5\x283\x142\x2\x6C1\x6C2\x5\x281\x141"+ - "\x2\x6C2\x148\x3\x2\x2\x2\x6C3\x6C4\x5\x279\x13D\x2\x6C4\x6C5\x5\x25B"+ - "\x12E\x2\x6C5\x6C6\x5\x27D\x13F\x2\x6C6\x6C7\x5\x25B\x12E\x2\x6C7\x6C8"+ - "\x5\x273\x13A\x2\x6C8\x6C9\x5\x25B\x12E\x2\x6C9\x6CA\x5\x27D\x13F\x2\x6CA"+ - "\x6CB\x5\x27D\x13F\x2\x6CB\x6CC\x5\x25B\x12E\x2\x6CC\x6CD\x5\x28B\x146"+ - "\x2\x6CD\x14A\x3\x2\x2\x2\x6CE\x6CF\x5\x279\x13D\x2\x6CF\x6D0\x5\x27D"+ - "\x13F\x2\x6D0\x6D1\x5\x263\x132\x2\x6D1\x6D2\x5\x27F\x140\x2\x6D2\x6D3"+ - "\x5\x263\x132\x2\x6D3\x6D4\x5\x27D\x13F\x2\x6D4\x6D5\x5\x285\x143\x2\x6D5"+ - "\x6D6\x5\x263\x132\x2\x6D6\x14C\x3\x2\x2\x2\x6D7\x6D8\x5\x279\x13D\x2"+ - "\x6D8\x6D9\x5\x27D\x13F\x2\x6D9\x6DA\x5\x26B\x136\x2\x6DA\x6DB\x5\x275"+ - "\x13B\x2\x6DB\x6DC\x5\x281\x141\x2\x6DC\x14E\x3\x2\x2\x2\x6DD\x6DE\x5"+ - "\x279\x13D\x2\x6DE\x6DF\x5\x27D\x13F\x2\x6DF\x6E0\x5\x26B\x136\x2\x6E0"+ - "\x6E1\x5\x285\x143\x2\x6E1\x6E2\x5\x25B\x12E\x2\x6E2\x6E3\x5\x281\x141"+ - "\x2\x6E3\x6E4\x5\x263\x132\x2\x6E4\x150\x3\x2\x2\x2\x6E5\x6E6\x5\x279"+ - "\x13D\x2\x6E6\x6E7\x5\x27D\x13F\x2\x6E7\x6E8\x5\x277\x13C\x2\x6E8\x6E9"+ - "\x5\x279\x13D\x2\x6E9\x6EA\x5\x263\x132\x2\x6EA\x6EB\x5\x27D\x13F\x2\x6EB"+ - "\x6EC\x5\x281\x141\x2\x6EC\x6ED\x5\x28B\x146\x2\x6ED\x6EE\x5\x24D\x127"+ - "\x2\x6EE\x6EF\x5\x267\x134\x2\x6EF\x6F0\x5\x263\x132\x2\x6F0\x6F1\x5\x281"+ - "\x141\x2\x6F1\x152\x3\x2\x2\x2\x6F2\x6F3\x5\x279\x13D\x2\x6F3\x6F4\x5"+ - "\x27D\x13F\x2\x6F4\x6F5\x5\x277\x13C\x2\x6F5\x6F6\x5\x279\x13D\x2\x6F6"+ - "\x6F7\x5\x263\x132\x2\x6F7\x6F8\x5\x27D\x13F\x2\x6F8\x6F9\x5\x281\x141"+ - "\x2\x6F9\x6FA\x5\x28B\x146\x2\x6FA\x6FB\x5\x24D\x127\x2\x6FB\x6FC\x5\x271"+ - "\x139\x2\x6FC\x6FD\x5\x263\x132\x2\x6FD\x6FE\x5\x281\x141\x2\x6FE\x154"+ - "\x3\x2\x2\x2\x6FF\x700\x5\x279\x13D\x2\x700\x701\x5\x27D\x13F\x2\x701"+ - "\x702\x5\x277\x13C\x2\x702\x703\x5\x279\x13D\x2\x703\x704\x5\x263\x132"+ - "\x2\x704\x705\x5\x27D\x13F\x2\x705\x706\x5\x281\x141\x2\x706\x707\x5\x28B"+ - "\x146\x2\x707\x708\x5\x24D\x127\x2\x708\x709\x5\x27F\x140\x2\x709\x70A"+ - "\x5\x263\x132\x2\x70A\x70B\x5\x281\x141\x2\x70B\x156\x3\x2\x2\x2\x70C"+ - "\x70D\x5\x279\x13D\x2\x70D\x70E\x5\x281\x141\x2\x70E\x70F\x5\x27D\x13F"+ - "\x2\x70F\x710\x5\x27F\x140\x2\x710\x711\x5\x25B\x12E\x2\x711\x712\x5\x265"+ - "\x133\x2\x712\x713\x5\x263\x132\x2\x713\x158\x3\x2\x2\x2\x714\x715\x5"+ - "\x279\x13D\x2\x715\x716\x5\x283\x142\x2\x716\x717\x5\x25D\x12F\x2\x717"+ - "\x718\x5\x271\x139\x2\x718\x719\x5\x26B\x136\x2\x719\x71A\x5\x25F\x130"+ - "\x2\x71A\x15A\x3\x2\x2\x2\x71B\x71C\x5\x279\x13D\x2\x71C\x71D\x5\x283"+ - "\x142\x2\x71D\x71E\x5\x281\x141\x2\x71E\x15C\x3\x2\x2\x2\x71F\x720\x5"+ - "\x27D\x13F\x2\x720\x721\x5\x25B\x12E\x2\x721\x722\x5\x275\x13B\x2\x722"+ - "\x723\x5\x261\x131\x2\x723\x724\x5\x277\x13C\x2\x724\x725\x5\x273\x13A"+ - "\x2\x725\x15E\x3\x2\x2\x2\x726\x727\x5\x27D\x13F\x2\x727\x728\x5\x25B"+ - "\x12E\x2\x728\x729\x5\x275\x13B\x2\x729\x72A\x5\x261\x131\x2\x72A\x72B"+ - "\x5\x277\x13C\x2\x72B\x72C\x5\x273\x13A\x2\x72C\x72D\x5\x26B\x136\x2\x72D"+ - "\x72E\x5\x28D\x147\x2\x72E\x72F\x5\x263\x132\x2\x72F\x160\x3\x2\x2\x2"+ - "\x730\x731\x5\x27D\x13F\x2\x731\x732\x5\x25B\x12E\x2\x732\x733\x5\x26B"+ - "\x136\x2\x733\x734\x5\x27F\x140\x2\x734\x735\x5\x263\x132\x2\x735\x736"+ - "\x5\x263\x132\x2\x736\x737\x5\x285\x143\x2\x737\x738\x5\x263\x132\x2\x738"+ - "\x739\x5\x275\x13B\x2\x739\x73A\x5\x281\x141\x2\x73A\x162\x3\x2\x2\x2"+ - "\x73B\x73C\x5\x27D\x13F\x2\x73C\x73D\x5\x263\x132\x2\x73D\x73E\x5\x25B"+ - "\x12E\x2\x73E\x73F\x5\x261\x131\x2\x73F\x164\x3\x2\x2\x2\x740\x741\x5"+ - "\x27D\x13F\x2\x741\x742\x5\x263\x132\x2\x742\x743\x5\x25B\x12E\x2\x743"+ - "\x744\x5\x261\x131\x2\x744\x745\x5\x24D\x127\x2\x745\x746\x5\x287\x144"+ - "\x2\x746\x747\x5\x27D\x13F\x2\x747\x748\x5\x26B\x136\x2\x748\x749\x5\x281"+ - "\x141\x2\x749\x74A\x5\x263\x132\x2\x74A\x166\x3\x2\x2\x2\x74B\x74C\x5"+ - "\x27D\x13F\x2\x74C\x74D\x5\x263\x132\x2\x74D\x74E\x5\x261\x131\x2\x74E"+ - "\x74F\x5\x26B\x136\x2\x74F\x750\x5\x273\x13A\x2\x750\x168\x3\x2\x2\x2"+ - "\x751\x752\x5\x27D\x13F\x2\x752\x753\x5\x263\x132\x2\x753\x754\x5\x273"+ - "\x13A\x2\x754\x16A\x3\x2\x2\x2\x755\x756\x5\x27D\x13F\x2\x756\x757\x5"+ - "\x263\x132\x2\x757\x758\x5\x27F\x140\x2\x758\x759\x5\x263\x132\x2\x759"+ - "\x75A\x5\x281\x141\x2\x75A\x16C\x3\x2\x2\x2\x75B\x75C\x5\x27D\x13F\x2"+ - "\x75C\x75D\x5\x263\x132\x2\x75D\x75E\x5\x27F\x140\x2\x75E\x75F\x5\x283"+ - "\x142\x2\x75F\x760\x5\x273\x13A\x2\x760\x761\x5\x263\x132\x2\x761\x16E"+ - "\x3\x2\x2\x2\x762\x763\x5\x27D\x13F\x2\x763\x764\x5\x263\x132\x2\x764"+ - "\x765\x5\x281\x141\x2\x765\x766\x5\x283\x142\x2\x766\x767\x5\x27D\x13F"+ - "\x2\x767\x768\x5\x275\x13B\x2\x768\x170\x3\x2\x2\x2\x769\x76A\x5\x27D"+ - "\x13F\x2\x76A\x76B\x5\x273\x13A\x2\x76B\x76C\x5\x261\x131\x2\x76C\x76D"+ - "\x5\x26B\x136\x2\x76D\x76E\x5\x27D\x13F\x2\x76E\x172\x3\x2\x2\x2\x76F"+ - "\x770\x5\x27D\x13F\x2\x770\x771\x5\x27F\x140\x2\x771\x772\x5\x263\x132"+ - "\x2\x772\x773\x5\x281\x141\x2\x773\x174\x3\x2\x2\x2\x774\x775\x5\x27F"+ - "\x140\x2\x775\x776\x5\x25B\x12E\x2\x776\x777\x5\x285\x143\x2\x777\x778"+ - "\x5\x263\x132\x2\x778\x779\x5\x279\x13D\x2\x779\x77A\x5\x26B\x136\x2\x77A"+ - "\x77B\x5\x25F\x130\x2\x77B\x77C\x5\x281\x141\x2\x77C\x77D\x5\x283\x142"+ - "\x2\x77D\x77E\x5\x27D\x13F\x2\x77E\x77F\x5\x263\x132\x2\x77F\x176\x3\x2"+ - "\x2\x2\x780\x781\x5\x27F\x140\x2\x781\x782\x5\x25B\x12E\x2\x782\x783\x5"+ - "\x285\x143\x2\x783\x784\x5\x263\x132\x2\x784\x785\x5\x27F\x140\x2\x785"+ - "\x786\x5\x263\x132\x2\x786\x787\x5\x281\x141\x2\x787\x788\x5\x281\x141"+ - "\x2\x788\x789\x5\x26B\x136\x2\x789\x78A\x5\x275\x13B\x2\x78A\x78B\x5\x267"+ - "\x134\x2\x78B\x178\x3\x2\x2\x2\x78C\x78D\x5\x27F\x140\x2\x78D\x78E\x5"+ - "\x263\x132\x2\x78E\x78F\x5\x263\x132\x2\x78F\x790\x5\x26F\x138\x2\x790"+ - "\x17A\x3\x2\x2\x2\x791\x792\x5\x27F\x140\x2\x792\x793\x5\x263\x132\x2"+ - "\x793\x794\x5\x271\x139\x2\x794\x795\x5\x263\x132\x2\x795\x796\x5\x25F"+ - "\x130\x2\x796\x797\x5\x281\x141\x2\x797\x17C\x3\x2\x2\x2\x798\x799\x5"+ - "\x27F\x140\x2\x799\x79A\x5\x263\x132\x2\x79A\x79B\x5\x275\x13B\x2\x79B"+ - "\x79C\x5\x261\x131\x2\x79C\x79D\x5\x26F\x138\x2\x79D\x79E\x5\x263\x132"+ - "\x2\x79E\x79F\x5\x28B\x146\x2\x79F\x7A0\x5\x27F\x140\x2\x7A0\x17E\x3\x2"+ - "\x2\x2\x7A1\x7A2\x5\x27F\x140\x2\x7A2\x7A3\x5\x263\x132\x2\x7A3\x7A4\x5"+ - "\x281\x141\x2\x7A4\x180\x3\x2\x2\x2\x7A5\x7A6\x5\x27F\x140\x2\x7A6\x7A7"+ - "\x5\x263\x132\x2\x7A7\x7A8\x5\x281\x141\x2\x7A8\x7A9\x5\x25B\x12E\x2\x7A9"+ - "\x7AA\x5\x281\x141\x2\x7AA\x7AB\x5\x281\x141\x2\x7AB\x7AC\x5\x27D\x13F"+ - "\x2\x7AC\x182\x3\x2\x2\x2\x7AD\x7AE\x5\x27F\x140\x2\x7AE\x7AF\x5\x269"+ - "\x135\x2\x7AF\x7B0\x5\x25B\x12E\x2\x7B0\x7B1\x5\x27D\x13F\x2\x7B1\x7B2"+ - "\x5\x263\x132\x2\x7B2\x7B3\x5\x261\x131\x2\x7B3\x184\x3\x2\x2\x2\x7B4"+ - "\x7B5\x5\x27F\x140\x2\x7B5\x7B6\x5\x26B\x136\x2\x7B6\x7B7\x5\x275\x13B"+ - "\x2\x7B7\x7B8\x5\x267\x134\x2\x7B8\x7B9\x5\x271\x139\x2\x7B9\x7BA\x5\x263"+ - "\x132\x2\x7BA\x186\x3\x2\x2\x2\x7BB\x7BC\x5\x27F\x140\x2\x7BC\x7BD\x5"+ - "\x279\x13D\x2\x7BD\x7BE\x5\x25F\x130\x2\x7BE\x188\x3\x2\x2\x2\x7BF\x7C0"+ - "\x5\x27F\x140\x2\x7C0\x7C1\x5\x281\x141\x2\x7C1\x7C2\x5\x25B\x12E\x2\x7C2"+ - "\x7C3\x5\x281\x141\x2\x7C3\x7C4\x5\x26B\x136\x2\x7C4\x7C5\x5\x25F\x130"+ - "\x2\x7C5\x18A\x3\x2\x2\x2\x7C6\x7C7\x5\x27F\x140\x2\x7C7\x7C8\x5\x281"+ - "\x141\x2\x7C8\x7C9\x5\x263\x132\x2\x7C9\x7CA\x5\x279\x13D\x2\x7CA\x18C"+ - "\x3\x2\x2\x2\x7CB\x7CC\x5\x27F\x140\x2\x7CC\x7CD\x5\x281\x141\x2\x7CD"+ - "\x7CE\x5\x277\x13C\x2\x7CE\x7CF\x5\x279\x13D\x2\x7CF\x18E\x3\x2\x2\x2"+ - "\x7D0\x7D1\x5\x27F\x140\x2\x7D1\x7D2\x5\x281\x141\x2\x7D2\x7D3\x5\x27D"+ - "\x13F\x2\x7D3\x7D4\x5\x26B\x136\x2\x7D4\x7D5\x5\x275\x13B\x2\x7D5\x7D6"+ - "\x5\x267\x134\x2\x7D6\x190\x3\x2\x2\x2\x7D7\x7D8\x5\x27F\x140\x2\x7D8"+ - "\x7D9\x5\x283\x142\x2\x7D9\x7DA\x5\x25D\x12F\x2\x7DA\x192\x3\x2\x2\x2"+ - "\x7DB\x7DC\x5\x281\x141\x2\x7DC\x7DD\x5\x25B\x12E\x2\x7DD\x7DE\x5\x25D"+ - "\x12F\x2\x7DE\x194\x3\x2\x2\x2\x7DF\x7E0\x5\x281\x141\x2\x7E0\x7E1\x5"+ - "\x263\x132\x2\x7E1\x7E2\x5\x289\x145\x2\x7E2\x7E3\x5\x281\x141\x2\x7E3"+ - "\x196\x3\x2\x2\x2\x7E4\x7E5\x5\x281\x141\x2\x7E5\x7E6\x5\x269\x135\x2"+ - "\x7E6\x7E7\x5\x263\x132\x2\x7E7\x7E8\x5\x275\x13B\x2\x7E8\x198\x3\x2\x2"+ - "\x2\x7E9\x7EA\x5\x281\x141\x2\x7EA\x7EB\x5\x26B\x136\x2\x7EB\x7EC\x5\x273"+ - "\x13A\x2\x7EC\x7ED\x5\x263\x132\x2\x7ED\x19A\x3\x2\x2\x2\x7EE\x7EF\x5"+ - "\x281\x141\x2\x7EF\x7F0\x5\x277\x13C\x2\x7F0\x19C\x3\x2\x2\x2\x7F1\x7F2"+ - "\x5\x281\x141\x2\x7F2\x7F3\x5\x27D\x13F\x2\x7F3\x7F4\x5\x283\x142\x2\x7F4"+ - "\x7F5\x5\x263\x132\x2\x7F5\x19E\x3\x2\x2\x2\x7F6\x7F7\x5\x281\x141\x2"+ - "\x7F7\x7F8\x5\x28B\x146\x2\x7F8\x7F9\x5\x279\x13D\x2\x7F9\x7FA\x5\x263"+ - "\x132\x2\x7FA\x1A0\x3\x2\x2\x2\x7FB\x7FC\x5\x281\x141\x2\x7FC\x7FD\x5"+ - "\x28B\x146\x2\x7FD\x7FE\x5\x279\x13D\x2\x7FE\x7FF\x5\x263\x132\x2\x7FF"+ - "\x800\x5\x277\x13C\x2\x800\x801\x5\x265\x133\x2\x801\x1A2\x3\x2\x2\x2"+ - "\x802\x803\x5\x283\x142\x2\x803\x804\x5\x275\x13B\x2\x804\x805\x5\x271"+ - "\x139\x2\x805\x806\x5\x277\x13C\x2\x806\x807\x5\x25B\x12E\x2\x807\x808"+ - "\x5\x261\x131\x2\x808\x1A4\x3\x2\x2\x2\x809\x80A\x5\x283\x142\x2\x80A"+ - "\x80B\x5\x275\x13B\x2\x80B\x80C\x5\x271\x139\x2\x80C\x80D\x5\x277\x13C"+ - "\x2\x80D\x80E\x5\x25F\x130\x2\x80E\x80F\x5\x26F\x138\x2\x80F\x1A6\x3\x2"+ - "\x2\x2\x810\x811\x5\x283\x142\x2\x811\x812\x5\x275\x13B\x2\x812\x813\x5"+ - "\x281\x141\x2\x813\x814\x5\x26B\x136\x2\x814\x815\x5\x271\x139\x2\x815"+ - "\x1A8\x3\x2\x2\x2\x816\x817\x5\x285\x143\x2\x817\x818\x5\x25B\x12E\x2"+ - "\x818\x819\x5\x27D\x13F\x2\x819\x81A\x5\x26B\x136\x2\x81A\x81B\x5\x25B"+ - "\x12E\x2\x81B\x81C\x5\x275\x13B\x2\x81C\x81D\x5\x281\x141\x2\x81D\x1AA"+ - "\x3\x2\x2\x2\x81E\x81F\x5\x285\x143\x2\x81F\x820\x5\x263\x132\x2\x820"+ - "\x821\x5\x27D\x13F\x2\x821\x822\x5\x27F\x140\x2\x822\x823\x5\x26B\x136"+ - "\x2\x823\x824\x5\x277\x13C\x2\x824\x825\x5\x275\x13B\x2\x825\x1AC\x3\x2"+ - "\x2\x2\x826\x827\x5\x287\x144\x2\x827\x828\x5\x263\x132\x2\x828\x829\x5"+ - "\x275\x13B\x2\x829\x82A\x5\x261\x131\x2\x82A\x1AE\x3\x2\x2\x2\x82B\x82C"+ - "\x5\x287\x144\x2\x82C\x82D\x5\x269\x135\x2\x82D\x82E\x5\x26B\x136\x2\x82E"+ - "\x82F\x5\x271\x139\x2\x82F\x830\x5\x263\x132\x2\x830\x1B0\x3\x2\x2\x2"+ - "\x831\x832\x5\x287\x144\x2\x832\x833\x5\x26B\x136\x2\x833\x834\x5\x261"+ - "\x131\x2\x834\x835\x5\x281\x141\x2\x835\x836\x5\x269\x135\x2\x836\x1B2"+ - "\x3\x2\x2\x2\x837\x838\x5\x287\x144\x2\x838\x839\x5\x26B\x136\x2\x839"+ - "\x83A\x5\x281\x141\x2\x83A\x83B\x5\x269\x135\x2\x83B\x1B4\x3\x2\x2\x2"+ - "\x83C\x83D\x5\x287\x144\x2\x83D\x83E\x5\x26B\x136\x2\x83E\x83F\x5\x281"+ - "\x141\x2\x83F\x840\x5\x269\x135\x2\x840\x841\x5\x263\x132\x2\x841\x842"+ - "\x5\x285\x143\x2\x842\x843\x5\x263\x132\x2\x843\x844\x5\x275\x13B\x2\x844"+ - "\x845\x5\x281\x141\x2\x845\x846\x5\x27F\x140\x2\x846\x1B6\x3\x2\x2\x2"+ - "\x847\x848\x5\x287\x144\x2\x848\x849\x5\x27D\x13F\x2\x849\x84A\x5\x26B"+ - "\x136\x2\x84A\x84B\x5\x281\x141\x2\x84B\x84C\x5\x263\x132\x2\x84C\x1B8"+ - "\x3\x2\x2\x2\x84D\x84E\x5\x289\x145\x2\x84E\x84F\x5\x277\x13C\x2\x84F"+ - "\x850\x5\x27D\x13F\x2\x850\x1BA\x3\x2\x2\x2\x851\x852\a<\x2\x2\x852\x853"+ - "\a?\x2\x2\x853\x1BC\x3\x2\x2\x2\x854\x855\a\x31\x2\x2\x855\x1BE\x3\x2"+ - "\x2\x2\x856\x857\a^\x2\x2\x857\x1C0\x3\x2\x2\x2\x858\x859\a?\x2\x2\x859"+ - "\x1C2\x3\x2\x2\x2\x85A\x85B\a@\x2\x2\x85B\x85F\a?\x2\x2\x85C\x85D\a?\x2"+ - "\x2\x85D\x85F\a@\x2\x2\x85E\x85A\x3\x2\x2\x2\x85E\x85C\x3\x2\x2\x2\x85F"+ - "\x1C4\x3\x2\x2\x2\x860\x861\a@\x2\x2\x861\x1C6\x3\x2\x2\x2\x862\x863\a"+ - ">\x2\x2\x863\x867\a?\x2\x2\x864\x865\a?\x2\x2\x865\x867\a>\x2\x2\x866"+ - "\x862\x3\x2\x2\x2\x866\x864\x3\x2\x2\x2\x867\x1C8\x3\x2\x2\x2\x868\x869"+ - "\a*\x2\x2\x869\x1CA\x3\x2\x2\x2\x86A\x86B\a>\x2\x2\x86B\x1CC\x3\x2\x2"+ - "\x2\x86C\x86D\a/\x2\x2\x86D\x1CE\x3\x2\x2\x2\x86E\x86F\a,\x2\x2\x86F\x1D0"+ - "\x3\x2\x2\x2\x870\x871\a>\x2\x2\x871\x875\a@\x2\x2\x872\x873\a@\x2\x2"+ - "\x873\x875\a>\x2\x2\x874\x870\x3\x2\x2\x2\x874\x872\x3\x2\x2\x2\x875\x1D2"+ - "\x3\x2\x2\x2\x876\x877\a-\x2\x2\x877\x1D4\x3\x2\x2\x2\x878\x879\a`\x2"+ - "\x2\x879\x1D6\x3\x2\x2\x2\x87A\x87B\a+\x2\x2\x87B\x1D8\x3\x2\x2\x2\x87C"+ - "\x87E\x5\x24D\x127\x2\x87D\x87C\x3\x2\x2\x2\x87E\x881\x3\x2\x2\x2\x87F"+ - "\x87D\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x882\x3\x2\x2\x2\x881\x87F"+ - "\x3\x2\x2\x2\x882\x883\x5Y-\x2\x883\x884\x5\x8DG\x2\x884\x1DA\x3\x2\x2"+ - "\x2\x885\x887\x5\x24D\x127\x2\x886\x885\x3\x2\x2\x2\x887\x88A\x3\x2\x2"+ - "\x2\x888\x886\x3\x2\x2\x2\x888\x889\x3\x2\x2\x2\x889\x88B\x3\x2\x2\x2"+ - "\x88A\x888\x3\x2\x2\x2\x88B\x88C\x5Y-\x2\x88C\x88D\x5\x26B\x136\x2\x88D"+ - "\x88E\x5\x265\x133\x2\x88E\x1DC\x3\x2\x2\x2\x88F\x891\x5\x24D\x127\x2"+ - "\x890\x88F\x3\x2\x2\x2\x891\x894\x3\x2\x2\x2\x892\x890\x3\x2\x2\x2\x892"+ - "\x893\x3\x2\x2\x2\x893\x895\x3\x2\x2\x2\x894\x892\x3\x2\x2\x2\x895\x896"+ - "\x5Y-\x2\x896\x897\x5\x263\x132\x2\x897\x898\x5\x271\x139\x2\x898\x899"+ - "\x5\x27F\x140\x2\x899\x89A\x5\x263\x132\x2\x89A\x89B\x5\x26B\x136\x2\x89B"+ - "\x89C\x5\x265\x133\x2\x89C\x1DE\x3\x2\x2\x2\x89D\x89F\x5\x24D\x127\x2"+ - "\x89E\x89D\x3\x2\x2\x2\x89F\x8A2\x3\x2\x2\x2\x8A0\x89E\x3\x2\x2\x2\x8A0"+ - "\x8A1\x3\x2\x2\x2\x8A1\x8A3\x3\x2\x2\x2\x8A2\x8A0\x3\x2\x2\x2\x8A3\x8A4"+ - "\x5Y-\x2\x8A4\x8A5\x5\x263\x132\x2\x8A5\x8A6\x5\x271\x139\x2\x8A6\x8A7"+ - "\x5\x27F\x140\x2\x8A7\x8A8\x5\x263\x132\x2\x8A8\x1E0\x3\x2\x2\x2\x8A9"+ - "\x8AB\x5\x24D\x127\x2\x8AA\x8A9\x3\x2\x2\x2\x8AB\x8AE\x3\x2\x2\x2\x8AC"+ - "\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AF\x3\x2\x2\x2\x8AE\x8AC"+ - "\x3\x2\x2\x2\x8AF\x8B0\x5Y-\x2\x8B0\x8B1\x5\x263\x132\x2\x8B1\x8B2\x5"+ - "\x275\x13B\x2\x8B2\x8B6\x5\x261\x131\x2\x8B3\x8B5\x5\x24D\x127\x2\x8B4"+ - "\x8B3\x3\x2\x2\x2\x8B5\x8B8\x3\x2\x2\x2\x8B6\x8B4\x3\x2\x2\x2\x8B6\x8B7"+ - "\x3\x2\x2\x2\x8B7\x8B9\x3\x2\x2\x2\x8B8\x8B6\x3\x2\x2\x2\x8B9\x8BA\x5"+ - "\x26B\x136\x2\x8BA\x8BB\x5\x265\x133\x2\x8BB\x1E2\x3\x2\x2\x2\x8BC\x8BD"+ - "\a]\x2\x2\x8BD\x1E4\x3\x2\x2\x2\x8BE\x8BF\a_\x2\x2\x8BF\x1E6\x3\x2\x2"+ - "\x2\x8C0\x8C6\a$\x2\x2\x8C1\x8C5\n\x2\x2\x2\x8C2\x8C3\a$\x2\x2\x8C3\x8C5"+ - "\a$\x2\x2\x8C4\x8C1\x3\x2\x2\x2\x8C4\x8C2\x3\x2\x2\x2\x8C5\x8C8\x3\x2"+ - "\x2\x2\x8C6\x8C4\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7\x8C9\x3\x2\x2"+ - "\x2\x8C8\x8C6\x3\x2\x2\x2\x8C9\x8CA\a$\x2\x2\x8CA\x1E8\x3\x2\x2\x2\x8CB"+ - "\x8CC\a(\x2\x2\x8CC\x8CD\aQ\x2\x2\x8CD\x8CF\x3\x2\x2\x2\x8CE\x8D0\t\x3"+ - "\x2\x2\x8CF\x8CE\x3\x2\x2\x2\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8CF\x3\x2\x2"+ - "\x2\x8D1\x8D2\x3\x2\x2\x2\x8D2\x8D4\x3\x2\x2\x2\x8D3\x8D5\a(\x2\x2\x8D4"+ - "\x8D3\x3\x2\x2\x2\x8D4\x8D5\x3\x2\x2\x2\x8D5\x1EA\x3\x2\x2\x2\x8D6\x8D7"+ - "\a(\x2\x2\x8D7\x8D8\aJ\x2\x2\x8D8\x8DA\x3\x2\x2\x2\x8D9\x8DB\t\x4\x2\x2"+ - "\x8DA\x8D9\x3\x2\x2\x2\x8DB\x8DC\x3\x2\x2\x2\x8DC\x8DA\x3\x2\x2\x2\x8DC"+ - "\x8DD\x3\x2\x2\x2\x8DD\x8DF\x3\x2\x2\x2\x8DE\x8E0\a(\x2\x2\x8DF\x8DE\x3"+ - "\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x1EC\x3\x2\x2\x2\x8E1\x8E3\x5\x1EF"+ - "\xF8\x2\x8E2\x8E4\x5\x1F5\xFB\x2\x8E3\x8E2\x3\x2\x2\x2\x8E3\x8E4\x3\x2"+ - "\x2\x2\x8E4\x8E9\x3\x2\x2\x2\x8E5\x8E6\x5\x1FD\xFF\x2\x8E6\x8E7\x5\x1F5"+ - "\xFB\x2\x8E7\x8E9\x3\x2\x2\x2\x8E8\x8E1\x3\x2\x2\x2\x8E8\x8E5\x3\x2\x2"+ - "\x2\x8E9\x1EE\x3\x2\x2\x2\x8EA\x8EB\x5\x1FD\xFF\x2\x8EB\x8EC\x5\x1F7\xFC"+ - "\x2\x8EC\x8FB\x3\x2\x2\x2\x8ED\x8EE\x5\x1FD\xFF\x2\x8EE\x8F0\a\x30\x2"+ - "\x2\x8EF\x8F1\x5\x1FD\xFF\x2\x8F0\x8EF\x3\x2\x2\x2\x8F0\x8F1\x3\x2\x2"+ - "\x2\x8F1\x8F3\x3\x2\x2\x2\x8F2\x8F4\x5\x1F7\xFC\x2\x8F3\x8F2\x3\x2\x2"+ - "\x2\x8F3\x8F4\x3\x2\x2\x2\x8F4\x8FB\x3\x2\x2\x2\x8F5\x8F6\a\x30\x2\x2"+ - "\x8F6\x8F8\x5\x1FD\xFF\x2\x8F7\x8F9\x5\x1F7\xFC\x2\x8F8\x8F7\x3\x2\x2"+ - "\x2\x8F8\x8F9\x3\x2\x2\x2\x8F9\x8FB\x3\x2\x2\x2\x8FA\x8EA\x3\x2\x2\x2"+ - "\x8FA\x8ED\x3\x2\x2\x2\x8FA\x8F5\x3\x2\x2\x2\x8FB\x1F0\x3\x2\x2\x2\x8FC"+ - "\x8FE\x5\x1FD\xFF\x2\x8FD\x8FF\x5\x1F3\xFA\x2\x8FE\x8FD\x3\x2\x2\x2\x8FE"+ - "\x8FF\x3\x2\x2\x2\x8FF\x1F2\x3\x2\x2\x2\x900\x901\t\x5\x2\x2\x901\x1F4"+ - "\x3\x2\x2\x2\x902\x903\t\x6\x2\x2\x903\x1F6\x3\x2\x2\x2\x904\x906\x5\x1F9"+ - "\xFD\x2\x905\x907\x5\x1FB\xFE\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2"+ - "\x2\x2\x907\x909\x3\x2\x2\x2\x908\x90A\x5\x257\x12C\x2\x909\x908\x3\x2"+ - "\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x909\x3\x2\x2\x2\x90B\x90C\x3\x2\x2"+ - "\x2\x90C\x1F8\x3\x2\x2\x2\x90D\x90E\t\a\x2\x2\x90E\x1FA\x3\x2\x2\x2\x90F"+ - "\x910\t\b\x2\x2\x910\x1FC\x3\x2\x2\x2\x911\x913\x5\x257\x12C\x2\x912\x911"+ - "\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\x912\x3\x2\x2\x2\x914\x915\x3"+ - "\x2\x2\x2\x915\x1FE\x3\x2\x2\x2\x916\x917\a%\x2\x2\x917\x918\x5\x201\x101"+ - "\x2\x918\x919\a%\x2\x2\x919\x200\x3\x2\x2\x2\x91A\x91C\x5\x203\x102\x2"+ - "\x91B\x91D\x5\x24D\x127\x2\x91C\x91B\x3\x2\x2\x2\x91C\x91D\x3\x2\x2\x2"+ - "\x91D\x91E\x3\x2\x2\x2\x91E\x91F\x5\x20F\x108\x2\x91F\x923\x3\x2\x2\x2"+ - "\x920\x923\x5\x203\x102\x2\x921\x923\x5\x20F\x108\x2\x922\x91A\x3\x2\x2"+ - "\x2\x922\x920\x3\x2\x2\x2\x922\x921\x3\x2\x2\x2\x923\x202\x3\x2\x2\x2"+ - "\x924\x925\x5\x205\x103\x2\x925\x926\x5\x207\x104\x2\x926\x92A\x5\x205"+ - "\x103\x2\x927\x928\x5\x207\x104\x2\x928\x929\x5\x205\x103\x2\x929\x92B"+ - "\x3\x2\x2\x2\x92A\x927\x3\x2\x2\x2\x92A\x92B\x3\x2\x2\x2\x92B\x204\x3"+ - "\x2\x2\x2\x92C\x92E\x5\x257\x12C\x2\x92D\x92C\x3\x2\x2\x2\x92E\x92F\x3"+ - "\x2\x2\x2\x92F\x92D\x3\x2\x2\x2\x92F\x930\x3\x2\x2\x2\x930\x933\x3\x2"+ - "\x2\x2\x931\x933\x5\x209\x105\x2\x932\x92D\x3\x2\x2\x2\x932\x931\x3\x2"+ - "\x2\x2\x933\x206\x3\x2\x2\x2\x934\x936\x5\x24D\x127\x2\x935\x934\x3\x2"+ - "\x2\x2\x935\x936\x3\x2\x2\x2\x936\x938\x3\x2\x2\x2\x937\x939\t\t\x2\x2"+ - "\x938\x937\x3\x2\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93B\x3\x2\x2\x2\x93A"+ - "\x93C\x5\x24D\x127\x2\x93B\x93A\x3\x2\x2\x2\x93B\x93C\x3\x2\x2\x2\x93C"+ - "\x208\x3\x2\x2\x2\x93D\x940\x5\x20B\x106\x2\x93E\x940\x5\x20D\x107\x2"+ - "\x93F\x93D\x3\x2\x2\x2\x93F\x93E\x3\x2\x2\x2\x940\x20A\x3\x2\x2\x2\x941"+ - "\x94E\x5\x215\x10B\x2\x942\x94E\x5\x217\x10C\x2\x943\x94E\x5\x219\x10D"+ - "\x2\x944\x94E\x5\x21B\x10E\x2\x945\x94E\x5\x21D\x10F\x2\x946\x94E\x5\x21F"+ - "\x110\x2\x947\x94E\x5\x221\x111\x2\x948\x94E\x5\x223\x112\x2\x949\x94E"+ - "\x5\x225\x113\x2\x94A\x94E\x5\x227\x114\x2\x94B\x94E\x5\x229\x115\x2\x94C"+ - "\x94E\x5\x22B\x116\x2\x94D\x941\x3\x2\x2\x2\x94D\x942\x3\x2\x2\x2\x94D"+ - "\x943\x3\x2\x2\x2\x94D\x944\x3\x2\x2\x2\x94D\x945\x3\x2\x2\x2\x94D\x946"+ - "\x3\x2\x2\x2\x94D\x947\x3\x2\x2\x2\x94D\x948\x3\x2\x2\x2\x94D\x949\x3"+ - "\x2\x2\x2\x94D\x94A\x3\x2\x2\x2\x94D\x94B\x3\x2\x2\x2\x94D\x94C\x3\x2"+ - "\x2\x2\x94E\x20C\x3\x2\x2\x2\x94F\x95B\x5\x22D\x117\x2\x950\x95B\x5\x22F"+ - "\x118\x2\x951\x95B\x5\x231\x119\x2\x952\x95B\x5\x233\x11A\x2\x953\x95B"+ - "\x5\x235\x11B\x2\x954\x95B\x5\x237\x11C\x2\x955\x95B\x5\x239\x11D\x2\x956"+ - "\x95B\x5\x23B\x11E\x2\x957\x95B\x5\x23D\x11F\x2\x958\x95B\x5\x23F\x120"+ - "\x2\x959\x95B\x5\x241\x121\x2\x95A\x94F\x3\x2\x2\x2\x95A\x950\x3\x2\x2"+ - "\x2\x95A\x951\x3\x2\x2\x2\x95A\x952\x3\x2\x2\x2\x95A\x953\x3\x2\x2\x2"+ - "\x95A\x954\x3\x2\x2\x2\x95A\x955\x3\x2\x2\x2\x95A\x956\x3\x2\x2\x2\x95A"+ - "\x957\x3\x2\x2\x2\x95A\x958\x3\x2\x2\x2\x95A\x959\x3\x2\x2\x2\x95B\x20E"+ - "\x3\x2\x2\x2\x95C\x95E\x5\x257\x12C\x2\x95D\x95C\x3\x2\x2\x2\x95E\x95F"+ - "\x3\x2\x2\x2\x95F\x95D\x3\x2\x2\x2\x95F\x960\x3\x2\x2\x2\x960\x961\x3"+ - "\x2\x2\x2\x961\x962\x5\x213\x10A\x2\x962\x97A\x3\x2\x2\x2\x963\x965\x5"+ - "\x257\x12C\x2\x964\x963\x3\x2\x2\x2\x965\x966\x3\x2\x2\x2\x966\x964\x3"+ - "\x2\x2\x2\x966\x967\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968\x96A\x5\x211"+ - "\x109\x2\x969\x96B\x5\x257\x12C\x2\x96A\x969\x3\x2\x2\x2\x96B\x96C\x3"+ - "\x2\x2\x2\x96C\x96A\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D\x974\x3\x2"+ - "\x2\x2\x96E\x970\x5\x211\x109\x2\x96F\x971\x5\x257\x12C\x2\x970\x96F\x3"+ - "\x2\x2\x2\x971\x972\x3\x2\x2\x2\x972\x970\x3\x2\x2\x2\x972\x973\x3\x2"+ - "\x2\x2\x973\x975\x3\x2\x2\x2\x974\x96E\x3\x2\x2\x2\x974\x975\x3\x2\x2"+ - "\x2\x975\x977\x3\x2\x2\x2\x976\x978\x5\x213\x10A\x2\x977\x976\x3\x2\x2"+ - "\x2\x977\x978\x3\x2\x2\x2\x978\x97A\x3\x2\x2\x2\x979\x95D\x3\x2\x2\x2"+ - "\x979\x964\x3\x2\x2\x2\x97A\x210\x3\x2\x2\x2\x97B\x97D\x5\x24D\x127\x2"+ - "\x97C\x97B\x3\x2\x2\x2\x97C\x97D\x3\x2\x2\x2\x97D\x97E\x3\x2\x2\x2\x97E"+ - "\x980\t\n\x2\x2\x97F\x981\x5\x24D\x127\x2\x980\x97F\x3\x2\x2\x2\x980\x981"+ - "\x3\x2\x2\x2\x981\x212\x3\x2\x2\x2\x982\x984\x5\x24D\x127\x2\x983\x982"+ - "\x3\x2\x2\x2\x983\x984\x3\x2\x2\x2\x984\x98D\x3\x2\x2\x2\x985\x986\x5"+ - "\x25B\x12E\x2\x986\x987\x5\x273\x13A\x2\x987\x98E\x3\x2\x2\x2\x988\x989"+ - "\x5\x279\x13D\x2\x989\x98A\x5\x273\x13A\x2\x98A\x98E\x3\x2\x2\x2\x98B"+ - "\x98E\x5\x25B\x12E\x2\x98C\x98E\x5\x279\x13D\x2\x98D\x985\x3\x2\x2\x2"+ - "\x98D\x988\x3\x2\x2\x2\x98D\x98B\x3\x2\x2\x2\x98D\x98C\x3\x2\x2\x2\x98E"+ - "\x214\x3\x2\x2\x2\x98F\x990\x5\x26D\x137\x2\x990\x991\x5\x25B\x12E\x2"+ - "\x991\x992\x5\x275\x13B\x2\x992\x993\x5\x283\x142\x2\x993\x994\x5\x25B"+ - "\x12E\x2\x994\x995\x5\x27D\x13F\x2\x995\x996\x5\x28B\x146\x2\x996\x216"+ - "\x3\x2\x2\x2\x997\x998\x5\x265\x133\x2\x998\x999\x5\x263\x132\x2\x999"+ - "\x99A\x5\x25D\x12F\x2\x99A\x99B\x5\x27D\x13F\x2\x99B\x99C\x5\x283\x142"+ - "\x2\x99C\x99D\x5\x25B\x12E\x2\x99D\x99E\x5\x27D\x13F\x2\x99E\x99F\x5\x28B"+ - "\x146\x2\x99F\x218\x3\x2\x2\x2\x9A0\x9A1\x5\x273\x13A\x2\x9A1\x9A2\x5"+ - "\x25B\x12E\x2\x9A2\x9A3\x5\x27D\x13F\x2\x9A3\x9A4\x5\x25F\x130\x2\x9A4"+ - "\x9A5\x5\x269\x135\x2\x9A5\x21A\x3\x2\x2\x2\x9A6\x9A7\x5\x25B\x12E\x2"+ - "\x9A7\x9A8\x5\x279\x13D\x2\x9A8\x9A9\x5\x27D\x13F\x2\x9A9\x9AA\x5\x26B"+ - "\x136\x2\x9AA\x9AB\x5\x271\x139\x2\x9AB\x21C\x3\x2\x2\x2\x9AC\x9AD\x5"+ - "\x273\x13A\x2\x9AD\x9AE\x5\x25B\x12E\x2\x9AE\x9AF\x5\x28B\x146\x2\x9AF"+ - "\x21E\x3\x2\x2\x2\x9B0\x9B1\x5\x26D\x137\x2\x9B1\x9B2\x5\x283\x142\x2"+ - "\x9B2\x9B3\x5\x275\x13B\x2\x9B3\x9B4\x5\x263\x132\x2\x9B4\x220\x3\x2\x2"+ - "\x2\x9B5\x9B6\x5\x26D\x137\x2\x9B6\x9B7\x5\x283\x142\x2\x9B7\x9B8\x5\x271"+ - "\x139\x2\x9B8\x9B9\x5\x28B\x146\x2\x9B9\x222\x3\x2\x2\x2\x9BA\x9BB\x5"+ - "\x25B\x12E\x2\x9BB\x9BC\x5\x283\x142\x2\x9BC\x9BD\x5\x267\x134\x2\x9BD"+ - "\x9BE\x5\x283\x142\x2\x9BE\x9BF\x5\x27F\x140\x2\x9BF\x9C0\x5\x281\x141"+ - "\x2\x9C0\x224\x3\x2\x2\x2\x9C1\x9C2\x5\x27F\x140\x2\x9C2\x9C3\x5\x263"+ - "\x132\x2\x9C3\x9C4\x5\x279\x13D\x2\x9C4\x9C5\x5\x281\x141\x2\x9C5\x9C6"+ - "\x5\x263\x132\x2\x9C6\x9C7\x5\x273\x13A\x2\x9C7\x9C8\x5\x25D\x12F\x2\x9C8"+ - "\x9C9\x5\x263\x132\x2\x9C9\x9CA\x5\x27D\x13F\x2\x9CA\x226\x3\x2\x2\x2"+ - "\x9CB\x9CC\x5\x277\x13C\x2\x9CC\x9CD\x5\x25F\x130\x2\x9CD\x9CE\x5\x281"+ - "\x141\x2\x9CE\x9CF\x5\x277\x13C\x2\x9CF\x9D0\x5\x25D\x12F\x2\x9D0\x9D1"+ - "\x5\x263\x132\x2\x9D1\x9D2\x5\x27D\x13F\x2\x9D2\x228\x3\x2\x2\x2\x9D3"+ - "\x9D4\x5\x275\x13B\x2\x9D4\x9D5\x5\x277\x13C\x2\x9D5\x9D6\x5\x285\x143"+ - "\x2\x9D6\x9D7\x5\x263\x132\x2\x9D7\x9D8\x5\x273\x13A\x2\x9D8\x9D9\x5\x25D"+ - "\x12F\x2\x9D9\x9DA\x5\x263\x132\x2\x9DA\x9DB\x5\x27D\x13F\x2\x9DB\x22A"+ - "\x3\x2\x2\x2\x9DC\x9DD\x5\x261\x131\x2\x9DD\x9DE\x5\x263\x132\x2\x9DE"+ - "\x9DF\x5\x25F\x130\x2\x9DF\x9E0\x5\x263\x132\x2\x9E0\x9E1\x5\x273\x13A"+ - "\x2\x9E1\x9E2\x5\x25D\x12F\x2\x9E2\x9E3\x5\x263\x132\x2\x9E3\x9E4\x5\x27D"+ - "\x13F\x2\x9E4\x22C\x3\x2\x2\x2\x9E5\x9E6\x5\x26D\x137\x2\x9E6\x9E7\x5"+ - "\x25B\x12E\x2\x9E7\x9E8\x5\x275\x13B\x2\x9E8\x22E\x3\x2\x2\x2\x9E9\x9EA"+ - "\x5\x265\x133\x2\x9EA\x9EB\x5\x263\x132\x2\x9EB\x9EC\x5\x25D\x12F\x2\x9EC"+ - "\x230\x3\x2\x2\x2\x9ED\x9EE\x5\x273\x13A\x2\x9EE\x9EF\x5\x25B\x12E\x2"+ - "\x9EF\x9F0\x5\x27D\x13F\x2\x9F0\x232\x3\x2\x2\x2\x9F1\x9F2\x5\x25B\x12E"+ - "\x2\x9F2\x9F3\x5\x279\x13D\x2\x9F3\x9F4\x5\x27D\x13F\x2\x9F4\x234\x3\x2"+ - "\x2\x2\x9F5\x9F6\x5\x26D\x137\x2\x9F6\x9F7\x5\x283\x142\x2\x9F7\x9F8\x5"+ - "\x275\x13B\x2\x9F8\x236\x3\x2\x2\x2\x9F9\x9FA\x5\x26D\x137\x2\x9FA\x9FB"+ - "\x5\x283\x142\x2\x9FB\x9FC\x5\x271\x139\x2\x9FC\x238\x3\x2\x2\x2\x9FD"+ - "\x9FE\x5\x25B\x12E\x2\x9FE\x9FF\x5\x283\x142\x2\x9FF\xA00\x5\x267\x134"+ - "\x2\xA00\x23A\x3\x2\x2\x2\xA01\xA02\x5\x27F\x140\x2\xA02\xA03\x5\x263"+ - "\x132\x2\xA03\xA04\x5\x279\x13D\x2\xA04\x23C\x3\x2\x2\x2\xA05\xA06\x5"+ - "\x277\x13C\x2\xA06\xA07\x5\x25F\x130\x2\xA07\xA08\x5\x281\x141\x2\xA08"+ - "\x23E\x3\x2\x2\x2\xA09\xA0A\x5\x275\x13B\x2\xA0A\xA0B\x5\x277\x13C\x2"+ - "\xA0B\xA0C\x5\x285\x143\x2\xA0C\x240\x3\x2\x2\x2\xA0D\xA0E\x5\x261\x131"+ - "\x2\xA0E\xA0F\x5\x263\x132\x2\xA0F\xA10\x5\x25F\x130\x2\xA10\x242\x3\x2"+ - "\x2\x2\xA11\xA12\a\xF\x2\x2\xA12\xA15\a\f\x2\x2\xA13\xA15\t\v\x2\x2\xA14"+ - "\xA11\x3\x2\x2\x2\xA14\xA13\x3\x2\x2\x2\xA15\x244\x3\x2\x2\x2\xA16\xA18"+ - "\x5Q)\x2\xA17\xA16\x3\x2\x2\x2\xA17\xA18\x3\x2\x2\x2\xA18\xA19\x3\x2\x2"+ - "\x2\xA19\xA1A\x5\x169\xB5\x2\xA1A\xA1F\x5\x24D\x127\x2\xA1B\xA1E\x5\x251"+ - "\x129\x2\xA1C\xA1E\n\v\x2\x2\xA1D\xA1B\x3\x2\x2\x2\xA1D\xA1C\x3\x2\x2"+ - "\x2\xA1E\xA21\x3\x2\x2\x2\xA1F\xA1D\x3\x2\x2\x2\xA1F\xA20\x3\x2\x2\x2"+ - "\xA20\x246\x3\x2\x2\x2\xA21\xA1F\x3\x2\x2\x2\xA22\xA25\x5\x249\x125\x2"+ - "\xA23\xA26\x5\x251\x129\x2\xA24\xA26\n\f\x2\x2\xA25\xA23\x3\x2\x2\x2\xA25"+ - "\xA24\x3\x2\x2\x2\xA26\xA2B\x3\x2\x2\x2\xA27\xA2A\x5\x251\x129\x2\xA28"+ - "\xA2A\n\v\x2\x2\xA29\xA27\x3\x2\x2\x2\xA29\xA28\x3\x2\x2\x2\xA2A\xA2D"+ - "\x3\x2\x2\x2\xA2B\xA29\x3\x2\x2\x2\xA2B\xA2C\x3\x2\x2\x2\xA2C\x248\x3"+ - "\x2\x2\x2\xA2D\xA2B\x3\x2\x2\x2\xA2E\xA2F\a)\x2\x2\xA2F\x24A\x3\x2\x2"+ - "\x2\xA30\xA31\a\x61\x2\x2\xA31\x24C\x3\x2\x2\x2\xA32\xA33\t\r\x2\x2\xA33"+ - "\x24E\x3\x2\x2\x2\xA34\xA38\n\xE\x2\x2\xA35\xA37\n\xF\x2\x2\xA36\xA35"+ - "\x3\x2\x2\x2\xA37\xA3A\x3\x2\x2\x2\xA38\xA36\x3\x2\x2\x2\xA38\xA39\x3"+ - "\x2\x2\x2\xA39\xA44\x3\x2\x2\x2\xA3A\xA38\x3\x2\x2\x2\xA3B\xA3D\x5\x1E3"+ - "\xF2\x2\xA3C\xA3E\n\x10\x2\x2\xA3D\xA3C\x3\x2\x2\x2\xA3E\xA3F\x3\x2\x2"+ - "\x2\xA3F\xA3D\x3\x2\x2\x2\xA3F\xA40\x3\x2\x2\x2\xA40\xA41\x3\x2\x2\x2"+ - "\xA41\xA42\x5\x1E5\xF3\x2\xA42\xA44\x3\x2\x2\x2\xA43\xA34\x3\x2\x2\x2"+ - "\xA43\xA3B\x3\x2\x2\x2\xA44\x250\x3\x2\x2\x2\xA45\xA47\t\r\x2\x2\xA46"+ - "\xA45\x3\x2\x2\x2\xA47\xA4A\x3\x2\x2\x2\xA48\xA46\x3\x2\x2\x2\xA48\xA49"+ - "\x3\x2\x2\x2\xA49\xA4B\x3\x2\x2\x2\xA4A\xA48\x3\x2\x2\x2\xA4B\xA4F\x5"+ - "\x24B\x126\x2\xA4C\xA4E\t\r\x2\x2\xA4D\xA4C\x3\x2\x2\x2\xA4E\xA51\x3\x2"+ - "\x2\x2\xA4F\xA4D\x3\x2\x2\x2\xA4F\xA50\x3\x2\x2\x2\xA50\xA53\x3\x2\x2"+ - "\x2\xA51\xA4F\x3\x2\x2\x2\xA52\xA54\a\xF\x2\x2\xA53\xA52\x3\x2\x2\x2\xA53"+ - "\xA54\x3\x2\x2\x2\xA54\xA55\x3\x2\x2\x2\xA55\xA56\a\f\x2\x2\xA56\x252"+ - "\x3\x2\x2\x2\xA57\xA59\a}\x2\x2\xA58\xA5A\t\x4\x2\x2\xA59\xA58\x3\x2\x2"+ - "\x2\xA5A\xA5B\x3\x2\x2\x2\xA5B\xA59\x3\x2\x2\x2\xA5B\xA5C\x3\x2\x2\x2"+ - "\xA5C\xA5D\x3\x2\x2\x2\xA5D\xA5F\a/\x2\x2\xA5E\xA60\t\x4\x2\x2\xA5F\xA5E"+ - "\x3\x2\x2\x2\xA60\xA61\x3\x2\x2\x2\xA61\xA5F\x3\x2\x2\x2\xA61\xA62\x3"+ - "\x2\x2\x2\xA62\xA63\x3\x2\x2\x2\xA63\xA65\a/\x2\x2\xA64\xA66\t\x4\x2\x2"+ - "\xA65\xA64\x3\x2\x2\x2\xA66\xA67\x3\x2\x2\x2\xA67\xA65\x3\x2\x2\x2\xA67"+ - "\xA68\x3\x2\x2\x2\xA68\xA69\x3\x2\x2\x2\xA69\xA6B\a/\x2\x2\xA6A\xA6C\t"+ - "\x4\x2\x2\xA6B\xA6A\x3\x2\x2\x2\xA6C\xA6D\x3\x2\x2\x2\xA6D\xA6B\x3\x2"+ - "\x2\x2\xA6D\xA6E\x3\x2\x2\x2\xA6E\xA6F\x3\x2\x2\x2\xA6F\xA71\a/\x2\x2"+ - "\xA70\xA72\t\x4\x2\x2\xA71\xA70\x3\x2\x2\x2\xA72\xA73\x3\x2\x2\x2\xA73"+ - "\xA71\x3\x2\x2\x2\xA73\xA74\x3\x2\x2\x2\xA74\xA75\x3\x2\x2\x2\xA75\xA76"+ - "\a\x7F\x2\x2\xA76\x254\x3\x2\x2\x2\xA77\xA78\t\x11\x2\x2\xA78\x256\x3"+ - "\x2\x2\x2\xA79\xA7A\t\x12\x2\x2\xA7A\x258\x3\x2\x2\x2\xA7B\xA7C\t\x13"+ - "\x2\x2\xA7C\x25A\x3\x2\x2\x2\xA7D\xA7E\t\x14\x2\x2\xA7E\x25C\x3\x2\x2"+ - "\x2\xA7F\xA80\t\x15\x2\x2\xA80\x25E\x3\x2\x2\x2\xA81\xA82\t\x16\x2\x2"+ - "\xA82\x260\x3\x2\x2\x2\xA83\xA84\t\x17\x2\x2\xA84\x262\x3\x2\x2\x2\xA85"+ - "\xA86\t\x18\x2\x2\xA86\x264\x3\x2\x2\x2\xA87\xA88\t\x19\x2\x2\xA88\x266"+ - "\x3\x2\x2\x2\xA89\xA8A\t\x1A\x2\x2\xA8A\x268\x3\x2\x2\x2\xA8B\xA8C\t\x1B"+ - "\x2\x2\xA8C\x26A\x3\x2\x2\x2\xA8D\xA8E\t\x1C\x2\x2\xA8E\x26C\x3\x2\x2"+ - "\x2\xA8F\xA90\t\x1D\x2\x2\xA90\x26E\x3\x2\x2\x2\xA91\xA92\t\x1E\x2\x2"+ - "\xA92\x270\x3\x2\x2\x2\xA93\xA94\t\x1F\x2\x2\xA94\x272\x3\x2\x2\x2\xA95"+ - "\xA96\t \x2\x2\xA96\x274\x3\x2\x2\x2\xA97\xA98\t!\x2\x2\xA98\x276\x3\x2"+ - "\x2\x2\xA99\xA9A\t\"\x2\x2\xA9A\x278\x3\x2\x2\x2\xA9B\xA9C\t#\x2\x2\xA9C"+ - "\x27A\x3\x2\x2\x2\xA9D\xA9E\t$\x2\x2\xA9E\x27C\x3\x2\x2\x2\xA9F\xAA0\t"+ - "%\x2\x2\xAA0\x27E\x3\x2\x2\x2\xAA1\xAA2\t&\x2\x2\xAA2\x280\x3\x2\x2\x2"+ - "\xAA3\xAA4\t\'\x2\x2\xAA4\x282\x3\x2\x2\x2\xAA5\xAA6\t(\x2\x2\xAA6\x284"+ - "\x3\x2\x2\x2\xAA7\xAA8\t)\x2\x2\xAA8\x286\x3\x2\x2\x2\xAA9\xAAA\t*\x2"+ - "\x2\xAAA\x288\x3\x2\x2\x2\xAAB\xAAC\t+\x2\x2\xAAC\x28A\x3\x2\x2\x2\xAAD"+ - "\xAAE\t,\x2\x2\xAAE\x28C\x3\x2\x2\x2\xAAF\xAB0\t-\x2\x2\xAB0\x28E\x3\x2"+ - "\x2\x2\xAB1\xAB2\v\x2\x2\x2\xAB2\x290\x3\x2\x2\x2\x44\x2\x85E\x866\x874"+ - "\x87F\x888\x892\x8A0\x8AC\x8B6\x8C4\x8C6\x8D1\x8D4\x8DC\x8DF\x8E3\x8E8"+ - "\x8F0\x8F3\x8F8\x8FA\x8FE\x906\x90B\x914\x91C\x922\x92A\x92F\x932\x935"+ - "\x938\x93B\x93F\x94D\x95A\x95F\x966\x96C\x972\x974\x977\x979\x97C\x980"+ - "\x983\x98D\xA14\xA17\xA1D\xA1F\xA25\xA29\xA2B\xA38\xA3F\xA43\xA48\xA4F"+ - "\xA53\xA5B\xA61\xA67\xA6D\xA73\x2"; + "\x2020\x3\x2\x32;\r\x2\x32;\x43\\\x61\x61\x63|\xA6\xA6\xB8\xB8\xBE\xBE"+ + "\xC5\xC5\x155\x155\x2015\x2015\x2020\x2020\x4\x2\x43\x43\x63\x63\x4\x2"+ + "\x44\x44\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGg"+ + "g\x4\x2HHhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NN"+ + "nn\x4\x2OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2U"+ + "Uuu\x4\x2VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2"+ + "\\\\||\xA11\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t"+ + "\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11"+ + "\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2"+ + "\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2"+ + "\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2"+ + "\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31"+ + "\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2"+ + "\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2"+ + "\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2"+ + "\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3"+ + "\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2"+ + "\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2"+ + "\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2"+ + "\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3"+ + "\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2"+ + "\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2"+ + "\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B"+ + "\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2"+ + "\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2"+ + "\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1"+ + "\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2"+ + "\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2"+ + "\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7"+ + "\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2"+ + "\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2"+ + "\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD"+ + "\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2"+ + "\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2"+ + "\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3"+ + "\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2"+ + "\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2"+ + "\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9"+ + "\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2"+ + "\x2\x101\x3\x2\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3"+ + "\x2\x2\x2\x2\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2"+ + "\x2\x10F\x3\x2\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3"+ + "\x2\x2\x2\x2\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2"+ + "\x2\x11D\x3\x2\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3"+ + "\x2\x2\x2\x2\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2"+ + "\x2\x12B\x3\x2\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3"+ + "\x2\x2\x2\x2\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2"+ + "\x2\x139\x3\x2\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3"+ + "\x2\x2\x2\x2\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2"+ + "\x2\x147\x3\x2\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3"+ + "\x2\x2\x2\x2\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2"+ + "\x2\x155\x3\x2\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3"+ + "\x2\x2\x2\x2\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2"+ + "\x2\x163\x3\x2\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3"+ + "\x2\x2\x2\x2\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2"+ + "\x2\x171\x3\x2\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3"+ + "\x2\x2\x2\x2\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2"+ + "\x2\x17F\x3\x2\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3"+ + "\x2\x2\x2\x2\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2"+ + "\x2\x18D\x3\x2\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3"+ + "\x2\x2\x2\x2\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2"+ + "\x2\x19B\x3\x2\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3"+ + "\x2\x2\x2\x2\x1A3\x3\x2\x2\x2\x2\x1A5\x3\x2\x2\x2\x2\x1A7\x3\x2\x2\x2"+ + "\x2\x1A9\x3\x2\x2\x2\x2\x1AB\x3\x2\x2\x2\x2\x1AD\x3\x2\x2\x2\x2\x1AF\x3"+ + "\x2\x2\x2\x2\x1B1\x3\x2\x2\x2\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2\x2\x2"+ + "\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3"+ + "\x2\x2\x2\x2\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2"+ + "\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CD\x3"+ + "\x2\x2\x2\x2\x1DB\x3\x2\x2\x2\x2\x21F\x3\x2\x2\x2\x2\x221\x3\x2\x2\x2"+ + "\x2\x223\x3\x2\x2\x2\x2\x225\x3\x2\x2\x2\x2\x227\x3\x2\x2\x2\x2\x229\x3"+ + "\x2\x2\x2\x2\x22B\x3\x2\x2\x2\x2\x22D\x3\x2\x2\x2\x2\x22F\x3\x2\x2\x2"+ + "\x2\x26B\x3\x2\x2\x2\x3\x26D\x3\x2\x2\x2\x5\x271\x3\x2\x2\x2\a\x275\x3"+ + "\x2\x2\x2\t\x27B\x3\x2\x2\x2\v\x281\x3\x2\x2\x2\r\x287\x3\x2\x2\x2\xF"+ + "\x28C\x3\x2\x2\x2\x11\x292\x3\x2\x2\x2\x13\x297\x3\x2\x2\x2\x15\x29C\x3"+ + "\x2\x2\x2\x17\x2A1\x3\x2\x2\x2\x19\x2A8\x3\x2\x2\x2\x1B\x2AD\x3\x2\x2"+ + "\x2\x1D\x2B5\x3\x2\x2\x2\x1F\x2BD\x3\x2\x2\x2!\x2C2\x3\x2\x2\x2#\x2C7"+ + "\x3\x2\x2\x2%\x2D0\x3\x2\x2\x2\'\x2D5\x3\x2\x2\x2)\x2DB\x3\x2\x2\x2+\x2E1"+ + "\x3\x2\x2\x2-\x2EA\x3\x2\x2\x2/\x2EF\x3\x2\x2\x2\x31\x2F3\x3\x2\x2\x2"+ + "\x33\x2FA\x3\x2\x2\x2\x35\x2FE\x3\x2\x2\x2\x37\x305\x3\x2\x2\x2\x39\x309"+ + "\x3\x2\x2\x2;\x30E\x3\x2\x2\x2=\x317\x3\x2\x2\x2?\x31F\x3\x2\x2\x2\x41"+ + "\x324\x3\x2\x2\x2\x43\x32A\x3\x2\x2\x2\x45\x32F\x3\x2\x2\x2G\x336\x3\x2"+ + "\x2\x2I\x33B\x3\x2\x2\x2K\x341\x3\x2\x2\x2M\x345\x3\x2\x2\x2O\x34C\x3"+ + "\x2\x2\x2Q\x34E\x3\x2\x2\x2S\x350\x3\x2\x2\x2U\x352\x3\x2\x2\x2W\x354"+ + "\x3\x2\x2\x2Y\x356\x3\x2\x2\x2[\x358\x3\x2\x2\x2]\x35A\x3\x2\x2\x2_\x35C"+ + "\x3\x2\x2\x2\x61\x35E\x3\x2\x2\x2\x63\x360\x3\x2\x2\x2\x65\x367\x3\x2"+ + "\x2\x2g\x371\x3\x2\x2\x2i\x377\x3\x2\x2\x2k\x37B\x3\x2\x2\x2m\x385\x3"+ + "\x2\x2\x2o\x38C\x3\x2\x2\x2q\x38F\x3\x2\x2\x2s\x395\x3\x2\x2\x2u\x39C"+ + "\x3\x2\x2\x2w\x3A4\x3\x2\x2\x2y\x3AA\x3\x2\x2\x2{\x3B0\x3\x2\x2\x2}\x3B5"+ + "\x3\x2\x2\x2\x7F\x3BA\x3\x2\x2\x2\x81\x3BF\x3\x2\x2\x2\x83\x3C5\x3\x2"+ + "\x2\x2\x85\x3CB\x3\x2\x2\x2\x87\x3D1\x3\x2\x2\x2\x89\x3DA\x3\x2\x2\x2"+ + "\x8B\x3DF\x3\x2\x2\x2\x8D\x3E7\x3\x2\x2\x2\x8F\x3EF\x3\x2\x2\x2\x91\x3F7"+ + "\x3\x2\x2\x2\x93\x3FF\x3\x2\x2\x2\x95\x406\x3\x2\x2\x2\x97\x40D\x3\x2"+ + "\x2\x2\x99\x414\x3\x2\x2\x2\x9B\x41B\x3\x2\x2\x2\x9D\x425\x3\x2\x2\x2"+ + "\x9F\x42F\x3\x2\x2\x2\xA1\x436\x3\x2\x2\x2\xA3\x43D\x3\x2\x2\x2\xA5\x444"+ + "\x3\x2\x2\x2\xA7\x44B\x3\x2\x2\x2\xA9\x44F\x3\x2\x2\x2\xAB\x452\x3\x2"+ + "\x2\x2\xAD\x459\x3\x2\x2\x2\xAF\x45E\x3\x2\x2\x2\xB1\x463\x3\x2\x2\x2"+ + "\xB3\x46A\x3\x2\x2\x2\xB5\x470\x3\x2\x2\x2\xB7\x479\x3\x2\x2\x2\xB9\x486"+ + "\x3\x2\x2\x2\xBB\x48D\x3\x2\x2\x2\xBD\x49A\x3\x2\x2\x2\xBF\x4A5\x3\x2"+ + "\x2\x2\xC1\x4AD\x3\x2\x2\x2\xC3\x4B6\x3\x2\x2\x2\xC5\x4BF\x3\x2\x2\x2"+ + "\xC7\x4C3\x3\x2\x2\x2\xC9\x4C8\x3\x2\x2\x2\xCB\x4CC\x3\x2\x2\x2\xCD\x4D2"+ + "\x3\x2\x2\x2\xCF\x4D8\x3\x2\x2\x2\xD1\x4DE\x3\x2\x2\x2\xD3\x4E6\x3\x2"+ + "\x2\x2\xD5\x4EF\x3\x2\x2\x2\xD7\x4FD\x3\x2\x2\x2\xD9\x50B\x3\x2\x2\x2"+ + "\xDB\x514\x3\x2\x2\x2\xDD\x51A\x3\x2\x2\x2\xDF\x521\x3\x2\x2\x2\xE1\x525"+ + "\x3\x2\x2\x2\xE3\x52E\x3\x2\x2\x2\xE5\x532\x3\x2\x2\x2\xE7\x539\x3\x2"+ + "\x2\x2\xE9\x53F\x3\x2\x2\x2\xEB\x544\x3\x2\x2\x2\xED\x547\x3\x2\x2\x2"+ + "\xEF\x54B\x3\x2\x2\x2\xF1\x556\x3\x2\x2\x2\xF3\x559\x3\x2\x2\x2\xF5\x55F"+ + "\x3\x2\x2\x2\xF7\x562\x3\x2\x2\x2\xF9\x56A\x3\x2\x2\x2\xFB\x56F\x3\x2"+ + "\x2\x2\xFD\x574\x3\x2\x2\x2\xFF\x579\x3\x2\x2\x2\x101\x57D\x3\x2\x2\x2"+ + "\x103\x581\x3\x2\x2\x2\x105\x586\x3\x2\x2\x2\x107\x591\x3\x2\x2\x2\x109"+ + "\x59B\x3\x2\x2\x2\x10B\x5A6\x3\x2\x2\x2\x10D\x5B6\x3\x2\x2\x2\x10F\x5BB"+ + "\x3\x2\x2\x2\x111\x5BE\x3\x2\x2\x2\x113\x5C2\x3\x2\x2\x2\x115\x5C6\x3"+ + "\x2\x2\x2\x117\x5CB\x3\x2\x2\x2\x119\x5CF\x3\x2\x2\x2\x11B\x5D3\x3\x2"+ + "\x2\x2\x11D\x5DB\x3\x2\x2\x2\x11F\x5E0\x3\x2\x2\x2\x121\x5E3\x3\x2\x2"+ + "\x2\x123\x5EC\x3\x2\x2\x2\x125\x5FB\x3\x2\x2\x2\x127\x600\x3\x2\x2\x2"+ + "\x129\x609\x3\x2\x2\x2\x12B\x615\x3\x2\x2\x2\x12D\x625\x3\x2\x2\x2\x12F"+ + "\x634\x3\x2\x2\x2\x131\x64A\x3\x2\x2\x2\x133\x64D\x3\x2\x2\x2\x135\x654"+ + "\x3\x2\x2\x2\x137\x65F\x3\x2\x2\x2\x139\x668\x3\x2\x2\x2\x13B\x66E\x3"+ + "\x2\x2\x2\x13D\x676\x3\x2\x2\x2\x13F\x683\x3\x2\x2\x2\x141\x690\x3\x2"+ + "\x2\x2\x143\x69D\x3\x2\x2\x2\x145\x6A5\x3\x2\x2\x2\x147\x6AC\x3\x2\x2"+ + "\x2\x149\x6B0\x3\x2\x2\x2\x14B\x6B7\x3\x2\x2\x2\x14D\x6C2\x3\x2\x2\x2"+ + "\x14F\x6C7\x3\x2\x2\x2\x151\x6D2\x3\x2\x2\x2\x153\x6D8\x3\x2\x2\x2\x155"+ + "\x6DC\x3\x2\x2\x2\x157\x6E2\x3\x2\x2\x2\x159\x6E9\x3\x2\x2\x2\x15B\x6F0"+ + "\x3\x2\x2\x2\x15D\x6F5\x3\x2\x2\x2\x15F\x6FA\x3\x2\x2\x2\x161\x701\x3"+ + "\x2\x2\x2\x163\x705\x3\x2\x2\x2\x165\x70C\x3\x2\x2\x2\x167\x713\x3\x2"+ + "\x2\x2\x169\x717\x3\x2\x2\x2\x16B\x71E\x3\x2\x2\x2\x16D\x723\x3\x2\x2"+ + "\x2\x16F\x728\x3\x2\x2\x2\x171\x72F\x3\x2\x2\x2\x173\x733\x3\x2\x2\x2"+ + "\x175\x737\x3\x2\x2\x2\x177\x73C\x3\x2\x2\x2\x179\x741\x3\x2\x2\x2\x17B"+ + "\x744\x3\x2\x2\x2\x17D\x749\x3\x2\x2\x2\x17F\x74E\x3\x2\x2\x2\x181\x755"+ + "\x3\x2\x2\x2\x183\x75C\x3\x2\x2\x2\x185\x762\x3\x2\x2\x2\x187\x76A\x3"+ + "\x2\x2\x2\x189\x772\x3\x2\x2\x2\x18B\x777\x3\x2\x2\x2\x18D\x77D\x3\x2"+ + "\x2\x2\x18F\x783\x3\x2\x2\x2\x191\x788\x3\x2\x2\x2\x193\x793\x3\x2\x2"+ + "\x2\x195\x799\x3\x2\x2\x2\x197\x79D\x3\x2\x2\x2\x199\x7A0\x3\x2\x2\x2"+ + "\x19B\x7A2\x3\x2\x2\x2\x19D\x7A4\x3\x2\x2\x2\x19F\x7AA\x3\x2\x2\x2\x1A1"+ + "\x7AC\x3\x2\x2\x2\x1A3\x7B2\x3\x2\x2\x2\x1A5\x7B4\x3\x2\x2\x2\x1A7\x7B6"+ + "\x3\x2\x2\x2\x1A9\x7B8\x3\x2\x2\x2\x1AB\x7BA\x3\x2\x2\x2\x1AD\x7C0\x3"+ + "\x2\x2\x2\x1AF\x7C2\x3\x2\x2\x2\x1B1\x7C4\x3\x2\x2\x2\x1B3\x7C6\x3\x2"+ + "\x2\x2\x1B5\x7CB\x3\x2\x2\x2\x1B7\x7D4\x3\x2\x2\x2\x1B9\x7DE\x3\x2\x2"+ + "\x2\x1BB\x7EC\x3\x2\x2\x2\x1BD\x7F8\x3\x2\x2\x2\x1BF\x808\x3\x2\x2\x2"+ + "\x1C1\x80A\x3\x2\x2\x2\x1C3\x80C\x3\x2\x2\x2\x1C5\x817\x3\x2\x2\x2\x1C7"+ + "\x822\x3\x2\x2\x2\x1C9\x834\x3\x2\x2\x2\x1CB\x846\x3\x2\x2\x2\x1CD\x848"+ + "\x3\x2\x2\x2\x1CF\x84C\x3\x2\x2\x2\x1D1\x84E\x3\x2\x2\x2\x1D3\x850\x3"+ + "\x2\x2\x2\x1D5\x859\x3\x2\x2\x2\x1D7\x85B\x3\x2\x2\x2\x1D9\x85E\x3\x2"+ + "\x2\x2\x1DB\x862\x3\x2\x2\x2\x1DD\x86E\x3\x2\x2\x2\x1DF\x870\x3\x2\x2"+ + "\x2\x1E1\x87E\x3\x2\x2\x2\x1E3\x881\x3\x2\x2\x2\x1E5\x88B\x3\x2\x2\x2"+ + "\x1E7\x899\x3\x2\x2\x2\x1E9\x8A6\x3\x2\x2\x2\x1EB\x8C5\x3\x2\x2\x2\x1ED"+ + "\x8C8\x3\x2\x2\x2\x1EF\x8CF\x3\x2\x2\x2\x1F1\x8DB\x3\x2\x2\x2\x1F3\x8E3"+ + "\x3\x2\x2\x2\x1F5\x8EC\x3\x2\x2\x2\x1F7\x8F2\x3\x2\x2\x2\x1F9\x8F8\x3"+ + "\x2\x2\x2\x1FB\x8FC\x3\x2\x2\x2\x1FD\x901\x3\x2\x2\x2\x1FF\x906\x3\x2"+ + "\x2\x2\x201\x90D\x3\x2\x2\x2\x203\x917\x3\x2\x2\x2\x205\x91F\x3\x2\x2"+ + "\x2\x207\x928\x3\x2\x2\x2\x209\x931\x3\x2\x2\x2\x20B\x935\x3\x2\x2\x2"+ + "\x20D\x939\x3\x2\x2\x2\x20F\x93D\x3\x2\x2\x2\x211\x941\x3\x2\x2\x2\x213"+ + "\x945\x3\x2\x2\x2\x215\x949\x3\x2\x2\x2\x217\x94D\x3\x2\x2\x2\x219\x951"+ + "\x3\x2\x2\x2\x21B\x955\x3\x2\x2\x2\x21D\x959\x3\x2\x2\x2\x21F\x960\x3"+ + "\x2\x2\x2\x221\x963\x3\x2\x2\x2\x223\x96E\x3\x2\x2\x2\x225\x97A\x3\x2"+ + "\x2\x2\x227\x97C\x3\x2\x2\x2\x229\x97E\x3\x2\x2\x2\x22B\x98F\x3\x2\x2"+ + "\x2\x22D\x994\x3\x2\x2\x2\x22F\x9A3\x3\x2\x2\x2\x231\x9C3\x3\x2\x2\x2"+ + "\x233\x9C5\x3\x2\x2\x2\x235\x9C7\x3\x2\x2\x2\x237\x9C9\x3\x2\x2\x2\x239"+ + "\x9CB\x3\x2\x2\x2\x23B\x9CD\x3\x2\x2\x2\x23D\x9CF\x3\x2\x2\x2\x23F\x9D1"+ + "\x3\x2\x2\x2\x241\x9D3\x3\x2\x2\x2\x243\x9D5\x3\x2\x2\x2\x245\x9D7\x3"+ + "\x2\x2\x2\x247\x9D9\x3\x2\x2\x2\x249\x9DB\x3\x2\x2\x2\x24B\x9DD\x3\x2"+ + "\x2\x2\x24D\x9DF\x3\x2\x2\x2\x24F\x9E1\x3\x2\x2\x2\x251\x9E3\x3\x2\x2"+ + "\x2\x253\x9E5\x3\x2\x2\x2\x255\x9E7\x3\x2\x2\x2\x257\x9E9\x3\x2\x2\x2"+ + "\x259\x9EB\x3\x2\x2\x2\x25B\x9ED\x3\x2\x2\x2\x25D\x9EF\x3\x2\x2\x2\x25F"+ + "\x9F1\x3\x2\x2\x2\x261\x9F3\x3\x2\x2\x2\x263\x9F5\x3\x2\x2\x2\x265\x9F7"+ + "\x3\x2\x2\x2\x267\x9F9\x3\x2\x2\x2\x269\x9FB\x3\x2\x2\x2\x26B\x9FD\x3"+ + "\x2\x2\x2\x26D\x26E\x5\x237\x11C\x2\x26E\x26F\x5\x239\x11D\x2\x26F\x270"+ + "\x5\x25B\x12E\x2\x270\x4\x3\x2\x2\x2\x271\x272\x5\x237\x11C\x2\x272\x273"+ + "\x5\x251\x129\x2\x273\x274\x5\x267\x134\x2\x274\x6\x3\x2\x2\x2\x275\x276"+ + "\x5\x237\x11C\x2\x276\x277\x5\x259\x12D\x2\x277\x278\x5\x259\x12D\x2\x278"+ + "\x279\x5\x237\x11C\x2\x279\x27A\x5\x267\x134\x2\x27A\b\x3\x2\x2\x2\x27B"+ + "\x27C\x5\x23B\x11E\x2\x27C\x27D\x5\x239\x11D\x2\x27D\x27E\x5\x253\x12A"+ + "\x2\x27E\x27F\x5\x253\x12A\x2\x27F\x280\x5\x24D\x127\x2\x280\n\x3\x2\x2"+ + "\x2\x281\x282\x5\x23B\x11E\x2\x282\x283\x5\x239\x11D\x2\x283\x284\x5\x267"+ + "\x134\x2\x284\x285\x5\x25D\x12F\x2\x285\x286\x5\x23F\x120\x2\x286\f\x3"+ + "\x2\x2\x2\x287\x288\x5\x23B\x11E\x2\x288\x289\x5\x23B\x11E\x2\x289\x28A"+ + "\x5\x25F\x130\x2\x28A\x28B\x5\x259\x12D\x2\x28B\xE\x3\x2\x2\x2\x28C\x28D"+ + "\x5\x23B\x11E\x2\x28D\x28E\x5\x23D\x11F\x2\x28E\x28F\x5\x237\x11C\x2\x28F"+ + "\x290\x5\x25D\x12F\x2\x290\x291\x5\x23F\x120\x2\x291\x10\x3\x2\x2\x2\x292"+ + "\x293\x5\x23B\x11E\x2\x293\x294\x5\x23D\x11F\x2\x294\x295\x5\x239\x11D"+ + "\x2\x295\x296\x5\x24D\x127\x2\x296\x12\x3\x2\x2\x2\x297\x298\x5\x23B\x11E"+ + "\x2\x298\x299\x5\x23D\x11F\x2\x299\x29A\x5\x23F\x120\x2\x29A\x29B\x5\x23B"+ + "\x11E\x2\x29B\x14\x3\x2\x2\x2\x29C\x29D\x5\x23B\x11E\x2\x29D\x29E\x5\x247"+ + "\x124\x2\x29E\x29F\x5\x251\x129\x2\x29F\x2A0\x5\x25D\x12F\x2\x2A0\x16"+ + "\x3\x2\x2\x2\x2A1\x2A2\x5\x23B\x11E\x2\x2A2\x2A3\x5\x247\x124\x2\x2A3"+ + "\x2A4\x5\x259\x12D\x2\x2A4\x2A5\x5\x23B\x11E\x2\x2A5\x2A6\x5\x24D\x127"+ + "\x2\x2A6\x2A7\x5\x23F\x120\x2\x2A7\x18\x3\x2\x2\x2\x2A8\x2A9\x5\x23B\x11E"+ + "\x2\x2A9\x2AA\x5\x24D\x127\x2\x2AA\x2AB\x5\x251\x129\x2\x2AB\x2AC\x5\x243"+ + "\x122\x2\x2AC\x1A\x3\x2\x2\x2\x2AD\x2AE\x5\x23B\x11E\x2\x2AE\x2AF\x5\x24D"+ + "\x127\x2\x2AF\x2B0\x5\x251\x129\x2\x2B0\x2B1\x5\x243\x122\x2\x2B1\x2B2"+ + "\x5\x24D\x127\x2\x2B2\x2B3\x5\x251\x129\x2\x2B3\x2B4\x5\x243\x122\x2\x2B4"+ + "\x1C\x3\x2\x2\x2\x2B5\x2B6\x5\x23B\x11E\x2\x2B6\x2B7\x5\x24D\x127\x2\x2B7"+ + "\x2B8\x5\x251\x129\x2\x2B8\x2B9\x5\x243\x122\x2\x2B9\x2BA\x5\x255\x12B"+ + "\x2\x2BA\x2BB\x5\x25D\x12F\x2\x2BB\x2BC\x5\x259\x12D\x2\x2BC\x1E\x3\x2"+ + "\x2\x2\x2BD\x2BE\x5\x23B\x11E\x2\x2BE\x2BF\x5\x25B\x12E\x2\x2BF\x2C0\x5"+ + "\x251\x129\x2\x2C0\x2C1\x5\x243\x122\x2\x2C1 \x3\x2\x2\x2\x2C2\x2C3\x5"+ + "\x23B\x11E\x2\x2C3\x2C4\x5\x25B\x12E\x2\x2C4\x2C5\x5\x25D\x12F\x2\x2C5"+ + "\x2C6\x5\x259\x12D\x2\x2C6\"\x3\x2\x2\x2\x2C7\x2C8\x5\x23B\x11E\x2\x2C8"+ + "\x2C9\x5\x25F\x130\x2\x2C9\x2CA\x5\x259\x12D\x2\x2CA\x2CB\x5\x259\x12D"+ + "\x2\x2CB\x2CC\x5\x23F\x120\x2\x2CC\x2CD\x5\x251\x129\x2\x2CD\x2CE\x5\x23B"+ + "\x11E\x2\x2CE\x2CF\x5\x267\x134\x2\x2CF$\x3\x2\x2\x2\x2D0\x2D1\x5\x23B"+ + "\x11E\x2\x2D1\x2D2\x5\x261\x131\x2\x2D2\x2D3\x5\x237\x11C\x2\x2D3\x2D4"+ + "\x5\x259\x12D\x2\x2D4&\x3\x2\x2\x2\x2D5\x2D6\x5\x23B\x11E\x2\x2D6\x2D7"+ + "\x5\x261\x131\x2\x2D7\x2D8\x5\x23F\x120\x2\x2D8\x2D9\x5\x259\x12D\x2\x2D9"+ + "\x2DA\x5\x259\x12D\x2\x2DA(\x3\x2\x2\x2\x2DB\x2DC\x5\x23D\x11F\x2\x2DC"+ + "\x2DD\x5\x23F\x120\x2\x2DD\x2DE\x5\x239\x11D\x2\x2DE\x2DF\x5\x25F\x130"+ + "\x2\x2DF\x2E0\x5\x243\x122\x2\x2E0*\x3\x2\x2\x2\x2E1\x2E2\x5\x23D\x11F"+ + "\x2\x2E2\x2E3\x5\x253\x12A\x2\x2E3\x2E4\x5\x23F\x120\x2\x2E4\x2E5\x5\x261"+ + "\x131\x2\x2E5\x2E6\x5\x23F\x120\x2\x2E6\x2E7\x5\x251\x129\x2\x2E7\x2E8"+ + "\x5\x25D\x12F\x2\x2E8\x2E9\x5\x25B\x12E\x2\x2E9,\x3\x2\x2\x2\x2EA\x2EB"+ + "\x5\x23F\x120\x2\x2EB\x2EC\x5\x265\x133\x2\x2EC\x2ED\x5\x247\x124\x2\x2ED"+ + "\x2EE\x5\x25D\x12F\x2\x2EE.\x3\x2\x2\x2\x2EF\x2F0\x5\x241\x121\x2\x2F0"+ + "\x2F1\x5\x247\x124\x2\x2F1\x2F2\x5\x265\x133\x2\x2F2\x30\x3\x2\x2\x2\x2F3"+ + "\x2F4\x5\x247\x124\x2\x2F4\x2F5\x5\x251\x129\x2\x2F5\x2F6\x5\x255\x12B"+ + "\x2\x2F6\x2F7\x5\x25F\x130\x2\x2F7\x2F8\x5\x25D\x12F\x2\x2F8\x2F9\x5\x239"+ + "\x11D\x2\x2F9\x32\x3\x2\x2\x2\x2FA\x2FB\x5\x247\x124\x2\x2FB\x2FC\x5\x251"+ + "\x129\x2\x2FC\x2FD\x5\x25D\x12F\x2\x2FD\x34\x3\x2\x2\x2\x2FE\x2FF\x5\x24D"+ + "\x127\x2\x2FF\x300\x5\x239\x11D\x2\x300\x301\x5\x253\x12A\x2\x301\x302"+ + "\x5\x25F\x130\x2\x302\x303\x5\x251\x129\x2\x303\x304\x5\x23D\x11F\x2\x304"+ + "\x36\x3\x2\x2\x2\x305\x306\x5\x24D\x127\x2\x306\x307\x5\x23F\x120\x2\x307"+ + "\x308\x5\x251\x129\x2\x308\x38\x3\x2\x2\x2\x309\x30A\x5\x24D\x127\x2\x30A"+ + "\x30B\x5\x23F\x120\x2\x30B\x30C\x5\x251\x129\x2\x30C\x30D\x5\x239\x11D"+ + "\x2\x30D:\x3\x2\x2\x2\x30E\x30F\x5\x24D\x127\x2\x30F\x310\x5\x253\x12A"+ + "\x2\x310\x311\x5\x251\x129\x2\x311\x312\x5\x243\x122\x2\x312\x313\x5\x24D"+ + "\x127\x2\x313\x314\x5\x253\x12A\x2\x314\x315\x5\x251\x129\x2\x315\x316"+ + "\x5\x243\x122\x2\x316<\x3\x2\x2\x2\x317\x318\x5\x24D\x127\x2\x318\x319"+ + "\x5\x253\x12A\x2\x319\x31A\x5\x251\x129\x2\x31A\x31B\x5\x243\x122\x2\x31B"+ + "\x31C\x5\x255\x12B\x2\x31C\x31D\x5\x25D\x12F\x2\x31D\x31E\x5\x259\x12D"+ + "\x2\x31E>\x3\x2\x2\x2\x31F\x320\x5\x24F\x128\x2\x320\x321\x5\x247\x124"+ + "\x2\x321\x322\x5\x23D\x11F\x2\x322\x323\x5\x239\x11D\x2\x323@\x3\x2\x2"+ + "\x2\x324\x325\x5\x24F\x128\x2\x325\x326\x5\x247\x124\x2\x326\x327\x5\x23D"+ + "\x11F\x2\x327\x328\x5\x239\x11D\x2\x328\x329\a&\x2\x2\x329\x42\x3\x2\x2"+ + "\x2\x32A\x32B\x5\x24F\x128\x2\x32B\x32C\x5\x247\x124\x2\x32C\x32D\x5\x23D"+ + "\x11F\x2\x32D\x32E\a&\x2\x2\x32E\x44\x3\x2\x2\x2\x32F\x330\x5\x253\x12A"+ + "\x2\x330\x331\x5\x255\x12B\x2\x331\x332\x5\x25D\x12F\x2\x332\x333\x5\x247"+ + "\x124\x2\x333\x334\x5\x253\x12A\x2\x334\x335\x5\x251\x129\x2\x335\x46"+ + "\x3\x2\x2\x2\x336\x337\x5\x255\x12B\x2\x337\x338\x5\x25B\x12E\x2\x338"+ + "\x339\x5\x23F\x120\x2\x339\x33A\x5\x25D\x12F\x2\x33AH\x3\x2\x2\x2\x33B"+ + "\x33C\x5\x25B\x12E\x2\x33C\x33D\x5\x23B\x11E\x2\x33D\x33E\x5\x237\x11C"+ + "\x2\x33E\x33F\x5\x24D\x127\x2\x33F\x340\x5\x23F\x120\x2\x340J\x3\x2\x2"+ + "\x2\x341\x342\x5\x25B\x12E\x2\x342\x343\x5\x243\x122\x2\x343\x344\x5\x251"+ + "\x129\x2\x344L\x3\x2\x2\x2\x345\x346\x5\x25F\x130\x2\x346\x347\x5\x239"+ + "\x11D\x2\x347\x348\x5\x253\x12A\x2\x348\x349\x5\x25F\x130\x2\x349\x34A"+ + "\x5\x251\x129\x2\x34A\x34B\x5\x23D\x11F\x2\x34BN\x3\x2\x2\x2\x34C\x34D"+ + "\a.\x2\x2\x34DP\x3\x2\x2\x2\x34E\x34F\a<\x2\x2\x34FR\x3\x2\x2\x2\x350"+ + "\x351\a=\x2\x2\x351T\x3\x2\x2\x2\x352\x353\a#\x2\x2\x353V\x3\x2\x2\x2"+ + "\x354\x355\a\x30\x2\x2\x355X\x3\x2\x2\x2\x356\x357\a%\x2\x2\x357Z\x3\x2"+ + "\x2\x2\x358\x359\a\x42\x2\x2\x359\\\x3\x2\x2\x2\x35A\x35B\a\'\x2\x2\x35B"+ + "^\x3\x2\x2\x2\x35C\x35D\a&\x2\x2\x35D`\x3\x2\x2\x2\x35E\x35F\a(\x2\x2"+ + "\x35F\x62\x3\x2\x2\x2\x360\x361\x5\x237\x11C\x2\x361\x362\x5\x23B\x11E"+ + "\x2\x362\x363\x5\x23B\x11E\x2\x363\x364\x5\x23F\x120\x2\x364\x365\x5\x25B"+ + "\x12E\x2\x365\x366\x5\x25B\x12E\x2\x366\x64\x3\x2\x2\x2\x367\x368\x5\x237"+ + "\x11C\x2\x368\x369\x5\x23D\x11F\x2\x369\x36A\x5\x23D\x11F\x2\x36A\x36B"+ + "\x5\x259\x12D\x2\x36B\x36C\x5\x23F\x120\x2\x36C\x36D\x5\x25B\x12E\x2\x36D"+ + "\x36E\x5\x25B\x12E\x2\x36E\x36F\x5\x253\x12A\x2\x36F\x370\x5\x241\x121"+ + "\x2\x370\x66\x3\x2\x2\x2\x371\x372\x5\x237\x11C\x2\x372\x373\x5\x24D\x127"+ + "\x2\x373\x374\x5\x247\x124\x2\x374\x375\x5\x237\x11C\x2\x375\x376\x5\x25B"+ + "\x12E\x2\x376h\x3\x2\x2\x2\x377\x378\x5\x237\x11C\x2\x378\x379\x5\x251"+ + "\x129\x2\x379\x37A\x5\x23D\x11F\x2\x37Aj\x3\x2\x2\x2\x37B\x37C\x5\x237"+ + "\x11C\x2\x37C\x37D\x5\x25D\x12F\x2\x37D\x37E\x5\x25D\x12F\x2\x37E\x37F"+ + "\x5\x259\x12D\x2\x37F\x380\x5\x247\x124\x2\x380\x381\x5\x239\x11D\x2\x381"+ + "\x382\x5\x25F\x130\x2\x382\x383\x5\x25D\x12F\x2\x383\x384\x5\x23F\x120"+ + "\x2\x384l\x3\x2\x2\x2\x385\x386\x5\x237\x11C\x2\x386\x387\x5\x255\x12B"+ + "\x2\x387\x388\x5\x255\x12B\x2\x388\x389\x5\x23F\x120\x2\x389\x38A\x5\x251"+ + "\x129\x2\x38A\x38B\x5\x23D\x11F\x2\x38Bn\x3\x2\x2\x2\x38C\x38D\x5\x237"+ + "\x11C\x2\x38D\x38E\x5\x25B\x12E\x2\x38Ep\x3\x2\x2\x2\x38F\x390\x5\x239"+ + "\x11D\x2\x390\x391\x5\x23F\x120\x2\x391\x392\x5\x243\x122\x2\x392\x393"+ + "\x5\x247\x124\x2\x393\x394\x5\x251\x129\x2\x394r\x3\x2\x2\x2\x395\x396"+ + "\x5\x239\x11D\x2\x396\x397\x5\x247\x124\x2\x397\x398\x5\x251\x129\x2\x398"+ + "\x399\x5\x237\x11C\x2\x399\x39A\x5\x259\x12D\x2\x39A\x39B\x5\x267\x134"+ + "\x2\x39Bt\x3\x2\x2\x2\x39C\x39D\x5\x239\x11D\x2\x39D\x39E\x5\x253\x12A"+ + "\x2\x39E\x39F\x5\x253\x12A\x2\x39F\x3A0\x5\x24D\x127\x2\x3A0\x3A1\x5\x23F"+ + "\x120\x2\x3A1\x3A2\x5\x237\x11C\x2\x3A2\x3A3\x5\x251\x129\x2\x3A3v\x3"+ + "\x2\x2\x2\x3A4\x3A5\x5\x239\x11D\x2\x3A5\x3A6\x5\x267\x134\x2\x3A6\x3A7"+ + "\x5\x261\x131\x2\x3A7\x3A8\x5\x237\x11C\x2\x3A8\x3A9\x5\x24D\x127\x2\x3A9"+ + "x\x3\x2\x2\x2\x3AA\x3AB\x5\x239\x11D\x2\x3AB\x3AC\x5\x267\x134\x2\x3AC"+ + "\x3AD\x5\x259\x12D\x2\x3AD\x3AE\x5\x23F\x120\x2\x3AE\x3AF\x5\x241\x121"+ + "\x2\x3AFz\x3\x2\x2\x2\x3B0\x3B1\x5\x239\x11D\x2\x3B1\x3B2\x5\x267\x134"+ + "\x2\x3B2\x3B3\x5\x25D\x12F\x2\x3B3\x3B4\x5\x23F\x120\x2\x3B4|\x3\x2\x2"+ + "\x2\x3B5\x3B6\x5\x23B\x11E\x2\x3B6\x3B7\x5\x237\x11C\x2\x3B7\x3B8\x5\x24D"+ + "\x127\x2\x3B8\x3B9\x5\x24D\x127\x2\x3B9~\x3\x2\x2\x2\x3BA\x3BB\x5\x23B"+ + "\x11E\x2\x3BB\x3BC\x5\x237\x11C\x2\x3BC\x3BD\x5\x25B\x12E\x2\x3BD\x3BE"+ + "\x5\x23F\x120\x2\x3BE\x80\x3\x2\x2\x2\x3BF\x3C0\x5\x23B\x11E\x2\x3C0\x3C1"+ + "\x5\x24D\x127\x2\x3C1\x3C2\x5\x237\x11C\x2\x3C2\x3C3\x5\x25B\x12E\x2\x3C3"+ + "\x3C4\x5\x25B\x12E\x2\x3C4\x82\x3\x2\x2\x2\x3C5\x3C6\x5\x23B\x11E\x2\x3C6"+ + "\x3C7\x5\x24D\x127\x2\x3C7\x3C8\x5\x253\x12A\x2\x3C8\x3C9\x5\x25B\x12E"+ + "\x2\x3C9\x3CA\x5\x23F\x120\x2\x3CA\x84\x3\x2\x2\x2\x3CB\x3CC\x5\x23B\x11E"+ + "\x2\x3CC\x3CD\x5\x253\x12A\x2\x3CD\x3CE\x5\x251\x129\x2\x3CE\x3CF\x5\x25B"+ + "\x12E\x2\x3CF\x3D0\x5\x25D\x12F\x2\x3D0\x86\x3\x2\x2\x2\x3D1\x3D2\x5\x23D"+ + "\x11F\x2\x3D2\x3D3\x5\x237\x11C\x2\x3D3\x3D4\x5\x25D\x12F\x2\x3D4\x3D5"+ + "\x5\x237\x11C\x2\x3D5\x3D6\x5\x239\x11D\x2\x3D6\x3D7\x5\x237\x11C\x2\x3D7"+ + "\x3D8\x5\x25B\x12E\x2\x3D8\x3D9\x5\x23F\x120\x2\x3D9\x88\x3\x2\x2\x2\x3DA"+ + "\x3DB\x5\x23D\x11F\x2\x3DB\x3DC\x5\x237\x11C\x2\x3DC\x3DD\x5\x25D\x12F"+ + "\x2\x3DD\x3DE\x5\x23F\x120\x2\x3DE\x8A\x3\x2\x2\x2\x3DF\x3E0\x5\x23D\x11F"+ + "\x2\x3E0\x3E1\x5\x23F\x120\x2\x3E1\x3E2\x5\x23B\x11E\x2\x3E2\x3E3\x5\x24D"+ + "\x127\x2\x3E3\x3E4\x5\x237\x11C\x2\x3E4\x3E5\x5\x259\x12D\x2\x3E5\x3E6"+ + "\x5\x23F\x120\x2\x3E6\x8C\x3\x2\x2\x2\x3E7\x3E8\x5\x23D\x11F\x2\x3E8\x3E9"+ + "\x5\x23F\x120\x2\x3E9\x3EA\x5\x241\x121\x2\x3EA\x3EB\x5\x239\x11D\x2\x3EB"+ + "\x3EC\x5\x253\x12A\x2\x3EC\x3ED\x5\x253\x12A\x2\x3ED\x3EE\x5\x24D\x127"+ + "\x2\x3EE\x8E\x3\x2\x2\x2\x3EF\x3F0\x5\x23D\x11F\x2\x3F0\x3F1\x5\x23F\x120"+ + "\x2\x3F1\x3F2\x5\x241\x121\x2\x3F2\x3F3\x5\x239\x11D\x2\x3F3\x3F4\x5\x267"+ + "\x134\x2\x3F4\x3F5\x5\x25D\x12F\x2\x3F5\x3F6\x5\x23F\x120\x2\x3F6\x90"+ + "\x3\x2\x2\x2\x3F7\x3F8\x5\x23D\x11F\x2\x3F8\x3F9\x5\x23F\x120\x2\x3F9"+ + "\x3FA\x5\x241\x121\x2\x3FA\x3FB\x5\x23D\x11F\x2\x3FB\x3FC\x5\x237\x11C"+ + "\x2\x3FC\x3FD\x5\x25D\x12F\x2\x3FD\x3FE\x5\x23F\x120\x2\x3FE\x92\x3\x2"+ + "\x2\x2\x3FF\x400\x5\x23D\x11F\x2\x400\x401\x5\x23F\x120\x2\x401\x402\x5"+ + "\x241\x121\x2\x402\x403\x5\x23D\x11F\x2\x403\x404\x5\x239\x11D\x2\x404"+ + "\x405\x5\x24D\x127\x2\x405\x94\x3\x2\x2\x2\x406\x407\x5\x23D\x11F\x2\x407"+ + "\x408\x5\x23F\x120\x2\x408\x409\x5\x241\x121\x2\x409\x40A\x5\x23B\x11E"+ + "\x2\x40A\x40B\x5\x25F\x130\x2\x40B\x40C\x5\x259\x12D\x2\x40C\x96\x3\x2"+ + "\x2\x2\x40D\x40E\x5\x23D\x11F\x2\x40E\x40F\x5\x23F\x120\x2\x40F\x410\x5"+ + "\x241\x121\x2\x410\x411\x5\x247\x124\x2\x411\x412\x5\x251\x129\x2\x412"+ + "\x413\x5\x25D\x12F\x2\x413\x98\x3\x2\x2\x2\x414\x415\x5\x23D\x11F\x2\x415"+ + "\x416\x5\x23F\x120\x2\x416\x417\x5\x241\x121\x2\x417\x418\x5\x24D\x127"+ + "\x2\x418\x419\x5\x251\x129\x2\x419\x41A\x5\x243\x122\x2\x41A\x9A\x3\x2"+ + "\x2\x2\x41B\x41C\x5\x23D\x11F\x2\x41C\x41D\x5\x23F\x120\x2\x41D\x41E\x5"+ + "\x241\x121\x2\x41E\x41F\x5\x24D\x127\x2\x41F\x420\x5\x251\x129\x2\x420"+ + "\x421\x5\x243\x122\x2\x421\x422\x5\x24D\x127\x2\x422\x423\x5\x251\x129"+ + "\x2\x423\x424\x5\x243\x122\x2\x424\x9C\x3\x2\x2\x2\x425\x426\x5\x23D\x11F"+ + "\x2\x426\x427\x5\x23F\x120\x2\x427\x428\x5\x241\x121\x2\x428\x429\x5\x24D"+ + "\x127\x2\x429\x42A\x5\x251\x129\x2\x42A\x42B\x5\x243\x122\x2\x42B\x42C"+ + "\x5\x255\x12B\x2\x42C\x42D\x5\x25D\x12F\x2\x42D\x42E\x5\x259\x12D\x2\x42E"+ + "\x9E\x3\x2\x2\x2\x42F\x430\x5\x23D\x11F\x2\x430\x431\x5\x23F\x120\x2\x431"+ + "\x432\x5\x241\x121\x2\x432\x433\x5\x253\x12A\x2\x433\x434\x5\x239\x11D"+ + "\x2\x434\x435\x5\x249\x125\x2\x435\xA0\x3\x2\x2\x2\x436\x437\x5\x23D\x11F"+ + "\x2\x437\x438\x5\x23F\x120\x2\x438\x439\x5\x241\x121\x2\x439\x43A\x5\x25B"+ + "\x12E\x2\x43A\x43B\x5\x251\x129\x2\x43B\x43C\x5\x243\x122\x2\x43C\xA2"+ + "\x3\x2\x2\x2\x43D\x43E\x5\x23D\x11F\x2\x43E\x43F\x5\x23F\x120\x2\x43F"+ + "\x440\x5\x241\x121\x2\x440\x441\x5\x25B\x12E\x2\x441\x442\x5\x25D\x12F"+ + "\x2\x442\x443\x5\x259\x12D\x2\x443\xA4\x3\x2\x2\x2\x444\x445\x5\x23D\x11F"+ + "\x2\x445\x446\x5\x23F\x120\x2\x446\x447\x5\x241\x121\x2\x447\x448\x5\x261"+ + "\x131\x2\x448\x449\x5\x237\x11C\x2\x449\x44A\x5\x259\x12D\x2\x44A\xA6"+ + "\x3\x2\x2\x2\x44B\x44C\x5\x23D\x11F\x2\x44C\x44D\x5\x247\x124\x2\x44D"+ + "\x44E\x5\x24F\x128\x2\x44E\xA8\x3\x2\x2\x2\x44F\x450\x5\x23D\x11F\x2\x450"+ + "\x451\x5\x253\x12A\x2\x451\xAA\x3\x2\x2\x2\x452\x453\x5\x23D\x11F\x2\x453"+ + "\x454\x5\x253\x12A\x2\x454\x455\x5\x25F\x130\x2\x455\x456\x5\x239\x11D"+ + "\x2\x456\x457\x5\x24D\x127\x2\x457\x458\x5\x23F\x120\x2\x458\xAC\x3\x2"+ + "\x2\x2\x459\x45A\x5\x23F\x120\x2\x45A\x45B\x5\x237\x11C\x2\x45B\x45C\x5"+ + "\x23B\x11E\x2\x45C\x45D\x5\x245\x123\x2\x45D\xAE\x3\x2\x2\x2\x45E\x45F"+ + "\x5\x23F\x120\x2\x45F\x460\x5\x24D\x127\x2\x460\x461\x5\x25B\x12E\x2\x461"+ + "\x462\x5\x23F\x120\x2\x462\xB0\x3\x2\x2\x2\x463\x464\x5\x23F\x120\x2\x464"+ + "\x465\x5\x24D\x127\x2\x465\x466\x5\x25B\x12E\x2\x466\x467\x5\x23F\x120"+ + "\x2\x467\x468\x5\x247\x124\x2\x468\x469\x5\x241\x121\x2\x469\xB2\x3\x2"+ + "\x2\x2\x46A\x46B\x5\x23F\x120\x2\x46B\x46C\x5\x24F\x128\x2\x46C\x46D\x5"+ + "\x255\x12B\x2\x46D\x46E\x5\x25D\x12F\x2\x46E\x46F\x5\x267\x134\x2\x46F"+ + "\xB4\x3\x2\x2\x2\x470\x471\x5\x23F\x120\x2\x471\x472\x5\x251\x129\x2\x472"+ + "\x473\x5\x23D\x11F\x2\x473\x474\x5\x229\x115\x2\x474\x475\x5\x23F\x120"+ + "\x2\x475\x476\x5\x251\x129\x2\x476\x477\x5\x25F\x130\x2\x477\x478\x5\x24F"+ + "\x128\x2\x478\xB6\x3\x2\x2\x2\x479\x47A\x5\x23F\x120\x2\x47A\x47B\x5\x251"+ + "\x129\x2\x47B\x47C\x5\x23D\x11F\x2\x47C\x47D\x5\x229\x115\x2\x47D\x47E"+ + "\x5\x241\x121\x2\x47E\x47F\x5\x25F\x130\x2\x47F\x480\x5\x251\x129\x2\x480"+ + "\x481\x5\x23B\x11E\x2\x481\x482\x5\x25D\x12F\x2\x482\x483\x5\x247\x124"+ + "\x2\x483\x484\x5\x253\x12A\x2\x484\x485\x5\x251\x129\x2\x485\xB8\x3\x2"+ + "\x2\x2\x486\x487\x5\x23F\x120\x2\x487\x488\x5\x251\x129\x2\x488\x489\x5"+ + "\x23D\x11F\x2\x489\x48A\x5\x229\x115\x2\x48A\x48B\x5\x247\x124\x2\x48B"+ + "\x48C\x5\x241\x121\x2\x48C\xBA\x3\x2\x2\x2\x48D\x48E\x5\x23F\x120\x2\x48E"+ + "\x48F\x5\x251\x129\x2\x48F\x490\x5\x23D\x11F\x2\x490\x491\x5\x229\x115"+ + "\x2\x491\x492\x5\x255\x12B\x2\x492\x493\x5\x259\x12D\x2\x493\x494\x5\x253"+ + "\x12A\x2\x494\x495\x5\x255\x12B\x2\x495\x496\x5\x23F\x120\x2\x496\x497"+ + "\x5\x259\x12D\x2\x497\x498\x5\x25D\x12F\x2\x498\x499\x5\x267\x134\x2\x499"+ + "\xBC\x3\x2\x2\x2\x49A\x49B\x5\x23F\x120\x2\x49B\x49C\x5\x251\x129\x2\x49C"+ + "\x49D\x5\x23D\x11F\x2\x49D\x49E\x5\x229\x115\x2\x49E\x49F\x5\x25B\x12E"+ + "\x2\x49F\x4A0\x5\x23F\x120\x2\x4A0\x4A1\x5\x24D\x127\x2\x4A1\x4A2\x5\x23F"+ + "\x120\x2\x4A2\x4A3\x5\x23B\x11E\x2\x4A3\x4A4\x5\x25D\x12F\x2\x4A4\xBE"+ + "\x3\x2\x2\x2\x4A5\x4A6\x5\x23F\x120\x2\x4A6\x4A7\x5\x251\x129\x2\x4A7"+ + "\x4A8\x5\x23D\x11F\x2\x4A8\x4A9\x5\x229\x115\x2\x4A9\x4AA\x5\x25B\x12E"+ + "\x2\x4AA\x4AB\x5\x25F\x130\x2\x4AB\x4AC\x5\x239\x11D\x2\x4AC\xC0\x3\x2"+ + "\x2\x2\x4AD\x4AE\x5\x23F\x120\x2\x4AE\x4AF\x5\x251\x129\x2\x4AF\x4B0\x5"+ + "\x23D\x11F\x2\x4B0\x4B1\x5\x229\x115\x2\x4B1\x4B2\x5\x25D\x12F\x2\x4B2"+ + "\x4B3\x5\x267\x134\x2\x4B3\x4B4\x5\x255\x12B\x2\x4B4\x4B5\x5\x23F\x120"+ + "\x2\x4B5\xC2\x3\x2\x2\x2\x4B6\x4B7\x5\x23F\x120\x2\x4B7\x4B8\x5\x251\x129"+ + "\x2\x4B8\x4B9\x5\x23D\x11F\x2\x4B9\x4BA\x5\x229\x115\x2\x4BA\x4BB\x5\x263"+ + "\x132\x2\x4BB\x4BC\x5\x247\x124\x2\x4BC\x4BD\x5\x25D\x12F\x2\x4BD\x4BE"+ + "\x5\x245\x123\x2\x4BE\xC4\x3\x2\x2\x2\x4BF\x4C0\x5\x23F\x120\x2\x4C0\x4C1"+ + "\x5\x251\x129\x2\x4C1\x4C2\x5\x23D\x11F\x2\x4C2\xC6\x3\x2\x2\x2\x4C3\x4C4"+ + "\x5\x23F\x120\x2\x4C4\x4C5\x5\x251\x129\x2\x4C5\x4C6\x5\x25F\x130\x2\x4C6"+ + "\x4C7\x5\x24F\x128\x2\x4C7\xC8\x3\x2\x2\x2\x4C8\x4C9\x5\x23F\x120\x2\x4C9"+ + "\x4CA\x5\x257\x12C\x2\x4CA\x4CB\x5\x261\x131\x2\x4CB\xCA\x3\x2\x2\x2\x4CC"+ + "\x4CD\x5\x23F\x120\x2\x4CD\x4CE\x5\x259\x12D\x2\x4CE\x4CF\x5\x237\x11C"+ + "\x2\x4CF\x4D0\x5\x25B\x12E\x2\x4D0\x4D1\x5\x23F\x120\x2\x4D1\xCC\x3\x2"+ + "\x2\x2\x4D2\x4D3\x5\x23F\x120\x2\x4D3\x4D4\x5\x259\x12D\x2\x4D4\x4D5\x5"+ + "\x259\x12D\x2\x4D5\x4D6\x5\x253\x12A\x2\x4D6\x4D7\x5\x259\x12D\x2\x4D7"+ + "\xCE\x3\x2\x2\x2\x4D8\x4D9\x5\x23F\x120\x2\x4D9\x4DA\x5\x261\x131\x2\x4DA"+ + "\x4DB\x5\x23F\x120\x2\x4DB\x4DC\x5\x251\x129\x2\x4DC\x4DD\x5\x25D\x12F"+ + "\x2\x4DD\xD0\x3\x2\x2\x2\x4DE\x4DF\x5\x23F\x120\x2\x4DF\x4E0\x5\x265\x133"+ + "\x2\x4E0\x4E1\x5\x247\x124\x2\x4E1\x4E2\x5\x25D\x12F\x2\x4E2\x4E3\x5\x229"+ + "\x115\x2\x4E3\x4E4\x5\x23D\x11F\x2\x4E4\x4E5\x5\x253\x12A\x2\x4E5\xD2"+ + "\x3\x2\x2\x2\x4E6\x4E7\x5\x23F\x120\x2\x4E7\x4E8\x5\x265\x133\x2\x4E8"+ + "\x4E9\x5\x247\x124\x2\x4E9\x4EA\x5\x25D\x12F\x2\x4EA\x4EB\x5\x229\x115"+ + "\x2\x4EB\x4EC\x5\x241\x121\x2\x4EC\x4ED\x5\x253\x12A\x2\x4ED\x4EE\x5\x259"+ + "\x12D\x2\x4EE\xD4\x3\x2\x2\x2\x4EF\x4F0\x5\x23F\x120\x2\x4F0\x4F1\x5\x265"+ + "\x133\x2\x4F1\x4F2\x5\x247\x124\x2\x4F2\x4F3\x5\x25D\x12F\x2\x4F3\x4F4"+ + "\x5\x229\x115\x2\x4F4\x4F5\x5\x241\x121\x2\x4F5\x4F6\x5\x25F\x130\x2\x4F6"+ + "\x4F7\x5\x251\x129\x2\x4F7\x4F8\x5\x23B\x11E\x2\x4F8\x4F9\x5\x25D\x12F"+ + "\x2\x4F9\x4FA\x5\x247\x124\x2\x4FA\x4FB\x5\x253\x12A\x2\x4FB\x4FC\x5\x251"+ + "\x129\x2\x4FC\xD6\x3\x2\x2\x2\x4FD\x4FE\x5\x23F\x120\x2\x4FE\x4FF\x5\x265"+ + "\x133\x2\x4FF\x500\x5\x247\x124\x2\x500\x501\x5\x25D\x12F\x2\x501\x502"+ + "\x5\x229\x115\x2\x502\x503\x5\x255\x12B\x2\x503\x504\x5\x259\x12D\x2\x504"+ + "\x505\x5\x253\x12A\x2\x505\x506\x5\x255\x12B\x2\x506\x507\x5\x23F\x120"+ + "\x2\x507\x508\x5\x259\x12D\x2\x508\x509\x5\x25D\x12F\x2\x509\x50A\x5\x267"+ + "\x134\x2\x50A\xD8\x3\x2\x2\x2\x50B\x50C\x5\x23F\x120\x2\x50C\x50D\x5\x265"+ + "\x133\x2\x50D\x50E\x5\x247\x124\x2\x50E\x50F\x5\x25D\x12F\x2\x50F\x510"+ + "\x5\x229\x115\x2\x510\x511\x5\x25B\x12E\x2\x511\x512\x5\x25F\x130\x2\x512"+ + "\x513\x5\x239\x11D\x2\x513\xDA\x3\x2\x2\x2\x514\x515\x5\x241\x121\x2\x515"+ + "\x516\x5\x237\x11C\x2\x516\x517\x5\x24D\x127\x2\x517\x518\x5\x25B\x12E"+ + "\x2\x518\x519\x5\x23F\x120\x2\x519\xDC\x3\x2\x2\x2\x51A\x51B\x5\x241\x121"+ + "\x2\x51B\x51C\x5\x259\x12D\x2\x51C\x51D\x5\x247\x124\x2\x51D\x51E\x5\x23F"+ + "\x120\x2\x51E\x51F\x5\x251\x129\x2\x51F\x520\x5\x23D\x11F\x2\x520\xDE"+ + "\x3\x2\x2\x2\x521\x522\x5\x241\x121\x2\x522\x523\x5\x253\x12A\x2\x523"+ + "\x524\x5\x259\x12D\x2\x524\xE0\x3\x2\x2\x2\x525\x526\x5\x241\x121\x2\x526"+ + "\x527\x5\x25F\x130\x2\x527\x528\x5\x251\x129\x2\x528\x529\x5\x23B\x11E"+ + "\x2\x529\x52A\x5\x25D\x12F\x2\x52A\x52B\x5\x247\x124\x2\x52B\x52C\x5\x253"+ + "\x12A\x2\x52C\x52D\x5\x251\x129\x2\x52D\xE2\x3\x2\x2\x2\x52E\x52F\x5\x243"+ + "\x122\x2\x52F\x530\x5\x23F\x120\x2\x530\x531\x5\x25D\x12F\x2\x531\xE4"+ + "\x3\x2\x2\x2\x532\x533\x5\x243\x122\x2\x533\x534\x5\x24D\x127\x2\x534"+ + "\x535\x5\x253\x12A\x2\x535\x536\x5\x239\x11D\x2\x536\x537\x5\x237\x11C"+ + "\x2\x537\x538\x5\x24D\x127\x2\x538\xE6\x3\x2\x2\x2\x539\x53A\x5\x243\x122"+ + "\x2\x53A\x53B\x5\x253\x12A\x2\x53B\x53C\x5\x25B\x12E\x2\x53C\x53D\x5\x25F"+ + "\x130\x2\x53D\x53E\x5\x239\x11D\x2\x53E\xE8\x3\x2\x2\x2\x53F\x540\x5\x243"+ + "\x122\x2\x540\x541\x5\x253\x12A\x2\x541\x542\x5\x25D\x12F\x2\x542\x543"+ + "\x5\x253\x12A\x2\x543\xEA\x3\x2\x2\x2\x544\x545\x5\x247\x124\x2\x545\x546"+ + "\x5\x241\x121\x2\x546\xEC\x3\x2\x2\x2\x547\x548\x5\x247\x124\x2\x548\x549"+ + "\x5\x24F\x128\x2\x549\x54A\x5\x255\x12B\x2\x54A\xEE\x3\x2\x2\x2\x54B\x54C"+ + "\x5\x247\x124\x2\x54C\x54D\x5\x24F\x128\x2\x54D\x54E\x5\x255\x12B\x2\x54E"+ + "\x54F\x5\x24D\x127\x2\x54F\x550\x5\x23F\x120\x2\x550\x551\x5\x24F\x128"+ + "\x2\x551\x552\x5\x23F\x120\x2\x552\x553\x5\x251\x129\x2\x553\x554\x5\x25D"+ + "\x12F\x2\x554\x555\x5\x25B\x12E\x2\x555\xF0\x3\x2\x2\x2\x556\x557\x5\x247"+ + "\x124\x2\x557\x558\x5\x251\x129\x2\x558\xF2\x3\x2\x2\x2\x559\x55A\x5\x247"+ + "\x124\x2\x55A\x55B\x5\x251\x129\x2\x55B\x55C\x5\x255\x12B\x2\x55C\x55D"+ + "\x5\x25F\x130\x2\x55D\x55E\x5\x25D\x12F\x2\x55E\xF4\x3\x2\x2\x2\x55F\x560"+ + "\x5\x247\x124\x2\x560\x561\x5\x25B\x12E\x2\x561\xF6\x3\x2\x2\x2\x562\x563"+ + "\x5\x247\x124\x2\x563\x564\x5\x251\x129\x2\x564\x565\x5\x25D\x12F\x2\x565"+ + "\x566\x5\x23F\x120\x2\x566\x567\x5\x243\x122\x2\x567\x568\x5\x23F\x120"+ + "\x2\x568\x569\x5\x259\x12D\x2\x569\xF8\x3\x2\x2\x2\x56A\x56B\x5\x24D\x127"+ + "\x2\x56B\x56C\x5\x253\x12A\x2\x56C\x56D\x5\x23B\x11E\x2\x56D\x56E\x5\x24B"+ + "\x126\x2\x56E\xFA\x3\x2\x2\x2\x56F\x570\x5\x24D\x127\x2\x570\x571\x5\x253"+ + "\x12A\x2\x571\x572\x5\x251\x129\x2\x572\x573\x5\x243\x122\x2\x573\xFC"+ + "\x3\x2\x2\x2\x574\x575\x5\x24D\x127\x2\x575\x576\x5\x253\x12A\x2\x576"+ + "\x577\x5\x253\x12A\x2\x577\x578\x5\x255\x12B\x2\x578\xFE\x3\x2\x2\x2\x579"+ + "\x57A\x5\x24D\x127\x2\x57A\x57B\x5\x23F\x120\x2\x57B\x57C\x5\x25D\x12F"+ + "\x2\x57C\x100\x3\x2\x2\x2\x57D\x57E\x5\x24D\x127\x2\x57E\x57F\x5\x247"+ + "\x124\x2\x57F\x580\x5\x239\x11D\x2\x580\x102\x3\x2\x2\x2\x581\x582\x5"+ + "\x24D\x127\x2\x582\x583\x5\x247\x124\x2\x583\x584\x5\x24B\x126\x2\x584"+ + "\x585\x5\x23F\x120\x2\x585\x104\x3\x2\x2\x2\x586\x587\x5\x24D\x127\x2"+ + "\x587\x588\x5\x247\x124\x2\x588\x589\x5\x251\x129\x2\x589\x58A\x5\x23F"+ + "\x120\x2\x58A\x58B\x5\x229\x115\x2\x58B\x58C\x5\x247\x124\x2\x58C\x58D"+ + "\x5\x251\x129\x2\x58D\x58E\x5\x255\x12B\x2\x58E\x58F\x5\x25F\x130\x2\x58F"+ + "\x590\x5\x25D\x12F\x2\x590\x106\x3\x2\x2\x2\x591\x592\x5\x24D\x127\x2"+ + "\x592\x593\x5\x253\x12A\x2\x593\x594\x5\x23B\x11E\x2\x594\x595\x5\x24B"+ + "\x126\x2\x595\x596\x5\x229\x115\x2\x596\x597\x5\x259\x12D\x2\x597\x598"+ + "\x5\x23F\x120\x2\x598\x599\x5\x237\x11C\x2\x599\x59A\x5\x23D\x11F\x2\x59A"+ + "\x108\x3\x2\x2\x2\x59B\x59C\x5\x24D\x127\x2\x59C\x59D\x5\x253\x12A\x2"+ + "\x59D\x59E\x5\x23B\x11E\x2\x59E\x59F\x5\x24B\x126\x2\x59F\x5A0\x5\x229"+ + "\x115\x2\x5A0\x5A1\x5\x263\x132\x2\x5A1\x5A2\x5\x259\x12D\x2\x5A2\x5A3"+ + "\x5\x247\x124\x2\x5A3\x5A4\x5\x25D\x12F\x2\x5A4\x5A5\x5\x23F\x120\x2\x5A5"+ + "\x10A\x3\x2\x2\x2\x5A6\x5A7\x5\x24D\x127\x2\x5A7\x5A8\x5\x253\x12A\x2"+ + "\x5A8\x5A9\x5\x23B\x11E\x2\x5A9\x5AA\x5\x24B\x126\x2\x5AA\x5AB\x5\x229"+ + "\x115\x2\x5AB\x5AC\x5\x259\x12D\x2\x5AC\x5AD\x5\x23F\x120\x2\x5AD\x5AE"+ + "\x5\x237\x11C\x2\x5AE\x5AF\x5\x23D\x11F\x2\x5AF\x5B0\x5\x229\x115\x2\x5B0"+ + "\x5B1\x5\x263\x132\x2\x5B1\x5B2\x5\x259\x12D\x2\x5B2\x5B3\x5\x247\x124"+ + "\x2\x5B3\x5B4\x5\x25D\x12F\x2\x5B4\x5B5\x5\x23F\x120\x2\x5B5\x10C\x3\x2"+ + "\x2\x2\x5B6\x5B7\x5\x24D\x127\x2\x5B7\x5B8\x5\x25B\x12E\x2\x5B8\x5B9\x5"+ + "\x23F\x120\x2\x5B9\x5BA\x5\x25D\x12F\x2\x5BA\x10E\x3\x2\x2\x2\x5BB\x5BC"+ + "\x5\x24F\x128\x2\x5BC\x5BD\x5\x23F\x120\x2\x5BD\x110\x3\x2\x2\x2\x5BE"+ + "\x5BF\x5\x24F\x128\x2\x5BF\x5C0\x5\x247\x124\x2\x5C0\x5C1\x5\x23D\x11F"+ + "\x2\x5C1\x112\x3\x2\x2\x2\x5C2\x5C3\x5\x24F\x128\x2\x5C3\x5C4\x5\x253"+ + "\x12A\x2\x5C4\x5C5\x5\x23D\x11F\x2\x5C5\x114\x3\x2\x2\x2\x5C6\x5C7\x5"+ + "\x251\x129\x2\x5C7\x5C8\x5\x23F\x120\x2\x5C8\x5C9\x5\x265\x133\x2\x5C9"+ + "\x5CA\x5\x25D\x12F\x2\x5CA\x116\x3\x2\x2\x2\x5CB\x5CC\x5\x251\x129\x2"+ + "\x5CC\x5CD\x5\x23F\x120\x2\x5CD\x5CE\x5\x263\x132\x2\x5CE\x118\x3\x2\x2"+ + "\x2\x5CF\x5D0\x5\x251\x129\x2\x5D0\x5D1\x5\x253\x12A\x2\x5D1\x5D2\x5\x25D"+ + "\x12F\x2\x5D2\x11A\x3\x2\x2\x2\x5D3\x5D4\x5\x251\x129\x2\x5D4\x5D5\x5"+ + "\x253\x12A\x2\x5D5\x5D6\x5\x25D\x12F\x2\x5D6\x5D7\x5\x245\x123\x2\x5D7"+ + "\x5D8\x5\x247\x124\x2\x5D8\x5D9\x5\x251\x129\x2\x5D9\x5DA\x5\x243\x122"+ + "\x2\x5DA\x11C\x3\x2\x2\x2\x5DB\x5DC\x5\x251\x129\x2\x5DC\x5DD\x5\x25F"+ + "\x130\x2\x5DD\x5DE\x5\x24D\x127\x2\x5DE\x5DF\x5\x24D\x127\x2\x5DF\x11E"+ + "\x3\x2\x2\x2\x5E0\x5E1\x5\x253\x12A\x2\x5E1\x5E2\x5\x251\x129\x2\x5E2"+ + "\x120\x3\x2\x2\x2\x5E3\x5E4\x5\x253\x12A\x2\x5E4\x5E5\x5\x251\x129\x2"+ + "\x5E5\x5E6\x5\x229\x115\x2\x5E6\x5E7\x5\x23F\x120\x2\x5E7\x5E8\x5\x259"+ + "\x12D\x2\x5E8\x5E9\x5\x259\x12D\x2\x5E9\x5EA\x5\x253\x12A\x2\x5EA\x5EB"+ + "\x5\x259\x12D\x2\x5EB\x122\x3\x2\x2\x2\x5EC\x5ED\x5\x253\x12A\x2\x5ED"+ + "\x5EE\x5\x251\x129\x2\x5EE\x5EF\x5\x229\x115\x2\x5EF\x5F0\x5\x24D\x127"+ + "\x2\x5F0\x5F1\x5\x253\x12A\x2\x5F1\x5F2\x5\x23B\x11E\x2\x5F2\x5F3\x5\x237"+ + "\x11C\x2\x5F3\x5F4\x5\x24D\x127\x2\x5F4\x5F5\x5\x229\x115\x2\x5F5\x5F6"+ + "\x5\x23F\x120\x2\x5F6\x5F7\x5\x259\x12D\x2\x5F7\x5F8\x5\x259\x12D\x2\x5F8"+ + "\x5F9\x5\x253\x12A\x2\x5F9\x5FA\x5\x259\x12D\x2\x5FA\x124\x3\x2\x2\x2"+ + "\x5FB\x5FC\x5\x253\x12A\x2\x5FC\x5FD\x5\x255\x12B\x2\x5FD\x5FE\x5\x23F"+ + "\x120\x2\x5FE\x5FF\x5\x251\x129\x2\x5FF\x126\x3\x2\x2\x2\x600\x601\x5"+ + "\x253\x12A\x2\x601\x602\x5\x255\x12B\x2\x602\x603\x5\x25D\x12F\x2\x603"+ + "\x604\x5\x247\x124\x2\x604\x605\x5\x253\x12A\x2\x605\x606\x5\x251\x129"+ + "\x2\x606\x607\x5\x237\x11C\x2\x607\x608\x5\x24D\x127\x2\x608\x128\x3\x2"+ + "\x2\x2\x609\x60A\x5\x253\x12A\x2\x60A\x60B\x5\x255\x12B\x2\x60B\x60C\x5"+ + "\x25D\x12F\x2\x60C\x60D\x5\x247\x124\x2\x60D\x60E\x5\x253\x12A\x2\x60E"+ + "\x60F\x5\x251\x129\x2\x60F\x610\x5\x229\x115\x2\x610\x611\x5\x239\x11D"+ + "\x2\x611\x612\x5\x237\x11C\x2\x612\x613\x5\x25B\x12E\x2\x613\x614\x5\x23F"+ + "\x120\x2\x614\x12A\x3\x2\x2\x2\x615\x616\x5\x253\x12A\x2\x616\x617\x5"+ + "\x255\x12B\x2\x617\x618\x5\x25D\x12F\x2\x618\x619\x5\x247\x124\x2\x619"+ + "\x61A\x5\x253\x12A\x2\x61A\x61B\x5\x251\x129\x2\x61B\x61C\x5\x229\x115"+ + "\x2\x61C\x61D\x5\x23F\x120\x2\x61D\x61E\x5\x265\x133\x2\x61E\x61F\x5\x255"+ + "\x12B\x2\x61F\x620\x5\x24D\x127\x2\x620\x621\x5\x247\x124\x2\x621\x622"+ + "\x5\x23B\x11E\x2\x622\x623\x5\x247\x124\x2\x623\x624\x5\x25D\x12F\x2\x624"+ + "\x12C\x3\x2\x2\x2\x625\x626\x5\x253\x12A\x2\x626\x627\x5\x255\x12B\x2"+ + "\x627\x628\x5\x25D\x12F\x2\x628\x629\x5\x247\x124\x2\x629\x62A\x5\x253"+ + "\x12A\x2\x62A\x62B\x5\x251\x129\x2\x62B\x62C\x5\x229\x115\x2\x62C\x62D"+ + "\x5\x23B\x11E\x2\x62D\x62E\x5\x253\x12A\x2\x62E\x62F\x5\x24F\x128\x2\x62F"+ + "\x630\x5\x255\x12B\x2\x630\x631\x5\x237\x11C\x2\x631\x632\x5\x259\x12D"+ + "\x2\x632\x633\x5\x23F\x120\x2\x633\x12E\x3\x2\x2\x2\x634\x635\x5\x253"+ + "\x12A\x2\x635\x636\x5\x255\x12B\x2\x636\x637\x5\x25D\x12F\x2\x637\x638"+ + "\x5\x247\x124\x2\x638\x639\x5\x253\x12A\x2\x639\x63A\x5\x251\x129\x2\x63A"+ + "\x63B\x5\x229\x115\x2\x63B\x63C\x5\x255\x12B\x2\x63C\x63D\x5\x259\x12D"+ + "\x2\x63D\x63E\x5\x247\x124\x2\x63E\x63F\x5\x261\x131\x2\x63F\x640\x5\x237"+ + "\x11C\x2\x640\x641\x5\x25D\x12F\x2\x641\x642\x5\x23F\x120\x2\x642\x643"+ + "\x5\x229\x115\x2\x643\x644\x5\x24F\x128\x2\x644\x645\x5\x253\x12A\x2\x645"+ + "\x646\x5\x23D\x11F\x2\x646\x647\x5\x25F\x130\x2\x647\x648\x5\x24D\x127"+ + "\x2\x648\x649\x5\x23F\x120\x2\x649\x130\x3\x2\x2\x2\x64A\x64B\x5\x253"+ + "\x12A\x2\x64B\x64C\x5\x259\x12D\x2\x64C\x132\x3\x2\x2\x2\x64D\x64E\x5"+ + "\x253\x12A\x2\x64E\x64F\x5\x25F\x130\x2\x64F\x650\x5\x25D\x12F\x2\x650"+ + "\x651\x5\x255\x12B\x2\x651\x652\x5\x25F\x130\x2\x652\x653\x5\x25D\x12F"+ + "\x2\x653\x134\x3\x2\x2\x2\x654\x655\x5\x255\x12B\x2\x655\x656\x5\x237"+ + "\x11C\x2\x656\x657\x5\x259\x12D\x2\x657\x658\x5\x237\x11C\x2\x658\x659"+ + "\x5\x24F\x128\x2\x659\x65A\x5\x237\x11C\x2\x65A\x65B\x5\x259\x12D\x2\x65B"+ + "\x65C\x5\x259\x12D\x2\x65C\x65D\x5\x237\x11C\x2\x65D\x65E\x5\x267\x134"+ + "\x2\x65E\x136\x3\x2\x2\x2\x65F\x660\x5\x255\x12B\x2\x660\x661\x5\x259"+ + "\x12D\x2\x661\x662\x5\x23F\x120\x2\x662\x663\x5\x25B\x12E\x2\x663\x664"+ + "\x5\x23F\x120\x2\x664\x665\x5\x259\x12D\x2\x665\x666\x5\x261\x131\x2\x666"+ + "\x667\x5\x23F\x120\x2\x667\x138\x3\x2\x2\x2\x668\x669\x5\x255\x12B\x2"+ + "\x669\x66A\x5\x259\x12D\x2\x66A\x66B\x5\x247\x124\x2\x66B\x66C\x5\x251"+ + "\x129\x2\x66C\x66D\x5\x25D\x12F\x2\x66D\x13A\x3\x2\x2\x2\x66E\x66F\x5"+ + "\x255\x12B\x2\x66F\x670\x5\x259\x12D\x2\x670\x671\x5\x247\x124\x2\x671"+ + "\x672\x5\x261\x131\x2\x672\x673\x5\x237\x11C\x2\x673\x674\x5\x25D\x12F"+ + "\x2\x674\x675\x5\x23F\x120\x2\x675\x13C\x3\x2\x2\x2\x676\x677\x5\x255"+ + "\x12B\x2\x677\x678\x5\x259\x12D\x2\x678\x679\x5\x253\x12A\x2\x679\x67A"+ + "\x5\x255\x12B\x2\x67A\x67B\x5\x23F\x120\x2\x67B\x67C\x5\x259\x12D\x2\x67C"+ + "\x67D\x5\x25D\x12F\x2\x67D\x67E\x5\x267\x134\x2\x67E\x67F\x5\x229\x115"+ + "\x2\x67F\x680\x5\x243\x122\x2\x680\x681\x5\x23F\x120\x2\x681\x682\x5\x25D"+ + "\x12F\x2\x682\x13E\x3\x2\x2\x2\x683\x684\x5\x255\x12B\x2\x684\x685\x5"+ + "\x259\x12D\x2\x685\x686\x5\x253\x12A\x2\x686\x687\x5\x255\x12B\x2\x687"+ + "\x688\x5\x23F\x120\x2\x688\x689\x5\x259\x12D\x2\x689\x68A\x5\x25D\x12F"+ + "\x2\x68A\x68B\x5\x267\x134\x2\x68B\x68C\x5\x229\x115\x2\x68C\x68D\x5\x24D"+ + "\x127\x2\x68D\x68E\x5\x23F\x120\x2\x68E\x68F\x5\x25D\x12F\x2\x68F\x140"+ + "\x3\x2\x2\x2\x690\x691\x5\x255\x12B\x2\x691\x692\x5\x259\x12D\x2\x692"+ + "\x693\x5\x253\x12A\x2\x693\x694\x5\x255\x12B\x2\x694\x695\x5\x23F\x120"+ + "\x2\x695\x696\x5\x259\x12D\x2\x696\x697\x5\x25D\x12F\x2\x697\x698\x5\x267"+ + "\x134\x2\x698\x699\x5\x229\x115\x2\x699\x69A\x5\x25B\x12E\x2\x69A\x69B"+ + "\x5\x23F\x120\x2\x69B\x69C\x5\x25D\x12F\x2\x69C\x142\x3\x2\x2\x2\x69D"+ + "\x69E\x5\x255\x12B\x2\x69E\x69F\x5\x25D\x12F\x2\x69F\x6A0\x5\x259\x12D"+ + "\x2\x6A0\x6A1\x5\x25B\x12E\x2\x6A1\x6A2\x5\x237\x11C\x2\x6A2\x6A3\x5\x241"+ + "\x121\x2\x6A3\x6A4\x5\x23F\x120\x2\x6A4\x144\x3\x2\x2\x2\x6A5\x6A6\x5"+ + "\x255\x12B\x2\x6A6\x6A7\x5\x25F\x130\x2\x6A7\x6A8\x5\x239\x11D\x2\x6A8"+ + "\x6A9\x5\x24D\x127\x2\x6A9\x6AA\x5\x247\x124\x2\x6AA\x6AB\x5\x23B\x11E"+ + "\x2\x6AB\x146\x3\x2\x2\x2\x6AC\x6AD\x5\x255\x12B\x2\x6AD\x6AE\x5\x25F"+ + "\x130\x2\x6AE\x6AF\x5\x25D\x12F\x2\x6AF\x148\x3\x2\x2\x2\x6B0\x6B1\x5"+ + "\x259\x12D\x2\x6B1\x6B2\x5\x237\x11C\x2\x6B2\x6B3\x5\x251\x129\x2\x6B3"+ + "\x6B4\x5\x23D\x11F\x2\x6B4\x6B5\x5\x253\x12A\x2\x6B5\x6B6\x5\x24F\x128"+ + "\x2\x6B6\x14A\x3\x2\x2\x2\x6B7\x6B8\x5\x259\x12D\x2\x6B8\x6B9\x5\x237"+ + "\x11C\x2\x6B9\x6BA\x5\x247\x124\x2\x6BA\x6BB\x5\x25B\x12E\x2\x6BB\x6BC"+ + "\x5\x23F\x120\x2\x6BC\x6BD\x5\x23F\x120\x2\x6BD\x6BE\x5\x261\x131\x2\x6BE"+ + "\x6BF\x5\x23F\x120\x2\x6BF\x6C0\x5\x251\x129\x2\x6C0\x6C1\x5\x25D\x12F"+ + "\x2\x6C1\x14C\x3\x2\x2\x2\x6C2\x6C3\x5\x259\x12D\x2\x6C3\x6C4\x5\x23F"+ + "\x120\x2\x6C4\x6C5\x5\x237\x11C\x2\x6C5\x6C6\x5\x23D\x11F\x2\x6C6\x14E"+ + "\x3\x2\x2\x2\x6C7\x6C8\x5\x259\x12D\x2\x6C8\x6C9\x5\x23F\x120\x2\x6C9"+ + "\x6CA\x5\x237\x11C\x2\x6CA\x6CB\x5\x23D\x11F\x2\x6CB\x6CC\x5\x229\x115"+ + "\x2\x6CC\x6CD\x5\x263\x132\x2\x6CD\x6CE\x5\x259\x12D\x2\x6CE\x6CF\x5\x247"+ + "\x124\x2\x6CF\x6D0\x5\x25D\x12F\x2\x6D0\x6D1\x5\x23F\x120\x2\x6D1\x150"+ + "\x3\x2\x2\x2\x6D2\x6D3\x5\x259\x12D\x2\x6D3\x6D4\x5\x23F\x120\x2\x6D4"+ + "\x6D5\x5\x23D\x11F\x2\x6D5\x6D6\x5\x247\x124\x2\x6D6\x6D7\x5\x24F\x128"+ + "\x2\x6D7\x152\x3\x2\x2\x2\x6D8\x6D9\x5\x259\x12D\x2\x6D9\x6DA\x5\x23F"+ + "\x120\x2\x6DA\x6DB\x5\x24F\x128\x2\x6DB\x154\x3\x2\x2\x2\x6DC\x6DD\x5"+ + "\x259\x12D\x2\x6DD\x6DE\x5\x23F\x120\x2\x6DE\x6DF\x5\x25B\x12E\x2\x6DF"+ + "\x6E0\x5\x23F\x120\x2\x6E0\x6E1\x5\x25D\x12F\x2\x6E1\x156\x3\x2\x2\x2"+ + "\x6E2\x6E3\x5\x259\x12D\x2\x6E3\x6E4\x5\x23F\x120\x2\x6E4\x6E5\x5\x25B"+ + "\x12E\x2\x6E5\x6E6\x5\x25F\x130\x2\x6E6\x6E7\x5\x24F\x128\x2\x6E7\x6E8"+ + "\x5\x23F\x120\x2\x6E8\x158\x3\x2\x2\x2\x6E9\x6EA\x5\x259\x12D\x2\x6EA"+ + "\x6EB\x5\x23F\x120\x2\x6EB\x6EC\x5\x25D\x12F\x2\x6EC\x6ED\x5\x25F\x130"+ + "\x2\x6ED\x6EE\x5\x259\x12D\x2\x6EE\x6EF\x5\x251\x129\x2\x6EF\x15A\x3\x2"+ + "\x2\x2\x6F0\x6F1\x5\x259\x12D\x2\x6F1\x6F2\x5\x25B\x12E\x2\x6F2\x6F3\x5"+ + "\x23F\x120\x2\x6F3\x6F4\x5\x25D\x12F\x2\x6F4\x15C\x3\x2\x2\x2\x6F5\x6F6"+ + "\x5\x25B\x12E\x2\x6F6\x6F7\x5\x23F\x120\x2\x6F7\x6F8\x5\x23F\x120\x2\x6F8"+ + "\x6F9\x5\x24B\x126\x2\x6F9\x15E\x3\x2\x2\x2\x6FA\x6FB\x5\x25B\x12E\x2"+ + "\x6FB\x6FC\x5\x23F\x120\x2\x6FC\x6FD\x5\x24D\x127\x2\x6FD\x6FE\x5\x23F"+ + "\x120\x2\x6FE\x6FF\x5\x23B\x11E\x2\x6FF\x700\x5\x25D\x12F\x2\x700\x160"+ + "\x3\x2\x2\x2\x701\x702\x5\x25B\x12E\x2\x702\x703\x5\x23F\x120\x2\x703"+ + "\x704\x5\x25D\x12F\x2\x704\x162\x3\x2\x2\x2\x705\x706\x5\x25B\x12E\x2"+ + "\x706\x707\x5\x245\x123\x2\x707\x708\x5\x237\x11C\x2\x708\x709\x5\x259"+ + "\x12D\x2\x709\x70A\x5\x23F\x120\x2\x70A\x70B\x5\x23D\x11F\x2\x70B\x164"+ + "\x3\x2\x2\x2\x70C\x70D\x5\x25B\x12E\x2\x70D\x70E\x5\x247\x124\x2\x70E"+ + "\x70F\x5\x251\x129\x2\x70F\x710\x5\x243\x122\x2\x710\x711\x5\x24D\x127"+ + "\x2\x711\x712\x5\x23F\x120\x2\x712\x166\x3\x2\x2\x2\x713\x714\x5\x25B"+ + "\x12E\x2\x714\x715\x5\x255\x12B\x2\x715\x716\x5\x23B\x11E\x2\x716\x168"+ + "\x3\x2\x2\x2\x717\x718\x5\x25B\x12E\x2\x718\x719\x5\x25D\x12F\x2\x719"+ + "\x71A\x5\x237\x11C\x2\x71A\x71B\x5\x25D\x12F\x2\x71B\x71C\x5\x247\x124"+ + "\x2\x71C\x71D\x5\x23B\x11E\x2\x71D\x16A\x3\x2\x2\x2\x71E\x71F\x5\x25B"+ + "\x12E\x2\x71F\x720\x5\x25D\x12F\x2\x720\x721\x5\x23F\x120\x2\x721\x722"+ + "\x5\x255\x12B\x2\x722\x16C\x3\x2\x2\x2\x723\x724\x5\x25B\x12E\x2\x724"+ + "\x725\x5\x25D\x12F\x2\x725\x726\x5\x253\x12A\x2\x726\x727\x5\x255\x12B"+ + "\x2\x727\x16E\x3\x2\x2\x2\x728\x729\x5\x25B\x12E\x2\x729\x72A\x5\x25D"+ + "\x12F\x2\x72A\x72B\x5\x259\x12D\x2\x72B\x72C\x5\x247\x124\x2\x72C\x72D"+ + "\x5\x251\x129\x2\x72D\x72E\x5\x243\x122\x2\x72E\x170\x3\x2\x2\x2\x72F"+ + "\x730\x5\x25B\x12E\x2\x730\x731\x5\x25F\x130\x2\x731\x732\x5\x239\x11D"+ + "\x2\x732\x172\x3\x2\x2\x2\x733\x734\x5\x25D\x12F\x2\x734\x735\x5\x237"+ + "\x11C\x2\x735\x736\x5\x239\x11D\x2\x736\x174\x3\x2\x2\x2\x737\x738\x5"+ + "\x25D\x12F\x2\x738\x739\x5\x23F\x120\x2\x739\x73A\x5\x265\x133\x2\x73A"+ + "\x73B\x5\x25D\x12F\x2\x73B\x176\x3\x2\x2\x2\x73C\x73D\x5\x25D\x12F\x2"+ + "\x73D\x73E\x5\x245\x123\x2\x73E\x73F\x5\x23F\x120\x2\x73F\x740\x5\x251"+ + "\x129\x2\x740\x178\x3\x2\x2\x2\x741\x742\x5\x25D\x12F\x2\x742\x743\x5"+ + "\x253\x12A\x2\x743\x17A\x3\x2\x2\x2\x744\x745\x5\x25D\x12F\x2\x745\x746"+ + "\x5\x259\x12D\x2\x746\x747\x5\x25F\x130\x2\x747\x748\x5\x23F\x120\x2\x748"+ + "\x17C\x3\x2\x2\x2\x749\x74A\x5\x25D\x12F\x2\x74A\x74B\x5\x267\x134\x2"+ + "\x74B\x74C\x5\x255\x12B\x2\x74C\x74D\x5\x23F\x120\x2\x74D\x17E\x3\x2\x2"+ + "\x2\x74E\x74F\x5\x25D\x12F\x2\x74F\x750\x5\x267\x134\x2\x750\x751\x5\x255"+ + "\x12B\x2\x751\x752\x5\x23F\x120\x2\x752\x753\x5\x253\x12A\x2\x753\x754"+ + "\x5\x241\x121\x2\x754\x180\x3\x2\x2\x2\x755\x756\x5\x25F\x130\x2\x756"+ + "\x757\x5\x251\x129\x2\x757\x758\x5\x24D\x127\x2\x758\x759\x5\x253\x12A"+ + "\x2\x759\x75A\x5\x23B\x11E\x2\x75A\x75B\x5\x24B\x126\x2\x75B\x182\x3\x2"+ + "\x2\x2\x75C\x75D\x5\x25F\x130\x2\x75D\x75E\x5\x251\x129\x2\x75E\x75F\x5"+ + "\x25D\x12F\x2\x75F\x760\x5\x247\x124\x2\x760\x761\x5\x24D\x127\x2\x761"+ + "\x184\x3\x2\x2\x2\x762\x763\x5\x261\x131\x2\x763\x764\x5\x237\x11C\x2"+ + "\x764\x765\x5\x259\x12D\x2\x765\x766\x5\x247\x124\x2\x766\x767\x5\x237"+ + "\x11C\x2\x767\x768\x5\x251\x129\x2\x768\x769\x5\x25D\x12F\x2\x769\x186"+ + "\x3\x2\x2\x2\x76A\x76B\x5\x261\x131\x2\x76B\x76C\x5\x23F\x120\x2\x76C"+ + "\x76D\x5\x259\x12D\x2\x76D\x76E\x5\x25B\x12E\x2\x76E\x76F\x5\x247\x124"+ + "\x2\x76F\x770\x5\x253\x12A\x2\x770\x771\x5\x251\x129\x2\x771\x188\x3\x2"+ + "\x2\x2\x772\x773\x5\x263\x132\x2\x773\x774\x5\x23F\x120\x2\x774\x775\x5"+ + "\x251\x129\x2\x775\x776\x5\x23D\x11F\x2\x776\x18A\x3\x2\x2\x2\x777\x778"+ + "\x5\x263\x132\x2\x778\x779\x5\x245\x123\x2\x779\x77A\x5\x247\x124\x2\x77A"+ + "\x77B\x5\x24D\x127\x2\x77B\x77C\x5\x23F\x120\x2\x77C\x18C\x3\x2\x2\x2"+ + "\x77D\x77E\x5\x263\x132\x2\x77E\x77F\x5\x247\x124\x2\x77F\x780\x5\x23D"+ + "\x11F\x2\x780\x781\x5\x25D\x12F\x2\x781\x782\x5\x245\x123\x2\x782\x18E"+ + "\x3\x2\x2\x2\x783\x784\x5\x263\x132\x2\x784\x785\x5\x247\x124\x2\x785"+ + "\x786\x5\x25D\x12F\x2\x786\x787\x5\x245\x123\x2\x787\x190\x3\x2\x2\x2"+ + "\x788\x789\x5\x263\x132\x2\x789\x78A\x5\x247\x124\x2\x78A\x78B\x5\x25D"+ + "\x12F\x2\x78B\x78C\x5\x245\x123\x2\x78C\x78D\x5\x23F\x120\x2\x78D\x78E"+ + "\x5\x261\x131\x2\x78E\x78F\x5\x23F\x120\x2\x78F\x790\x5\x251\x129\x2\x790"+ + "\x791\x5\x25D\x12F\x2\x791\x792\x5\x25B\x12E\x2\x792\x192\x3\x2\x2\x2"+ + "\x793\x794\x5\x263\x132\x2\x794\x795\x5\x259\x12D\x2\x795\x796\x5\x247"+ + "\x124\x2\x796\x797\x5\x25D\x12F\x2\x797\x798\x5\x23F\x120\x2\x798\x194"+ + "\x3\x2\x2\x2\x799\x79A\x5\x265\x133\x2\x79A\x79B\x5\x253\x12A\x2\x79B"+ + "\x79C\x5\x259\x12D\x2\x79C\x196\x3\x2\x2\x2\x79D\x79E\a<\x2\x2\x79E\x79F"+ + "\a?\x2\x2\x79F\x198\x3\x2\x2\x2\x7A0\x7A1\a\x31\x2\x2\x7A1\x19A\x3\x2"+ + "\x2\x2\x7A2\x7A3\a^\x2\x2\x7A3\x19C\x3\x2\x2\x2\x7A4\x7A5\a?\x2\x2\x7A5"+ + "\x19E\x3\x2\x2\x2\x7A6\x7A7\a@\x2\x2\x7A7\x7AB\a?\x2\x2\x7A8\x7A9\a?\x2"+ + "\x2\x7A9\x7AB\a@\x2\x2\x7AA\x7A6\x3\x2\x2\x2\x7AA\x7A8\x3\x2\x2\x2\x7AB"+ + "\x1A0\x3\x2\x2\x2\x7AC\x7AD\a@\x2\x2\x7AD\x1A2\x3\x2\x2\x2\x7AE\x7AF\a"+ + ">\x2\x2\x7AF\x7B3\a?\x2\x2\x7B0\x7B1\a?\x2\x2\x7B1\x7B3\a>\x2\x2\x7B2"+ + "\x7AE\x3\x2\x2\x2\x7B2\x7B0\x3\x2\x2\x2\x7B3\x1A4\x3\x2\x2\x2\x7B4\x7B5"+ + "\a*\x2\x2\x7B5\x1A6\x3\x2\x2\x2\x7B6\x7B7\a>\x2\x2\x7B7\x1A8\x3\x2\x2"+ + "\x2\x7B8\x7B9\a/\x2\x2\x7B9\x1AA\x3\x2\x2\x2\x7BA\x7BB\a,\x2\x2\x7BB\x1AC"+ + "\x3\x2\x2\x2\x7BC\x7BD\a>\x2\x2\x7BD\x7C1\a@\x2\x2\x7BE\x7BF\a@\x2\x2"+ + "\x7BF\x7C1\a>\x2\x2\x7C0\x7BC\x3\x2\x2\x2\x7C0\x7BE\x3\x2\x2\x2\x7C1\x1AE"+ + "\x3\x2\x2\x2\x7C2\x7C3\a-\x2\x2\x7C3\x1B0\x3\x2\x2\x2\x7C4\x7C5\a`\x2"+ + "\x2\x7C5\x1B2\x3\x2\x2\x2\x7C6\x7C7\a+\x2\x2\x7C7\x1B4\x3\x2\x2\x2\x7C8"+ + "\x7CA\x5\x229\x115\x2\x7C9\x7C8\x3\x2\x2\x2\x7CA\x7CD\x3\x2\x2\x2\x7CB"+ + "\x7C9\x3\x2\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC\x7CE\x3\x2\x2\x2\x7CD\x7CB"+ + "\x3\x2\x2\x2\x7CE\x7CF\x5Y-\x2\x7CF\x7D0\x5\x85\x43\x2\x7D0\x1B6\x3\x2"+ + "\x2\x2\x7D1\x7D3\x5\x229\x115\x2\x7D2\x7D1\x3\x2\x2\x2\x7D3\x7D6\x3\x2"+ + "\x2\x2\x7D4\x7D2\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D7\x3\x2\x2"+ + "\x2\x7D6\x7D4\x3\x2\x2\x2\x7D7\x7D8\x5Y-\x2\x7D8\x7D9\x5\x247\x124\x2"+ + "\x7D9\x7DA\x5\x241\x121\x2\x7DA\x1B8\x3\x2\x2\x2\x7DB\x7DD\x5\x229\x115"+ + "\x2\x7DC\x7DB\x3\x2\x2\x2\x7DD\x7E0\x3\x2\x2\x2\x7DE\x7DC\x3\x2\x2\x2"+ + "\x7DE\x7DF\x3\x2\x2\x2\x7DF\x7E1\x3\x2\x2\x2\x7E0\x7DE\x3\x2\x2\x2\x7E1"+ + "\x7E2\x5Y-\x2\x7E2\x7E3\x5\x23F\x120\x2\x7E3\x7E4\x5\x24D\x127\x2\x7E4"+ + "\x7E5\x5\x25B\x12E\x2\x7E5\x7E6\x5\x23F\x120\x2\x7E6\x7E7\x5\x247\x124"+ + "\x2\x7E7\x7E8\x5\x241\x121\x2\x7E8\x1BA\x3\x2\x2\x2\x7E9\x7EB\x5\x229"+ + "\x115\x2\x7EA\x7E9\x3\x2\x2\x2\x7EB\x7EE\x3\x2\x2\x2\x7EC\x7EA\x3\x2\x2"+ + "\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED\x7EF\x3\x2\x2\x2\x7EE\x7EC\x3\x2\x2\x2"+ + "\x7EF\x7F0\x5Y-\x2\x7F0\x7F1\x5\x23F\x120\x2\x7F1\x7F2\x5\x24D\x127\x2"+ + "\x7F2\x7F3\x5\x25B\x12E\x2\x7F3\x7F4\x5\x23F\x120\x2\x7F4\x1BC\x3\x2\x2"+ + "\x2\x7F5\x7F7\x5\x229\x115\x2\x7F6\x7F5\x3\x2\x2\x2\x7F7\x7FA\x3\x2\x2"+ + "\x2\x7F8\x7F6\x3\x2\x2\x2\x7F8\x7F9\x3\x2\x2\x2\x7F9\x7FB\x3\x2\x2\x2"+ + "\x7FA\x7F8\x3\x2\x2\x2\x7FB\x7FC\x5Y-\x2\x7FC\x7FD\x5\x23F\x120\x2\x7FD"+ + "\x7FE\x5\x251\x129\x2\x7FE\x802\x5\x23D\x11F\x2\x7FF\x801\x5\x229\x115"+ + "\x2\x800\x7FF\x3\x2\x2\x2\x801\x804\x3\x2\x2\x2\x802\x800\x3\x2\x2\x2"+ + "\x802\x803\x3\x2\x2\x2\x803\x805\x3\x2\x2\x2\x804\x802\x3\x2\x2\x2\x805"+ + "\x806\x5\x247\x124\x2\x806\x807\x5\x241\x121\x2\x807\x1BE\x3\x2\x2\x2"+ + "\x808\x809\a]\x2\x2\x809\x1C0\x3\x2\x2\x2\x80A\x80B\a_\x2\x2\x80B\x1C2"+ + "\x3\x2\x2\x2\x80C\x812\a$\x2\x2\x80D\x811\n\x2\x2\x2\x80E\x80F\a$\x2\x2"+ + "\x80F\x811\a$\x2\x2\x810\x80D\x3\x2\x2\x2\x810\x80E\x3\x2\x2\x2\x811\x814"+ + "\x3\x2\x2\x2\x812\x810\x3\x2\x2\x2\x812\x813\x3\x2\x2\x2\x813\x815\x3"+ + "\x2\x2\x2\x814\x812\x3\x2\x2\x2\x815\x816\a$\x2\x2\x816\x1C4\x3\x2\x2"+ + "\x2\x817\x818\a(\x2\x2\x818\x819\aQ\x2\x2\x819\x81B\x3\x2\x2\x2\x81A\x81C"+ + "\t\x3\x2\x2\x81B\x81A\x3\x2\x2\x2\x81C\x81D\x3\x2\x2\x2\x81D\x81B\x3\x2"+ + "\x2\x2\x81D\x81E\x3\x2\x2\x2\x81E\x820\x3\x2\x2\x2\x81F\x821\a(\x2\x2"+ + "\x820\x81F\x3\x2\x2\x2\x820\x821\x3\x2\x2\x2\x821\x1C6\x3\x2\x2\x2\x822"+ + "\x823\a(\x2\x2\x823\x824\aJ\x2\x2\x824\x826\x3\x2\x2\x2\x825\x827\t\x4"+ + "\x2\x2\x826\x825\x3\x2\x2\x2\x827\x828\x3\x2\x2\x2\x828\x826\x3\x2\x2"+ + "\x2\x828\x829\x3\x2\x2\x2\x829\x82B\x3\x2\x2\x2\x82A\x82C\a(\x2\x2\x82B"+ + "\x82A\x3\x2\x2\x2\x82B\x82C\x3\x2\x2\x2\x82C\x1C8\x3\x2\x2\x2\x82D\x82F"+ + "\x5\x1CB\xE6\x2\x82E\x830\x5\x1D1\xE9\x2\x82F\x82E\x3\x2\x2\x2\x82F\x830"+ + "\x3\x2\x2\x2\x830\x835\x3\x2\x2\x2\x831\x832\x5\x1D9\xED\x2\x832\x833"+ + "\x5\x1D1\xE9\x2\x833\x835\x3\x2\x2\x2\x834\x82D\x3\x2\x2\x2\x834\x831"+ + "\x3\x2\x2\x2\x835\x1CA\x3\x2\x2\x2\x836\x837\x5\x1D9\xED\x2\x837\x838"+ + "\x5\x1D3\xEA\x2\x838\x847\x3\x2\x2\x2\x839\x83A\x5\x1D9\xED\x2\x83A\x83C"+ + "\a\x30\x2\x2\x83B\x83D\x5\x1D9\xED\x2\x83C\x83B\x3\x2\x2\x2\x83C\x83D"+ + "\x3\x2\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x840\x5\x1D3\xEA\x2\x83F\x83E"+ + "\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x847\x3\x2\x2\x2\x841\x842\a\x30"+ + "\x2\x2\x842\x844\x5\x1D9\xED\x2\x843\x845\x5\x1D3\xEA\x2\x844\x843\x3"+ + "\x2\x2\x2\x844\x845\x3\x2\x2\x2\x845\x847\x3\x2\x2\x2\x846\x836\x3\x2"+ + "\x2\x2\x846\x839\x3\x2\x2\x2\x846\x841\x3\x2\x2\x2\x847\x1CC\x3\x2\x2"+ + "\x2\x848\x84A\x5\x1D9\xED\x2\x849\x84B\x5\x1CF\xE8\x2\x84A\x849\x3\x2"+ + "\x2\x2\x84A\x84B\x3\x2\x2\x2\x84B\x1CE\x3\x2\x2\x2\x84C\x84D\t\x5\x2\x2"+ + "\x84D\x1D0\x3\x2\x2\x2\x84E\x84F\t\x6\x2\x2\x84F\x1D2\x3\x2\x2\x2\x850"+ + "\x852\x5\x1D5\xEB\x2\x851\x853\x5\x1D7\xEC\x2\x852\x851\x3\x2\x2\x2\x852"+ + "\x853\x3\x2\x2\x2\x853\x855\x3\x2\x2\x2\x854\x856\x5\x233\x11A\x2\x855"+ + "\x854\x3\x2\x2\x2\x856\x857\x3\x2\x2\x2\x857\x855\x3\x2\x2\x2\x857\x858"+ + "\x3\x2\x2\x2\x858\x1D4\x3\x2\x2\x2\x859\x85A\t\a\x2\x2\x85A\x1D6\x3\x2"+ + "\x2\x2\x85B\x85C\t\b\x2\x2\x85C\x1D8\x3\x2\x2\x2\x85D\x85F\x5\x233\x11A"+ + "\x2\x85E\x85D\x3\x2\x2\x2\x85F\x860\x3\x2\x2\x2\x860\x85E\x3\x2\x2\x2"+ + "\x860\x861\x3\x2\x2\x2\x861\x1DA\x3\x2\x2\x2\x862\x863\a%\x2\x2\x863\x864"+ + "\x5\x1DD\xEF\x2\x864\x865\a%\x2\x2\x865\x1DC\x3\x2\x2\x2\x866\x868\x5"+ + "\x1DF\xF0\x2\x867\x869\x5\x229\x115\x2\x868\x867\x3\x2\x2\x2\x868\x869"+ + "\x3\x2\x2\x2\x869\x86A\x3\x2\x2\x2\x86A\x86B\x5\x1EB\xF6\x2\x86B\x86F"+ + "\x3\x2\x2\x2\x86C\x86F\x5\x1DF\xF0\x2\x86D\x86F\x5\x1EB\xF6\x2\x86E\x866"+ + "\x3\x2\x2\x2\x86E\x86C\x3\x2\x2\x2\x86E\x86D\x3\x2\x2\x2\x86F\x1DE\x3"+ + "\x2\x2\x2\x870\x871\x5\x1E1\xF1\x2\x871\x872\x5\x1E3\xF2\x2\x872\x876"+ + "\x5\x1E1\xF1\x2\x873\x874\x5\x1E3\xF2\x2\x874\x875\x5\x1E1\xF1\x2\x875"+ + "\x877\x3\x2\x2\x2\x876\x873\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x1E0"+ + "\x3\x2\x2\x2\x878\x87A\x5\x233\x11A\x2\x879\x878\x3\x2\x2\x2\x87A\x87B"+ + "\x3\x2\x2\x2\x87B\x879\x3\x2\x2\x2\x87B\x87C\x3\x2\x2\x2\x87C\x87F\x3"+ + "\x2\x2\x2\x87D\x87F\x5\x1E5\xF3\x2\x87E\x879\x3\x2\x2\x2\x87E\x87D\x3"+ + "\x2\x2\x2\x87F\x1E2\x3\x2\x2\x2\x880\x882\x5\x229\x115\x2\x881\x880\x3"+ + "\x2\x2\x2\x881\x882\x3\x2\x2\x2\x882\x884\x3\x2\x2\x2\x883\x885\t\t\x2"+ + "\x2\x884\x883\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887\x3\x2\x2\x2"+ + "\x886\x888\x5\x229\x115\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3\x2\x2\x2"+ + "\x888\x1E4\x3\x2\x2\x2\x889\x88C\x5\x1E7\xF4\x2\x88A\x88C\x5\x1E9\xF5"+ + "\x2\x88B\x889\x3\x2\x2\x2\x88B\x88A\x3\x2\x2\x2\x88C\x1E6\x3\x2\x2\x2"+ + "\x88D\x89A\x5\x1F1\xF9\x2\x88E\x89A\x5\x1F3\xFA\x2\x88F\x89A\x5\x1F5\xFB"+ + "\x2\x890\x89A\x5\x1F7\xFC\x2\x891\x89A\x5\x1F9\xFD\x2\x892\x89A\x5\x1FB"+ + "\xFE\x2\x893\x89A\x5\x1FD\xFF\x2\x894\x89A\x5\x1FF\x100\x2\x895\x89A\x5"+ + "\x201\x101\x2\x896\x89A\x5\x203\x102\x2\x897\x89A\x5\x205\x103\x2\x898"+ + "\x89A\x5\x207\x104\x2\x899\x88D\x3\x2\x2\x2\x899\x88E\x3\x2\x2\x2\x899"+ + "\x88F\x3\x2\x2\x2\x899\x890\x3\x2\x2\x2\x899\x891\x3\x2\x2\x2\x899\x892"+ + "\x3\x2\x2\x2\x899\x893\x3\x2\x2\x2\x899\x894\x3\x2\x2\x2\x899\x895\x3"+ + "\x2\x2\x2\x899\x896\x3\x2\x2\x2\x899\x897\x3\x2\x2\x2\x899\x898\x3\x2"+ + "\x2\x2\x89A\x1E8\x3\x2\x2\x2\x89B\x8A7\x5\x209\x105\x2\x89C\x8A7\x5\x20B"+ + "\x106\x2\x89D\x8A7\x5\x20D\x107\x2\x89E\x8A7\x5\x20F\x108\x2\x89F\x8A7"+ + "\x5\x211\x109\x2\x8A0\x8A7\x5\x213\x10A\x2\x8A1\x8A7\x5\x215\x10B\x2\x8A2"+ + "\x8A7\x5\x217\x10C\x2\x8A3\x8A7\x5\x219\x10D\x2\x8A4\x8A7\x5\x21B\x10E"+ + "\x2\x8A5\x8A7\x5\x21D\x10F\x2\x8A6\x89B\x3\x2\x2\x2\x8A6\x89C\x3\x2\x2"+ + "\x2\x8A6\x89D\x3\x2\x2\x2\x8A6\x89E\x3\x2\x2\x2\x8A6\x89F\x3\x2\x2\x2"+ + "\x8A6\x8A0\x3\x2\x2\x2\x8A6\x8A1\x3\x2\x2\x2\x8A6\x8A2\x3\x2\x2\x2\x8A6"+ + "\x8A3\x3\x2\x2\x2\x8A6\x8A4\x3\x2\x2\x2\x8A6\x8A5\x3\x2\x2\x2\x8A7\x1EA"+ + "\x3\x2\x2\x2\x8A8\x8AA\x5\x233\x11A\x2\x8A9\x8A8\x3\x2\x2\x2\x8AA\x8AB"+ + "\x3\x2\x2\x2\x8AB\x8A9\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC\x8AD\x3"+ + "\x2\x2\x2\x8AD\x8AE\x5\x1EF\xF8\x2\x8AE\x8C6\x3\x2\x2\x2\x8AF\x8B1\x5"+ + "\x233\x11A\x2\x8B0\x8AF\x3\x2\x2\x2\x8B1\x8B2\x3\x2\x2\x2\x8B2\x8B0\x3"+ + "\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\x8B6\x5\x1ED"+ + "\xF7\x2\x8B5\x8B7\x5\x233\x11A\x2\x8B6\x8B5\x3\x2\x2\x2\x8B7\x8B8\x3\x2"+ + "\x2\x2\x8B8\x8B6\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2\x8B9\x8C0\x3\x2\x2"+ + "\x2\x8BA\x8BC\x5\x1ED\xF7\x2\x8BB\x8BD\x5\x233\x11A\x2\x8BC\x8BB\x3\x2"+ + "\x2\x2\x8BD\x8BE\x3\x2\x2\x2\x8BE\x8BC\x3\x2\x2\x2\x8BE\x8BF\x3\x2\x2"+ + "\x2\x8BF\x8C1\x3\x2\x2\x2\x8C0\x8BA\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2"+ + "\x8C1\x8C3\x3\x2\x2\x2\x8C2\x8C4\x5\x1EF\xF8\x2\x8C3\x8C2\x3\x2\x2\x2"+ + "\x8C3\x8C4\x3\x2\x2\x2\x8C4\x8C6\x3\x2\x2\x2\x8C5\x8A9\x3\x2\x2\x2\x8C5"+ + "\x8B0\x3\x2\x2\x2\x8C6\x1EC\x3\x2\x2\x2\x8C7\x8C9\x5\x229\x115\x2\x8C8"+ + "\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3\x2\x2\x2\x8C9\x8CA\x3\x2\x2\x2\x8CA\x8CC"+ + "\t\n\x2\x2\x8CB\x8CD\x5\x229\x115\x2\x8CC\x8CB\x3\x2\x2\x2\x8CC\x8CD\x3"+ + "\x2\x2\x2\x8CD\x1EE\x3\x2\x2\x2\x8CE\x8D0\x5\x229\x115\x2\x8CF\x8CE\x3"+ + "\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2\x8D0\x8D9\x3\x2\x2\x2\x8D1\x8D2\x5\x237"+ + "\x11C\x2\x8D2\x8D3\x5\x24F\x128\x2\x8D3\x8DA\x3\x2\x2\x2\x8D4\x8D5\x5"+ + "\x255\x12B\x2\x8D5\x8D6\x5\x24F\x128\x2\x8D6\x8DA\x3\x2\x2\x2\x8D7\x8DA"+ + "\x5\x237\x11C\x2\x8D8\x8DA\x5\x255\x12B\x2\x8D9\x8D1\x3\x2\x2\x2\x8D9"+ + "\x8D4\x3\x2\x2\x2\x8D9\x8D7\x3\x2\x2\x2\x8D9\x8D8\x3\x2\x2\x2\x8DA\x1F0"+ + "\x3\x2\x2\x2\x8DB\x8DC\x5\x249\x125\x2\x8DC\x8DD\x5\x237\x11C\x2\x8DD"+ + "\x8DE\x5\x251\x129\x2\x8DE\x8DF\x5\x25F\x130\x2\x8DF\x8E0\x5\x237\x11C"+ + "\x2\x8E0\x8E1\x5\x259\x12D\x2\x8E1\x8E2\x5\x267\x134\x2\x8E2\x1F2\x3\x2"+ + "\x2\x2\x8E3\x8E4\x5\x241\x121\x2\x8E4\x8E5\x5\x23F\x120\x2\x8E5\x8E6\x5"+ + "\x239\x11D\x2\x8E6\x8E7\x5\x259\x12D\x2\x8E7\x8E8\x5\x25F\x130\x2\x8E8"+ + "\x8E9\x5\x237\x11C\x2\x8E9\x8EA\x5\x259\x12D\x2\x8EA\x8EB\x5\x267\x134"+ + "\x2\x8EB\x1F4\x3\x2\x2\x2\x8EC\x8ED\x5\x24F\x128\x2\x8ED\x8EE\x5\x237"+ + "\x11C\x2\x8EE\x8EF\x5\x259\x12D\x2\x8EF\x8F0\x5\x23B\x11E\x2\x8F0\x8F1"+ + "\x5\x245\x123\x2\x8F1\x1F6\x3\x2\x2\x2\x8F2\x8F3\x5\x237\x11C\x2\x8F3"+ + "\x8F4\x5\x255\x12B\x2\x8F4\x8F5\x5\x259\x12D\x2\x8F5\x8F6\x5\x247\x124"+ + "\x2\x8F6\x8F7\x5\x24D\x127\x2\x8F7\x1F8\x3\x2\x2\x2\x8F8\x8F9\x5\x24F"+ + "\x128\x2\x8F9\x8FA\x5\x237\x11C\x2\x8FA\x8FB\x5\x267\x134\x2\x8FB\x1FA"+ + "\x3\x2\x2\x2\x8FC\x8FD\x5\x249\x125\x2\x8FD\x8FE\x5\x25F\x130\x2\x8FE"+ + "\x8FF\x5\x251\x129\x2\x8FF\x900\x5\x23F\x120\x2\x900\x1FC\x3\x2\x2\x2"+ + "\x901\x902\x5\x249\x125\x2\x902\x903\x5\x25F\x130\x2\x903\x904\x5\x24D"+ + "\x127\x2\x904\x905\x5\x267\x134\x2\x905\x1FE\x3\x2\x2\x2\x906\x907\x5"+ + "\x237\x11C\x2\x907\x908\x5\x25F\x130\x2\x908\x909\x5\x243\x122\x2\x909"+ + "\x90A\x5\x25F\x130\x2\x90A\x90B\x5\x25B\x12E\x2\x90B\x90C\x5\x25D\x12F"+ + "\x2\x90C\x200\x3\x2\x2\x2\x90D\x90E\x5\x25B\x12E\x2\x90E\x90F\x5\x23F"+ + "\x120\x2\x90F\x910\x5\x255\x12B\x2\x910\x911\x5\x25D\x12F\x2\x911\x912"+ + "\x5\x23F\x120\x2\x912\x913\x5\x24F\x128\x2\x913\x914\x5\x239\x11D\x2\x914"+ + "\x915\x5\x23F\x120\x2\x915\x916\x5\x259\x12D\x2\x916\x202\x3\x2\x2\x2"+ + "\x917\x918\x5\x253\x12A\x2\x918\x919\x5\x23B\x11E\x2\x919\x91A\x5\x25D"+ + "\x12F\x2\x91A\x91B\x5\x253\x12A\x2\x91B\x91C\x5\x239\x11D\x2\x91C\x91D"+ + "\x5\x23F\x120\x2\x91D\x91E\x5\x259\x12D\x2\x91E\x204\x3\x2\x2\x2\x91F"+ + "\x920\x5\x251\x129\x2\x920\x921\x5\x253\x12A\x2\x921\x922\x5\x261\x131"+ + "\x2\x922\x923\x5\x23F\x120\x2\x923\x924\x5\x24F\x128\x2\x924\x925\x5\x239"+ + "\x11D\x2\x925\x926\x5\x23F\x120\x2\x926\x927\x5\x259\x12D\x2\x927\x206"+ + "\x3\x2\x2\x2\x928\x929\x5\x23D\x11F\x2\x929\x92A\x5\x23F\x120\x2\x92A"+ + "\x92B\x5\x23B\x11E\x2\x92B\x92C\x5\x23F\x120\x2\x92C\x92D\x5\x24F\x128"+ + "\x2\x92D\x92E\x5\x239\x11D\x2\x92E\x92F\x5\x23F\x120\x2\x92F\x930\x5\x259"+ + "\x12D\x2\x930\x208\x3\x2\x2\x2\x931\x932\x5\x249\x125\x2\x932\x933\x5"+ + "\x237\x11C\x2\x933\x934\x5\x251\x129\x2\x934\x20A\x3\x2\x2\x2\x935\x936"+ + "\x5\x241\x121\x2\x936\x937\x5\x23F\x120\x2\x937\x938\x5\x239\x11D\x2\x938"+ + "\x20C\x3\x2\x2\x2\x939\x93A\x5\x24F\x128\x2\x93A\x93B\x5\x237\x11C\x2"+ + "\x93B\x93C\x5\x259\x12D\x2\x93C\x20E\x3\x2\x2\x2\x93D\x93E\x5\x237\x11C"+ + "\x2\x93E\x93F\x5\x255\x12B\x2\x93F\x940\x5\x259\x12D\x2\x940\x210\x3\x2"+ + "\x2\x2\x941\x942\x5\x249\x125\x2\x942\x943\x5\x25F\x130\x2\x943\x944\x5"+ + "\x251\x129\x2\x944\x212\x3\x2\x2\x2\x945\x946\x5\x249\x125\x2\x946\x947"+ + "\x5\x25F\x130\x2\x947\x948\x5\x24D\x127\x2\x948\x214\x3\x2\x2\x2\x949"+ + "\x94A\x5\x237\x11C\x2\x94A\x94B\x5\x25F\x130\x2\x94B\x94C\x5\x243\x122"+ + "\x2\x94C\x216\x3\x2\x2\x2\x94D\x94E\x5\x25B\x12E\x2\x94E\x94F\x5\x23F"+ + "\x120\x2\x94F\x950\x5\x255\x12B\x2\x950\x218\x3\x2\x2\x2\x951\x952\x5"+ + "\x253\x12A\x2\x952\x953\x5\x23B\x11E\x2\x953\x954\x5\x25D\x12F\x2\x954"+ + "\x21A\x3\x2\x2\x2\x955\x956\x5\x251\x129\x2\x956\x957\x5\x253\x12A\x2"+ + "\x957\x958\x5\x261\x131\x2\x958\x21C\x3\x2\x2\x2\x959\x95A\x5\x23D\x11F"+ + "\x2\x95A\x95B\x5\x23F\x120\x2\x95B\x95C\x5\x23B\x11E\x2\x95C\x21E\x3\x2"+ + "\x2\x2\x95D\x95E\a\xF\x2\x2\x95E\x961\a\f\x2\x2\x95F\x961\t\v\x2\x2\x960"+ + "\x95D\x3\x2\x2\x2\x960\x95F\x3\x2\x2\x2\x961\x220\x3\x2\x2\x2\x962\x964"+ + "\x5Q)\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2\x2\x964\x965\x3\x2\x2"+ + "\x2\x965\x966\x5\x153\xAA\x2\x966\x96B\x5\x229\x115\x2\x967\x96A\x5\x22D"+ + "\x117\x2\x968\x96A\n\v\x2\x2\x969\x967\x3\x2\x2\x2\x969\x968\x3\x2\x2"+ + "\x2\x96A\x96D\x3\x2\x2\x2\x96B\x969\x3\x2\x2\x2\x96B\x96C\x3\x2\x2\x2"+ + "\x96C\x222\x3\x2\x2\x2\x96D\x96B\x3\x2\x2\x2\x96E\x971\x5\x225\x113\x2"+ + "\x96F\x972\x5\x22D\x117\x2\x970\x972\n\f\x2\x2\x971\x96F\x3\x2\x2\x2\x971"+ + "\x970\x3\x2\x2\x2\x972\x977\x3\x2\x2\x2\x973\x976\x5\x22D\x117\x2\x974"+ + "\x976\n\v\x2\x2\x975\x973\x3\x2\x2\x2\x975\x974\x3\x2\x2\x2\x976\x979"+ + "\x3\x2\x2\x2\x977\x975\x3\x2\x2\x2\x977\x978\x3\x2\x2\x2\x978\x224\x3"+ + "\x2\x2\x2\x979\x977\x3\x2\x2\x2\x97A\x97B\a)\x2\x2\x97B\x226\x3\x2\x2"+ + "\x2\x97C\x97D\a\x61\x2\x2\x97D\x228\x3\x2\x2\x2\x97E\x97F\t\r\x2\x2\x97F"+ + "\x22A\x3\x2\x2\x2\x980\x984\n\xE\x2\x2\x981\x983\n\xF\x2\x2\x982\x981"+ + "\x3\x2\x2\x2\x983\x986\x3\x2\x2\x2\x984\x982\x3\x2\x2\x2\x984\x985\x3"+ + "\x2\x2\x2\x985\x990\x3\x2\x2\x2\x986\x984\x3\x2\x2\x2\x987\x989\x5\x1BF"+ + "\xE0\x2\x988\x98A\n\x10\x2\x2\x989\x988\x3\x2\x2\x2\x98A\x98B\x3\x2\x2"+ + "\x2\x98B\x989\x3\x2\x2\x2\x98B\x98C\x3\x2\x2\x2\x98C\x98D\x3\x2\x2\x2"+ + "\x98D\x98E\x5\x1C1\xE1\x2\x98E\x990\x3\x2\x2\x2\x98F\x980\x3\x2\x2\x2"+ + "\x98F\x987\x3\x2\x2\x2\x990\x22C\x3\x2\x2\x2\x991\x993\t\r\x2\x2\x992"+ + "\x991\x3\x2\x2\x2\x993\x996\x3\x2\x2\x2\x994\x992\x3\x2\x2\x2\x994\x995"+ + "\x3\x2\x2\x2\x995\x997\x3\x2\x2\x2\x996\x994\x3\x2\x2\x2\x997\x99B\x5"+ + "\x227\x114\x2\x998\x99A\t\r\x2\x2\x999\x998\x3\x2\x2\x2\x99A\x99D\x3\x2"+ + "\x2\x2\x99B\x999\x3\x2\x2\x2\x99B\x99C\x3\x2\x2\x2\x99C\x99F\x3\x2\x2"+ + "\x2\x99D\x99B\x3\x2\x2\x2\x99E\x9A0\a\xF\x2\x2\x99F\x99E\x3\x2\x2\x2\x99F"+ + "\x9A0\x3\x2\x2\x2\x9A0\x9A1\x3\x2\x2\x2\x9A1\x9A2\a\f\x2\x2\x9A2\x22E"+ + "\x3\x2\x2\x2\x9A3\x9A5\a}\x2\x2\x9A4\x9A6\t\x4\x2\x2\x9A5\x9A4\x3\x2\x2"+ + "\x2\x9A6\x9A7\x3\x2\x2\x2\x9A7\x9A5\x3\x2\x2\x2\x9A7\x9A8\x3\x2\x2\x2"+ + "\x9A8\x9A9\x3\x2\x2\x2\x9A9\x9AB\a/\x2\x2\x9AA\x9AC\t\x4\x2\x2\x9AB\x9AA"+ + "\x3\x2\x2\x2\x9AC\x9AD\x3\x2\x2\x2\x9AD\x9AB\x3\x2\x2\x2\x9AD\x9AE\x3"+ + "\x2\x2\x2\x9AE\x9AF\x3\x2\x2\x2\x9AF\x9B1\a/\x2\x2\x9B0\x9B2\t\x4\x2\x2"+ + "\x9B1\x9B0\x3\x2\x2\x2\x9B2\x9B3\x3\x2\x2\x2\x9B3\x9B1\x3\x2\x2\x2\x9B3"+ + "\x9B4\x3\x2\x2\x2\x9B4\x9B5\x3\x2\x2\x2\x9B5\x9B7\a/\x2\x2\x9B6\x9B8\t"+ + "\x4\x2\x2\x9B7\x9B6\x3\x2\x2\x2\x9B8\x9B9\x3\x2\x2\x2\x9B9\x9B7\x3\x2"+ + "\x2\x2\x9B9\x9BA\x3\x2\x2\x2\x9BA\x9BB\x3\x2\x2\x2\x9BB\x9BD\a/\x2\x2"+ + "\x9BC\x9BE\t\x4\x2\x2\x9BD\x9BC\x3\x2\x2\x2\x9BE\x9BF\x3\x2\x2\x2\x9BF"+ + "\x9BD\x3\x2\x2\x2\x9BF\x9C0\x3\x2\x2\x2\x9C0\x9C1\x3\x2\x2\x2\x9C1\x9C2"+ + "\a\x7F\x2\x2\x9C2\x230\x3\x2\x2\x2\x9C3\x9C4\t\x11\x2\x2\x9C4\x232\x3"+ + "\x2\x2\x2\x9C5\x9C6\t\x12\x2\x2\x9C6\x234\x3\x2\x2\x2\x9C7\x9C8\t\x13"+ + "\x2\x2\x9C8\x236\x3\x2\x2\x2\x9C9\x9CA\t\x14\x2\x2\x9CA\x238\x3\x2\x2"+ + "\x2\x9CB\x9CC\t\x15\x2\x2\x9CC\x23A\x3\x2\x2\x2\x9CD\x9CE\t\x16\x2\x2"+ + "\x9CE\x23C\x3\x2\x2\x2\x9CF\x9D0\t\x17\x2\x2\x9D0\x23E\x3\x2\x2\x2\x9D1"+ + "\x9D2\t\x18\x2\x2\x9D2\x240\x3\x2\x2\x2\x9D3\x9D4\t\x19\x2\x2\x9D4\x242"+ + "\x3\x2\x2\x2\x9D5\x9D6\t\x1A\x2\x2\x9D6\x244\x3\x2\x2\x2\x9D7\x9D8\t\x1B"+ + "\x2\x2\x9D8\x246\x3\x2\x2\x2\x9D9\x9DA\t\x1C\x2\x2\x9DA\x248\x3\x2\x2"+ + "\x2\x9DB\x9DC\t\x1D\x2\x2\x9DC\x24A\x3\x2\x2\x2\x9DD\x9DE\t\x1E\x2\x2"+ + "\x9DE\x24C\x3\x2\x2\x2\x9DF\x9E0\t\x1F\x2\x2\x9E0\x24E\x3\x2\x2\x2\x9E1"+ + "\x9E2\t \x2\x2\x9E2\x250\x3\x2\x2\x2\x9E3\x9E4\t!\x2\x2\x9E4\x252\x3\x2"+ + "\x2\x2\x9E5\x9E6\t\"\x2\x2\x9E6\x254\x3\x2\x2\x2\x9E7\x9E8\t#\x2\x2\x9E8"+ + "\x256\x3\x2\x2\x2\x9E9\x9EA\t$\x2\x2\x9EA\x258\x3\x2\x2\x2\x9EB\x9EC\t"+ + "%\x2\x2\x9EC\x25A\x3\x2\x2\x2\x9ED\x9EE\t&\x2\x2\x9EE\x25C\x3\x2\x2\x2"+ + "\x9EF\x9F0\t\'\x2\x2\x9F0\x25E\x3\x2\x2\x2\x9F1\x9F2\t(\x2\x2\x9F2\x260"+ + "\x3\x2\x2\x2\x9F3\x9F4\t)\x2\x2\x9F4\x262\x3\x2\x2\x2\x9F5\x9F6\t*\x2"+ + "\x2\x9F6\x264\x3\x2\x2\x2\x9F7\x9F8\t+\x2\x2\x9F8\x266\x3\x2\x2\x2\x9F9"+ + "\x9FA\t,\x2\x2\x9FA\x268\x3\x2\x2\x2\x9FB\x9FC\t-\x2\x2\x9FC\x26A\x3\x2"+ + "\x2\x2\x9FD\x9FE\v\x2\x2\x2\x9FE\x26C\x3\x2\x2\x2\x44\x2\x7AA\x7B2\x7C0"+ + "\x7CB\x7D4\x7DE\x7EC\x7F8\x802\x810\x812\x81D\x820\x828\x82B\x82F\x834"+ + "\x83C\x83F\x844\x846\x84A\x852\x857\x860\x868\x86E\x876\x87B\x87E\x881"+ + "\x884\x887\x88B\x899\x8A6\x8AB\x8B2\x8B8\x8BE\x8C0\x8C3\x8C5\x8C8\x8CC"+ + "\x8CF\x8D9\x960\x963\x969\x96B\x971\x975\x977\x984\x98B\x98F\x994\x99B"+ + "\x99F\x9A7\x9AD\x9B3\x9B9\x9BF\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBALexer.g4 b/Rubberduck.Parsing/Grammar/VBALexer.g4 index 0398096eb2..72e4e643e1 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.g4 +++ b/Rubberduck.Parsing/Grammar/VBALexer.g4 @@ -70,11 +70,9 @@ ADDRESSOF : A D D R E S S O F; ALIAS : A L I A S; AND : A N D; ATTRIBUTE : A T T R I B U T E; -APPACTIVATE : A P P A C T I V A T E; APPEND : A P P E N D; AS : A S; BEGIN : B E G I N; -BEEP : B E E P; BINARY : B I N A R Y; BOOLEAN : B O O L E A N; BYVAL : B Y V A L; @@ -82,8 +80,6 @@ BYREF : B Y R E F; BYTE : B Y T E; CALL : C A L L; CASE : C A S E; -CHDIR : C H D I R; -CHDRIVE : C H D R I V E; CLASS : C L A S S; CLOSE : C L O S E; CONST : C O N S T; @@ -103,7 +99,6 @@ DEFOBJ : D E F O B J; DEFSNG : D E F S N G; DEFSTR : D E F S T R; DEFVAR : D E F V A R; -DELETESETTING : D E L E T E S E T T I N G; DIM : D I M; DO : D O; DOUBLE : D O U B L E; @@ -131,7 +126,6 @@ EXIT_FUNCTION : E X I T WS F U N C T I O N; EXIT_PROPERTY : E X I T WS P R O P E R T Y; EXIT_SUB : E X I T WS S U B; FALSE : F A L S E; -FILECOPY : F I L E C O P Y; FRIEND : F R I E N D; FOR : F O R; FUNCTION : F U N C T I O N; @@ -146,8 +140,6 @@ IN : I N; INPUT : I N P U T; IS : I S; INTEGER : I N T E G E R; -KILL: K I L L; -LOAD : L O A D; LOCK : L O C K; LONG : L O N G; LOOP : L O O P; @@ -161,9 +153,7 @@ LOCK_READ_WRITE : L O C K WS R E A D WS W R I T E; LSET : L S E T; ME : M E; MID : M I D; -MKDIR : M K D I R; MOD : M O D; -NAME : N A M E; NEXT : N E X T; NEW : N E W; NOT : N O T; @@ -191,7 +181,6 @@ PTRSAFE : P T R S A F E; PUBLIC : P U B L I C; PUT : P U T; RANDOM : R A N D O M; -RANDOMIZE : R A N D O M I Z E; RAISEEVENT : R A I S E E V E N T; READ : R E A D; READ_WRITE : R E A D WS W R I T E; @@ -200,15 +189,10 @@ REM : R E M; RESET : R E S E T; RESUME : R E S U M E; RETURN : R E T U R N; -RMDIR : R M D I R; RSET : R S E T; -SAVEPICTURE : S A V E P I C T U R E; -SAVESETTING : S A V E S E T T I N G; SEEK : S E E K; SELECT : S E L E C T; -SENDKEYS : S E N D K E Y S; SET : S E T; -SETATTR : S E T A T T R; SHARED : S H A R E D; SINGLE : S I N G L E; SPC : S P C; @@ -220,12 +204,10 @@ SUB : S U B; TAB : T A B; TEXT : T E X T; THEN : T H E N; -TIME : T I M E; TO : T O; TRUE : T R U E; TYPE : T Y P E; TYPEOF : T Y P E O F; -UNLOAD : U N L O A D; UNLOCK : U N L O C K; UNTIL : U N T I L; VARIANT : V A R I A N T; diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index c3ba390bc1..6d38c2f5b3 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -29,47 +29,45 @@ namespace Rubberduck.Parsing.Grammar { [System.CLSCompliant(false)] public partial class VBAParser : Parser { public const int - PRINT=166, ELSEIF=93, CBYTE=5, CLOSE=69, STATIC=196, MINUS=230, OPTION_EXPLICIT=159, - L_SQUARE_BRACKET=241, SETATTR=192, DOEVENTS=21, HASHENDIF=240, DATELITERAL=248, - ERROR=107, NOTHING=151, EACH=91, SUB=200, FILECOPY=115, STOP=198, LPAREN=228, - MID=144, CVERR=19, BEEP=58, AS=56, END_PROPERTY=98, AT=45, DATABASE=71, - GOSUB=121, CSNG=15, HASHCONST=236, CHDIR=66, POW=234, DOLLAR=47, PROPERTY_LET=169, - THEN=203, XOR=220, EXIT_FOR=110, DEFINT=79, HASHIF=237, UNLOCK=210, CALL=64, - LOCK_READ=139, SET=191, LOCK_READ_WRITE=141, ABS=1, LSET=142, RAISEEVENT=176, - MIDBTYPESUFFIX=32, SEEK=188, LONG=133, CBOOL=4, LIB=136, DIM=88, APPEND=55, - MKDIR=145, OPEN=156, DIV=222, PROPERTY_SET=170, CDBL=8, PERCENT=46, SENDKEYS=190, - END_SELECT=99, STRING=199, HASHELSEIF=238, SGN=37, REM=180, TO=205, DEFDBL=77, - BYVAL=61, FRIEND=116, LOOP=134, DELETESETTING=87, CLASS=68, DO=89, VARIANT=212, - END_WITH=102, DEFBOOL=74, OPTIONAL=157, ADDRESSOF=50, CONST=70, RSET=185, - INTEGER=129, CDEC=9, REMCOMMENT=250, ATTRIBUTE=53, OUTPUT=163, FOR=117, - PTRSAFE=171, EQ=224, BOOLEAN=60, CIRCLE=11, NAME=147, END_FUNCTION=96, - DEFSNG=84, DEFBYTE=75, NOT=150, CINT=10, SAVESETTING=187, END=103, PRESERVE=165, - ON_LOCAL_ERROR=155, FLOATLITERAL=246, HASHELSE=239, LOAD=131, BINARY=59, - LENB=28, RETURN=183, EXCLAMATIONPOINT=42, NEXT=148, GLOBAL=120, INPUTB=24, - IDENTIFIER=255, WS=254, EMPTY=94, CURRENCY=17, CCUR=6, MOD=146, WITHEVENTS=218, - COLON=40, DEFLNGLNG=81, STEP=197, TIME=204, OPTION_BASE=158, GT=226, PUT=173, - WITH=217, CSTR=16, LOCK_WRITE=140, LINE_CONTINUATION=256, TYPEOF=208, - DEFVAR=86, RMDIR=184, DEFLNG=80, UBOUND=38, FALSE=114, ERRORCHAR=258, - UNDERSCORE=253, INTEGERLITERAL=247, END_IF=97, LOCK=132, TEXT=202, SINGLEQUOTE=252, - SAVEPICTURE=186, MULT=231, SEMICOLON=41, BYTE=63, HEXLITERAL=245, ELSE=92, - IF=123, TYPE=207, AMPERSAND=48, DEFLNGPTR=82, ENUM=104, DEFOBJ=83, IN=126, - CHDRIVE=67, OPTION=34, DOT=43, EXIT_DO=109, GUIDLITERAL=257, IS=128, EQV=105, - WEND=214, FUNCTION=118, HASH=44, CASE=65, GEQ=225, GET=119, PUBLIC=172, - ON_ERROR=154, EXIT=22, MIDB=31, END_ENUM=95, GOTO=122, INTDIV=223, LONGPTR=30, - WIDTH=216, BEGIN=57, EXIT_SUB=113, ASSIGN=221, COMMENT=251, WRITE=219, - RANDOMIZE=175, DOUBLE=90, EXIT_PROPERTY=112, COMMA=39, RANDOM=174, PROPERTY_GET=168, - SELECT=189, PRIVATE=167, ERASE=106, TAB=201, BYREF=62, VERSION=213, NEQ=232, - END_TYPE=101, KILL=130, NEW=149, ARRAY=3, INPUT=127, SINGLE=194, UNLOAD=209, - ALIAS=51, SPC=195, LT=229, RESET=181, END_SUB=100, EVENT=108, READ_WRITE=178, - OPTION_COMPARE=160, ME=143, SCALE=36, CDATE=7, MIDTYPESUFFIX=33, NULL=152, - NEWLINE=249, TRUE=206, RPAREN=235, APPACTIVATE=54, IMP=124, STRINGLITERAL=243, - OCTLITERAL=244, READ=177, DATE=72, LIKE=137, AND=52, OPTION_PRIVATE_MODULE=161, - CLNGLNG=13, PLUS=233, ANY=2, RESUME=182, INT=25, SHARED=193, EXIT_FUNCTION=111, - PSET=35, ACCESS=49, LINE_INPUT=138, ON=153, OR=162, PARAMARRAY=164, LBOUND=26, - R_SQUARE_BRACKET=242, IMPLEMENTS=125, UNTIL=211, DEBUG=20, DEFCUR=78, - CLNGPTR=14, LONGLONG=29, DECLARE=73, DEFDATE=76, FIX=23, LEN=27, REDIM=179, - LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12, COLLECTION=259, - ENDIF=260, RESUME_NEXT=261; + PRINT=156, ELSEIF=88, CBYTE=5, CLOSE=65, STATIC=180, MINUS=212, OPTION_EXPLICIT=149, + L_SQUARE_BRACKET=223, DOEVENTS=21, HASHENDIF=222, DATELITERAL=230, ERROR=102, + NOTHING=141, EACH=86, SUB=184, STOP=182, LPAREN=210, MID=136, CVERR=19, + AS=55, END_PROPERTY=93, AT=45, DATABASE=67, GOSUB=115, CSNG=15, HASHCONST=218, + POW=216, DOLLAR=47, PROPERTY_LET=159, THEN=187, XOR=202, EXIT_FOR=105, + DEFINT=75, HASHIF=219, UNLOCK=192, CALL=62, LOCK_READ=131, SET=176, LOCK_READ_WRITE=133, + ABS=1, LSET=134, RAISEEVENT=165, MIDBTYPESUFFIX=32, SEEK=174, LONG=125, + CBOOL=4, LIB=128, DIM=83, APPEND=54, OPEN=146, DIV=204, PROPERTY_SET=160, + CDBL=8, PERCENT=46, END_SELECT=94, STRING=183, HASHELSEIF=220, SGN=37, + REM=169, TO=188, DEFDBL=73, BYVAL=59, FRIEND=110, LOOP=126, CLASS=64, + DO=84, VARIANT=194, END_WITH=97, DEFBOOL=70, OPTIONAL=147, ADDRESSOF=50, + CONST=66, RSET=173, INTEGER=123, CDEC=9, REMCOMMENT=232, ATTRIBUTE=53, + OUTPUT=153, FOR=111, PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91, + DEFSNG=80, DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145, + FLOATLITERAL=228, HASHELSE=221, BINARY=57, LENB=28, RETURN=172, EXCLAMATIONPOINT=42, + NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=237, WS=236, EMPTY=89, CURRENCY=17, + CCUR=6, MOD=137, WITHEVENTS=200, COLON=40, DEFLNGLNG=77, STEP=181, OPTION_BASE=148, + GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=238, + TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=240, + UNDERSCORE=235, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=234, + MULT=213, SEMICOLON=41, BYTE=61, HEXLITERAL=227, ELSE=87, IF=117, TYPE=190, + AMPERSAND=48, DEFLNGPTR=78, ENUM=99, DEFOBJ=79, IN=120, OPTION=34, DOT=43, + EXIT_DO=104, GUIDLITERAL=239, IS=122, EQV=100, WEND=196, FUNCTION=112, + HASH=44, CASE=63, GEQ=207, GET=113, PUBLIC=162, ON_ERROR=144, EXIT=22, + MIDB=31, END_ENUM=90, GOTO=116, INTDIV=205, LONGPTR=30, WIDTH=198, BEGIN=56, + EXIT_SUB=108, ASSIGN=203, COMMENT=233, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107, + COMMA=39, RANDOM=164, PROPERTY_GET=158, SELECT=175, PRIVATE=157, ERASE=101, + TAB=185, BYREF=60, VERSION=195, NEQ=214, END_TYPE=96, NEW=139, ARRAY=3, + INPUT=121, SINGLE=178, ALIAS=51, SPC=179, LT=211, RESET=170, END_SUB=95, + EVENT=103, READ_WRITE=167, OPTION_COMPARE=150, ME=135, SCALE=36, CDATE=7, + MIDTYPESUFFIX=33, NULL=142, NEWLINE=231, TRUE=189, RPAREN=217, IMP=118, + STRINGLITERAL=225, OCTLITERAL=226, READ=166, DATE=68, LIKE=129, AND=52, + OPTION_PRIVATE_MODULE=151, CLNGLNG=13, PLUS=215, ANY=2, RESUME=171, INT=25, + SHARED=177, EXIT_FUNCTION=106, PSET=35, ACCESS=49, LINE_INPUT=130, ON=143, + OR=152, PARAMARRAY=154, LBOUND=26, R_SQUARE_BRACKET=224, IMPLEMENTS=119, + UNTIL=193, DEBUG=20, DEFCUR=74, CLNGPTR=14, LONGLONG=29, DECLARE=69, DEFDATE=72, + FIX=23, LEN=27, REDIM=168, LEQ=209, DEFSTR=81, LET=127, WHILE=197, CVAR=18, + CLNG=12, COLLECTION=241, DELETESETTING=242, LOAD=243, RMDIR=244, SENDKEYS=245, + SETATTR=246, ENDIF=247, RESUME_NEXT=248; public static readonly string[] tokenNames = { "", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", @@ -77,107 +75,93 @@ public const int "INPUTB", "INT", "LBOUND", "LEN", "LENB", "LONGLONG", "LONGPTR", "MIDB", "MIDBTYPESUFFIX", "MIDTYPESUFFIX", "OPTION", "PSET", "SCALE", "SGN", "UBOUND", "','", "':'", "';'", "'!'", "'.'", "'#'", "'@'", "'%'", "'$'", "'&'", - "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", - "AS", "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", - "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "CONST", "DATABASE", - "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFCUR", - "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", "DEFOBJ", "DEFSNG", "DEFSTR", - "DEFVAR", "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", - "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", - "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", - "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", - "FALSE", "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", - "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", - "LOAD", "LOCK", "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", - "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", - "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", - "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", - "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", - "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", - "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", - "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", - "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", - "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", - "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", - "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", "LEQ", "'('", - "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", "HASHIF", - "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", + "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPEND", "AS", "BEGIN", + "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", "CASE", "CLASS", + "CLOSE", "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", + "DEFDATE", "DEFDBL", "DEFCUR", "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", + "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DIM", "DO", "DOUBLE", "EACH", + "ELSE", "ELSEIF", "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", + "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", + "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", + "EXIT_SUB", "FALSE", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", + "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "LOCK", + "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", + "LOCK_READ_WRITE", "LSET", "ME", "MID", "MOD", "NEXT", "NEW", "NOT", "NOTHING", + "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", + "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", + "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", + "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", "RAISEEVENT", "READ", + "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", "RETURN", "RSET", "SEEK", + "SELECT", "SET", "SHARED", "SINGLE", "SPC", "STATIC", "STEP", "STOP", + "STRING", "SUB", "TAB", "TEXT", "THEN", "TO", "TRUE", "TYPE", "TYPEOF", + "UNLOCK", "UNTIL", "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", + "WITHEVENTS", "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", + "LEQ", "'('", "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", + "HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER", - "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "COLLECTION", "ENDIF", - "RESUME_NEXT" + "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR", "COLLECTION", "DELETESETTING", + "LOAD", "RMDIR", "SENDKEYS", "SETATTR", "ENDIF", "RESUME_NEXT" }; public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_moduleBody = 9, RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_block = 12, - RULE_blockStmt = 13, RULE_appactivateStmt = 14, RULE_beepStmt = 15, RULE_chdirStmt = 16, - RULE_chdriveStmt = 17, RULE_closeStmt = 18, RULE_constStmt = 19, RULE_constSubStmt = 20, - RULE_dateStmt = 21, RULE_declareStmt = 22, RULE_deftypeStmt = 23, RULE_deleteSettingStmt = 24, - RULE_doLoopStmt = 25, RULE_endStmt = 26, RULE_enumerationStmt = 27, RULE_enumerationStmt_Constant = 28, - RULE_eraseStmt = 29, RULE_errorStmt = 30, RULE_eventStmt = 31, RULE_exitStmt = 32, - RULE_filecopyStmt = 33, RULE_forEachStmt = 34, RULE_forNextStmt = 35, - RULE_functionStmt = 36, RULE_getStmt = 37, RULE_goSubStmt = 38, RULE_goToStmt = 39, - RULE_ifThenElseStmt = 40, RULE_ifBlockStmt = 41, RULE_ifConditionStmt = 42, - RULE_ifElseIfBlockStmt = 43, RULE_ifElseBlockStmt = 44, RULE_implementsStmt = 45, - RULE_inputStmt = 46, RULE_killStmt = 47, RULE_letStmt = 48, RULE_lineInputStmt = 49, - RULE_loadStmt = 50, RULE_lockStmt = 51, RULE_lsetStmt = 52, RULE_midStmt = 53, - RULE_mkdirStmt = 54, RULE_nameStmt = 55, RULE_onErrorStmt = 56, RULE_onGoToStmt = 57, - RULE_onGoSubStmt = 58, RULE_openStmt = 59, RULE_outputList = 60, RULE_outputList_Expression = 61, - RULE_printStmt = 62, RULE_propertyGetStmt = 63, RULE_propertySetStmt = 64, - RULE_propertyLetStmt = 65, RULE_putStmt = 66, RULE_raiseEventStmt = 67, - RULE_randomizeStmt = 68, RULE_redimStmt = 69, RULE_redimSubStmt = 70, - RULE_resetStmt = 71, RULE_resumeStmt = 72, RULE_returnStmt = 73, RULE_rmdirStmt = 74, - RULE_rsetStmt = 75, RULE_savepictureStmt = 76, RULE_saveSettingStmt = 77, - RULE_seekStmt = 78, RULE_selectCaseStmt = 79, RULE_sC_Selection = 80, - RULE_sC_Case = 81, RULE_sC_Cond = 82, RULE_sendkeysStmt = 83, RULE_setattrStmt = 84, - RULE_setStmt = 85, RULE_stopStmt = 86, RULE_subStmt = 87, RULE_timeStmt = 88, - RULE_typeStmt = 89, RULE_typeStmt_Element = 90, RULE_unloadStmt = 91, - RULE_unlockStmt = 92, RULE_valueStmt = 93, RULE_typeOfIsExpression = 94, - RULE_variableStmt = 95, RULE_variableListStmt = 96, RULE_variableSubStmt = 97, - RULE_whileWendStmt = 98, RULE_widthStmt = 99, RULE_withStmt = 100, RULE_withStmtExpression = 101, - RULE_writeStmt = 102, RULE_fileNumber = 103, RULE_explicitCallStmt = 104, - RULE_explicitCallStmtExpression = 105, RULE_implicitCallStmt_InBlock = 106, - RULE_iCS_B_MemberProcedureCall = 107, RULE_iCS_B_ProcedureCall = 108, - RULE_implicitCallStmt_InStmt = 109, RULE_iCS_S_VariableOrProcedureCall = 110, - RULE_iCS_S_ProcedureOrArrayCall = 111, RULE_iCS_S_VariableOrProcedureCallUnrestricted = 112, - RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 113, RULE_iCS_S_MembersCall = 114, - RULE_iCS_S_MemberCall = 115, RULE_iCS_S_DictionaryCall = 116, RULE_argsCall = 117, - RULE_argCall = 118, RULE_dictionaryCallStmt = 119, RULE_argList = 120, - RULE_arg = 121, RULE_argDefaultValue = 122, RULE_subscripts = 123, RULE_subscript = 124, - RULE_unrestrictedIdentifier = 125, RULE_identifier = 126, RULE_asTypeClause = 127, - RULE_baseType = 128, RULE_comparisonOperator = 129, RULE_complexType = 130, - RULE_fieldLength = 131, RULE_letterrange = 132, RULE_lineLabel = 133, - RULE_literal = 134, RULE_numberLiteral = 135, RULE_type = 136, RULE_typeHint = 137, - RULE_visibility = 138, RULE_keyword = 139, RULE_statementKeyword = 140, - RULE_endOfLine = 141, RULE_endOfStatement = 142, RULE_remComment = 143, - RULE_comment = 144, RULE_annotationList = 145, RULE_annotation = 146, - RULE_annotationName = 147, RULE_annotationArgList = 148, RULE_annotationArg = 149, - RULE_whiteSpace = 150; + RULE_blockStmt = 13, RULE_closeStmt = 14, RULE_constStmt = 15, RULE_constSubStmt = 16, + RULE_declareStmt = 17, RULE_deftypeStmt = 18, RULE_doLoopStmt = 19, RULE_enumerationStmt = 20, + RULE_enumerationStmt_Constant = 21, RULE_eraseStmt = 22, RULE_errorStmt = 23, + RULE_eventStmt = 24, RULE_exitStmt = 25, RULE_forEachStmt = 26, RULE_forNextStmt = 27, + RULE_functionStmt = 28, RULE_getStmt = 29, RULE_goSubStmt = 30, RULE_goToStmt = 31, + RULE_ifThenElseStmt = 32, RULE_ifBlockStmt = 33, RULE_ifConditionStmt = 34, + RULE_ifElseIfBlockStmt = 35, RULE_ifElseBlockStmt = 36, RULE_implementsStmt = 37, + RULE_inputStmt = 38, RULE_letStmt = 39, RULE_lineInputStmt = 40, RULE_lockStmt = 41, + RULE_lsetStmt = 42, RULE_midStmt = 43, RULE_onErrorStmt = 44, RULE_onGoToStmt = 45, + RULE_onGoSubStmt = 46, RULE_openStmt = 47, RULE_outputList = 48, RULE_outputList_Expression = 49, + RULE_printStmt = 50, RULE_propertyGetStmt = 51, RULE_propertySetStmt = 52, + RULE_propertyLetStmt = 53, RULE_putStmt = 54, RULE_raiseEventStmt = 55, + RULE_redimStmt = 56, RULE_redimSubStmt = 57, RULE_resetStmt = 58, RULE_resumeStmt = 59, + RULE_returnStmt = 60, RULE_rsetStmt = 61, RULE_seekStmt = 62, RULE_selectCaseStmt = 63, + RULE_sC_Selection = 64, RULE_sC_Case = 65, RULE_sC_Cond = 66, RULE_setStmt = 67, + RULE_subStmt = 68, RULE_typeStmt = 69, RULE_typeStmt_Element = 70, RULE_unlockStmt = 71, + RULE_valueStmt = 72, RULE_typeOfIsExpression = 73, RULE_variableStmt = 74, + RULE_variableListStmt = 75, RULE_variableSubStmt = 76, RULE_whileWendStmt = 77, + RULE_widthStmt = 78, RULE_withStmt = 79, RULE_withStmtExpression = 80, + RULE_writeStmt = 81, RULE_fileNumber = 82, RULE_explicitCallStmt = 83, + RULE_explicitCallStmtExpression = 84, RULE_implicitCallStmt_InBlock = 85, + RULE_iCS_B_MemberProcedureCall = 86, RULE_iCS_B_ProcedureCall = 87, RULE_implicitCallStmt_InStmt = 88, + RULE_iCS_S_VariableOrProcedureCall = 89, RULE_iCS_S_ProcedureOrArrayCall = 90, + RULE_iCS_S_VariableOrProcedureCallUnrestricted = 91, RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 92, + RULE_iCS_S_MembersCall = 93, RULE_iCS_S_MemberCall = 94, RULE_iCS_S_DictionaryCall = 95, + RULE_argsCall = 96, RULE_argCall = 97, RULE_dictionaryCallStmt = 98, RULE_argList = 99, + RULE_arg = 100, RULE_argDefaultValue = 101, RULE_subscripts = 102, RULE_subscript = 103, + RULE_unrestrictedIdentifier = 104, RULE_identifier = 105, RULE_asTypeClause = 106, + RULE_baseType = 107, RULE_comparisonOperator = 108, RULE_complexType = 109, + RULE_fieldLength = 110, RULE_letterrange = 111, RULE_lineLabel = 112, + RULE_literal = 113, RULE_numberLiteral = 114, RULE_type = 115, RULE_typeHint = 116, + RULE_visibility = 117, RULE_keyword = 118, RULE_statementKeyword = 119, + RULE_endOfLine = 120, RULE_endOfStatement = 121, RULE_remComment = 122, + RULE_comment = 123, RULE_annotationList = 124, RULE_annotation = 125, + RULE_annotationName = 126, RULE_annotationArgList = 127, RULE_annotationArg = 128, + RULE_whiteSpace = 129; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", "moduleBody", "moduleBodyElement", "attributeStmt", "block", "blockStmt", - "appactivateStmt", "beepStmt", "chdirStmt", "chdriveStmt", "closeStmt", - "constStmt", "constSubStmt", "dateStmt", "declareStmt", "deftypeStmt", - "deleteSettingStmt", "doLoopStmt", "endStmt", "enumerationStmt", "enumerationStmt_Constant", - "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "filecopyStmt", "forEachStmt", - "forNextStmt", "functionStmt", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", - "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", - "implementsStmt", "inputStmt", "killStmt", "letStmt", "lineInputStmt", - "loadStmt", "lockStmt", "lsetStmt", "midStmt", "mkdirStmt", "nameStmt", - "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", - "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", - "propertyLetStmt", "putStmt", "raiseEventStmt", "randomizeStmt", "redimStmt", - "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rmdirStmt", - "rsetStmt", "savepictureStmt", "saveSettingStmt", "seekStmt", "selectCaseStmt", - "sC_Selection", "sC_Case", "sC_Cond", "sendkeysStmt", "setattrStmt", "setStmt", - "stopStmt", "subStmt", "timeStmt", "typeStmt", "typeStmt_Element", "unloadStmt", - "unlockStmt", "valueStmt", "typeOfIsExpression", "variableStmt", "variableListStmt", - "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "withStmtExpression", - "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", + "closeStmt", "constStmt", "constSubStmt", "declareStmt", "deftypeStmt", + "doLoopStmt", "enumerationStmt", "enumerationStmt_Constant", "eraseStmt", + "errorStmt", "eventStmt", "exitStmt", "forEachStmt", "forNextStmt", "functionStmt", + "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", "ifBlockStmt", "ifConditionStmt", + "ifElseIfBlockStmt", "ifElseBlockStmt", "implementsStmt", "inputStmt", + "letStmt", "lineInputStmt", "lockStmt", "lsetStmt", "midStmt", "onErrorStmt", + "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", "outputList_Expression", + "printStmt", "propertyGetStmt", "propertySetStmt", "propertyLetStmt", + "putStmt", "raiseEventStmt", "redimStmt", "redimSubStmt", "resetStmt", + "resumeStmt", "returnStmt", "rsetStmt", "seekStmt", "selectCaseStmt", + "sC_Selection", "sC_Case", "sC_Cond", "setStmt", "subStmt", "typeStmt", + "typeStmt_Element", "unlockStmt", "valueStmt", "typeOfIsExpression", "variableStmt", + "variableListStmt", "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", + "withStmtExpression", "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_VariableOrProcedureCallUnrestricted", "iCS_S_ProcedureOrArrayCallUnrestricted", @@ -236,8 +220,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 302; module(); - State = 303; Match(Eof); + State = 260; module(); + State = 261; Match(Eof); } } catch (RecognitionException re) { @@ -307,65 +291,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 306; + State = 264; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 305; whiteSpace(); + State = 263; whiteSpace(); } break; } - State = 308; endOfStatement(); - State = 312; + State = 266; endOfStatement(); + State = 270; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 309; moduleHeader(); - State = 310; endOfStatement(); + State = 267; moduleHeader(); + State = 268; endOfStatement(); } break; } - State = 315; + State = 273; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 314; moduleConfig(); + State = 272; moduleConfig(); } break; } - State = 317; endOfStatement(); - State = 319; + State = 275; endOfStatement(); + State = 277; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 318; moduleAttributes(); + State = 276; moduleAttributes(); } break; } - State = 321; endOfStatement(); - State = 323; + State = 279; endOfStatement(); + State = 281; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 322; moduleDeclarations(); + State = 280; moduleDeclarations(); } break; } - State = 325; endOfStatement(); - State = 327; + State = 283; endOfStatement(); + State = 285; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 326; moduleBody(); + State = 284; moduleBody(); } break; } - State = 329; endOfStatement(); - State = 331; + State = 287; endOfStatement(); + State = 289; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 330; whiteSpace(); + State = 288; whiteSpace(); } } @@ -424,26 +408,26 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 333; Match(VERSION); - State = 334; whiteSpace(); - State = 335; numberLiteral(); - State = 337; + State = 291; Match(VERSION); + State = 292; whiteSpace(); + State = 293; numberLiteral(); + State = 295; switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: { - State = 336; whiteSpace(); + State = 294; whiteSpace(); } break; } - State = 340; + State = 298; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { - State = 339; Match(CLASS); + State = 297; Match(CLASS); } break; } - State = 342; endOfStatement(); + State = 300; endOfStatement(); } } catch (RecognitionException re) { @@ -507,28 +491,28 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 344; Match(BEGIN); - State = 352; + State = 302; Match(BEGIN); + State = 310; switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { case 1: { - State = 345; whiteSpace(); - State = 346; Match(GUIDLITERAL); - State = 347; whiteSpace(); - State = 348; unrestrictedIdentifier(); - State = 350; + State = 303; whiteSpace(); + State = 304; Match(GUIDLITERAL); + State = 305; whiteSpace(); + State = 306; unrestrictedIdentifier(); + State = 308; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: { - State = 349; whiteSpace(); + State = 307; whiteSpace(); } break; } } break; } - State = 354; endOfStatement(); - State = 356; + State = 312; endOfStatement(); + State = 314; _errHandler.Sync(this); _alt = 1; do { @@ -536,18 +520,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 355; moduleConfigElement(); + State = 313; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 358; + State = 316; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 360; Match(END); + State = 318; Match(END); } } catch (RecognitionException re) { @@ -610,45 +594,45 @@ public ModuleConfigElementContext moduleConfigElement() { try { EnterOuterAlt(_localctx, 1); { - State = 362; unrestrictedIdentifier(); - State = 366; + State = 320; unrestrictedIdentifier(); + State = 324; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 363; whiteSpace(); + State = 321; whiteSpace(); } } - State = 368; + State = 326; _errHandler.Sync(this); _la = _input.La(1); } - State = 369; Match(EQ); - State = 373; + State = 327; Match(EQ); + State = 331; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 370; whiteSpace(); + State = 328; whiteSpace(); } } - State = 375; + State = 333; _errHandler.Sync(this); _la = _input.La(1); } - State = 376; literal(); - State = 379; + State = 334; literal(); + State = 337; switch ( Interpreter.AdaptivePredict(_input,14,_ctx) ) { case 1: { - State = 377; Match(COLON); - State = 378; numberLiteral(); + State = 335; Match(COLON); + State = 336; numberLiteral(); } break; } - State = 381; endOfStatement(); + State = 339; endOfStatement(); } } catch (RecognitionException re) { @@ -703,7 +687,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 386; + State = 344; _errHandler.Sync(this); _alt = 1; do { @@ -711,15 +695,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 383; attributeStmt(); - State = 384; endOfStatement(); + State = 341; attributeStmt(); + State = 342; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 388; + State = 346; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -777,24 +761,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 390; moduleDeclarationsElement(); - State = 396; + State = 348; moduleDeclarationsElement(); + State = 354; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 391; endOfStatement(); - State = 392; moduleDeclarationsElement(); + State = 349; endOfStatement(); + State = 350; moduleDeclarationsElement(); } } } - State = 398; + State = 356; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); } - State = 399; endOfStatement(); + State = 357; endOfStatement(); } } catch (RecognitionException re) { @@ -907,24 +891,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 411; + State = 369; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 401; Match(OPTION_BASE); - State = 402; whiteSpace(); - State = 403; numberLiteral(); + State = 359; Match(OPTION_BASE); + State = 360; whiteSpace(); + State = 361; numberLiteral(); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 405; Match(OPTION_COMPARE); - State = 406; whiteSpace(); - State = 407; + State = 363; Match(OPTION_COMPARE); + State = 364; whiteSpace(); + State = 365; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -936,14 +920,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 409; Match(OPTION_EXPLICIT); + State = 367; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 410; Match(OPTION_PRIVATE_MODULE); + State = 368; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -1011,61 +995,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 421; + State = 379; switch ( Interpreter.AdaptivePredict(_input,18,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 413; declareStmt(); + State = 371; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 414; enumerationStmt(); + State = 372; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 415; eventStmt(); + State = 373; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 416; constStmt(); + State = 374; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 417; implementsStmt(); + State = 375; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 418; variableStmt(); + State = 376; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 419; moduleOption(); + State = 377; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 420; typeStmt(); + State = 378; typeStmt(); } break; } @@ -1122,24 +1106,24 @@ public ModuleBodyContext moduleBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 423; moduleBodyElement(); - State = 429; + State = 381; moduleBodyElement(); + State = 387; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 424; endOfStatement(); - State = 425; moduleBodyElement(); + State = 382; endOfStatement(); + State = 383; moduleBodyElement(); } } } - State = 431; + State = 389; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); } - State = 432; endOfStatement(); + State = 390; endOfStatement(); } } catch (RecognitionException re) { @@ -1194,40 +1178,40 @@ public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 439; + State = 397; switch ( Interpreter.AdaptivePredict(_input,20,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 434; functionStmt(); + State = 392; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 435; propertyGetStmt(); + State = 393; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 436; propertySetStmt(); + State = 394; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 437; propertyLetStmt(); + State = 395; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 438; subStmt(); + State = 396; subStmt(); } break; } @@ -1294,56 +1278,56 @@ public AttributeStmtContext attributeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 441; Match(ATTRIBUTE); - State = 442; whiteSpace(); - State = 443; implicitCallStmt_InStmt(); - State = 445; + State = 399; Match(ATTRIBUTE); + State = 400; whiteSpace(); + State = 401; implicitCallStmt_InStmt(); + State = 403; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 444; whiteSpace(); + State = 402; whiteSpace(); } } - State = 447; Match(EQ); - State = 449; + State = 405; Match(EQ); + State = 407; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 448; whiteSpace(); + State = 406; whiteSpace(); } } - State = 451; literal(); - State = 462; + State = 409; literal(); + State = 420; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 453; + State = 411; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 452; whiteSpace(); + State = 410; whiteSpace(); } } - State = 455; Match(COMMA); - State = 457; + State = 413; Match(COMMA); + State = 415; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 456; whiteSpace(); + State = 414; whiteSpace(); } } - State = 459; literal(); + State = 417; literal(); } } } - State = 464; + State = 422; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); } @@ -1401,24 +1385,24 @@ public BlockContext block() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 465; blockStmt(); - State = 471; + State = 423; blockStmt(); + State = 429; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 466; endOfStatement(); - State = 467; blockStmt(); + State = 424; endOfStatement(); + State = 425; blockStmt(); } } } - State = 473; + State = 431; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); } - State = 474; endOfStatement(); + State = 432; endOfStatement(); } } catch (RecognitionException re) { @@ -1436,23 +1420,32 @@ public partial class BlockStmtContext : ParserRuleContext { public GoToStmtContext goToStmt() { return GetRuleContext(0); } - public LoadStmtContext loadStmt() { - return GetRuleContext(0); - } - public ChdriveStmtContext chdriveStmt() { - return GetRuleContext(0); - } - public EndStmtContext endStmt() { - return GetRuleContext(0); + public LineInputStmtContext lineInputStmt() { + return GetRuleContext(0); } public LetStmtContext letStmt() { return GetRuleContext(0); } - public FilecopyStmtContext filecopyStmt() { - return GetRuleContext(0); + public InputStmtContext inputStmt() { + return GetRuleContext(0); + } + public ResetStmtContext resetStmt() { + return GetRuleContext(0); + } + public ImplementsStmtContext implementsStmt() { + return GetRuleContext(0); + } + public CloseStmtContext closeStmt() { + return GetRuleContext(0); + } + public GoSubStmtContext goSubStmt() { + return GetRuleContext(0); + } + public DeftypeStmtContext deftypeStmt() { + return GetRuleContext(0); } - public RmdirStmtContext rmdirStmt() { - return GetRuleContext(0); + public ReturnStmtContext returnStmt() { + return GetRuleContext(0); } public RsetStmtContext rsetStmt() { return GetRuleContext(0); @@ -1460,8 +1453,14 @@ public RsetStmtContext rsetStmt() { public EraseStmtContext eraseStmt() { return GetRuleContext(0); } - public ChdirStmtContext chdirStmt() { - return GetRuleContext(0); + public LockStmtContext lockStmt() { + return GetRuleContext(0); + } + public DoLoopStmtContext doLoopStmt() { + return GetRuleContext(0); + } + public LineLabelContext lineLabel() { + return GetRuleContext(0); } public WriteStmtContext writeStmt() { return GetRuleContext(0); @@ -1469,8 +1468,17 @@ public WriteStmtContext writeStmt() { public ExplicitCallStmtContext explicitCallStmt() { return GetRuleContext(0); } - public RandomizeStmtContext randomizeStmt() { - return GetRuleContext(0); + public LsetStmtContext lsetStmt() { + return GetRuleContext(0); + } + public MidStmtContext midStmt() { + return GetRuleContext(0); + } + public GetStmtContext getStmt() { + return GetRuleContext(0); + } + public OnGoToStmtContext onGoToStmt() { + return GetRuleContext(0); } public ConstStmtContext constStmt() { return GetRuleContext(0); @@ -1481,14 +1489,14 @@ public SelectCaseStmtContext selectCaseStmt() { public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { return GetRuleContext(0); } - public MkdirStmtContext mkdirStmt() { - return GetRuleContext(0); - } public RaiseEventStmtContext raiseEventStmt() { return GetRuleContext(0); } - public SavepictureStmtContext savepictureStmt() { - return GetRuleContext(0); + public WidthStmtContext widthStmt() { + return GetRuleContext(0); + } + public PrintStmtContext printStmt() { + return GetRuleContext(0); } public ExitStmtContext exitStmt() { return GetRuleContext(0); @@ -1499,12 +1507,6 @@ public IfThenElseStmtContext ifThenElseStmt() { public OpenStmtContext openStmt() { return GetRuleContext(0); } - public SetattrStmtContext setattrStmt() { - return GetRuleContext(0); - } - public SaveSettingStmtContext saveSettingStmt() { - return GetRuleContext(0); - } public AttributeStmtContext attributeStmt() { return GetRuleContext(0); } @@ -1517,21 +1519,21 @@ public ForNextStmtContext forNextStmt() { public RedimStmtContext redimStmt() { return GetRuleContext(0); } - public TimeStmtContext timeStmt() { - return GetRuleContext(0); - } public OnGoSubStmtContext onGoSubStmt() { return GetRuleContext(0); } - public SendkeysStmtContext sendkeysStmt() { - return GetRuleContext(0); - } - public DeleteSettingStmtContext deleteSettingStmt() { - return GetRuleContext(0); + public SeekStmtContext seekStmt() { + return GetRuleContext(0); } public ErrorStmtContext errorStmt() { return GetRuleContext(0); } + public ResumeStmtContext resumeStmt() { + return GetRuleContext(0); + } + public VariableStmtContext variableStmt() { + return GetRuleContext(0); + } public SetStmtContext setStmt() { return GetRuleContext(0); } @@ -1541,96 +1543,15 @@ public WithStmtContext withStmt() { public OnErrorStmtContext onErrorStmt() { return GetRuleContext(0); } + public PutStmtContext putStmt() { + return GetRuleContext(0); + } public WhileWendStmtContext whileWendStmt() { return GetRuleContext(0); } public UnlockStmtContext unlockStmt() { return GetRuleContext(0); } - public StopStmtContext stopStmt() { - return GetRuleContext(0); - } - public NameStmtContext nameStmt() { - return GetRuleContext(0); - } - public LineInputStmtContext lineInputStmt() { - return GetRuleContext(0); - } - public DateStmtContext dateStmt() { - return GetRuleContext(0); - } - public InputStmtContext inputStmt() { - return GetRuleContext(0); - } - public ResetStmtContext resetStmt() { - return GetRuleContext(0); - } - public ImplementsStmtContext implementsStmt() { - return GetRuleContext(0); - } - public CloseStmtContext closeStmt() { - return GetRuleContext(0); - } - public GoSubStmtContext goSubStmt() { - return GetRuleContext(0); - } - public KillStmtContext killStmt() { - return GetRuleContext(0); - } - public DeftypeStmtContext deftypeStmt() { - return GetRuleContext(0); - } - public ReturnStmtContext returnStmt() { - return GetRuleContext(0); - } - public LockStmtContext lockStmt() { - return GetRuleContext(0); - } - public DoLoopStmtContext doLoopStmt() { - return GetRuleContext(0); - } - public LineLabelContext lineLabel() { - return GetRuleContext(0); - } - public BeepStmtContext beepStmt() { - return GetRuleContext(0); - } - public AppactivateStmtContext appactivateStmt() { - return GetRuleContext(0); - } - public LsetStmtContext lsetStmt() { - return GetRuleContext(0); - } - public MidStmtContext midStmt() { - return GetRuleContext(0); - } - public GetStmtContext getStmt() { - return GetRuleContext(0); - } - public OnGoToStmtContext onGoToStmt() { - return GetRuleContext(0); - } - public WidthStmtContext widthStmt() { - return GetRuleContext(0); - } - public PrintStmtContext printStmt() { - return GetRuleContext(0); - } - public SeekStmtContext seekStmt() { - return GetRuleContext(0); - } - public ResumeStmtContext resumeStmt() { - return GetRuleContext(0); - } - public VariableStmtContext variableStmt() { - return GetRuleContext(0); - } - public PutStmtContext putStmt() { - return GetRuleContext(0); - } - public UnloadStmtContext unloadStmt() { - return GetRuleContext(0); - } public BlockStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -1656,467 +1577,320 @@ public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); EnterRule(_localctx, 26, RULE_blockStmt); try { - State = 542; + State = 479; switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 476; lineLabel(); + State = 434; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 477; appactivateStmt(); + State = 435; attributeStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 478; attributeStmt(); + State = 436; closeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 479; beepStmt(); + State = 437; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 480; chdirStmt(); + State = 438; deftypeStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 481; chdriveStmt(); + State = 439; doLoopStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 482; closeStmt(); + State = 440; eraseStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 483; constStmt(); + State = 441; errorStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 484; dateStmt(); + State = 442; exitStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 485; deleteSettingStmt(); + State = 443; explicitCallStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 486; deftypeStmt(); + State = 444; forEachStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 487; doLoopStmt(); + State = 445; forNextStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 488; endStmt(); + State = 446; getStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 489; eraseStmt(); + State = 447; goSubStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 490; errorStmt(); + State = 448; goToStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 491; exitStmt(); + State = 449; ifThenElseStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 492; explicitCallStmt(); + State = 450; implementsStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 493; filecopyStmt(); + State = 451; inputStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 494; forEachStmt(); + State = 452; letStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 495; forNextStmt(); + State = 453; lineInputStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 496; getStmt(); + State = 454; lockStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 497; goSubStmt(); + State = 455; lsetStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 498; goToStmt(); + State = 456; midStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 499; ifThenElseStmt(); + State = 457; onErrorStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 500; implementsStmt(); + State = 458; onGoToStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 501; inputStmt(); + State = 459; onGoSubStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 502; killStmt(); + State = 460; openStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 503; letStmt(); + State = 461; printStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 504; lineInputStmt(); + State = 462; putStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 505; loadStmt(); + State = 463; raiseEventStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 506; lockStmt(); + State = 464; redimStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 507; lsetStmt(); + State = 465; resetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 508; midStmt(); + State = 466; resumeStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 509; mkdirStmt(); + State = 467; returnStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 510; nameStmt(); + State = 468; rsetStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 511; onErrorStmt(); + State = 469; seekStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 512; onGoToStmt(); + State = 470; selectCaseStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 513; onGoSubStmt(); + State = 471; setStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 514; openStmt(); + State = 472; unlockStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 515; printStmt(); + State = 473; variableStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 516; putStmt(); + State = 474; whileWendStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 517; raiseEventStmt(); + State = 475; widthStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 518; randomizeStmt(); + State = 476; withStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 519; redimStmt(); + State = 477; writeStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 520; resetStmt(); - } - break; - - case 46: - EnterOuterAlt(_localctx, 46); - { - State = 521; resumeStmt(); - } - break; - - case 47: - EnterOuterAlt(_localctx, 47); - { - State = 522; returnStmt(); - } - break; - - case 48: - EnterOuterAlt(_localctx, 48); - { - State = 523; rmdirStmt(); - } - break; - - case 49: - EnterOuterAlt(_localctx, 49); - { - State = 524; rsetStmt(); - } - break; - - case 50: - EnterOuterAlt(_localctx, 50); - { - State = 525; savepictureStmt(); - } - break; - - case 51: - EnterOuterAlt(_localctx, 51); - { - State = 526; saveSettingStmt(); - } - break; - - case 52: - EnterOuterAlt(_localctx, 52); - { - State = 527; seekStmt(); - } - break; - - case 53: - EnterOuterAlt(_localctx, 53); - { - State = 528; selectCaseStmt(); - } - break; - - case 54: - EnterOuterAlt(_localctx, 54); - { - State = 529; sendkeysStmt(); - } - break; - - case 55: - EnterOuterAlt(_localctx, 55); - { - State = 530; setattrStmt(); - } - break; - - case 56: - EnterOuterAlt(_localctx, 56); - { - State = 531; setStmt(); - } - break; - - case 57: - EnterOuterAlt(_localctx, 57); - { - State = 532; stopStmt(); - } - break; - - case 58: - EnterOuterAlt(_localctx, 58); - { - State = 533; timeStmt(); - } - break; - - case 59: - EnterOuterAlt(_localctx, 59); - { - State = 534; unloadStmt(); - } - break; - - case 60: - EnterOuterAlt(_localctx, 60); - { - State = 535; unlockStmt(); - } - break; - - case 61: - EnterOuterAlt(_localctx, 61); - { - State = 536; variableStmt(); - } - break; - - case 62: - EnterOuterAlt(_localctx, 62); - { - State = 537; whileWendStmt(); - } - break; - - case 63: - EnterOuterAlt(_localctx, 63); - { - State = 538; widthStmt(); - } - break; - - case 64: - EnterOuterAlt(_localctx, 64); - { - State = 539; withStmt(); - } - break; - - case 65: - EnterOuterAlt(_localctx, 65); - { - State = 540; writeStmt(); - } - break; - - case 66: - EnterOuterAlt(_localctx, 66); - { - State = 541; implicitCallStmt_InBlock(); + State = 478; implicitCallStmt_InBlock(); } break; } @@ -2132,258 +1906,29 @@ public BlockStmtContext blockStmt() { return _localctx; } - public partial class AppactivateStmtContext : ParserRuleContext { - public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } + public partial class CloseStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } + public IReadOnlyList COMMA() { return GetTokens(VBAParser.COMMA); } + public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); + public IReadOnlyList fileNumber() { + return GetRuleContexts(); } - public AppactivateStmtContext(ParserRuleContext parent, int invokingState) + public FileNumberContext fileNumber(int i) { + return GetRuleContext(i); + } + public ITerminalNode COMMA(int i) { + return GetToken(VBAParser.COMMA, i); + } + public CloseStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_appactivateStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterAppactivateStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitAppactivateStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitAppactivateStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public AppactivateStmtContext appactivateStmt() { - AppactivateStmtContext _localctx = new AppactivateStmtContext(_ctx, State); - EnterRule(_localctx, 28, RULE_appactivateStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 544; Match(APPACTIVATE); - State = 545; whiteSpace(); - State = 546; valueStmt(0); - State = 555; - switch ( Interpreter.AdaptivePredict(_input,30,_ctx) ) { - case 1: - { - State = 548; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 547; whiteSpace(); - } - } - - State = 550; Match(COMMA); - State = 552; - switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { - case 1: - { - State = 551; whiteSpace(); - } - break; - } - State = 554; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class BeepStmtContext : ParserRuleContext { - public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } - public BeepStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_beepStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterBeepStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitBeepStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitBeepStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public BeepStmtContext beepStmt() { - BeepStmtContext _localctx = new BeepStmtContext(_ctx, State); - EnterRule(_localctx, 30, RULE_beepStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 557; Match(BEEP); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class ChdirStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } - public ChdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_chdirStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterChdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitChdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitChdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ChdirStmtContext chdirStmt() { - ChdirStmtContext _localctx = new ChdirStmtContext(_ctx, State); - EnterRule(_localctx, 32, RULE_chdirStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 559; Match(CHDIR); - State = 560; whiteSpace(); - State = 561; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class ChdriveStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } - public ChdriveStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_chdriveStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterChdriveStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitChdriveStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitChdriveStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public ChdriveStmtContext chdriveStmt() { - ChdriveStmtContext _localctx = new ChdriveStmtContext(_ctx, State); - EnterRule(_localctx, 34, RULE_chdriveStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 563; Match(CHDRIVE); - State = 564; whiteSpace(); - State = 565; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class CloseStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public IReadOnlyList COMMA() { return GetTokens(VBAParser.COMMA); } - public ITerminalNode CLOSE() { return GetToken(VBAParser.CLOSE, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public IReadOnlyList fileNumber() { - return GetRuleContexts(); - } - public FileNumberContext fileNumber(int i) { - return GetRuleContext(i); - } - public ITerminalNode COMMA(int i) { - return GetToken(VBAParser.COMMA, i); - } - public CloseStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_closeStmt; } } + public override int RuleIndex { get { return RULE_closeStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; if (typedListener != null) typedListener.EnterCloseStmt(this); @@ -2402,50 +1947,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CloseStmtContext closeStmt() { CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); - EnterRule(_localctx, 36, RULE_closeStmt); + EnterRule(_localctx, 28, RULE_closeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 567; Match(CLOSE); - State = 583; - switch ( Interpreter.AdaptivePredict(_input,34,_ctx) ) { + State = 481; Match(CLOSE); + State = 497; + switch ( Interpreter.AdaptivePredict(_input,31,_ctx) ) { case 1: { - State = 568; whiteSpace(); - State = 569; fileNumber(); - State = 580; + State = 482; whiteSpace(); + State = 483; fileNumber(); + State = 494; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + _alt = Interpreter.AdaptivePredict(_input,30,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 571; + State = 485; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 570; whiteSpace(); + State = 484; whiteSpace(); } } - State = 573; Match(COMMA); - State = 575; - switch ( Interpreter.AdaptivePredict(_input,32,_ctx) ) { + State = 487; Match(COMMA); + State = 489; + switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 574; whiteSpace(); + State = 488; whiteSpace(); } break; } - State = 577; fileNumber(); + State = 491; fileNumber(); } } } - State = 582; + State = 496; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,33,_ctx); + _alt = Interpreter.AdaptivePredict(_input,30,_ctx); } } break; @@ -2507,55 +2052,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstStmtContext constStmt() { ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); - EnterRule(_localctx, 38, RULE_constStmt); + EnterRule(_localctx, 30, RULE_constStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 588; + State = 502; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 585; visibility(); - State = 586; whiteSpace(); + State = 499; visibility(); + State = 500; whiteSpace(); } } - State = 590; Match(CONST); - State = 591; whiteSpace(); - State = 592; constSubStmt(); - State = 603; + State = 504; Match(CONST); + State = 505; whiteSpace(); + State = 506; constSubStmt(); + State = 517; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,38,_ctx); + _alt = Interpreter.AdaptivePredict(_input,35,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 594; + State = 508; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 593; whiteSpace(); + State = 507; whiteSpace(); } } - State = 596; Match(COMMA); - State = 598; + State = 510; Match(COMMA); + State = 512; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 597; whiteSpace(); + State = 511; whiteSpace(); } } - State = 600; constSubStmt(); + State = 514; constSubStmt(); } } } - State = 605; + State = 519; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,38,_ctx); + _alt = Interpreter.AdaptivePredict(_input,35,_ctx); } } } @@ -2613,119 +2158,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstSubStmtContext constSubStmt() { ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); - EnterRule(_localctx, 40, RULE_constSubStmt); + EnterRule(_localctx, 32, RULE_constSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 606; identifier(); - State = 608; + State = 520; identifier(); + State = 522; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 607; typeHint(); - } - } - - State = 613; - switch ( Interpreter.AdaptivePredict(_input,40,_ctx) ) { - case 1: - { - State = 610; whiteSpace(); - State = 611; asTypeClause(); - } - break; - } - State = 616; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 615; whiteSpace(); + State = 521; typeHint(); } } - State = 618; Match(EQ); - State = 620; - switch ( Interpreter.AdaptivePredict(_input,42,_ctx) ) { + State = 527; + switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { case 1: { - State = 619; whiteSpace(); + State = 524; whiteSpace(); + State = 525; asTypeClause(); } break; } - State = 622; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class DateStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public DateStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_dateStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterDateStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitDateStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitDateStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DateStmtContext dateStmt() { - DateStmtContext _localctx = new DateStmtContext(_ctx, State); - EnterRule(_localctx, 42, RULE_dateStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 624; Match(DATE); - State = 626; + State = 530; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 625; whiteSpace(); + State = 529; whiteSpace(); } } - State = 628; Match(EQ); - State = 630; - switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { + State = 532; Match(EQ); + State = 534; + switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { case 1: { - State = 629; whiteSpace(); + State = 533; whiteSpace(); } break; } - State = 632; valueStmt(0); + State = 536; valueStmt(0); } } catch (RecognitionException re) { @@ -2797,42 +2270,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeclareStmtContext declareStmt() { DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); - EnterRule(_localctx, 44, RULE_declareStmt); + EnterRule(_localctx, 34, RULE_declareStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 637; + State = 541; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 634; visibility(); - State = 635; whiteSpace(); + State = 538; visibility(); + State = 539; whiteSpace(); } } - State = 639; Match(DECLARE); - State = 640; whiteSpace(); - State = 643; + State = 543; Match(DECLARE); + State = 544; whiteSpace(); + State = 547; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 641; Match(PTRSAFE); - State = 642; whiteSpace(); + State = 545; Match(PTRSAFE); + State = 546; whiteSpace(); } } - State = 650; + State = 554; switch (_input.La(1)) { case FUNCTION: { { - State = 645; Match(FUNCTION); - State = 647; + State = 549; Match(FUNCTION); + State = 551; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 646; typeHint(); + State = 550; typeHint(); } } @@ -2841,59 +2314,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 649; Match(SUB); + State = 553; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 652; whiteSpace(); - State = 653; identifier(); - State = 655; + State = 556; whiteSpace(); + State = 557; identifier(); + State = 559; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 654; typeHint(); + State = 558; typeHint(); } } - State = 657; whiteSpace(); - State = 658; Match(LIB); - State = 659; whiteSpace(); - State = 660; Match(STRINGLITERAL); - State = 666; - switch ( Interpreter.AdaptivePredict(_input,50,_ctx) ) { + State = 561; whiteSpace(); + State = 562; Match(LIB); + State = 563; whiteSpace(); + State = 564; Match(STRINGLITERAL); + State = 570; + switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { case 1: { - State = 661; whiteSpace(); - State = 662; Match(ALIAS); - State = 663; whiteSpace(); - State = 664; Match(STRINGLITERAL); + State = 565; whiteSpace(); + State = 566; Match(ALIAS); + State = 567; whiteSpace(); + State = 568; Match(STRINGLITERAL); } break; } - State = 672; - switch ( Interpreter.AdaptivePredict(_input,52,_ctx) ) { + State = 576; + switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { case 1: { - State = 669; + State = 573; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 668; whiteSpace(); + State = 572; whiteSpace(); } } - State = 671; argList(); + State = 575; argList(); } break; } - State = 677; - switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { + State = 581; + switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 674; whiteSpace(); - State = 675; asTypeClause(); + State = 578; whiteSpace(); + State = 579; asTypeClause(); } break; } @@ -2963,51 +2436,51 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeftypeStmtContext deftypeStmt() { DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); - EnterRule(_localctx, 46, RULE_deftypeStmt); + EnterRule(_localctx, 36, RULE_deftypeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 679; + State = 583; _la = _input.La(1); - if ( !(((((_la - 74)) & ~0x3f) == 0 && ((1L << (_la - 74)) & ((1L << (DEFBOOL - 74)) | (1L << (DEFBYTE - 74)) | (1L << (DEFDATE - 74)) | (1L << (DEFDBL - 74)) | (1L << (DEFCUR - 74)) | (1L << (DEFINT - 74)) | (1L << (DEFLNG - 74)) | (1L << (DEFLNGLNG - 74)) | (1L << (DEFLNGPTR - 74)) | (1L << (DEFOBJ - 74)) | (1L << (DEFSNG - 74)) | (1L << (DEFSTR - 74)) | (1L << (DEFVAR - 74)))) != 0)) ) { + if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (DEFBOOL - 70)) | (1L << (DEFBYTE - 70)) | (1L << (DEFDATE - 70)) | (1L << (DEFDBL - 70)) | (1L << (DEFCUR - 70)) | (1L << (DEFINT - 70)) | (1L << (DEFLNG - 70)) | (1L << (DEFLNGLNG - 70)) | (1L << (DEFLNGPTR - 70)) | (1L << (DEFOBJ - 70)) | (1L << (DEFSNG - 70)) | (1L << (DEFSTR - 70)) | (1L << (DEFVAR - 70)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 680; whiteSpace(); - State = 681; letterrange(); - State = 692; + State = 584; whiteSpace(); + State = 585; letterrange(); + State = 596; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,56,_ctx); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 683; + State = 587; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 682; whiteSpace(); + State = 586; whiteSpace(); } } - State = 685; Match(COMMA); - State = 687; + State = 589; Match(COMMA); + State = 591; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 686; whiteSpace(); + State = 590; whiteSpace(); } } - State = 689; letterrange(); + State = 593; letterrange(); } } } - State = 694; + State = 598; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,56,_ctx); + _alt = Interpreter.AdaptivePredict(_input,51,_ctx); } } } @@ -3022,178 +2495,31 @@ public DeftypeStmtContext deftypeStmt() { return _localctx; } - public partial class DeleteSettingStmtContext : ParserRuleContext { + public partial class DoLoopStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); + public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } + public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); } - public IReadOnlyList COMMA() { return GetTokens(VBAParser.COMMA); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); + public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } + public EndOfStatementContext endOfStatement() { + return GetRuleContext(0); } - public ITerminalNode COMMA(int i) { - return GetToken(VBAParser.COMMA, i); + public BlockContext block() { + return GetRuleContext(0); } - public DeleteSettingStmtContext(ParserRuleContext parent, int invokingState) + public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } + public DoLoopStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_deleteSettingStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterDeleteSettingStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitDeleteSettingStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitDeleteSettingStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public DeleteSettingStmtContext deleteSettingStmt() { - DeleteSettingStmtContext _localctx = new DeleteSettingStmtContext(_ctx, State); - EnterRule(_localctx, 48, RULE_deleteSettingStmt); - int _la; - try { - State = 733; - switch ( Interpreter.AdaptivePredict(_input,64,_ctx) ) { - case 1: - EnterOuterAlt(_localctx, 1); - { - State = 695; Match(DELETESETTING); - State = 696; whiteSpace(); - State = 697; valueStmt(0); - State = 699; - switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { - case 1: - { - State = 698; whiteSpace(); - } - break; - } - } - break; - - case 2: - EnterOuterAlt(_localctx, 2); - { - State = 701; Match(DELETESETTING); - State = 702; whiteSpace(); - State = 703; valueStmt(0); - State = 705; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 704; whiteSpace(); - } - } - - State = 707; Match(COMMA); - State = 709; - switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { - case 1: - { - State = 708; whiteSpace(); - } - break; - } - State = 711; valueStmt(0); - } - break; - - case 3: - EnterOuterAlt(_localctx, 3); - { - State = 713; Match(DELETESETTING); - State = 714; whiteSpace(); - State = 715; valueStmt(0); - State = 717; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 716; whiteSpace(); - } - } - - State = 719; Match(COMMA); - State = 721; - switch ( Interpreter.AdaptivePredict(_input,61,_ctx) ) { - case 1: - { - State = 720; whiteSpace(); - } - break; - } - State = 723; valueStmt(0); - State = 725; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 724; whiteSpace(); - } - } - - State = 727; Match(COMMA); - State = 729; - switch ( Interpreter.AdaptivePredict(_input,63,_ctx) ) { - case 1: - { - State = 728; whiteSpace(); - } - break; - } - State = 731; valueStmt(0); - } - break; - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class DoLoopStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode DO() { return GetToken(VBAParser.DO, 0); } - public ITerminalNode LOOP() { return GetToken(VBAParser.LOOP, 0); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } - public EndOfStatementContext endOfStatement() { - return GetRuleContext(0); - } - public BlockContext block() { - return GetRuleContext(0); - } - public ITerminalNode WHILE() { return GetToken(VBAParser.WHILE, 0); } - public DoLoopStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_doLoopStmt; } } + public override int RuleIndex { get { return RULE_doLoopStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; if (typedListener != null) typedListener.EnterDoLoopStmt(this); @@ -3212,77 +2538,77 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DoLoopStmtContext doLoopStmt() { DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); - EnterRule(_localctx, 50, RULE_doLoopStmt); + EnterRule(_localctx, 38, RULE_doLoopStmt); int _la; try { - State = 764; - switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { + State = 628; + switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 735; Match(DO); - State = 736; endOfStatement(); - State = 738; + State = 599; Match(DO); + State = 600; endOfStatement(); + State = 602; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 737; block(); + State = 601; block(); } } - State = 740; Match(LOOP); + State = 604; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 742; Match(DO); - State = 743; whiteSpace(); - State = 744; + State = 606; Match(DO); + State = 607; whiteSpace(); + State = 608; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 745; whiteSpace(); - State = 746; valueStmt(0); - State = 747; endOfStatement(); - State = 749; + State = 609; whiteSpace(); + State = 610; valueStmt(0); + State = 611; endOfStatement(); + State = 613; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 748; block(); + State = 612; block(); } } - State = 751; Match(LOOP); + State = 615; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 753; Match(DO); - State = 754; endOfStatement(); - State = 756; + State = 617; Match(DO); + State = 618; endOfStatement(); + State = 620; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 755; block(); + State = 619; block(); } } - State = 758; Match(LOOP); - State = 759; whiteSpace(); - State = 760; + State = 622; Match(LOOP); + State = 623; whiteSpace(); + State = 624; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 761; whiteSpace(); - State = 762; valueStmt(0); + State = 625; whiteSpace(); + State = 626; valueStmt(0); } break; } @@ -3298,49 +2624,6 @@ public DoLoopStmtContext doLoopStmt() { return _localctx; } - public partial class EndStmtContext : ParserRuleContext { - public ITerminalNode END() { return GetToken(VBAParser.END, 0); } - public EndStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_endStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterEndStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitEndStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitEndStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public EndStmtContext endStmt() { - EndStmtContext _localctx = new EndStmtContext(_ctx, State); - EnterRule(_localctx, 52, RULE_endStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 766; Match(END); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - public partial class EnumerationStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); @@ -3388,38 +2671,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmtContext enumerationStmt() { EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); - EnterRule(_localctx, 54, RULE_enumerationStmt); + EnterRule(_localctx, 40, RULE_enumerationStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 771; + State = 633; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 768; visibility(); - State = 769; whiteSpace(); + State = 630; visibility(); + State = 631; whiteSpace(); } } - State = 773; Match(ENUM); - State = 774; whiteSpace(); - State = 775; identifier(); - State = 776; endOfStatement(); - State = 780; + State = 635; Match(ENUM); + State = 636; whiteSpace(); + State = 637; identifier(); + State = 638; endOfStatement(); + State = 642; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (IDENTIFIER - 194)))) != 0) || _la==COLLECTION) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 777; enumerationStmt_Constant(); + State = 639; enumerationStmt_Constant(); } } - State = 782; + State = 644; _errHandler.Sync(this); _la = _input.La(1); } - State = 783; Match(END_ENUM); + State = 645; Match(END_ENUM); } } catch (RecognitionException re) { @@ -3473,38 +2756,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmt_ConstantContext enumerationStmt_Constant() { EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); - EnterRule(_localctx, 56, RULE_enumerationStmt_Constant); + EnterRule(_localctx, 42, RULE_enumerationStmt_Constant); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 785; identifier(); - State = 794; - switch ( Interpreter.AdaptivePredict(_input,73,_ctx) ) { + State = 647; identifier(); + State = 656; + switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { case 1: { - State = 787; + State = 649; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 786; whiteSpace(); + State = 648; whiteSpace(); } } - State = 789; Match(EQ); - State = 791; - switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { + State = 651; Match(EQ); + State = 653; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 790; whiteSpace(); + State = 652; whiteSpace(); } break; } - State = 793; valueStmt(0); + State = 655; valueStmt(0); } break; } - State = 796; endOfStatement(); + State = 658; endOfStatement(); } } catch (RecognitionException re) { @@ -3559,46 +2842,46 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EraseStmtContext eraseStmt() { EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); - EnterRule(_localctx, 58, RULE_eraseStmt); + EnterRule(_localctx, 44, RULE_eraseStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 798; Match(ERASE); - State = 799; whiteSpace(); - State = 800; valueStmt(0); - State = 811; + State = 660; Match(ERASE); + State = 661; whiteSpace(); + State = 662; valueStmt(0); + State = 673; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,76,_ctx); + _alt = Interpreter.AdaptivePredict(_input,63,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 802; + State = 664; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 801; whiteSpace(); + State = 663; whiteSpace(); } } - State = 804; Match(COMMA); - State = 806; - switch ( Interpreter.AdaptivePredict(_input,75,_ctx) ) { + State = 666; Match(COMMA); + State = 668; + switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { case 1: { - State = 805; whiteSpace(); + State = 667; whiteSpace(); } break; } - State = 808; valueStmt(0); + State = 670; valueStmt(0); } } } - State = 813; + State = 675; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,76,_ctx); + _alt = Interpreter.AdaptivePredict(_input,63,_ctx); } } } @@ -3644,13 +2927,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ErrorStmtContext errorStmt() { ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); - EnterRule(_localctx, 60, RULE_errorStmt); + EnterRule(_localctx, 46, RULE_errorStmt); try { EnterOuterAlt(_localctx, 1); { - State = 814; Match(ERROR); - State = 815; whiteSpace(); - State = 816; valueStmt(0); + State = 676; Match(ERROR); + State = 677; whiteSpace(); + State = 678; valueStmt(0); } } catch (RecognitionException re) { @@ -3704,32 +2987,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EventStmtContext eventStmt() { EventStmtContext _localctx = new EventStmtContext(_ctx, State); - EnterRule(_localctx, 62, RULE_eventStmt); + EnterRule(_localctx, 48, RULE_eventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 821; + State = 683; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 818; visibility(); - State = 819; whiteSpace(); + State = 680; visibility(); + State = 681; whiteSpace(); } } - State = 823; Match(EVENT); - State = 824; whiteSpace(); - State = 825; identifier(); - State = 827; + State = 685; Match(EVENT); + State = 686; whiteSpace(); + State = 687; identifier(); + State = 689; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 826; whiteSpace(); + State = 688; whiteSpace(); } } - State = 829; argList(); + State = 691; argList(); } } catch (RecognitionException re) { @@ -3772,14 +3055,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExitStmtContext exitStmt() { ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); - EnterRule(_localctx, 64, RULE_exitStmt); + EnterRule(_localctx, 50, RULE_exitStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 831; + State = 693; _la = _input.La(1); - if ( !(((((_la - 109)) & ~0x3f) == 0 && ((1L << (_la - 109)) & ((1L << (EXIT_DO - 109)) | (1L << (EXIT_FOR - 109)) | (1L << (EXIT_FUNCTION - 109)) | (1L << (EXIT_PROPERTY - 109)) | (1L << (EXIT_SUB - 109)))) != 0)) ) { + if ( !(((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & ((1L << (EXIT_DO - 104)) | (1L << (EXIT_FOR - 104)) | (1L << (EXIT_FUNCTION - 104)) | (1L << (EXIT_PROPERTY - 104)) | (1L << (EXIT_SUB - 104)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -3796,83 +3079,6 @@ public ExitStmtContext exitStmt() { return _localctx; } - public partial class FilecopyStmtContext : ParserRuleContext { - public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public FilecopyStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_filecopyStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterFilecopyStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitFilecopyStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitFilecopyStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public FilecopyStmtContext filecopyStmt() { - FilecopyStmtContext _localctx = new FilecopyStmtContext(_ctx, State); - EnterRule(_localctx, 66, RULE_filecopyStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 833; Match(FILECOPY); - State = 834; whiteSpace(); - State = 835; valueStmt(0); - State = 837; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 836; whiteSpace(); - } - } - - State = 839; Match(COMMA); - State = 841; - switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { - case 1: - { - State = 840; whiteSpace(); - } - break; - } - State = 843; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - public partial class ForEachStmtContext : ParserRuleContext { public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } public WhiteSpaceContext whiteSpace(int i) { @@ -3919,36 +3125,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); - EnterRule(_localctx, 68, RULE_forEachStmt); + EnterRule(_localctx, 52, RULE_forEachStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 845; Match(FOR); - State = 846; whiteSpace(); - State = 847; Match(EACH); - State = 848; whiteSpace(); - State = 849; valueStmt(0); - State = 850; whiteSpace(); - State = 851; Match(IN); - State = 852; whiteSpace(); - State = 853; valueStmt(0); - State = 854; endOfStatement(); - State = 856; + State = 695; Match(FOR); + State = 696; whiteSpace(); + State = 697; Match(EACH); + State = 698; whiteSpace(); + State = 699; valueStmt(0); + State = 700; whiteSpace(); + State = 701; Match(IN); + State = 702; whiteSpace(); + State = 703; valueStmt(0); + State = 704; endOfStatement(); + State = 706; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 855; block(); + State = 705; block(); } } - State = 858; Match(NEXT); - State = 862; - switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { + State = 708; Match(NEXT); + State = 712; + switch ( Interpreter.AdaptivePredict(_input,67,_ctx) ) { case 1: { - State = 859; whiteSpace(); - State = 860; valueStmt(0); + State = 709; whiteSpace(); + State = 710; valueStmt(0); } break; } @@ -4012,63 +3218,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForNextStmtContext forNextStmt() { ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); - EnterRule(_localctx, 70, RULE_forNextStmt); + EnterRule(_localctx, 54, RULE_forNextStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 864; Match(FOR); - State = 865; whiteSpace(); - State = 866; valueStmt(0); - State = 868; + State = 714; Match(FOR); + State = 715; whiteSpace(); + State = 716; valueStmt(0); + State = 718; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 867; whiteSpace(); + State = 717; whiteSpace(); } } - State = 870; Match(EQ); - State = 872; - switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { + State = 720; Match(EQ); + State = 722; + switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { case 1: { - State = 871; whiteSpace(); + State = 721; whiteSpace(); } break; } - State = 874; valueStmt(0); - State = 875; whiteSpace(); - State = 876; Match(TO); - State = 877; whiteSpace(); - State = 878; valueStmt(0); - State = 884; - switch ( Interpreter.AdaptivePredict(_input,85,_ctx) ) { + State = 724; valueStmt(0); + State = 725; whiteSpace(); + State = 726; Match(TO); + State = 727; whiteSpace(); + State = 728; valueStmt(0); + State = 734; + switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { case 1: { - State = 879; whiteSpace(); - State = 880; Match(STEP); - State = 881; whiteSpace(); - State = 882; valueStmt(0); + State = 729; whiteSpace(); + State = 730; Match(STEP); + State = 731; whiteSpace(); + State = 732; valueStmt(0); } break; } - State = 886; endOfStatement(); - State = 888; + State = 736; endOfStatement(); + State = 738; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 887; block(); + State = 737; block(); } } - State = 890; Match(NEXT); - State = 894; - switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { + State = 740; Match(NEXT); + State = 744; + switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 891; whiteSpace(); - State = 892; valueStmt(0); + State = 741; whiteSpace(); + State = 742; valueStmt(0); } break; } @@ -4139,89 +3345,89 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FunctionStmtContext functionStmt() { FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); - EnterRule(_localctx, 72, RULE_functionStmt); + EnterRule(_localctx, 56, RULE_functionStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 899; + State = 749; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 896; visibility(); - State = 897; whiteSpace(); + State = 746; visibility(); + State = 747; whiteSpace(); } } - State = 903; + State = 753; _la = _input.La(1); if (_la==STATIC) { { - State = 901; Match(STATIC); - State = 902; whiteSpace(); + State = 751; Match(STATIC); + State = 752; whiteSpace(); } } - State = 905; Match(FUNCTION); - State = 907; + State = 755; Match(FUNCTION); + State = 757; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 906; whiteSpace(); + State = 756; whiteSpace(); } } - State = 909; identifier(); - State = 911; - switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { + State = 759; identifier(); + State = 761; + switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { case 1: { - State = 910; typeHint(); + State = 760; typeHint(); } break; } - State = 917; - switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { + State = 767; + switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: { - State = 914; + State = 764; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 913; whiteSpace(); + State = 763; whiteSpace(); } } - State = 916; argList(); + State = 766; argList(); } break; } - State = 923; - switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { + State = 773; + switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: { - State = 920; + State = 770; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 919; whiteSpace(); + State = 769; whiteSpace(); } } - State = 922; asTypeClause(); + State = 772; asTypeClause(); } break; } - State = 925; endOfStatement(); - State = 927; + State = 775; endOfStatement(); + State = 777; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 926; block(); + State = 776; block(); } } - State = 929; Match(END_FUNCTION); + State = 779; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -4279,57 +3485,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GetStmtContext getStmt() { GetStmtContext _localctx = new GetStmtContext(_ctx, State); - EnterRule(_localctx, 74, RULE_getStmt); + EnterRule(_localctx, 58, RULE_getStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 931; Match(GET); - State = 932; whiteSpace(); - State = 933; fileNumber(); - State = 935; + State = 781; Match(GET); + State = 782; whiteSpace(); + State = 783; fileNumber(); + State = 785; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 934; whiteSpace(); + State = 784; whiteSpace(); } } - State = 937; Match(COMMA); - State = 939; - switch ( Interpreter.AdaptivePredict(_input,98,_ctx) ) { + State = 787; Match(COMMA); + State = 789; + switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: { - State = 938; whiteSpace(); + State = 788; whiteSpace(); } break; } - State = 942; - switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { + State = 792; + switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 941; valueStmt(0); + State = 791; valueStmt(0); } break; } - State = 945; + State = 795; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 944; whiteSpace(); + State = 794; whiteSpace(); } } - State = 947; Match(COMMA); - State = 949; - switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { + State = 797; Match(COMMA); + State = 799; + switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { case 1: { - State = 948; whiteSpace(); + State = 798; whiteSpace(); } break; } - State = 951; valueStmt(0); + State = 801; valueStmt(0); } } catch (RecognitionException re) { @@ -4374,13 +3580,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoSubStmtContext goSubStmt() { GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); - EnterRule(_localctx, 76, RULE_goSubStmt); + EnterRule(_localctx, 60, RULE_goSubStmt); try { EnterOuterAlt(_localctx, 1); { - State = 953; Match(GOSUB); - State = 954; whiteSpace(); - State = 955; valueStmt(0); + State = 803; Match(GOSUB); + State = 804; whiteSpace(); + State = 805; valueStmt(0); } } catch (RecognitionException re) { @@ -4425,13 +3631,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoToStmtContext goToStmt() { GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); - EnterRule(_localctx, 78, RULE_goToStmt); + EnterRule(_localctx, 62, RULE_goToStmt); try { EnterOuterAlt(_localctx, 1); { - State = 957; Match(GOTO); - State = 958; whiteSpace(); - State = 959; valueStmt(0); + State = 807; Match(GOTO); + State = 808; whiteSpace(); + State = 809; valueStmt(0); } } catch (RecognitionException re) { @@ -4524,30 +3730,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfThenElseStmtContext ifThenElseStmt() { IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 80, RULE_ifThenElseStmt); + EnterRule(_localctx, 64, RULE_ifThenElseStmt); int _la; try { - State = 987; - switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { + State = 837; + switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 961; Match(IF); - State = 962; whiteSpace(); - State = 963; ifConditionStmt(); - State = 964; whiteSpace(); - State = 965; Match(THEN); - State = 966; whiteSpace(); - State = 967; blockStmt(); - State = 973; - switch ( Interpreter.AdaptivePredict(_input,102,_ctx) ) { + State = 811; Match(IF); + State = 812; whiteSpace(); + State = 813; ifConditionStmt(); + State = 814; whiteSpace(); + State = 815; Match(THEN); + State = 816; whiteSpace(); + State = 817; blockStmt(); + State = 823; + switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 968; whiteSpace(); - State = 969; Match(ELSE); - State = 970; whiteSpace(); - State = 971; blockStmt(); + State = 818; whiteSpace(); + State = 819; Match(ELSE); + State = 820; whiteSpace(); + State = 821; blockStmt(); } break; } @@ -4558,29 +3764,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 975; ifBlockStmt(); - State = 979; + State = 825; ifBlockStmt(); + State = 829; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 976; ifElseIfBlockStmt(); + State = 826; ifElseIfBlockStmt(); } } - State = 981; + State = 831; _errHandler.Sync(this); _la = _input.La(1); } - State = 983; + State = 833; _la = _input.La(1); if (_la==ELSE) { { - State = 982; ifElseBlockStmt(); + State = 832; ifElseBlockStmt(); } } - State = 985; Match(END_IF); + State = 835; Match(END_IF); } break; } @@ -4637,21 +3843,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfBlockStmtContext ifBlockStmt() { IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 82, RULE_ifBlockStmt); + EnterRule(_localctx, 66, RULE_ifBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 989; Match(IF); - State = 990; whiteSpace(); - State = 991; ifConditionStmt(); - State = 992; whiteSpace(); - State = 993; Match(THEN); - State = 994; endOfStatement(); - State = 996; - switch ( Interpreter.AdaptivePredict(_input,106,_ctx) ) { + State = 839; Match(IF); + State = 840; whiteSpace(); + State = 841; ifConditionStmt(); + State = 842; whiteSpace(); + State = 843; Match(THEN); + State = 844; endOfStatement(); + State = 846; + switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 995; block(); + State = 845; block(); } break; } @@ -4695,11 +3901,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfConditionStmtContext ifConditionStmt() { IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); - EnterRule(_localctx, 84, RULE_ifConditionStmt); + EnterRule(_localctx, 68, RULE_ifConditionStmt); try { EnterOuterAlt(_localctx, 1); { - State = 998; valueStmt(0); + State = 848; valueStmt(0); } } catch (RecognitionException re) { @@ -4754,21 +3960,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseIfBlockStmtContext ifElseIfBlockStmt() { IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 86, RULE_ifElseIfBlockStmt); + EnterRule(_localctx, 70, RULE_ifElseIfBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1000; Match(ELSEIF); - State = 1001; whiteSpace(); - State = 1002; ifConditionStmt(); - State = 1003; whiteSpace(); - State = 1004; Match(THEN); - State = 1005; endOfStatement(); - State = 1007; - switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { + State = 850; Match(ELSEIF); + State = 851; whiteSpace(); + State = 852; ifConditionStmt(); + State = 853; whiteSpace(); + State = 854; Match(THEN); + State = 855; endOfStatement(); + State = 857; + switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { case 1: { - State = 1006; block(); + State = 856; block(); } break; } @@ -4816,17 +4022,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseBlockStmtContext ifElseBlockStmt() { IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 88, RULE_ifElseBlockStmt); + EnterRule(_localctx, 72, RULE_ifElseBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1009; Match(ELSE); - State = 1010; endOfStatement(); - State = 1012; - switch ( Interpreter.AdaptivePredict(_input,108,_ctx) ) { + State = 859; Match(ELSE); + State = 860; endOfStatement(); + State = 862; + switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 1011; block(); + State = 861; block(); } break; } @@ -4874,13 +4080,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplementsStmtContext implementsStmt() { ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); - EnterRule(_localctx, 90, RULE_implementsStmt); + EnterRule(_localctx, 74, RULE_implementsStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1014; Match(IMPLEMENTS); - State = 1015; whiteSpace(); - State = 1016; valueStmt(0); + State = 864; Match(IMPLEMENTS); + State = 865; whiteSpace(); + State = 866; valueStmt(0); } } catch (RecognitionException re) { @@ -4938,16 +4144,16 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public InputStmtContext inputStmt() { InputStmtContext _localctx = new InputStmtContext(_ctx, State); - EnterRule(_localctx, 92, RULE_inputStmt); + EnterRule(_localctx, 76, RULE_inputStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1018; Match(INPUT); - State = 1019; whiteSpace(); - State = 1020; fileNumber(); - State = 1029; + State = 868; Match(INPUT); + State = 869; whiteSpace(); + State = 870; fileNumber(); + State = 879; _errHandler.Sync(this); _alt = 1; do { @@ -4955,33 +4161,33 @@ public InputStmtContext inputStmt() { case 1: { { - State = 1022; + State = 872; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1021; whiteSpace(); + State = 871; whiteSpace(); } } - State = 1024; Match(COMMA); - State = 1026; - switch ( Interpreter.AdaptivePredict(_input,110,_ctx) ) { + State = 874; Match(COMMA); + State = 876; + switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 1025; whiteSpace(); + State = 875; whiteSpace(); } break; } - State = 1028; valueStmt(0); + State = 878; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 1031; + State = 881; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,111,_ctx); + _alt = Interpreter.AdaptivePredict(_input,96,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -4996,128 +4202,77 @@ public InputStmtContext inputStmt() { return _localctx; } - public partial class KillStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); + public partial class LetStmtContext : ParserRuleContext { + public WhiteSpaceContext whiteSpace(int i) { + return GetRuleContext(i); } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); + public IReadOnlyList valueStmt() { + return GetRuleContexts(); + } + public IReadOnlyList whiteSpace() { + return GetRuleContexts(); + } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); } - public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } - public KillStmtContext(ParserRuleContext parent, int invokingState) + public LetStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_killStmt; } } + public override int RuleIndex { get { return RULE_letStmt; } } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterKillStmt(this); + if (typedListener != null) typedListener.EnterLetStmt(this); } public override void ExitRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitKillStmt(this); + if (typedListener != null) typedListener.ExitLetStmt(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitKillStmt(this); + if (typedVisitor != null) return typedVisitor.VisitLetStmt(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public KillStmtContext killStmt() { - KillStmtContext _localctx = new KillStmtContext(_ctx, State); - EnterRule(_localctx, 94, RULE_killStmt); + public LetStmtContext letStmt() { + LetStmtContext _localctx = new LetStmtContext(_ctx, State); + EnterRule(_localctx, 78, RULE_letStmt); + int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1033; Match(KILL); - State = 1034; whiteSpace(); - State = 1035; valueStmt(0); + State = 885; + _la = _input.La(1); + if (_la==LET) { + { + State = 883; Match(LET); + State = 884; whiteSpace(); + } } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - public partial class LetStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); - } - public ITerminalNode LET() { return GetToken(VBAParser.LET, 0); } - public LetStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_letStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterLetStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitLetStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitLetStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LetStmtContext letStmt() { - LetStmtContext _localctx = new LetStmtContext(_ctx, State); - EnterRule(_localctx, 96, RULE_letStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1039; - _la = _input.La(1); - if (_la==LET) { - { - State = 1037; Match(LET); - State = 1038; whiteSpace(); - } - } - - State = 1041; implicitCallStmt_InStmt(); - State = 1043; + State = 887; valueStmt(0); + State = 889; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1042; whiteSpace(); + State = 888; whiteSpace(); } } - State = 1045; Match(EQ); - State = 1047; - switch ( Interpreter.AdaptivePredict(_input,114,_ctx) ) { + State = 891; Match(EQ); + State = 893; + switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 1046; whiteSpace(); + State = 892; whiteSpace(); } break; } - State = 1049; valueStmt(0); + State = 895; valueStmt(0); } } catch (RecognitionException re) { @@ -5169,83 +4324,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineInputStmtContext lineInputStmt() { LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); - EnterRule(_localctx, 98, RULE_lineInputStmt); + EnterRule(_localctx, 80, RULE_lineInputStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1051; Match(LINE_INPUT); - State = 1052; whiteSpace(); - State = 1053; fileNumber(); - State = 1055; + State = 897; Match(LINE_INPUT); + State = 898; whiteSpace(); + State = 899; fileNumber(); + State = 901; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1054; whiteSpace(); + State = 900; whiteSpace(); } } - State = 1057; Match(COMMA); - State = 1059; - switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { + State = 903; Match(COMMA); + State = 905; + switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 1058; whiteSpace(); + State = 904; whiteSpace(); } break; } - State = 1061; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class LoadStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public LoadStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_loadStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterLoadStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitLoadStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitLoadStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LoadStmtContext loadStmt() { - LoadStmtContext _localctx = new LoadStmtContext(_ctx, State); - EnterRule(_localctx, 100, RULE_loadStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1063; Match(LOAD); - State = 1064; whiteSpace(); - State = 1065; valueStmt(0); + State = 907; valueStmt(0); } } catch (RecognitionException re) { @@ -5298,44 +4402,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LockStmtContext lockStmt() { LockStmtContext _localctx = new LockStmtContext(_ctx, State); - EnterRule(_localctx, 102, RULE_lockStmt); + EnterRule(_localctx, 82, RULE_lockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1067; Match(LOCK); - State = 1068; whiteSpace(); - State = 1069; valueStmt(0); - State = 1085; - switch ( Interpreter.AdaptivePredict(_input,120,_ctx) ) { + State = 909; Match(LOCK); + State = 910; whiteSpace(); + State = 911; valueStmt(0); + State = 927; + switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: { - State = 1071; + State = 913; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1070; whiteSpace(); + State = 912; whiteSpace(); } } - State = 1073; Match(COMMA); - State = 1075; - switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { + State = 915; Match(COMMA); + State = 917; + switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { case 1: { - State = 1074; whiteSpace(); + State = 916; whiteSpace(); } break; } - State = 1077; valueStmt(0); - State = 1083; - switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { + State = 919; valueStmt(0); + State = 925; + switch ( Interpreter.AdaptivePredict(_input,104,_ctx) ) { case 1: { - State = 1078; whiteSpace(); - State = 1079; Match(TO); - State = 1080; whiteSpace(); - State = 1081; valueStmt(0); + State = 920; whiteSpace(); + State = 921; Match(TO); + State = 922; whiteSpace(); + State = 923; valueStmt(0); } break; } @@ -5359,16 +4463,16 @@ public partial class LsetStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); + public IReadOnlyList valueStmt() { + return GetRuleContexts(); } public ITerminalNode LSET() { return GetToken(VBAParser.LSET, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); } public LsetStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -5393,32 +4497,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LsetStmtContext lsetStmt() { LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); - EnterRule(_localctx, 104, RULE_lsetStmt); + EnterRule(_localctx, 84, RULE_lsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1087; Match(LSET); - State = 1088; whiteSpace(); - State = 1089; implicitCallStmt_InStmt(); - State = 1091; + State = 929; Match(LSET); + State = 930; whiteSpace(); + State = 931; valueStmt(0); + State = 933; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1090; whiteSpace(); + State = 932; whiteSpace(); } } - State = 1093; Match(EQ); - State = 1095; - switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { + State = 935; Match(EQ); + State = 937; + switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 1094; whiteSpace(); + State = 936; whiteSpace(); } break; } - State = 1097; valueStmt(0); + State = 939; valueStmt(0); } } catch (RecognitionException re) { @@ -5468,152 +4572,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MidStmtContext midStmt() { MidStmtContext _localctx = new MidStmtContext(_ctx, State); - EnterRule(_localctx, 106, RULE_midStmt); + EnterRule(_localctx, 86, RULE_midStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1099; Match(MID); - State = 1101; + State = 941; Match(MID); + State = 943; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1100; whiteSpace(); + State = 942; whiteSpace(); } } - State = 1103; Match(LPAREN); - State = 1105; - switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { + State = 945; Match(LPAREN); + State = 947; + switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { case 1: { - State = 1104; whiteSpace(); + State = 946; whiteSpace(); } break; } - State = 1107; argsCall(); - State = 1109; + State = 949; argsCall(); + State = 951; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1108; whiteSpace(); + State = 950; whiteSpace(); } } - State = 1111; Match(RPAREN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class MkdirStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } - public MkdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_mkdirStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterMkdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitMkdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitMkdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public MkdirStmtContext mkdirStmt() { - MkdirStmtContext _localctx = new MkdirStmtContext(_ctx, State); - EnterRule(_localctx, 108, RULE_mkdirStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1113; Match(MKDIR); - State = 1114; whiteSpace(); - State = 1115; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class NameStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } - public NameStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_nameStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterNameStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitNameStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitNameStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public NameStmtContext nameStmt() { - NameStmtContext _localctx = new NameStmtContext(_ctx, State); - EnterRule(_localctx, 110, RULE_nameStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1117; Match(NAME); - State = 1118; whiteSpace(); - State = 1119; valueStmt(0); - State = 1120; whiteSpace(); - State = 1121; Match(AS); - State = 1122; whiteSpace(); - State = 1123; valueStmt(0); + State = 953; Match(RPAREN); } } catch (RecognitionException re) { @@ -5665,32 +4656,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnErrorStmtContext onErrorStmt() { OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); - EnterRule(_localctx, 112, RULE_onErrorStmt); + EnterRule(_localctx, 88, RULE_onErrorStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1125; + State = 955; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1126; whiteSpace(); - State = 1135; + State = 956; whiteSpace(); + State = 965; switch (_input.La(1)) { case GOTO: { - State = 1127; Match(GOTO); - State = 1128; whiteSpace(); - State = 1129; valueStmt(0); + State = 957; Match(GOTO); + State = 958; whiteSpace(); + State = 959; valueStmt(0); } break; case RESUME: { - State = 1131; Match(RESUME); - State = 1132; whiteSpace(); - State = 1133; Match(NEXT); + State = 961; Match(RESUME); + State = 962; whiteSpace(); + State = 963; Match(NEXT); } break; default: @@ -5751,50 +4742,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoToStmtContext onGoToStmt() { OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); - EnterRule(_localctx, 114, RULE_onGoToStmt); + EnterRule(_localctx, 90, RULE_onGoToStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1137; Match(ON); - State = 1138; whiteSpace(); - State = 1139; valueStmt(0); - State = 1140; whiteSpace(); - State = 1141; Match(GOTO); - State = 1142; whiteSpace(); - State = 1143; valueStmt(0); - State = 1154; + State = 967; Match(ON); + State = 968; whiteSpace(); + State = 969; valueStmt(0); + State = 970; whiteSpace(); + State = 971; Match(GOTO); + State = 972; whiteSpace(); + State = 973; valueStmt(0); + State = 984; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,129,_ctx); + _alt = Interpreter.AdaptivePredict(_input,114,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1145; + State = 975; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1144; whiteSpace(); + State = 974; whiteSpace(); } } - State = 1147; Match(COMMA); - State = 1149; - switch ( Interpreter.AdaptivePredict(_input,128,_ctx) ) { + State = 977; Match(COMMA); + State = 979; + switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { case 1: { - State = 1148; whiteSpace(); + State = 978; whiteSpace(); } break; } - State = 1151; valueStmt(0); + State = 981; valueStmt(0); } } } - State = 1156; + State = 986; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,129,_ctx); + _alt = Interpreter.AdaptivePredict(_input,114,_ctx); } } } @@ -5851,50 +4842,50 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoSubStmtContext onGoSubStmt() { OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); - EnterRule(_localctx, 116, RULE_onGoSubStmt); + EnterRule(_localctx, 92, RULE_onGoSubStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1157; Match(ON); - State = 1158; whiteSpace(); - State = 1159; valueStmt(0); - State = 1160; whiteSpace(); - State = 1161; Match(GOSUB); - State = 1162; whiteSpace(); - State = 1163; valueStmt(0); - State = 1174; + State = 987; Match(ON); + State = 988; whiteSpace(); + State = 989; valueStmt(0); + State = 990; whiteSpace(); + State = 991; Match(GOSUB); + State = 992; whiteSpace(); + State = 993; valueStmt(0); + State = 1004; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + _alt = Interpreter.AdaptivePredict(_input,117,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1165; + State = 995; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1164; whiteSpace(); + State = 994; whiteSpace(); } } - State = 1167; Match(COMMA); - State = 1169; - switch ( Interpreter.AdaptivePredict(_input,131,_ctx) ) { + State = 997; Match(COMMA); + State = 999; + switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 1168; whiteSpace(); + State = 998; whiteSpace(); } break; } - State = 1171; valueStmt(0); + State = 1001; valueStmt(0); } } } - State = 1176; + State = 1006; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,132,_ctx); + _alt = Interpreter.AdaptivePredict(_input,117,_ctx); } } } @@ -5966,81 +4957,81 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OpenStmtContext openStmt() { OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); - EnterRule(_localctx, 118, RULE_openStmt); + EnterRule(_localctx, 94, RULE_openStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1177; Match(OPEN); - State = 1178; whiteSpace(); - State = 1179; valueStmt(0); - State = 1180; whiteSpace(); - State = 1181; Match(FOR); - State = 1182; whiteSpace(); - State = 1183; + State = 1007; Match(OPEN); + State = 1008; whiteSpace(); + State = 1009; valueStmt(0); + State = 1010; whiteSpace(); + State = 1011; Match(FOR); + State = 1012; whiteSpace(); + State = 1013; _la = _input.La(1); - if ( !(_la==APPEND || _la==BINARY || ((((_la - 127)) & ~0x3f) == 0 && ((1L << (_la - 127)) & ((1L << (INPUT - 127)) | (1L << (OUTPUT - 127)) | (1L << (RANDOM - 127)))) != 0)) ) { + if ( !(_la==APPEND || _la==BINARY || ((((_la - 121)) & ~0x3f) == 0 && ((1L << (_la - 121)) & ((1L << (INPUT - 121)) | (1L << (OUTPUT - 121)) | (1L << (RANDOM - 121)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1189; - switch ( Interpreter.AdaptivePredict(_input,133,_ctx) ) { + State = 1019; + switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1184; whiteSpace(); - State = 1185; Match(ACCESS); - State = 1186; whiteSpace(); - State = 1187; + State = 1014; whiteSpace(); + State = 1015; Match(ACCESS); + State = 1016; whiteSpace(); + State = 1017; _la = _input.La(1); - if ( !(((((_la - 177)) & ~0x3f) == 0 && ((1L << (_la - 177)) & ((1L << (READ - 177)) | (1L << (READ_WRITE - 177)) | (1L << (WRITE - 177)))) != 0)) ) { + if ( !(((((_la - 166)) & ~0x3f) == 0 && ((1L << (_la - 166)) & ((1L << (READ - 166)) | (1L << (READ_WRITE - 166)) | (1L << (WRITE - 166)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); } break; } - State = 1194; - switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { + State = 1024; + switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1191; whiteSpace(); - State = 1192; + State = 1021; whiteSpace(); + State = 1022; _la = _input.La(1); - if ( !(((((_la - 139)) & ~0x3f) == 0 && ((1L << (_la - 139)) & ((1L << (LOCK_READ - 139)) | (1L << (LOCK_WRITE - 139)) | (1L << (LOCK_READ_WRITE - 139)) | (1L << (SHARED - 139)))) != 0)) ) { + if ( !(((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (LOCK_READ - 131)) | (1L << (LOCK_WRITE - 131)) | (1L << (LOCK_READ_WRITE - 131)) | (1L << (SHARED - 131)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); } break; } - State = 1196; whiteSpace(); - State = 1197; Match(AS); - State = 1198; whiteSpace(); - State = 1199; fileNumber(); - State = 1211; - switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { + State = 1026; whiteSpace(); + State = 1027; Match(AS); + State = 1028; whiteSpace(); + State = 1029; fileNumber(); + State = 1041; + switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1200; whiteSpace(); - State = 1201; Match(LEN); - State = 1203; + State = 1030; whiteSpace(); + State = 1031; Match(LEN); + State = 1033; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1202; whiteSpace(); + State = 1032; whiteSpace(); } } - State = 1205; Match(EQ); - State = 1207; - switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { + State = 1035; Match(EQ); + State = 1037; + switch ( Interpreter.AdaptivePredict(_input,121,_ctx) ) { case 1: { - State = 1206; whiteSpace(); + State = 1036; whiteSpace(); } break; } - State = 1209; valueStmt(0); + State = 1039; valueStmt(0); } break; } @@ -6101,59 +5092,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputListContext outputList() { OutputListContext _localctx = new OutputListContext(_ctx, State); - EnterRule(_localctx, 120, RULE_outputList); + EnterRule(_localctx, 96, RULE_outputList); int _la; try { int _alt; - State = 1246; - switch ( Interpreter.AdaptivePredict(_input,147,_ctx) ) { + State = 1076; + switch ( Interpreter.AdaptivePredict(_input,132,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1213; outputList_Expression(); - State = 1226; + State = 1043; outputList_Expression(); + State = 1056; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,141,_ctx); + _alt = Interpreter.AdaptivePredict(_input,126,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1215; + State = 1045; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1214; whiteSpace(); + State = 1044; whiteSpace(); } } - State = 1217; + State = 1047; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1219; - switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { + State = 1049; + switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1218; whiteSpace(); + State = 1048; whiteSpace(); } break; } - State = 1222; - switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { + State = 1052; + switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { case 1: { - State = 1221; outputList_Expression(); + State = 1051; outputList_Expression(); } break; } } } } - State = 1228; + State = 1058; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,141,_ctx); + _alt = Interpreter.AdaptivePredict(_input,126,_ctx); } } break; @@ -6161,15 +5152,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1230; - switch ( Interpreter.AdaptivePredict(_input,142,_ctx) ) { + State = 1060; + switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { case 1: { - State = 1229; outputList_Expression(); + State = 1059; outputList_Expression(); } break; } - State = 1242; + State = 1072; _errHandler.Sync(this); _alt = 1; do { @@ -6177,33 +5168,33 @@ public OutputListContext outputList() { case 1: { { - State = 1233; + State = 1063; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1232; whiteSpace(); + State = 1062; whiteSpace(); } } - State = 1235; + State = 1065; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1237; - switch ( Interpreter.AdaptivePredict(_input,144,_ctx) ) { + State = 1067; + switch ( Interpreter.AdaptivePredict(_input,129,_ctx) ) { case 1: { - State = 1236; whiteSpace(); + State = 1066; whiteSpace(); } break; } - State = 1240; - switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { + State = 1070; + switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { case 1: { - State = 1239; outputList_Expression(); + State = 1069; outputList_Expression(); } break; } @@ -6213,9 +5204,9 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1244; + State = 1074; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,146,_ctx); + _alt = Interpreter.AdaptivePredict(_input,131,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; @@ -6272,58 +5263,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputList_ExpressionContext outputList_Expression() { OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); - EnterRule(_localctx, 122, RULE_outputList_Expression); + EnterRule(_localctx, 98, RULE_outputList_Expression); int _la; try { - State = 1265; - switch ( Interpreter.AdaptivePredict(_input,152,_ctx) ) { + State = 1095; + switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1248; valueStmt(0); + State = 1078; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1249; + State = 1079; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1263; - switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { + State = 1093; + switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1251; + State = 1081; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1250; whiteSpace(); + State = 1080; whiteSpace(); } } - State = 1253; Match(LPAREN); - State = 1255; - switch ( Interpreter.AdaptivePredict(_input,149,_ctx) ) { + State = 1083; Match(LPAREN); + State = 1085; + switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { case 1: { - State = 1254; whiteSpace(); + State = 1084; whiteSpace(); } break; } - State = 1257; argsCall(); - State = 1259; + State = 1087; argsCall(); + State = 1089; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1258; whiteSpace(); + State = 1088; whiteSpace(); } } - State = 1261; Match(RPAREN); + State = 1091; Match(RPAREN); } break; } @@ -6380,36 +5371,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PrintStmtContext printStmt() { PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); - EnterRule(_localctx, 124, RULE_printStmt); + EnterRule(_localctx, 100, RULE_printStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1267; Match(PRINT); - State = 1268; whiteSpace(); - State = 1269; fileNumber(); - State = 1271; + State = 1097; Match(PRINT); + State = 1098; whiteSpace(); + State = 1099; fileNumber(); + State = 1101; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1270; whiteSpace(); + State = 1100; whiteSpace(); } } - State = 1273; Match(COMMA); - State = 1278; - switch ( Interpreter.AdaptivePredict(_input,155,_ctx) ) { + State = 1103; Match(COMMA); + State = 1108; + switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1275; - switch ( Interpreter.AdaptivePredict(_input,154,_ctx) ) { + State = 1105; + switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1274; whiteSpace(); + State = 1104; whiteSpace(); } break; } - State = 1277; outputList(); + State = 1107; outputList(); } break; } @@ -6480,75 +5471,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyGetStmtContext propertyGetStmt() { PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); - EnterRule(_localctx, 126, RULE_propertyGetStmt); + EnterRule(_localctx, 102, RULE_propertyGetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1283; + State = 1113; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1280; visibility(); - State = 1281; whiteSpace(); + State = 1110; visibility(); + State = 1111; whiteSpace(); } } - State = 1287; + State = 1117; _la = _input.La(1); if (_la==STATIC) { { - State = 1285; Match(STATIC); - State = 1286; whiteSpace(); + State = 1115; Match(STATIC); + State = 1116; whiteSpace(); } } - State = 1289; Match(PROPERTY_GET); - State = 1290; whiteSpace(); - State = 1291; identifier(); - State = 1293; - switch ( Interpreter.AdaptivePredict(_input,158,_ctx) ) { + State = 1119; Match(PROPERTY_GET); + State = 1120; whiteSpace(); + State = 1121; identifier(); + State = 1123; + switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { case 1: { - State = 1292; typeHint(); + State = 1122; typeHint(); } break; } - State = 1299; - switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { + State = 1129; + switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1296; + State = 1126; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1295; whiteSpace(); + State = 1125; whiteSpace(); } } - State = 1298; argList(); + State = 1128; argList(); } break; } - State = 1304; - switch ( Interpreter.AdaptivePredict(_input,161,_ctx) ) { + State = 1134; + switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { case 1: { - State = 1301; whiteSpace(); - State = 1302; asTypeClause(); + State = 1131; whiteSpace(); + State = 1132; asTypeClause(); } break; } - State = 1306; endOfStatement(); - State = 1308; + State = 1136; endOfStatement(); + State = 1138; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1307; block(); + State = 1137; block(); } } - State = 1310; Match(END_PROPERTY); + State = 1140; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6610,58 +5601,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertySetStmtContext propertySetStmt() { PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); - EnterRule(_localctx, 128, RULE_propertySetStmt); + EnterRule(_localctx, 104, RULE_propertySetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1315; + State = 1145; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1312; visibility(); - State = 1313; whiteSpace(); + State = 1142; visibility(); + State = 1143; whiteSpace(); } } - State = 1319; + State = 1149; _la = _input.La(1); if (_la==STATIC) { { - State = 1317; Match(STATIC); - State = 1318; whiteSpace(); + State = 1147; Match(STATIC); + State = 1148; whiteSpace(); } } - State = 1321; Match(PROPERTY_SET); - State = 1322; whiteSpace(); - State = 1323; identifier(); - State = 1328; - switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { + State = 1151; Match(PROPERTY_SET); + State = 1152; whiteSpace(); + State = 1153; identifier(); + State = 1158; + switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1325; + State = 1155; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1324; whiteSpace(); + State = 1154; whiteSpace(); } } - State = 1327; argList(); + State = 1157; argList(); } break; } - State = 1330; endOfStatement(); - State = 1332; + State = 1160; endOfStatement(); + State = 1162; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1331; block(); + State = 1161; block(); } } - State = 1334; Match(END_PROPERTY); + State = 1164; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6723,58 +5714,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyLetStmtContext propertyLetStmt() { PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); - EnterRule(_localctx, 130, RULE_propertyLetStmt); + EnterRule(_localctx, 106, RULE_propertyLetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1339; + State = 1169; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1336; visibility(); - State = 1337; whiteSpace(); + State = 1166; visibility(); + State = 1167; whiteSpace(); } } - State = 1343; + State = 1173; _la = _input.La(1); if (_la==STATIC) { { - State = 1341; Match(STATIC); - State = 1342; whiteSpace(); + State = 1171; Match(STATIC); + State = 1172; whiteSpace(); } } - State = 1345; Match(PROPERTY_LET); - State = 1346; whiteSpace(); - State = 1347; identifier(); - State = 1352; - switch ( Interpreter.AdaptivePredict(_input,171,_ctx) ) { + State = 1175; Match(PROPERTY_LET); + State = 1176; whiteSpace(); + State = 1177; identifier(); + State = 1182; + switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { case 1: { - State = 1349; + State = 1179; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1348; whiteSpace(); + State = 1178; whiteSpace(); } } - State = 1351; argList(); + State = 1181; argList(); } break; } - State = 1354; endOfStatement(); - State = 1356; + State = 1184; endOfStatement(); + State = 1186; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1355; block(); + State = 1185; block(); } } - State = 1358; Match(END_PROPERTY); + State = 1188; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -6832,57 +5823,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PutStmtContext putStmt() { PutStmtContext _localctx = new PutStmtContext(_ctx, State); - EnterRule(_localctx, 132, RULE_putStmt); + EnterRule(_localctx, 108, RULE_putStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1360; Match(PUT); - State = 1361; whiteSpace(); - State = 1362; fileNumber(); - State = 1364; + State = 1190; Match(PUT); + State = 1191; whiteSpace(); + State = 1192; fileNumber(); + State = 1194; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1363; whiteSpace(); + State = 1193; whiteSpace(); } } - State = 1366; Match(COMMA); - State = 1368; - switch ( Interpreter.AdaptivePredict(_input,174,_ctx) ) { + State = 1196; Match(COMMA); + State = 1198; + switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { case 1: { - State = 1367; whiteSpace(); + State = 1197; whiteSpace(); } break; } - State = 1371; - switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { + State = 1201; + switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1370; valueStmt(0); + State = 1200; valueStmt(0); } break; } - State = 1374; + State = 1204; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1373; whiteSpace(); + State = 1203; whiteSpace(); } } - State = 1376; Match(COMMA); - State = 1378; - switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { + State = 1206; Match(COMMA); + State = 1208; + switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { case 1: { - State = 1377; whiteSpace(); + State = 1207; whiteSpace(); } break; } - State = 1380; valueStmt(0); + State = 1210; valueStmt(0); } } catch (RecognitionException re) { @@ -6935,110 +5926,52 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RaiseEventStmtContext raiseEventStmt() { RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); - EnterRule(_localctx, 134, RULE_raiseEventStmt); + EnterRule(_localctx, 110, RULE_raiseEventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1382; Match(RAISEEVENT); - State = 1383; whiteSpace(); - State = 1384; identifier(); - State = 1399; - switch ( Interpreter.AdaptivePredict(_input,182,_ctx) ) { + State = 1212; Match(RAISEEVENT); + State = 1213; whiteSpace(); + State = 1214; identifier(); + State = 1229; + switch ( Interpreter.AdaptivePredict(_input,167,_ctx) ) { case 1: { - State = 1386; + State = 1216; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1385; whiteSpace(); + State = 1215; whiteSpace(); } } - State = 1388; Match(LPAREN); - State = 1390; - switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { + State = 1218; Match(LPAREN); + State = 1220; + switch ( Interpreter.AdaptivePredict(_input,164,_ctx) ) { case 1: { - State = 1389; whiteSpace(); + State = 1219; whiteSpace(); } break; } - State = 1396; - switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { + State = 1226; + switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1392; argsCall(); - State = 1394; + State = 1222; argsCall(); + State = 1224; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1393; whiteSpace(); + State = 1223; whiteSpace(); } } } break; } - State = 1398; Match(RPAREN); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class RandomizeStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } - public RandomizeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_randomizeStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterRandomizeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitRandomizeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitRandomizeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RandomizeStmtContext randomizeStmt() { - RandomizeStmtContext _localctx = new RandomizeStmtContext(_ctx, State); - EnterRule(_localctx, 136, RULE_randomizeStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1401; Match(RANDOMIZE); - State = 1405; - switch ( Interpreter.AdaptivePredict(_input,183,_ctx) ) { - case 1: - { - State = 1402; whiteSpace(); - State = 1403; valueStmt(0); + State = 1228; Match(RPAREN); } break; } @@ -7097,55 +6030,55 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimStmtContext redimStmt() { RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); - EnterRule(_localctx, 138, RULE_redimStmt); + EnterRule(_localctx, 112, RULE_redimStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1407; Match(REDIM); - State = 1408; whiteSpace(); - State = 1411; - switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { + State = 1231; Match(REDIM); + State = 1232; whiteSpace(); + State = 1235; + switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { case 1: { - State = 1409; Match(PRESERVE); - State = 1410; whiteSpace(); + State = 1233; Match(PRESERVE); + State = 1234; whiteSpace(); } break; } - State = 1413; redimSubStmt(); - State = 1424; + State = 1237; redimSubStmt(); + State = 1248; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,187,_ctx); + _alt = Interpreter.AdaptivePredict(_input,171,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1415; + State = 1239; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1414; whiteSpace(); + State = 1238; whiteSpace(); } } - State = 1417; Match(COMMA); - State = 1419; - switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + State = 1241; Match(COMMA); + State = 1243; + switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { case 1: { - State = 1418; whiteSpace(); + State = 1242; whiteSpace(); } break; } - State = 1421; redimSubStmt(); + State = 1245; redimSubStmt(); } } } - State = 1426; + State = 1250; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,187,_ctx); + _alt = Interpreter.AdaptivePredict(_input,171,_ctx); } } } @@ -7201,45 +6134,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimSubStmtContext redimSubStmt() { RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); - EnterRule(_localctx, 140, RULE_redimSubStmt); + EnterRule(_localctx, 114, RULE_redimSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1427; implicitCallStmt_InStmt(); - State = 1429; + State = 1251; implicitCallStmt_InStmt(); + State = 1253; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1428; whiteSpace(); + State = 1252; whiteSpace(); } } - State = 1431; Match(LPAREN); - State = 1433; - switch ( Interpreter.AdaptivePredict(_input,189,_ctx) ) { + State = 1255; Match(LPAREN); + State = 1257; + switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { case 1: { - State = 1432; whiteSpace(); + State = 1256; whiteSpace(); } break; } - State = 1435; subscripts(); - State = 1437; + State = 1259; subscripts(); + State = 1261; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1436; whiteSpace(); + State = 1260; whiteSpace(); } } - State = 1439; Match(RPAREN); - State = 1443; - switch ( Interpreter.AdaptivePredict(_input,191,_ctx) ) { + State = 1263; Match(RPAREN); + State = 1267; + switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1440; whiteSpace(); - State = 1441; asTypeClause(); + State = 1264; whiteSpace(); + State = 1265; asTypeClause(); } break; } @@ -7281,11 +6214,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResetStmtContext resetStmt() { ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_resetStmt); + EnterRule(_localctx, 116, RULE_resetStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1445; Match(RESET); + State = 1269; Match(RESET); } } catch (RecognitionException re) { @@ -7301,13 +6234,13 @@ public ResetStmtContext resetStmt() { public partial class ResumeStmtContext : ParserRuleContext { public ITerminalNode NEXT() { return GetToken(VBAParser.NEXT, 0); } + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } public ITerminalNode RESUME() { return GetToken(VBAParser.RESUME, 0); } public WhiteSpaceContext whiteSpace() { return GetRuleContext(0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public ResumeStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -7331,21 +6264,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResumeStmtContext resumeStmt() { ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); - EnterRule(_localctx, 144, RULE_resumeStmt); + EnterRule(_localctx, 118, RULE_resumeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1447; Match(RESUME); - State = 1453; - switch ( Interpreter.AdaptivePredict(_input,193,_ctx) ) { + State = 1271; Match(RESUME); + State = 1277; + switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1448; whiteSpace(); - State = 1451; + State = 1272; whiteSpace(); + State = 1275; switch (_input.La(1)) { case NEXT: { - State = 1449; Match(NEXT); + State = 1273; Match(NEXT); } break; case ABS: @@ -7384,43 +6317,36 @@ public ResumeStmtContext resumeStmt() { case SCALE: case SGN: case UBOUND: + case EXCLAMATIONPOINT: + case DOT: case ADDRESSOF: case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: + case EMPTY: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -7429,33 +6355,40 @@ public ResumeStmtContext resumeStmt() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: case WITHEVENTS: case XOR: + case LPAREN: + case MINUS: + case STRINGLITERAL: + case OCTLITERAL: + case HEXLITERAL: + case FLOATLITERAL: + case INTEGERLITERAL: + case DATELITERAL: + case WS: case IDENTIFIER: + case LINE_CONTINUATION: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: { - State = 1450; identifier(); + State = 1274; valueStmt(0); } break; default: @@ -7502,62 +6435,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReturnStmtContext returnStmt() { ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); - EnterRule(_localctx, 146, RULE_returnStmt); + EnterRule(_localctx, 120, RULE_returnStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1455; Match(RETURN); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class RmdirStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public RmdirStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_rmdirStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterRmdirStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitRmdirStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitRmdirStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RmdirStmtContext rmdirStmt() { - RmdirStmtContext _localctx = new RmdirStmtContext(_ctx, State); - EnterRule(_localctx, 148, RULE_rmdirStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1457; Match(RMDIR); - State = 1458; whiteSpace(); - State = 1459; valueStmt(0); + State = 1279; Match(RETURN); } } catch (RecognitionException re) { @@ -7575,16 +6457,16 @@ public partial class RsetStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); + public IReadOnlyList valueStmt() { + return GetRuleContexts(); } public ITerminalNode RSET() { return GetToken(VBAParser.RSET, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public ValueStmtContext valueStmt(int i) { + return GetRuleContext(i); } public RsetStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -7603,231 +6485,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; if (typedVisitor != null) return typedVisitor.VisitRsetStmt(this); else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public RsetStmtContext rsetStmt() { - RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_rsetStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1461; Match(RSET); - State = 1462; whiteSpace(); - State = 1463; implicitCallStmt_InStmt(); - State = 1465; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1464; whiteSpace(); - } - } - - State = 1467; Match(EQ); - State = 1469; - switch ( Interpreter.AdaptivePredict(_input,195,_ctx) ) { - case 1: - { - State = 1468; whiteSpace(); - } - break; - } - State = 1471; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class SavepictureStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public SavepictureStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_savepictureStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterSavepictureStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitSavepictureStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitSavepictureStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SavepictureStmtContext savepictureStmt() { - SavepictureStmtContext _localctx = new SavepictureStmtContext(_ctx, State); - EnterRule(_localctx, 152, RULE_savepictureStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1473; Match(SAVEPICTURE); - State = 1474; whiteSpace(); - State = 1475; valueStmt(0); - State = 1477; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1476; whiteSpace(); - } - } - - State = 1479; Match(COMMA); - State = 1481; - switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { - case 1: - { - State = 1480; whiteSpace(); - } - break; - } - State = 1483; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class SaveSettingStmtContext : ParserRuleContext { - public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public IReadOnlyList COMMA() { return GetTokens(VBAParser.COMMA); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public ITerminalNode COMMA(int i) { - return GetToken(VBAParser.COMMA, i); - } - public SaveSettingStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_saveSettingStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterSaveSettingStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitSaveSettingStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitSaveSettingStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SaveSettingStmtContext saveSettingStmt() { - SaveSettingStmtContext _localctx = new SaveSettingStmtContext(_ctx, State); - EnterRule(_localctx, 154, RULE_saveSettingStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1485; Match(SAVESETTING); - State = 1486; whiteSpace(); - State = 1487; valueStmt(0); - State = 1489; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1488; whiteSpace(); - } - } - - State = 1491; Match(COMMA); - State = 1493; - switch ( Interpreter.AdaptivePredict(_input,199,_ctx) ) { - case 1: - { - State = 1492; whiteSpace(); - } - break; - } - State = 1495; valueStmt(0); - State = 1497; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1496; whiteSpace(); - } - } - - State = 1499; Match(COMMA); - State = 1501; - switch ( Interpreter.AdaptivePredict(_input,201,_ctx) ) { - case 1: - { - State = 1500; whiteSpace(); - } - break; - } - State = 1503; valueStmt(0); - State = 1505; + } + } + + [RuleVersion(0)] + public RsetStmtContext rsetStmt() { + RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); + EnterRule(_localctx, 122, RULE_rsetStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 1281; Match(RSET); + State = 1282; whiteSpace(); + State = 1283; valueStmt(0); + State = 1285; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1504; whiteSpace(); + State = 1284; whiteSpace(); } } - State = 1507; Match(COMMA); - State = 1509; - switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { + State = 1287; Match(EQ); + State = 1289; + switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1508; whiteSpace(); + State = 1288; whiteSpace(); } break; } - State = 1511; valueStmt(0); + State = 1291; valueStmt(0); } } catch (RecognitionException re) { @@ -7879,32 +6568,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SeekStmtContext seekStmt() { SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_seekStmt); + EnterRule(_localctx, 124, RULE_seekStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1513; Match(SEEK); - State = 1514; whiteSpace(); - State = 1515; fileNumber(); - State = 1517; + State = 1293; Match(SEEK); + State = 1294; whiteSpace(); + State = 1295; fileNumber(); + State = 1297; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1516; whiteSpace(); + State = 1296; whiteSpace(); } } - State = 1519; Match(COMMA); - State = 1521; - switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { + State = 1299; Match(COMMA); + State = 1301; + switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1520; whiteSpace(); + State = 1300; whiteSpace(); } break; } - State = 1523; valueStmt(0); + State = 1303; valueStmt(0); } } catch (RecognitionException re) { @@ -7963,31 +6652,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SelectCaseStmtContext selectCaseStmt() { SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_selectCaseStmt); + EnterRule(_localctx, 126, RULE_selectCaseStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1525; Match(SELECT); - State = 1526; whiteSpace(); - State = 1527; Match(CASE); - State = 1528; whiteSpace(); - State = 1529; valueStmt(0); - State = 1530; endOfStatement(); - State = 1534; + State = 1305; Match(SELECT); + State = 1306; whiteSpace(); + State = 1307; Match(CASE); + State = 1308; whiteSpace(); + State = 1309; valueStmt(0); + State = 1310; endOfStatement(); + State = 1314; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1531; sC_Case(); + State = 1311; sC_Case(); } } - State = 1536; + State = 1316; _errHandler.Sync(this); _la = _input.La(1); } - State = 1537; Match(END_SELECT); + State = 1317; Match(END_SELECT); } } catch (RecognitionException re) { @@ -8094,34 +6783,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_SelectionContext sC_Selection() { SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 160, RULE_sC_Selection); + EnterRule(_localctx, 128, RULE_sC_Selection); int _la; try { - State = 1556; - switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { + State = 1336; + switch ( Interpreter.AdaptivePredict(_input,185,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1539; Match(IS); - State = 1541; + State = 1319; Match(IS); + State = 1321; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1540; whiteSpace(); + State = 1320; whiteSpace(); } } - State = 1543; comparisonOperator(); - State = 1545; - switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { + State = 1323; comparisonOperator(); + State = 1325; + switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1544; whiteSpace(); + State = 1324; whiteSpace(); } break; } - State = 1547; valueStmt(0); + State = 1327; valueStmt(0); } break; @@ -8129,11 +6818,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1549; valueStmt(0); - State = 1550; whiteSpace(); - State = 1551; Match(TO); - State = 1552; whiteSpace(); - State = 1553; valueStmt(0); + State = 1329; valueStmt(0); + State = 1330; whiteSpace(); + State = 1331; Match(TO); + State = 1332; whiteSpace(); + State = 1333; valueStmt(0); } break; @@ -8141,7 +6830,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1555; valueStmt(0); + State = 1335; valueStmt(0); } break; } @@ -8194,20 +6883,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 162, RULE_sC_Case); + EnterRule(_localctx, 130, RULE_sC_Case); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1558; Match(CASE); - State = 1559; whiteSpace(); - State = 1560; sC_Cond(); - State = 1561; endOfStatement(); - State = 1563; + State = 1338; Match(CASE); + State = 1339; whiteSpace(); + State = 1340; sC_Cond(); + State = 1341; endOfStatement(); + State = 1343; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1562; block(); + State = 1342; block(); } } @@ -8289,17 +6978,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CondContext sC_Cond() { SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 164, RULE_sC_Cond); + EnterRule(_localctx, 132, RULE_sC_Cond); int _la; try { int _alt; - State = 1580; + State = 1360; switch (_input.La(1)) { case ELSE: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1565; Match(ELSE); + State = 1345; Match(ELSE); } break; case ABS: @@ -8344,40 +7033,30 @@ public SC_CondContext sC_Cond() { case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: case EMPTY: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -8386,24 +7065,16 @@ public SC_CondContext sC_Cond() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: @@ -8421,41 +7092,46 @@ public SC_CondContext sC_Cond() { case IDENTIFIER: case LINE_CONTINUATION: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1566; sC_Selection(); - State = 1577; + State = 1346; sC_Selection(); + State = 1357; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,213,_ctx); + _alt = Interpreter.AdaptivePredict(_input,189,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1568; + State = 1348; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1567; whiteSpace(); + State = 1347; whiteSpace(); } } - State = 1570; Match(COMMA); - State = 1572; - switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { + State = 1350; Match(COMMA); + State = 1352; + switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1571; whiteSpace(); + State = 1351; whiteSpace(); } break; } - State = 1574; sC_Selection(); + State = 1354; sC_Selection(); } } } - State = 1579; + State = 1359; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,213,_ctx); + _alt = Interpreter.AdaptivePredict(_input,189,_ctx); } } break; @@ -8474,182 +7150,21 @@ public SC_CondContext sC_Cond() { return _localctx; } - public partial class SendkeysStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } - public IReadOnlyList valueStmt() { - return GetRuleContexts(); - } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ValueStmtContext valueStmt(int i) { - return GetRuleContext(i); - } - public SendkeysStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_sendkeysStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterSendkeysStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitSendkeysStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitSendkeysStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SendkeysStmtContext sendkeysStmt() { - SendkeysStmtContext _localctx = new SendkeysStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_sendkeysStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1582; Match(SENDKEYS); - State = 1583; whiteSpace(); - State = 1584; valueStmt(0); - State = 1593; - switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { - case 1: - { - State = 1586; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1585; whiteSpace(); - } - } - - State = 1588; Match(COMMA); - State = 1590; - switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { - case 1: - { - State = 1589; whiteSpace(); - } - break; - } - State = 1592; valueStmt(0); - } - break; - } - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class SetattrStmtContext : ParserRuleContext { + public partial class SetStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } public IReadOnlyList valueStmt() { return GetRuleContexts(); } - public ITerminalNode COMMA() { return GetToken(VBAParser.COMMA, 0); } - public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } + public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } + public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } public ValueStmtContext valueStmt(int i) { return GetRuleContext(i); } - public SetattrStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_setattrStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterSetattrStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitSetattrStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitSetattrStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public SetattrStmtContext setattrStmt() { - SetattrStmtContext _localctx = new SetattrStmtContext(_ctx, State); - EnterRule(_localctx, 168, RULE_setattrStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1595; Match(SETATTR); - State = 1596; whiteSpace(); - State = 1597; valueStmt(0); - State = 1599; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1598; whiteSpace(); - } - } - - State = 1601; Match(COMMA); - State = 1603; - switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { - case 1: - { - State = 1602; whiteSpace(); - } - break; - } - State = 1605; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class SetStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); - } - public ITerminalNode SET() { return GetToken(VBAParser.SET, 0); } public SetStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -8673,75 +7188,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetStmtContext setStmt() { SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 170, RULE_setStmt); + EnterRule(_localctx, 134, RULE_setStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1607; Match(SET); - State = 1608; whiteSpace(); - State = 1609; implicitCallStmt_InStmt(); - State = 1611; + State = 1362; Match(SET); + State = 1363; whiteSpace(); + State = 1364; valueStmt(0); + State = 1366; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1610; whiteSpace(); + State = 1365; whiteSpace(); } } - State = 1613; Match(EQ); - State = 1615; - switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { + State = 1368; Match(EQ); + State = 1370; + switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { case 1: { - State = 1614; whiteSpace(); + State = 1369; whiteSpace(); } break; } - State = 1617; valueStmt(0); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class StopStmtContext : ParserRuleContext { - public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } - public StopStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_stopStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterStopStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitStopStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitStopStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public StopStmtContext stopStmt() { - StopStmtContext _localctx = new StopStmtContext(_ctx, State); - EnterRule(_localctx, 172, RULE_stopStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1619; Match(STOP); + State = 1372; valueStmt(0); } } catch (RecognitionException re) { @@ -8803,137 +7275,65 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubStmtContext subStmt() { SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 174, RULE_subStmt); + EnterRule(_localctx, 136, RULE_subStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1624; + State = 1377; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1621; visibility(); - State = 1622; whiteSpace(); + State = 1374; visibility(); + State = 1375; whiteSpace(); } } - State = 1628; + State = 1381; _la = _input.La(1); if (_la==STATIC) { { - State = 1626; Match(STATIC); - State = 1627; whiteSpace(); - } - } - - State = 1630; Match(SUB); - State = 1632; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1631; whiteSpace(); - } - } - - State = 1634; identifier(); - State = 1639; - switch ( Interpreter.AdaptivePredict(_input,226,_ctx) ) { - case 1: - { - State = 1636; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { - { - State = 1635; whiteSpace(); - } - } - - State = 1638; argList(); - } - break; - } - State = 1641; endOfStatement(); - State = 1643; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { - { - State = 1642; block(); + State = 1379; Match(STATIC); + State = 1380; whiteSpace(); } } - State = 1645; Match(END_SUB); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class TimeStmtContext : ParserRuleContext { - public WhiteSpaceContext whiteSpace(int i) { - return GetRuleContext(i); - } - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } - public IReadOnlyList whiteSpace() { - return GetRuleContexts(); - } - public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public TimeStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_timeStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterTimeStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitTimeStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitTimeStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public TimeStmtContext timeStmt() { - TimeStmtContext _localctx = new TimeStmtContext(_ctx, State); - EnterRule(_localctx, 176, RULE_timeStmt); - int _la; - try { - EnterOuterAlt(_localctx, 1); - { - State = 1647; Match(TIME); - State = 1649; + State = 1383; Match(SUB); + State = 1385; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1648; whiteSpace(); + State = 1384; whiteSpace(); } } - State = 1651; Match(EQ); - State = 1653; - switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { + State = 1387; identifier(); + State = 1392; + switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1652; whiteSpace(); + State = 1389; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 1388; whiteSpace(); + } + } + + State = 1391; argList(); } break; } - State = 1655; valueStmt(0); + State = 1394; endOfStatement(); + State = 1396; + _la = _input.La(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + { + State = 1395; block(); + } + } + + State = 1398; Match(END_SUB); } } catch (RecognitionException re) { @@ -8994,38 +7394,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmtContext typeStmt() { TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 178, RULE_typeStmt); + EnterRule(_localctx, 138, RULE_typeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1660; + State = 1403; _la = _input.La(1); - if (((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) { + if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1657; visibility(); - State = 1658; whiteSpace(); + State = 1400; visibility(); + State = 1401; whiteSpace(); } } - State = 1662; Match(TYPE); - State = 1663; whiteSpace(); - State = 1664; identifier(); - State = 1665; endOfStatement(); - State = 1669; + State = 1405; Match(TYPE); + State = 1406; whiteSpace(); + State = 1407; identifier(); + State = 1408; endOfStatement(); + State = 1412; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (IDENTIFIER - 194)))) != 0) || _la==COLLECTION) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 1666; typeStmt_Element(); + State = 1409; typeStmt_Element(); } } - State = 1671; + State = 1414; _errHandler.Sync(this); _la = _input.La(1); } - State = 1672; Match(END_TYPE); + State = 1415; Match(END_TYPE); } } catch (RecognitionException re) { @@ -9083,114 +7483,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmt_ElementContext typeStmt_Element() { TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 180, RULE_typeStmt_Element); + EnterRule(_localctx, 140, RULE_typeStmt_Element); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1674; identifier(); - State = 1689; - switch ( Interpreter.AdaptivePredict(_input,236,_ctx) ) { + State = 1417; identifier(); + State = 1432; + switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1676; + State = 1419; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1675; whiteSpace(); + State = 1418; whiteSpace(); } } - State = 1678; Match(LPAREN); - State = 1683; - switch ( Interpreter.AdaptivePredict(_input,234,_ctx) ) { + State = 1421; Match(LPAREN); + State = 1426; + switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1680; - switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { + State = 1423; + switch ( Interpreter.AdaptivePredict(_input,202,_ctx) ) { case 1: { - State = 1679; whiteSpace(); + State = 1422; whiteSpace(); } break; } - State = 1682; subscripts(); + State = 1425; subscripts(); } break; } - State = 1686; + State = 1429; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1685; whiteSpace(); + State = 1428; whiteSpace(); } } - State = 1688; Match(RPAREN); + State = 1431; Match(RPAREN); } break; } - State = 1694; - switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { + State = 1437; + switch ( Interpreter.AdaptivePredict(_input,206,_ctx) ) { case 1: { - State = 1691; whiteSpace(); - State = 1692; asTypeClause(); + State = 1434; whiteSpace(); + State = 1435; asTypeClause(); } break; } - State = 1696; endOfStatement(); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class UnloadStmtContext : ParserRuleContext { - public ValueStmtContext valueStmt() { - return GetRuleContext(0); - } - public WhiteSpaceContext whiteSpace() { - return GetRuleContext(0); - } - public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } - public UnloadStmtContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_unloadStmt; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.EnterUnloadStmt(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAParserListener typedListener = listener as IVBAParserListener; - if (typedListener != null) typedListener.ExitUnloadStmt(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitUnloadStmt(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public UnloadStmtContext unloadStmt() { - UnloadStmtContext _localctx = new UnloadStmtContext(_ctx, State); - EnterRule(_localctx, 182, RULE_unloadStmt); - try { - EnterOuterAlt(_localctx, 1); - { - State = 1698; Match(UNLOAD); - State = 1699; whiteSpace(); - State = 1700; valueStmt(0); + State = 1439; endOfStatement(); } } catch (RecognitionException re) { @@ -9246,44 +7595,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnlockStmtContext unlockStmt() { UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 184, RULE_unlockStmt); + EnterRule(_localctx, 142, RULE_unlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1702; Match(UNLOCK); - State = 1703; whiteSpace(); - State = 1704; fileNumber(); - State = 1720; - switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { + State = 1441; Match(UNLOCK); + State = 1442; whiteSpace(); + State = 1443; fileNumber(); + State = 1459; + switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1706; + State = 1445; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1705; whiteSpace(); + State = 1444; whiteSpace(); } } - State = 1708; Match(COMMA); - State = 1710; - switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { + State = 1447; Match(COMMA); + State = 1449; + switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1709; whiteSpace(); + State = 1448; whiteSpace(); } break; } - State = 1712; valueStmt(0); - State = 1718; - switch ( Interpreter.AdaptivePredict(_input,240,_ctx) ) { + State = 1451; valueStmt(0); + State = 1457; + switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: { - State = 1713; whiteSpace(); - State = 1714; Match(TO); - State = 1715; whiteSpace(); - State = 1716; valueStmt(0); + State = 1452; whiteSpace(); + State = 1453; Match(TO); + State = 1454; whiteSpace(); + State = 1455; valueStmt(0); } break; } @@ -9907,31 +8256,31 @@ private ValueStmtContext valueStmt(int _p) { int _parentState = State; ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); ValueStmtContext _prevctx = _localctx; - int _startState = 186; - EnterRecursionRule(_localctx, 186, RULE_valueStmt, _p); + int _startState = 144; + EnterRecursionRule(_localctx, 144, RULE_valueStmt, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1767; - switch ( Interpreter.AdaptivePredict(_input,250,_ctx) ) { + State = 1506; + switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: { _localctx = new VsNewContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1723; Match(NEW); - State = 1725; - switch ( Interpreter.AdaptivePredict(_input,242,_ctx) ) { + State = 1462; Match(NEW); + State = 1464; + switch ( Interpreter.AdaptivePredict(_input,211,_ctx) ) { case 1: { - State = 1724; whiteSpace(); + State = 1463; whiteSpace(); } break; } - State = 1727; valueStmt(19); + State = 1466; valueStmt(19); } break; @@ -9940,16 +8289,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1728; Match(ADDRESSOF); - State = 1730; - switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { + State = 1467; Match(ADDRESSOF); + State = 1469; + switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1729; whiteSpace(); + State = 1468; whiteSpace(); } break; } - State = 1732; valueStmt(16); + State = 1471; valueStmt(16); } break; @@ -9958,25 +8307,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1733; implicitCallStmt_InStmt(); - State = 1735; + State = 1472; implicitCallStmt_InStmt(); + State = 1474; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1734; whiteSpace(); + State = 1473; whiteSpace(); } } - State = 1737; Match(ASSIGN); - State = 1739; - switch ( Interpreter.AdaptivePredict(_input,245,_ctx) ) { + State = 1476; Match(ASSIGN); + State = 1478; + switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: { - State = 1738; whiteSpace(); + State = 1477; whiteSpace(); } break; } - State = 1741; valueStmt(15); + State = 1480; valueStmt(15); } break; @@ -9985,16 +8334,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1743; Match(MINUS); - State = 1745; - switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { + State = 1482; Match(MINUS); + State = 1484; + switch ( Interpreter.AdaptivePredict(_input,215,_ctx) ) { case 1: { - State = 1744; whiteSpace(); + State = 1483; whiteSpace(); } break; } - State = 1747; valueStmt(13); + State = 1486; valueStmt(13); } break; @@ -10003,16 +8352,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1748; Match(NOT); - State = 1750; - switch ( Interpreter.AdaptivePredict(_input,247,_ctx) ) { + State = 1487; Match(NOT); + State = 1489; + switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1749; whiteSpace(); + State = 1488; whiteSpace(); } break; } - State = 1752; valueStmt(6); + State = 1491; valueStmt(6); } break; @@ -10021,7 +8370,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1753; literal(); + State = 1492; literal(); } break; @@ -10030,7 +8379,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1754; implicitCallStmt_InStmt(); + State = 1493; implicitCallStmt_InStmt(); } break; @@ -10039,25 +8388,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1755; Match(LPAREN); - State = 1757; - switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { + State = 1494; Match(LPAREN); + State = 1496; + switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1756; whiteSpace(); + State = 1495; whiteSpace(); } break; } - State = 1759; valueStmt(0); - State = 1761; + State = 1498; valueStmt(0); + State = 1500; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1760; whiteSpace(); + State = 1499; whiteSpace(); } } - State = 1763; Match(RPAREN); + State = 1502; Match(RPAREN); } break; @@ -10066,7 +8415,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1765; typeOfIsExpression(); + State = 1504; typeOfIsExpression(); } break; @@ -10075,45 +8424,45 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1766; midStmt(); + State = 1505; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1879; + State = 1618; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,276,_ctx); + _alt = Interpreter.AdaptivePredict(_input,245,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1877; - switch ( Interpreter.AdaptivePredict(_input,275,_ctx) ) { + State = 1616; + switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1769; + State = 1508; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1771; + State = 1510; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1770; whiteSpace(); + State = 1509; whiteSpace(); } } - State = 1773; Match(POW); - State = 1775; - switch ( Interpreter.AdaptivePredict(_input,252,_ctx) ) { + State = 1512; Match(POW); + State = 1514; + switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1774; whiteSpace(); + State = 1513; whiteSpace(); } break; } - State = 1777; valueStmt(15); + State = 1516; valueStmt(15); } break; @@ -10121,31 +8470,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1778; + State = 1517; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1780; + State = 1519; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1779; whiteSpace(); + State = 1518; whiteSpace(); } } - State = 1782; + State = 1521; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1784; - switch ( Interpreter.AdaptivePredict(_input,254,_ctx) ) { + State = 1523; + switch ( Interpreter.AdaptivePredict(_input,223,_ctx) ) { case 1: { - State = 1783; whiteSpace(); + State = 1522; whiteSpace(); } break; } - State = 1786; valueStmt(13); + State = 1525; valueStmt(13); } break; @@ -10153,26 +8502,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1787; + State = 1526; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1789; + State = 1528; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1788; whiteSpace(); + State = 1527; whiteSpace(); } } - State = 1791; Match(INTDIV); - State = 1793; - switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { + State = 1530; Match(INTDIV); + State = 1532; + switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { case 1: { - State = 1792; whiteSpace(); + State = 1531; whiteSpace(); } break; } - State = 1795; valueStmt(12); + State = 1534; valueStmt(12); } break; @@ -10180,26 +8529,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1796; + State = 1535; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1798; + State = 1537; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1797; whiteSpace(); + State = 1536; whiteSpace(); } } - State = 1800; Match(MOD); - State = 1802; - switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { + State = 1539; Match(MOD); + State = 1541; + switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { case 1: { - State = 1801; whiteSpace(); + State = 1540; whiteSpace(); } break; } - State = 1804; valueStmt(11); + State = 1543; valueStmt(11); } break; @@ -10207,31 +8556,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1805; + State = 1544; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1807; + State = 1546; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1806; whiteSpace(); + State = 1545; whiteSpace(); } } - State = 1809; + State = 1548; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1811; - switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + State = 1550; + switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1810; whiteSpace(); + State = 1549; whiteSpace(); } break; } - State = 1813; valueStmt(10); + State = 1552; valueStmt(10); } break; @@ -10239,26 +8588,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1814; + State = 1553; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1816; + State = 1555; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1815; whiteSpace(); + State = 1554; whiteSpace(); } } - State = 1818; Match(AMPERSAND); - State = 1820; - switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { + State = 1557; Match(AMPERSAND); + State = 1559; + switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { case 1: { - State = 1819; whiteSpace(); + State = 1558; whiteSpace(); } break; } - State = 1822; valueStmt(9); + State = 1561; valueStmt(9); } break; @@ -10266,31 +8615,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1823; + State = 1562; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1825; + State = 1564; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1824; whiteSpace(); + State = 1563; whiteSpace(); } } - State = 1827; + State = 1566; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1829; - switch ( Interpreter.AdaptivePredict(_input,264,_ctx) ) { + State = 1568; + switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1828; whiteSpace(); + State = 1567; whiteSpace(); } break; } - State = 1831; valueStmt(8); + State = 1570; valueStmt(8); } break; @@ -10298,26 +8647,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1832; + State = 1571; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1834; + State = 1573; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1833; whiteSpace(); + State = 1572; whiteSpace(); } } - State = 1836; Match(AND); - State = 1838; - switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { + State = 1575; Match(AND); + State = 1577; + switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { case 1: { - State = 1837; whiteSpace(); + State = 1576; whiteSpace(); } break; } - State = 1840; valueStmt(6); + State = 1579; valueStmt(6); } break; @@ -10325,26 +8674,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1841; + State = 1580; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1843; + State = 1582; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1842; whiteSpace(); + State = 1581; whiteSpace(); } } - State = 1845; Match(OR); - State = 1847; - switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { + State = 1584; Match(OR); + State = 1586; + switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1846; whiteSpace(); + State = 1585; whiteSpace(); } break; } - State = 1849; valueStmt(5); + State = 1588; valueStmt(5); } break; @@ -10352,26 +8701,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1850; + State = 1589; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1852; + State = 1591; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1851; whiteSpace(); + State = 1590; whiteSpace(); } } - State = 1854; Match(XOR); - State = 1856; - switch ( Interpreter.AdaptivePredict(_input,270,_ctx) ) { + State = 1593; Match(XOR); + State = 1595; + switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1855; whiteSpace(); + State = 1594; whiteSpace(); } break; } - State = 1858; valueStmt(4); + State = 1597; valueStmt(4); } break; @@ -10379,26 +8728,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1859; + State = 1598; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1861; + State = 1600; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1860; whiteSpace(); + State = 1599; whiteSpace(); } } - State = 1863; Match(EQV); - State = 1865; - switch ( Interpreter.AdaptivePredict(_input,272,_ctx) ) { + State = 1602; Match(EQV); + State = 1604; + switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1864; whiteSpace(); + State = 1603; whiteSpace(); } break; } - State = 1867; valueStmt(3); + State = 1606; valueStmt(3); } break; @@ -10406,34 +8755,34 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1868; + State = 1607; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1870; + State = 1609; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1869; whiteSpace(); + State = 1608; whiteSpace(); } } - State = 1872; Match(IMP); - State = 1874; - switch ( Interpreter.AdaptivePredict(_input,274,_ctx) ) { + State = 1611; Match(IMP); + State = 1613; + switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1873; whiteSpace(); + State = 1612; whiteSpace(); } break; } - State = 1876; valueStmt(2); + State = 1615; valueStmt(2); } break; } } } - State = 1881; + State = 1620; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,276,_ctx); + _alt = Interpreter.AdaptivePredict(_input,245,_ctx); } } } @@ -10486,21 +8835,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfIsExpressionContext typeOfIsExpression() { TypeOfIsExpressionContext _localctx = new TypeOfIsExpressionContext(_ctx, State); - EnterRule(_localctx, 188, RULE_typeOfIsExpression); + EnterRule(_localctx, 146, RULE_typeOfIsExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1882; Match(TYPEOF); - State = 1883; whiteSpace(); - State = 1884; valueStmt(0); - State = 1890; - switch ( Interpreter.AdaptivePredict(_input,277,_ctx) ) { + State = 1621; Match(TYPEOF); + State = 1622; whiteSpace(); + State = 1623; valueStmt(0); + State = 1629; + switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1885; whiteSpace(); - State = 1886; Match(IS); - State = 1887; whiteSpace(); - State = 1888; type(); + State = 1624; whiteSpace(); + State = 1625; Match(IS); + State = 1626; whiteSpace(); + State = 1627; type(); } break; } @@ -10556,20 +8905,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableStmtContext variableStmt() { VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 190, RULE_variableStmt); + EnterRule(_localctx, 148, RULE_variableStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1895; + State = 1634; switch (_input.La(1)) { case DIM: { - State = 1892; Match(DIM); + State = 1631; Match(DIM); } break; case STATIC: { - State = 1893; Match(STATIC); + State = 1632; Match(STATIC); } break; case FRIEND: @@ -10577,23 +8926,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1894; visibility(); + State = 1633; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1897; whiteSpace(); - State = 1900; - switch ( Interpreter.AdaptivePredict(_input,279,_ctx) ) { + State = 1636; whiteSpace(); + State = 1639; + switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1898; Match(WITHEVENTS); - State = 1899; whiteSpace(); + State = 1637; Match(WITHEVENTS); + State = 1638; whiteSpace(); } break; } - State = 1902; variableListStmt(); + State = 1641; variableListStmt(); } } catch (RecognitionException re) { @@ -10647,44 +8996,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableListStmtContext variableListStmt() { VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 192, RULE_variableListStmt); + EnterRule(_localctx, 150, RULE_variableListStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1904; variableSubStmt(); - State = 1915; + State = 1643; variableSubStmt(); + State = 1654; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,282,_ctx); + _alt = Interpreter.AdaptivePredict(_input,251,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1906; + State = 1645; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1905; whiteSpace(); + State = 1644; whiteSpace(); } } - State = 1908; Match(COMMA); - State = 1910; + State = 1647; Match(COMMA); + State = 1649; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1909; whiteSpace(); + State = 1648; whiteSpace(); } } - State = 1912; variableSubStmt(); + State = 1651; variableSubStmt(); } } } - State = 1917; + State = 1656; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,282,_ctx); + _alt = Interpreter.AdaptivePredict(_input,251,_ctx); } } } @@ -10743,75 +9092,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableSubStmtContext variableSubStmt() { VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 194, RULE_variableSubStmt); + EnterRule(_localctx, 152, RULE_variableSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1918; identifier(); - State = 1936; - switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { + State = 1657; identifier(); + State = 1675; + switch ( Interpreter.AdaptivePredict(_input,257,_ctx) ) { case 1: { - State = 1920; + State = 1659; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1919; whiteSpace(); + State = 1658; whiteSpace(); } } - State = 1922; Match(LPAREN); - State = 1924; - switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { + State = 1661; Match(LPAREN); + State = 1663; + switch ( Interpreter.AdaptivePredict(_input,253,_ctx) ) { case 1: { - State = 1923; whiteSpace(); + State = 1662; whiteSpace(); } break; } - State = 1930; + State = 1669; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (EMPTY - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)) | (1L << (LPAREN - 194)) | (1L << (MINUS - 194)) | (1L << (STRINGLITERAL - 194)) | (1L << (OCTLITERAL - 194)) | (1L << (HEXLITERAL - 194)) | (1L << (FLOATLITERAL - 194)) | (1L << (INTEGERLITERAL - 194)) | (1L << (DATELITERAL - 194)) | (1L << (WS - 194)) | (1L << (IDENTIFIER - 194)) | (1L << (LINE_CONTINUATION - 194)))) != 0) || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (LPAREN - 193)) | (1L << (MINUS - 193)) | (1L << (STRINGLITERAL - 193)) | (1L << (OCTLITERAL - 193)) | (1L << (HEXLITERAL - 193)) | (1L << (FLOATLITERAL - 193)) | (1L << (INTEGERLITERAL - 193)) | (1L << (DATELITERAL - 193)) | (1L << (WS - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (LINE_CONTINUATION - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { - State = 1926; subscripts(); - State = 1928; + State = 1665; subscripts(); + State = 1667; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1927; whiteSpace(); + State = 1666; whiteSpace(); } } } } - State = 1932; Match(RPAREN); - State = 1934; - switch ( Interpreter.AdaptivePredict(_input,287,_ctx) ) { + State = 1671; Match(RPAREN); + State = 1673; + switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1933; whiteSpace(); + State = 1672; whiteSpace(); } break; } } break; } - State = 1939; - switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { + State = 1678; + switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1938; typeHint(); + State = 1677; typeHint(); } break; } - State = 1944; - switch ( Interpreter.AdaptivePredict(_input,290,_ctx) ) { + State = 1683; + switch ( Interpreter.AdaptivePredict(_input,259,_ctx) ) { case 1: { - State = 1941; whiteSpace(); - State = 1942; asTypeClause(); + State = 1680; whiteSpace(); + State = 1681; asTypeClause(); } break; } @@ -10866,24 +9215,24 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 196, RULE_whileWendStmt); + EnterRule(_localctx, 154, RULE_whileWendStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1946; Match(WHILE); - State = 1947; whiteSpace(); - State = 1948; valueStmt(0); - State = 1949; endOfStatement(); - State = 1951; + State = 1685; Match(WHILE); + State = 1686; whiteSpace(); + State = 1687; valueStmt(0); + State = 1688; endOfStatement(); + State = 1690; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1950; block(); + State = 1689; block(); } } - State = 1953; Match(WEND); + State = 1692; Match(WEND); } } catch (RecognitionException re) { @@ -10935,32 +9284,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WidthStmtContext widthStmt() { WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 198, RULE_widthStmt); + EnterRule(_localctx, 156, RULE_widthStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1955; Match(WIDTH); - State = 1956; whiteSpace(); - State = 1957; fileNumber(); - State = 1959; + State = 1694; Match(WIDTH); + State = 1695; whiteSpace(); + State = 1696; fileNumber(); + State = 1698; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1958; whiteSpace(); + State = 1697; whiteSpace(); } } - State = 1961; Match(COMMA); - State = 1963; - switch ( Interpreter.AdaptivePredict(_input,293,_ctx) ) { + State = 1700; Match(COMMA); + State = 1702; + switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1962; whiteSpace(); + State = 1701; whiteSpace(); } break; } - State = 1965; valueStmt(0); + State = 1704; valueStmt(0); } } catch (RecognitionException re) { @@ -11012,24 +9361,24 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtContext withStmt() { WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 200, RULE_withStmt); + EnterRule(_localctx, 158, RULE_withStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1967; Match(WITH); - State = 1968; whiteSpace(); - State = 1969; withStmtExpression(); - State = 1970; endOfStatement(); - State = 1972; + State = 1706; Match(WITH); + State = 1707; whiteSpace(); + State = 1708; withStmtExpression(); + State = 1709; endOfStatement(); + State = 1711; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (END - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || _la==LINE_CONTINUATION || _la==COLLECTION) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1971; block(); + State = 1710; block(); } } - State = 1974; Match(END_WITH); + State = 1713; Match(END_WITH); } } catch (RecognitionException re) { @@ -11070,11 +9419,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtExpressionContext withStmtExpression() { WithStmtExpressionContext _localctx = new WithStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 202, RULE_withStmtExpression); + EnterRule(_localctx, 160, RULE_withStmtExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1976; valueStmt(0); + State = 1715; valueStmt(0); } } catch (RecognitionException re) { @@ -11126,36 +9475,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WriteStmtContext writeStmt() { WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 204, RULE_writeStmt); + EnterRule(_localctx, 162, RULE_writeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1978; Match(WRITE); - State = 1979; whiteSpace(); - State = 1980; fileNumber(); - State = 1982; + State = 1717; Match(WRITE); + State = 1718; whiteSpace(); + State = 1719; fileNumber(); + State = 1721; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1981; whiteSpace(); + State = 1720; whiteSpace(); } } - State = 1984; Match(COMMA); - State = 1989; - switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { + State = 1723; Match(COMMA); + State = 1728; + switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1986; - switch ( Interpreter.AdaptivePredict(_input,296,_ctx) ) { + State = 1725; + switch ( Interpreter.AdaptivePredict(_input,265,_ctx) ) { case 1: { - State = 1985; whiteSpace(); + State = 1724; whiteSpace(); } break; } - State = 1988; outputList(); + State = 1727; outputList(); } break; } @@ -11200,20 +9549,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FileNumberContext fileNumber() { FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 206, RULE_fileNumber); + EnterRule(_localctx, 164, RULE_fileNumber); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1992; + State = 1731; _la = _input.La(1); if (_la==HASH) { { - State = 1991; Match(HASH); + State = 1730; Match(HASH); } } - State = 1994; valueStmt(0); + State = 1733; valueStmt(0); } } catch (RecognitionException re) { @@ -11258,13 +9607,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 208, RULE_explicitCallStmt); + EnterRule(_localctx, 166, RULE_explicitCallStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1996; Match(CALL); - State = 1997; whiteSpace(); - State = 1998; explicitCallStmtExpression(); + State = 1735; Match(CALL); + State = 1736; whiteSpace(); + State = 1737; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -11388,92 +9737,92 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { ExplicitCallStmtExpressionContext _localctx = new ExplicitCallStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 210, RULE_explicitCallStmtExpression); + EnterRule(_localctx, 168, RULE_explicitCallStmtExpression); int _la; try { int _alt; - State = 2066; - switch ( Interpreter.AdaptivePredict(_input,314,_ctx) ) { + State = 1805; + switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 2001; - switch ( Interpreter.AdaptivePredict(_input,299,_ctx) ) { + State = 1740; + switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 2000; implicitCallStmt_InStmt(); + State = 1739; implicitCallStmt_InStmt(); } break; } - State = 2003; Match(DOT); - State = 2004; identifier(); - State = 2006; - switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { + State = 1742; Match(DOT); + State = 1743; identifier(); + State = 1745; + switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { case 1: { - State = 2005; typeHint(); + State = 1744; typeHint(); } break; } - State = 2021; - switch ( Interpreter.AdaptivePredict(_input,304,_ctx) ) { + State = 1760; + switch ( Interpreter.AdaptivePredict(_input,273,_ctx) ) { case 1: { - State = 2009; + State = 1748; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2008; whiteSpace(); + State = 1747; whiteSpace(); } } - State = 2011; Match(LPAREN); - State = 2013; - switch ( Interpreter.AdaptivePredict(_input,302,_ctx) ) { + State = 1750; Match(LPAREN); + State = 1752; + switch ( Interpreter.AdaptivePredict(_input,271,_ctx) ) { case 1: { - State = 2012; whiteSpace(); + State = 1751; whiteSpace(); } break; } - State = 2015; argsCall(); - State = 2017; + State = 1754; argsCall(); + State = 1756; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2016; whiteSpace(); + State = 1755; whiteSpace(); } } - State = 2019; Match(RPAREN); + State = 1758; Match(RPAREN); } break; } - State = 2032; + State = 1771; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,306,_ctx); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2024; + State = 1763; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2023; whiteSpace(); + State = 1762; whiteSpace(); } } - State = 2026; Match(LPAREN); - State = 2027; subscripts(); - State = 2028; Match(RPAREN); + State = 1765; Match(LPAREN); + State = 1766; subscripts(); + State = 1767; Match(RPAREN); } } } - State = 2034; + State = 1773; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,306,_ctx); + _alt = Interpreter.AdaptivePredict(_input,275,_ctx); } } break; @@ -11482,73 +9831,73 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 2035; identifier(); - State = 2037; - switch ( Interpreter.AdaptivePredict(_input,307,_ctx) ) { + State = 1774; identifier(); + State = 1776; + switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { case 1: { - State = 2036; typeHint(); + State = 1775; typeHint(); } break; } - State = 2052; - switch ( Interpreter.AdaptivePredict(_input,311,_ctx) ) { + State = 1791; + switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { case 1: { - State = 2040; + State = 1779; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2039; whiteSpace(); + State = 1778; whiteSpace(); } } - State = 2042; Match(LPAREN); - State = 2044; - switch ( Interpreter.AdaptivePredict(_input,309,_ctx) ) { + State = 1781; Match(LPAREN); + State = 1783; + switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { case 1: { - State = 2043; whiteSpace(); + State = 1782; whiteSpace(); } break; } - State = 2046; argsCall(); - State = 2048; + State = 1785; argsCall(); + State = 1787; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2047; whiteSpace(); + State = 1786; whiteSpace(); } } - State = 2050; Match(RPAREN); + State = 1789; Match(RPAREN); } break; } - State = 2063; + State = 1802; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,313,_ctx); + _alt = Interpreter.AdaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2055; + State = 1794; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2054; whiteSpace(); + State = 1793; whiteSpace(); } } - State = 2057; Match(LPAREN); - State = 2058; subscripts(); - State = 2059; Match(RPAREN); + State = 1796; Match(LPAREN); + State = 1797; subscripts(); + State = 1798; Match(RPAREN); } } } - State = 2065; + State = 1804; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,313,_ctx); + _alt = Interpreter.AdaptivePredict(_input,282,_ctx); } } break; @@ -11595,21 +9944,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 212, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 170, RULE_implicitCallStmt_InBlock); try { - State = 2070; - switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { + State = 1809; + switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2068; iCS_B_MemberProcedureCall(); + State = 1807; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2069; iCS_B_ProcedureCall(); + State = 1808; iCS_B_ProcedureCall(); } break; } @@ -11633,9 +9982,6 @@ public ArgsCallContext argsCall() { return GetRuleContext(0); } public IReadOnlyList RPAREN() { return GetTokens(VBAParser.RPAREN); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { return GetRuleContext(0); } @@ -11656,6 +10002,9 @@ public ITerminalNode RPAREN(int i) { public TypeHintContext typeHint() { return GetRuleContext(0); } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } public IReadOnlyList subscripts() { return GetRuleContexts(); } @@ -11685,95 +10034,95 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 214, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 172, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2073; - switch ( Interpreter.AdaptivePredict(_input,316,_ctx) ) { + State = 1812; + switch ( Interpreter.AdaptivePredict(_input,285,_ctx) ) { case 1: { - State = 2072; implicitCallStmt_InStmt(); + State = 1811; implicitCallStmt_InStmt(); } break; } - State = 2076; + State = 1815; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2075; whiteSpace(); + State = 1814; whiteSpace(); } } - State = 2078; Match(DOT); - State = 2080; + State = 1817; Match(DOT); + State = 1819; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2079; whiteSpace(); + State = 1818; whiteSpace(); } } - State = 2082; identifier(); - State = 2084; - switch ( Interpreter.AdaptivePredict(_input,319,_ctx) ) { + State = 1821; unrestrictedIdentifier(); + State = 1823; + switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 2083; typeHint(); + State = 1822; typeHint(); } break; } - State = 2089; - switch ( Interpreter.AdaptivePredict(_input,320,_ctx) ) { + State = 1828; + switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { case 1: { - State = 2086; whiteSpace(); - State = 2087; argsCall(); + State = 1825; whiteSpace(); + State = 1826; argsCall(); } break; } - State = 2095; - switch ( Interpreter.AdaptivePredict(_input,322,_ctx) ) { + State = 1834; + switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 2092; + State = 1831; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2091; whiteSpace(); + State = 1830; whiteSpace(); } } - State = 2094; dictionaryCallStmt(); + State = 1833; dictionaryCallStmt(); } break; } - State = 2106; + State = 1845; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,324,_ctx); + _alt = Interpreter.AdaptivePredict(_input,293,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2098; + State = 1837; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2097; whiteSpace(); + State = 1836; whiteSpace(); } } - State = 2100; Match(LPAREN); - State = 2101; subscripts(); - State = 2102; Match(RPAREN); + State = 1839; Match(LPAREN); + State = 1840; subscripts(); + State = 1841; Match(RPAREN); } } } - State = 2108; + State = 1847; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,324,_ctx); + _alt = Interpreter.AdaptivePredict(_input,293,_ctx); } } } @@ -11838,46 +10187,46 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 216, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 174, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2109; identifier(); - State = 2113; - switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { + State = 1848; identifier(); + State = 1852; + switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 2110; whiteSpace(); - State = 2111; argsCall(); + State = 1849; whiteSpace(); + State = 1850; argsCall(); } break; } - State = 2124; + State = 1863; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,327,_ctx); + _alt = Interpreter.AdaptivePredict(_input,296,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2116; + State = 1855; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2115; whiteSpace(); + State = 1854; whiteSpace(); } } - State = 2118; Match(LPAREN); - State = 2119; subscripts(); - State = 2120; Match(RPAREN); + State = 1857; Match(LPAREN); + State = 1858; subscripts(); + State = 1859; Match(RPAREN); } } } - State = 2126; + State = 1865; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,327,_ctx); + _alt = Interpreter.AdaptivePredict(_input,296,_ctx); } } } @@ -11928,35 +10277,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 218, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 176, RULE_implicitCallStmt_InStmt); try { - State = 2131; - switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { + State = 1870; + switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2127; iCS_S_MembersCall(); + State = 1866; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 2128; iCS_S_VariableOrProcedureCall(); + State = 1867; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 2129; iCS_S_ProcedureOrArrayCall(); + State = 1868; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 2130; iCS_S_DictionaryCall(); + State = 1869; iCS_S_DictionaryCall(); } break; } @@ -12025,61 +10374,61 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 220, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 178, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2133; identifier(); - State = 2135; - switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { + State = 1872; identifier(); + State = 1874; + switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { case 1: { - State = 2134; typeHint(); + State = 1873; typeHint(); } break; } - State = 2141; - switch ( Interpreter.AdaptivePredict(_input,331,_ctx) ) { + State = 1880; + switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 2138; + State = 1877; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2137; whiteSpace(); + State = 1876; whiteSpace(); } } - State = 2140; dictionaryCallStmt(); + State = 1879; dictionaryCallStmt(); } break; } - State = 2152; + State = 1891; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,333,_ctx); + _alt = Interpreter.AdaptivePredict(_input,302,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2144; + State = 1883; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2143; whiteSpace(); + State = 1882; whiteSpace(); } } - State = 2146; Match(LPAREN); - State = 2147; subscripts(); - State = 2148; Match(RPAREN); + State = 1885; Match(LPAREN); + State = 1886; subscripts(); + State = 1887; Match(RPAREN); } } } - State = 2154; + State = 1893; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,333,_ctx); + _alt = Interpreter.AdaptivePredict(_input,302,_ctx); } } } @@ -12153,108 +10502,108 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 222, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 180, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2157; - switch ( Interpreter.AdaptivePredict(_input,334,_ctx) ) { + State = 1896; + switch ( Interpreter.AdaptivePredict(_input,303,_ctx) ) { case 1: { - State = 2155; identifier(); + State = 1894; identifier(); } break; case 2: { - State = 2156; baseType(); + State = 1895; baseType(); } break; } - State = 2160; + State = 1899; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2159; typeHint(); + State = 1898; typeHint(); } } - State = 2163; + State = 1902; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2162; whiteSpace(); + State = 1901; whiteSpace(); } } - State = 2165; Match(LPAREN); - State = 2167; - switch ( Interpreter.AdaptivePredict(_input,337,_ctx) ) { + State = 1904; Match(LPAREN); + State = 1906; + switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { case 1: { - State = 2166; whiteSpace(); + State = 1905; whiteSpace(); } break; } - State = 2173; - switch ( Interpreter.AdaptivePredict(_input,339,_ctx) ) { + State = 1912; + switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { case 1: { - State = 2169; argsCall(); - State = 2171; + State = 1908; argsCall(); + State = 1910; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2170; whiteSpace(); + State = 1909; whiteSpace(); } } } break; } - State = 2175; Match(RPAREN); - State = 2180; - switch ( Interpreter.AdaptivePredict(_input,341,_ctx) ) { + State = 1914; Match(RPAREN); + State = 1919; + switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { case 1: { - State = 2177; + State = 1916; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2176; whiteSpace(); + State = 1915; whiteSpace(); } } - State = 2179; dictionaryCallStmt(); + State = 1918; dictionaryCallStmt(); } break; } - State = 2191; + State = 1930; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,343,_ctx); + _alt = Interpreter.AdaptivePredict(_input,312,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2183; + State = 1922; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2182; whiteSpace(); + State = 1921; whiteSpace(); } } - State = 2185; Match(LPAREN); - State = 2186; subscripts(); - State = 2187; Match(RPAREN); + State = 1924; Match(LPAREN); + State = 1925; subscripts(); + State = 1926; Match(RPAREN); } } } - State = 2193; + State = 1932; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,343,_ctx); + _alt = Interpreter.AdaptivePredict(_input,312,_ctx); } } } @@ -12322,61 +10671,61 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallUnrestrictedContext iCS_S_VariableOrProcedureCallUnrestricted() { ICS_S_VariableOrProcedureCallUnrestrictedContext _localctx = new ICS_S_VariableOrProcedureCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 224, RULE_iCS_S_VariableOrProcedureCallUnrestricted); + EnterRule(_localctx, 182, RULE_iCS_S_VariableOrProcedureCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2194; unrestrictedIdentifier(); - State = 2196; - switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { + State = 1933; unrestrictedIdentifier(); + State = 1935; + switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { case 1: { - State = 2195; typeHint(); + State = 1934; typeHint(); } break; } - State = 2202; - switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { + State = 1941; + switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: { - State = 2199; + State = 1938; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2198; whiteSpace(); + State = 1937; whiteSpace(); } } - State = 2201; dictionaryCallStmt(); + State = 1940; dictionaryCallStmt(); } break; } - State = 2213; + State = 1952; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + _alt = Interpreter.AdaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2205; + State = 1944; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2204; whiteSpace(); + State = 1943; whiteSpace(); } } - State = 2207; Match(LPAREN); - State = 2208; subscripts(); - State = 2209; Match(RPAREN); + State = 1946; Match(LPAREN); + State = 1947; subscripts(); + State = 1948; Match(RPAREN); } } } - State = 2215; + State = 1954; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,348,_ctx); + _alt = Interpreter.AdaptivePredict(_input,317,_ctx); } } } @@ -12450,108 +10799,108 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallUnrestrictedContext iCS_S_ProcedureOrArrayCallUnrestricted() { ICS_S_ProcedureOrArrayCallUnrestrictedContext _localctx = new ICS_S_ProcedureOrArrayCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 226, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); + EnterRule(_localctx, 184, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2218; - switch ( Interpreter.AdaptivePredict(_input,349,_ctx) ) { + State = 1957; + switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { case 1: { - State = 2216; unrestrictedIdentifier(); + State = 1955; unrestrictedIdentifier(); } break; case 2: { - State = 2217; baseType(); + State = 1956; baseType(); } break; } - State = 2221; + State = 1960; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2220; typeHint(); + State = 1959; typeHint(); } } - State = 2224; + State = 1963; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2223; whiteSpace(); + State = 1962; whiteSpace(); } } - State = 2226; Match(LPAREN); - State = 2228; - switch ( Interpreter.AdaptivePredict(_input,352,_ctx) ) { + State = 1965; Match(LPAREN); + State = 1967; + switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { case 1: { - State = 2227; whiteSpace(); + State = 1966; whiteSpace(); } break; } - State = 2234; - switch ( Interpreter.AdaptivePredict(_input,354,_ctx) ) { + State = 1973; + switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: { - State = 2230; argsCall(); - State = 2232; + State = 1969; argsCall(); + State = 1971; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2231; whiteSpace(); + State = 1970; whiteSpace(); } } } break; } - State = 2236; Match(RPAREN); - State = 2241; - switch ( Interpreter.AdaptivePredict(_input,356,_ctx) ) { + State = 1975; Match(RPAREN); + State = 1980; + switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 2238; + State = 1977; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2237; whiteSpace(); + State = 1976; whiteSpace(); } } - State = 2240; dictionaryCallStmt(); + State = 1979; dictionaryCallStmt(); } break; } - State = 2252; + State = 1991; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,358,_ctx); + _alt = Interpreter.AdaptivePredict(_input,327,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2244; + State = 1983; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2243; whiteSpace(); + State = 1982; whiteSpace(); } } - State = 2246; Match(LPAREN); - State = 2247; subscripts(); - State = 2248; Match(RPAREN); + State = 1985; Match(LPAREN); + State = 1986; subscripts(); + State = 1987; Match(RPAREN); } } } - State = 2254; + State = 1993; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,358,_ctx); + _alt = Interpreter.AdaptivePredict(_input,327,_ctx); } } } @@ -12625,27 +10974,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 228, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 186, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2257; - switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { + State = 1996; + switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: { - State = 2255; iCS_S_VariableOrProcedureCall(); + State = 1994; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2256; iCS_S_ProcedureOrArrayCall(); + State = 1995; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2263; + State = 2002; _errHandler.Sync(this); _alt = 1; do { @@ -12653,12 +11002,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2259; iCS_S_MemberCall(); - State = 2261; - switch ( Interpreter.AdaptivePredict(_input,360,_ctx) ) { + State = 1998; iCS_S_MemberCall(); + State = 2000; + switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2260; whiteSpace(); + State = 1999; whiteSpace(); } break; } @@ -12668,50 +11017,50 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2265; + State = 2004; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,361,_ctx); + _alt = Interpreter.AdaptivePredict(_input,330,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2271; - switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { + State = 2010; + switch ( Interpreter.AdaptivePredict(_input,332,_ctx) ) { case 1: { - State = 2268; + State = 2007; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2267; whiteSpace(); + State = 2006; whiteSpace(); } } - State = 2270; dictionaryCallStmt(); + State = 2009; dictionaryCallStmt(); } break; } - State = 2282; + State = 2021; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,365,_ctx); + _alt = Interpreter.AdaptivePredict(_input,334,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2274; + State = 2013; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2273; whiteSpace(); + State = 2012; whiteSpace(); } } - State = 2276; Match(LPAREN); - State = 2277; subscripts(); - State = 2278; Match(RPAREN); + State = 2015; Match(LPAREN); + State = 2016; subscripts(); + State = 2017; Match(RPAREN); } } } - State = 2284; + State = 2023; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,365,_ctx); + _alt = Interpreter.AdaptivePredict(_input,334,_ctx); } } } @@ -12761,36 +11110,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 230, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 188, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2285; + State = 2024; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2287; + State = 2026; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2286; whiteSpace(); + State = 2025; whiteSpace(); } } - State = 2291; - switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { + State = 2030; + switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { case 1: { - State = 2289; iCS_S_VariableOrProcedureCallUnrestricted(); + State = 2028; iCS_S_VariableOrProcedureCallUnrestricted(); } break; case 2: { - State = 2290; iCS_S_ProcedureOrArrayCallUnrestricted(); + State = 2029; iCS_S_ProcedureOrArrayCallUnrestricted(); } break; } @@ -12837,20 +11186,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 232, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 190, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2294; + State = 2033; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2293; whiteSpace(); + State = 2032; whiteSpace(); } } - State = 2296; dictionaryCallStmt(); + State = 2035; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -12908,100 +11257,100 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 234, RULE_argsCall); + EnterRule(_localctx, 192, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2310; + State = 2049; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,372,_ctx); + _alt = Interpreter.AdaptivePredict(_input,341,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2299; - switch ( Interpreter.AdaptivePredict(_input,369,_ctx) ) { + State = 2038; + switch ( Interpreter.AdaptivePredict(_input,338,_ctx) ) { case 1: { - State = 2298; argCall(); + State = 2037; argCall(); } break; } - State = 2302; + State = 2041; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2301; whiteSpace(); + State = 2040; whiteSpace(); } } - State = 2304; + State = 2043; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2306; - switch ( Interpreter.AdaptivePredict(_input,371,_ctx) ) { + State = 2045; + switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { case 1: { - State = 2305; whiteSpace(); + State = 2044; whiteSpace(); } break; } } } } - State = 2312; + State = 2051; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,372,_ctx); + _alt = Interpreter.AdaptivePredict(_input,341,_ctx); } - State = 2313; argCall(); - State = 2326; + State = 2052; argCall(); + State = 2065; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,376,_ctx); + _alt = Interpreter.AdaptivePredict(_input,345,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2315; + State = 2054; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2314; whiteSpace(); + State = 2053; whiteSpace(); } } - State = 2317; + State = 2056; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2319; - switch ( Interpreter.AdaptivePredict(_input,374,_ctx) ) { + State = 2058; + switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { case 1: { - State = 2318; whiteSpace(); + State = 2057; whiteSpace(); } break; } - State = 2322; - switch ( Interpreter.AdaptivePredict(_input,375,_ctx) ) { + State = 2061; + switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2321; argCall(); + State = 2060; argCall(); } break; } } } } - State = 2328; + State = 2067; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,376,_ctx); + _alt = Interpreter.AdaptivePredict(_input,345,_ctx); } } } @@ -13051,42 +11400,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 236, RULE_argCall); + EnterRule(_localctx, 194, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2330; - switch ( Interpreter.AdaptivePredict(_input,377,_ctx) ) { + State = 2069; + switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { case 1: { - State = 2329; Match(LPAREN); + State = 2068; Match(LPAREN); } break; } - State = 2334; - switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { + State = 2073; + switch ( Interpreter.AdaptivePredict(_input,347,_ctx) ) { case 1: { - State = 2332; + State = 2071; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2333; whiteSpace(); + State = 2072; whiteSpace(); } break; } - State = 2337; + State = 2076; _la = _input.La(1); if (_la==RPAREN) { { - State = 2336; Match(RPAREN); + State = 2075; Match(RPAREN); } } - State = 2339; valueStmt(0); + State = 2078; valueStmt(0); } } catch (RecognitionException re) { @@ -13134,26 +11483,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 238, RULE_dictionaryCallStmt); + EnterRule(_localctx, 196, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2341; Match(EXCLAMATIONPOINT); - State = 2343; + State = 2080; Match(EXCLAMATIONPOINT); + State = 2082; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2342; whiteSpace(); + State = 2081; whiteSpace(); } } - State = 2345; unrestrictedIdentifier(); - State = 2347; - switch ( Interpreter.AdaptivePredict(_input,381,_ctx) ) { + State = 2084; unrestrictedIdentifier(); + State = 2086; + switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { case 1: { - State = 2346; typeHint(); + State = 2085; typeHint(); } break; } @@ -13212,70 +11561,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 240, RULE_argList); + EnterRule(_localctx, 198, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2349; Match(LPAREN); - State = 2367; - switch ( Interpreter.AdaptivePredict(_input,386,_ctx) ) { + State = 2088; Match(LPAREN); + State = 2106; + switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { case 1: { - State = 2351; + State = 2090; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2350; whiteSpace(); + State = 2089; whiteSpace(); } } - State = 2353; arg(); - State = 2364; + State = 2092; arg(); + State = 2103; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,385,_ctx); + _alt = Interpreter.AdaptivePredict(_input,354,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2355; + State = 2094; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2354; whiteSpace(); + State = 2093; whiteSpace(); } } - State = 2357; Match(COMMA); - State = 2359; + State = 2096; Match(COMMA); + State = 2098; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2358; whiteSpace(); + State = 2097; whiteSpace(); } } - State = 2361; arg(); + State = 2100; arg(); } } } - State = 2366; + State = 2105; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,385,_ctx); + _alt = Interpreter.AdaptivePredict(_input,354,_ctx); } } break; } - State = 2370; + State = 2109; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2369; whiteSpace(); + State = 2108; whiteSpace(); } } - State = 2372; Match(RPAREN); + State = 2111; Match(RPAREN); } } catch (RecognitionException re) { @@ -13337,106 +11686,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 242, RULE_arg); + EnterRule(_localctx, 200, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2376; - switch ( Interpreter.AdaptivePredict(_input,388,_ctx) ) { + State = 2115; + switch ( Interpreter.AdaptivePredict(_input,357,_ctx) ) { case 1: { - State = 2374; Match(OPTIONAL); - State = 2375; whiteSpace(); + State = 2113; Match(OPTIONAL); + State = 2114; whiteSpace(); } break; } - State = 2380; - switch ( Interpreter.AdaptivePredict(_input,389,_ctx) ) { + State = 2119; + switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2378; + State = 2117; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2379; whiteSpace(); + State = 2118; whiteSpace(); } break; } - State = 2384; - switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { + State = 2123; + switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2382; Match(PARAMARRAY); - State = 2383; whiteSpace(); + State = 2121; Match(PARAMARRAY); + State = 2122; whiteSpace(); } break; } - State = 2386; unrestrictedIdentifier(); - State = 2388; + State = 2125; unrestrictedIdentifier(); + State = 2127; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2387; typeHint(); + State = 2126; typeHint(); } } - State = 2398; - switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { + State = 2137; + switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2391; + State = 2130; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2390; whiteSpace(); + State = 2129; whiteSpace(); } } - State = 2393; Match(LPAREN); - State = 2395; + State = 2132; Match(LPAREN); + State = 2134; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2394; whiteSpace(); + State = 2133; whiteSpace(); } } - State = 2397; Match(RPAREN); + State = 2136; Match(RPAREN); } break; } - State = 2404; - switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { + State = 2143; + switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2401; + State = 2140; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2400; whiteSpace(); + State = 2139; whiteSpace(); } } - State = 2403; asTypeClause(); + State = 2142; asTypeClause(); } break; } - State = 2410; - switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { + State = 2149; + switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2407; + State = 2146; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2406; whiteSpace(); + State = 2145; whiteSpace(); } } - State = 2409; argDefaultValue(); + State = 2148; argDefaultValue(); } break; } @@ -13484,20 +11833,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 244, RULE_argDefaultValue); + EnterRule(_localctx, 202, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2412; Match(EQ); - State = 2414; - switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { + State = 2151; Match(EQ); + State = 2153; + switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { case 1: { - State = 2413; whiteSpace(); + State = 2152; whiteSpace(); } break; } - State = 2416; valueStmt(0); + State = 2155; valueStmt(0); } } catch (RecognitionException re) { @@ -13551,44 +11900,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 246, RULE_subscripts); + EnterRule(_localctx, 204, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2418; subscript(); - State = 2429; + State = 2157; subscript(); + State = 2168; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,402,_ctx); + _alt = Interpreter.AdaptivePredict(_input,371,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2420; + State = 2159; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2419; whiteSpace(); + State = 2158; whiteSpace(); } } - State = 2422; Match(COMMA); - State = 2424; - switch ( Interpreter.AdaptivePredict(_input,401,_ctx) ) { + State = 2161; Match(COMMA); + State = 2163; + switch ( Interpreter.AdaptivePredict(_input,370,_ctx) ) { case 1: { - State = 2423; whiteSpace(); + State = 2162; whiteSpace(); } break; } - State = 2426; subscript(); + State = 2165; subscript(); } } } - State = 2431; + State = 2170; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,402,_ctx); + _alt = Interpreter.AdaptivePredict(_input,371,_ctx); } } } @@ -13640,22 +11989,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 248, RULE_subscript); + EnterRule(_localctx, 206, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2437; - switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { + State = 2176; + switch ( Interpreter.AdaptivePredict(_input,372,_ctx) ) { case 1: { - State = 2432; valueStmt(0); - State = 2433; whiteSpace(); - State = 2434; Match(TO); - State = 2435; whiteSpace(); + State = 2171; valueStmt(0); + State = 2172; whiteSpace(); + State = 2173; Match(TO); + State = 2174; whiteSpace(); } break; } - State = 2439; valueStmt(0); + State = 2178; valueStmt(0); } } catch (RecognitionException re) { @@ -13699,9 +12048,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnrestrictedIdentifierContext unrestrictedIdentifier() { UnrestrictedIdentifierContext _localctx = new UnrestrictedIdentifierContext(_ctx, State); - EnterRule(_localctx, 250, RULE_unrestrictedIdentifier); + EnterRule(_localctx, 208, RULE_unrestrictedIdentifier); try { - State = 2443; + State = 2182; switch (_input.La(1)) { case ABS: case ANY: @@ -13743,39 +12092,29 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -13784,24 +12123,16 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: @@ -13809,9 +12140,14 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case XOR: case IDENTIFIER: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: EnterOuterAlt(_localctx, 1); { - State = 2441; identifier(); + State = 2180; identifier(); } break; case EXIT: @@ -13908,7 +12244,7 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case RESUME_NEXT: EnterOuterAlt(_localctx, 2); { - State = 2442; statementKeyword(); + State = 2181; statementKeyword(); } break; default: @@ -13954,14 +12290,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); - EnterRule(_localctx, 252, RULE_identifier); + EnterRule(_localctx, 210, RULE_identifier); try { - State = 2447; + State = 2186; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2445; Match(IDENTIFIER); + State = 2184; Match(IDENTIFIER); } break; case ABS: @@ -14004,39 +12340,29 @@ public IdentifierContext identifier() { case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -14045,33 +12371,30 @@ public IdentifierContext identifier() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: case WITHEVENTS: case XOR: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: EnterOuterAlt(_localctx, 2); { - State = 2446; keyword(); + State = 2185; keyword(); } break; default: @@ -14127,43 +12450,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 254, RULE_asTypeClause); + EnterRule(_localctx, 212, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2449; Match(AS); - State = 2451; + State = 2188; Match(AS); + State = 2190; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2450; whiteSpace(); + State = 2189; whiteSpace(); } } - State = 2455; - switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { + State = 2194; + switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { case 1: { - State = 2453; Match(NEW); - State = 2454; whiteSpace(); + State = 2192; Match(NEW); + State = 2193; whiteSpace(); } break; } - State = 2457; type(); - State = 2462; - switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { + State = 2196; type(); + State = 2201; + switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2459; + State = 2198; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2458; whiteSpace(); + State = 2197; whiteSpace(); } } - State = 2461; fieldLength(); + State = 2200; fieldLength(); } break; } @@ -14216,14 +12539,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 256, RULE_baseType); + EnterRule(_localctx, 214, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2464; + State = 2203; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (DATE - 72)) | (1L << (DOUBLE - 72)) | (1L << (INTEGER - 72)) | (1L << (LONG - 72)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (STRING - 194)) | (1L << (VARIANT - 194)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (DATE - 68)) | (1L << (DOUBLE - 68)) | (1L << (INTEGER - 68)) | (1L << (LONG - 68)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SINGLE - 178)) | (1L << (STRING - 178)) | (1L << (VARIANT - 178)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14272,14 +12595,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 258, RULE_comparisonOperator); + EnterRule(_localctx, 216, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2466; + State = 2205; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -14334,33 +12657,33 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 260, RULE_complexType); + EnterRule(_localctx, 218, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2468; identifier(); - State = 2473; + State = 2207; identifier(); + State = 2212; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,410,_ctx); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2469; + State = 2208; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2470; identifier(); + State = 2209; identifier(); } } } - State = 2475; + State = 2214; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,410,_ctx); + _alt = Interpreter.AdaptivePredict(_input,379,_ctx); } } } @@ -14409,28 +12732,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 262, RULE_fieldLength); + EnterRule(_localctx, 220, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2476; Match(MULT); - State = 2478; + State = 2215; Match(MULT); + State = 2217; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2477; whiteSpace(); + State = 2216; whiteSpace(); } } - State = 2482; + State = 2221; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2480; numberLiteral(); + State = 2219; numberLiteral(); } break; case ABS: @@ -14473,39 +12796,29 @@ public FieldLengthContext fieldLength() { case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -14514,24 +12827,16 @@ public FieldLengthContext fieldLength() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: @@ -14539,8 +12844,13 @@ public FieldLengthContext fieldLength() { case XOR: case IDENTIFIER: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: { - State = 2481; identifier(); + State = 2220; identifier(); } break; default: @@ -14596,34 +12906,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 264, RULE_letterrange); + EnterRule(_localctx, 222, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2484; identifier(); - State = 2493; - switch ( Interpreter.AdaptivePredict(_input,415,_ctx) ) { + State = 2223; identifier(); + State = 2232; + switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2486; + State = 2225; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2485; whiteSpace(); + State = 2224; whiteSpace(); } } - State = 2488; Match(MINUS); - State = 2490; + State = 2227; Match(MINUS); + State = 2229; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2489; whiteSpace(); + State = 2228; whiteSpace(); } } - State = 2492; identifier(); + State = 2231; identifier(); } break; } @@ -14671,11 +12981,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 266, RULE_lineLabel); + EnterRule(_localctx, 224, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2497; + State = 2236; switch (_input.La(1)) { case ABS: case ANY: @@ -14717,39 +13027,29 @@ public LineLabelContext lineLabel() { case ALIAS: case AND: case ATTRIBUTE: - case APPACTIVATE: case AS: case BEGIN: - case BEEP: case BOOLEAN: case BYVAL: case BYREF: case BYTE: - case CHDIR: - case CHDRIVE: case CLASS: case DATABASE: case DATE: - case DELETESETTING: case DOUBLE: case END_IF: case EQV: case FALSE: - case FILECOPY: case IMP: case IN: case IS: case INTEGER: - case KILL: - case LOAD: case LONG: case LIB: case LIKE: case ME: case MID: - case MKDIR: case MOD: - case NAME: case NEW: case NOT: case NOTHING: @@ -14758,24 +13058,16 @@ public LineLabelContext lineLabel() { case OR: case PARAMARRAY: case PRESERVE: - case RANDOMIZE: case REM: - case RMDIR: - case SAVEPICTURE: - case SAVESETTING: - case SENDKEYS: - case SETATTR: case SINGLE: case SPC: case STRING: case TAB: case TEXT: case THEN: - case TIME: case TO: case TRUE: case TYPEOF: - case UNLOAD: case UNTIL: case VARIANT: case VERSION: @@ -14783,8 +13075,13 @@ public LineLabelContext lineLabel() { case XOR: case IDENTIFIER: case COLLECTION: + case DELETESETTING: + case LOAD: + case RMDIR: + case SENDKEYS: + case SETATTR: { - State = 2495; identifier(); + State = 2234; identifier(); } break; case OCTLITERAL: @@ -14792,13 +13089,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2496; numberLiteral(); + State = 2235; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2499; Match(COLON); + State = 2238; Match(COLON); } } catch (RecognitionException re) { @@ -14846,9 +13143,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 268, RULE_literal); + EnterRule(_localctx, 226, RULE_literal); try { - State = 2509; + State = 2248; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -14856,49 +13153,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2501; numberLiteral(); + State = 2240; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2502; Match(DATELITERAL); + State = 2241; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2503; Match(STRINGLITERAL); + State = 2242; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2504; Match(TRUE); + State = 2243; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2505; Match(FALSE); + State = 2244; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2506; Match(NOTHING); + State = 2245; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2507; Match(NULL); + State = 2246; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2508; Match(EMPTY); + State = 2247; Match(EMPTY); } break; default: @@ -14944,14 +13241,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 270, RULE_numberLiteral); + EnterRule(_localctx, 228, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2511; + State = 2250; _la = _input.La(1); - if ( !(((((_la - 244)) & ~0x3f) == 0 && ((1L << (_la - 244)) & ((1L << (OCTLITERAL - 244)) | (1L << (HEXLITERAL - 244)) | (1L << (FLOATLITERAL - 244)) | (1L << (INTEGERLITERAL - 244)))) != 0)) ) { + if ( !(((((_la - 226)) & ~0x3f) == 0 && ((1L << (_la - 226)) & ((1L << (OCTLITERAL - 226)) | (1L << (HEXLITERAL - 226)) | (1L << (FLOATLITERAL - 226)) | (1L << (INTEGERLITERAL - 226)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -15006,47 +13303,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 272, RULE_type); + EnterRule(_localctx, 230, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2515; - switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { + State = 2254; + switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { case 1: { - State = 2513; baseType(); + State = 2252; baseType(); } break; case 2: { - State = 2514; complexType(); + State = 2253; complexType(); } break; } - State = 2525; - switch ( Interpreter.AdaptivePredict(_input,421,_ctx) ) { + State = 2264; + switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2518; + State = 2257; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2517; whiteSpace(); + State = 2256; whiteSpace(); } } - State = 2520; Match(LPAREN); - State = 2522; + State = 2259; Match(LPAREN); + State = 2261; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2521; whiteSpace(); + State = 2260; whiteSpace(); } } - State = 2524; Match(RPAREN); + State = 2263; Match(RPAREN); } break; } @@ -15094,12 +13391,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 274, RULE_typeHint); + EnterRule(_localctx, 232, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2527; + State = 2266; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -15146,14 +13443,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 276, RULE_visibility); + EnterRule(_localctx, 234, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2529; + State = 2268; _la = _input.La(1); - if ( !(((((_la - 116)) & ~0x3f) == 0 && ((1L << (_la - 116)) & ((1L << (FRIEND - 116)) | (1L << (GLOBAL - 116)) | (1L << (PRIVATE - 116)) | (1L << (PUBLIC - 116)))) != 0)) ) { + if ( !(((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -15171,113 +13468,100 @@ public VisibilityContext visibility() { } public partial class KeywordContext : ParserRuleContext { - public ITerminalNode APPACTIVATE() { return GetToken(VBAParser.APPACTIVATE, 0); } public ITerminalNode CLNGLNG() { return GetToken(VBAParser.CLNGLNG, 0); } + public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } + public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } public ITerminalNode XOR() { return GetToken(VBAParser.XOR, 0); } - public ITerminalNode TIME() { return GetToken(VBAParser.TIME, 0); } + public ITerminalNode END_IF() { return GetToken(VBAParser.END_IF, 0); } public ITerminalNode LOAD() { return GetToken(VBAParser.LOAD, 0); } + public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } + public ITerminalNode LENB() { return GetToken(VBAParser.LENB, 0); } public ITerminalNode MIDTYPESUFFIX() { return GetToken(VBAParser.MIDTYPESUFFIX, 0); } public ITerminalNode SCALE() { return GetToken(VBAParser.SCALE, 0); } public ITerminalNode BYREF() { return GetToken(VBAParser.BYREF, 0); } public ITerminalNode DEBUG() { return GetToken(VBAParser.DEBUG, 0); } public ITerminalNode CLNGPTR() { return GetToken(VBAParser.CLNGPTR, 0); } + public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } + public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } + public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } public ITerminalNode PARAMARRAY() { return GetToken(VBAParser.PARAMARRAY, 0); } public ITerminalNode ME() { return GetToken(VBAParser.ME, 0); } + public ITerminalNode INPUTB() { return GetToken(VBAParser.INPUTB, 0); } public ITerminalNode CDEC() { return GetToken(VBAParser.CDEC, 0); } + public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } + public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } + public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } public ITerminalNode CSNG() { return GetToken(VBAParser.CSNG, 0); } public ITerminalNode LONGPTR() { return GetToken(VBAParser.LONGPTR, 0); } + public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } public ITerminalNode STRING() { return GetToken(VBAParser.STRING, 0); } public ITerminalNode MOD() { return GetToken(VBAParser.MOD, 0); } public ITerminalNode OR() { return GetToken(VBAParser.OR, 0); } + public ITerminalNode CURRENCY() { return GetToken(VBAParser.CURRENCY, 0); } public ITerminalNode DOUBLE() { return GetToken(VBAParser.DOUBLE, 0); } public ITerminalNode BYVAL() { return GetToken(VBAParser.BYVAL, 0); } public ITerminalNode IN() { return GetToken(VBAParser.IN, 0); } - public ITerminalNode SAVESETTING() { return GetToken(VBAParser.SAVESETTING, 0); } + public ITerminalNode CIRCLE() { return GetToken(VBAParser.CIRCLE, 0); } + public ITerminalNode LEN(int i) { + return GetToken(VBAParser.LEN, i); + } + public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } public ITerminalNode TEXT() { return GetToken(VBAParser.TEXT, 0); } + public ITerminalNode CBOOL() { return GetToken(VBAParser.CBOOL, 0); } + public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } public ITerminalNode MIDBTYPESUFFIX() { return GetToken(VBAParser.MIDBTYPESUFFIX, 0); } public ITerminalNode SENDKEYS() { return GetToken(VBAParser.SENDKEYS, 0); } public ITerminalNode SGN() { return GetToken(VBAParser.SGN, 0); } + public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } public ITerminalNode CBYTE() { return GetToken(VBAParser.CBYTE, 0); } + public ITerminalNode CVERR() { return GetToken(VBAParser.CVERR, 0); } + public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } + public ITerminalNode FIX() { return GetToken(VBAParser.FIX, 0); } + public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } public ITerminalNode CVAR() { return GetToken(VBAParser.CVAR, 0); } - public ITerminalNode MKDIR() { return GetToken(VBAParser.MKDIR, 0); } public ITerminalNode SINGLE() { return GetToken(VBAParser.SINGLE, 0); } + public ITerminalNode CSTR() { return GetToken(VBAParser.CSTR, 0); } public ITerminalNode LONGLONG() { return GetToken(VBAParser.LONGLONG, 0); } public ITerminalNode CDATE() { return GetToken(VBAParser.CDATE, 0); } + public ITerminalNode CINT() { return GetToken(VBAParser.CINT, 0); } public ITerminalNode ABS() { return GetToken(VBAParser.ABS, 0); } + public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } public ITerminalNode RMDIR() { return GetToken(VBAParser.RMDIR, 0); } public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } + public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } public ITerminalNode INT() { return GetToken(VBAParser.INT, 0); } public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } - public ITerminalNode BEEP() { return GetToken(VBAParser.BEEP, 0); } public ITerminalNode LBOUND() { return GetToken(VBAParser.LBOUND, 0); } public ITerminalNode UBOUND() { return GetToken(VBAParser.UBOUND, 0); } - public ITerminalNode KILL() { return GetToken(VBAParser.KILL, 0); } + public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } + public ITerminalNode DOEVENTS() { return GetToken(VBAParser.DOEVENTS, 0); } + public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } + public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } public ITerminalNode ARRAY() { return GetToken(VBAParser.ARRAY, 0); } public ITerminalNode VERSION() { return GetToken(VBAParser.VERSION, 0); } public ITerminalNode COLLECTION() { return GetToken(VBAParser.COLLECTION, 0); } public ITerminalNode TRUE() { return GetToken(VBAParser.TRUE, 0); } public ITerminalNode VARIANT() { return GetToken(VBAParser.VARIANT, 0); } public ITerminalNode MIDB() { return GetToken(VBAParser.MIDB, 0); } - public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } - public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } - public ITerminalNode REM() { return GetToken(VBAParser.REM, 0); } - public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } - public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } - public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } - public ITerminalNode PSET() { return GetToken(VBAParser.PSET, 0); } - public ITerminalNode CDBL() { return GetToken(VBAParser.CDBL, 0); } - public ITerminalNode CLNG() { return GetToken(VBAParser.CLNG, 0); } - public ITerminalNode INTEGER() { return GetToken(VBAParser.INTEGER, 0); } - public ITerminalNode FALSE() { return GetToken(VBAParser.FALSE, 0); } - public ITerminalNode END_IF() { return GetToken(VBAParser.END_IF, 0); } - public ITerminalNode PRESERVE() { return GetToken(VBAParser.PRESERVE, 0); } - public ITerminalNode CHDIR() { return GetToken(VBAParser.CHDIR, 0); } - public ITerminalNode LENB() { return GetToken(VBAParser.LENB, 0); } - public ITerminalNode UNLOAD() { return GetToken(VBAParser.UNLOAD, 0); } - public ITerminalNode NULL() { return GetToken(VBAParser.NULL, 0); } - public ITerminalNode NAME() { return GetToken(VBAParser.NAME, 0); } - public ITerminalNode BEGIN() { return GetToken(VBAParser.BEGIN, 0); } - public ITerminalNode IMP() { return GetToken(VBAParser.IMP, 0); } - public ITerminalNode CHDRIVE() { return GetToken(VBAParser.CHDRIVE, 0); } - public ITerminalNode INPUTB() { return GetToken(VBAParser.INPUTB, 0); } - public ITerminalNode NOTHING() { return GetToken(VBAParser.NOTHING, 0); } - public ITerminalNode THEN() { return GetToken(VBAParser.THEN, 0); } - public ITerminalNode DATABASE() { return GetToken(VBAParser.DATABASE, 0); } - public ITerminalNode BYTE() { return GetToken(VBAParser.BYTE, 0); } - public ITerminalNode SAVEPICTURE() { return GetToken(VBAParser.SAVEPICTURE, 0); } - public ITerminalNode CURRENCY() { return GetToken(VBAParser.CURRENCY, 0); } - public ITerminalNode CIRCLE() { return GetToken(VBAParser.CIRCLE, 0); } - public ITerminalNode LEN(int i) { - return GetToken(VBAParser.LEN, i); - } - public ITerminalNode TAB() { return GetToken(VBAParser.TAB, 0); } - public ITerminalNode CBOOL() { return GetToken(VBAParser.CBOOL, 0); } - public ITerminalNode IS() { return GetToken(VBAParser.IS, 0); } - public ITerminalNode ALIAS() { return GetToken(VBAParser.ALIAS, 0); } - public ITerminalNode CVERR() { return GetToken(VBAParser.CVERR, 0); } - public ITerminalNode DATE() { return GetToken(VBAParser.DATE, 0); } - public ITerminalNode FIX() { return GetToken(VBAParser.FIX, 0); } - public ITerminalNode CLASS() { return GetToken(VBAParser.CLASS, 0); } - public ITerminalNode CSTR() { return GetToken(VBAParser.CSTR, 0); } - public ITerminalNode CINT() { return GetToken(VBAParser.CINT, 0); } - public ITerminalNode EQV() { return GetToken(VBAParser.EQV, 0); } - public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } - public ITerminalNode DELETESETTING() { return GetToken(VBAParser.DELETESETTING, 0); } - public ITerminalNode DOEVENTS() { return GetToken(VBAParser.DOEVENTS, 0); } - public ITerminalNode AND() { return GetToken(VBAParser.AND, 0); } - public ITerminalNode MID() { return GetToken(VBAParser.MID, 0); } public ITerminalNode SETATTR() { return GetToken(VBAParser.SETATTR, 0); } public IReadOnlyList LEN() { return GetTokens(VBAParser.LEN); } + public ITerminalNode BOOLEAN() { return GetToken(VBAParser.BOOLEAN, 0); } public ITerminalNode ANY() { return GetToken(VBAParser.ANY, 0); } public ITerminalNode CCUR() { return GetToken(VBAParser.CCUR, 0); } public ITerminalNode NEW() { return GetToken(VBAParser.NEW, 0); } - public ITerminalNode FILECOPY() { return GetToken(VBAParser.FILECOPY, 0); } public ITerminalNode LIB() { return GetToken(VBAParser.LIB, 0); } + public ITerminalNode LONG() { return GetToken(VBAParser.LONG, 0); } + public ITerminalNode REM() { return GetToken(VBAParser.REM, 0); } public ITerminalNode OPTIONAL() { return GetToken(VBAParser.OPTIONAL, 0); } + public ITerminalNode ADDRESSOF() { return GetToken(VBAParser.ADDRESSOF, 0); } + public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } + public ITerminalNode TYPEOF() { return GetToken(VBAParser.TYPEOF, 0); } + public ITerminalNode PSET() { return GetToken(VBAParser.PSET, 0); } public ITerminalNode UNTIL() { return GetToken(VBAParser.UNTIL, 0); } public ITerminalNode LIKE() { return GetToken(VBAParser.LIKE, 0); } - public ITerminalNode RANDOMIZE() { return GetToken(VBAParser.RANDOMIZE, 0); } + public ITerminalNode CDBL() { return GetToken(VBAParser.CDBL, 0); } + public ITerminalNode CLNG() { return GetToken(VBAParser.CLNG, 0); } public ITerminalNode WITHEVENTS() { return GetToken(VBAParser.WITHEVENTS, 0); } public KeywordContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) @@ -15302,14 +13586,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KeywordContext keyword() { KeywordContext _localctx = new KeywordContext(_ctx, State); - EnterRule(_localctx, 278, RULE_keyword); + EnterRule(_localctx, 236, RULE_keyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2531; + State = 2270; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (CHDIR - 66)) | (1L << (CHDRIVE - 66)) | (1L << (CLASS - 66)) | (1L << (DATABASE - 66)) | (1L << (DATE - 66)) | (1L << (DELETESETTING - 66)) | (1L << (DOUBLE - 66)) | (1L << (END_IF - 66)) | (1L << (EQV - 66)) | (1L << (FALSE - 66)) | (1L << (FILECOPY - 66)) | (1L << (IMP - 66)) | (1L << (IN - 66)) | (1L << (IS - 66)) | (1L << (INTEGER - 66)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (KILL - 130)) | (1L << (LOAD - 130)) | (1L << (LONG - 130)) | (1L << (LIB - 130)) | (1L << (LIKE - 130)) | (1L << (ME - 130)) | (1L << (MID - 130)) | (1L << (MKDIR - 130)) | (1L << (MOD - 130)) | (1L << (NAME - 130)) | (1L << (NEW - 130)) | (1L << (NOT - 130)) | (1L << (NOTHING - 130)) | (1L << (NULL - 130)) | (1L << (OPTIONAL - 130)) | (1L << (OR - 130)) | (1L << (PARAMARRAY - 130)) | (1L << (PRESERVE - 130)) | (1L << (RANDOMIZE - 130)) | (1L << (REM - 130)) | (1L << (RMDIR - 130)) | (1L << (SAVEPICTURE - 130)) | (1L << (SAVESETTING - 130)) | (1L << (SENDKEYS - 130)) | (1L << (SETATTR - 130)))) != 0) || ((((_la - 194)) & ~0x3f) == 0 && ((1L << (_la - 194)) & ((1L << (SINGLE - 194)) | (1L << (SPC - 194)) | (1L << (STRING - 194)) | (1L << (TAB - 194)) | (1L << (TEXT - 194)) | (1L << (THEN - 194)) | (1L << (TIME - 194)) | (1L << (TO - 194)) | (1L << (TRUE - 194)) | (1L << (TYPEOF - 194)) | (1L << (UNLOAD - 194)) | (1L << (UNTIL - 194)) | (1L << (VARIANT - 194)) | (1L << (VERSION - 194)) | (1L << (WITHEVENTS - 194)) | (1L << (XOR - 194)))) != 0) || _la==COLLECTION) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -15445,14 +13729,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StatementKeywordContext statementKeyword() { StatementKeywordContext _localctx = new StatementKeywordContext(_ctx, State); - EnterRule(_localctx, 280, RULE_statementKeyword); + EnterRule(_localctx, 238, RULE_statementKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2533; + State = 2272; _la = _input.La(1); - if ( !(((((_la - 22)) & ~0x3f) == 0 && ((1L << (_la - 22)) & ((1L << (EXIT - 22)) | (1L << (OPTION - 22)) | (1L << (ACCESS - 22)) | (1L << (APPEND - 22)) | (1L << (BINARY - 22)) | (1L << (CALL - 22)) | (1L << (CASE - 22)) | (1L << (CLOSE - 22)) | (1L << (CONST - 22)) | (1L << (DECLARE - 22)) | (1L << (DEFBOOL - 22)) | (1L << (DEFBYTE - 22)) | (1L << (DEFDATE - 22)) | (1L << (DEFDBL - 22)) | (1L << (DEFCUR - 22)) | (1L << (DEFINT - 22)) | (1L << (DEFLNG - 22)) | (1L << (DEFLNGLNG - 22)) | (1L << (DEFLNGPTR - 22)) | (1L << (DEFOBJ - 22)) | (1L << (DEFSNG - 22)) | (1L << (DEFSTR - 22)))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (DEFVAR - 86)) | (1L << (DIM - 86)) | (1L << (DO - 86)) | (1L << (ELSE - 86)) | (1L << (ELSEIF - 86)) | (1L << (END_SELECT - 86)) | (1L << (END_WITH - 86)) | (1L << (END - 86)) | (1L << (ENUM - 86)) | (1L << (ERASE - 86)) | (1L << (ERROR - 86)) | (1L << (EVENT - 86)) | (1L << (EXIT_DO - 86)) | (1L << (EXIT_FOR - 86)) | (1L << (EXIT_FUNCTION - 86)) | (1L << (EXIT_PROPERTY - 86)) | (1L << (EXIT_SUB - 86)) | (1L << (FRIEND - 86)) | (1L << (FOR - 86)) | (1L << (FUNCTION - 86)) | (1L << (GET - 86)) | (1L << (GLOBAL - 86)) | (1L << (GOSUB - 86)) | (1L << (GOTO - 86)) | (1L << (IF - 86)) | (1L << (IMPLEMENTS - 86)) | (1L << (INPUT - 86)) | (1L << (LOCK - 86)) | (1L << (LOOP - 86)) | (1L << (LET - 86)) | (1L << (LINE_INPUT - 86)) | (1L << (LOCK_READ - 86)) | (1L << (LOCK_WRITE - 86)) | (1L << (LOCK_READ_WRITE - 86)) | (1L << (LSET - 86)) | (1L << (NEXT - 86)))) != 0) || ((((_la - 153)) & ~0x3f) == 0 && ((1L << (_la - 153)) & ((1L << (ON - 153)) | (1L << (ON_ERROR - 153)) | (1L << (OPEN - 153)) | (1L << (OUTPUT - 153)) | (1L << (PRINT - 153)) | (1L << (PRIVATE - 153)) | (1L << (PUBLIC - 153)) | (1L << (PUT - 153)) | (1L << (RANDOM - 153)) | (1L << (RAISEEVENT - 153)) | (1L << (READ - 153)) | (1L << (READ_WRITE - 153)) | (1L << (REDIM - 153)) | (1L << (RESET - 153)) | (1L << (RESUME - 153)) | (1L << (RETURN - 153)) | (1L << (RSET - 153)) | (1L << (SEEK - 153)) | (1L << (SELECT - 153)) | (1L << (SET - 153)) | (1L << (SHARED - 153)) | (1L << (STATIC - 153)) | (1L << (STEP - 153)) | (1L << (STOP - 153)) | (1L << (SUB - 153)) | (1L << (TYPE - 153)) | (1L << (UNLOCK - 153)) | (1L << (WEND - 153)) | (1L << (WHILE - 153)) | (1L << (WIDTH - 153)))) != 0) || ((((_la - 217)) & ~0x3f) == 0 && ((1L << (_la - 217)) & ((1L << (WITH - 217)) | (1L << (WRITE - 217)) | (1L << (ENDIF - 217)) | (1L << (RESUME_NEXT - 217)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXIT) | (1L << OPTION) | (1L << ACCESS) | (1L << APPEND) | (1L << BINARY) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (CLOSE - 65)) | (1L << (CONST - 65)) | (1L << (DECLARE - 65)) | (1L << (DEFBOOL - 65)) | (1L << (DEFBYTE - 65)) | (1L << (DEFDATE - 65)) | (1L << (DEFDBL - 65)) | (1L << (DEFCUR - 65)) | (1L << (DEFINT - 65)) | (1L << (DEFLNG - 65)) | (1L << (DEFLNGLNG - 65)) | (1L << (DEFLNGPTR - 65)) | (1L << (DEFOBJ - 65)) | (1L << (DEFSNG - 65)) | (1L << (DEFSTR - 65)) | (1L << (DEFVAR - 65)) | (1L << (DIM - 65)) | (1L << (DO - 65)) | (1L << (ELSE - 65)) | (1L << (ELSEIF - 65)) | (1L << (END_SELECT - 65)) | (1L << (END_WITH - 65)) | (1L << (END - 65)) | (1L << (ENUM - 65)) | (1L << (ERASE - 65)) | (1L << (ERROR - 65)) | (1L << (EVENT - 65)) | (1L << (EXIT_DO - 65)) | (1L << (EXIT_FOR - 65)) | (1L << (EXIT_FUNCTION - 65)) | (1L << (EXIT_PROPERTY - 65)) | (1L << (EXIT_SUB - 65)) | (1L << (FRIEND - 65)) | (1L << (FOR - 65)) | (1L << (FUNCTION - 65)) | (1L << (GET - 65)) | (1L << (GLOBAL - 65)) | (1L << (GOSUB - 65)) | (1L << (GOTO - 65)) | (1L << (IF - 65)) | (1L << (IMPLEMENTS - 65)) | (1L << (INPUT - 65)) | (1L << (LOCK - 65)) | (1L << (LOOP - 65)) | (1L << (LET - 65)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (LINE_INPUT - 130)) | (1L << (LOCK_READ - 130)) | (1L << (LOCK_WRITE - 130)) | (1L << (LOCK_READ_WRITE - 130)) | (1L << (LSET - 130)) | (1L << (NEXT - 130)) | (1L << (ON - 130)) | (1L << (ON_ERROR - 130)) | (1L << (OPEN - 130)) | (1L << (OUTPUT - 130)) | (1L << (PRINT - 130)) | (1L << (PRIVATE - 130)) | (1L << (PUBLIC - 130)) | (1L << (PUT - 130)) | (1L << (RANDOM - 130)) | (1L << (RAISEEVENT - 130)) | (1L << (READ - 130)) | (1L << (READ_WRITE - 130)) | (1L << (REDIM - 130)) | (1L << (RESET - 130)) | (1L << (RESUME - 130)) | (1L << (RETURN - 130)) | (1L << (RSET - 130)) | (1L << (SEEK - 130)) | (1L << (SELECT - 130)) | (1L << (SET - 130)) | (1L << (SHARED - 130)) | (1L << (STATIC - 130)) | (1L << (STEP - 130)) | (1L << (STOP - 130)) | (1L << (SUB - 130)) | (1L << (TYPE - 130)) | (1L << (UNLOCK - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (WEND - 196)) | (1L << (WHILE - 196)) | (1L << (WIDTH - 196)) | (1L << (WITH - 196)) | (1L << (WRITE - 196)) | (1L << (ENDIF - 196)) | (1L << (RESUME_NEXT - 196)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -15512,28 +13796,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 282, RULE_endOfLine); + EnterRule(_localctx, 240, RULE_endOfLine); int _la; try { int _alt; - State = 2554; - switch ( Interpreter.AdaptivePredict(_input,427,_ctx) ) { + State = 2293; + switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2536; + State = 2275; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2535; whiteSpace(); + State = 2274; whiteSpace(); } } - State = 2545; + State = 2284; switch (_input.La(1)) { case NEWLINE: { - State = 2539; + State = 2278; _errHandler.Sync(this); _alt = 1; do { @@ -15541,38 +13825,38 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2538; Match(NEWLINE); + State = 2277; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2541; + State = 2280; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,423,_ctx); + _alt = Interpreter.AdaptivePredict(_input,392,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } break; case COMMENT: case SINGLEQUOTE: { - State = 2543; comment(); + State = 2282; comment(); } break; case REMCOMMENT: { - State = 2544; remComment(); + State = 2283; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2548; - switch ( Interpreter.AdaptivePredict(_input,425,_ctx) ) { + State = 2287; + switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { case 1: { - State = 2547; whiteSpace(); + State = 2286; whiteSpace(); } break; } @@ -15582,15 +13866,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2551; + State = 2290; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2550; whiteSpace(); + State = 2289; whiteSpace(); } } - State = 2553; annotationList(); + State = 2292; annotationList(); } break; } @@ -15646,42 +13930,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 284, RULE_endOfStatement); + EnterRule(_localctx, 242, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2566; + State = 2305; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,431,_ctx); + _alt = Interpreter.AdaptivePredict(_input,400,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2564; - switch ( Interpreter.AdaptivePredict(_input,430,_ctx) ) { + State = 2303; + switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { case 1: { - State = 2556; endOfLine(); + State = 2295; endOfLine(); } break; case 2: { - State = 2558; + State = 2297; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2557; whiteSpace(); + State = 2296; whiteSpace(); } } - State = 2560; Match(COLON); - State = 2562; - switch ( Interpreter.AdaptivePredict(_input,429,_ctx) ) { + State = 2299; Match(COLON); + State = 2301; + switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2561; whiteSpace(); + State = 2300; whiteSpace(); } break; } @@ -15690,9 +13974,9 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2568; + State = 2307; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,431,_ctx); + _alt = Interpreter.AdaptivePredict(_input,400,_ctx); } } } @@ -15732,11 +14016,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 286, RULE_remComment); + EnterRule(_localctx, 244, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2569; Match(REMCOMMENT); + State = 2308; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -15776,12 +14060,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 288, RULE_comment); + EnterRule(_localctx, 246, RULE_comment); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2571; + State = 2310; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -15831,22 +14115,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationListContext annotationList() { AnnotationListContext _localctx = new AnnotationListContext(_ctx, State); - EnterRule(_localctx, 290, RULE_annotationList); + EnterRule(_localctx, 248, RULE_annotationList); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2573; Match(SINGLEQUOTE); - State = 2575; + State = 2312; Match(SINGLEQUOTE); + State = 2314; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2574; annotation(); + State = 2313; annotation(); } } - State = 2577; + State = 2316; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -15894,17 +14178,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationContext annotation() { AnnotationContext _localctx = new AnnotationContext(_ctx, State); - EnterRule(_localctx, 292, RULE_annotation); + EnterRule(_localctx, 250, RULE_annotation); try { EnterOuterAlt(_localctx, 1); { - State = 2579; Match(AT); - State = 2580; annotationName(); - State = 2582; - switch ( Interpreter.AdaptivePredict(_input,433,_ctx) ) { + State = 2318; Match(AT); + State = 2319; annotationName(); + State = 2321; + switch ( Interpreter.AdaptivePredict(_input,402,_ctx) ) { case 1: { - State = 2581; annotationArgList(); + State = 2320; annotationArgList(); } break; } @@ -15946,11 +14230,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationNameContext annotationName() { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, State); - EnterRule(_localctx, 294, RULE_annotationName); + EnterRule(_localctx, 252, RULE_annotationName); try { EnterOuterAlt(_localctx, 1); { - State = 2584; Match(IDENTIFIER); + State = 2323; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -16006,22 +14290,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgListContext annotationArgList() { AnnotationArgListContext _localctx = new AnnotationArgListContext(_ctx, State); - EnterRule(_localctx, 296, RULE_annotationArgList); + EnterRule(_localctx, 254, RULE_annotationArgList); int _la; try { int _alt; - State = 2647; - switch ( Interpreter.AdaptivePredict(_input,449,_ctx) ) { + State = 2386; + switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2586; whiteSpace(); - State = 2587; annotationArg(); - State = 2589; - switch ( Interpreter.AdaptivePredict(_input,434,_ctx) ) { + State = 2325; whiteSpace(); + State = 2326; annotationArg(); + State = 2328; + switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { case 1: { - State = 2588; whiteSpace(); + State = 2327; whiteSpace(); } break; } @@ -16031,9 +14315,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2591; whiteSpace(); - State = 2592; annotationArg(); - State = 2601; + State = 2330; whiteSpace(); + State = 2331; annotationArg(); + State = 2340; _errHandler.Sync(this); _alt = 1; do { @@ -16041,39 +14325,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2594; + State = 2333; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2593; whiteSpace(); + State = 2332; whiteSpace(); } } - State = 2596; Match(COMMA); - State = 2598; + State = 2335; Match(COMMA); + State = 2337; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2597; whiteSpace(); + State = 2336; whiteSpace(); } } - State = 2600; annotationArg(); + State = 2339; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2603; + State = 2342; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,437,_ctx); + _alt = Interpreter.AdaptivePredict(_input,406,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2606; - switch ( Interpreter.AdaptivePredict(_input,438,_ctx) ) { + State = 2345; + switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2605; whiteSpace(); + State = 2344; whiteSpace(); } break; } @@ -16083,38 +14367,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2609; + State = 2348; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2608; whiteSpace(); + State = 2347; whiteSpace(); } } - State = 2611; Match(LPAREN); - State = 2613; + State = 2350; Match(LPAREN); + State = 2352; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2612; whiteSpace(); + State = 2351; whiteSpace(); } } - State = 2615; annotationArg(); - State = 2617; + State = 2354; annotationArg(); + State = 2356; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2616; whiteSpace(); + State = 2355; whiteSpace(); } } - State = 2619; Match(RPAREN); - State = 2621; - switch ( Interpreter.AdaptivePredict(_input,442,_ctx) ) { + State = 2358; Match(RPAREN); + State = 2360; + switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { case 1: { - State = 2620; whiteSpace(); + State = 2359; whiteSpace(); } break; } @@ -16124,17 +14408,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2624; + State = 2363; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2623; whiteSpace(); + State = 2362; whiteSpace(); } } - State = 2626; Match(LPAREN); - State = 2627; annotationArg(); - State = 2636; + State = 2365; Match(LPAREN); + State = 2366; annotationArg(); + State = 2375; _errHandler.Sync(this); _alt = 1; do { @@ -16142,48 +14426,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2629; + State = 2368; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2628; whiteSpace(); + State = 2367; whiteSpace(); } } - State = 2631; Match(COMMA); - State = 2633; + State = 2370; Match(COMMA); + State = 2372; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2632; whiteSpace(); + State = 2371; whiteSpace(); } } - State = 2635; annotationArg(); + State = 2374; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2638; + State = 2377; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,446,_ctx); + _alt = Interpreter.AdaptivePredict(_input,415,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2641; + State = 2380; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2640; whiteSpace(); + State = 2379; whiteSpace(); } } - State = 2643; Match(RPAREN); - State = 2645; - switch ( Interpreter.AdaptivePredict(_input,448,_ctx) ) { + State = 2382; Match(RPAREN); + State = 2384; + switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { case 1: { - State = 2644; whiteSpace(); + State = 2383; whiteSpace(); } break; } @@ -16230,14 +14514,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); - EnterRule(_localctx, 298, RULE_annotationArg); + EnterRule(_localctx, 256, RULE_annotationArg); try { - State = 2651; + State = 2390; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2649; Match(IDENTIFIER); + State = 2388; Match(IDENTIFIER); } break; case EMPTY: @@ -16253,7 +14537,7 @@ public AnnotationArgContext annotationArg() { case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2650; literal(); + State = 2389; literal(); } break; default: @@ -16303,13 +14587,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 300, RULE_whiteSpace); + EnterRule(_localctx, 258, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2654; + State = 2393; _errHandler.Sync(this); _alt = 1; do { @@ -16317,7 +14601,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2653; + State = 2392; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -16329,9 +14613,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2656; + State = 2395; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,451,_ctx); + _alt = Interpreter.AdaptivePredict(_input,420,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -16348,7 +14632,7 @@ public WhiteSpaceContext whiteSpace() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 93: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + case 72: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); } return true; } @@ -16382,7 +14666,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x107\xA65\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xFA\x960\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -16400,1242 +14684,1119 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4"+ "q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\tz\x4"+ "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ - "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ - "\x4\x88\t\x88\x4\x89\t\x89\x4\x8A\t\x8A\x4\x8B\t\x8B\x4\x8C\t\x8C\x4\x8D"+ - "\t\x8D\x4\x8E\t\x8E\x4\x8F\t\x8F\x4\x90\t\x90\x4\x91\t\x91\x4\x92\t\x92"+ - "\x4\x93\t\x93\x4\x94\t\x94\x4\x95\t\x95\x4\x96\t\x96\x4\x97\t\x97\x4\x98"+ - "\t\x98\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x135\n\x3\x3\x3\x3\x3\x3\x3\x3\x3"+ - "\x5\x3\x13B\n\x3\x3\x3\x5\x3\x13E\n\x3\x3\x3\x3\x3\x5\x3\x142\n\x3\x3"+ - "\x3\x3\x3\x5\x3\x146\n\x3\x3\x3\x3\x3\x5\x3\x14A\n\x3\x3\x3\x3\x3\x5\x3"+ - "\x14E\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x154\n\x4\x3\x4\x5\x4\x157\n"+ - "\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x161\n\x5\x5"+ - "\x5\x163\n\x5\x3\x5\x3\x5\x6\x5\x167\n\x5\r\x5\xE\x5\x168\x3\x5\x3\x5"+ - "\x3\x6\x3\x6\a\x6\x16F\n\x6\f\x6\xE\x6\x172\v\x6\x3\x6\x3\x6\a\x6\x176"+ - "\n\x6\f\x6\xE\x6\x179\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x17E\n\x6\x3\x6\x3"+ - "\x6\x3\a\x3\a\x3\a\x6\a\x185\n\a\r\a\xE\a\x186\x3\b\x3\b\x3\b\x3\b\a\b"+ - "\x18D\n\b\f\b\xE\b\x190\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x5\t\x19E\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ - "\n\x5\n\x1A8\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x1AE\n\v\f\v\xE\v\x1B1\v\v\x3"+ - "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x1BA\n\f\x3\r\x3\r\x3\r\x3\r\x5"+ - "\r\x1C0\n\r\x3\r\x3\r\x5\r\x1C4\n\r\x3\r\x3\r\x5\r\x1C8\n\r\x3\r\x3\r"+ - "\x5\r\x1CC\n\r\x3\r\a\r\x1CF\n\r\f\r\xE\r\x1D2\v\r\x3\xE\x3\xE\x3\xE\x3"+ - "\xE\a\xE\x1D8\n\xE\f\xE\xE\xE\x1DB\v\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ + "\t\x82\x4\x83\t\x83\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x10B\n\x3\x3\x3\x3\x3"+ + "\x3\x3\x3\x3\x5\x3\x111\n\x3\x3\x3\x5\x3\x114\n\x3\x3\x3\x3\x3\x5\x3\x118"+ + "\n\x3\x3\x3\x3\x3\x5\x3\x11C\n\x3\x3\x3\x3\x3\x5\x3\x120\n\x3\x3\x3\x3"+ + "\x3\x5\x3\x124\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x12A\n\x4\x3\x4\x5\x4"+ + "\x12D\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x137"+ + "\n\x5\x5\x5\x139\n\x5\x3\x5\x3\x5\x6\x5\x13D\n\x5\r\x5\xE\x5\x13E\x3\x5"+ + "\x3\x5\x3\x6\x3\x6\a\x6\x145\n\x6\f\x6\xE\x6\x148\v\x6\x3\x6\x3\x6\a\x6"+ + "\x14C\n\x6\f\x6\xE\x6\x14F\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x154\n\x6\x3\x6"+ + "\x3\x6\x3\a\x3\a\x3\a\x6\a\x15B\n\a\r\a\xE\a\x15C\x3\b\x3\b\x3\b\x3\b"+ + "\a\b\x163\n\b\f\b\xE\b\x166\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x5\t\x174\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ + "\n\x3\n\x5\n\x17E\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x184\n\v\f\v\xE\v\x187\v"+ + "\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x190\n\f\x3\r\x3\r\x3\r\x3"+ + "\r\x5\r\x196\n\r\x3\r\x3\r\x5\r\x19A\n\r\x3\r\x3\r\x5\r\x19E\n\r\x3\r"+ + "\x3\r\x5\r\x1A2\n\r\x3\r\a\r\x1A5\n\r\f\r\xE\r\x1A8\v\r\x3\xE\x3\xE\x3"+ + "\xE\x3\xE\a\xE\x1AE\n\xE\f\xE\xE\xE\x1B1\v\xE\x3\xE\x3\xE\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x221\n\xF\x3\x10\x3\x10\x3\x10"+ - "\x3\x10\x5\x10\x227\n\x10\x3\x10\x3\x10\x5\x10\x22B\n\x10\x3\x10\x5\x10"+ - "\x22E\n\x10\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3"+ - "\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x23E\n\x14\x3\x14\x3\x14"+ - "\x5\x14\x242\n\x14\x3\x14\a\x14\x245\n\x14\f\x14\xE\x14\x248\v\x14\x5"+ - "\x14\x24A\n\x14\x3\x15\x3\x15\x3\x15\x5\x15\x24F\n\x15\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x5\x15\x255\n\x15\x3\x15\x3\x15\x5\x15\x259\n\x15\x3\x15\a"+ - "\x15\x25C\n\x15\f\x15\xE\x15\x25F\v\x15\x3\x16\x3\x16\x5\x16\x263\n\x16"+ - "\x3\x16\x3\x16\x3\x16\x5\x16\x268\n\x16\x3\x16\x5\x16\x26B\n\x16\x3\x16"+ - "\x3\x16\x5\x16\x26F\n\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5\x17\x275\n\x17"+ - "\x3\x17\x3\x17\x5\x17\x279\n\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18\x5"+ - "\x18\x280\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x5\x18\x286\n\x18\x3\x18\x3"+ - "\x18\x5\x18\x28A\n\x18\x3\x18\x5\x18\x28D\n\x18\x3\x18\x3\x18\x3\x18\x5"+ - "\x18\x292\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ - "\x3\x18\x5\x18\x29D\n\x18\x3\x18\x5\x18\x2A0\n\x18\x3\x18\x5\x18\x2A3"+ - "\n\x18\x3\x18\x3\x18\x3\x18\x5\x18\x2A8\n\x18\x3\x19\x3\x19\x3\x19\x3"+ - "\x19\x5\x19\x2AE\n\x19\x3\x19\x3\x19\x5\x19\x2B2\n\x19\x3\x19\a\x19\x2B5"+ - "\n\x19\f\x19\xE\x19\x2B8\v\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2BE"+ - "\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2C4\n\x1A\x3\x1A\x3\x1A\x5"+ - "\x1A\x2C8\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2D0"+ - "\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D4\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2D8\n\x1A"+ - "\x3\x1A\x3\x1A\x5\x1A\x2DC\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2E0\n\x1A\x3\x1B"+ - "\x3\x1B\x3\x1B\x5\x1B\x2E5\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3"+ - "\x1B\x3\x1B\x3\x1B\x3\x1B\x5\x1B\x2F0\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B"+ - "\x3\x1B\x5\x1B\x2F7\n\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x5"+ - "\x1B\x2FF\n\x1B\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x306\n\x1D\x3"+ - "\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\a\x1D\x30D\n\x1D\f\x1D\xE\x1D\x310\v"+ - "\x1D\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x5\x1E\x316\n\x1E\x3\x1E\x3\x1E\x5\x1E"+ - "\x31A\n\x1E\x3\x1E\x5\x1E\x31D\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F\x3\x1F"+ - "\x3\x1F\x5\x1F\x325\n\x1F\x3\x1F\x3\x1F\x5\x1F\x329\n\x1F\x3\x1F\a\x1F"+ - "\x32C\n\x1F\f\x1F\xE\x1F\x32F\v\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x5!\x338"+ - "\n!\x3!\x3!\x3!\x3!\x5!\x33E\n!\x3!\x3!\x3\"\x3\"\x3#\x3#\x3#\x3#\x5#"+ - "\x348\n#\x3#\x3#\x5#\x34C\n#\x3#\x3#\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3$\x3"+ - "$\x3$\x3$\x5$\x35B\n$\x3$\x3$\x3$\x3$\x5$\x361\n$\x3%\x3%\x3%\x3%\x5%"+ - "\x367\n%\x3%\x3%\x5%\x36B\n%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5"+ - "%\x377\n%\x3%\x3%\x5%\x37B\n%\x3%\x3%\x3%\x3%\x5%\x381\n%\x3&\x3&\x3&"+ - "\x5&\x386\n&\x3&\x3&\x5&\x38A\n&\x3&\x3&\x5&\x38E\n&\x3&\x3&\x5&\x392"+ - "\n&\x3&\x5&\x395\n&\x3&\x5&\x398\n&\x3&\x5&\x39B\n&\x3&\x5&\x39E\n&\x3"+ - "&\x3&\x5&\x3A2\n&\x3&\x3&\x3\'\x3\'\x3\'\x3\'\x5\'\x3AA\n\'\x3\'\x3\'"+ - "\x5\'\x3AE\n\'\x3\'\x5\'\x3B1\n\'\x3\'\x5\'\x3B4\n\'\x3\'\x3\'\x5\'\x3B8"+ - "\n\'\x3\'\x3\'\x3(\x3(\x3(\x3(\x3)\x3)\x3)\x3)\x3*\x3*\x3*\x3*\x3*\x3"+ - "*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x3D0\n*\x3*\x3*\a*\x3D4\n*\f*\xE*\x3D7\v"+ - "*\x3*\x5*\x3DA\n*\x3*\x3*\x5*\x3DE\n*\x3+\x3+\x3+\x3+\x3+\x3+\x3+\x5+"+ - "\x3E7\n+\x3,\x3,\x3-\x3-\x3-\x3-\x3-\x3-\x3-\x5-\x3F2\n-\x3.\x3.\x3.\x5"+ - ".\x3F7\n.\x3/\x3/\x3/\x3/\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x401\n\x30"+ - "\x3\x30\x3\x30\x5\x30\x405\n\x30\x3\x30\x6\x30\x408\n\x30\r\x30\xE\x30"+ - "\x409\x3\x31\x3\x31\x3\x31\x3\x31\x3\x32\x3\x32\x5\x32\x412\n\x32\x3\x32"+ - "\x3\x32\x5\x32\x416\n\x32\x3\x32\x3\x32\x5\x32\x41A\n\x32\x3\x32\x3\x32"+ - "\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x422\n\x33\x3\x33\x3\x33\x5\x33\x426"+ - "\n\x33\x3\x33\x3\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x35\x3\x35\x3\x35"+ - "\x3\x35\x5\x35\x432\n\x35\x3\x35\x3\x35\x5\x35\x436\n\x35\x3\x35\x3\x35"+ - "\x3\x35\x3\x35\x3\x35\x3\x35\x5\x35\x43E\n\x35\x5\x35\x440\n\x35\x3\x36"+ - "\x3\x36\x3\x36\x3\x36\x5\x36\x446\n\x36\x3\x36\x3\x36\x5\x36\x44A\n\x36"+ - "\x3\x36\x3\x36\x3\x37\x3\x37\x5\x37\x450\n\x37\x3\x37\x3\x37\x5\x37\x454"+ - "\n\x37\x3\x37\x3\x37\x5\x37\x458\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3"+ - "\x38\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3\x39\x3"+ - ":\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x3:\x5:\x472\n:\x3;\x3;\x3;\x3;\x3;"+ - "\x3;\x3;\x3;\x5;\x47C\n;\x3;\x3;\x5;\x480\n;\x3;\a;\x483\n;\f;\xE;\x486"+ - "\v;\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x3<\x5<\x490\n<\x3<\x3<\x5<\x494\n<\x3"+ - "<\a<\x497\n<\f<\xE<\x49A\v<\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3=\x3"+ - "=\x3=\x5=\x4A8\n=\x3=\x3=\x3=\x5=\x4AD\n=\x3=\x3=\x3=\x3=\x3=\x3=\x3="+ - "\x5=\x4B6\n=\x3=\x3=\x5=\x4BA\n=\x3=\x3=\x5=\x4BE\n=\x3>\x3>\x5>\x4C2"+ - "\n>\x3>\x3>\x5>\x4C6\n>\x3>\x5>\x4C9\n>\a>\x4CB\n>\f>\xE>\x4CE\v>\x3>"+ - "\x5>\x4D1\n>\x3>\x5>\x4D4\n>\x3>\x3>\x5>\x4D8\n>\x3>\x5>\x4DB\n>\x6>\x4DD"+ - "\n>\r>\xE>\x4DE\x5>\x4E1\n>\x3?\x3?\x3?\x5?\x4E6\n?\x3?\x3?\x5?\x4EA\n"+ - "?\x3?\x3?\x5?\x4EE\n?\x3?\x3?\x5?\x4F2\n?\x5?\x4F4\n?\x3@\x3@\x3@\x3@"+ - "\x5@\x4FA\n@\x3@\x3@\x5@\x4FE\n@\x3@\x5@\x501\n@\x3\x41\x3\x41\x3\x41"+ - "\x5\x41\x506\n\x41\x3\x41\x3\x41\x5\x41\x50A\n\x41\x3\x41\x3\x41\x3\x41"+ - "\x3\x41\x5\x41\x510\n\x41\x3\x41\x5\x41\x513\n\x41\x3\x41\x5\x41\x516"+ - "\n\x41\x3\x41\x3\x41\x3\x41\x5\x41\x51B\n\x41\x3\x41\x3\x41\x5\x41\x51F"+ - "\n\x41\x3\x41\x3\x41\x3\x42\x3\x42\x3\x42\x5\x42\x526\n\x42\x3\x42\x3"+ - "\x42\x5\x42\x52A\n\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x530\n\x42\x3"+ - "\x42\x5\x42\x533\n\x42\x3\x42\x3\x42\x5\x42\x537\n\x42\x3\x42\x3\x42\x3"+ - "\x43\x3\x43\x3\x43\x5\x43\x53E\n\x43\x3\x43\x3\x43\x5\x43\x542\n\x43\x3"+ - "\x43\x3\x43\x3\x43\x3\x43\x5\x43\x548\n\x43\x3\x43\x5\x43\x54B\n\x43\x3"+ - "\x43\x3\x43\x5\x43\x54F\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44"+ - "\x5\x44\x557\n\x44\x3\x44\x3\x44\x5\x44\x55B\n\x44\x3\x44\x5\x44\x55E"+ - "\n\x44\x3\x44\x5\x44\x561\n\x44\x3\x44\x3\x44\x5\x44\x565\n\x44\x3\x44"+ - "\x3\x44\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x56D\n\x45\x3\x45\x3\x45\x5"+ - "\x45\x571\n\x45\x3\x45\x3\x45\x5\x45\x575\n\x45\x5\x45\x577\n\x45\x3\x45"+ - "\x5\x45\x57A\n\x45\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x580\n\x46\x3G\x3"+ - "G\x3G\x3G\x5G\x586\nG\x3G\x3G\x5G\x58A\nG\x3G\x3G\x5G\x58E\nG\x3G\aG\x591"+ - "\nG\fG\xEG\x594\vG\x3H\x3H\x5H\x598\nH\x3H\x3H\x5H\x59C\nH\x3H\x3H\x5"+ - "H\x5A0\nH\x3H\x3H\x3H\x3H\x5H\x5A6\nH\x3I\x3I\x3J\x3J\x3J\x3J\x5J\x5AE"+ - "\nJ\x5J\x5B0\nJ\x3K\x3K\x3L\x3L\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5BC\nM\x3"+ - "M\x3M\x5M\x5C0\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5N\x5C8\nN\x3N\x3N\x5N\x5CC"+ - "\nN\x3N\x3N\x3O\x3O\x3O\x3O\x5O\x5D4\nO\x3O\x3O\x5O\x5D8\nO\x3O\x3O\x5"+ - "O\x5DC\nO\x3O\x3O\x5O\x5E0\nO\x3O\x3O\x5O\x5E4\nO\x3O\x3O\x5O\x5E8\nO"+ - "\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x5F0\nP\x3P\x3P\x5P\x5F4\nP\x3P\x3P\x3Q\x3"+ - "Q\x3Q\x3Q\x3Q\x3Q\x3Q\aQ\x5FF\nQ\fQ\xEQ\x602\vQ\x3Q\x3Q\x3R\x3R\x5R\x608"+ - "\nR\x3R\x3R\x5R\x60C\nR\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x3R\x5R\x617\n"+ - "R\x3S\x3S\x3S\x3S\x3S\x5S\x61E\nS\x3T\x3T\x3T\x5T\x623\nT\x3T\x3T\x5T"+ - "\x627\nT\x3T\aT\x62A\nT\fT\xET\x62D\vT\x5T\x62F\nT\x3U\x3U\x3U\x3U\x5"+ - "U\x635\nU\x3U\x3U\x5U\x639\nU\x3U\x5U\x63C\nU\x3V\x3V\x3V\x3V\x5V\x642"+ - "\nV\x3V\x3V\x5V\x646\nV\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x64E\nW\x3W\x3W\x5"+ - "W\x652\nW\x3W\x3W\x3X\x3X\x3Y\x3Y\x3Y\x5Y\x65B\nY\x3Y\x3Y\x5Y\x65F\nY"+ - "\x3Y\x3Y\x5Y\x663\nY\x3Y\x3Y\x5Y\x667\nY\x3Y\x5Y\x66A\nY\x3Y\x3Y\x5Y\x66E"+ - "\nY\x3Y\x3Y\x3Z\x3Z\x5Z\x674\nZ\x3Z\x3Z\x5Z\x678\nZ\x3Z\x3Z\x3[\x3[\x3"+ - "[\x5[\x67F\n[\x3[\x3[\x3[\x3[\x3[\a[\x686\n[\f[\xE[\x689\v[\x3[\x3[\x3"+ - "\\\x3\\\x5\\\x68F\n\\\x3\\\x3\\\x5\\\x693\n\\\x3\\\x5\\\x696\n\\\x3\\"+ - "\x5\\\x699\n\\\x3\\\x5\\\x69C\n\\\x3\\\x3\\\x3\\\x5\\\x6A1\n\\\x3\\\x3"+ - "\\\x3]\x3]\x3]\x3]\x3^\x3^\x3^\x3^\x5^\x6AD\n^\x3^\x3^\x5^\x6B1\n^\x3"+ - "^\x3^\x3^\x3^\x3^\x3^\x5^\x6B9\n^\x5^\x6BB\n^\x3_\x3_\x3_\x5_\x6C0\n_"+ - "\x3_\x3_\x3_\x5_\x6C5\n_\x3_\x3_\x3_\x5_\x6CA\n_\x3_\x3_\x5_\x6CE\n_\x3"+ - "_\x3_\x3_\x3_\x5_\x6D4\n_\x3_\x3_\x3_\x5_\x6D9\n_\x3_\x3_\x3_\x3_\x3_"+ - "\x5_\x6E0\n_\x3_\x3_\x5_\x6E4\n_\x3_\x3_\x3_\x3_\x5_\x6EA\n_\x3_\x3_\x5"+ - "_\x6EE\n_\x3_\x3_\x5_\x6F2\n_\x3_\x3_\x3_\x5_\x6F7\n_\x3_\x3_\x5_\x6FB"+ - "\n_\x3_\x3_\x3_\x5_\x700\n_\x3_\x3_\x5_\x704\n_\x3_\x3_\x3_\x5_\x709\n"+ - "_\x3_\x3_\x5_\x70D\n_\x3_\x3_\x3_\x5_\x712\n_\x3_\x3_\x5_\x716\n_\x3_"+ - "\x3_\x3_\x5_\x71B\n_\x3_\x3_\x5_\x71F\n_\x3_\x3_\x3_\x5_\x724\n_\x3_\x3"+ - "_\x5_\x728\n_\x3_\x3_\x3_\x5_\x72D\n_\x3_\x3_\x5_\x731\n_\x3_\x3_\x3_"+ - "\x5_\x736\n_\x3_\x3_\x5_\x73A\n_\x3_\x3_\x3_\x5_\x73F\n_\x3_\x3_\x5_\x743"+ - "\n_\x3_\x3_\x3_\x5_\x748\n_\x3_\x3_\x5_\x74C\n_\x3_\x3_\x3_\x5_\x751\n"+ - "_\x3_\x3_\x5_\x755\n_\x3_\a_\x758\n_\f_\xE_\x75B\v_\x3`\x3`\x3`\x3`\x3"+ - "`\x3`\x3`\x3`\x5`\x765\n`\x3\x61\x3\x61\x3\x61\x5\x61\x76A\n\x61\x3\x61"+ - "\x3\x61\x3\x61\x5\x61\x76F\n\x61\x3\x61\x3\x61\x3\x62\x3\x62\x5\x62\x775"+ - "\n\x62\x3\x62\x3\x62\x5\x62\x779\n\x62\x3\x62\a\x62\x77C\n\x62\f\x62\xE"+ - "\x62\x77F\v\x62\x3\x63\x3\x63\x5\x63\x783\n\x63\x3\x63\x3\x63\x5\x63\x787"+ - "\n\x63\x3\x63\x3\x63\x5\x63\x78B\n\x63\x5\x63\x78D\n\x63\x3\x63\x3\x63"+ - "\x5\x63\x791\n\x63\x5\x63\x793\n\x63\x3\x63\x5\x63\x796\n\x63\x3\x63\x3"+ - "\x63\x3\x63\x5\x63\x79B\n\x63\x3\x64\x3\x64\x3\x64\x3\x64\x3\x64\x5\x64"+ - "\x7A2\n\x64\x3\x64\x3\x64\x3\x65\x3\x65\x3\x65\x3\x65\x5\x65\x7AA\n\x65"+ - "\x3\x65\x3\x65\x5\x65\x7AE\n\x65\x3\x65\x3\x65\x3\x66\x3\x66\x3\x66\x3"+ - "\x66\x3\x66\x5\x66\x7B7\n\x66\x3\x66\x3\x66\x3g\x3g\x3h\x3h\x3h\x3h\x5"+ - "h\x7C1\nh\x3h\x3h\x5h\x7C5\nh\x3h\x5h\x7C8\nh\x3i\x5i\x7CB\ni\x3i\x3i"+ - "\x3j\x3j\x3j\x3j\x3k\x5k\x7D4\nk\x3k\x3k\x3k\x5k\x7D9\nk\x3k\x5k\x7DC"+ - "\nk\x3k\x3k\x5k\x7E0\nk\x3k\x3k\x5k\x7E4\nk\x3k\x3k\x5k\x7E8\nk\x3k\x5"+ - "k\x7EB\nk\x3k\x3k\x3k\x3k\ak\x7F1\nk\fk\xEk\x7F4\vk\x3k\x3k\x5k\x7F8\n"+ - "k\x3k\x5k\x7FB\nk\x3k\x3k\x5k\x7FF\nk\x3k\x3k\x5k\x803\nk\x3k\x3k\x5k"+ - "\x807\nk\x3k\x5k\x80A\nk\x3k\x3k\x3k\x3k\ak\x810\nk\fk\xEk\x813\vk\x5"+ - "k\x815\nk\x3l\x3l\x5l\x819\nl\x3m\x5m\x81C\nm\x3m\x5m\x81F\nm\x3m\x3m"+ - "\x5m\x823\nm\x3m\x3m\x5m\x827\nm\x3m\x3m\x3m\x5m\x82C\nm\x3m\x5m\x82F"+ - "\nm\x3m\x5m\x832\nm\x3m\x5m\x835\nm\x3m\x3m\x3m\x3m\am\x83B\nm\fm\xEm"+ - "\x83E\vm\x3n\x3n\x3n\x3n\x5n\x844\nn\x3n\x5n\x847\nn\x3n\x3n\x3n\x3n\a"+ - "n\x84D\nn\fn\xEn\x850\vn\x3o\x3o\x3o\x3o\x5o\x856\no\x3p\x3p\x5p\x85A"+ - "\np\x3p\x5p\x85D\np\x3p\x5p\x860\np\x3p\x5p\x863\np\x3p\x3p\x3p\x3p\a"+ - "p\x869\np\fp\xEp\x86C\vp\x3q\x3q\x5q\x870\nq\x3q\x5q\x873\nq\x3q\x5q\x876"+ - "\nq\x3q\x3q\x5q\x87A\nq\x3q\x3q\x5q\x87E\nq\x5q\x880\nq\x3q\x3q\x5q\x884"+ - "\nq\x3q\x5q\x887\nq\x3q\x5q\x88A\nq\x3q\x3q\x3q\x3q\aq\x890\nq\fq\xEq"+ - "\x893\vq\x3r\x3r\x5r\x897\nr\x3r\x5r\x89A\nr\x3r\x5r\x89D\nr\x3r\x5r\x8A0"+ - "\nr\x3r\x3r\x3r\x3r\ar\x8A6\nr\fr\xEr\x8A9\vr\x3s\x3s\x5s\x8AD\ns\x3s"+ - "\x5s\x8B0\ns\x3s\x5s\x8B3\ns\x3s\x3s\x5s\x8B7\ns\x3s\x3s\x5s\x8BB\ns\x5"+ - "s\x8BD\ns\x3s\x3s\x5s\x8C1\ns\x3s\x5s\x8C4\ns\x3s\x5s\x8C7\ns\x3s\x3s"+ - "\x3s\x3s\as\x8CD\ns\fs\xEs\x8D0\vs\x3t\x3t\x5t\x8D4\nt\x3t\x3t\x5t\x8D8"+ - "\nt\x6t\x8DA\nt\rt\xEt\x8DB\x3t\x5t\x8DF\nt\x3t\x5t\x8E2\nt\x3t\x5t\x8E5"+ - "\nt\x3t\x3t\x3t\x3t\at\x8EB\nt\ft\xEt\x8EE\vt\x3u\x3u\x5u\x8F2\nu\x3u"+ - "\x3u\x5u\x8F6\nu\x3v\x5v\x8F9\nv\x3v\x3v\x3w\x5w\x8FE\nw\x3w\x5w\x901"+ - "\nw\x3w\x3w\x5w\x905\nw\aw\x907\nw\fw\xEw\x90A\vw\x3w\x3w\x5w\x90E\nw"+ - "\x3w\x3w\x5w\x912\nw\x3w\x5w\x915\nw\aw\x917\nw\fw\xEw\x91A\vw\x3x\x5"+ - "x\x91D\nx\x3x\x3x\x5x\x921\nx\x3x\x5x\x924\nx\x3x\x3x\x3y\x3y\x5y\x92A"+ - "\ny\x3y\x3y\x5y\x92E\ny\x3z\x3z\x5z\x932\nz\x3z\x3z\x5z\x936\nz\x3z\x3"+ - "z\x5z\x93A\nz\x3z\az\x93D\nz\fz\xEz\x940\vz\x5z\x942\nz\x3z\x5z\x945\n"+ - "z\x3z\x3z\x3{\x3{\x5{\x94B\n{\x3{\x3{\x5{\x94F\n{\x3{\x3{\x5{\x953\n{"+ - "\x3{\x3{\x5{\x957\n{\x3{\x5{\x95A\n{\x3{\x3{\x5{\x95E\n{\x3{\x5{\x961"+ - "\n{\x3{\x5{\x964\n{\x3{\x5{\x967\n{\x3{\x5{\x96A\n{\x3{\x5{\x96D\n{\x3"+ - "|\x3|\x5|\x971\n|\x3|\x3|\x3}\x3}\x5}\x977\n}\x3}\x3}\x5}\x97B\n}\x3}"+ - "\a}\x97E\n}\f}\xE}\x981\v}\x3~\x3~\x3~\x3~\x3~\x5~\x988\n~\x3~\x3~\x3"+ - "\x7F\x3\x7F\x5\x7F\x98E\n\x7F\x3\x80\x3\x80\x5\x80\x992\n\x80\x3\x81\x3"+ - "\x81\x5\x81\x996\n\x81\x3\x81\x3\x81\x5\x81\x99A\n\x81\x3\x81\x3\x81\x5"+ - "\x81\x99E\n\x81\x3\x81\x5\x81\x9A1\n\x81\x3\x82\x3\x82\x3\x83\x3\x83\x3"+ - "\x84\x3\x84\x3\x84\a\x84\x9AA\n\x84\f\x84\xE\x84\x9AD\v\x84\x3\x85\x3"+ - "\x85\x5\x85\x9B1\n\x85\x3\x85\x3\x85\x5\x85\x9B5\n\x85\x3\x86\x3\x86\x5"+ - "\x86\x9B9\n\x86\x3\x86\x3\x86\x5\x86\x9BD\n\x86\x3\x86\x5\x86\x9C0\n\x86"+ - "\x3\x87\x3\x87\x5\x87\x9C4\n\x87\x3\x87\x3\x87\x3\x88\x3\x88\x3\x88\x3"+ - "\x88\x3\x88\x3\x88\x3\x88\x3\x88\x5\x88\x9D0\n\x88\x3\x89\x3\x89\x3\x8A"+ - "\x3\x8A\x5\x8A\x9D6\n\x8A\x3\x8A\x5\x8A\x9D9\n\x8A\x3\x8A\x3\x8A\x5\x8A"+ - "\x9DD\n\x8A\x3\x8A\x5\x8A\x9E0\n\x8A\x3\x8B\x3\x8B\x3\x8C\x3\x8C\x3\x8D"+ - "\x3\x8D\x3\x8E\x3\x8E\x3\x8F\x5\x8F\x9EB\n\x8F\x3\x8F\x6\x8F\x9EE\n\x8F"+ - "\r\x8F\xE\x8F\x9EF\x3\x8F\x3\x8F\x5\x8F\x9F4\n\x8F\x3\x8F\x5\x8F\x9F7"+ - "\n\x8F\x3\x8F\x5\x8F\x9FA\n\x8F\x3\x8F\x5\x8F\x9FD\n\x8F\x3\x90\x3\x90"+ - "\x5\x90\xA01\n\x90\x3\x90\x3\x90\x5\x90\xA05\n\x90\a\x90\xA07\n\x90\f"+ - "\x90\xE\x90\xA0A\v\x90\x3\x91\x3\x91\x3\x92\x3\x92\x3\x93\x3\x93\x6\x93"+ - "\xA12\n\x93\r\x93\xE\x93\xA13\x3\x94\x3\x94\x3\x94\x5\x94\xA19\n\x94\x3"+ - "\x95\x3\x95\x3\x96\x3\x96\x3\x96\x5\x96\xA20\n\x96\x3\x96\x3\x96\x3\x96"+ - "\x5\x96\xA25\n\x96\x3\x96\x3\x96\x5\x96\xA29\n\x96\x3\x96\x6\x96\xA2C"+ - "\n\x96\r\x96\xE\x96\xA2D\x3\x96\x5\x96\xA31\n\x96\x3\x96\x5\x96\xA34\n"+ - "\x96\x3\x96\x3\x96\x5\x96\xA38\n\x96\x3\x96\x3\x96\x5\x96\xA3C\n\x96\x3"+ - "\x96\x3\x96\x5\x96\xA40\n\x96\x3\x96\x5\x96\xA43\n\x96\x3\x96\x3\x96\x3"+ - "\x96\x5\x96\xA48\n\x96\x3\x96\x3\x96\x5\x96\xA4C\n\x96\x3\x96\x6\x96\xA4F"+ - "\n\x96\r\x96\xE\x96\xA50\x3\x96\x5\x96\xA54\n\x96\x3\x96\x3\x96\x5\x96"+ - "\xA58\n\x96\x5\x96\xA5A\n\x96\x3\x97\x3\x97\x5\x97\xA5E\n\x97\x3\x98\x6"+ - "\x98\xA61\n\x98\r\x98\xE\x98\xA62\x3\x98\x2\x2\x3\xBC\x99\x2\x2\x4\x2"+ - "\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2"+ - "\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36"+ - "\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2"+ - "T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2"+ - "r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2"+ - "\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2"+ - "\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2"+ - "\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2"+ - "\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2"+ - "\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2"+ - "\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102"+ - "\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x112\x2\x114"+ - "\x2\x116\x2\x118\x2\x11A\x2\x11C\x2\x11E\x2\x120\x2\x122\x2\x124\x2\x126"+ - "\x2\x128\x2\x12A\x2\x12C\x2\x12E\x2\x2\x1A\x5\x2==II\xCC\xCC\x3\x2LX\x4"+ - "\x2\xD5\xD5\xD9\xD9\x3\x2os\x3\x2\x9C\x9D\a\x2\x39\x39==\x81\x81\xA5\xA5"+ - "\xB0\xB0\x4\x2\xB3\xB4\xDD\xDD\x4\x2\x8D\x8F\xC3\xC3\x4\x2))++\x4\x2\xC5"+ - "\xC5\xCB\xCB\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8\xE8\xEB\xEB\a\x2\x82\x82"+ - "\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2,-\x4\x2?@\xA6\xA6\x3\x2?@\r\x2"+ - "\x13\x13\x1F >>\x41\x41JJ\\\\\x83\x83\x87\x87\xC4\xC4\xC9\xC9\xD6\xD6"+ - "\x3\x2\xF6\xF9\x5\x2,,.\x32\xEC\xEC\x6\x2vvzz\xA9\xA9\xAE\xAE\'\x2\x3"+ - "\x17\x19#%(\x34\x38:<>\x41\x44\x46IJYY\\\\\x63\x63kktu~~\x80\x80\x82\x85"+ - "\x87\x87\x8A\x8B\x91\x95\x97\x9A\x9F\x9F\xA4\xA4\xA6\xA7\xB1\xB1\xB6\xB6"+ - "\xBA\xBA\xBC\xBD\xC0\xC0\xC2\xC2\xC4\xC5\xC9\xC9\xCB\xD0\xD2\xD3\xD5\xD7"+ - "\xDC\xDC\xDE\xDE\x105\x105(\x2\x18\x18$$\x33\x33\x39\x39==\x42\x43GHK"+ - "XZ[^_\x65\x65hjlsv}\x7F\x7F\x81\x81\x86\x86\x88\x89\x8C\x90\x96\x96\x9B"+ - "\x9C\x9E\x9E\xA5\xA5\xA8\xA9\xAE\xB0\xB2\xB5\xB7\xB9\xBB\xBB\xBE\xBF\xC1"+ - "\xC1\xC3\xC3\xC6\xC8\xCA\xCA\xD1\xD1\xD4\xD4\xD8\xDB\xDD\xDD\x106\x107"+ - "\x3\x2\xFD\xFE\x4\x2\x100\x100\x102\x102\xBFE\x2\x130\x3\x2\x2\x2\x4\x134"+ - "\x3\x2\x2\x2\x6\x14F\x3\x2\x2\x2\b\x15A\x3\x2\x2\x2\n\x16C\x3\x2\x2\x2"+ - "\f\x184\x3\x2\x2\x2\xE\x188\x3\x2\x2\x2\x10\x19D\x3\x2\x2\x2\x12\x1A7"+ - "\x3\x2\x2\x2\x14\x1A9\x3\x2\x2\x2\x16\x1B9\x3\x2\x2\x2\x18\x1BB\x3\x2"+ - "\x2\x2\x1A\x1D3\x3\x2\x2\x2\x1C\x220\x3\x2\x2\x2\x1E\x222\x3\x2\x2\x2"+ - " \x22F\x3\x2\x2\x2\"\x231\x3\x2\x2\x2$\x235\x3\x2\x2\x2&\x239\x3\x2\x2"+ - "\x2(\x24E\x3\x2\x2\x2*\x260\x3\x2\x2\x2,\x272\x3\x2\x2\x2.\x27F\x3\x2"+ - "\x2\x2\x30\x2A9\x3\x2\x2\x2\x32\x2DF\x3\x2\x2\x2\x34\x2FE\x3\x2\x2\x2"+ - "\x36\x300\x3\x2\x2\x2\x38\x305\x3\x2\x2\x2:\x313\x3\x2\x2\x2<\x320\x3"+ - "\x2\x2\x2>\x330\x3\x2\x2\x2@\x337\x3\x2\x2\x2\x42\x341\x3\x2\x2\x2\x44"+ - "\x343\x3\x2\x2\x2\x46\x34F\x3\x2\x2\x2H\x362\x3\x2\x2\x2J\x385\x3\x2\x2"+ - "\x2L\x3A5\x3\x2\x2\x2N\x3BB\x3\x2\x2\x2P\x3BF\x3\x2\x2\x2R\x3DD\x3\x2"+ - "\x2\x2T\x3DF\x3\x2\x2\x2V\x3E8\x3\x2\x2\x2X\x3EA\x3\x2\x2\x2Z\x3F3\x3"+ - "\x2\x2\x2\\\x3F8\x3\x2\x2\x2^\x3FC\x3\x2\x2\x2`\x40B\x3\x2\x2\x2\x62\x411"+ - "\x3\x2\x2\x2\x64\x41D\x3\x2\x2\x2\x66\x429\x3\x2\x2\x2h\x42D\x3\x2\x2"+ - "\x2j\x441\x3\x2\x2\x2l\x44D\x3\x2\x2\x2n\x45B\x3\x2\x2\x2p\x45F\x3\x2"+ - "\x2\x2r\x467\x3\x2\x2\x2t\x473\x3\x2\x2\x2v\x487\x3\x2\x2\x2x\x49B\x3"+ - "\x2\x2\x2z\x4E0\x3\x2\x2\x2|\x4F3\x3\x2\x2\x2~\x4F5\x3\x2\x2\x2\x80\x505"+ - "\x3\x2\x2\x2\x82\x525\x3\x2\x2\x2\x84\x53D\x3\x2\x2\x2\x86\x552\x3\x2"+ - "\x2\x2\x88\x568\x3\x2\x2\x2\x8A\x57B\x3\x2\x2\x2\x8C\x581\x3\x2\x2\x2"+ - "\x8E\x595\x3\x2\x2\x2\x90\x5A7\x3\x2\x2\x2\x92\x5A9\x3\x2\x2\x2\x94\x5B1"+ - "\x3\x2\x2\x2\x96\x5B3\x3\x2\x2\x2\x98\x5B7\x3\x2\x2\x2\x9A\x5C3\x3\x2"+ - "\x2\x2\x9C\x5CF\x3\x2\x2\x2\x9E\x5EB\x3\x2\x2\x2\xA0\x5F7\x3\x2\x2\x2"+ - "\xA2\x616\x3\x2\x2\x2\xA4\x618\x3\x2\x2\x2\xA6\x62E\x3\x2\x2\x2\xA8\x630"+ - "\x3\x2\x2\x2\xAA\x63D\x3\x2\x2\x2\xAC\x649\x3\x2\x2\x2\xAE\x655\x3\x2"+ - "\x2\x2\xB0\x65A\x3\x2\x2\x2\xB2\x671\x3\x2\x2\x2\xB4\x67E\x3\x2\x2\x2"+ - "\xB6\x68C\x3\x2\x2\x2\xB8\x6A4\x3\x2\x2\x2\xBA\x6A8\x3\x2\x2\x2\xBC\x6E9"+ - "\x3\x2\x2\x2\xBE\x75C\x3\x2\x2\x2\xC0\x769\x3\x2\x2\x2\xC2\x772\x3\x2"+ - "\x2\x2\xC4\x780\x3\x2\x2\x2\xC6\x79C\x3\x2\x2\x2\xC8\x7A5\x3\x2\x2\x2"+ - "\xCA\x7B1\x3\x2\x2\x2\xCC\x7BA\x3\x2\x2\x2\xCE\x7BC\x3\x2\x2\x2\xD0\x7CA"+ - "\x3\x2\x2\x2\xD2\x7CE\x3\x2\x2\x2\xD4\x814\x3\x2\x2\x2\xD6\x818\x3\x2"+ - "\x2\x2\xD8\x81B\x3\x2\x2\x2\xDA\x83F\x3\x2\x2\x2\xDC\x855\x3\x2\x2\x2"+ - "\xDE\x857\x3\x2\x2\x2\xE0\x86F\x3\x2\x2\x2\xE2\x894\x3\x2\x2\x2\xE4\x8AC"+ - "\x3\x2\x2\x2\xE6\x8D3\x3\x2\x2\x2\xE8\x8EF\x3\x2\x2\x2\xEA\x8F8\x3\x2"+ - "\x2\x2\xEC\x908\x3\x2\x2\x2\xEE\x91C\x3\x2\x2\x2\xF0\x927\x3\x2\x2\x2"+ - "\xF2\x92F\x3\x2\x2\x2\xF4\x94A\x3\x2\x2\x2\xF6\x96E\x3\x2\x2\x2\xF8\x974"+ - "\x3\x2\x2\x2\xFA\x987\x3\x2\x2\x2\xFC\x98D\x3\x2\x2\x2\xFE\x991\x3\x2"+ - "\x2\x2\x100\x993\x3\x2\x2\x2\x102\x9A2\x3\x2\x2\x2\x104\x9A4\x3\x2\x2"+ - "\x2\x106\x9A6\x3\x2\x2\x2\x108\x9AE\x3\x2\x2\x2\x10A\x9B6\x3\x2\x2\x2"+ - "\x10C\x9C3\x3\x2\x2\x2\x10E\x9CF\x3\x2\x2\x2\x110\x9D1\x3\x2\x2\x2\x112"+ - "\x9D5\x3\x2\x2\x2\x114\x9E1\x3\x2\x2\x2\x116\x9E3\x3\x2\x2\x2\x118\x9E5"+ - "\x3\x2\x2\x2\x11A\x9E7\x3\x2\x2\x2\x11C\x9FC\x3\x2\x2\x2\x11E\xA08\x3"+ - "\x2\x2\x2\x120\xA0B\x3\x2\x2\x2\x122\xA0D\x3\x2\x2\x2\x124\xA0F\x3\x2"+ - "\x2\x2\x126\xA15\x3\x2\x2\x2\x128\xA1A\x3\x2\x2\x2\x12A\xA59\x3\x2\x2"+ - "\x2\x12C\xA5D\x3\x2\x2\x2\x12E\xA60\x3\x2\x2\x2\x130\x131\x5\x4\x3\x2"+ - "\x131\x132\a\x2\x2\x3\x132\x3\x3\x2\x2\x2\x133\x135\x5\x12E\x98\x2\x134"+ - "\x133\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x13A"+ - "\x5\x11E\x90\x2\x137\x138\x5\x6\x4\x2\x138\x139\x5\x11E\x90\x2\x139\x13B"+ - "\x3\x2\x2\x2\x13A\x137\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D\x3"+ - "\x2\x2\x2\x13C\x13E\x5\b\x5\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2\x2"+ - "\x2\x13E\x13F\x3\x2\x2\x2\x13F\x141\x5\x11E\x90\x2\x140\x142\x5\f\a\x2"+ - "\x141\x140\x3\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143"+ - "\x145\x5\x11E\x90\x2\x144\x146\x5\xE\b\x2\x145\x144\x3\x2\x2\x2\x145\x146"+ - "\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x149\x5\x11E\x90\x2\x148\x14A"+ - "\x5\x14\v\x2\x149\x148\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2\x14A\x14B\x3"+ - "\x2\x2\x2\x14B\x14D\x5\x11E\x90\x2\x14C\x14E\x5\x12E\x98\x2\x14D\x14C"+ - "\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2\x14E\x5\x3\x2\x2\x2\x14F\x150\a\xD7"+ - "\x2\x2\x150\x151\x5\x12E\x98\x2\x151\x153\x5\x110\x89\x2\x152\x154\x5"+ - "\x12E\x98\x2\x153\x152\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x156\x3"+ - "\x2\x2\x2\x155\x157\a\x46\x2\x2\x156\x155\x3\x2\x2\x2\x156\x157\x3\x2"+ - "\x2\x2\x157\x158\x3\x2\x2\x2\x158\x159\x5\x11E\x90\x2\x159\a\x3\x2\x2"+ - "\x2\x15A\x162\a;\x2\x2\x15B\x15C\x5\x12E\x98\x2\x15C\x15D\a\x103\x2\x2"+ - "\x15D\x15E\x5\x12E\x98\x2\x15E\x160\x5\xFC\x7F\x2\x15F\x161\x5\x12E\x98"+ - "\x2\x160\x15F\x3\x2\x2\x2\x160\x161\x3\x2\x2\x2\x161\x163\x3\x2\x2\x2"+ - "\x162\x15B\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3\x2\x2\x2\x164"+ - "\x166\x5\x11E\x90\x2\x165\x167\x5\n\x6\x2\x166\x165\x3\x2\x2\x2\x167\x168"+ - "\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3"+ - "\x2\x2\x2\x16A\x16B\ai\x2\x2\x16B\t\x3\x2\x2\x2\x16C\x170\x5\xFC\x7F\x2"+ - "\x16D\x16F\x5\x12E\x98\x2\x16E\x16D\x3\x2\x2\x2\x16F\x172\x3\x2\x2\x2"+ - "\x170\x16E\x3\x2\x2\x2\x170\x171\x3\x2\x2\x2\x171\x173\x3\x2\x2\x2\x172"+ - "\x170\x3\x2\x2\x2\x173\x177\a\xE2\x2\x2\x174\x176\x5\x12E\x98\x2\x175"+ - "\x174\x3\x2\x2\x2\x176\x179\x3\x2\x2\x2\x177\x175\x3\x2\x2\x2\x177\x178"+ - "\x3\x2\x2\x2\x178\x17A\x3\x2\x2\x2\x179\x177\x3\x2\x2\x2\x17A\x17D\x5"+ - "\x10E\x88\x2\x17B\x17C\a*\x2\x2\x17C\x17E\x5\x110\x89\x2\x17D\x17B\x3"+ - "\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x180\x5\x11E"+ - "\x90\x2\x180\v\x3\x2\x2\x2\x181\x182\x5\x18\r\x2\x182\x183\x5\x11E\x90"+ - "\x2\x183\x185\x3\x2\x2\x2\x184\x181\x3\x2\x2\x2\x185\x186\x3\x2\x2\x2"+ - "\x186\x184\x3\x2\x2\x2\x186\x187\x3\x2\x2\x2\x187\r\x3\x2\x2\x2\x188\x18E"+ - "\x5\x12\n\x2\x189\x18A\x5\x11E\x90\x2\x18A\x18B\x5\x12\n\x2\x18B\x18D"+ - "\x3\x2\x2\x2\x18C\x189\x3\x2\x2\x2\x18D\x190\x3\x2\x2\x2\x18E\x18C\x3"+ - "\x2\x2\x2\x18E\x18F\x3\x2\x2\x2\x18F\x191\x3\x2\x2\x2\x190\x18E\x3\x2"+ - "\x2\x2\x191\x192\x5\x11E\x90\x2\x192\xF\x3\x2\x2\x2\x193\x194\a\xA0\x2"+ - "\x2\x194\x195\x5\x12E\x98\x2\x195\x196\x5\x110\x89\x2\x196\x19E\x3\x2"+ - "\x2\x2\x197\x198\a\xA2\x2\x2\x198\x199\x5\x12E\x98\x2\x199\x19A\t\x2\x2"+ - "\x2\x19A\x19E\x3\x2\x2\x2\x19B\x19E\a\xA1\x2\x2\x19C\x19E\a\xA3\x2\x2"+ - "\x19D\x193\x3\x2\x2\x2\x19D\x197\x3\x2\x2\x2\x19D\x19B\x3\x2\x2\x2\x19D"+ - "\x19C\x3\x2\x2\x2\x19E\x11\x3\x2\x2\x2\x19F\x1A8\x5.\x18\x2\x1A0\x1A8"+ - "\x5\x38\x1D\x2\x1A1\x1A8\x5@!\x2\x1A2\x1A8\x5(\x15\x2\x1A3\x1A8\x5\\/"+ - "\x2\x1A4\x1A8\x5\xC0\x61\x2\x1A5\x1A8\x5\x10\t\x2\x1A6\x1A8\x5\xB4[\x2"+ - "\x1A7\x19F\x3\x2\x2\x2\x1A7\x1A0\x3\x2\x2\x2\x1A7\x1A1\x3\x2\x2\x2\x1A7"+ - "\x1A2\x3\x2\x2\x2\x1A7\x1A3\x3\x2\x2\x2\x1A7\x1A4\x3\x2\x2\x2\x1A7\x1A5"+ - "\x3\x2\x2\x2\x1A7\x1A6\x3\x2\x2\x2\x1A8\x13\x3\x2\x2\x2\x1A9\x1AF\x5\x16"+ - "\f\x2\x1AA\x1AB\x5\x11E\x90\x2\x1AB\x1AC\x5\x16\f\x2\x1AC\x1AE\x3\x2\x2"+ - "\x2\x1AD\x1AA\x3\x2\x2\x2\x1AE\x1B1\x3\x2\x2\x2\x1AF\x1AD\x3\x2\x2\x2"+ - "\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B2\x3\x2\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B2"+ - "\x1B3\x5\x11E\x90\x2\x1B3\x15\x3\x2\x2\x2\x1B4\x1BA\x5J&\x2\x1B5\x1BA"+ - "\x5\x80\x41\x2\x1B6\x1BA\x5\x82\x42\x2\x1B7\x1BA\x5\x84\x43\x2\x1B8\x1BA"+ - "\x5\xB0Y\x2\x1B9\x1B4\x3\x2\x2\x2\x1B9\x1B5\x3\x2\x2\x2\x1B9\x1B6\x3\x2"+ - "\x2\x2\x1B9\x1B7\x3\x2\x2\x2\x1B9\x1B8\x3\x2\x2\x2\x1BA\x17\x3\x2\x2\x2"+ - "\x1BB\x1BC\a\x37\x2\x2\x1BC\x1BD\x5\x12E\x98\x2\x1BD\x1BF\x5\xDCo\x2\x1BE"+ - "\x1C0\x5\x12E\x98\x2\x1BF\x1BE\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2\x2\x1C0"+ - "\x1C1\x3\x2\x2\x2\x1C1\x1C3\a\xE2\x2\x2\x1C2\x1C4\x5\x12E\x98\x2\x1C3"+ - "\x1C2\x3\x2\x2\x2\x1C3\x1C4\x3\x2\x2\x2\x1C4\x1C5\x3\x2\x2\x2\x1C5\x1D0"+ - "\x5\x10E\x88\x2\x1C6\x1C8\x5\x12E\x98\x2\x1C7\x1C6\x3\x2\x2\x2\x1C7\x1C8"+ - "\x3\x2\x2\x2\x1C8\x1C9\x3\x2\x2\x2\x1C9\x1CB\a)\x2\x2\x1CA\x1CC\x5\x12E"+ - "\x98\x2\x1CB\x1CA\x3\x2\x2\x2\x1CB\x1CC\x3\x2\x2\x2\x1CC\x1CD\x3\x2\x2"+ - "\x2\x1CD\x1CF\x5\x10E\x88\x2\x1CE\x1C7\x3\x2\x2\x2\x1CF\x1D2\x3\x2\x2"+ - "\x2\x1D0\x1CE\x3\x2\x2\x2\x1D0\x1D1\x3\x2\x2\x2\x1D1\x19\x3\x2\x2\x2\x1D2"+ - "\x1D0\x3\x2\x2\x2\x1D3\x1D9\x5\x1C\xF\x2\x1D4\x1D5\x5\x11E\x90\x2\x1D5"+ - "\x1D6\x5\x1C\xF\x2\x1D6\x1D8\x3\x2\x2\x2\x1D7\x1D4\x3\x2\x2\x2\x1D8\x1DB"+ - "\x3\x2\x2\x2\x1D9\x1D7\x3\x2\x2\x2\x1D9\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3"+ - "\x2\x2\x2\x1DB\x1D9\x3\x2\x2\x2\x1DC\x1DD\x5\x11E\x90\x2\x1DD\x1B\x3\x2"+ - "\x2\x2\x1DE\x221\x5\x10C\x87\x2\x1DF\x221\x5\x1E\x10\x2\x1E0\x221\x5\x18"+ - "\r\x2\x1E1\x221\x5 \x11\x2\x1E2\x221\x5\"\x12\x2\x1E3\x221\x5$\x13\x2"+ - "\x1E4\x221\x5&\x14\x2\x1E5\x221\x5(\x15\x2\x1E6\x221\x5,\x17\x2\x1E7\x221"+ - "\x5\x32\x1A\x2\x1E8\x221\x5\x30\x19\x2\x1E9\x221\x5\x34\x1B\x2\x1EA\x221"+ - "\x5\x36\x1C\x2\x1EB\x221\x5<\x1F\x2\x1EC\x221\x5> \x2\x1ED\x221\x5\x42"+ - "\"\x2\x1EE\x221\x5\xD2j\x2\x1EF\x221\x5\x44#\x2\x1F0\x221\x5\x46$\x2\x1F1"+ - "\x221\x5H%\x2\x1F2\x221\x5L\'\x2\x1F3\x221\x5N(\x2\x1F4\x221\x5P)\x2\x1F5"+ - "\x221\x5R*\x2\x1F6\x221\x5\\/\x2\x1F7\x221\x5^\x30\x2\x1F8\x221\x5`\x31"+ - "\x2\x1F9\x221\x5\x62\x32\x2\x1FA\x221\x5\x64\x33\x2\x1FB\x221\x5\x66\x34"+ - "\x2\x1FC\x221\x5h\x35\x2\x1FD\x221\x5j\x36\x2\x1FE\x221\x5l\x37\x2\x1FF"+ - "\x221\x5n\x38\x2\x200\x221\x5p\x39\x2\x201\x221\x5r:\x2\x202\x221\x5t"+ - ";\x2\x203\x221\x5v<\x2\x204\x221\x5x=\x2\x205\x221\x5~@\x2\x206\x221\x5"+ - "\x86\x44\x2\x207\x221\x5\x88\x45\x2\x208\x221\x5\x8A\x46\x2\x209\x221"+ - "\x5\x8CG\x2\x20A\x221\x5\x90I\x2\x20B\x221\x5\x92J\x2\x20C\x221\x5\x94"+ - "K\x2\x20D\x221\x5\x96L\x2\x20E\x221\x5\x98M\x2\x20F\x221\x5\x9AN\x2\x210"+ - "\x221\x5\x9CO\x2\x211\x221\x5\x9EP\x2\x212\x221\x5\xA0Q\x2\x213\x221\x5"+ - "\xA8U\x2\x214\x221\x5\xAAV\x2\x215\x221\x5\xACW\x2\x216\x221\x5\xAEX\x2"+ - "\x217\x221\x5\xB2Z\x2\x218\x221\x5\xB8]\x2\x219\x221\x5\xBA^\x2\x21A\x221"+ - "\x5\xC0\x61\x2\x21B\x221\x5\xC6\x64\x2\x21C\x221\x5\xC8\x65\x2\x21D\x221"+ - "\x5\xCA\x66\x2\x21E\x221\x5\xCEh\x2\x21F\x221\x5\xD6l\x2\x220\x1DE\x3"+ - "\x2\x2\x2\x220\x1DF\x3\x2\x2\x2\x220\x1E0\x3\x2\x2\x2\x220\x1E1\x3\x2"+ - "\x2\x2\x220\x1E2\x3\x2\x2\x2\x220\x1E3\x3\x2\x2\x2\x220\x1E4\x3\x2\x2"+ - "\x2\x220\x1E5\x3\x2\x2\x2\x220\x1E6\x3\x2\x2\x2\x220\x1E7\x3\x2\x2\x2"+ - "\x220\x1E8\x3\x2\x2\x2\x220\x1E9\x3\x2\x2\x2\x220\x1EA\x3\x2\x2\x2\x220"+ - "\x1EB\x3\x2\x2\x2\x220\x1EC\x3\x2\x2\x2\x220\x1ED\x3\x2\x2\x2\x220\x1EE"+ - "\x3\x2\x2\x2\x220\x1EF\x3\x2\x2\x2\x220\x1F0\x3\x2\x2\x2\x220\x1F1\x3"+ - "\x2\x2\x2\x220\x1F2\x3\x2\x2\x2\x220\x1F3\x3\x2\x2\x2\x220\x1F4\x3\x2"+ - "\x2\x2\x220\x1F5\x3\x2\x2\x2\x220\x1F6\x3\x2\x2\x2\x220\x1F7\x3\x2\x2"+ - "\x2\x220\x1F8\x3\x2\x2\x2\x220\x1F9\x3\x2\x2\x2\x220\x1FA\x3\x2\x2\x2"+ - "\x220\x1FB\x3\x2\x2\x2\x220\x1FC\x3\x2\x2\x2\x220\x1FD\x3\x2\x2\x2\x220"+ - "\x1FE\x3\x2\x2\x2\x220\x1FF\x3\x2\x2\x2\x220\x200\x3\x2\x2\x2\x220\x201"+ - "\x3\x2\x2\x2\x220\x202\x3\x2\x2\x2\x220\x203\x3\x2\x2\x2\x220\x204\x3"+ - "\x2\x2\x2\x220\x205\x3\x2\x2\x2\x220\x206\x3\x2\x2\x2\x220\x207\x3\x2"+ - "\x2\x2\x220\x208\x3\x2\x2\x2\x220\x209\x3\x2\x2\x2\x220\x20A\x3\x2\x2"+ - "\x2\x220\x20B\x3\x2\x2\x2\x220\x20C\x3\x2\x2\x2\x220\x20D\x3\x2\x2\x2"+ - "\x220\x20E\x3\x2\x2\x2\x220\x20F\x3\x2\x2\x2\x220\x210\x3\x2\x2\x2\x220"+ - "\x211\x3\x2\x2\x2\x220\x212\x3\x2\x2\x2\x220\x213\x3\x2\x2\x2\x220\x214"+ - "\x3\x2\x2\x2\x220\x215\x3\x2\x2\x2\x220\x216\x3\x2\x2\x2\x220\x217\x3"+ - "\x2\x2\x2\x220\x218\x3\x2\x2\x2\x220\x219\x3\x2\x2\x2\x220\x21A\x3\x2"+ - "\x2\x2\x220\x21B\x3\x2\x2\x2\x220\x21C\x3\x2\x2\x2\x220\x21D\x3\x2\x2"+ - "\x2\x220\x21E\x3\x2\x2\x2\x220\x21F\x3\x2\x2\x2\x221\x1D\x3\x2\x2\x2\x222"+ - "\x223\a\x38\x2\x2\x223\x224\x5\x12E\x98\x2\x224\x22D\x5\xBC_\x2\x225\x227"+ - "\x5\x12E\x98\x2\x226\x225\x3\x2\x2\x2\x226\x227\x3\x2\x2\x2\x227\x228"+ - "\x3\x2\x2\x2\x228\x22A\a)\x2\x2\x229\x22B\x5\x12E\x98\x2\x22A\x229\x3"+ - "\x2\x2\x2\x22A\x22B\x3\x2\x2\x2\x22B\x22C\x3\x2\x2\x2\x22C\x22E\x5\xBC"+ - "_\x2\x22D\x226\x3\x2\x2\x2\x22D\x22E\x3\x2\x2\x2\x22E\x1F\x3\x2\x2\x2"+ - "\x22F\x230\a<\x2\x2\x230!\x3\x2\x2\x2\x231\x232\a\x44\x2\x2\x232\x233"+ - "\x5\x12E\x98\x2\x233\x234\x5\xBC_\x2\x234#\x3\x2\x2\x2\x235\x236\a\x45"+ - "\x2\x2\x236\x237\x5\x12E\x98\x2\x237\x238\x5\xBC_\x2\x238%\x3\x2\x2\x2"+ - "\x239\x249\aG\x2\x2\x23A\x23B\x5\x12E\x98\x2\x23B\x246\x5\xD0i\x2\x23C"+ - "\x23E\x5\x12E\x98\x2\x23D\x23C\x3\x2\x2\x2\x23D\x23E\x3\x2\x2\x2\x23E"+ - "\x23F\x3\x2\x2\x2\x23F\x241\a)\x2\x2\x240\x242\x5\x12E\x98\x2\x241\x240"+ - "\x3\x2\x2\x2\x241\x242\x3\x2\x2\x2\x242\x243\x3\x2\x2\x2\x243\x245\x5"+ - "\xD0i\x2\x244\x23D\x3\x2\x2\x2\x245\x248\x3\x2\x2\x2\x246\x244\x3\x2\x2"+ - "\x2\x246\x247\x3\x2\x2\x2\x247\x24A\x3\x2\x2\x2\x248\x246\x3\x2\x2\x2"+ - "\x249\x23A\x3\x2\x2\x2\x249\x24A\x3\x2\x2\x2\x24A\'\x3\x2\x2\x2\x24B\x24C"+ - "\x5\x116\x8C\x2\x24C\x24D\x5\x12E\x98\x2\x24D\x24F\x3\x2\x2\x2\x24E\x24B"+ - "\x3\x2\x2\x2\x24E\x24F\x3\x2\x2\x2\x24F\x250\x3\x2\x2\x2\x250\x251\aH"+ - "\x2\x2\x251\x252\x5\x12E\x98\x2\x252\x25D\x5*\x16\x2\x253\x255\x5\x12E"+ - "\x98\x2\x254\x253\x3\x2\x2\x2\x254\x255\x3\x2\x2\x2\x255\x256\x3\x2\x2"+ - "\x2\x256\x258\a)\x2\x2\x257\x259\x5\x12E\x98\x2\x258\x257\x3\x2\x2\x2"+ - "\x258\x259\x3\x2\x2\x2\x259\x25A\x3\x2\x2\x2\x25A\x25C\x5*\x16\x2\x25B"+ - "\x254\x3\x2\x2\x2\x25C\x25F\x3\x2\x2\x2\x25D\x25B\x3\x2\x2\x2\x25D\x25E"+ - "\x3\x2\x2\x2\x25E)\x3\x2\x2\x2\x25F\x25D\x3\x2\x2\x2\x260\x262\x5\xFE"+ - "\x80\x2\x261\x263\x5\x114\x8B\x2\x262\x261\x3\x2\x2\x2\x262\x263\x3\x2"+ - "\x2\x2\x263\x267\x3\x2\x2\x2\x264\x265\x5\x12E\x98\x2\x265\x266\x5\x100"+ - "\x81\x2\x266\x268\x3\x2\x2\x2\x267\x264\x3\x2\x2\x2\x267\x268\x3\x2\x2"+ - "\x2\x268\x26A\x3\x2\x2\x2\x269\x26B\x5\x12E\x98\x2\x26A\x269\x3\x2\x2"+ - "\x2\x26A\x26B\x3\x2\x2\x2\x26B\x26C\x3\x2\x2\x2\x26C\x26E\a\xE2\x2\x2"+ - "\x26D\x26F\x5\x12E\x98\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3\x2\x2\x2"+ - "\x26F\x270\x3\x2\x2\x2\x270\x271\x5\xBC_\x2\x271+\x3\x2\x2\x2\x272\x274"+ - "\aJ\x2\x2\x273\x275\x5\x12E\x98\x2\x274\x273\x3\x2\x2\x2\x274\x275\x3"+ - "\x2\x2\x2\x275\x276\x3\x2\x2\x2\x276\x278\a\xE2\x2\x2\x277\x279\x5\x12E"+ - "\x98\x2\x278\x277\x3\x2\x2\x2\x278\x279\x3\x2\x2\x2\x279\x27A\x3\x2\x2"+ - "\x2\x27A\x27B\x5\xBC_\x2\x27B-\x3\x2\x2\x2\x27C\x27D\x5\x116\x8C\x2\x27D"+ - "\x27E\x5\x12E\x98\x2\x27E\x280\x3\x2\x2\x2\x27F\x27C\x3\x2\x2\x2\x27F"+ - "\x280\x3\x2\x2\x2\x280\x281\x3\x2\x2\x2\x281\x282\aK\x2\x2\x282\x285\x5"+ - "\x12E\x98\x2\x283\x284\a\xAD\x2\x2\x284\x286\x5\x12E\x98\x2\x285\x283"+ - "\x3\x2\x2\x2\x285\x286\x3\x2\x2\x2\x286\x28C\x3\x2\x2\x2\x287\x289\ax"+ - "\x2\x2\x288\x28A\x5\x114\x8B\x2\x289\x288\x3\x2\x2\x2\x289\x28A\x3\x2"+ - "\x2\x2\x28A\x28D\x3\x2\x2\x2\x28B\x28D\a\xCA\x2\x2\x28C\x287\x3\x2\x2"+ - "\x2\x28C\x28B\x3\x2\x2\x2\x28D\x28E\x3\x2\x2\x2\x28E\x28F\x5\x12E\x98"+ - "\x2\x28F\x291\x5\xFE\x80\x2\x290\x292\x5\x114\x8B\x2\x291\x290\x3\x2\x2"+ - "\x2\x291\x292\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x294\x5\x12E\x98"+ - "\x2\x294\x295\a\x8A\x2\x2\x295\x296\x5\x12E\x98\x2\x296\x29C\a\xF5\x2"+ - "\x2\x297\x298\x5\x12E\x98\x2\x298\x299\a\x35\x2\x2\x299\x29A\x5\x12E\x98"+ - "\x2\x29A\x29B\a\xF5\x2\x2\x29B\x29D\x3\x2\x2\x2\x29C\x297\x3\x2\x2\x2"+ - "\x29C\x29D\x3\x2\x2\x2\x29D\x2A2\x3\x2\x2\x2\x29E\x2A0\x5\x12E\x98\x2"+ - "\x29F\x29E\x3\x2\x2\x2\x29F\x2A0\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1"+ - "\x2A3\x5\xF2z\x2\x2A2\x29F\x3\x2\x2\x2\x2A2\x2A3\x3\x2\x2\x2\x2A3\x2A7"+ - "\x3\x2\x2\x2\x2A4\x2A5\x5\x12E\x98\x2\x2A5\x2A6\x5\x100\x81\x2\x2A6\x2A8"+ - "\x3\x2\x2\x2\x2A7\x2A4\x3\x2\x2\x2\x2A7\x2A8\x3\x2\x2\x2\x2A8/\x3\x2\x2"+ - "\x2\x2A9\x2AA\t\x3\x2\x2\x2AA\x2AB\x5\x12E\x98\x2\x2AB\x2B6\x5\x10A\x86"+ - "\x2\x2AC\x2AE\x5\x12E\x98\x2\x2AD\x2AC\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2"+ - "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x2B1\a)\x2\x2\x2B0\x2B2\x5\x12E\x98\x2"+ - "\x2B1\x2B0\x3\x2\x2\x2\x2B1\x2B2\x3\x2\x2\x2\x2B2\x2B3\x3\x2\x2\x2\x2B3"+ - "\x2B5\x5\x10A\x86\x2\x2B4\x2AD\x3\x2\x2\x2\x2B5\x2B8\x3\x2\x2\x2\x2B6"+ - "\x2B4\x3\x2\x2\x2\x2B6\x2B7\x3\x2\x2\x2\x2B7\x31\x3\x2\x2\x2\x2B8\x2B6"+ - "\x3\x2\x2\x2\x2B9\x2BA\aY\x2\x2\x2BA\x2BB\x5\x12E\x98\x2\x2BB\x2BD\x5"+ - "\xBC_\x2\x2BC\x2BE\x5\x12E\x98\x2\x2BD\x2BC\x3\x2\x2\x2\x2BD\x2BE\x3\x2"+ - "\x2\x2\x2BE\x2E0\x3\x2\x2\x2\x2BF\x2C0\aY\x2\x2\x2C0\x2C1\x5\x12E\x98"+ - "\x2\x2C1\x2C3\x5\xBC_\x2\x2C2\x2C4\x5\x12E\x98\x2\x2C3\x2C2\x3\x2\x2\x2"+ - "\x2C3\x2C4\x3\x2\x2\x2\x2C4\x2C5\x3\x2\x2\x2\x2C5\x2C7\a)\x2\x2\x2C6\x2C8"+ - "\x5\x12E\x98\x2\x2C7\x2C6\x3\x2\x2\x2\x2C7\x2C8\x3\x2\x2\x2\x2C8\x2C9"+ - "\x3\x2\x2\x2\x2C9\x2CA\x5\xBC_\x2\x2CA\x2E0\x3\x2\x2\x2\x2CB\x2CC\aY\x2"+ - "\x2\x2CC\x2CD\x5\x12E\x98\x2\x2CD\x2CF\x5\xBC_\x2\x2CE\x2D0\x5\x12E\x98"+ - "\x2\x2CF\x2CE\x3\x2\x2\x2\x2CF\x2D0\x3\x2\x2\x2\x2D0\x2D1\x3\x2\x2\x2"+ - "\x2D1\x2D3\a)\x2\x2\x2D2\x2D4\x5\x12E\x98\x2\x2D3\x2D2\x3\x2\x2\x2\x2D3"+ - "\x2D4\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D7\x5\xBC_\x2\x2D6\x2D8"+ - "\x5\x12E\x98\x2\x2D7\x2D6\x3\x2\x2\x2\x2D7\x2D8\x3\x2\x2\x2\x2D8\x2D9"+ - "\x3\x2\x2\x2\x2D9\x2DB\a)\x2\x2\x2DA\x2DC\x5\x12E\x98\x2\x2DB\x2DA\x3"+ - "\x2\x2\x2\x2DB\x2DC\x3\x2\x2\x2\x2DC\x2DD\x3\x2\x2\x2\x2DD\x2DE\x5\xBC"+ - "_\x2\x2DE\x2E0\x3\x2\x2\x2\x2DF\x2B9\x3\x2\x2\x2\x2DF\x2BF\x3\x2\x2\x2"+ - "\x2DF\x2CB\x3\x2\x2\x2\x2E0\x33\x3\x2\x2\x2\x2E1\x2E2\a[\x2\x2\x2E2\x2E4"+ - "\x5\x11E\x90\x2\x2E3\x2E5\x5\x1A\xE\x2\x2E4\x2E3\x3\x2\x2\x2\x2E4\x2E5"+ - "\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6\x2E7\a\x88\x2\x2\x2E7\x2FF\x3"+ - "\x2\x2\x2\x2E8\x2E9\a[\x2\x2\x2E9\x2EA\x5\x12E\x98\x2\x2EA\x2EB\t\x4\x2"+ - "\x2\x2EB\x2EC\x5\x12E\x98\x2\x2EC\x2ED\x5\xBC_\x2\x2ED\x2EF\x5\x11E\x90"+ - "\x2\x2EE\x2F0\x5\x1A\xE\x2\x2EF\x2EE\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2"+ - "\x2F0\x2F1\x3\x2\x2\x2\x2F1\x2F2\a\x88\x2\x2\x2F2\x2FF\x3\x2\x2\x2\x2F3"+ - "\x2F4\a[\x2\x2\x2F4\x2F6\x5\x11E\x90\x2\x2F5\x2F7\x5\x1A\xE\x2\x2F6\x2F5"+ - "\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2\x2F8\x2F9\a\x88"+ - "\x2\x2\x2F9\x2FA\x5\x12E\x98\x2\x2FA\x2FB\t\x4\x2\x2\x2FB\x2FC\x5\x12E"+ - "\x98\x2\x2FC\x2FD\x5\xBC_\x2\x2FD\x2FF\x3\x2\x2\x2\x2FE\x2E1\x3\x2\x2"+ - "\x2\x2FE\x2E8\x3\x2\x2\x2\x2FE\x2F3\x3\x2\x2\x2\x2FF\x35\x3\x2\x2\x2\x300"+ - "\x301\ai\x2\x2\x301\x37\x3\x2\x2\x2\x302\x303\x5\x116\x8C\x2\x303\x304"+ - "\x5\x12E\x98\x2\x304\x306\x3\x2\x2\x2\x305\x302\x3\x2\x2\x2\x305\x306"+ - "\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x308\aj\x2\x2\x308\x309\x5\x12E"+ - "\x98\x2\x309\x30A\x5\xFE\x80\x2\x30A\x30E\x5\x11E\x90\x2\x30B\x30D\x5"+ - ":\x1E\x2\x30C\x30B\x3\x2\x2\x2\x30D\x310\x3\x2\x2\x2\x30E\x30C\x3\x2\x2"+ - "\x2\x30E\x30F\x3\x2\x2\x2\x30F\x311\x3\x2\x2\x2\x310\x30E\x3\x2\x2\x2"+ - "\x311\x312\a\x61\x2\x2\x312\x39\x3\x2\x2\x2\x313\x31C\x5\xFE\x80\x2\x314"+ - "\x316\x5\x12E\x98\x2\x315\x314\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316"+ - "\x317\x3\x2\x2\x2\x317\x319\a\xE2\x2\x2\x318\x31A\x5\x12E\x98\x2\x319"+ - "\x318\x3\x2\x2\x2\x319\x31A\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31D"+ - "\x5\xBC_\x2\x31C\x315\x3\x2\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E\x3\x2"+ - "\x2\x2\x31E\x31F\x5\x11E\x90\x2\x31F;\x3\x2\x2\x2\x320\x321\al\x2\x2\x321"+ - "\x322\x5\x12E\x98\x2\x322\x32D\x5\xBC_\x2\x323\x325\x5\x12E\x98\x2\x324"+ - "\x323\x3\x2\x2\x2\x324\x325\x3\x2\x2\x2\x325\x326\x3\x2\x2\x2\x326\x328"+ - "\a)\x2\x2\x327\x329\x5\x12E\x98\x2\x328\x327\x3\x2\x2\x2\x328\x329\x3"+ - "\x2\x2\x2\x329\x32A\x3\x2\x2\x2\x32A\x32C\x5\xBC_\x2\x32B\x324\x3\x2\x2"+ - "\x2\x32C\x32F\x3\x2\x2\x2\x32D\x32B\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2"+ - "\x32E=\x3\x2\x2\x2\x32F\x32D\x3\x2\x2\x2\x330\x331\am\x2\x2\x331\x332"+ - "\x5\x12E\x98\x2\x332\x333\x5\xBC_\x2\x333?\x3\x2\x2\x2\x334\x335\x5\x116"+ - "\x8C\x2\x335\x336\x5\x12E\x98\x2\x336\x338\x3\x2\x2\x2\x337\x334\x3\x2"+ - "\x2\x2\x337\x338\x3\x2\x2\x2\x338\x339\x3\x2\x2\x2\x339\x33A\an\x2\x2"+ - "\x33A\x33B\x5\x12E\x98\x2\x33B\x33D\x5\xFE\x80\x2\x33C\x33E\x5\x12E\x98"+ - "\x2\x33D\x33C\x3\x2\x2\x2\x33D\x33E\x3\x2\x2\x2\x33E\x33F\x3\x2\x2\x2"+ - "\x33F\x340\x5\xF2z\x2\x340\x41\x3\x2\x2\x2\x341\x342\t\x5\x2\x2\x342\x43"+ - "\x3\x2\x2\x2\x343\x344\au\x2\x2\x344\x345\x5\x12E\x98\x2\x345\x347\x5"+ - "\xBC_\x2\x346\x348\x5\x12E\x98\x2\x347\x346\x3\x2\x2\x2\x347\x348\x3\x2"+ - "\x2\x2\x348\x349\x3\x2\x2\x2\x349\x34B\a)\x2\x2\x34A\x34C\x5\x12E\x98"+ - "\x2\x34B\x34A\x3\x2\x2\x2\x34B\x34C\x3\x2\x2\x2\x34C\x34D\x3\x2\x2\x2"+ - "\x34D\x34E\x5\xBC_\x2\x34E\x45\x3\x2\x2\x2\x34F\x350\aw\x2\x2\x350\x351"+ - "\x5\x12E\x98\x2\x351\x352\a]\x2\x2\x352\x353\x5\x12E\x98\x2\x353\x354"+ - "\x5\xBC_\x2\x354\x355\x5\x12E\x98\x2\x355\x356\a\x80\x2\x2\x356\x357\x5"+ - "\x12E\x98\x2\x357\x358\x5\xBC_\x2\x358\x35A\x5\x11E\x90\x2\x359\x35B\x5"+ - "\x1A\xE\x2\x35A\x359\x3\x2\x2\x2\x35A\x35B\x3\x2\x2\x2\x35B\x35C\x3\x2"+ - "\x2\x2\x35C\x360\a\x96\x2\x2\x35D\x35E\x5\x12E\x98\x2\x35E\x35F\x5\xBC"+ - "_\x2\x35F\x361\x3\x2\x2\x2\x360\x35D\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ - "\x361G\x3\x2\x2\x2\x362\x363\aw\x2\x2\x363\x364\x5\x12E\x98\x2\x364\x366"+ - "\x5\xBC_\x2\x365\x367\x5\x12E\x98\x2\x366\x365\x3\x2\x2\x2\x366\x367\x3"+ - "\x2\x2\x2\x367\x368\x3\x2\x2\x2\x368\x36A\a\xE2\x2\x2\x369\x36B\x5\x12E"+ - "\x98\x2\x36A\x369\x3\x2\x2\x2\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2"+ - "\x2\x36C\x36D\x5\xBC_\x2\x36D\x36E\x5\x12E\x98\x2\x36E\x36F\a\xCF\x2\x2"+ - "\x36F\x370\x5\x12E\x98\x2\x370\x376\x5\xBC_\x2\x371\x372\x5\x12E\x98\x2"+ - "\x372\x373\a\xC7\x2\x2\x373\x374\x5\x12E\x98\x2\x374\x375\x5\xBC_\x2\x375"+ - "\x377\x3\x2\x2\x2\x376\x371\x3\x2\x2\x2\x376\x377\x3\x2\x2\x2\x377\x378"+ - "\x3\x2\x2\x2\x378\x37A\x5\x11E\x90\x2\x379\x37B\x5\x1A\xE\x2\x37A\x379"+ - "\x3\x2\x2\x2\x37A\x37B\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x380\a\x96"+ - "\x2\x2\x37D\x37E\x5\x12E\x98\x2\x37E\x37F\x5\xBC_\x2\x37F\x381\x3\x2\x2"+ - "\x2\x380\x37D\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381I\x3\x2\x2\x2\x382"+ - "\x383\x5\x116\x8C\x2\x383\x384\x5\x12E\x98\x2\x384\x386\x3\x2\x2\x2\x385"+ - "\x382\x3\x2\x2\x2\x385\x386\x3\x2\x2\x2\x386\x389\x3\x2\x2\x2\x387\x388"+ - "\a\xC6\x2\x2\x388\x38A\x5\x12E\x98\x2\x389\x387\x3\x2\x2\x2\x389\x38A"+ - "\x3\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38D\ax\x2\x2\x38C\x38E\x5\x12E"+ - "\x98\x2\x38D\x38C\x3\x2\x2\x2\x38D\x38E\x3\x2\x2\x2\x38E\x38F\x3\x2\x2"+ - "\x2\x38F\x391\x5\xFE\x80\x2\x390\x392\x5\x114\x8B\x2\x391\x390\x3\x2\x2"+ - "\x2\x391\x392\x3\x2\x2\x2\x392\x397\x3\x2\x2\x2\x393\x395\x5\x12E\x98"+ - "\x2\x394\x393\x3\x2\x2\x2\x394\x395\x3\x2\x2\x2\x395\x396\x3\x2\x2\x2"+ - "\x396\x398\x5\xF2z\x2\x397\x394\x3\x2\x2\x2\x397\x398\x3\x2\x2\x2\x398"+ - "\x39D\x3\x2\x2\x2\x399\x39B\x5\x12E\x98\x2\x39A\x399\x3\x2\x2\x2\x39A"+ - "\x39B\x3\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39C\x39E\x5\x100\x81\x2\x39D"+ - "\x39A\x3\x2\x2\x2\x39D\x39E\x3\x2\x2\x2\x39E\x39F\x3\x2\x2\x2\x39F\x3A1"+ - "\x5\x11E\x90\x2\x3A0\x3A2\x5\x1A\xE\x2\x3A1\x3A0\x3\x2\x2\x2\x3A1\x3A2"+ - "\x3\x2\x2\x2\x3A2\x3A3\x3\x2\x2\x2\x3A3\x3A4\a\x62\x2\x2\x3A4K\x3\x2\x2"+ - "\x2\x3A5\x3A6\ay\x2\x2\x3A6\x3A7\x5\x12E\x98\x2\x3A7\x3A9\x5\xD0i\x2\x3A8"+ - "\x3AA\x5\x12E\x98\x2\x3A9\x3A8\x3\x2\x2\x2\x3A9\x3AA\x3\x2\x2\x2\x3AA"+ - "\x3AB\x3\x2\x2\x2\x3AB\x3AD\a)\x2\x2\x3AC\x3AE\x5\x12E\x98\x2\x3AD\x3AC"+ - "\x3\x2\x2\x2\x3AD\x3AE\x3\x2\x2\x2\x3AE\x3B0\x3\x2\x2\x2\x3AF\x3B1\x5"+ - "\xBC_\x2\x3B0\x3AF\x3\x2\x2\x2\x3B0\x3B1\x3\x2\x2\x2\x3B1\x3B3\x3\x2\x2"+ - "\x2\x3B2\x3B4\x5\x12E\x98\x2\x3B3\x3B2\x3\x2\x2\x2\x3B3\x3B4\x3\x2\x2"+ - "\x2\x3B4\x3B5\x3\x2\x2\x2\x3B5\x3B7\a)\x2\x2\x3B6\x3B8\x5\x12E\x98\x2"+ - "\x3B7\x3B6\x3\x2\x2\x2\x3B7\x3B8\x3\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9"+ - "\x3BA\x5\xBC_\x2\x3BAM\x3\x2\x2\x2\x3BB\x3BC\a{\x2\x2\x3BC\x3BD\x5\x12E"+ - "\x98\x2\x3BD\x3BE\x5\xBC_\x2\x3BEO\x3\x2\x2\x2\x3BF\x3C0\a|\x2\x2\x3C0"+ - "\x3C1\x5\x12E\x98\x2\x3C1\x3C2\x5\xBC_\x2\x3C2Q\x3\x2\x2\x2\x3C3\x3C4"+ - "\a}\x2\x2\x3C4\x3C5\x5\x12E\x98\x2\x3C5\x3C6\x5V,\x2\x3C6\x3C7\x5\x12E"+ - "\x98\x2\x3C7\x3C8\a\xCD\x2\x2\x3C8\x3C9\x5\x12E\x98\x2\x3C9\x3CF\x5\x1C"+ - "\xF\x2\x3CA\x3CB\x5\x12E\x98\x2\x3CB\x3CC\a^\x2\x2\x3CC\x3CD\x5\x12E\x98"+ - "\x2\x3CD\x3CE\x5\x1C\xF\x2\x3CE\x3D0\x3\x2\x2\x2\x3CF\x3CA\x3\x2\x2\x2"+ - "\x3CF\x3D0\x3\x2\x2\x2\x3D0\x3DE\x3\x2\x2\x2\x3D1\x3D5\x5T+\x2\x3D2\x3D4"+ - "\x5X-\x2\x3D3\x3D2\x3\x2\x2\x2\x3D4\x3D7\x3\x2\x2\x2\x3D5\x3D3\x3\x2\x2"+ - "\x2\x3D5\x3D6\x3\x2\x2\x2\x3D6\x3D9\x3\x2\x2\x2\x3D7\x3D5\x3\x2\x2\x2"+ - "\x3D8\x3DA\x5Z.\x2\x3D9\x3D8\x3\x2\x2\x2\x3D9\x3DA\x3\x2\x2\x2\x3DA\x3DB"+ - "\x3\x2\x2\x2\x3DB\x3DC\a\x63\x2\x2\x3DC\x3DE\x3\x2\x2\x2\x3DD\x3C3\x3"+ - "\x2\x2\x2\x3DD\x3D1\x3\x2\x2\x2\x3DES\x3\x2\x2\x2\x3DF\x3E0\a}\x2\x2\x3E0"+ - "\x3E1\x5\x12E\x98\x2\x3E1\x3E2\x5V,\x2\x3E2\x3E3\x5\x12E\x98\x2\x3E3\x3E4"+ - "\a\xCD\x2\x2\x3E4\x3E6\x5\x11E\x90\x2\x3E5\x3E7\x5\x1A\xE\x2\x3E6\x3E5"+ - "\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7U\x3\x2\x2\x2\x3E8\x3E9\x5\xBC"+ - "_\x2\x3E9W\x3\x2\x2\x2\x3EA\x3EB\a_\x2\x2\x3EB\x3EC\x5\x12E\x98\x2\x3EC"+ - "\x3ED\x5V,\x2\x3ED\x3EE\x5\x12E\x98\x2\x3EE\x3EF\a\xCD\x2\x2\x3EF\x3F1"+ - "\x5\x11E\x90\x2\x3F0\x3F2\x5\x1A\xE\x2\x3F1\x3F0\x3\x2\x2\x2\x3F1\x3F2"+ - "\x3\x2\x2\x2\x3F2Y\x3\x2\x2\x2\x3F3\x3F4\a^\x2\x2\x3F4\x3F6\x5\x11E\x90"+ - "\x2\x3F5\x3F7\x5\x1A\xE\x2\x3F6\x3F5\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2"+ - "\x3F7[\x3\x2\x2\x2\x3F8\x3F9\a\x7F\x2\x2\x3F9\x3FA\x5\x12E\x98\x2\x3FA"+ - "\x3FB\x5\xBC_\x2\x3FB]\x3\x2\x2\x2\x3FC\x3FD\a\x81\x2\x2\x3FD\x3FE\x5"+ - "\x12E\x98\x2\x3FE\x407\x5\xD0i\x2\x3FF\x401\x5\x12E\x98\x2\x400\x3FF\x3"+ - "\x2\x2\x2\x400\x401\x3\x2\x2\x2\x401\x402\x3\x2\x2\x2\x402\x404\a)\x2"+ - "\x2\x403\x405\x5\x12E\x98\x2\x404\x403\x3\x2\x2\x2\x404\x405\x3\x2\x2"+ - "\x2\x405\x406\x3\x2\x2\x2\x406\x408\x5\xBC_\x2\x407\x400\x3\x2\x2\x2\x408"+ - "\x409\x3\x2\x2\x2\x409\x407\x3\x2\x2\x2\x409\x40A\x3\x2\x2\x2\x40A_\x3"+ - "\x2\x2\x2\x40B\x40C\a\x84\x2\x2\x40C\x40D\x5\x12E\x98\x2\x40D\x40E\x5"+ - "\xBC_\x2\x40E\x61\x3\x2\x2\x2\x40F\x410\a\x89\x2\x2\x410\x412\x5\x12E"+ - "\x98\x2\x411\x40F\x3\x2\x2\x2\x411\x412\x3\x2\x2\x2\x412\x413\x3\x2\x2"+ - "\x2\x413\x415\x5\xDCo\x2\x414\x416\x5\x12E\x98\x2\x415\x414\x3\x2\x2\x2"+ - "\x415\x416\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x419\a\xE2\x2\x2\x418"+ - "\x41A\x5\x12E\x98\x2\x419\x418\x3\x2\x2\x2\x419\x41A\x3\x2\x2\x2\x41A"+ - "\x41B\x3\x2\x2\x2\x41B\x41C\x5\xBC_\x2\x41C\x63\x3\x2\x2\x2\x41D\x41E"+ - "\a\x8C\x2\x2\x41E\x41F\x5\x12E\x98\x2\x41F\x421\x5\xD0i\x2\x420\x422\x5"+ - "\x12E\x98\x2\x421\x420\x3\x2\x2\x2\x421\x422\x3\x2\x2\x2\x422\x423\x3"+ - "\x2\x2\x2\x423\x425\a)\x2\x2\x424\x426\x5\x12E\x98\x2\x425\x424\x3\x2"+ - "\x2\x2\x425\x426\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2\x427\x428\x5\xBC_\x2"+ - "\x428\x65\x3\x2\x2\x2\x429\x42A\a\x85\x2\x2\x42A\x42B\x5\x12E\x98\x2\x42B"+ - "\x42C\x5\xBC_\x2\x42Cg\x3\x2\x2\x2\x42D\x42E\a\x86\x2\x2\x42E\x42F\x5"+ - "\x12E\x98\x2\x42F\x43F\x5\xBC_\x2\x430\x432\x5\x12E\x98\x2\x431\x430\x3"+ - "\x2\x2\x2\x431\x432\x3\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x435\a)\x2"+ - "\x2\x434\x436\x5\x12E\x98\x2\x435\x434\x3\x2\x2\x2\x435\x436\x3\x2\x2"+ - "\x2\x436\x437\x3\x2\x2\x2\x437\x43D\x5\xBC_\x2\x438\x439\x5\x12E\x98\x2"+ - "\x439\x43A\a\xCF\x2\x2\x43A\x43B\x5\x12E\x98\x2\x43B\x43C\x5\xBC_\x2\x43C"+ - "\x43E\x3\x2\x2\x2\x43D\x438\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x440"+ - "\x3\x2\x2\x2\x43F\x431\x3\x2\x2\x2\x43F\x440\x3\x2\x2\x2\x440i\x3\x2\x2"+ - "\x2\x441\x442\a\x90\x2\x2\x442\x443\x5\x12E\x98\x2\x443\x445\x5\xDCo\x2"+ - "\x444\x446\x5\x12E\x98\x2\x445\x444\x3\x2\x2\x2\x445\x446\x3\x2\x2\x2"+ - "\x446\x447\x3\x2\x2\x2\x447\x449\a\xE2\x2\x2\x448\x44A\x5\x12E\x98\x2"+ - "\x449\x448\x3\x2\x2\x2\x449\x44A\x3\x2\x2\x2\x44A\x44B\x3\x2\x2\x2\x44B"+ - "\x44C\x5\xBC_\x2\x44Ck\x3\x2\x2\x2\x44D\x44F\a\x92\x2\x2\x44E\x450\x5"+ - "\x12E\x98\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3"+ - "\x2\x2\x2\x451\x453\a\xE6\x2\x2\x452\x454\x5\x12E\x98\x2\x453\x452\x3"+ - "\x2\x2\x2\x453\x454\x3\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455\x457\x5\xEC"+ - "w\x2\x456\x458\x5\x12E\x98\x2\x457\x456\x3\x2\x2\x2\x457\x458\x3\x2\x2"+ - "\x2\x458\x459\x3\x2\x2\x2\x459\x45A\a\xED\x2\x2\x45Am\x3\x2\x2\x2\x45B"+ - "\x45C\a\x93\x2\x2\x45C\x45D\x5\x12E\x98\x2\x45D\x45E\x5\xBC_\x2\x45Eo"+ - "\x3\x2\x2\x2\x45F\x460\a\x95\x2\x2\x460\x461\x5\x12E\x98\x2\x461\x462"+ - "\x5\xBC_\x2\x462\x463\x5\x12E\x98\x2\x463\x464\a:\x2\x2\x464\x465\x5\x12E"+ - "\x98\x2\x465\x466\x5\xBC_\x2\x466q\x3\x2\x2\x2\x467\x468\t\x6\x2\x2\x468"+ - "\x471\x5\x12E\x98\x2\x469\x46A\a|\x2\x2\x46A\x46B\x5\x12E\x98\x2\x46B"+ - "\x46C\x5\xBC_\x2\x46C\x472\x3\x2\x2\x2\x46D\x46E\a\xB8\x2\x2\x46E\x46F"+ - "\x5\x12E\x98\x2\x46F\x470\a\x96\x2\x2\x470\x472\x3\x2\x2\x2\x471\x469"+ - "\x3\x2\x2\x2\x471\x46D\x3\x2\x2\x2\x472s\x3\x2\x2\x2\x473\x474\a\x9B\x2"+ - "\x2\x474\x475\x5\x12E\x98\x2\x475\x476\x5\xBC_\x2\x476\x477\x5\x12E\x98"+ - "\x2\x477\x478\a|\x2\x2\x478\x479\x5\x12E\x98\x2\x479\x484\x5\xBC_\x2\x47A"+ - "\x47C\x5\x12E\x98\x2\x47B\x47A\x3\x2\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C"+ - "\x47D\x3\x2\x2\x2\x47D\x47F\a)\x2\x2\x47E\x480\x5\x12E\x98\x2\x47F\x47E"+ - "\x3\x2\x2\x2\x47F\x480\x3\x2\x2\x2\x480\x481\x3\x2\x2\x2\x481\x483\x5"+ - "\xBC_\x2\x482\x47B\x3\x2\x2\x2\x483\x486\x3\x2\x2\x2\x484\x482\x3\x2\x2"+ - "\x2\x484\x485\x3\x2\x2\x2\x485u\x3\x2\x2\x2\x486\x484\x3\x2\x2\x2\x487"+ - "\x488\a\x9B\x2\x2\x488\x489\x5\x12E\x98\x2\x489\x48A\x5\xBC_\x2\x48A\x48B"+ - "\x5\x12E\x98\x2\x48B\x48C\a{\x2\x2\x48C\x48D\x5\x12E\x98\x2\x48D\x498"+ - "\x5\xBC_\x2\x48E\x490\x5\x12E\x98\x2\x48F\x48E\x3\x2\x2\x2\x48F\x490\x3"+ - "\x2\x2\x2\x490\x491\x3\x2\x2\x2\x491\x493\a)\x2\x2\x492\x494\x5\x12E\x98"+ - "\x2\x493\x492\x3\x2\x2\x2\x493\x494\x3\x2\x2\x2\x494\x495\x3\x2\x2\x2"+ - "\x495\x497\x5\xBC_\x2\x496\x48F\x3\x2\x2\x2\x497\x49A\x3\x2\x2\x2\x498"+ - "\x496\x3\x2\x2\x2\x498\x499\x3\x2\x2\x2\x499w\x3\x2\x2\x2\x49A\x498\x3"+ - "\x2\x2\x2\x49B\x49C\a\x9E\x2\x2\x49C\x49D\x5\x12E\x98\x2\x49D\x49E\x5"+ - "\xBC_\x2\x49E\x49F\x5\x12E\x98\x2\x49F\x4A0\aw\x2\x2\x4A0\x4A1\x5\x12E"+ - "\x98\x2\x4A1\x4A7\t\a\x2\x2\x4A2\x4A3\x5\x12E\x98\x2\x4A3\x4A4\a\x33\x2"+ - "\x2\x4A4\x4A5\x5\x12E\x98\x2\x4A5\x4A6\t\b\x2\x2\x4A6\x4A8\x3\x2\x2\x2"+ - "\x4A7\x4A2\x3\x2\x2\x2\x4A7\x4A8\x3\x2\x2\x2\x4A8\x4AC\x3\x2\x2\x2\x4A9"+ - "\x4AA\x5\x12E\x98\x2\x4AA\x4AB\t\t\x2\x2\x4AB\x4AD\x3\x2\x2\x2\x4AC\x4A9"+ - "\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4AE\x3\x2\x2\x2\x4AE\x4AF\x5"+ - "\x12E\x98\x2\x4AF\x4B0\a:\x2\x2\x4B0\x4B1\x5\x12E\x98\x2\x4B1\x4BD\x5"+ - "\xD0i\x2\x4B2\x4B3\x5\x12E\x98\x2\x4B3\x4B5\a\x1D\x2\x2\x4B4\x4B6\x5\x12E"+ - "\x98\x2\x4B5\x4B4\x3\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6\x4B7\x3\x2\x2"+ - "\x2\x4B7\x4B9\a\xE2\x2\x2\x4B8\x4BA\x5\x12E\x98\x2\x4B9\x4B8\x3\x2\x2"+ - "\x2\x4B9\x4BA\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x5\xBC_\x2\x4BC"+ - "\x4BE\x3\x2\x2\x2\x4BD\x4B2\x3\x2\x2\x2\x4BD\x4BE\x3\x2\x2\x2\x4BEy\x3"+ - "\x2\x2\x2\x4BF\x4CC\x5|?\x2\x4C0\x4C2\x5\x12E\x98\x2\x4C1\x4C0\x3\x2\x2"+ - "\x2\x4C1\x4C2\x3\x2\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C5\t\n\x2\x2\x4C4"+ - "\x4C6\x5\x12E\x98\x2\x4C5\x4C4\x3\x2\x2\x2\x4C5\x4C6\x3\x2\x2\x2\x4C6"+ - "\x4C8\x3\x2\x2\x2\x4C7\x4C9\x5|?\x2\x4C8\x4C7\x3\x2\x2\x2\x4C8\x4C9\x3"+ - "\x2\x2\x2\x4C9\x4CB\x3\x2\x2\x2\x4CA\x4C1\x3\x2\x2\x2\x4CB\x4CE\x3\x2"+ - "\x2\x2\x4CC\x4CA\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4E1\x3\x2\x2"+ - "\x2\x4CE\x4CC\x3\x2\x2\x2\x4CF\x4D1\x5|?\x2\x4D0\x4CF\x3\x2\x2\x2\x4D0"+ - "\x4D1\x3\x2\x2\x2\x4D1\x4DC\x3\x2\x2\x2\x4D2\x4D4\x5\x12E\x98\x2\x4D3"+ - "\x4D2\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2\x2\x4D4\x4D5\x3\x2\x2\x2\x4D5\x4D7"+ - "\t\n\x2\x2\x4D6\x4D8\x5\x12E\x98\x2\x4D7\x4D6\x3\x2\x2\x2\x4D7\x4D8\x3"+ - "\x2\x2\x2\x4D8\x4DA\x3\x2\x2\x2\x4D9\x4DB\x5|?\x2\x4DA\x4D9\x3\x2\x2\x2"+ - "\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\x3\x2\x2\x2\x4DC\x4D3\x3\x2\x2\x2\x4DD"+ - "\x4DE\x3\x2\x2\x2\x4DE\x4DC\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1"+ - "\x3\x2\x2\x2\x4E0\x4BF\x3\x2\x2\x2\x4E0\x4D0\x3\x2\x2\x2\x4E1{\x3\x2\x2"+ - "\x2\x4E2\x4F4\x5\xBC_\x2\x4E3\x4F1\t\v\x2\x2\x4E4\x4E6\x5\x12E\x98\x2"+ - "\x4E5\x4E4\x3\x2\x2\x2\x4E5\x4E6\x3\x2\x2\x2\x4E6\x4E7\x3\x2\x2\x2\x4E7"+ - "\x4E9\a\xE6\x2\x2\x4E8\x4EA\x5\x12E\x98\x2\x4E9\x4E8\x3\x2\x2\x2\x4E9"+ - "\x4EA\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB\x4ED\x5\xECw\x2\x4EC\x4EE"+ - "\x5\x12E\x98\x2\x4ED\x4EC\x3\x2\x2\x2\x4ED\x4EE\x3\x2\x2\x2\x4EE\x4EF"+ - "\x3\x2\x2\x2\x4EF\x4F0\a\xED\x2\x2\x4F0\x4F2\x3\x2\x2\x2\x4F1\x4E5\x3"+ - "\x2\x2\x2\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F4\x3\x2\x2\x2\x4F3\x4E2\x3\x2"+ - "\x2\x2\x4F3\x4E3\x3\x2\x2\x2\x4F4}\x3\x2\x2\x2\x4F5\x4F6\a\xA8\x2\x2\x4F6"+ - "\x4F7\x5\x12E\x98\x2\x4F7\x4F9\x5\xD0i\x2\x4F8\x4FA\x5\x12E\x98\x2\x4F9"+ - "\x4F8\x3\x2\x2\x2\x4F9\x4FA\x3\x2\x2\x2\x4FA\x4FB\x3\x2\x2\x2\x4FB\x500"+ - "\a)\x2\x2\x4FC\x4FE\x5\x12E\x98\x2\x4FD\x4FC\x3\x2\x2\x2\x4FD\x4FE\x3"+ - "\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x501\x5z>\x2\x500\x4FD\x3\x2\x2\x2"+ - "\x500\x501\x3\x2\x2\x2\x501\x7F\x3\x2\x2\x2\x502\x503\x5\x116\x8C\x2\x503"+ - "\x504\x5\x12E\x98\x2\x504\x506\x3\x2\x2\x2\x505\x502\x3\x2\x2\x2\x505"+ - "\x506\x3\x2\x2\x2\x506\x509\x3\x2\x2\x2\x507\x508\a\xC6\x2\x2\x508\x50A"+ - "\x5\x12E\x98\x2\x509\x507\x3\x2\x2\x2\x509\x50A\x3\x2\x2\x2\x50A\x50B"+ - "\x3\x2\x2\x2\x50B\x50C\a\xAA\x2\x2\x50C\x50D\x5\x12E\x98\x2\x50D\x50F"+ - "\x5\xFE\x80\x2\x50E\x510\x5\x114\x8B\x2\x50F\x50E\x3\x2\x2\x2\x50F\x510"+ - "\x3\x2\x2\x2\x510\x515\x3\x2\x2\x2\x511\x513\x5\x12E\x98\x2\x512\x511"+ - "\x3\x2\x2\x2\x512\x513\x3\x2\x2\x2\x513\x514\x3\x2\x2\x2\x514\x516\x5"+ - "\xF2z\x2\x515\x512\x3\x2\x2\x2\x515\x516\x3\x2\x2\x2\x516\x51A\x3\x2\x2"+ - "\x2\x517\x518\x5\x12E\x98\x2\x518\x519\x5\x100\x81\x2\x519\x51B\x3\x2"+ - "\x2\x2\x51A\x517\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3\x2\x2"+ - "\x2\x51C\x51E\x5\x11E\x90\x2\x51D\x51F\x5\x1A\xE\x2\x51E\x51D\x3\x2\x2"+ - "\x2\x51E\x51F\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\a\x64\x2\x2"+ - "\x521\x81\x3\x2\x2\x2\x522\x523\x5\x116\x8C\x2\x523\x524\x5\x12E\x98\x2"+ - "\x524\x526\x3\x2\x2\x2\x525\x522\x3\x2\x2\x2\x525\x526\x3\x2\x2\x2\x526"+ - "\x529\x3\x2\x2\x2\x527\x528\a\xC6\x2\x2\x528\x52A\x5\x12E\x98\x2\x529"+ - "\x527\x3\x2\x2\x2\x529\x52A\x3\x2\x2\x2\x52A\x52B\x3\x2\x2\x2\x52B\x52C"+ - "\a\xAC\x2\x2\x52C\x52D\x5\x12E\x98\x2\x52D\x532\x5\xFE\x80\x2\x52E\x530"+ - "\x5\x12E\x98\x2\x52F\x52E\x3\x2\x2\x2\x52F\x530\x3\x2\x2\x2\x530\x531"+ - "\x3\x2\x2\x2\x531\x533\x5\xF2z\x2\x532\x52F\x3\x2\x2\x2\x532\x533\x3\x2"+ - "\x2\x2\x533\x534\x3\x2\x2\x2\x534\x536\x5\x11E\x90\x2\x535\x537\x5\x1A"+ - "\xE\x2\x536\x535\x3\x2\x2\x2\x536\x537\x3\x2\x2\x2\x537\x538\x3\x2\x2"+ - "\x2\x538\x539\a\x64\x2\x2\x539\x83\x3\x2\x2\x2\x53A\x53B\x5\x116\x8C\x2"+ - "\x53B\x53C\x5\x12E\x98\x2\x53C\x53E\x3\x2\x2\x2\x53D\x53A\x3\x2\x2\x2"+ - "\x53D\x53E\x3\x2\x2\x2\x53E\x541\x3\x2\x2\x2\x53F\x540\a\xC6\x2\x2\x540"+ - "\x542\x5\x12E\x98\x2\x541\x53F\x3\x2\x2\x2\x541\x542\x3\x2\x2\x2\x542"+ - "\x543\x3\x2\x2\x2\x543\x544\a\xAB\x2\x2\x544\x545\x5\x12E\x98\x2\x545"+ - "\x54A\x5\xFE\x80\x2\x546\x548\x5\x12E\x98\x2\x547\x546\x3\x2\x2\x2\x547"+ - "\x548\x3\x2\x2\x2\x548\x549\x3\x2\x2\x2\x549\x54B\x5\xF2z\x2\x54A\x547"+ - "\x3\x2\x2\x2\x54A\x54B\x3\x2\x2\x2\x54B\x54C\x3\x2\x2\x2\x54C\x54E\x5"+ - "\x11E\x90\x2\x54D\x54F\x5\x1A\xE\x2\x54E\x54D\x3\x2\x2\x2\x54E\x54F\x3"+ - "\x2\x2\x2\x54F\x550\x3\x2\x2\x2\x550\x551\a\x64\x2\x2\x551\x85\x3\x2\x2"+ - "\x2\x552\x553\a\xAF\x2\x2\x553\x554\x5\x12E\x98\x2\x554\x556\x5\xD0i\x2"+ - "\x555\x557\x5\x12E\x98\x2\x556\x555\x3\x2\x2\x2\x556\x557\x3\x2\x2\x2"+ - "\x557\x558\x3\x2\x2\x2\x558\x55A\a)\x2\x2\x559\x55B\x5\x12E\x98\x2\x55A"+ - "\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55D\x3\x2\x2\x2\x55C\x55E"+ - "\x5\xBC_\x2\x55D\x55C\x3\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x560\x3\x2"+ - "\x2\x2\x55F\x561\x5\x12E\x98\x2\x560\x55F\x3\x2\x2\x2\x560\x561\x3\x2"+ - "\x2\x2\x561\x562\x3\x2\x2\x2\x562\x564\a)\x2\x2\x563\x565\x5\x12E\x98"+ - "\x2\x564\x563\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565\x566\x3\x2\x2\x2"+ - "\x566\x567\x5\xBC_\x2\x567\x87\x3\x2\x2\x2\x568\x569\a\xB2\x2\x2\x569"+ - "\x56A\x5\x12E\x98\x2\x56A\x579\x5\xFE\x80\x2\x56B\x56D\x5\x12E\x98\x2"+ - "\x56C\x56B\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x3\x2\x2\x2\x56E"+ - "\x570\a\xE6\x2\x2\x56F\x571\x5\x12E\x98\x2\x570\x56F\x3\x2\x2\x2\x570"+ - "\x571\x3\x2\x2\x2\x571\x576\x3\x2\x2\x2\x572\x574\x5\xECw\x2\x573\x575"+ - "\x5\x12E\x98\x2\x574\x573\x3\x2\x2\x2\x574\x575\x3\x2\x2\x2\x575\x577"+ - "\x3\x2\x2\x2\x576\x572\x3\x2\x2\x2\x576\x577\x3\x2\x2\x2\x577\x578\x3"+ - "\x2\x2\x2\x578\x57A\a\xED\x2\x2\x579\x56C\x3\x2\x2\x2\x579\x57A\x3\x2"+ - "\x2\x2\x57A\x89\x3\x2\x2\x2\x57B\x57F\a\xB1\x2\x2\x57C\x57D\x5\x12E\x98"+ - "\x2\x57D\x57E\x5\xBC_\x2\x57E\x580\x3\x2\x2\x2\x57F\x57C\x3\x2\x2\x2\x57F"+ - "\x580\x3\x2\x2\x2\x580\x8B\x3\x2\x2\x2\x581\x582\a\xB5\x2\x2\x582\x585"+ - "\x5\x12E\x98\x2\x583\x584\a\xA7\x2\x2\x584\x586\x5\x12E\x98\x2\x585\x583"+ - "\x3\x2\x2\x2\x585\x586\x3\x2\x2\x2\x586\x587\x3\x2\x2\x2\x587\x592\x5"+ - "\x8EH\x2\x588\x58A\x5\x12E\x98\x2\x589\x588\x3\x2\x2\x2\x589\x58A\x3\x2"+ - "\x2\x2\x58A\x58B\x3\x2\x2\x2\x58B\x58D\a)\x2\x2\x58C\x58E\x5\x12E\x98"+ - "\x2\x58D\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2"+ - "\x58F\x591\x5\x8EH\x2\x590\x589\x3\x2\x2\x2\x591\x594\x3\x2\x2\x2\x592"+ - "\x590\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x8D\x3\x2\x2\x2\x594\x592"+ - "\x3\x2\x2\x2\x595\x597\x5\xDCo\x2\x596\x598\x5\x12E\x98\x2\x597\x596\x3"+ - "\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598\x599\x3\x2\x2\x2\x599\x59B\a\xE6"+ - "\x2\x2\x59A\x59C\x5\x12E\x98\x2\x59B\x59A\x3\x2\x2\x2\x59B\x59C\x3\x2"+ - "\x2\x2\x59C\x59D\x3\x2\x2\x2\x59D\x59F\x5\xF8}\x2\x59E\x5A0\x5\x12E\x98"+ - "\x2\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2"+ - "\x5A1\x5A5\a\xED\x2\x2\x5A2\x5A3\x5\x12E\x98\x2\x5A3\x5A4\x5\x100\x81"+ - "\x2\x5A4\x5A6\x3\x2\x2\x2\x5A5\x5A2\x3\x2\x2\x2\x5A5\x5A6\x3\x2\x2\x2"+ - "\x5A6\x8F\x3\x2\x2\x2\x5A7\x5A8\a\xB7\x2\x2\x5A8\x91\x3\x2\x2\x2\x5A9"+ - "\x5AF\a\xB8\x2\x2\x5AA\x5AD\x5\x12E\x98\x2\x5AB\x5AE\a\x96\x2\x2\x5AC"+ - "\x5AE\x5\xFE\x80\x2\x5AD\x5AB\x3\x2\x2\x2\x5AD\x5AC\x3\x2\x2\x2\x5AE\x5B0"+ - "\x3\x2\x2\x2\x5AF\x5AA\x3\x2\x2\x2\x5AF\x5B0\x3\x2\x2\x2\x5B0\x93\x3\x2"+ - "\x2\x2\x5B1\x5B2\a\xB9\x2\x2\x5B2\x95\x3\x2\x2\x2\x5B3\x5B4\a\xBA\x2\x2"+ - "\x5B4\x5B5\x5\x12E\x98\x2\x5B5\x5B6\x5\xBC_\x2\x5B6\x97\x3\x2\x2\x2\x5B7"+ - "\x5B8\a\xBB\x2\x2\x5B8\x5B9\x5\x12E\x98\x2\x5B9\x5BB\x5\xDCo\x2\x5BA\x5BC"+ - "\x5\x12E\x98\x2\x5BB\x5BA\x3\x2\x2\x2\x5BB\x5BC\x3\x2\x2\x2\x5BC\x5BD"+ - "\x3\x2\x2\x2\x5BD\x5BF\a\xE2\x2\x2\x5BE\x5C0\x5\x12E\x98\x2\x5BF\x5BE"+ - "\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1\x3\x2\x2\x2\x5C1\x5C2\x5"+ - "\xBC_\x2\x5C2\x99\x3\x2\x2\x2\x5C3\x5C4\a\xBC\x2\x2\x5C4\x5C5\x5\x12E"+ - "\x98\x2\x5C5\x5C7\x5\xBC_\x2\x5C6\x5C8\x5\x12E\x98\x2\x5C7\x5C6\x3\x2"+ - "\x2\x2\x5C7\x5C8\x3\x2\x2\x2\x5C8\x5C9\x3\x2\x2\x2\x5C9\x5CB\a)\x2\x2"+ - "\x5CA\x5CC\x5\x12E\x98\x2\x5CB\x5CA\x3\x2\x2\x2\x5CB\x5CC\x3\x2\x2\x2"+ - "\x5CC\x5CD\x3\x2\x2\x2\x5CD\x5CE\x5\xBC_\x2\x5CE\x9B\x3\x2\x2\x2\x5CF"+ - "\x5D0\a\xBD\x2\x2\x5D0\x5D1\x5\x12E\x98\x2\x5D1\x5D3\x5\xBC_\x2\x5D2\x5D4"+ - "\x5\x12E\x98\x2\x5D3\x5D2\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D5"+ - "\x3\x2\x2\x2\x5D5\x5D7\a)\x2\x2\x5D6\x5D8\x5\x12E\x98\x2\x5D7\x5D6\x3"+ - "\x2\x2\x2\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5D9\x3\x2\x2\x2\x5D9\x5DB\x5\xBC"+ - "_\x2\x5DA\x5DC\x5\x12E\x98\x2\x5DB\x5DA\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2"+ - "\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DF\a)\x2\x2\x5DE\x5E0\x5\x12E\x98\x2"+ - "\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1"+ - "\x5E3\x5\xBC_\x2\x5E2\x5E4\x5\x12E\x98\x2\x5E3\x5E2\x3\x2\x2\x2\x5E3\x5E4"+ - "\x3\x2\x2\x2\x5E4\x5E5\x3\x2\x2\x2\x5E5\x5E7\a)\x2\x2\x5E6\x5E8\x5\x12E"+ - "\x98\x2\x5E7\x5E6\x3\x2\x2\x2\x5E7\x5E8\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2"+ - "\x2\x5E9\x5EA\x5\xBC_\x2\x5EA\x9D\x3\x2\x2\x2\x5EB\x5EC\a\xBE\x2\x2\x5EC"+ - "\x5ED\x5\x12E\x98\x2\x5ED\x5EF\x5\xD0i\x2\x5EE\x5F0\x5\x12E\x98\x2\x5EF"+ - "\x5EE\x3\x2\x2\x2\x5EF\x5F0\x3\x2\x2\x2\x5F0\x5F1\x3\x2\x2\x2\x5F1\x5F3"+ - "\a)\x2\x2\x5F2\x5F4\x5\x12E\x98\x2\x5F3\x5F2\x3\x2\x2\x2\x5F3\x5F4\x3"+ - "\x2\x2\x2\x5F4\x5F5\x3\x2\x2\x2\x5F5\x5F6\x5\xBC_\x2\x5F6\x9F\x3\x2\x2"+ - "\x2\x5F7\x5F8\a\xBF\x2\x2\x5F8\x5F9\x5\x12E\x98\x2\x5F9\x5FA\a\x43\x2"+ - "\x2\x5FA\x5FB\x5\x12E\x98\x2\x5FB\x5FC\x5\xBC_\x2\x5FC\x600\x5\x11E\x90"+ - "\x2\x5FD\x5FF\x5\xA4S\x2\x5FE\x5FD\x3\x2\x2\x2\x5FF\x602\x3\x2\x2\x2\x600"+ - "\x5FE\x3\x2\x2\x2\x600\x601\x3\x2\x2\x2\x601\x603\x3\x2\x2\x2\x602\x600"+ - "\x3\x2\x2\x2\x603\x604\a\x65\x2\x2\x604\xA1\x3\x2\x2\x2\x605\x607\a\x82"+ - "\x2\x2\x606\x608\x5\x12E\x98\x2\x607\x606\x3\x2\x2\x2\x607\x608\x3\x2"+ - "\x2\x2\x608\x609\x3\x2\x2\x2\x609\x60B\x5\x104\x83\x2\x60A\x60C\x5\x12E"+ - "\x98\x2\x60B\x60A\x3\x2\x2\x2\x60B\x60C\x3\x2\x2\x2\x60C\x60D\x3\x2\x2"+ - "\x2\x60D\x60E\x5\xBC_\x2\x60E\x617\x3\x2\x2\x2\x60F\x610\x5\xBC_\x2\x610"+ - "\x611\x5\x12E\x98\x2\x611\x612\a\xCF\x2\x2\x612\x613\x5\x12E\x98\x2\x613"+ - "\x614\x5\xBC_\x2\x614\x617\x3\x2\x2\x2\x615\x617\x5\xBC_\x2\x616\x605"+ - "\x3\x2\x2\x2\x616\x60F\x3\x2\x2\x2\x616\x615\x3\x2\x2\x2\x617\xA3\x3\x2"+ - "\x2\x2\x618\x619\a\x43\x2\x2\x619\x61A\x5\x12E\x98\x2\x61A\x61B\x5\xA6"+ - "T\x2\x61B\x61D\x5\x11E\x90\x2\x61C\x61E\x5\x1A\xE\x2\x61D\x61C\x3\x2\x2"+ - "\x2\x61D\x61E\x3\x2\x2\x2\x61E\xA5\x3\x2\x2\x2\x61F\x62F\a^\x2\x2\x620"+ - "\x62B\x5\xA2R\x2\x621\x623\x5\x12E\x98\x2\x622\x621\x3\x2\x2\x2\x622\x623"+ - "\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x626\a)\x2\x2\x625\x627\x5\x12E"+ - "\x98\x2\x626\x625\x3\x2\x2\x2\x626\x627\x3\x2\x2\x2\x627\x628\x3\x2\x2"+ - "\x2\x628\x62A\x5\xA2R\x2\x629\x622\x3\x2\x2\x2\x62A\x62D\x3\x2\x2\x2\x62B"+ - "\x629\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62F\x3\x2\x2\x2\x62D\x62B"+ - "\x3\x2\x2\x2\x62E\x61F\x3\x2\x2\x2\x62E\x620\x3\x2\x2\x2\x62F\xA7\x3\x2"+ - "\x2\x2\x630\x631\a\xC0\x2\x2\x631\x632\x5\x12E\x98\x2\x632\x63B\x5\xBC"+ - "_\x2\x633\x635\x5\x12E\x98\x2\x634\x633\x3\x2\x2\x2\x634\x635\x3\x2\x2"+ - "\x2\x635\x636\x3\x2\x2\x2\x636\x638\a)\x2\x2\x637\x639\x5\x12E\x98\x2"+ - "\x638\x637\x3\x2\x2\x2\x638\x639\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A"+ - "\x63C\x5\xBC_\x2\x63B\x634\x3\x2\x2\x2\x63B\x63C\x3\x2\x2\x2\x63C\xA9"+ - "\x3\x2\x2\x2\x63D\x63E\a\xC2\x2\x2\x63E\x63F\x5\x12E\x98\x2\x63F\x641"+ - "\x5\xBC_\x2\x640\x642\x5\x12E\x98\x2\x641\x640\x3\x2\x2\x2\x641\x642\x3"+ - "\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\x645\a)\x2\x2\x644\x646\x5\x12E\x98"+ - "\x2\x645\x644\x3\x2\x2\x2\x645\x646\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2"+ - "\x647\x648\x5\xBC_\x2\x648\xAB\x3\x2\x2\x2\x649\x64A\a\xC1\x2\x2\x64A"+ - "\x64B\x5\x12E\x98\x2\x64B\x64D\x5\xDCo\x2\x64C\x64E\x5\x12E\x98\x2\x64D"+ - "\x64C\x3\x2\x2\x2\x64D\x64E\x3\x2\x2\x2\x64E\x64F\x3\x2\x2\x2\x64F\x651"+ - "\a\xE2\x2\x2\x650\x652\x5\x12E\x98\x2\x651\x650\x3\x2\x2\x2\x651\x652"+ - "\x3\x2\x2\x2\x652\x653\x3\x2\x2\x2\x653\x654\x5\xBC_\x2\x654\xAD\x3\x2"+ - "\x2\x2\x655\x656\a\xC8\x2\x2\x656\xAF\x3\x2\x2\x2\x657\x658\x5\x116\x8C"+ - "\x2\x658\x659\x5\x12E\x98\x2\x659\x65B\x3\x2\x2\x2\x65A\x657\x3\x2\x2"+ - "\x2\x65A\x65B\x3\x2\x2\x2\x65B\x65E\x3\x2\x2\x2\x65C\x65D\a\xC6\x2\x2"+ - "\x65D\x65F\x5\x12E\x98\x2\x65E\x65C\x3\x2\x2\x2\x65E\x65F\x3\x2\x2\x2"+ - "\x65F\x660\x3\x2\x2\x2\x660\x662\a\xCA\x2\x2\x661\x663\x5\x12E\x98\x2"+ - "\x662\x661\x3\x2\x2\x2\x662\x663\x3\x2\x2\x2\x663\x664\x3\x2\x2\x2\x664"+ - "\x669\x5\xFE\x80\x2\x665\x667\x5\x12E\x98\x2\x666\x665\x3\x2\x2\x2\x666"+ - "\x667\x3\x2\x2\x2\x667\x668\x3\x2\x2\x2\x668\x66A\x5\xF2z\x2\x669\x666"+ - "\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A\x66B\x3\x2\x2\x2\x66B\x66D\x5"+ - "\x11E\x90\x2\x66C\x66E\x5\x1A\xE\x2\x66D\x66C\x3\x2\x2\x2\x66D\x66E\x3"+ - "\x2\x2\x2\x66E\x66F\x3\x2\x2\x2\x66F\x670\a\x66\x2\x2\x670\xB1\x3\x2\x2"+ - "\x2\x671\x673\a\xCE\x2\x2\x672\x674\x5\x12E\x98\x2\x673\x672\x3\x2\x2"+ - "\x2\x673\x674\x3\x2\x2\x2\x674\x675\x3\x2\x2\x2\x675\x677\a\xE2\x2\x2"+ - "\x676\x678\x5\x12E\x98\x2\x677\x676\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2"+ - "\x678\x679\x3\x2\x2\x2\x679\x67A\x5\xBC_\x2\x67A\xB3\x3\x2\x2\x2\x67B"+ - "\x67C\x5\x116\x8C\x2\x67C\x67D\x5\x12E\x98\x2\x67D\x67F\x3\x2\x2\x2\x67E"+ - "\x67B\x3\x2\x2\x2\x67E\x67F\x3\x2\x2\x2\x67F\x680\x3\x2\x2\x2\x680\x681"+ - "\a\xD1\x2\x2\x681\x682\x5\x12E\x98\x2\x682\x683\x5\xFE\x80\x2\x683\x687"+ - "\x5\x11E\x90\x2\x684\x686\x5\xB6\\\x2\x685\x684\x3\x2\x2\x2\x686\x689"+ - "\x3\x2\x2\x2\x687\x685\x3\x2\x2\x2\x687\x688\x3\x2\x2\x2\x688\x68A\x3"+ - "\x2\x2\x2\x689\x687\x3\x2\x2\x2\x68A\x68B\ag\x2\x2\x68B\xB5\x3\x2\x2\x2"+ - "\x68C\x69B\x5\xFE\x80\x2\x68D\x68F\x5\x12E\x98\x2\x68E\x68D\x3\x2\x2\x2"+ - "\x68E\x68F\x3\x2\x2\x2\x68F\x690\x3\x2\x2\x2\x690\x695\a\xE6\x2\x2\x691"+ - "\x693\x5\x12E\x98\x2\x692\x691\x3\x2\x2\x2\x692\x693\x3\x2\x2\x2\x693"+ - "\x694\x3\x2\x2\x2\x694\x696\x5\xF8}\x2\x695\x692\x3\x2\x2\x2\x695\x696"+ - "\x3\x2\x2\x2\x696\x698\x3\x2\x2\x2\x697\x699\x5\x12E\x98\x2\x698\x697"+ - "\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69C\a\xED"+ - "\x2\x2\x69B\x68E\x3\x2\x2\x2\x69B\x69C\x3\x2\x2\x2\x69C\x6A0\x3\x2\x2"+ - "\x2\x69D\x69E\x5\x12E\x98\x2\x69E\x69F\x5\x100\x81\x2\x69F\x6A1\x3\x2"+ - "\x2\x2\x6A0\x69D\x3\x2\x2\x2\x6A0\x6A1\x3\x2\x2\x2\x6A1\x6A2\x3\x2\x2"+ - "\x2\x6A2\x6A3\x5\x11E\x90\x2\x6A3\xB7\x3\x2\x2\x2\x6A4\x6A5\a\xD3\x2\x2"+ - "\x6A5\x6A6\x5\x12E\x98\x2\x6A6\x6A7\x5\xBC_\x2\x6A7\xB9\x3\x2\x2\x2\x6A8"+ - "\x6A9\a\xD4\x2\x2\x6A9\x6AA\x5\x12E\x98\x2\x6AA\x6BA\x5\xD0i\x2\x6AB\x6AD"+ - "\x5\x12E\x98\x2\x6AC\x6AB\x3\x2\x2\x2\x6AC\x6AD\x3\x2\x2\x2\x6AD\x6AE"+ - "\x3\x2\x2\x2\x6AE\x6B0\a)\x2\x2\x6AF\x6B1\x5\x12E\x98\x2\x6B0\x6AF\x3"+ - "\x2\x2\x2\x6B0\x6B1\x3\x2\x2\x2\x6B1\x6B2\x3\x2\x2\x2\x6B2\x6B8\x5\xBC"+ - "_\x2\x6B3\x6B4\x5\x12E\x98\x2\x6B4\x6B5\a\xCF\x2\x2\x6B5\x6B6\x5\x12E"+ - "\x98\x2\x6B6\x6B7\x5\xBC_\x2\x6B7\x6B9\x3\x2\x2\x2\x6B8\x6B3\x3\x2\x2"+ - "\x2\x6B8\x6B9\x3\x2\x2\x2\x6B9\x6BB\x3\x2\x2\x2\x6BA\x6AC\x3\x2\x2\x2"+ - "\x6BA\x6BB\x3\x2\x2\x2\x6BB\xBB\x3\x2\x2\x2\x6BC\x6BD\b_\x1\x2\x6BD\x6BF"+ - "\a\x97\x2\x2\x6BE\x6C0\x5\x12E\x98\x2\x6BF\x6BE\x3\x2\x2\x2\x6BF\x6C0"+ - "\x3\x2\x2\x2\x6C0\x6C1\x3\x2\x2\x2\x6C1\x6EA\x5\xBC_\x15\x6C2\x6C4\a\x34"+ - "\x2\x2\x6C3\x6C5\x5\x12E\x98\x2\x6C4\x6C3\x3\x2\x2\x2\x6C4\x6C5\x3\x2"+ - "\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6EA\x5\xBC_\x12\x6C7\x6C9\x5\xDCo\x2"+ - "\x6C8\x6CA\x5\x12E\x98\x2\x6C9\x6C8\x3\x2\x2\x2\x6C9\x6CA\x3\x2\x2\x2"+ - "\x6CA\x6CB\x3\x2\x2\x2\x6CB\x6CD\a\xDF\x2\x2\x6CC\x6CE\x5\x12E\x98\x2"+ - "\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF"+ - "\x6D0\x5\xBC_\x11\x6D0\x6EA\x3\x2\x2\x2\x6D1\x6D3\a\xE8\x2\x2\x6D2\x6D4"+ - "\x5\x12E\x98\x2\x6D3\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6D5"+ - "\x3\x2\x2\x2\x6D5\x6EA\x5\xBC_\xF\x6D6\x6D8\a\x98\x2\x2\x6D7\x6D9\x5\x12E"+ - "\x98\x2\x6D8\x6D7\x3\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x3\x2\x2"+ - "\x2\x6DA\x6EA\x5\xBC_\b\x6DB\x6EA\x5\x10E\x88\x2\x6DC\x6EA\x5\xDCo\x2"+ - "\x6DD\x6DF\a\xE6\x2\x2\x6DE\x6E0\x5\x12E\x98\x2\x6DF\x6DE\x3\x2\x2\x2"+ - "\x6DF\x6E0\x3\x2\x2\x2\x6E0\x6E1\x3\x2\x2\x2\x6E1\x6E3\x5\xBC_\x2\x6E2"+ - "\x6E4\x5\x12E\x98\x2\x6E3\x6E2\x3\x2\x2\x2\x6E3\x6E4\x3\x2\x2\x2\x6E4"+ - "\x6E5\x3\x2\x2\x2\x6E5\x6E6\a\xED\x2\x2\x6E6\x6EA\x3\x2\x2\x2\x6E7\x6EA"+ - "\x5\xBE`\x2\x6E8\x6EA\x5l\x37\x2\x6E9\x6BC\x3\x2\x2\x2\x6E9\x6C2\x3\x2"+ - "\x2\x2\x6E9\x6C7\x3\x2\x2\x2\x6E9\x6D1\x3\x2\x2\x2\x6E9\x6D6\x3\x2\x2"+ - "\x2\x6E9\x6DB\x3\x2\x2\x2\x6E9\x6DC\x3\x2\x2\x2\x6E9\x6DD\x3\x2\x2\x2"+ - "\x6E9\x6E7\x3\x2\x2\x2\x6E9\x6E8\x3\x2\x2\x2\x6EA\x759\x3\x2\x2\x2\x6EB"+ - "\x6ED\f\x10\x2\x2\x6EC\x6EE\x5\x12E\x98\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED"+ - "\x6EE\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2\x2\x6EF\x6F1\a\xEC\x2\x2\x6F0\x6F2"+ - "\x5\x12E\x98\x2\x6F1\x6F0\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F3"+ - "\x3\x2\x2\x2\x6F3\x758\x5\xBC_\x11\x6F4\x6F6\f\xE\x2\x2\x6F5\x6F7\x5\x12E"+ - "\x98\x2\x6F6\x6F5\x3\x2\x2\x2\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F8\x3\x2\x2"+ - "\x2\x6F8\x6FA\t\f\x2\x2\x6F9\x6FB\x5\x12E\x98\x2\x6FA\x6F9\x3\x2\x2\x2"+ - "\x6FA\x6FB\x3\x2\x2\x2\x6FB\x6FC\x3\x2\x2\x2\x6FC\x758\x5\xBC_\xF\x6FD"+ - "\x6FF\f\r\x2\x2\x6FE\x700\x5\x12E\x98\x2\x6FF\x6FE\x3\x2\x2\x2\x6FF\x700"+ - "\x3\x2\x2\x2\x700\x701\x3\x2\x2\x2\x701\x703\a\xE1\x2\x2\x702\x704\x5"+ - "\x12E\x98\x2\x703\x702\x3\x2\x2\x2\x703\x704\x3\x2\x2\x2\x704\x705\x3"+ - "\x2\x2\x2\x705\x758\x5\xBC_\xE\x706\x708\f\f\x2\x2\x707\x709\x5\x12E\x98"+ - "\x2\x708\x707\x3\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2"+ - "\x70A\x70C\a\x94\x2\x2\x70B\x70D\x5\x12E\x98\x2\x70C\x70B\x3\x2\x2\x2"+ - "\x70C\x70D\x3\x2\x2\x2\x70D\x70E\x3\x2\x2\x2\x70E\x758\x5\xBC_\r\x70F"+ - "\x711\f\v\x2\x2\x710\x712\x5\x12E\x98\x2\x711\x710\x3\x2\x2\x2\x711\x712"+ - "\x3\x2\x2\x2\x712\x713\x3\x2\x2\x2\x713\x715\t\r\x2\x2\x714\x716\x5\x12E"+ - "\x98\x2\x715\x714\x3\x2\x2\x2\x715\x716\x3\x2\x2\x2\x716\x717\x3\x2\x2"+ - "\x2\x717\x758\x5\xBC_\f\x718\x71A\f\n\x2\x2\x719\x71B\x5\x12E\x98\x2\x71A"+ - "\x719\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C\x71E"+ - "\a\x32\x2\x2\x71D\x71F\x5\x12E\x98\x2\x71E\x71D\x3\x2\x2\x2\x71E\x71F"+ - "\x3\x2\x2\x2\x71F\x720\x3\x2\x2\x2\x720\x758\x5\xBC_\v\x721\x723\f\t\x2"+ - "\x2\x722\x724\x5\x12E\x98\x2\x723\x722\x3\x2\x2\x2\x723\x724\x3\x2\x2"+ - "\x2\x724\x725\x3\x2\x2\x2\x725\x727\t\xE\x2\x2\x726\x728\x5\x12E\x98\x2"+ - "\x727\x726\x3\x2\x2\x2\x727\x728\x3\x2\x2\x2\x728\x729\x3\x2\x2\x2\x729"+ - "\x758\x5\xBC_\n\x72A\x72C\f\a\x2\x2\x72B\x72D\x5\x12E\x98\x2\x72C\x72B"+ - "\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x730\a\x36"+ - "\x2\x2\x72F\x731\x5\x12E\x98\x2\x730\x72F\x3\x2\x2\x2\x730\x731\x3\x2"+ - "\x2\x2\x731\x732\x3\x2\x2\x2\x732\x758\x5\xBC_\b\x733\x735\f\x6\x2\x2"+ - "\x734\x736\x5\x12E\x98\x2\x735\x734\x3\x2\x2\x2\x735\x736\x3\x2\x2\x2"+ - "\x736\x737\x3\x2\x2\x2\x737\x739\a\xA4\x2\x2\x738\x73A\x5\x12E\x98\x2"+ - "\x739\x738\x3\x2\x2\x2\x739\x73A\x3\x2\x2\x2\x73A\x73B\x3\x2\x2\x2\x73B"+ - "\x758\x5\xBC_\a\x73C\x73E\f\x5\x2\x2\x73D\x73F\x5\x12E\x98\x2\x73E\x73D"+ - "\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F\x740\x3\x2\x2\x2\x740\x742\a\xDE"+ - "\x2\x2\x741\x743\x5\x12E\x98\x2\x742\x741\x3\x2\x2\x2\x742\x743\x3\x2"+ - "\x2\x2\x743\x744\x3\x2\x2\x2\x744\x758\x5\xBC_\x6\x745\x747\f\x4\x2\x2"+ - "\x746\x748\x5\x12E\x98\x2\x747\x746\x3\x2\x2\x2\x747\x748\x3\x2\x2\x2"+ - "\x748\x749\x3\x2\x2\x2\x749\x74B\ak\x2\x2\x74A\x74C\x5\x12E\x98\x2\x74B"+ - "\x74A\x3\x2\x2\x2\x74B\x74C\x3\x2\x2\x2\x74C\x74D\x3\x2\x2\x2\x74D\x758"+ - "\x5\xBC_\x5\x74E\x750\f\x3\x2\x2\x74F\x751\x5\x12E\x98\x2\x750\x74F\x3"+ - "\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x752\x3\x2\x2\x2\x752\x754\a~\x2"+ - "\x2\x753\x755\x5\x12E\x98\x2\x754\x753\x3\x2\x2\x2\x754\x755\x3\x2\x2"+ - "\x2\x755\x756\x3\x2\x2\x2\x756\x758\x5\xBC_\x4\x757\x6EB\x3\x2\x2\x2\x757"+ - "\x6F4\x3\x2\x2\x2\x757\x6FD\x3\x2\x2\x2\x757\x706\x3\x2\x2\x2\x757\x70F"+ - "\x3\x2\x2\x2\x757\x718\x3\x2\x2\x2\x757\x721\x3\x2\x2\x2\x757\x72A\x3"+ - "\x2\x2\x2\x757\x733\x3\x2\x2\x2\x757\x73C\x3\x2\x2\x2\x757\x745\x3\x2"+ - "\x2\x2\x757\x74E\x3\x2\x2\x2\x758\x75B\x3\x2\x2\x2\x759\x757\x3\x2\x2"+ - "\x2\x759\x75A\x3\x2\x2\x2\x75A\xBD\x3\x2\x2\x2\x75B\x759\x3\x2\x2\x2\x75C"+ - "\x75D\a\xD2\x2\x2\x75D\x75E\x5\x12E\x98\x2\x75E\x764\x5\xBC_\x2\x75F\x760"+ - "\x5\x12E\x98\x2\x760\x761\a\x82\x2\x2\x761\x762\x5\x12E\x98\x2\x762\x763"+ - "\x5\x112\x8A\x2\x763\x765\x3\x2\x2\x2\x764\x75F\x3\x2\x2\x2\x764\x765"+ - "\x3\x2\x2\x2\x765\xBF\x3\x2\x2\x2\x766\x76A\aZ\x2\x2\x767\x76A\a\xC6\x2"+ - "\x2\x768\x76A\x5\x116\x8C\x2\x769\x766\x3\x2\x2\x2\x769\x767\x3\x2\x2"+ - "\x2\x769\x768\x3\x2\x2\x2\x76A\x76B\x3\x2\x2\x2\x76B\x76E\x5\x12E\x98"+ - "\x2\x76C\x76D\a\xDC\x2\x2\x76D\x76F\x5\x12E\x98\x2\x76E\x76C\x3\x2\x2"+ - "\x2\x76E\x76F\x3\x2\x2\x2\x76F\x770\x3\x2\x2\x2\x770\x771\x5\xC2\x62\x2"+ - "\x771\xC1\x3\x2\x2\x2\x772\x77D\x5\xC4\x63\x2\x773\x775\x5\x12E\x98\x2"+ - "\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775\x776\x3\x2\x2\x2\x776"+ - "\x778\a)\x2\x2\x777\x779\x5\x12E\x98\x2\x778\x777\x3\x2\x2\x2\x778\x779"+ - "\x3\x2\x2\x2\x779\x77A\x3\x2\x2\x2\x77A\x77C\x5\xC4\x63\x2\x77B\x774\x3"+ - "\x2\x2\x2\x77C\x77F\x3\x2\x2\x2\x77D\x77B\x3\x2\x2\x2\x77D\x77E\x3\x2"+ - "\x2\x2\x77E\xC3\x3\x2\x2\x2\x77F\x77D\x3\x2\x2\x2\x780\x792\x5\xFE\x80"+ - "\x2\x781\x783\x5\x12E\x98\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2"+ - "\x2\x783\x784\x3\x2\x2\x2\x784\x786\a\xE6\x2\x2\x785\x787\x5\x12E\x98"+ - "\x2\x786\x785\x3\x2\x2\x2\x786\x787\x3\x2\x2\x2\x787\x78C\x3\x2\x2\x2"+ - "\x788\x78A\x5\xF8}\x2\x789\x78B\x5\x12E\x98\x2\x78A\x789\x3\x2\x2\x2\x78A"+ - "\x78B\x3\x2\x2\x2\x78B\x78D\x3\x2\x2\x2\x78C\x788\x3\x2\x2\x2\x78C\x78D"+ - "\x3\x2\x2\x2\x78D\x78E\x3\x2\x2\x2\x78E\x790\a\xED\x2\x2\x78F\x791\x5"+ - "\x12E\x98\x2\x790\x78F\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x793\x3"+ - "\x2\x2\x2\x792\x782\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x795\x3\x2"+ - "\x2\x2\x794\x796\x5\x114\x8B\x2\x795\x794\x3\x2\x2\x2\x795\x796\x3\x2"+ - "\x2\x2\x796\x79A\x3\x2\x2\x2\x797\x798\x5\x12E\x98\x2\x798\x799\x5\x100"+ - "\x81\x2\x799\x79B\x3\x2\x2\x2\x79A\x797\x3\x2\x2\x2\x79A\x79B\x3\x2\x2"+ - "\x2\x79B\xC5\x3\x2\x2\x2\x79C\x79D\a\xD9\x2\x2\x79D\x79E\x5\x12E\x98\x2"+ - "\x79E\x79F\x5\xBC_\x2\x79F\x7A1\x5\x11E\x90\x2\x7A0\x7A2\x5\x1A\xE\x2"+ - "\x7A1\x7A0\x3\x2\x2\x2\x7A1\x7A2\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2\x7A3"+ - "\x7A4\a\xD8\x2\x2\x7A4\xC7\x3\x2\x2\x2\x7A5\x7A6\a\xDA\x2\x2\x7A6\x7A7"+ - "\x5\x12E\x98\x2\x7A7\x7A9\x5\xD0i\x2\x7A8\x7AA\x5\x12E\x98\x2\x7A9\x7A8"+ - "\x3\x2\x2\x2\x7A9\x7AA\x3\x2\x2\x2\x7AA\x7AB\x3\x2\x2\x2\x7AB\x7AD\a)"+ - "\x2\x2\x7AC\x7AE\x5\x12E\x98\x2\x7AD\x7AC\x3\x2\x2\x2\x7AD\x7AE\x3\x2"+ - "\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B0\x5\xBC_\x2\x7B0\xC9\x3\x2\x2\x2"+ - "\x7B1\x7B2\a\xDB\x2\x2\x7B2\x7B3\x5\x12E\x98\x2\x7B3\x7B4\x5\xCCg\x2\x7B4"+ - "\x7B6\x5\x11E\x90\x2\x7B5\x7B7\x5\x1A\xE\x2\x7B6\x7B5\x3\x2\x2\x2\x7B6"+ - "\x7B7\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8\x7B9\ah\x2\x2\x7B9\xCB\x3"+ - "\x2\x2\x2\x7BA\x7BB\x5\xBC_\x2\x7BB\xCD\x3\x2\x2\x2\x7BC\x7BD\a\xDD\x2"+ - "\x2\x7BD\x7BE\x5\x12E\x98\x2\x7BE\x7C0\x5\xD0i\x2\x7BF\x7C1\x5\x12E\x98"+ - "\x2\x7C0\x7BF\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2"+ - "\x7C2\x7C7\a)\x2\x2\x7C3\x7C5\x5\x12E\x98\x2\x7C4\x7C3\x3\x2\x2\x2\x7C4"+ - "\x7C5\x3\x2\x2\x2\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C8\x5z>\x2\x7C7\x7C4\x3"+ - "\x2\x2\x2\x7C7\x7C8\x3\x2\x2\x2\x7C8\xCF\x3\x2\x2\x2\x7C9\x7CB\a.\x2\x2"+ - "\x7CA\x7C9\x3\x2\x2\x2\x7CA\x7CB\x3\x2\x2\x2\x7CB\x7CC\x3\x2\x2\x2\x7CC"+ - "\x7CD\x5\xBC_\x2\x7CD\xD1\x3\x2\x2\x2\x7CE\x7CF\a\x42\x2\x2\x7CF\x7D0"+ - "\x5\x12E\x98\x2\x7D0\x7D1\x5\xD4k\x2\x7D1\xD3\x3\x2\x2\x2\x7D2\x7D4\x5"+ - "\xDCo\x2\x7D3\x7D2\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2\x7D4\x7D5\x3\x2\x2"+ - "\x2\x7D5\x7D6\a-\x2\x2\x7D6\x7D8\x5\xFE\x80\x2\x7D7\x7D9\x5\x114\x8B\x2"+ - "\x7D8\x7D7\x3\x2\x2\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7E7\x3\x2\x2\x2\x7DA"+ - "\x7DC\x5\x12E\x98\x2\x7DB\x7DA\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC"+ - "\x7DD\x3\x2\x2\x2\x7DD\x7DF\a\xE6\x2\x2\x7DE\x7E0\x5\x12E\x98\x2\x7DF"+ - "\x7DE\x3\x2\x2\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E1\x3\x2\x2\x2\x7E1\x7E3"+ - "\x5\xECw\x2\x7E2\x7E4\x5\x12E\x98\x2\x7E3\x7E2\x3\x2\x2\x2\x7E3\x7E4\x3"+ - "\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E6\a\xED\x2\x2\x7E6\x7E8\x3\x2"+ - "\x2\x2\x7E7\x7DB\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\x7F2\x3\x2\x2"+ - "\x2\x7E9\x7EB\x5\x12E\x98\x2\x7EA\x7E9\x3\x2\x2\x2\x7EA\x7EB\x3\x2\x2"+ - "\x2\x7EB\x7EC\x3\x2\x2\x2\x7EC\x7ED\a\xE6\x2\x2\x7ED\x7EE\x5\xF8}\x2\x7EE"+ - "\x7EF\a\xED\x2\x2\x7EF\x7F1\x3\x2\x2\x2\x7F0\x7EA\x3\x2\x2\x2\x7F1\x7F4"+ - "\x3\x2\x2\x2\x7F2\x7F0\x3\x2\x2\x2\x7F2\x7F3\x3\x2\x2\x2\x7F3\x815\x3"+ - "\x2\x2\x2\x7F4\x7F2\x3\x2\x2\x2\x7F5\x7F7\x5\xFE\x80\x2\x7F6\x7F8\x5\x114"+ - "\x8B\x2\x7F7\x7F6\x3\x2\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x806\x3\x2\x2"+ - "\x2\x7F9\x7FB\x5\x12E\x98\x2\x7FA\x7F9\x3\x2\x2\x2\x7FA\x7FB\x3\x2\x2"+ - "\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC\x7FE\a\xE6\x2\x2\x7FD\x7FF\x5\x12E\x98"+ - "\x2\x7FE\x7FD\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2\x7FF\x800\x3\x2\x2\x2"+ - "\x800\x802\x5\xECw\x2\x801\x803\x5\x12E\x98\x2\x802\x801\x3\x2\x2\x2\x802"+ - "\x803\x3\x2\x2\x2\x803\x804\x3\x2\x2\x2\x804\x805\a\xED\x2\x2\x805\x807"+ - "\x3\x2\x2\x2\x806\x7FA\x3\x2\x2\x2\x806\x807\x3\x2\x2\x2\x807\x811\x3"+ - "\x2\x2\x2\x808\x80A\x5\x12E\x98\x2\x809\x808\x3\x2\x2\x2\x809\x80A\x3"+ - "\x2\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80C\a\xE6\x2\x2\x80C\x80D\x5\xF8"+ - "}\x2\x80D\x80E\a\xED\x2\x2\x80E\x810\x3\x2\x2\x2\x80F\x809\x3\x2\x2\x2"+ - "\x810\x813\x3\x2\x2\x2\x811\x80F\x3\x2\x2\x2\x811\x812\x3\x2\x2\x2\x812"+ - "\x815\x3\x2\x2\x2\x813\x811\x3\x2\x2\x2\x814\x7D3\x3\x2\x2\x2\x814\x7F5"+ - "\x3\x2\x2\x2\x815\xD5\x3\x2\x2\x2\x816\x819\x5\xD8m\x2\x817\x819\x5\xDA"+ - "n\x2\x818\x816\x3\x2\x2\x2\x818\x817\x3\x2\x2\x2\x819\xD7\x3\x2\x2\x2"+ - "\x81A\x81C\x5\xDCo\x2\x81B\x81A\x3\x2\x2\x2\x81B\x81C\x3\x2\x2\x2\x81C"+ - "\x81E\x3\x2\x2\x2\x81D\x81F\x5\x12E\x98\x2\x81E\x81D\x3\x2\x2\x2\x81E"+ - "\x81F\x3\x2\x2\x2\x81F\x820\x3\x2\x2\x2\x820\x822\a-\x2\x2\x821\x823\x5"+ - "\x12E\x98\x2\x822\x821\x3\x2\x2\x2\x822\x823\x3\x2\x2\x2\x823\x824\x3"+ - "\x2\x2\x2\x824\x826\x5\xFE\x80\x2\x825\x827\x5\x114\x8B\x2\x826\x825\x3"+ - "\x2\x2\x2\x826\x827\x3\x2\x2\x2\x827\x82B\x3\x2\x2\x2\x828\x829\x5\x12E"+ - "\x98\x2\x829\x82A\x5\xECw\x2\x82A\x82C\x3\x2\x2\x2\x82B\x828\x3\x2\x2"+ - "\x2\x82B\x82C\x3\x2\x2\x2\x82C\x831\x3\x2\x2\x2\x82D\x82F\x5\x12E\x98"+ - "\x2\x82E\x82D\x3\x2\x2\x2\x82E\x82F\x3\x2\x2\x2\x82F\x830\x3\x2\x2\x2"+ - "\x830\x832\x5\xF0y\x2\x831\x82E\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832"+ - "\x83C\x3\x2\x2\x2\x833\x835\x5\x12E\x98\x2\x834\x833\x3\x2\x2\x2\x834"+ - "\x835\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836\x837\a\xE6\x2\x2\x837\x838"+ - "\x5\xF8}\x2\x838\x839\a\xED\x2\x2\x839\x83B\x3\x2\x2\x2\x83A\x834\x3\x2"+ - "\x2\x2\x83B\x83E\x3\x2\x2\x2\x83C\x83A\x3\x2\x2\x2\x83C\x83D\x3\x2\x2"+ - "\x2\x83D\xD9\x3\x2\x2\x2\x83E\x83C\x3\x2\x2\x2\x83F\x843\x5\xFE\x80\x2"+ - "\x840\x841\x5\x12E\x98\x2\x841\x842\x5\xECw\x2\x842\x844\x3\x2\x2\x2\x843"+ - "\x840\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x84E\x3\x2\x2\x2\x845\x847"+ - "\x5\x12E\x98\x2\x846\x845\x3\x2\x2\x2\x846\x847\x3\x2\x2\x2\x847\x848"+ - "\x3\x2\x2\x2\x848\x849\a\xE6\x2\x2\x849\x84A\x5\xF8}\x2\x84A\x84B\a\xED"+ - "\x2\x2\x84B\x84D\x3\x2\x2\x2\x84C\x846\x3\x2\x2\x2\x84D\x850\x3\x2\x2"+ - "\x2\x84E\x84C\x3\x2\x2\x2\x84E\x84F\x3\x2\x2\x2\x84F\xDB\x3\x2\x2\x2\x850"+ - "\x84E\x3\x2\x2\x2\x851\x856\x5\xE6t\x2\x852\x856\x5\xDEp\x2\x853\x856"+ - "\x5\xE0q\x2\x854\x856\x5\xEAv\x2\x855\x851\x3\x2\x2\x2\x855\x852\x3\x2"+ - "\x2\x2\x855\x853\x3\x2\x2\x2\x855\x854\x3\x2\x2\x2\x856\xDD\x3\x2\x2\x2"+ - "\x857\x859\x5\xFE\x80\x2\x858\x85A\x5\x114\x8B\x2\x859\x858\x3\x2\x2\x2"+ - "\x859\x85A\x3\x2\x2\x2\x85A\x85F\x3\x2\x2\x2\x85B\x85D\x5\x12E\x98\x2"+ - "\x85C\x85B\x3\x2\x2\x2\x85C\x85D\x3\x2\x2\x2\x85D\x85E\x3\x2\x2\x2\x85E"+ - "\x860\x5\xF0y\x2\x85F\x85C\x3\x2\x2\x2\x85F\x860\x3\x2\x2\x2\x860\x86A"+ - "\x3\x2\x2\x2\x861\x863\x5\x12E\x98\x2\x862\x861\x3\x2\x2\x2\x862\x863"+ - "\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x865\a\xE6\x2\x2\x865\x866\x5"+ - "\xF8}\x2\x866\x867\a\xED\x2\x2\x867\x869\x3\x2\x2\x2\x868\x862\x3\x2\x2"+ - "\x2\x869\x86C\x3\x2\x2\x2\x86A\x868\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2"+ - "\x86B\xDF\x3\x2\x2\x2\x86C\x86A\x3\x2\x2\x2\x86D\x870\x5\xFE\x80\x2\x86E"+ - "\x870\x5\x102\x82\x2\x86F\x86D\x3\x2\x2\x2\x86F\x86E\x3\x2\x2\x2\x870"+ - "\x872\x3\x2\x2\x2\x871\x873\x5\x114\x8B\x2\x872\x871\x3\x2\x2\x2\x872"+ - "\x873\x3\x2\x2\x2\x873\x875\x3\x2\x2\x2\x874\x876\x5\x12E\x98\x2\x875"+ - "\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x879"+ - "\a\xE6\x2\x2\x878\x87A\x5\x12E\x98\x2\x879\x878\x3\x2\x2\x2\x879\x87A"+ - "\x3\x2\x2\x2\x87A\x87F\x3\x2\x2\x2\x87B\x87D\x5\xECw\x2\x87C\x87E\x5\x12E"+ - "\x98\x2\x87D\x87C\x3\x2\x2\x2\x87D\x87E\x3\x2\x2\x2\x87E\x880\x3\x2\x2"+ - "\x2\x87F\x87B\x3\x2\x2\x2\x87F\x880\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2"+ - "\x881\x886\a\xED\x2\x2\x882\x884\x5\x12E\x98\x2\x883\x882\x3\x2\x2\x2"+ - "\x883\x884\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887\x5\xF0y\x2\x886"+ - "\x883\x3\x2\x2\x2\x886\x887\x3\x2\x2\x2\x887\x891\x3\x2\x2\x2\x888\x88A"+ - "\x5\x12E\x98\x2\x889\x888\x3\x2\x2\x2\x889\x88A\x3\x2\x2\x2\x88A\x88B"+ - "\x3\x2\x2\x2\x88B\x88C\a\xE6\x2\x2\x88C\x88D\x5\xF8}\x2\x88D\x88E\a\xED"+ - "\x2\x2\x88E\x890\x3\x2\x2\x2\x88F\x889\x3\x2\x2\x2\x890\x893\x3\x2\x2"+ - "\x2\x891\x88F\x3\x2\x2\x2\x891\x892\x3\x2\x2\x2\x892\xE1\x3\x2\x2\x2\x893"+ - "\x891\x3\x2\x2\x2\x894\x896\x5\xFC\x7F\x2\x895\x897\x5\x114\x8B\x2\x896"+ - "\x895\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x89C\x3\x2\x2\x2\x898\x89A"+ - "\x5\x12E\x98\x2\x899\x898\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89B"+ - "\x3\x2\x2\x2\x89B\x89D\x5\xF0y\x2\x89C\x899\x3\x2\x2\x2\x89C\x89D\x3\x2"+ - "\x2\x2\x89D\x8A7\x3\x2\x2\x2\x89E\x8A0\x5\x12E\x98\x2\x89F\x89E\x3\x2"+ - "\x2\x2\x89F\x8A0\x3\x2\x2\x2\x8A0\x8A1\x3\x2\x2\x2\x8A1\x8A2\a\xE6\x2"+ - "\x2\x8A2\x8A3\x5\xF8}\x2\x8A3\x8A4\a\xED\x2\x2\x8A4\x8A6\x3\x2\x2\x2\x8A5"+ - "\x89F\x3\x2\x2\x2\x8A6\x8A9\x3\x2\x2\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8"+ - "\x3\x2\x2\x2\x8A8\xE3\x3\x2\x2\x2\x8A9\x8A7\x3\x2\x2\x2\x8AA\x8AD\x5\xFC"+ - "\x7F\x2\x8AB\x8AD\x5\x102\x82\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC\x8AB\x3\x2"+ - "\x2\x2\x8AD\x8AF\x3\x2\x2\x2\x8AE\x8B0\x5\x114\x8B\x2\x8AF\x8AE\x3\x2"+ - "\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B2\x3\x2\x2\x2\x8B1\x8B3\x5\x12E\x98"+ - "\x2\x8B2\x8B1\x3\x2\x2\x2\x8B2\x8B3\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2"+ - "\x8B4\x8B6\a\xE6\x2\x2\x8B5\x8B7\x5\x12E\x98\x2\x8B6\x8B5\x3\x2\x2\x2"+ - "\x8B6\x8B7\x3\x2\x2\x2\x8B7\x8BC\x3\x2\x2\x2\x8B8\x8BA\x5\xECw\x2\x8B9"+ - "\x8BB\x5\x12E\x98\x2\x8BA\x8B9\x3\x2\x2\x2\x8BA\x8BB\x3\x2\x2\x2\x8BB"+ - "\x8BD\x3\x2\x2\x2\x8BC\x8B8\x3\x2\x2\x2\x8BC\x8BD\x3\x2\x2\x2\x8BD\x8BE"+ - "\x3\x2\x2\x2\x8BE\x8C3\a\xED\x2\x2\x8BF\x8C1\x5\x12E\x98\x2\x8C0\x8BF"+ - "\x3\x2\x2\x2\x8C0\x8C1\x3\x2\x2\x2\x8C1\x8C2\x3\x2\x2\x2\x8C2\x8C4\x5"+ - "\xF0y\x2\x8C3\x8C0\x3\x2\x2\x2\x8C3\x8C4\x3\x2\x2\x2\x8C4\x8CE\x3\x2\x2"+ - "\x2\x8C5\x8C7\x5\x12E\x98\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2"+ - "\x2\x8C7\x8C8\x3\x2\x2\x2\x8C8\x8C9\a\xE6\x2\x2\x8C9\x8CA\x5\xF8}\x2\x8CA"+ - "\x8CB\a\xED\x2\x2\x8CB\x8CD\x3\x2\x2\x2\x8CC\x8C6\x3\x2\x2\x2\x8CD\x8D0"+ - "\x3\x2\x2\x2\x8CE\x8CC\x3\x2\x2\x2\x8CE\x8CF\x3\x2\x2\x2\x8CF\xE5\x3\x2"+ - "\x2\x2\x8D0\x8CE\x3\x2\x2\x2\x8D1\x8D4\x5\xDEp\x2\x8D2\x8D4\x5\xE0q\x2"+ - "\x8D3\x8D1\x3\x2\x2\x2\x8D3\x8D2\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4"+ - "\x8D9\x3\x2\x2\x2\x8D5\x8D7\x5\xE8u\x2\x8D6\x8D8\x5\x12E\x98\x2\x8D7\x8D6"+ - "\x3\x2\x2\x2\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8DA\x3\x2\x2\x2\x8D9\x8D5\x3"+ - "\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8D9\x3\x2\x2\x2\x8DB\x8DC\x3\x2"+ - "\x2\x2\x8DC\x8E1\x3\x2\x2\x2\x8DD\x8DF\x5\x12E\x98\x2\x8DE\x8DD\x3\x2"+ - "\x2\x2\x8DE\x8DF\x3\x2\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8E2\x5\xF0y\x2"+ - "\x8E1\x8DE\x3\x2\x2\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8EC\x3\x2\x2\x2\x8E3"+ - "\x8E5\x5\x12E\x98\x2\x8E4\x8E3\x3\x2\x2\x2\x8E4\x8E5\x3\x2\x2\x2\x8E5"+ - "\x8E6\x3\x2\x2\x2\x8E6\x8E7\a\xE6\x2\x2\x8E7\x8E8\x5\xF8}\x2\x8E8\x8E9"+ - "\a\xED\x2\x2\x8E9\x8EB\x3\x2\x2\x2\x8EA\x8E4\x3\x2\x2\x2\x8EB\x8EE\x3"+ - "\x2\x2\x2\x8EC\x8EA\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\xE7\x3\x2\x2"+ - "\x2\x8EE\x8EC\x3\x2\x2\x2\x8EF\x8F1\t\xF\x2\x2\x8F0\x8F2\x5\x12E\x98\x2"+ - "\x8F1\x8F0\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F5\x3\x2\x2\x2\x8F3"+ - "\x8F6\x5\xE2r\x2\x8F4\x8F6\x5\xE4s\x2\x8F5\x8F3\x3\x2\x2\x2\x8F5\x8F4"+ - "\x3\x2\x2\x2\x8F6\xE9\x3\x2\x2\x2\x8F7\x8F9\x5\x12E\x98\x2\x8F8\x8F7\x3"+ - "\x2\x2\x2\x8F8\x8F9\x3\x2\x2\x2\x8F9\x8FA\x3\x2\x2\x2\x8FA\x8FB\x5\xF0"+ - "y\x2\x8FB\xEB\x3\x2\x2\x2\x8FC\x8FE\x5\xEEx\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD"+ - "\x8FE\x3\x2\x2\x2\x8FE\x900\x3\x2\x2\x2\x8FF\x901\x5\x12E\x98\x2\x900"+ - "\x8FF\x3\x2\x2\x2\x900\x901\x3\x2\x2\x2\x901\x902\x3\x2\x2\x2\x902\x904"+ - "\t\n\x2\x2\x903\x905\x5\x12E\x98\x2\x904\x903\x3\x2\x2\x2\x904\x905\x3"+ - "\x2\x2\x2\x905\x907\x3\x2\x2\x2\x906\x8FD\x3\x2\x2\x2\x907\x90A\x3\x2"+ - "\x2\x2\x908\x906\x3\x2\x2\x2\x908\x909\x3\x2\x2\x2\x909\x90B\x3\x2\x2"+ - "\x2\x90A\x908\x3\x2\x2\x2\x90B\x918\x5\xEEx\x2\x90C\x90E\x5\x12E\x98\x2"+ - "\x90D\x90C\x3\x2\x2\x2\x90D\x90E\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F"+ - "\x911\t\n\x2\x2\x910\x912\x5\x12E\x98\x2\x911\x910\x3\x2\x2\x2\x911\x912"+ - "\x3\x2\x2\x2\x912\x914\x3\x2\x2\x2\x913\x915\x5\xEEx\x2\x914\x913\x3\x2"+ - "\x2\x2\x914\x915\x3\x2\x2\x2\x915\x917\x3\x2\x2\x2\x916\x90D\x3\x2\x2"+ - "\x2\x917\x91A\x3\x2\x2\x2\x918\x916\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2"+ - "\x919\xED\x3\x2\x2\x2\x91A\x918\x3\x2\x2\x2\x91B\x91D\a\xE6\x2\x2\x91C"+ - "\x91B\x3\x2\x2\x2\x91C\x91D\x3\x2\x2\x2\x91D\x920\x3\x2\x2\x2\x91E\x91F"+ - "\t\x10\x2\x2\x91F\x921\x5\x12E\x98\x2\x920\x91E\x3\x2\x2\x2\x920\x921"+ - "\x3\x2\x2\x2\x921\x923\x3\x2\x2\x2\x922\x924\a\xED\x2\x2\x923\x922\x3"+ - "\x2\x2\x2\x923\x924\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2\x925\x926\x5\xBC"+ - "_\x2\x926\xEF\x3\x2\x2\x2\x927\x929\a,\x2\x2\x928\x92A\x5\x12E\x98\x2"+ - "\x929\x928\x3\x2\x2\x2\x929\x92A\x3\x2\x2\x2\x92A\x92B\x3\x2\x2\x2\x92B"+ - "\x92D\x5\xFC\x7F\x2\x92C\x92E\x5\x114\x8B\x2\x92D\x92C\x3\x2\x2\x2\x92D"+ - "\x92E\x3\x2\x2\x2\x92E\xF1\x3\x2\x2\x2\x92F\x941\a\xE6\x2\x2\x930\x932"+ - "\x5\x12E\x98\x2\x931\x930\x3\x2\x2\x2\x931\x932\x3\x2\x2\x2\x932\x933"+ - "\x3\x2\x2\x2\x933\x93E\x5\xF4{\x2\x934\x936\x5\x12E\x98\x2\x935\x934\x3"+ - "\x2\x2\x2\x935\x936\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x939\a)\x2"+ - "\x2\x938\x93A\x5\x12E\x98\x2\x939\x938\x3\x2\x2\x2\x939\x93A\x3\x2\x2"+ - "\x2\x93A\x93B\x3\x2\x2\x2\x93B\x93D\x5\xF4{\x2\x93C\x935\x3\x2\x2\x2\x93D"+ - "\x940\x3\x2\x2\x2\x93E\x93C\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x942"+ - "\x3\x2\x2\x2\x940\x93E\x3\x2\x2\x2\x941\x931\x3\x2\x2\x2\x941\x942\x3"+ - "\x2\x2\x2\x942\x944\x3\x2\x2\x2\x943\x945\x5\x12E\x98\x2\x944\x943\x3"+ - "\x2\x2\x2\x944\x945\x3\x2\x2\x2\x945\x946\x3\x2\x2\x2\x946\x947\a\xED"+ - "\x2\x2\x947\xF3\x3\x2\x2\x2\x948\x949\a\x9F\x2\x2\x949\x94B\x5\x12E\x98"+ - "\x2\x94A\x948\x3\x2\x2\x2\x94A\x94B\x3\x2\x2\x2\x94B\x94E\x3\x2\x2\x2"+ - "\x94C\x94D\t\x11\x2\x2\x94D\x94F\x5\x12E\x98\x2\x94E\x94C\x3\x2\x2\x2"+ - "\x94E\x94F\x3\x2\x2\x2\x94F\x952\x3\x2\x2\x2\x950\x951\a\xA6\x2\x2\x951"+ - "\x953\x5\x12E\x98\x2\x952\x950\x3\x2\x2\x2\x952\x953\x3\x2\x2\x2\x953"+ - "\x954\x3\x2\x2\x2\x954\x956\x5\xFC\x7F\x2\x955\x957\x5\x114\x8B\x2\x956"+ - "\x955\x3\x2\x2\x2\x956\x957\x3\x2\x2\x2\x957\x960\x3\x2\x2\x2\x958\x95A"+ - "\x5\x12E\x98\x2\x959\x958\x3\x2\x2\x2\x959\x95A\x3\x2\x2\x2\x95A\x95B"+ - "\x3\x2\x2\x2\x95B\x95D\a\xE6\x2\x2\x95C\x95E\x5\x12E\x98\x2\x95D\x95C"+ - "\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E\x95F\x3\x2\x2\x2\x95F\x961\a\xED"+ - "\x2\x2\x960\x959\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x966\x3\x2\x2"+ - "\x2\x962\x964\x5\x12E\x98\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2"+ - "\x2\x964\x965\x3\x2\x2\x2\x965\x967\x5\x100\x81\x2\x966\x963\x3\x2\x2"+ - "\x2\x966\x967\x3\x2\x2\x2\x967\x96C\x3\x2\x2\x2\x968\x96A\x5\x12E\x98"+ - "\x2\x969\x968\x3\x2\x2\x2\x969\x96A\x3\x2\x2\x2\x96A\x96B\x3\x2\x2\x2"+ - "\x96B\x96D\x5\xF6|\x2\x96C\x969\x3\x2\x2\x2\x96C\x96D\x3\x2\x2\x2\x96D"+ - "\xF5\x3\x2\x2\x2\x96E\x970\a\xE2\x2\x2\x96F\x971\x5\x12E\x98\x2\x970\x96F"+ - "\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x972\x3\x2\x2\x2\x972\x973\x5"+ - "\xBC_\x2\x973\xF7\x3\x2\x2\x2\x974\x97F\x5\xFA~\x2\x975\x977\x5\x12E\x98"+ - "\x2\x976\x975\x3\x2\x2\x2\x976\x977\x3\x2\x2\x2\x977\x978\x3\x2\x2\x2"+ - "\x978\x97A\a)\x2\x2\x979\x97B\x5\x12E\x98\x2\x97A\x979\x3\x2\x2\x2\x97A"+ - "\x97B\x3\x2\x2\x2\x97B\x97C\x3\x2\x2\x2\x97C\x97E\x5\xFA~\x2\x97D\x976"+ - "\x3\x2\x2\x2\x97E\x981\x3\x2\x2\x2\x97F\x97D\x3\x2\x2\x2\x97F\x980\x3"+ - "\x2\x2\x2\x980\xF9\x3\x2\x2\x2\x981\x97F\x3\x2\x2\x2\x982\x983\x5\xBC"+ - "_\x2\x983\x984\x5\x12E\x98\x2\x984\x985\a\xCF\x2\x2\x985\x986\x5\x12E"+ - "\x98\x2\x986\x988\x3\x2\x2\x2\x987\x982\x3\x2\x2\x2\x987\x988\x3\x2\x2"+ - "\x2\x988\x989\x3\x2\x2\x2\x989\x98A\x5\xBC_\x2\x98A\xFB\x3\x2\x2\x2\x98B"+ - "\x98E\x5\xFE\x80\x2\x98C\x98E\x5\x11A\x8E\x2\x98D\x98B\x3\x2\x2\x2\x98D"+ - "\x98C\x3\x2\x2\x2\x98E\xFD\x3\x2\x2\x2\x98F\x992\a\x101\x2\x2\x990\x992"+ - "\x5\x118\x8D\x2\x991\x98F\x3\x2\x2\x2\x991\x990\x3\x2\x2\x2\x992\xFF\x3"+ - "\x2\x2\x2\x993\x995\a:\x2\x2\x994\x996\x5\x12E\x98\x2\x995\x994\x3\x2"+ - "\x2\x2\x995\x996\x3\x2\x2\x2\x996\x999\x3\x2\x2\x2\x997\x998\a\x97\x2"+ - "\x2\x998\x99A\x5\x12E\x98\x2\x999\x997\x3\x2\x2\x2\x999\x99A\x3\x2\x2"+ - "\x2\x99A\x99B\x3\x2\x2\x2\x99B\x9A0\x5\x112\x8A\x2\x99C\x99E\x5\x12E\x98"+ - "\x2\x99D\x99C\x3\x2\x2\x2\x99D\x99E\x3\x2\x2\x2\x99E\x99F\x3\x2\x2\x2"+ - "\x99F\x9A1\x5\x108\x85\x2\x9A0\x99D\x3\x2\x2\x2\x9A0\x9A1\x3\x2\x2\x2"+ - "\x9A1\x101\x3\x2\x2\x2\x9A2\x9A3\t\x12\x2\x2\x9A3\x103\x3\x2\x2\x2\x9A4"+ - "\x9A5\t\xE\x2\x2\x9A5\x105\x3\x2\x2\x2\x9A6\x9AB\x5\xFE\x80\x2\x9A7\x9A8"+ - "\t\xF\x2\x2\x9A8\x9AA\x5\xFE\x80\x2\x9A9\x9A7\x3\x2\x2\x2\x9AA\x9AD\x3"+ - "\x2\x2\x2\x9AB\x9A9\x3\x2\x2\x2\x9AB\x9AC\x3\x2\x2\x2\x9AC\x107\x3\x2"+ - "\x2\x2\x9AD\x9AB\x3\x2\x2\x2\x9AE\x9B0\a\xE9\x2\x2\x9AF\x9B1\x5\x12E\x98"+ - "\x2\x9B0\x9AF\x3\x2\x2\x2\x9B0\x9B1\x3\x2\x2\x2\x9B1\x9B4\x3\x2\x2\x2"+ - "\x9B2\x9B5\x5\x110\x89\x2\x9B3\x9B5\x5\xFE\x80\x2\x9B4\x9B2\x3\x2\x2\x2"+ - "\x9B4\x9B3\x3\x2\x2\x2\x9B5\x109\x3\x2\x2\x2\x9B6\x9BF\x5\xFE\x80\x2\x9B7"+ - "\x9B9\x5\x12E\x98\x2\x9B8\x9B7\x3\x2\x2\x2\x9B8\x9B9\x3\x2\x2\x2\x9B9"+ - "\x9BA\x3\x2\x2\x2\x9BA\x9BC\a\xE8\x2\x2\x9BB\x9BD\x5\x12E\x98\x2\x9BC"+ - "\x9BB\x3\x2\x2\x2\x9BC\x9BD\x3\x2\x2\x2\x9BD\x9BE\x3\x2\x2\x2\x9BE\x9C0"+ - "\x5\xFE\x80\x2\x9BF\x9B8\x3\x2\x2\x2\x9BF\x9C0\x3\x2\x2\x2\x9C0\x10B\x3"+ - "\x2\x2\x2\x9C1\x9C4\x5\xFE\x80\x2\x9C2\x9C4\x5\x110\x89\x2\x9C3\x9C1\x3"+ - "\x2\x2\x2\x9C3\x9C2\x3\x2\x2\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C6\a*\x2"+ - "\x2\x9C6\x10D\x3\x2\x2\x2\x9C7\x9D0\x5\x110\x89\x2\x9C8\x9D0\a\xFA\x2"+ - "\x2\x9C9\x9D0\a\xF5\x2\x2\x9CA\x9D0\a\xD0\x2\x2\x9CB\x9D0\at\x2\x2\x9CC"+ - "\x9D0\a\x99\x2\x2\x9CD\x9D0\a\x9A\x2\x2\x9CE\x9D0\a`\x2\x2\x9CF\x9C7\x3"+ - "\x2\x2\x2\x9CF\x9C8\x3\x2\x2\x2\x9CF\x9C9\x3\x2\x2\x2\x9CF\x9CA\x3\x2"+ - "\x2\x2\x9CF\x9CB\x3\x2\x2\x2\x9CF\x9CC\x3\x2\x2\x2\x9CF\x9CD\x3\x2\x2"+ - "\x2\x9CF\x9CE\x3\x2\x2\x2\x9D0\x10F\x3\x2\x2\x2\x9D1\x9D2\t\x13\x2\x2"+ - "\x9D2\x111\x3\x2\x2\x2\x9D3\x9D6\x5\x102\x82\x2\x9D4\x9D6\x5\x106\x84"+ - "\x2\x9D5\x9D3\x3\x2\x2\x2\x9D5\x9D4\x3\x2\x2\x2\x9D6\x9DF\x3\x2\x2\x2"+ - "\x9D7\x9D9\x5\x12E\x98\x2\x9D8\x9D7\x3\x2\x2\x2\x9D8\x9D9\x3\x2\x2\x2"+ - "\x9D9\x9DA\x3\x2\x2\x2\x9DA\x9DC\a\xE6\x2\x2\x9DB\x9DD\x5\x12E\x98\x2"+ - "\x9DC\x9DB\x3\x2\x2\x2\x9DC\x9DD\x3\x2\x2\x2\x9DD\x9DE\x3\x2\x2\x2\x9DE"+ - "\x9E0\a\xED\x2\x2\x9DF\x9D8\x3\x2\x2\x2\x9DF\x9E0\x3\x2\x2\x2\x9E0\x113"+ - "\x3\x2\x2\x2\x9E1\x9E2\t\x14\x2\x2\x9E2\x115\x3\x2\x2\x2\x9E3\x9E4\t\x15"+ - "\x2\x2\x9E4\x117\x3\x2\x2\x2\x9E5\x9E6\t\x16\x2\x2\x9E6\x119\x3\x2\x2"+ - "\x2\x9E7\x9E8\t\x17\x2\x2\x9E8\x11B\x3\x2\x2\x2\x9E9\x9EB\x5\x12E\x98"+ - "\x2\x9EA\x9E9\x3\x2\x2\x2\x9EA\x9EB\x3\x2\x2\x2\x9EB\x9F3\x3\x2\x2\x2"+ - "\x9EC\x9EE\a\xFB\x2\x2\x9ED\x9EC\x3\x2\x2\x2\x9EE\x9EF\x3\x2\x2\x2\x9EF"+ - "\x9ED\x3\x2\x2\x2\x9EF\x9F0\x3\x2\x2\x2\x9F0\x9F4\x3\x2\x2\x2\x9F1\x9F4"+ - "\x5\x122\x92\x2\x9F2\x9F4\x5\x120\x91\x2\x9F3\x9ED\x3\x2\x2\x2\x9F3\x9F1"+ - "\x3\x2\x2\x2\x9F3\x9F2\x3\x2\x2\x2\x9F4\x9F6\x3\x2\x2\x2\x9F5\x9F7\x5"+ - "\x12E\x98\x2\x9F6\x9F5\x3\x2\x2\x2\x9F6\x9F7\x3\x2\x2\x2\x9F7\x9FD\x3"+ - "\x2\x2\x2\x9F8\x9FA\x5\x12E\x98\x2\x9F9\x9F8\x3\x2\x2\x2\x9F9\x9FA\x3"+ - "\x2\x2\x2\x9FA\x9FB\x3\x2\x2\x2\x9FB\x9FD\x5\x124\x93\x2\x9FC\x9EA\x3"+ - "\x2\x2\x2\x9FC\x9F9\x3\x2\x2\x2\x9FD\x11D\x3\x2\x2\x2\x9FE\xA07\x5\x11C"+ - "\x8F\x2\x9FF\xA01\x5\x12E\x98\x2\xA00\x9FF\x3\x2\x2\x2\xA00\xA01\x3\x2"+ - "\x2\x2\xA01\xA02\x3\x2\x2\x2\xA02\xA04\a*\x2\x2\xA03\xA05\x5\x12E\x98"+ - "\x2\xA04\xA03\x3\x2\x2\x2\xA04\xA05\x3\x2\x2\x2\xA05\xA07\x3\x2\x2\x2"+ - "\xA06\x9FE\x3\x2\x2\x2\xA06\xA00\x3\x2\x2\x2\xA07\xA0A\x3\x2\x2\x2\xA08"+ - "\xA06\x3\x2\x2\x2\xA08\xA09\x3\x2\x2\x2\xA09\x11F\x3\x2\x2\x2\xA0A\xA08"+ - "\x3\x2\x2\x2\xA0B\xA0C\a\xFC\x2\x2\xA0C\x121\x3\x2\x2\x2\xA0D\xA0E\t\x18"+ - "\x2\x2\xA0E\x123\x3\x2\x2\x2\xA0F\xA11\a\xFE\x2\x2\xA10\xA12\x5\x126\x94"+ - "\x2\xA11\xA10\x3\x2\x2\x2\xA12\xA13\x3\x2\x2\x2\xA13\xA11\x3\x2\x2\x2"+ - "\xA13\xA14\x3\x2\x2\x2\xA14\x125\x3\x2\x2\x2\xA15\xA16\a/\x2\x2\xA16\xA18"+ - "\x5\x128\x95\x2\xA17\xA19\x5\x12A\x96\x2\xA18\xA17\x3\x2\x2\x2\xA18\xA19"+ - "\x3\x2\x2\x2\xA19\x127\x3\x2\x2\x2\xA1A\xA1B\a\x101\x2\x2\xA1B\x129\x3"+ - "\x2\x2\x2\xA1C\xA1D\x5\x12E\x98\x2\xA1D\xA1F\x5\x12C\x97\x2\xA1E\xA20"+ - "\x5\x12E\x98\x2\xA1F\xA1E\x3\x2\x2\x2\xA1F\xA20\x3\x2\x2\x2\xA20\xA5A"+ - "\x3\x2\x2\x2\xA21\xA22\x5\x12E\x98\x2\xA22\xA2B\x5\x12C\x97\x2\xA23\xA25"+ - "\x5\x12E\x98\x2\xA24\xA23\x3\x2\x2\x2\xA24\xA25\x3\x2\x2\x2\xA25\xA26"+ - "\x3\x2\x2\x2\xA26\xA28\a)\x2\x2\xA27\xA29\x5\x12E\x98\x2\xA28\xA27\x3"+ - "\x2\x2\x2\xA28\xA29\x3\x2\x2\x2\xA29\xA2A\x3\x2\x2\x2\xA2A\xA2C\x5\x12C"+ - "\x97\x2\xA2B\xA24\x3\x2\x2\x2\xA2C\xA2D\x3\x2\x2\x2\xA2D\xA2B\x3\x2\x2"+ - "\x2\xA2D\xA2E\x3\x2\x2\x2\xA2E\xA30\x3\x2\x2\x2\xA2F\xA31\x5\x12E\x98"+ - "\x2\xA30\xA2F\x3\x2\x2\x2\xA30\xA31\x3\x2\x2\x2\xA31\xA5A\x3\x2\x2\x2"+ - "\xA32\xA34\x5\x12E\x98\x2\xA33\xA32\x3\x2\x2\x2\xA33\xA34\x3\x2\x2\x2"+ - "\xA34\xA35\x3\x2\x2\x2\xA35\xA37\a\xE6\x2\x2\xA36\xA38\x5\x12E\x98\x2"+ - "\xA37\xA36\x3\x2\x2\x2\xA37\xA38\x3\x2\x2\x2\xA38\xA39\x3\x2\x2\x2\xA39"+ - "\xA3B\x5\x12C\x97\x2\xA3A\xA3C\x5\x12E\x98\x2\xA3B\xA3A\x3\x2\x2\x2\xA3B"+ - "\xA3C\x3\x2\x2\x2\xA3C\xA3D\x3\x2\x2\x2\xA3D\xA3F\a\xED\x2\x2\xA3E\xA40"+ - "\x5\x12E\x98\x2\xA3F\xA3E\x3\x2\x2\x2\xA3F\xA40\x3\x2\x2\x2\xA40\xA5A"+ - "\x3\x2\x2\x2\xA41\xA43\x5\x12E\x98\x2\xA42\xA41\x3\x2\x2\x2\xA42\xA43"+ - "\x3\x2\x2\x2\xA43\xA44\x3\x2\x2\x2\xA44\xA45\a\xE6\x2\x2\xA45\xA4E\x5"+ - "\x12C\x97\x2\xA46\xA48\x5\x12E\x98\x2\xA47\xA46\x3\x2\x2\x2\xA47\xA48"+ - "\x3\x2\x2\x2\xA48\xA49\x3\x2\x2\x2\xA49\xA4B\a)\x2\x2\xA4A\xA4C\x5\x12E"+ - "\x98\x2\xA4B\xA4A\x3\x2\x2\x2\xA4B\xA4C\x3\x2\x2\x2\xA4C\xA4D\x3\x2\x2"+ - "\x2\xA4D\xA4F\x5\x12C\x97\x2\xA4E\xA47\x3\x2\x2\x2\xA4F\xA50\x3\x2\x2"+ - "\x2\xA50\xA4E\x3\x2\x2\x2\xA50\xA51\x3\x2\x2\x2\xA51\xA53\x3\x2\x2\x2"+ - "\xA52\xA54\x5\x12E\x98\x2\xA53\xA52\x3\x2\x2\x2\xA53\xA54\x3\x2\x2\x2"+ - "\xA54\xA55\x3\x2\x2\x2\xA55\xA57\a\xED\x2\x2\xA56\xA58\x5\x12E\x98\x2"+ - "\xA57\xA56\x3\x2\x2\x2\xA57\xA58\x3\x2\x2\x2\xA58\xA5A\x3\x2\x2\x2\xA59"+ - "\xA1C\x3\x2\x2\x2\xA59\xA21\x3\x2\x2\x2\xA59\xA33\x3\x2\x2\x2\xA59\xA42"+ - "\x3\x2\x2\x2\xA5A\x12B\x3\x2\x2\x2\xA5B\xA5E\a\x101\x2\x2\xA5C\xA5E\x5"+ - "\x10E\x88\x2\xA5D\xA5B\x3\x2\x2\x2\xA5D\xA5C\x3\x2\x2\x2\xA5E\x12D\x3"+ - "\x2\x2\x2\xA5F\xA61\t\x19\x2\x2\xA60\xA5F\x3\x2\x2\x2\xA61\xA62\x3\x2"+ - "\x2\x2\xA62\xA60\x3\x2\x2\x2\xA62\xA63\x3\x2\x2\x2\xA63\x12F\x3\x2\x2"+ - "\x2\x1C6\x134\x13A\x13D\x141\x145\x149\x14D\x153\x156\x160\x162\x168\x170"+ - "\x177\x17D\x186\x18E\x19D\x1A7\x1AF\x1B9\x1BF\x1C3\x1C7\x1CB\x1D0\x1D9"+ - "\x220\x226\x22A\x22D\x23D\x241\x246\x249\x24E\x254\x258\x25D\x262\x267"+ - "\x26A\x26E\x274\x278\x27F\x285\x289\x28C\x291\x29C\x29F\x2A2\x2A7\x2AD"+ - "\x2B1\x2B6\x2BD\x2C3\x2C7\x2CF\x2D3\x2D7\x2DB\x2DF\x2E4\x2EF\x2F6\x2FE"+ - "\x305\x30E\x315\x319\x31C\x324\x328\x32D\x337\x33D\x347\x34B\x35A\x360"+ - "\x366\x36A\x376\x37A\x380\x385\x389\x38D\x391\x394\x397\x39A\x39D\x3A1"+ - "\x3A9\x3AD\x3B0\x3B3\x3B7\x3CF\x3D5\x3D9\x3DD\x3E6\x3F1\x3F6\x400\x404"+ - "\x409\x411\x415\x419\x421\x425\x431\x435\x43D\x43F\x445\x449\x44F\x453"+ - "\x457\x471\x47B\x47F\x484\x48F\x493\x498\x4A7\x4AC\x4B5\x4B9\x4BD\x4C1"+ - "\x4C5\x4C8\x4CC\x4D0\x4D3\x4D7\x4DA\x4DE\x4E0\x4E5\x4E9\x4ED\x4F1\x4F3"+ - "\x4F9\x4FD\x500\x505\x509\x50F\x512\x515\x51A\x51E\x525\x529\x52F\x532"+ - "\x536\x53D\x541\x547\x54A\x54E\x556\x55A\x55D\x560\x564\x56C\x570\x574"+ - "\x576\x579\x57F\x585\x589\x58D\x592\x597\x59B\x59F\x5A5\x5AD\x5AF\x5BB"+ - "\x5BF\x5C7\x5CB\x5D3\x5D7\x5DB\x5DF\x5E3\x5E7\x5EF\x5F3\x600\x607\x60B"+ - "\x616\x61D\x622\x626\x62B\x62E\x634\x638\x63B\x641\x645\x64D\x651\x65A"+ - "\x65E\x662\x666\x669\x66D\x673\x677\x67E\x687\x68E\x692\x695\x698\x69B"+ - "\x6A0\x6AC\x6B0\x6B8\x6BA\x6BF\x6C4\x6C9\x6CD\x6D3\x6D8\x6DF\x6E3\x6E9"+ - "\x6ED\x6F1\x6F6\x6FA\x6FF\x703\x708\x70C\x711\x715\x71A\x71E\x723\x727"+ - "\x72C\x730\x735\x739\x73E\x742\x747\x74B\x750\x754\x757\x759\x764\x769"+ - "\x76E\x774\x778\x77D\x782\x786\x78A\x78C\x790\x792\x795\x79A\x7A1\x7A9"+ - "\x7AD\x7B6\x7C0\x7C4\x7C7\x7CA\x7D3\x7D8\x7DB\x7DF\x7E3\x7E7\x7EA\x7F2"+ - "\x7F7\x7FA\x7FE\x802\x806\x809\x811\x814\x818\x81B\x81E\x822\x826\x82B"+ - "\x82E\x831\x834\x83C\x843\x846\x84E\x855\x859\x85C\x85F\x862\x86A\x86F"+ - "\x872\x875\x879\x87D\x87F\x883\x886\x889\x891\x896\x899\x89C\x89F\x8A7"+ - "\x8AC\x8AF\x8B2\x8B6\x8BA\x8BC\x8C0\x8C3\x8C6\x8CE\x8D3\x8D7\x8DB\x8DE"+ - "\x8E1\x8E4\x8EC\x8F1\x8F5\x8F8\x8FD\x900\x904\x908\x90D\x911\x914\x918"+ - "\x91C\x920\x923\x929\x92D\x931\x935\x939\x93E\x941\x944\x94A\x94E\x952"+ - "\x956\x959\x95D\x960\x963\x966\x969\x96C\x970\x976\x97A\x97F\x987\x98D"+ - "\x991\x995\x999\x99D\x9A0\x9AB\x9B0\x9B4\x9B8\x9BC\x9BF\x9C3\x9CF\x9D5"+ - "\x9D8\x9DC\x9DF\x9EA\x9EF\x9F3\x9F6\x9F9\x9FC\xA00\xA04\xA06\xA08\xA13"+ - "\xA18\xA1F\xA24\xA28\xA2D\xA30\xA33\xA37\xA3B\xA3F\xA42\xA47\xA4B\xA50"+ - "\xA53\xA57\xA59\xA5D\xA62"; + "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x1E2\n\xF\x3"+ + "\x10\x3\x10\x3\x10\x3\x10\x5\x10\x1E8\n\x10\x3\x10\x3\x10\x5\x10\x1EC"+ + "\n\x10\x3\x10\a\x10\x1EF\n\x10\f\x10\xE\x10\x1F2\v\x10\x5\x10\x1F4\n\x10"+ + "\x3\x11\x3\x11\x3\x11\x5\x11\x1F9\n\x11\x3\x11\x3\x11\x3\x11\x3\x11\x5"+ + "\x11\x1FF\n\x11\x3\x11\x3\x11\x5\x11\x203\n\x11\x3\x11\a\x11\x206\n\x11"+ + "\f\x11\xE\x11\x209\v\x11\x3\x12\x3\x12\x5\x12\x20D\n\x12\x3\x12\x3\x12"+ + "\x3\x12\x5\x12\x212\n\x12\x3\x12\x5\x12\x215\n\x12\x3\x12\x3\x12\x5\x12"+ + "\x219\n\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x5\x13\x220\n\x13\x3\x13"+ + "\x3\x13\x3\x13\x3\x13\x5\x13\x226\n\x13\x3\x13\x3\x13\x5\x13\x22A\n\x13"+ + "\x3\x13\x5\x13\x22D\n\x13\x3\x13\x3\x13\x3\x13\x5\x13\x232\n\x13\x3\x13"+ + "\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x5\x13\x23D\n"+ + "\x13\x3\x13\x5\x13\x240\n\x13\x3\x13\x5\x13\x243\n\x13\x3\x13\x3\x13\x3"+ + "\x13\x5\x13\x248\n\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x24E\n\x14\x3"+ + "\x14\x3\x14\x5\x14\x252\n\x14\x3\x14\a\x14\x255\n\x14\f\x14\xE\x14\x258"+ + "\v\x14\x3\x15\x3\x15\x3\x15\x5\x15\x25D\n\x15\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x268\n\x15\x3\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x5\x15\x26F\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x5\x15\x277\n\x15\x3\x16\x3\x16\x3\x16\x5\x16\x27C\n\x16\x3"+ + "\x16\x3\x16\x3\x16\x3\x16\x3\x16\a\x16\x283\n\x16\f\x16\xE\x16\x286\v"+ + "\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5\x17\x28C\n\x17\x3\x17\x3\x17\x5\x17"+ + "\x290\n\x17\x3\x17\x5\x17\x293\n\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18"+ + "\x3\x18\x5\x18\x29B\n\x18\x3\x18\x3\x18\x5\x18\x29F\n\x18\x3\x18\a\x18"+ + "\x2A2\n\x18\f\x18\xE\x18\x2A5\v\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A"+ + "\x3\x1A\x3\x1A\x5\x1A\x2AE\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2B4"+ + "\n\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C"+ + "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2C5\n\x1C\x3\x1C\x3"+ + "\x1C\x3\x1C\x3\x1C\x5\x1C\x2CB\n\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D"+ + "\x2D1\n\x1D\x3\x1D\x3\x1D\x5\x1D\x2D5\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D"+ + "\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2E1\n\x1D\x3\x1D\x3"+ + "\x1D\x5\x1D\x2E5\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2EB\n\x1D\x3"+ + "\x1E\x3\x1E\x3\x1E\x5\x1E\x2F0\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2F4\n\x1E\x3"+ + "\x1E\x3\x1E\x5\x1E\x2F8\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2FC\n\x1E\x3\x1E\x5"+ + "\x1E\x2FF\n\x1E\x3\x1E\x5\x1E\x302\n\x1E\x3\x1E\x5\x1E\x305\n\x1E\x3\x1E"+ + "\x5\x1E\x308\n\x1E\x3\x1E\x3\x1E\x5\x1E\x30C\n\x1E\x3\x1E\x3\x1E\x3\x1F"+ + "\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x314\n\x1F\x3\x1F\x3\x1F\x5\x1F\x318\n\x1F"+ + "\x3\x1F\x5\x1F\x31B\n\x1F\x3\x1F\x5\x1F\x31E\n\x1F\x3\x1F\x3\x1F\x5\x1F"+ + "\x322\n\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\"\x3\"\x3"+ + "\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x5\"\x33A\n\"\x3\"\x3"+ + "\"\a\"\x33E\n\"\f\"\xE\"\x341\v\"\x3\"\x5\"\x344\n\"\x3\"\x3\"\x5\"\x348"+ + "\n\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x5#\x351\n#\x3$\x3$\x3%\x3%\x3%\x3%\x3"+ + "%\x3%\x3%\x5%\x35C\n%\x3&\x3&\x3&\x5&\x361\n&\x3\'\x3\'\x3\'\x3\'\x3("+ + "\x3(\x3(\x3(\x5(\x36B\n(\x3(\x3(\x5(\x36F\n(\x3(\x6(\x372\n(\r(\xE(\x373"+ + "\x3)\x3)\x5)\x378\n)\x3)\x3)\x5)\x37C\n)\x3)\x3)\x5)\x380\n)\x3)\x3)\x3"+ + "*\x3*\x3*\x3*\x5*\x388\n*\x3*\x3*\x5*\x38C\n*\x3*\x3*\x3+\x3+\x3+\x3+"+ + "\x5+\x394\n+\x3+\x3+\x5+\x398\n+\x3+\x3+\x3+\x3+\x3+\x3+\x5+\x3A0\n+\x5"+ + "+\x3A2\n+\x3,\x3,\x3,\x3,\x5,\x3A8\n,\x3,\x3,\x5,\x3AC\n,\x3,\x3,\x3-"+ + "\x3-\x5-\x3B2\n-\x3-\x3-\x5-\x3B6\n-\x3-\x3-\x5-\x3BA\n-\x3-\x3-\x3.\x3"+ + ".\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3C8\n.\x3/\x3/\x3/\x3/\x3/\x3/"+ + "\x3/\x3/\x5/\x3D2\n/\x3/\x3/\x5/\x3D6\n/\x3/\a/\x3D9\n/\f/\xE/\x3DC\v"+ + "/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x3E6"+ + "\n\x30\x3\x30\x3\x30\x5\x30\x3EA\n\x30\x3\x30\a\x30\x3ED\n\x30\f\x30\xE"+ + "\x30\x3F0\v\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31"+ + "\x3\x31\x3\x31\x3\x31\x3\x31\x5\x31\x3FE\n\x31\x3\x31\x3\x31\x3\x31\x5"+ + "\x31\x403\n\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x5\x31"+ + "\x40C\n\x31\x3\x31\x3\x31\x5\x31\x410\n\x31\x3\x31\x3\x31\x5\x31\x414"+ + "\n\x31\x3\x32\x3\x32\x5\x32\x418\n\x32\x3\x32\x3\x32\x5\x32\x41C\n\x32"+ + "\x3\x32\x5\x32\x41F\n\x32\a\x32\x421\n\x32\f\x32\xE\x32\x424\v\x32\x3"+ + "\x32\x5\x32\x427\n\x32\x3\x32\x5\x32\x42A\n\x32\x3\x32\x3\x32\x5\x32\x42E"+ + "\n\x32\x3\x32\x5\x32\x431\n\x32\x6\x32\x433\n\x32\r\x32\xE\x32\x434\x5"+ + "\x32\x437\n\x32\x3\x33\x3\x33\x3\x33\x5\x33\x43C\n\x33\x3\x33\x3\x33\x5"+ + "\x33\x440\n\x33\x3\x33\x3\x33\x5\x33\x444\n\x33\x3\x33\x3\x33\x5\x33\x448"+ + "\n\x33\x5\x33\x44A\n\x33\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x450\n\x34"+ + "\x3\x34\x3\x34\x5\x34\x454\n\x34\x3\x34\x5\x34\x457\n\x34\x3\x35\x3\x35"+ + "\x3\x35\x5\x35\x45C\n\x35\x3\x35\x3\x35\x5\x35\x460\n\x35\x3\x35\x3\x35"+ + "\x3\x35\x3\x35\x5\x35\x466\n\x35\x3\x35\x5\x35\x469\n\x35\x3\x35\x5\x35"+ + "\x46C\n\x35\x3\x35\x3\x35\x3\x35\x5\x35\x471\n\x35\x3\x35\x3\x35\x5\x35"+ + "\x475\n\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x5\x36\x47C\n\x36\x3\x36"+ + "\x3\x36\x5\x36\x480\n\x36\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x486\n\x36"+ + "\x3\x36\x5\x36\x489\n\x36\x3\x36\x3\x36\x5\x36\x48D\n\x36\x3\x36\x3\x36"+ + "\x3\x37\x3\x37\x3\x37\x5\x37\x494\n\x37\x3\x37\x3\x37\x5\x37\x498\n\x37"+ + "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x49E\n\x37\x3\x37\x5\x37\x4A1\n\x37"+ + "\x3\x37\x3\x37\x5\x37\x4A5\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3\x38\x3"+ + "\x38\x5\x38\x4AD\n\x38\x3\x38\x3\x38\x5\x38\x4B1\n\x38\x3\x38\x5\x38\x4B4"+ + "\n\x38\x3\x38\x5\x38\x4B7\n\x38\x3\x38\x3\x38\x5\x38\x4BB\n\x38\x3\x38"+ + "\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x5\x39\x4C3\n\x39\x3\x39\x3\x39\x5"+ + "\x39\x4C7\n\x39\x3\x39\x3\x39\x5\x39\x4CB\n\x39\x5\x39\x4CD\n\x39\x3\x39"+ + "\x5\x39\x4D0\n\x39\x3:\x3:\x3:\x3:\x5:\x4D6\n:\x3:\x3:\x5:\x4DA\n:\x3"+ + ":\x3:\x5:\x4DE\n:\x3:\a:\x4E1\n:\f:\xE:\x4E4\v:\x3;\x3;\x5;\x4E8\n;\x3"+ + ";\x3;\x5;\x4EC\n;\x3;\x3;\x5;\x4F0\n;\x3;\x3;\x3;\x3;\x5;\x4F6\n;\x3<"+ + "\x3<\x3=\x3=\x3=\x3=\x5=\x4FE\n=\x5=\x500\n=\x3>\x3>\x3?\x3?\x3?\x3?\x5"+ + "?\x508\n?\x3?\x3?\x5?\x50C\n?\x3?\x3?\x3@\x3@\x3@\x3@\x5@\x514\n@\x3@"+ + "\x3@\x5@\x518\n@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3"+ + "\x41\a\x41\x523\n\x41\f\x41\xE\x41\x526\v\x41\x3\x41\x3\x41\x3\x42\x3"+ + "\x42\x5\x42\x52C\n\x42\x3\x42\x3\x42\x5\x42\x530\n\x42\x3\x42\x3\x42\x3"+ + "\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x53B\n\x42\x3\x43"+ + "\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x542\n\x43\x3\x44\x3\x44\x3\x44\x5"+ + "\x44\x547\n\x44\x3\x44\x3\x44\x5\x44\x54B\n\x44\x3\x44\a\x44\x54E\n\x44"+ + "\f\x44\xE\x44\x551\v\x44\x5\x44\x553\n\x44\x3\x45\x3\x45\x3\x45\x3\x45"+ + "\x5\x45\x559\n\x45\x3\x45\x3\x45\x5\x45\x55D\n\x45\x3\x45\x3\x45\x3\x46"+ + "\x3\x46\x3\x46\x5\x46\x564\n\x46\x3\x46\x3\x46\x5\x46\x568\n\x46\x3\x46"+ + "\x3\x46\x5\x46\x56C\n\x46\x3\x46\x3\x46\x5\x46\x570\n\x46\x3\x46\x5\x46"+ + "\x573\n\x46\x3\x46\x3\x46\x5\x46\x577\n\x46\x3\x46\x3\x46\x3G\x3G\x3G"+ + "\x5G\x57E\nG\x3G\x3G\x3G\x3G\x3G\aG\x585\nG\fG\xEG\x588\vG\x3G\x3G\x3"+ + "H\x3H\x5H\x58E\nH\x3H\x3H\x5H\x592\nH\x3H\x5H\x595\nH\x3H\x5H\x598\nH"+ + "\x3H\x5H\x59B\nH\x3H\x3H\x3H\x5H\x5A0\nH\x3H\x3H\x3I\x3I\x3I\x3I\x5I\x5A8"+ + "\nI\x3I\x3I\x5I\x5AC\nI\x3I\x3I\x3I\x3I\x3I\x3I\x5I\x5B4\nI\x5I\x5B6\n"+ + "I\x3J\x3J\x3J\x5J\x5BB\nJ\x3J\x3J\x3J\x5J\x5C0\nJ\x3J\x3J\x3J\x5J\x5C5"+ + "\nJ\x3J\x3J\x5J\x5C9\nJ\x3J\x3J\x3J\x3J\x5J\x5CF\nJ\x3J\x3J\x3J\x5J\x5D4"+ + "\nJ\x3J\x3J\x3J\x3J\x3J\x5J\x5DB\nJ\x3J\x3J\x5J\x5DF\nJ\x3J\x3J\x3J\x3"+ + "J\x5J\x5E5\nJ\x3J\x3J\x5J\x5E9\nJ\x3J\x3J\x5J\x5ED\nJ\x3J\x3J\x3J\x5J"+ + "\x5F2\nJ\x3J\x3J\x5J\x5F6\nJ\x3J\x3J\x3J\x5J\x5FB\nJ\x3J\x3J\x5J\x5FF"+ + "\nJ\x3J\x3J\x3J\x5J\x604\nJ\x3J\x3J\x5J\x608\nJ\x3J\x3J\x3J\x5J\x60D\n"+ + "J\x3J\x3J\x5J\x611\nJ\x3J\x3J\x3J\x5J\x616\nJ\x3J\x3J\x5J\x61A\nJ\x3J"+ + "\x3J\x3J\x5J\x61F\nJ\x3J\x3J\x5J\x623\nJ\x3J\x3J\x3J\x5J\x628\nJ\x3J\x3"+ + "J\x5J\x62C\nJ\x3J\x3J\x3J\x5J\x631\nJ\x3J\x3J\x5J\x635\nJ\x3J\x3J\x3J"+ + "\x5J\x63A\nJ\x3J\x3J\x5J\x63E\nJ\x3J\x3J\x3J\x5J\x643\nJ\x3J\x3J\x5J\x647"+ + "\nJ\x3J\x3J\x3J\x5J\x64C\nJ\x3J\x3J\x5J\x650\nJ\x3J\aJ\x653\nJ\fJ\xEJ"+ + "\x656\vJ\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x5K\x660\nK\x3L\x3L\x3L\x5L\x665"+ + "\nL\x3L\x3L\x3L\x5L\x66A\nL\x3L\x3L\x3M\x3M\x5M\x670\nM\x3M\x3M\x5M\x674"+ + "\nM\x3M\aM\x677\nM\fM\xEM\x67A\vM\x3N\x3N\x5N\x67E\nN\x3N\x3N\x5N\x682"+ + "\nN\x3N\x3N\x5N\x686\nN\x5N\x688\nN\x3N\x3N\x5N\x68C\nN\x5N\x68E\nN\x3"+ + "N\x5N\x691\nN\x3N\x3N\x3N\x5N\x696\nN\x3O\x3O\x3O\x3O\x3O\x5O\x69D\nO"+ + "\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x6A5\nP\x3P\x3P\x5P\x6A9\nP\x3P\x3P\x3Q\x3"+ + "Q\x3Q\x3Q\x3Q\x5Q\x6B2\nQ\x3Q\x3Q\x3R\x3R\x3S\x3S\x3S\x3S\x5S\x6BC\nS"+ + "\x3S\x3S\x5S\x6C0\nS\x3S\x5S\x6C3\nS\x3T\x5T\x6C6\nT\x3T\x3T\x3U\x3U\x3"+ + "U\x3U\x3V\x5V\x6CF\nV\x3V\x3V\x3V\x5V\x6D4\nV\x3V\x5V\x6D7\nV\x3V\x3V"+ + "\x5V\x6DB\nV\x3V\x3V\x5V\x6DF\nV\x3V\x3V\x5V\x6E3\nV\x3V\x5V\x6E6\nV\x3"+ + "V\x3V\x3V\x3V\aV\x6EC\nV\fV\xEV\x6EF\vV\x3V\x3V\x5V\x6F3\nV\x3V\x5V\x6F6"+ + "\nV\x3V\x3V\x5V\x6FA\nV\x3V\x3V\x5V\x6FE\nV\x3V\x3V\x5V\x702\nV\x3V\x5"+ + "V\x705\nV\x3V\x3V\x3V\x3V\aV\x70B\nV\fV\xEV\x70E\vV\x5V\x710\nV\x3W\x3"+ + "W\x5W\x714\nW\x3X\x5X\x717\nX\x3X\x5X\x71A\nX\x3X\x3X\x5X\x71E\nX\x3X"+ + "\x3X\x5X\x722\nX\x3X\x3X\x3X\x5X\x727\nX\x3X\x5X\x72A\nX\x3X\x5X\x72D"+ + "\nX\x3X\x5X\x730\nX\x3X\x3X\x3X\x3X\aX\x736\nX\fX\xEX\x739\vX\x3Y\x3Y"+ + "\x3Y\x3Y\x5Y\x73F\nY\x3Y\x5Y\x742\nY\x3Y\x3Y\x3Y\x3Y\aY\x748\nY\fY\xE"+ + "Y\x74B\vY\x3Z\x3Z\x3Z\x3Z\x5Z\x751\nZ\x3[\x3[\x5[\x755\n[\x3[\x5[\x758"+ + "\n[\x3[\x5[\x75B\n[\x3[\x5[\x75E\n[\x3[\x3[\x3[\x3[\a[\x764\n[\f[\xE["+ + "\x767\v[\x3\\\x3\\\x5\\\x76B\n\\\x3\\\x5\\\x76E\n\\\x3\\\x5\\\x771\n\\"+ + "\x3\\\x3\\\x5\\\x775\n\\\x3\\\x3\\\x5\\\x779\n\\\x5\\\x77B\n\\\x3\\\x3"+ + "\\\x5\\\x77F\n\\\x3\\\x5\\\x782\n\\\x3\\\x5\\\x785\n\\\x3\\\x3\\\x3\\"+ + "\x3\\\a\\\x78B\n\\\f\\\xE\\\x78E\v\\\x3]\x3]\x5]\x792\n]\x3]\x5]\x795"+ + "\n]\x3]\x5]\x798\n]\x3]\x5]\x79B\n]\x3]\x3]\x3]\x3]\a]\x7A1\n]\f]\xE]"+ + "\x7A4\v]\x3^\x3^\x5^\x7A8\n^\x3^\x5^\x7AB\n^\x3^\x5^\x7AE\n^\x3^\x3^\x5"+ + "^\x7B2\n^\x3^\x3^\x5^\x7B6\n^\x5^\x7B8\n^\x3^\x3^\x5^\x7BC\n^\x3^\x5^"+ + "\x7BF\n^\x3^\x5^\x7C2\n^\x3^\x3^\x3^\x3^\a^\x7C8\n^\f^\xE^\x7CB\v^\x3"+ + "_\x3_\x5_\x7CF\n_\x3_\x3_\x5_\x7D3\n_\x6_\x7D5\n_\r_\xE_\x7D6\x3_\x5_"+ + "\x7DA\n_\x3_\x5_\x7DD\n_\x3_\x5_\x7E0\n_\x3_\x3_\x3_\x3_\a_\x7E6\n_\f"+ + "_\xE_\x7E9\v_\x3`\x3`\x5`\x7ED\n`\x3`\x3`\x5`\x7F1\n`\x3\x61\x5\x61\x7F4"+ + "\n\x61\x3\x61\x3\x61\x3\x62\x5\x62\x7F9\n\x62\x3\x62\x5\x62\x7FC\n\x62"+ + "\x3\x62\x3\x62\x5\x62\x800\n\x62\a\x62\x802\n\x62\f\x62\xE\x62\x805\v"+ + "\x62\x3\x62\x3\x62\x5\x62\x809\n\x62\x3\x62\x3\x62\x5\x62\x80D\n\x62\x3"+ + "\x62\x5\x62\x810\n\x62\a\x62\x812\n\x62\f\x62\xE\x62\x815\v\x62\x3\x63"+ + "\x5\x63\x818\n\x63\x3\x63\x3\x63\x5\x63\x81C\n\x63\x3\x63\x5\x63\x81F"+ + "\n\x63\x3\x63\x3\x63\x3\x64\x3\x64\x5\x64\x825\n\x64\x3\x64\x3\x64\x5"+ + "\x64\x829\n\x64\x3\x65\x3\x65\x5\x65\x82D\n\x65\x3\x65\x3\x65\x5\x65\x831"+ + "\n\x65\x3\x65\x3\x65\x5\x65\x835\n\x65\x3\x65\a\x65\x838\n\x65\f\x65\xE"+ + "\x65\x83B\v\x65\x5\x65\x83D\n\x65\x3\x65\x5\x65\x840\n\x65\x3\x65\x3\x65"+ + "\x3\x66\x3\x66\x5\x66\x846\n\x66\x3\x66\x3\x66\x5\x66\x84A\n\x66\x3\x66"+ + "\x3\x66\x5\x66\x84E\n\x66\x3\x66\x3\x66\x5\x66\x852\n\x66\x3\x66\x5\x66"+ + "\x855\n\x66\x3\x66\x3\x66\x5\x66\x859\n\x66\x3\x66\x5\x66\x85C\n\x66\x3"+ + "\x66\x5\x66\x85F\n\x66\x3\x66\x5\x66\x862\n\x66\x3\x66\x5\x66\x865\n\x66"+ + "\x3\x66\x5\x66\x868\n\x66\x3g\x3g\x5g\x86C\ng\x3g\x3g\x3h\x3h\x5h\x872"+ + "\nh\x3h\x3h\x5h\x876\nh\x3h\ah\x879\nh\fh\xEh\x87C\vh\x3i\x3i\x3i\x3i"+ + "\x3i\x5i\x883\ni\x3i\x3i\x3j\x3j\x5j\x889\nj\x3k\x3k\x5k\x88D\nk\x3l\x3"+ + "l\x5l\x891\nl\x3l\x3l\x5l\x895\nl\x3l\x3l\x5l\x899\nl\x3l\x5l\x89C\nl"+ + "\x3m\x3m\x3n\x3n\x3o\x3o\x3o\ao\x8A5\no\fo\xEo\x8A8\vo\x3p\x3p\x5p\x8AC"+ + "\np\x3p\x3p\x5p\x8B0\np\x3q\x3q\x5q\x8B4\nq\x3q\x3q\x5q\x8B8\nq\x3q\x5"+ + "q\x8BB\nq\x3r\x3r\x5r\x8BF\nr\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3s"+ + "\x5s\x8CB\ns\x3t\x3t\x3u\x3u\x5u\x8D1\nu\x3u\x5u\x8D4\nu\x3u\x3u\x5u\x8D8"+ + "\nu\x3u\x5u\x8DB\nu\x3v\x3v\x3w\x3w\x3x\x3x\x3y\x3y\x3z\x5z\x8E6\nz\x3"+ + "z\x6z\x8E9\nz\rz\xEz\x8EA\x3z\x3z\x5z\x8EF\nz\x3z\x5z\x8F2\nz\x3z\x5z"+ + "\x8F5\nz\x3z\x5z\x8F8\nz\x3{\x3{\x5{\x8FC\n{\x3{\x3{\x5{\x900\n{\a{\x902"+ + "\n{\f{\xE{\x905\v{\x3|\x3|\x3}\x3}\x3~\x3~\x6~\x90D\n~\r~\xE~\x90E\x3"+ + "\x7F\x3\x7F\x3\x7F\x5\x7F\x914\n\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81"+ + "\x5\x81\x91B\n\x81\x3\x81\x3\x81\x3\x81\x5\x81\x920\n\x81\x3\x81\x3\x81"+ + "\x5\x81\x924\n\x81\x3\x81\x6\x81\x927\n\x81\r\x81\xE\x81\x928\x3\x81\x5"+ + "\x81\x92C\n\x81\x3\x81\x5\x81\x92F\n\x81\x3\x81\x3\x81\x5\x81\x933\n\x81"+ + "\x3\x81\x3\x81\x5\x81\x937\n\x81\x3\x81\x3\x81\x5\x81\x93B\n\x81\x3\x81"+ + "\x5\x81\x93E\n\x81\x3\x81\x3\x81\x3\x81\x5\x81\x943\n\x81\x3\x81\x3\x81"+ + "\x5\x81\x947\n\x81\x3\x81\x6\x81\x94A\n\x81\r\x81\xE\x81\x94B\x3\x81\x5"+ + "\x81\x94F\n\x81\x3\x81\x3\x81\x5\x81\x953\n\x81\x5\x81\x955\n\x81\x3\x82"+ + "\x3\x82\x5\x82\x959\n\x82\x3\x83\x6\x83\x95C\n\x83\r\x83\xE\x83\x95D\x3"+ + "\x83\x2\x2\x3\x92\x84\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ + "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ + ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ + "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ + "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ + "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ + "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ + "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ + "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ + "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ + "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ + "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x2\x1A\x5\x2;;\x45\x45\xBC"+ + "\xBC\x3\x2HT\x4\x2\xC3\xC3\xC7\xC7\x3\x2jn\x3\x2\x92\x93\a\x2\x38\x38"+ + ";;{{\x9B\x9B\xA6\xA6\x4\x2\xA8\xA9\xCB\xCB\x4\x2\x85\x87\xB3\xB3\x4\x2"+ + "))++\x4\x2\xB5\xB5\xBB\xBB\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9"+ + "\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2,-\x4\x2=>\x9C\x9C\x3\x2"+ + "=>\r\x2\x13\x13\x1F <\x325\x3\x2\x2\x2@\x329\x3\x2\x2\x2\x42"+ + "\x347\x3\x2\x2\x2\x44\x349\x3\x2\x2\x2\x46\x352\x3\x2\x2\x2H\x354\x3\x2"+ + "\x2\x2J\x35D\x3\x2\x2\x2L\x362\x3\x2\x2\x2N\x366\x3\x2\x2\x2P\x377\x3"+ + "\x2\x2\x2R\x383\x3\x2\x2\x2T\x38F\x3\x2\x2\x2V\x3A3\x3\x2\x2\x2X\x3AF"+ + "\x3\x2\x2\x2Z\x3BD\x3\x2\x2\x2\\\x3C9\x3\x2\x2\x2^\x3DD\x3\x2\x2\x2`\x3F1"+ + "\x3\x2\x2\x2\x62\x436\x3\x2\x2\x2\x64\x449\x3\x2\x2\x2\x66\x44B\x3\x2"+ + "\x2\x2h\x45B\x3\x2\x2\x2j\x47B\x3\x2\x2\x2l\x493\x3\x2\x2\x2n\x4A8\x3"+ + "\x2\x2\x2p\x4BE\x3\x2\x2\x2r\x4D1\x3\x2\x2\x2t\x4E5\x3\x2\x2\x2v\x4F7"+ + "\x3\x2\x2\x2x\x4F9\x3\x2\x2\x2z\x501\x3\x2\x2\x2|\x503\x3\x2\x2\x2~\x50F"+ + "\x3\x2\x2\x2\x80\x51B\x3\x2\x2\x2\x82\x53A\x3\x2\x2\x2\x84\x53C\x3\x2"+ + "\x2\x2\x86\x552\x3\x2\x2\x2\x88\x554\x3\x2\x2\x2\x8A\x563\x3\x2\x2\x2"+ + "\x8C\x57D\x3\x2\x2\x2\x8E\x58B\x3\x2\x2\x2\x90\x5A3\x3\x2\x2\x2\x92\x5E4"+ + "\x3\x2\x2\x2\x94\x657\x3\x2\x2\x2\x96\x664\x3\x2\x2\x2\x98\x66D\x3\x2"+ + "\x2\x2\x9A\x67B\x3\x2\x2\x2\x9C\x697\x3\x2\x2\x2\x9E\x6A0\x3\x2\x2\x2"+ + "\xA0\x6AC\x3\x2\x2\x2\xA2\x6B5\x3\x2\x2\x2\xA4\x6B7\x3\x2\x2\x2\xA6\x6C5"+ + "\x3\x2\x2\x2\xA8\x6C9\x3\x2\x2\x2\xAA\x70F\x3\x2\x2\x2\xAC\x713\x3\x2"+ + "\x2\x2\xAE\x716\x3\x2\x2\x2\xB0\x73A\x3\x2\x2\x2\xB2\x750\x3\x2\x2\x2"+ + "\xB4\x752\x3\x2\x2\x2\xB6\x76A\x3\x2\x2\x2\xB8\x78F\x3\x2\x2\x2\xBA\x7A7"+ + "\x3\x2\x2\x2\xBC\x7CE\x3\x2\x2\x2\xBE\x7EA\x3\x2\x2\x2\xC0\x7F3\x3\x2"+ + "\x2\x2\xC2\x803\x3\x2\x2\x2\xC4\x817\x3\x2\x2\x2\xC6\x822\x3\x2\x2\x2"+ + "\xC8\x82A\x3\x2\x2\x2\xCA\x845\x3\x2\x2\x2\xCC\x869\x3\x2\x2\x2\xCE\x86F"+ + "\x3\x2\x2\x2\xD0\x882\x3\x2\x2\x2\xD2\x888\x3\x2\x2\x2\xD4\x88C\x3\x2"+ + "\x2\x2\xD6\x88E\x3\x2\x2\x2\xD8\x89D\x3\x2\x2\x2\xDA\x89F\x3\x2\x2\x2"+ + "\xDC\x8A1\x3\x2\x2\x2\xDE\x8A9\x3\x2\x2\x2\xE0\x8B1\x3\x2\x2\x2\xE2\x8BE"+ + "\x3\x2\x2\x2\xE4\x8CA\x3\x2\x2\x2\xE6\x8CC\x3\x2\x2\x2\xE8\x8D0\x3\x2"+ + "\x2\x2\xEA\x8DC\x3\x2\x2\x2\xEC\x8DE\x3\x2\x2\x2\xEE\x8E0\x3\x2\x2\x2"+ + "\xF0\x8E2\x3\x2\x2\x2\xF2\x8F7\x3\x2\x2\x2\xF4\x903\x3\x2\x2\x2\xF6\x906"+ + "\x3\x2\x2\x2\xF8\x908\x3\x2\x2\x2\xFA\x90A\x3\x2\x2\x2\xFC\x910\x3\x2"+ + "\x2\x2\xFE\x915\x3\x2\x2\x2\x100\x954\x3\x2\x2\x2\x102\x958\x3\x2\x2\x2"+ + "\x104\x95B\x3\x2\x2\x2\x106\x107\x5\x4\x3\x2\x107\x108\a\x2\x2\x3\x108"+ + "\x3\x3\x2\x2\x2\x109\x10B\x5\x104\x83\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B"+ + "\x3\x2\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x110\x5\xF4{\x2\x10D\x10E\x5\x6"+ + "\x4\x2\x10E\x10F\x5\xF4{\x2\x10F\x111\x3\x2\x2\x2\x110\x10D\x3\x2\x2\x2"+ + "\x110\x111\x3\x2\x2\x2\x111\x113\x3\x2\x2\x2\x112\x114\x5\b\x5\x2\x113"+ + "\x112\x3\x2\x2\x2\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x117"+ + "\x5\xF4{\x2\x116\x118\x5\f\a\x2\x117\x116\x3\x2\x2\x2\x117\x118\x3\x2"+ + "\x2\x2\x118\x119\x3\x2\x2\x2\x119\x11B\x5\xF4{\x2\x11A\x11C\x5\xE\b\x2"+ + "\x11B\x11A\x3\x2\x2\x2\x11B\x11C\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D"+ + "\x11F\x5\xF4{\x2\x11E\x120\x5\x14\v\x2\x11F\x11E\x3\x2\x2\x2\x11F\x120"+ + "\x3\x2\x2\x2\x120\x121\x3\x2\x2\x2\x121\x123\x5\xF4{\x2\x122\x124\x5\x104"+ + "\x83\x2\x123\x122\x3\x2\x2\x2\x123\x124\x3\x2\x2\x2\x124\x5\x3\x2\x2\x2"+ + "\x125\x126\a\xC5\x2\x2\x126\x127\x5\x104\x83\x2\x127\x129\x5\xE6t\x2\x128"+ + "\x12A\x5\x104\x83\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A"+ + "\x12C\x3\x2\x2\x2\x12B\x12D\a\x42\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C\x12D"+ + "\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x5\xF4{\x2\x12F\a\x3\x2\x2"+ + "\x2\x130\x138\a:\x2\x2\x131\x132\x5\x104\x83\x2\x132\x133\a\xF1\x2\x2"+ + "\x133\x134\x5\x104\x83\x2\x134\x136\x5\xD2j\x2\x135\x137\x5\x104\x83\x2"+ + "\x136\x135\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x3\x2\x2\x2\x138"+ + "\x131\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13C"+ + "\x5\xF4{\x2\x13B\x13D\x5\n\x6\x2\x13C\x13B\x3\x2\x2\x2\x13D\x13E\x3\x2"+ + "\x2\x2\x13E\x13C\x3\x2\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x140\x3\x2\x2"+ + "\x2\x140\x141\a\x64\x2\x2\x141\t\x3\x2\x2\x2\x142\x146\x5\xD2j\x2\x143"+ + "\x145\x5\x104\x83\x2\x144\x143\x3\x2\x2\x2\x145\x148\x3\x2\x2\x2\x146"+ + "\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x149\x3\x2\x2\x2\x148\x146"+ + "\x3\x2\x2\x2\x149\x14D\a\xD0\x2\x2\x14A\x14C\x5\x104\x83\x2\x14B\x14A"+ + "\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D\x14B\x3\x2\x2\x2\x14D\x14E\x3"+ + "\x2\x2\x2\x14E\x150\x3\x2\x2\x2\x14F\x14D\x3\x2\x2\x2\x150\x153\x5\xE4"+ + "s\x2\x151\x152\a*\x2\x2\x152\x154\x5\xE6t\x2\x153\x151\x3\x2\x2\x2\x153"+ + "\x154\x3\x2\x2\x2\x154\x155\x3\x2\x2\x2\x155\x156\x5\xF4{\x2\x156\v\x3"+ + "\x2\x2\x2\x157\x158\x5\x18\r\x2\x158\x159\x5\xF4{\x2\x159\x15B\x3\x2\x2"+ + "\x2\x15A\x157\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15A\x3\x2\x2\x2"+ + "\x15C\x15D\x3\x2\x2\x2\x15D\r\x3\x2\x2\x2\x15E\x164\x5\x12\n\x2\x15F\x160"+ + "\x5\xF4{\x2\x160\x161\x5\x12\n\x2\x161\x163\x3\x2\x2\x2\x162\x15F\x3\x2"+ + "\x2\x2\x163\x166\x3\x2\x2\x2\x164\x162\x3\x2\x2\x2\x164\x165\x3\x2\x2"+ + "\x2\x165\x167\x3\x2\x2\x2\x166\x164\x3\x2\x2\x2\x167\x168\x5\xF4{\x2\x168"+ + "\xF\x3\x2\x2\x2\x169\x16A\a\x96\x2\x2\x16A\x16B\x5\x104\x83\x2\x16B\x16C"+ + "\x5\xE6t\x2\x16C\x174\x3\x2\x2\x2\x16D\x16E\a\x98\x2\x2\x16E\x16F\x5\x104"+ + "\x83\x2\x16F\x170\t\x2\x2\x2\x170\x174\x3\x2\x2\x2\x171\x174\a\x97\x2"+ + "\x2\x172\x174\a\x99\x2\x2\x173\x169\x3\x2\x2\x2\x173\x16D\x3\x2\x2\x2"+ + "\x173\x171\x3\x2\x2\x2\x173\x172\x3\x2\x2\x2\x174\x11\x3\x2\x2\x2\x175"+ + "\x17E\x5$\x13\x2\x176\x17E\x5*\x16\x2\x177\x17E\x5\x32\x1A\x2\x178\x17E"+ + "\x5 \x11\x2\x179\x17E\x5L\'\x2\x17A\x17E\x5\x96L\x2\x17B\x17E\x5\x10\t"+ + "\x2\x17C\x17E\x5\x8CG\x2\x17D\x175\x3\x2\x2\x2\x17D\x176\x3\x2\x2\x2\x17D"+ + "\x177\x3\x2\x2\x2\x17D\x178\x3\x2\x2\x2\x17D\x179\x3\x2\x2\x2\x17D\x17A"+ + "\x3\x2\x2\x2\x17D\x17B\x3\x2\x2\x2\x17D\x17C\x3\x2\x2\x2\x17E\x13\x3\x2"+ + "\x2\x2\x17F\x185\x5\x16\f\x2\x180\x181\x5\xF4{\x2\x181\x182\x5\x16\f\x2"+ + "\x182\x184\x3\x2\x2\x2\x183\x180\x3\x2\x2\x2\x184\x187\x3\x2\x2\x2\x185"+ + "\x183\x3\x2\x2\x2\x185\x186\x3\x2\x2\x2\x186\x188\x3\x2\x2\x2\x187\x185"+ + "\x3\x2\x2\x2\x188\x189\x5\xF4{\x2\x189\x15\x3\x2\x2\x2\x18A\x190\x5:\x1E"+ + "\x2\x18B\x190\x5h\x35\x2\x18C\x190\x5j\x36\x2\x18D\x190\x5l\x37\x2\x18E"+ + "\x190\x5\x8A\x46\x2\x18F\x18A\x3\x2\x2\x2\x18F\x18B\x3\x2\x2\x2\x18F\x18C"+ + "\x3\x2\x2\x2\x18F\x18D\x3\x2\x2\x2\x18F\x18E\x3\x2\x2\x2\x190\x17\x3\x2"+ + "\x2\x2\x191\x192\a\x37\x2\x2\x192\x193\x5\x104\x83\x2\x193\x195\x5\xB2"+ + "Z\x2\x194\x196\x5\x104\x83\x2\x195\x194\x3\x2\x2\x2\x195\x196\x3\x2\x2"+ + "\x2\x196\x197\x3\x2\x2\x2\x197\x199\a\xD0\x2\x2\x198\x19A\x5\x104\x83"+ + "\x2\x199\x198\x3\x2\x2\x2\x199\x19A\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2"+ + "\x19B\x1A6\x5\xE4s\x2\x19C\x19E\x5\x104\x83\x2\x19D\x19C\x3\x2\x2\x2\x19D"+ + "\x19E\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A1\a)\x2\x2\x1A0\x1A2\x5"+ + "\x104\x83\x2\x1A1\x1A0\x3\x2\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A3\x3"+ + "\x2\x2\x2\x1A3\x1A5\x5\xE4s\x2\x1A4\x19D\x3\x2\x2\x2\x1A5\x1A8\x3\x2\x2"+ + "\x2\x1A6\x1A4\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2\x1A7\x19\x3\x2\x2\x2\x1A8"+ + "\x1A6\x3\x2\x2\x2\x1A9\x1AF\x5\x1C\xF\x2\x1AA\x1AB\x5\xF4{\x2\x1AB\x1AC"+ + "\x5\x1C\xF\x2\x1AC\x1AE\x3\x2\x2\x2\x1AD\x1AA\x3\x2\x2\x2\x1AE\x1B1\x3"+ + "\x2\x2\x2\x1AF\x1AD\x3\x2\x2\x2\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B2\x3\x2"+ + "\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B2\x1B3\x5\xF4{\x2\x1B3\x1B\x3\x2\x2\x2"+ + "\x1B4\x1E2\x5\xE2r\x2\x1B5\x1E2\x5\x18\r\x2\x1B6\x1E2\x5\x1E\x10\x2\x1B7"+ + "\x1E2\x5 \x11\x2\x1B8\x1E2\x5&\x14\x2\x1B9\x1E2\x5(\x15\x2\x1BA\x1E2\x5"+ + ".\x18\x2\x1BB\x1E2\x5\x30\x19\x2\x1BC\x1E2\x5\x34\x1B\x2\x1BD\x1E2\x5"+ + "\xA8U\x2\x1BE\x1E2\x5\x36\x1C\x2\x1BF\x1E2\x5\x38\x1D\x2\x1C0\x1E2\x5"+ + "<\x1F\x2\x1C1\x1E2\x5> \x2\x1C2\x1E2\x5@!\x2\x1C3\x1E2\x5\x42\"\x2\x1C4"+ + "\x1E2\x5L\'\x2\x1C5\x1E2\x5N(\x2\x1C6\x1E2\x5P)\x2\x1C7\x1E2\x5R*\x2\x1C8"+ + "\x1E2\x5T+\x2\x1C9\x1E2\x5V,\x2\x1CA\x1E2\x5X-\x2\x1CB\x1E2\x5Z.\x2\x1CC"+ + "\x1E2\x5\\/\x2\x1CD\x1E2\x5^\x30\x2\x1CE\x1E2\x5`\x31\x2\x1CF\x1E2\x5"+ + "\x66\x34\x2\x1D0\x1E2\x5n\x38\x2\x1D1\x1E2\x5p\x39\x2\x1D2\x1E2\x5r:\x2"+ + "\x1D3\x1E2\x5v<\x2\x1D4\x1E2\x5x=\x2\x1D5\x1E2\x5z>\x2\x1D6\x1E2\x5|?"+ + "\x2\x1D7\x1E2\x5~@\x2\x1D8\x1E2\x5\x80\x41\x2\x1D9\x1E2\x5\x88\x45\x2"+ + "\x1DA\x1E2\x5\x90I\x2\x1DB\x1E2\x5\x96L\x2\x1DC\x1E2\x5\x9CO\x2\x1DD\x1E2"+ + "\x5\x9EP\x2\x1DE\x1E2\x5\xA0Q\x2\x1DF\x1E2\x5\xA4S\x2\x1E0\x1E2\x5\xAC"+ + "W\x2\x1E1\x1B4\x3\x2\x2\x2\x1E1\x1B5\x3\x2\x2\x2\x1E1\x1B6\x3\x2\x2\x2"+ + "\x1E1\x1B7\x3\x2\x2\x2\x1E1\x1B8\x3\x2\x2\x2\x1E1\x1B9\x3\x2\x2\x2\x1E1"+ + "\x1BA\x3\x2\x2\x2\x1E1\x1BB\x3\x2\x2\x2\x1E1\x1BC\x3\x2\x2\x2\x1E1\x1BD"+ + "\x3\x2\x2\x2\x1E1\x1BE\x3\x2\x2\x2\x1E1\x1BF\x3\x2\x2\x2\x1E1\x1C0\x3"+ + "\x2\x2\x2\x1E1\x1C1\x3\x2\x2\x2\x1E1\x1C2\x3\x2\x2\x2\x1E1\x1C3\x3\x2"+ + "\x2\x2\x1E1\x1C4\x3\x2\x2\x2\x1E1\x1C5\x3\x2\x2\x2\x1E1\x1C6\x3\x2\x2"+ + "\x2\x1E1\x1C7\x3\x2\x2\x2\x1E1\x1C8\x3\x2\x2\x2\x1E1\x1C9\x3\x2\x2\x2"+ + "\x1E1\x1CA\x3\x2\x2\x2\x1E1\x1CB\x3\x2\x2\x2\x1E1\x1CC\x3\x2\x2\x2\x1E1"+ + "\x1CD\x3\x2\x2\x2\x1E1\x1CE\x3\x2\x2\x2\x1E1\x1CF\x3\x2\x2\x2\x1E1\x1D0"+ + "\x3\x2\x2\x2\x1E1\x1D1\x3\x2\x2\x2\x1E1\x1D2\x3\x2\x2\x2\x1E1\x1D3\x3"+ + "\x2\x2\x2\x1E1\x1D4\x3\x2\x2\x2\x1E1\x1D5\x3\x2\x2\x2\x1E1\x1D6\x3\x2"+ + "\x2\x2\x1E1\x1D7\x3\x2\x2\x2\x1E1\x1D8\x3\x2\x2\x2\x1E1\x1D9\x3\x2\x2"+ + "\x2\x1E1\x1DA\x3\x2\x2\x2\x1E1\x1DB\x3\x2\x2\x2\x1E1\x1DC\x3\x2\x2\x2"+ + "\x1E1\x1DD\x3\x2\x2\x2\x1E1\x1DE\x3\x2\x2\x2\x1E1\x1DF\x3\x2\x2\x2\x1E1"+ + "\x1E0\x3\x2\x2\x2\x1E2\x1D\x3\x2\x2\x2\x1E3\x1F3\a\x43\x2\x2\x1E4\x1E5"+ + "\x5\x104\x83\x2\x1E5\x1F0\x5\xA6T\x2\x1E6\x1E8\x5\x104\x83\x2\x1E7\x1E6"+ + "\x3\x2\x2\x2\x1E7\x1E8\x3\x2\x2\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1EB\a)"+ + "\x2\x2\x1EA\x1EC\x5\x104\x83\x2\x1EB\x1EA\x3\x2\x2\x2\x1EB\x1EC\x3\x2"+ + "\x2\x2\x1EC\x1ED\x3\x2\x2\x2\x1ED\x1EF\x5\xA6T\x2\x1EE\x1E7\x3\x2\x2\x2"+ + "\x1EF\x1F2\x3\x2\x2\x2\x1F0\x1EE\x3\x2\x2\x2\x1F0\x1F1\x3\x2\x2\x2\x1F1"+ + "\x1F4\x3\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F3\x1E4\x3\x2\x2\x2\x1F3\x1F4"+ + "\x3\x2\x2\x2\x1F4\x1F\x3\x2\x2\x2\x1F5\x1F6\x5\xECw\x2\x1F6\x1F7\x5\x104"+ + "\x83\x2\x1F7\x1F9\x3\x2\x2\x2\x1F8\x1F5\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2"+ + "\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\a\x44\x2\x2\x1FB\x1FC\x5\x104\x83"+ + "\x2\x1FC\x207\x5\"\x12\x2\x1FD\x1FF\x5\x104\x83\x2\x1FE\x1FD\x3\x2\x2"+ + "\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x200\x3\x2\x2\x2\x200\x202\a)\x2\x2\x201"+ + "\x203\x5\x104\x83\x2\x202\x201\x3\x2\x2\x2\x202\x203\x3\x2\x2\x2\x203"+ + "\x204\x3\x2\x2\x2\x204\x206\x5\"\x12\x2\x205\x1FE\x3\x2\x2\x2\x206\x209"+ + "\x3\x2\x2\x2\x207\x205\x3\x2\x2\x2\x207\x208\x3\x2\x2\x2\x208!\x3\x2\x2"+ + "\x2\x209\x207\x3\x2\x2\x2\x20A\x20C\x5\xD4k\x2\x20B\x20D\x5\xEAv\x2\x20C"+ + "\x20B\x3\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D\x211\x3\x2\x2\x2\x20E\x20F"+ + "\x5\x104\x83\x2\x20F\x210\x5\xD6l\x2\x210\x212\x3\x2\x2\x2\x211\x20E\x3"+ + "\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212\x214\x3\x2\x2\x2\x213\x215\x5\x104"+ + "\x83\x2\x214\x213\x3\x2\x2\x2\x214\x215\x3\x2\x2\x2\x215\x216\x3\x2\x2"+ + "\x2\x216\x218\a\xD0\x2\x2\x217\x219\x5\x104\x83\x2\x218\x217\x3\x2\x2"+ + "\x2\x218\x219\x3\x2\x2\x2\x219\x21A\x3\x2\x2\x2\x21A\x21B\x5\x92J\x2\x21B"+ + "#\x3\x2\x2\x2\x21C\x21D\x5\xECw\x2\x21D\x21E\x5\x104\x83\x2\x21E\x220"+ + "\x3\x2\x2\x2\x21F\x21C\x3\x2\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x221\x3"+ + "\x2\x2\x2\x221\x222\aG\x2\x2\x222\x225\x5\x104\x83\x2\x223\x224\a\xA3"+ + "\x2\x2\x224\x226\x5\x104\x83\x2\x225\x223\x3\x2\x2\x2\x225\x226\x3\x2"+ + "\x2\x2\x226\x22C\x3\x2\x2\x2\x227\x229\ar\x2\x2\x228\x22A\x5\xEAv\x2\x229"+ + "\x228\x3\x2\x2\x2\x229\x22A\x3\x2\x2\x2\x22A\x22D\x3\x2\x2\x2\x22B\x22D"+ + "\a\xBA\x2\x2\x22C\x227\x3\x2\x2\x2\x22C\x22B\x3\x2\x2\x2\x22D\x22E\x3"+ + "\x2\x2\x2\x22E\x22F\x5\x104\x83\x2\x22F\x231\x5\xD4k\x2\x230\x232\x5\xEA"+ + "v\x2\x231\x230\x3\x2\x2\x2\x231\x232\x3\x2\x2\x2\x232\x233\x3\x2\x2\x2"+ + "\x233\x234\x5\x104\x83\x2\x234\x235\a\x82\x2\x2\x235\x236\x5\x104\x83"+ + "\x2\x236\x23C\a\xE3\x2\x2\x237\x238\x5\x104\x83\x2\x238\x239\a\x35\x2"+ + "\x2\x239\x23A\x5\x104\x83\x2\x23A\x23B\a\xE3\x2\x2\x23B\x23D\x3\x2\x2"+ + "\x2\x23C\x237\x3\x2\x2\x2\x23C\x23D\x3\x2\x2\x2\x23D\x242\x3\x2\x2\x2"+ + "\x23E\x240\x5\x104\x83\x2\x23F\x23E\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2"+ + "\x240\x241\x3\x2\x2\x2\x241\x243\x5\xC8\x65\x2\x242\x23F\x3\x2\x2\x2\x242"+ + "\x243\x3\x2\x2\x2\x243\x247\x3\x2\x2\x2\x244\x245\x5\x104\x83\x2\x245"+ + "\x246\x5\xD6l\x2\x246\x248\x3\x2\x2\x2\x247\x244\x3\x2\x2\x2\x247\x248"+ + "\x3\x2\x2\x2\x248%\x3\x2\x2\x2\x249\x24A\t\x3\x2\x2\x24A\x24B\x5\x104"+ + "\x83\x2\x24B\x256\x5\xE0q\x2\x24C\x24E\x5\x104\x83\x2\x24D\x24C\x3\x2"+ + "\x2\x2\x24D\x24E\x3\x2\x2\x2\x24E\x24F\x3\x2\x2\x2\x24F\x251\a)\x2\x2"+ + "\x250\x252\x5\x104\x83\x2\x251\x250\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2"+ + "\x252\x253\x3\x2\x2\x2\x253\x255\x5\xE0q\x2\x254\x24D\x3\x2\x2\x2\x255"+ + "\x258\x3\x2\x2\x2\x256\x254\x3\x2\x2\x2\x256\x257\x3\x2\x2\x2\x257\'\x3"+ + "\x2\x2\x2\x258\x256\x3\x2\x2\x2\x259\x25A\aV\x2\x2\x25A\x25C\x5\xF4{\x2"+ + "\x25B\x25D\x5\x1A\xE\x2\x25C\x25B\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D"+ + "\x25E\x3\x2\x2\x2\x25E\x25F\a\x80\x2\x2\x25F\x277\x3\x2\x2\x2\x260\x261"+ + "\aV\x2\x2\x261\x262\x5\x104\x83\x2\x262\x263\t\x4\x2\x2\x263\x264\x5\x104"+ + "\x83\x2\x264\x265\x5\x92J\x2\x265\x267\x5\xF4{\x2\x266\x268\x5\x1A\xE"+ + "\x2\x267\x266\x3\x2\x2\x2\x267\x268\x3\x2\x2\x2\x268\x269\x3\x2\x2\x2"+ + "\x269\x26A\a\x80\x2\x2\x26A\x277\x3\x2\x2\x2\x26B\x26C\aV\x2\x2\x26C\x26E"+ + "\x5\xF4{\x2\x26D\x26F\x5\x1A\xE\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3"+ + "\x2\x2\x2\x26F\x270\x3\x2\x2\x2\x270\x271\a\x80\x2\x2\x271\x272\x5\x104"+ + "\x83\x2\x272\x273\t\x4\x2\x2\x273\x274\x5\x104\x83\x2\x274\x275\x5\x92"+ + "J\x2\x275\x277\x3\x2\x2\x2\x276\x259\x3\x2\x2\x2\x276\x260\x3\x2\x2\x2"+ + "\x276\x26B\x3\x2\x2\x2\x277)\x3\x2\x2\x2\x278\x279\x5\xECw\x2\x279\x27A"+ + "\x5\x104\x83\x2\x27A\x27C\x3\x2\x2\x2\x27B\x278\x3\x2\x2\x2\x27B\x27C"+ + "\x3\x2\x2\x2\x27C\x27D\x3\x2\x2\x2\x27D\x27E\a\x65\x2\x2\x27E\x27F\x5"+ + "\x104\x83\x2\x27F\x280\x5\xD4k\x2\x280\x284\x5\xF4{\x2\x281\x283\x5,\x17"+ + "\x2\x282\x281\x3\x2\x2\x2\x283\x286\x3\x2\x2\x2\x284\x282\x3\x2\x2\x2"+ + "\x284\x285\x3\x2\x2\x2\x285\x287\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x287"+ + "\x288\a\\\x2\x2\x288+\x3\x2\x2\x2\x289\x292\x5\xD4k\x2\x28A\x28C\x5\x104"+ + "\x83\x2\x28B\x28A\x3\x2\x2\x2\x28B\x28C\x3\x2\x2\x2\x28C\x28D\x3\x2\x2"+ + "\x2\x28D\x28F\a\xD0\x2\x2\x28E\x290\x5\x104\x83\x2\x28F\x28E\x3\x2\x2"+ + "\x2\x28F\x290\x3\x2\x2\x2\x290\x291\x3\x2\x2\x2\x291\x293\x5\x92J\x2\x292"+ + "\x28B\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x294\x3\x2\x2\x2\x294\x295"+ + "\x5\xF4{\x2\x295-\x3\x2\x2\x2\x296\x297\ag\x2\x2\x297\x298\x5\x104\x83"+ + "\x2\x298\x2A3\x5\x92J\x2\x299\x29B\x5\x104\x83\x2\x29A\x299\x3\x2\x2\x2"+ + "\x29A\x29B\x3\x2\x2\x2\x29B\x29C\x3\x2\x2\x2\x29C\x29E\a)\x2\x2\x29D\x29F"+ + "\x5\x104\x83\x2\x29E\x29D\x3\x2\x2\x2\x29E\x29F\x3\x2\x2\x2\x29F\x2A0"+ + "\x3\x2\x2\x2\x2A0\x2A2\x5\x92J\x2\x2A1\x29A\x3\x2\x2\x2\x2A2\x2A5\x3\x2"+ + "\x2\x2\x2A3\x2A1\x3\x2\x2\x2\x2A3\x2A4\x3\x2\x2\x2\x2A4/\x3\x2\x2\x2\x2A5"+ + "\x2A3\x3\x2\x2\x2\x2A6\x2A7\ah\x2\x2\x2A7\x2A8\x5\x104\x83\x2\x2A8\x2A9"+ + "\x5\x92J\x2\x2A9\x31\x3\x2\x2\x2\x2AA\x2AB\x5\xECw\x2\x2AB\x2AC\x5\x104"+ + "\x83\x2\x2AC\x2AE\x3\x2\x2\x2\x2AD\x2AA\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2"+ + "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x2B0\ai\x2\x2\x2B0\x2B1\x5\x104\x83\x2"+ + "\x2B1\x2B3\x5\xD4k\x2\x2B2\x2B4\x5\x104\x83\x2\x2B3\x2B2\x3\x2\x2\x2\x2B3"+ + "\x2B4\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2\x2\x2B5\x2B6\x5\xC8\x65\x2\x2B6\x33"+ + "\x3\x2\x2\x2\x2B7\x2B8\t\x5\x2\x2\x2B8\x35\x3\x2\x2\x2\x2B9\x2BA\aq\x2"+ + "\x2\x2BA\x2BB\x5\x104\x83\x2\x2BB\x2BC\aX\x2\x2\x2BC\x2BD\x5\x104\x83"+ + "\x2\x2BD\x2BE\x5\x92J\x2\x2BE\x2BF\x5\x104\x83\x2\x2BF\x2C0\az\x2\x2\x2C0"+ + "\x2C1\x5\x104\x83\x2\x2C1\x2C2\x5\x92J\x2\x2C2\x2C4\x5\xF4{\x2\x2C3\x2C5"+ + "\x5\x1A\xE\x2\x2C4\x2C3\x3\x2\x2\x2\x2C4\x2C5\x3\x2\x2\x2\x2C5\x2C6\x3"+ + "\x2\x2\x2\x2C6\x2CA\a\x8C\x2\x2\x2C7\x2C8\x5\x104\x83\x2\x2C8\x2C9\x5"+ + "\x92J\x2\x2C9\x2CB\x3\x2\x2\x2\x2CA\x2C7\x3\x2\x2\x2\x2CA\x2CB\x3\x2\x2"+ + "\x2\x2CB\x37\x3\x2\x2\x2\x2CC\x2CD\aq\x2\x2\x2CD\x2CE\x5\x104\x83\x2\x2CE"+ + "\x2D0\x5\x92J\x2\x2CF\x2D1\x5\x104\x83\x2\x2D0\x2CF\x3\x2\x2\x2\x2D0\x2D1"+ + "\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4\a\xD0\x2\x2\x2D3\x2D5\x5"+ + "\x104\x83\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x3"+ + "\x2\x2\x2\x2D6\x2D7\x5\x92J\x2\x2D7\x2D8\x5\x104\x83\x2\x2D8\x2D9\a\xBE"+ + "\x2\x2\x2D9\x2DA\x5\x104\x83\x2\x2DA\x2E0\x5\x92J\x2\x2DB\x2DC\x5\x104"+ + "\x83\x2\x2DC\x2DD\a\xB7\x2\x2\x2DD\x2DE\x5\x104\x83\x2\x2DE\x2DF\x5\x92"+ + "J\x2\x2DF\x2E1\x3\x2\x2\x2\x2E0\x2DB\x3\x2\x2\x2\x2E0\x2E1\x3\x2\x2\x2"+ + "\x2E1\x2E2\x3\x2\x2\x2\x2E2\x2E4\x5\xF4{\x2\x2E3\x2E5\x5\x1A\xE\x2\x2E4"+ + "\x2E3\x3\x2\x2\x2\x2E4\x2E5\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6\x2EA"+ + "\a\x8C\x2\x2\x2E7\x2E8\x5\x104\x83\x2\x2E8\x2E9\x5\x92J\x2\x2E9\x2EB\x3"+ + "\x2\x2\x2\x2EA\x2E7\x3\x2\x2\x2\x2EA\x2EB\x3\x2\x2\x2\x2EB\x39\x3\x2\x2"+ + "\x2\x2EC\x2ED\x5\xECw\x2\x2ED\x2EE\x5\x104\x83\x2\x2EE\x2F0\x3\x2\x2\x2"+ + "\x2EF\x2EC\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F3\x3\x2\x2\x2\x2F1"+ + "\x2F2\a\xB6\x2\x2\x2F2\x2F4\x5\x104\x83\x2\x2F3\x2F1\x3\x2\x2\x2\x2F3"+ + "\x2F4\x3\x2\x2\x2\x2F4\x2F5\x3\x2\x2\x2\x2F5\x2F7\ar\x2\x2\x2F6\x2F8\x5"+ + "\x104\x83\x2\x2F7\x2F6\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2\x2F8\x2F9\x3"+ + "\x2\x2\x2\x2F9\x2FB\x5\xD4k\x2\x2FA\x2FC\x5\xEAv\x2\x2FB\x2FA\x3\x2\x2"+ + "\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC\x301\x3\x2\x2\x2\x2FD\x2FF\x5\x104\x83"+ + "\x2\x2FE\x2FD\x3\x2\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\x3\x2\x2\x2"+ + "\x300\x302\x5\xC8\x65\x2\x301\x2FE\x3\x2\x2\x2\x301\x302\x3\x2\x2\x2\x302"+ + "\x307\x3\x2\x2\x2\x303\x305\x5\x104\x83\x2\x304\x303\x3\x2\x2\x2\x304"+ + "\x305\x3\x2\x2\x2\x305\x306\x3\x2\x2\x2\x306\x308\x5\xD6l\x2\x307\x304"+ + "\x3\x2\x2\x2\x307\x308\x3\x2\x2\x2\x308\x309\x3\x2\x2\x2\x309\x30B\x5"+ + "\xF4{\x2\x30A\x30C\x5\x1A\xE\x2\x30B\x30A\x3\x2\x2\x2\x30B\x30C\x3\x2"+ + "\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\a]\x2\x2\x30E;\x3\x2\x2\x2\x30F"+ + "\x310\as\x2\x2\x310\x311\x5\x104\x83\x2\x311\x313\x5\xA6T\x2\x312\x314"+ + "\x5\x104\x83\x2\x313\x312\x3\x2\x2\x2\x313\x314\x3\x2\x2\x2\x314\x315"+ + "\x3\x2\x2\x2\x315\x317\a)\x2\x2\x316\x318\x5\x104\x83\x2\x317\x316\x3"+ + "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31A\x3\x2\x2\x2\x319\x31B\x5\x92"+ + "J\x2\x31A\x319\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31D\x3\x2\x2\x2"+ + "\x31C\x31E\x5\x104\x83\x2\x31D\x31C\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2"+ + "\x31E\x31F\x3\x2\x2\x2\x31F\x321\a)\x2\x2\x320\x322\x5\x104\x83\x2\x321"+ + "\x320\x3\x2\x2\x2\x321\x322\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324"+ + "\x5\x92J\x2\x324=\x3\x2\x2\x2\x325\x326\au\x2\x2\x326\x327\x5\x104\x83"+ + "\x2\x327\x328\x5\x92J\x2\x328?\x3\x2\x2\x2\x329\x32A\av\x2\x2\x32A\x32B"+ + "\x5\x104\x83\x2\x32B\x32C\x5\x92J\x2\x32C\x41\x3\x2\x2\x2\x32D\x32E\a"+ + "w\x2\x2\x32E\x32F\x5\x104\x83\x2\x32F\x330\x5\x46$\x2\x330\x331\x5\x104"+ + "\x83\x2\x331\x332\a\xBD\x2\x2\x332\x333\x5\x104\x83\x2\x333\x339\x5\x1C"+ + "\xF\x2\x334\x335\x5\x104\x83\x2\x335\x336\aY\x2\x2\x336\x337\x5\x104\x83"+ + "\x2\x337\x338\x5\x1C\xF\x2\x338\x33A\x3\x2\x2\x2\x339\x334\x3\x2\x2\x2"+ + "\x339\x33A\x3\x2\x2\x2\x33A\x348\x3\x2\x2\x2\x33B\x33F\x5\x44#\x2\x33C"+ + "\x33E\x5H%\x2\x33D\x33C\x3\x2\x2\x2\x33E\x341\x3\x2\x2\x2\x33F\x33D\x3"+ + "\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x343\x3\x2\x2\x2\x341\x33F\x3\x2"+ + "\x2\x2\x342\x344\x5J&\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ + "\x345\x3\x2\x2\x2\x345\x346\a^\x2\x2\x346\x348\x3\x2\x2\x2\x347\x32D\x3"+ + "\x2\x2\x2\x347\x33B\x3\x2\x2\x2\x348\x43\x3\x2\x2\x2\x349\x34A\aw\x2\x2"+ + "\x34A\x34B\x5\x104\x83\x2\x34B\x34C\x5\x46$\x2\x34C\x34D\x5\x104\x83\x2"+ + "\x34D\x34E\a\xBD\x2\x2\x34E\x350\x5\xF4{\x2\x34F\x351\x5\x1A\xE\x2\x350"+ + "\x34F\x3\x2\x2\x2\x350\x351\x3\x2\x2\x2\x351\x45\x3\x2\x2\x2\x352\x353"+ + "\x5\x92J\x2\x353G\x3\x2\x2\x2\x354\x355\aZ\x2\x2\x355\x356\x5\x104\x83"+ + "\x2\x356\x357\x5\x46$\x2\x357\x358\x5\x104\x83\x2\x358\x359\a\xBD\x2\x2"+ + "\x359\x35B\x5\xF4{\x2\x35A\x35C\x5\x1A\xE\x2\x35B\x35A\x3\x2\x2\x2\x35B"+ + "\x35C\x3\x2\x2\x2\x35CI\x3\x2\x2\x2\x35D\x35E\aY\x2\x2\x35E\x360\x5\xF4"+ + "{\x2\x35F\x361\x5\x1A\xE\x2\x360\x35F\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ + "\x361K\x3\x2\x2\x2\x362\x363\ay\x2\x2\x363\x364\x5\x104\x83\x2\x364\x365"+ + "\x5\x92J\x2\x365M\x3\x2\x2\x2\x366\x367\a{\x2\x2\x367\x368\x5\x104\x83"+ + "\x2\x368\x371\x5\xA6T\x2\x369\x36B\x5\x104\x83\x2\x36A\x369\x3\x2\x2\x2"+ + "\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2\x2\x36C\x36E\a)\x2\x2\x36D\x36F"+ + "\x5\x104\x83\x2\x36E\x36D\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370"+ + "\x3\x2\x2\x2\x370\x372\x5\x92J\x2\x371\x36A\x3\x2\x2\x2\x372\x373\x3\x2"+ + "\x2\x2\x373\x371\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374O\x3\x2\x2\x2\x375"+ + "\x376\a\x81\x2\x2\x376\x378\x5\x104\x83\x2\x377\x375\x3\x2\x2\x2\x377"+ + "\x378\x3\x2\x2\x2\x378\x379\x3\x2\x2\x2\x379\x37B\x5\x92J\x2\x37A\x37C"+ + "\x5\x104\x83\x2\x37B\x37A\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37D"+ + "\x3\x2\x2\x2\x37D\x37F\a\xD0\x2\x2\x37E\x380\x5\x104\x83\x2\x37F\x37E"+ + "\x3\x2\x2\x2\x37F\x380\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381\x382\x5"+ + "\x92J\x2\x382Q\x3\x2\x2\x2\x383\x384\a\x84\x2\x2\x384\x385\x5\x104\x83"+ + "\x2\x385\x387\x5\xA6T\x2\x386\x388\x5\x104\x83\x2\x387\x386\x3\x2\x2\x2"+ + "\x387\x388\x3\x2\x2\x2\x388\x389\x3\x2\x2\x2\x389\x38B\a)\x2\x2\x38A\x38C"+ + "\x5\x104\x83\x2\x38B\x38A\x3\x2\x2\x2\x38B\x38C\x3\x2\x2\x2\x38C\x38D"+ + "\x3\x2\x2\x2\x38D\x38E\x5\x92J\x2\x38ES\x3\x2\x2\x2\x38F\x390\a~\x2\x2"+ + "\x390\x391\x5\x104\x83\x2\x391\x3A1\x5\x92J\x2\x392\x394\x5\x104\x83\x2"+ + "\x393\x392\x3\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x395\x3\x2\x2\x2\x395"+ + "\x397\a)\x2\x2\x396\x398\x5\x104\x83\x2\x397\x396\x3\x2\x2\x2\x397\x398"+ + "\x3\x2\x2\x2\x398\x399\x3\x2\x2\x2\x399\x39F\x5\x92J\x2\x39A\x39B\x5\x104"+ + "\x83\x2\x39B\x39C\a\xBE\x2\x2\x39C\x39D\x5\x104\x83\x2\x39D\x39E\x5\x92"+ + "J\x2\x39E\x3A0\x3\x2\x2\x2\x39F\x39A\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2"+ + "\x3A0\x3A2\x3\x2\x2\x2\x3A1\x393\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2"+ + "U\x3\x2\x2\x2\x3A3\x3A4\a\x88\x2\x2\x3A4\x3A5\x5\x104\x83\x2\x3A5\x3A7"+ + "\x5\x92J\x2\x3A6\x3A8\x5\x104\x83\x2\x3A7\x3A6\x3\x2\x2\x2\x3A7\x3A8\x3"+ + "\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AB\a\xD0\x2\x2\x3AA\x3AC\x5\x104"+ + "\x83\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC\x3AD\x3\x2\x2"+ + "\x2\x3AD\x3AE\x5\x92J\x2\x3AEW\x3\x2\x2\x2\x3AF\x3B1\a\x8A\x2\x2\x3B0"+ + "\x3B2\x5\x104\x83\x2\x3B1\x3B0\x3\x2\x2\x2\x3B1\x3B2\x3\x2\x2\x2\x3B2"+ + "\x3B3\x3\x2\x2\x2\x3B3\x3B5\a\xD4\x2\x2\x3B4\x3B6\x5\x104\x83\x2\x3B5"+ + "\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9"+ + "\x5\xC2\x62\x2\x3B8\x3BA\x5\x104\x83\x2\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA"+ + "\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB\x3BC\a\xDB\x2\x2\x3BCY\x3\x2\x2"+ + "\x2\x3BD\x3BE\t\x6\x2\x2\x3BE\x3C7\x5\x104\x83\x2\x3BF\x3C0\av\x2\x2\x3C0"+ + "\x3C1\x5\x104\x83\x2\x3C1\x3C2\x5\x92J\x2\x3C2\x3C8\x3\x2\x2\x2\x3C3\x3C4"+ + "\a\xAD\x2\x2\x3C4\x3C5\x5\x104\x83\x2\x3C5\x3C6\a\x8C\x2\x2\x3C6\x3C8"+ + "\x3\x2\x2\x2\x3C7\x3BF\x3\x2\x2\x2\x3C7\x3C3\x3\x2\x2\x2\x3C8[\x3\x2\x2"+ + "\x2\x3C9\x3CA\a\x91\x2\x2\x3CA\x3CB\x5\x104\x83\x2\x3CB\x3CC\x5\x92J\x2"+ + "\x3CC\x3CD\x5\x104\x83\x2\x3CD\x3CE\av\x2\x2\x3CE\x3CF\x5\x104\x83\x2"+ + "\x3CF\x3DA\x5\x92J\x2\x3D0\x3D2\x5\x104\x83\x2\x3D1\x3D0\x3\x2\x2\x2\x3D1"+ + "\x3D2\x3\x2\x2\x2\x3D2\x3D3\x3\x2\x2\x2\x3D3\x3D5\a)\x2\x2\x3D4\x3D6\x5"+ + "\x104\x83\x2\x3D5\x3D4\x3\x2\x2\x2\x3D5\x3D6\x3\x2\x2\x2\x3D6\x3D7\x3"+ + "\x2\x2\x2\x3D7\x3D9\x5\x92J\x2\x3D8\x3D1\x3\x2\x2\x2\x3D9\x3DC\x3\x2\x2"+ + "\x2\x3DA\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB]\x3\x2\x2\x2\x3DC"+ + "\x3DA\x3\x2\x2\x2\x3DD\x3DE\a\x91\x2\x2\x3DE\x3DF\x5\x104\x83\x2\x3DF"+ + "\x3E0\x5\x92J\x2\x3E0\x3E1\x5\x104\x83\x2\x3E1\x3E2\au\x2\x2\x3E2\x3E3"+ + "\x5\x104\x83\x2\x3E3\x3EE\x5\x92J\x2\x3E4\x3E6\x5\x104\x83\x2\x3E5\x3E4"+ + "\x3\x2\x2\x2\x3E5\x3E6\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E9\a)"+ + "\x2\x2\x3E8\x3EA\x5\x104\x83\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA\x3\x2"+ + "\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x3ED\x5\x92J\x2\x3EC\x3E5\x3\x2\x2\x2"+ + "\x3ED\x3F0\x3\x2\x2\x2\x3EE\x3EC\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2\x2\x3EF"+ + "_\x3\x2\x2\x2\x3F0\x3EE\x3\x2\x2\x2\x3F1\x3F2\a\x94\x2\x2\x3F2\x3F3\x5"+ + "\x104\x83\x2\x3F3\x3F4\x5\x92J\x2\x3F4\x3F5\x5\x104\x83\x2\x3F5\x3F6\a"+ + "q\x2\x2\x3F6\x3F7\x5\x104\x83\x2\x3F7\x3FD\t\a\x2\x2\x3F8\x3F9\x5\x104"+ + "\x83\x2\x3F9\x3FA\a\x33\x2\x2\x3FA\x3FB\x5\x104\x83\x2\x3FB\x3FC\t\b\x2"+ + "\x2\x3FC\x3FE\x3\x2\x2\x2\x3FD\x3F8\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2\x2"+ + "\x3FE\x402\x3\x2\x2\x2\x3FF\x400\x5\x104\x83\x2\x400\x401\t\t\x2\x2\x401"+ + "\x403\x3\x2\x2\x2\x402\x3FF\x3\x2\x2\x2\x402\x403\x3\x2\x2\x2\x403\x404"+ + "\x3\x2\x2\x2\x404\x405\x5\x104\x83\x2\x405\x406\a\x39\x2\x2\x406\x407"+ + "\x5\x104\x83\x2\x407\x413\x5\xA6T\x2\x408\x409\x5\x104\x83\x2\x409\x40B"+ + "\a\x1D\x2\x2\x40A\x40C\x5\x104\x83\x2\x40B\x40A\x3\x2\x2\x2\x40B\x40C"+ + "\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40F\a\xD0\x2\x2\x40E\x410\x5"+ + "\x104\x83\x2\x40F\x40E\x3\x2\x2\x2\x40F\x410\x3\x2\x2\x2\x410\x411\x3"+ + "\x2\x2\x2\x411\x412\x5\x92J\x2\x412\x414\x3\x2\x2\x2\x413\x408\x3\x2\x2"+ + "\x2\x413\x414\x3\x2\x2\x2\x414\x61\x3\x2\x2\x2\x415\x422\x5\x64\x33\x2"+ + "\x416\x418\x5\x104\x83\x2\x417\x416\x3\x2\x2\x2\x417\x418\x3\x2\x2\x2"+ + "\x418\x419\x3\x2\x2\x2\x419\x41B\t\n\x2\x2\x41A\x41C\x5\x104\x83\x2\x41B"+ + "\x41A\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\x3\x2\x2\x2\x41D\x41F"+ + "\x5\x64\x33\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x421\x3"+ + "\x2\x2\x2\x420\x417\x3\x2\x2\x2\x421\x424\x3\x2\x2\x2\x422\x420\x3\x2"+ + "\x2\x2\x422\x423\x3\x2\x2\x2\x423\x437\x3\x2\x2\x2\x424\x422\x3\x2\x2"+ + "\x2\x425\x427\x5\x64\x33\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2"+ + "\x427\x432\x3\x2\x2\x2\x428\x42A\x5\x104\x83\x2\x429\x428\x3\x2\x2\x2"+ + "\x429\x42A\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42D\t\n\x2\x2\x42C"+ + "\x42E\x5\x104\x83\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E"+ + "\x430\x3\x2\x2\x2\x42F\x431\x5\x64\x33\x2\x430\x42F\x3\x2\x2\x2\x430\x431"+ + "\x3\x2\x2\x2\x431\x433\x3\x2\x2\x2\x432\x429\x3\x2\x2\x2\x433\x434\x3"+ + "\x2\x2\x2\x434\x432\x3\x2\x2\x2\x434\x435\x3\x2\x2\x2\x435\x437\x3\x2"+ + "\x2\x2\x436\x415\x3\x2\x2\x2\x436\x426\x3\x2\x2\x2\x437\x63\x3\x2\x2\x2"+ + "\x438\x44A\x5\x92J\x2\x439\x447\t\v\x2\x2\x43A\x43C\x5\x104\x83\x2\x43B"+ + "\x43A\x3\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x43D\x3\x2\x2\x2\x43D\x43F"+ + "\a\xD4\x2\x2\x43E\x440\x5\x104\x83\x2\x43F\x43E\x3\x2\x2\x2\x43F\x440"+ + "\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441\x443\x5\xC2\x62\x2\x442\x444\x5"+ + "\x104\x83\x2\x443\x442\x3\x2\x2\x2\x443\x444\x3\x2\x2\x2\x444\x445\x3"+ + "\x2\x2\x2\x445\x446\a\xDB\x2\x2\x446\x448\x3\x2\x2\x2\x447\x43B\x3\x2"+ + "\x2\x2\x447\x448\x3\x2\x2\x2\x448\x44A\x3\x2\x2\x2\x449\x438\x3\x2\x2"+ + "\x2\x449\x439\x3\x2\x2\x2\x44A\x65\x3\x2\x2\x2\x44B\x44C\a\x9E\x2\x2\x44C"+ + "\x44D\x5\x104\x83\x2\x44D\x44F\x5\xA6T\x2\x44E\x450\x5\x104\x83\x2\x44F"+ + "\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3\x2\x2\x2\x451\x456"+ + "\a)\x2\x2\x452\x454\x5\x104\x83\x2\x453\x452\x3\x2\x2\x2\x453\x454\x3"+ + "\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455\x457\x5\x62\x32\x2\x456\x453\x3\x2"+ + "\x2\x2\x456\x457\x3\x2\x2\x2\x457g\x3\x2\x2\x2\x458\x459\x5\xECw\x2\x459"+ + "\x45A\x5\x104\x83\x2\x45A\x45C\x3\x2\x2\x2\x45B\x458\x3\x2\x2\x2\x45B"+ + "\x45C\x3\x2\x2\x2\x45C\x45F\x3\x2\x2\x2\x45D\x45E\a\xB6\x2\x2\x45E\x460"+ + "\x5\x104\x83\x2\x45F\x45D\x3\x2\x2\x2\x45F\x460\x3\x2\x2\x2\x460\x461"+ + "\x3\x2\x2\x2\x461\x462\a\xA0\x2\x2\x462\x463\x5\x104\x83\x2\x463\x465"+ + "\x5\xD4k\x2\x464\x466\x5\xEAv\x2\x465\x464\x3\x2\x2\x2\x465\x466\x3\x2"+ + "\x2\x2\x466\x46B\x3\x2\x2\x2\x467\x469\x5\x104\x83\x2\x468\x467\x3\x2"+ + "\x2\x2\x468\x469\x3\x2\x2\x2\x469\x46A\x3\x2\x2\x2\x46A\x46C\x5\xC8\x65"+ + "\x2\x46B\x468\x3\x2\x2\x2\x46B\x46C\x3\x2\x2\x2\x46C\x470\x3\x2\x2\x2"+ + "\x46D\x46E\x5\x104\x83\x2\x46E\x46F\x5\xD6l\x2\x46F\x471\x3\x2\x2\x2\x470"+ + "\x46D\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x472\x3\x2\x2\x2\x472\x474"+ + "\x5\xF4{\x2\x473\x475\x5\x1A\xE\x2\x474\x473\x3\x2\x2\x2\x474\x475\x3"+ + "\x2\x2\x2\x475\x476\x3\x2\x2\x2\x476\x477\a_\x2\x2\x477i\x3\x2\x2\x2\x478"+ + "\x479\x5\xECw\x2\x479\x47A\x5\x104\x83\x2\x47A\x47C\x3\x2\x2\x2\x47B\x478"+ + "\x3\x2\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C\x47F\x3\x2\x2\x2\x47D\x47E\a\xB6"+ + "\x2\x2\x47E\x480\x5\x104\x83\x2\x47F\x47D\x3\x2\x2\x2\x47F\x480\x3\x2"+ + "\x2\x2\x480\x481\x3\x2\x2\x2\x481\x482\a\xA2\x2\x2\x482\x483\x5\x104\x83"+ + "\x2\x483\x488\x5\xD4k\x2\x484\x486\x5\x104\x83\x2\x485\x484\x3\x2\x2\x2"+ + "\x485\x486\x3\x2\x2\x2\x486\x487\x3\x2\x2\x2\x487\x489\x5\xC8\x65\x2\x488"+ + "\x485\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A\x48C"+ + "\x5\xF4{\x2\x48B\x48D\x5\x1A\xE\x2\x48C\x48B\x3\x2\x2\x2\x48C\x48D\x3"+ + "\x2\x2\x2\x48D\x48E\x3\x2\x2\x2\x48E\x48F\a_\x2\x2\x48Fk\x3\x2\x2\x2\x490"+ + "\x491\x5\xECw\x2\x491\x492\x5\x104\x83\x2\x492\x494\x3\x2\x2\x2\x493\x490"+ + "\x3\x2\x2\x2\x493\x494\x3\x2\x2\x2\x494\x497\x3\x2\x2\x2\x495\x496\a\xB6"+ + "\x2\x2\x496\x498\x5\x104\x83\x2\x497\x495\x3\x2\x2\x2\x497\x498\x3\x2"+ + "\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\a\xA1\x2\x2\x49A\x49B\x5\x104\x83"+ + "\x2\x49B\x4A0\x5\xD4k\x2\x49C\x49E\x5\x104\x83\x2\x49D\x49C\x3\x2\x2\x2"+ + "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\x3\x2\x2\x2\x49F\x4A1\x5\xC8\x65\x2\x4A0"+ + "\x49D\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A2\x3\x2\x2\x2\x4A2\x4A4"+ + "\x5\xF4{\x2\x4A3\x4A5\x5\x1A\xE\x2\x4A4\x4A3\x3\x2\x2\x2\x4A4\x4A5\x3"+ + "\x2\x2\x2\x4A5\x4A6\x3\x2\x2\x2\x4A6\x4A7\a_\x2\x2\x4A7m\x3\x2\x2\x2\x4A8"+ + "\x4A9\a\xA5\x2\x2\x4A9\x4AA\x5\x104\x83\x2\x4AA\x4AC\x5\xA6T\x2\x4AB\x4AD"+ + "\x5\x104\x83\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4AE"+ + "\x3\x2\x2\x2\x4AE\x4B0\a)\x2\x2\x4AF\x4B1\x5\x104\x83\x2\x4B0\x4AF\x3"+ + "\x2\x2\x2\x4B0\x4B1\x3\x2\x2\x2\x4B1\x4B3\x3\x2\x2\x2\x4B2\x4B4\x5\x92"+ + "J\x2\x4B3\x4B2\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B6\x3\x2\x2\x2"+ + "\x4B5\x4B7\x5\x104\x83\x2\x4B6\x4B5\x3\x2\x2\x2\x4B6\x4B7\x3\x2\x2\x2"+ + "\x4B7\x4B8\x3\x2\x2\x2\x4B8\x4BA\a)\x2\x2\x4B9\x4BB\x5\x104\x83\x2\x4BA"+ + "\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BD"+ + "\x5\x92J\x2\x4BDo\x3\x2\x2\x2\x4BE\x4BF\a\xA7\x2\x2\x4BF\x4C0\x5\x104"+ + "\x83\x2\x4C0\x4CF\x5\xD4k\x2\x4C1\x4C3\x5\x104\x83\x2\x4C2\x4C1\x3\x2"+ + "\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x4C6\a\xD4\x2"+ + "\x2\x4C5\x4C7\x5\x104\x83\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2"+ + "\x2\x4C7\x4CC\x3\x2\x2\x2\x4C8\x4CA\x5\xC2\x62\x2\x4C9\x4CB\x5\x104\x83"+ + "\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2"+ + "\x4CC\x4C8\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE"+ + "\x4D0\a\xDB\x2\x2\x4CF\x4C2\x3\x2\x2\x2\x4CF\x4D0\x3\x2\x2\x2\x4D0q\x3"+ + "\x2\x2\x2\x4D1\x4D2\a\xAA\x2\x2\x4D2\x4D5\x5\x104\x83\x2\x4D3\x4D4\a\x9D"+ + "\x2\x2\x4D4\x4D6\x5\x104\x83\x2\x4D5\x4D3\x3\x2\x2\x2\x4D5\x4D6\x3\x2"+ + "\x2\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4E2\x5t;\x2\x4D8\x4DA\x5\x104\x83\x2"+ + "\x4D9\x4D8\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB"+ + "\x4DD\a)\x2\x2\x4DC\x4DE\x5\x104\x83\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE"+ + "\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1\x5t;\x2\x4E0\x4D9\x3\x2\x2"+ + "\x2\x4E1\x4E4\x3\x2\x2\x2\x4E2\x4E0\x3\x2\x2\x2\x4E2\x4E3\x3\x2\x2\x2"+ + "\x4E3s\x3\x2\x2\x2\x4E4\x4E2\x3\x2\x2\x2\x4E5\x4E7\x5\xB2Z\x2\x4E6\x4E8"+ + "\x5\x104\x83\x2\x4E7\x4E6\x3\x2\x2\x2\x4E7\x4E8\x3\x2\x2\x2\x4E8\x4E9"+ + "\x3\x2\x2\x2\x4E9\x4EB\a\xD4\x2\x2\x4EA\x4EC\x5\x104\x83\x2\x4EB\x4EA"+ + "\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED\x4EF\x5"+ + "\xCEh\x2\x4EE\x4F0\x5\x104\x83\x2\x4EF\x4EE\x3\x2\x2\x2\x4EF\x4F0\x3\x2"+ + "\x2\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F5\a\xDB\x2\x2\x4F2\x4F3\x5\x104\x83"+ + "\x2\x4F3\x4F4\x5\xD6l\x2\x4F4\x4F6\x3\x2\x2\x2\x4F5\x4F2\x3\x2\x2\x2\x4F5"+ + "\x4F6\x3\x2\x2\x2\x4F6u\x3\x2\x2\x2\x4F7\x4F8\a\xAC\x2\x2\x4F8w\x3\x2"+ + "\x2\x2\x4F9\x4FF\a\xAD\x2\x2\x4FA\x4FD\x5\x104\x83\x2\x4FB\x4FE\a\x8C"+ + "\x2\x2\x4FC\x4FE\x5\x92J\x2\x4FD\x4FB\x3\x2\x2\x2\x4FD\x4FC\x3\x2\x2\x2"+ + "\x4FE\x500\x3\x2\x2\x2\x4FF\x4FA\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500"+ + "y\x3\x2\x2\x2\x501\x502\a\xAE\x2\x2\x502{\x3\x2\x2\x2\x503\x504\a\xAF"+ + "\x2\x2\x504\x505\x5\x104\x83\x2\x505\x507\x5\x92J\x2\x506\x508\x5\x104"+ + "\x83\x2\x507\x506\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ + "\x2\x509\x50B\a\xD0\x2\x2\x50A\x50C\x5\x104\x83\x2\x50B\x50A\x3\x2\x2"+ + "\x2\x50B\x50C\x3\x2\x2\x2\x50C\x50D\x3\x2\x2\x2\x50D\x50E\x5\x92J\x2\x50E"+ + "}\x3\x2\x2\x2\x50F\x510\a\xB0\x2\x2\x510\x511\x5\x104\x83\x2\x511\x513"+ + "\x5\xA6T\x2\x512\x514\x5\x104\x83\x2\x513\x512\x3\x2\x2\x2\x513\x514\x3"+ + "\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x517\a)\x2\x2\x516\x518\x5\x104\x83"+ + "\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2\x2"+ + "\x519\x51A\x5\x92J\x2\x51A\x7F\x3\x2\x2\x2\x51B\x51C\a\xB1\x2\x2\x51C"+ + "\x51D\x5\x104\x83\x2\x51D\x51E\a\x41\x2\x2\x51E\x51F\x5\x104\x83\x2\x51F"+ + "\x520\x5\x92J\x2\x520\x524\x5\xF4{\x2\x521\x523\x5\x84\x43\x2\x522\x521"+ + "\x3\x2\x2\x2\x523\x526\x3\x2\x2\x2\x524\x522\x3\x2\x2\x2\x524\x525\x3"+ + "\x2\x2\x2\x525\x527\x3\x2\x2\x2\x526\x524\x3\x2\x2\x2\x527\x528\a`\x2"+ + "\x2\x528\x81\x3\x2\x2\x2\x529\x52B\a|\x2\x2\x52A\x52C\x5\x104\x83\x2\x52B"+ + "\x52A\x3\x2\x2\x2\x52B\x52C\x3\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D\x52F"+ + "\x5\xDAn\x2\x52E\x530\x5\x104\x83\x2\x52F\x52E\x3\x2\x2\x2\x52F\x530\x3"+ + "\x2\x2\x2\x530\x531\x3\x2\x2\x2\x531\x532\x5\x92J\x2\x532\x53B\x3\x2\x2"+ + "\x2\x533\x534\x5\x92J\x2\x534\x535\x5\x104\x83\x2\x535\x536\a\xBE\x2\x2"+ + "\x536\x537\x5\x104\x83\x2\x537\x538\x5\x92J\x2\x538\x53B\x3\x2\x2\x2\x539"+ + "\x53B\x5\x92J\x2\x53A\x529\x3\x2\x2\x2\x53A\x533\x3\x2\x2\x2\x53A\x539"+ + "\x3\x2\x2\x2\x53B\x83\x3\x2\x2\x2\x53C\x53D\a\x41\x2\x2\x53D\x53E\x5\x104"+ + "\x83\x2\x53E\x53F\x5\x86\x44\x2\x53F\x541\x5\xF4{\x2\x540\x542\x5\x1A"+ + "\xE\x2\x541\x540\x3\x2\x2\x2\x541\x542\x3\x2\x2\x2\x542\x85\x3\x2\x2\x2"+ + "\x543\x553\aY\x2\x2\x544\x54F\x5\x82\x42\x2\x545\x547\x5\x104\x83\x2\x546"+ + "\x545\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2\x2\x548\x54A"+ + "\a)\x2\x2\x549\x54B\x5\x104\x83\x2\x54A\x549\x3\x2\x2\x2\x54A\x54B\x3"+ + "\x2\x2\x2\x54B\x54C\x3\x2\x2\x2\x54C\x54E\x5\x82\x42\x2\x54D\x546\x3\x2"+ + "\x2\x2\x54E\x551\x3\x2\x2\x2\x54F\x54D\x3\x2\x2\x2\x54F\x550\x3\x2\x2"+ + "\x2\x550\x553\x3\x2\x2\x2\x551\x54F\x3\x2\x2\x2\x552\x543\x3\x2\x2\x2"+ + "\x552\x544\x3\x2\x2\x2\x553\x87\x3\x2\x2\x2\x554\x555\a\xB2\x2\x2\x555"+ + "\x556\x5\x104\x83\x2\x556\x558\x5\x92J\x2\x557\x559\x5\x104\x83\x2\x558"+ + "\x557\x3\x2\x2\x2\x558\x559\x3\x2\x2\x2\x559\x55A\x3\x2\x2\x2\x55A\x55C"+ + "\a\xD0\x2\x2\x55B\x55D\x5\x104\x83\x2\x55C\x55B\x3\x2\x2\x2\x55C\x55D"+ + "\x3\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x55F\x5\x92J\x2\x55F\x89\x3\x2"+ + "\x2\x2\x560\x561\x5\xECw\x2\x561\x562\x5\x104\x83\x2\x562\x564\x3\x2\x2"+ + "\x2\x563\x560\x3\x2\x2\x2\x563\x564\x3\x2\x2\x2\x564\x567\x3\x2\x2\x2"+ + "\x565\x566\a\xB6\x2\x2\x566\x568\x5\x104\x83\x2\x567\x565\x3\x2\x2\x2"+ + "\x567\x568\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569\x56B\a\xBA\x2\x2\x56A"+ + "\x56C\x5\x104\x83\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C\x3\x2\x2\x2\x56C"+ + "\x56D\x3\x2\x2\x2\x56D\x572\x5\xD4k\x2\x56E\x570\x5\x104\x83\x2\x56F\x56E"+ + "\x3\x2\x2\x2\x56F\x570\x3\x2\x2\x2\x570\x571\x3\x2\x2\x2\x571\x573\x5"+ + "\xC8\x65\x2\x572\x56F\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x574\x3\x2"+ + "\x2\x2\x574\x576\x5\xF4{\x2\x575\x577\x5\x1A\xE\x2\x576\x575\x3\x2\x2"+ + "\x2\x576\x577\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\a\x61\x2\x2"+ + "\x579\x8B\x3\x2\x2\x2\x57A\x57B\x5\xECw\x2\x57B\x57C\x5\x104\x83\x2\x57C"+ + "\x57E\x3\x2\x2\x2\x57D\x57A\x3\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x57F"+ + "\x3\x2\x2\x2\x57F\x580\a\xC0\x2\x2\x580\x581\x5\x104\x83\x2\x581\x582"+ + "\x5\xD4k\x2\x582\x586\x5\xF4{\x2\x583\x585\x5\x8EH\x2\x584\x583\x3\x2"+ + "\x2\x2\x585\x588\x3\x2\x2\x2\x586\x584\x3\x2\x2\x2\x586\x587\x3\x2\x2"+ + "\x2\x587\x589\x3\x2\x2\x2\x588\x586\x3\x2\x2\x2\x589\x58A\a\x62\x2\x2"+ + "\x58A\x8D\x3\x2\x2\x2\x58B\x59A\x5\xD4k\x2\x58C\x58E\x5\x104\x83\x2\x58D"+ + "\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F\x594"+ + "\a\xD4\x2\x2\x590\x592\x5\x104\x83\x2\x591\x590\x3\x2\x2\x2\x591\x592"+ + "\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x595\x5\xCEh\x2\x594\x591\x3\x2"+ + "\x2\x2\x594\x595\x3\x2\x2\x2\x595\x597\x3\x2\x2\x2\x596\x598\x5\x104\x83"+ + "\x2\x597\x596\x3\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598\x599\x3\x2\x2\x2"+ + "\x599\x59B\a\xDB\x2\x2\x59A\x58D\x3\x2\x2\x2\x59A\x59B\x3\x2\x2\x2\x59B"+ + "\x59F\x3\x2\x2\x2\x59C\x59D\x5\x104\x83\x2\x59D\x59E\x5\xD6l\x2\x59E\x5A0"+ + "\x3\x2\x2\x2\x59F\x59C\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3"+ + "\x2\x2\x2\x5A1\x5A2\x5\xF4{\x2\x5A2\x8F\x3\x2\x2\x2\x5A3\x5A4\a\xC2\x2"+ + "\x2\x5A4\x5A5\x5\x104\x83\x2\x5A5\x5B5\x5\xA6T\x2\x5A6\x5A8\x5\x104\x83"+ + "\x2\x5A7\x5A6\x3\x2\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8\x5A9\x3\x2\x2\x2"+ + "\x5A9\x5AB\a)\x2\x2\x5AA\x5AC\x5\x104\x83\x2\x5AB\x5AA\x3\x2\x2\x2\x5AB"+ + "\x5AC\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x5B3\x5\x92J\x2\x5AE\x5AF"+ + "\x5\x104\x83\x2\x5AF\x5B0\a\xBE\x2\x2\x5B0\x5B1\x5\x104\x83\x2\x5B1\x5B2"+ + "\x5\x92J\x2\x5B2\x5B4\x3\x2\x2\x2\x5B3\x5AE\x3\x2\x2\x2\x5B3\x5B4\x3\x2"+ + "\x2\x2\x5B4\x5B6\x3\x2\x2\x2\x5B5\x5A7\x3\x2\x2\x2\x5B5\x5B6\x3\x2\x2"+ + "\x2\x5B6\x91\x3\x2\x2\x2\x5B7\x5B8\bJ\x1\x2\x5B8\x5BA\a\x8D\x2\x2\x5B9"+ + "\x5BB\x5\x104\x83\x2\x5BA\x5B9\x3\x2\x2\x2\x5BA\x5BB\x3\x2\x2\x2\x5BB"+ + "\x5BC\x3\x2\x2\x2\x5BC\x5E5\x5\x92J\x15\x5BD\x5BF\a\x34\x2\x2\x5BE\x5C0"+ + "\x5\x104\x83\x2\x5BF\x5BE\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1"+ + "\x3\x2\x2\x2\x5C1\x5E5\x5\x92J\x12\x5C2\x5C4\x5\xB2Z\x2\x5C3\x5C5\x5\x104"+ + "\x83\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5\x5C6\x3\x2\x2"+ + "\x2\x5C6\x5C8\a\xCD\x2\x2\x5C7\x5C9\x5\x104\x83\x2\x5C8\x5C7\x3\x2\x2"+ + "\x2\x5C8\x5C9\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2\x2\x5CA\x5CB\x5\x92J\x11"+ + "\x5CB\x5E5\x3\x2\x2\x2\x5CC\x5CE\a\xD6\x2\x2\x5CD\x5CF\x5\x104\x83\x2"+ + "\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0"+ + "\x5E5\x5\x92J\xF\x5D1\x5D3\a\x8E\x2\x2\x5D2\x5D4\x5\x104\x83\x2\x5D3\x5D2"+ + "\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D5\x3\x2\x2\x2\x5D5\x5E5\x5"+ + "\x92J\b\x5D6\x5E5\x5\xE4s\x2\x5D7\x5E5\x5\xB2Z\x2\x5D8\x5DA\a\xD4\x2\x2"+ + "\x5D9\x5DB\x5\x104\x83\x2\x5DA\x5D9\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2"+ + "\x5DB\x5DC\x3\x2\x2\x2\x5DC\x5DE\x5\x92J\x2\x5DD\x5DF\x5\x104\x83\x2\x5DE"+ + "\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1"+ + "\a\xDB\x2\x2\x5E1\x5E5\x3\x2\x2\x2\x5E2\x5E5\x5\x94K\x2\x5E3\x5E5\x5X"+ + "-\x2\x5E4\x5B7\x3\x2\x2\x2\x5E4\x5BD\x3\x2\x2\x2\x5E4\x5C2\x3\x2\x2\x2"+ + "\x5E4\x5CC\x3\x2\x2\x2\x5E4\x5D1\x3\x2\x2\x2\x5E4\x5D6\x3\x2\x2\x2\x5E4"+ + "\x5D7\x3\x2\x2\x2\x5E4\x5D8\x3\x2\x2\x2\x5E4\x5E2\x3\x2\x2\x2\x5E4\x5E3"+ + "\x3\x2\x2\x2\x5E5\x654\x3\x2\x2\x2\x5E6\x5E8\f\x10\x2\x2\x5E7\x5E9\x5"+ + "\x104\x83\x2\x5E8\x5E7\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3"+ + "\x2\x2\x2\x5EA\x5EC\a\xDA\x2\x2\x5EB\x5ED\x5\x104\x83\x2\x5EC\x5EB\x3"+ + "\x2\x2\x2\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x653\x5\x92"+ + "J\x11\x5EF\x5F1\f\xE\x2\x2\x5F0\x5F2\x5\x104\x83\x2\x5F1\x5F0\x3\x2\x2"+ + "\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F5\t\f\x2\x2\x5F4"+ + "\x5F6\x5\x104\x83\x2\x5F5\x5F4\x3\x2\x2\x2\x5F5\x5F6\x3\x2\x2\x2\x5F6"+ + "\x5F7\x3\x2\x2\x2\x5F7\x653\x5\x92J\xF\x5F8\x5FA\f\r\x2\x2\x5F9\x5FB\x5"+ + "\x104\x83\x2\x5FA\x5F9\x3\x2\x2\x2\x5FA\x5FB\x3\x2\x2\x2\x5FB\x5FC\x3"+ + "\x2\x2\x2\x5FC\x5FE\a\xCF\x2\x2\x5FD\x5FF\x5\x104\x83\x2\x5FE\x5FD\x3"+ + "\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x3\x2\x2\x2\x600\x653\x5\x92"+ + "J\xE\x601\x603\f\f\x2\x2\x602\x604\x5\x104\x83\x2\x603\x602\x3\x2\x2\x2"+ + "\x603\x604\x3\x2\x2\x2\x604\x605\x3\x2\x2\x2\x605\x607\a\x8B\x2\x2\x606"+ + "\x608\x5\x104\x83\x2\x607\x606\x3\x2\x2\x2\x607\x608\x3\x2\x2\x2\x608"+ + "\x609\x3\x2\x2\x2\x609\x653\x5\x92J\r\x60A\x60C\f\v\x2\x2\x60B\x60D\x5"+ + "\x104\x83\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3"+ + "\x2\x2\x2\x60E\x610\t\r\x2\x2\x60F\x611\x5\x104\x83\x2\x610\x60F\x3\x2"+ + "\x2\x2\x610\x611\x3\x2\x2\x2\x611\x612\x3\x2\x2\x2\x612\x653\x5\x92J\f"+ + "\x613\x615\f\n\x2\x2\x614\x616\x5\x104\x83\x2\x615\x614\x3\x2\x2\x2\x615"+ + "\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2\x617\x619\a\x32\x2\x2\x618\x61A"+ + "\x5\x104\x83\x2\x619\x618\x3\x2\x2\x2\x619\x61A\x3\x2\x2\x2\x61A\x61B"+ + "\x3\x2\x2\x2\x61B\x653\x5\x92J\v\x61C\x61E\f\t\x2\x2\x61D\x61F\x5\x104"+ + "\x83\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F\x3\x2\x2\x2\x61F\x620\x3\x2\x2"+ + "\x2\x620\x622\t\xE\x2\x2\x621\x623\x5\x104\x83\x2\x622\x621\x3\x2\x2\x2"+ + "\x622\x623\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x653\x5\x92J\n\x625"+ + "\x627\f\a\x2\x2\x626\x628\x5\x104\x83\x2\x627\x626\x3\x2\x2\x2\x627\x628"+ + "\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B\a\x36\x2\x2\x62A\x62C\x5"+ + "\x104\x83\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\x3"+ + "\x2\x2\x2\x62D\x653\x5\x92J\b\x62E\x630\f\x6\x2\x2\x62F\x631\x5\x104\x83"+ + "\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631\x632\x3\x2\x2\x2"+ + "\x632\x634\a\x9A\x2\x2\x633\x635\x5\x104\x83\x2\x634\x633\x3\x2\x2\x2"+ + "\x634\x635\x3\x2\x2\x2\x635\x636\x3\x2\x2\x2\x636\x653\x5\x92J\a\x637"+ + "\x639\f\x5\x2\x2\x638\x63A\x5\x104\x83\x2\x639\x638\x3\x2\x2\x2\x639\x63A"+ + "\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a\xCC\x2\x2\x63C\x63E\x5"+ + "\x104\x83\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\x63F\x3"+ + "\x2\x2\x2\x63F\x653\x5\x92J\x6\x640\x642\f\x4\x2\x2\x641\x643\x5\x104"+ + "\x83\x2\x642\x641\x3\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\x644\x3\x2\x2"+ + "\x2\x644\x646\a\x66\x2\x2\x645\x647\x5\x104\x83\x2\x646\x645\x3\x2\x2"+ + "\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x653\x5\x92J\x5\x649"+ + "\x64B\f\x3\x2\x2\x64A\x64C\x5\x104\x83\x2\x64B\x64A\x3\x2\x2\x2\x64B\x64C"+ + "\x3\x2\x2\x2\x64C\x64D\x3\x2\x2\x2\x64D\x64F\ax\x2\x2\x64E\x650\x5\x104"+ + "\x83\x2\x64F\x64E\x3\x2\x2\x2\x64F\x650\x3\x2\x2\x2\x650\x651\x3\x2\x2"+ + "\x2\x651\x653\x5\x92J\x4\x652\x5E6\x3\x2\x2\x2\x652\x5EF\x3\x2\x2\x2\x652"+ + "\x5F8\x3\x2\x2\x2\x652\x601\x3\x2\x2\x2\x652\x60A\x3\x2\x2\x2\x652\x613"+ + "\x3\x2\x2\x2\x652\x61C\x3\x2\x2\x2\x652\x625\x3\x2\x2\x2\x652\x62E\x3"+ + "\x2\x2\x2\x652\x637\x3\x2\x2\x2\x652\x640\x3\x2\x2\x2\x652\x649\x3\x2"+ + "\x2\x2\x653\x656\x3\x2\x2\x2\x654\x652\x3\x2\x2\x2\x654\x655\x3\x2\x2"+ + "\x2\x655\x93\x3\x2\x2\x2\x656\x654\x3\x2\x2\x2\x657\x658\a\xC1\x2\x2\x658"+ + "\x659\x5\x104\x83\x2\x659\x65F\x5\x92J\x2\x65A\x65B\x5\x104\x83\x2\x65B"+ + "\x65C\a|\x2\x2\x65C\x65D\x5\x104\x83\x2\x65D\x65E\x5\xE8u\x2\x65E\x660"+ + "\x3\x2\x2\x2\x65F\x65A\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x95\x3\x2"+ + "\x2\x2\x661\x665\aU\x2\x2\x662\x665\a\xB6\x2\x2\x663\x665\x5\xECw\x2\x664"+ + "\x661\x3\x2\x2\x2\x664\x662\x3\x2\x2\x2\x664\x663\x3\x2\x2\x2\x665\x666"+ + "\x3\x2\x2\x2\x666\x669\x5\x104\x83\x2\x667\x668\a\xCA\x2\x2\x668\x66A"+ + "\x5\x104\x83\x2\x669\x667\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A\x66B"+ + "\x3\x2\x2\x2\x66B\x66C\x5\x98M\x2\x66C\x97\x3\x2\x2\x2\x66D\x678\x5\x9A"+ + "N\x2\x66E\x670\x5\x104\x83\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2"+ + "\x2\x670\x671\x3\x2\x2\x2\x671\x673\a)\x2\x2\x672\x674\x5\x104\x83\x2"+ + "\x673\x672\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675\x3\x2\x2\x2\x675"+ + "\x677\x5\x9AN\x2\x676\x66F\x3\x2\x2\x2\x677\x67A\x3\x2\x2\x2\x678\x676"+ + "\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x99\x3\x2\x2\x2\x67A\x678\x3\x2"+ + "\x2\x2\x67B\x68D\x5\xD4k\x2\x67C\x67E\x5\x104\x83\x2\x67D\x67C\x3\x2\x2"+ + "\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x3\x2\x2\x2\x67F\x681\a\xD4\x2\x2"+ + "\x680\x682\x5\x104\x83\x2\x681\x680\x3\x2\x2\x2\x681\x682\x3\x2\x2\x2"+ + "\x682\x687\x3\x2\x2\x2\x683\x685\x5\xCEh\x2\x684\x686\x5\x104\x83\x2\x685"+ + "\x684\x3\x2\x2\x2\x685\x686\x3\x2\x2\x2\x686\x688\x3\x2\x2\x2\x687\x683"+ + "\x3\x2\x2\x2\x687\x688\x3\x2\x2\x2\x688\x689\x3\x2\x2\x2\x689\x68B\a\xDB"+ + "\x2\x2\x68A\x68C\x5\x104\x83\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2"+ + "\x2\x2\x68C\x68E\x3\x2\x2\x2\x68D\x67D\x3\x2\x2\x2\x68D\x68E\x3\x2\x2"+ + "\x2\x68E\x690\x3\x2\x2\x2\x68F\x691\x5\xEAv\x2\x690\x68F\x3\x2\x2\x2\x690"+ + "\x691\x3\x2\x2\x2\x691\x695\x3\x2\x2\x2\x692\x693\x5\x104\x83\x2\x693"+ + "\x694\x5\xD6l\x2\x694\x696\x3\x2\x2\x2\x695\x692\x3\x2\x2\x2\x695\x696"+ + "\x3\x2\x2\x2\x696\x9B\x3\x2\x2\x2\x697\x698\a\xC7\x2\x2\x698\x699\x5\x104"+ + "\x83\x2\x699\x69A\x5\x92J\x2\x69A\x69C\x5\xF4{\x2\x69B\x69D\x5\x1A\xE"+ + "\x2\x69C\x69B\x3\x2\x2\x2\x69C\x69D\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2"+ + "\x69E\x69F\a\xC6\x2\x2\x69F\x9D\x3\x2\x2\x2\x6A0\x6A1\a\xC8\x2\x2\x6A1"+ + "\x6A2\x5\x104\x83\x2\x6A2\x6A4\x5\xA6T\x2\x6A3\x6A5\x5\x104\x83\x2\x6A4"+ + "\x6A3\x3\x2\x2\x2\x6A4\x6A5\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A8"+ + "\a)\x2\x2\x6A7\x6A9\x5\x104\x83\x2\x6A8\x6A7\x3\x2\x2\x2\x6A8\x6A9\x3"+ + "\x2\x2\x2\x6A9\x6AA\x3\x2\x2\x2\x6AA\x6AB\x5\x92J\x2\x6AB\x9F\x3\x2\x2"+ + "\x2\x6AC\x6AD\a\xC9\x2\x2\x6AD\x6AE\x5\x104\x83\x2\x6AE\x6AF\x5\xA2R\x2"+ + "\x6AF\x6B1\x5\xF4{\x2\x6B0\x6B2\x5\x1A\xE\x2\x6B1\x6B0\x3\x2\x2\x2\x6B1"+ + "\x6B2\x3\x2\x2\x2\x6B2\x6B3\x3\x2\x2\x2\x6B3\x6B4\a\x63\x2\x2\x6B4\xA1"+ + "\x3\x2\x2\x2\x6B5\x6B6\x5\x92J\x2\x6B6\xA3\x3\x2\x2\x2\x6B7\x6B8\a\xCB"+ + "\x2\x2\x6B8\x6B9\x5\x104\x83\x2\x6B9\x6BB\x5\xA6T\x2\x6BA\x6BC\x5\x104"+ + "\x83\x2\x6BB\x6BA\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2"+ + "\x2\x6BD\x6C2\a)\x2\x2\x6BE\x6C0\x5\x104\x83\x2\x6BF\x6BE\x3\x2\x2\x2"+ + "\x6BF\x6C0\x3\x2\x2\x2\x6C0\x6C1\x3\x2\x2\x2\x6C1\x6C3\x5\x62\x32\x2\x6C2"+ + "\x6BF\x3\x2\x2\x2\x6C2\x6C3\x3\x2\x2\x2\x6C3\xA5\x3\x2\x2\x2\x6C4\x6C6"+ + "\a.\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6C7\x3\x2"+ + "\x2\x2\x6C7\x6C8\x5\x92J\x2\x6C8\xA7\x3\x2\x2\x2\x6C9\x6CA\a@\x2\x2\x6CA"+ + "\x6CB\x5\x104\x83\x2\x6CB\x6CC\x5\xAAV\x2\x6CC\xA9\x3\x2\x2\x2\x6CD\x6CF"+ + "\x5\xB2Z\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2"+ + "\x2\x2\x6D0\x6D1\a-\x2\x2\x6D1\x6D3\x5\xD4k\x2\x6D2\x6D4\x5\xEAv\x2\x6D3"+ + "\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6E2\x3\x2\x2\x2\x6D5\x6D7"+ + "\x5\x104\x83\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6\x6D7\x3\x2\x2\x2\x6D7\x6D8"+ + "\x3\x2\x2\x2\x6D8\x6DA\a\xD4\x2\x2\x6D9\x6DB\x5\x104\x83\x2\x6DA\x6D9"+ + "\x3\x2\x2\x2\x6DA\x6DB\x3\x2\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DE\x5"+ + "\xC2\x62\x2\x6DD\x6DF\x5\x104\x83\x2\x6DE\x6DD\x3\x2\x2\x2\x6DE\x6DF\x3"+ + "\x2\x2\x2\x6DF\x6E0\x3\x2\x2\x2\x6E0\x6E1\a\xDB\x2\x2\x6E1\x6E3\x3\x2"+ + "\x2\x2\x6E2\x6D6\x3\x2\x2\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6ED\x3\x2\x2"+ + "\x2\x6E4\x6E6\x5\x104\x83\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2"+ + "\x2\x6E6\x6E7\x3\x2\x2\x2\x6E7\x6E8\a\xD4\x2\x2\x6E8\x6E9\x5\xCEh\x2\x6E9"+ + "\x6EA\a\xDB\x2\x2\x6EA\x6EC\x3\x2\x2\x2\x6EB\x6E5\x3\x2\x2\x2\x6EC\x6EF"+ + "\x3\x2\x2\x2\x6ED\x6EB\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x710\x3"+ + "\x2\x2\x2\x6EF\x6ED\x3\x2\x2\x2\x6F0\x6F2\x5\xD4k\x2\x6F1\x6F3\x5\xEA"+ + "v\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x701\x3\x2\x2\x2"+ + "\x6F4\x6F6\x5\x104\x83\x2\x6F5\x6F4\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2"+ + "\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F9\a\xD4\x2\x2\x6F8\x6FA\x5\x104\x83\x2"+ + "\x6F9\x6F8\x3\x2\x2\x2\x6F9\x6FA\x3\x2\x2\x2\x6FA\x6FB\x3\x2\x2\x2\x6FB"+ + "\x6FD\x5\xC2\x62\x2\x6FC\x6FE\x5\x104\x83\x2\x6FD\x6FC\x3\x2\x2\x2\x6FD"+ + "\x6FE\x3\x2\x2\x2\x6FE\x6FF\x3\x2\x2\x2\x6FF\x700\a\xDB\x2\x2\x700\x702"+ + "\x3\x2\x2\x2\x701\x6F5\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x70C\x3"+ + "\x2\x2\x2\x703\x705\x5\x104\x83\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3"+ + "\x2\x2\x2\x705\x706\x3\x2\x2\x2\x706\x707\a\xD4\x2\x2\x707\x708\x5\xCE"+ + "h\x2\x708\x709\a\xDB\x2\x2\x709\x70B\x3\x2\x2\x2\x70A\x704\x3\x2\x2\x2"+ + "\x70B\x70E\x3\x2\x2\x2\x70C\x70A\x3\x2\x2\x2\x70C\x70D\x3\x2\x2\x2\x70D"+ + "\x710\x3\x2\x2\x2\x70E\x70C\x3\x2\x2\x2\x70F\x6CE\x3\x2\x2\x2\x70F\x6F0"+ + "\x3\x2\x2\x2\x710\xAB\x3\x2\x2\x2\x711\x714\x5\xAEX\x2\x712\x714\x5\xB0"+ + "Y\x2\x713\x711\x3\x2\x2\x2\x713\x712\x3\x2\x2\x2\x714\xAD\x3\x2\x2\x2"+ + "\x715\x717\x5\xB2Z\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717"+ + "\x719\x3\x2\x2\x2\x718\x71A\x5\x104\x83\x2\x719\x718\x3\x2\x2\x2\x719"+ + "\x71A\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2\x71B\x71D\a-\x2\x2\x71C\x71E\x5"+ + "\x104\x83\x2\x71D\x71C\x3\x2\x2\x2\x71D\x71E\x3\x2\x2\x2\x71E\x71F\x3"+ + "\x2\x2\x2\x71F\x721\x5\xD2j\x2\x720\x722\x5\xEAv\x2\x721\x720\x3\x2\x2"+ + "\x2\x721\x722\x3\x2\x2\x2\x722\x726\x3\x2\x2\x2\x723\x724\x5\x104\x83"+ + "\x2\x724\x725\x5\xC2\x62\x2\x725\x727\x3\x2\x2\x2\x726\x723\x3\x2\x2\x2"+ + "\x726\x727\x3\x2\x2\x2\x727\x72C\x3\x2\x2\x2\x728\x72A\x5\x104\x83\x2"+ + "\x729\x728\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72B\x3\x2\x2\x2\x72B"+ + "\x72D\x5\xC6\x64\x2\x72C\x729\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x737"+ + "\x3\x2\x2\x2\x72E\x730\x5\x104\x83\x2\x72F\x72E\x3\x2\x2\x2\x72F\x730"+ + "\x3\x2\x2\x2\x730\x731\x3\x2\x2\x2\x731\x732\a\xD4\x2\x2\x732\x733\x5"+ + "\xCEh\x2\x733\x734\a\xDB\x2\x2\x734\x736\x3\x2\x2\x2\x735\x72F\x3\x2\x2"+ + "\x2\x736\x739\x3\x2\x2\x2\x737\x735\x3\x2\x2\x2\x737\x738\x3\x2\x2\x2"+ + "\x738\xAF\x3\x2\x2\x2\x739\x737\x3\x2\x2\x2\x73A\x73E\x5\xD4k\x2\x73B"+ + "\x73C\x5\x104\x83\x2\x73C\x73D\x5\xC2\x62\x2\x73D\x73F\x3\x2\x2\x2\x73E"+ + "\x73B\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F\x749\x3\x2\x2\x2\x740\x742"+ + "\x5\x104\x83\x2\x741\x740\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x743"+ + "\x3\x2\x2\x2\x743\x744\a\xD4\x2\x2\x744\x745\x5\xCEh\x2\x745\x746\a\xDB"+ + "\x2\x2\x746\x748\x3\x2\x2\x2\x747\x741\x3\x2\x2\x2\x748\x74B\x3\x2\x2"+ + "\x2\x749\x747\x3\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A\xB1\x3\x2\x2\x2\x74B"+ + "\x749\x3\x2\x2\x2\x74C\x751\x5\xBC_\x2\x74D\x751\x5\xB4[\x2\x74E\x751"+ + "\x5\xB6\\\x2\x74F\x751\x5\xC0\x61\x2\x750\x74C\x3\x2\x2\x2\x750\x74D\x3"+ + "\x2\x2\x2\x750\x74E\x3\x2\x2\x2\x750\x74F\x3\x2\x2\x2\x751\xB3\x3\x2\x2"+ + "\x2\x752\x754\x5\xD4k\x2\x753\x755\x5\xEAv\x2\x754\x753\x3\x2\x2\x2\x754"+ + "\x755\x3\x2\x2\x2\x755\x75A\x3\x2\x2\x2\x756\x758\x5\x104\x83\x2\x757"+ + "\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2\x758\x759\x3\x2\x2\x2\x759\x75B"+ + "\x5\xC6\x64\x2\x75A\x757\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x765\x3"+ + "\x2\x2\x2\x75C\x75E\x5\x104\x83\x2\x75D\x75C\x3\x2\x2\x2\x75D\x75E\x3"+ + "\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\x760\a\xD4\x2\x2\x760\x761\x5\xCE"+ + "h\x2\x761\x762\a\xDB\x2\x2\x762\x764\x3\x2\x2\x2\x763\x75D\x3\x2\x2\x2"+ + "\x764\x767\x3\x2\x2\x2\x765\x763\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766"+ + "\xB5\x3\x2\x2\x2\x767\x765\x3\x2\x2\x2\x768\x76B\x5\xD4k\x2\x769\x76B"+ + "\x5\xD8m\x2\x76A\x768\x3\x2\x2\x2\x76A\x769\x3\x2\x2\x2\x76B\x76D\x3\x2"+ + "\x2\x2\x76C\x76E\x5\xEAv\x2\x76D\x76C\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2"+ + "\x76E\x770\x3\x2\x2\x2\x76F\x771\x5\x104\x83\x2\x770\x76F\x3\x2\x2\x2"+ + "\x770\x771\x3\x2\x2\x2\x771\x772\x3\x2\x2\x2\x772\x774\a\xD4\x2\x2\x773"+ + "\x775\x5\x104\x83\x2\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775"+ + "\x77A\x3\x2\x2\x2\x776\x778\x5\xC2\x62\x2\x777\x779\x5\x104\x83\x2\x778"+ + "\x777\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x77B\x3\x2\x2\x2\x77A\x776"+ + "\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x781\a\xDB"+ + "\x2\x2\x77D\x77F\x5\x104\x83\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2"+ + "\x2\x2\x77F\x780\x3\x2\x2\x2\x780\x782\x5\xC6\x64\x2\x781\x77E\x3\x2\x2"+ + "\x2\x781\x782\x3\x2\x2\x2\x782\x78C\x3\x2\x2\x2\x783\x785\x5\x104\x83"+ + "\x2\x784\x783\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x786\x3\x2\x2\x2"+ + "\x786\x787\a\xD4\x2\x2\x787\x788\x5\xCEh\x2\x788\x789\a\xDB\x2\x2\x789"+ + "\x78B\x3\x2\x2\x2\x78A\x784\x3\x2\x2\x2\x78B\x78E\x3\x2\x2\x2\x78C\x78A"+ + "\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\xB7\x3\x2\x2\x2\x78E\x78C\x3\x2"+ + "\x2\x2\x78F\x791\x5\xD2j\x2\x790\x792\x5\xEAv\x2\x791\x790\x3\x2\x2\x2"+ + "\x791\x792\x3\x2\x2\x2\x792\x797\x3\x2\x2\x2\x793\x795\x5\x104\x83\x2"+ + "\x794\x793\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796"+ + "\x798\x5\xC6\x64\x2\x797\x794\x3\x2\x2\x2\x797\x798\x3\x2\x2\x2\x798\x7A2"+ + "\x3\x2\x2\x2\x799\x79B\x5\x104\x83\x2\x79A\x799\x3\x2\x2\x2\x79A\x79B"+ + "\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79D\a\xD4\x2\x2\x79D\x79E\x5"+ + "\xCEh\x2\x79E\x79F\a\xDB\x2\x2\x79F\x7A1\x3\x2\x2\x2\x7A0\x79A\x3\x2\x2"+ + "\x2\x7A1\x7A4\x3\x2\x2\x2\x7A2\x7A0\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2"+ + "\x7A3\xB9\x3\x2\x2\x2\x7A4\x7A2\x3\x2\x2\x2\x7A5\x7A8\x5\xD2j\x2\x7A6"+ + "\x7A8\x5\xD8m\x2\x7A7\x7A5\x3\x2\x2\x2\x7A7\x7A6\x3\x2\x2\x2\x7A8\x7AA"+ + "\x3\x2\x2\x2\x7A9\x7AB\x5\xEAv\x2\x7AA\x7A9\x3\x2\x2\x2\x7AA\x7AB\x3\x2"+ + "\x2\x2\x7AB\x7AD\x3\x2\x2\x2\x7AC\x7AE\x5\x104\x83\x2\x7AD\x7AC\x3\x2"+ + "\x2\x2\x7AD\x7AE\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B1\a\xD4\x2"+ + "\x2\x7B0\x7B2\x5\x104\x83\x2\x7B1\x7B0\x3\x2\x2\x2\x7B1\x7B2\x3\x2\x2"+ + "\x2\x7B2\x7B7\x3\x2\x2\x2\x7B3\x7B5\x5\xC2\x62\x2\x7B4\x7B6\x5\x104\x83"+ + "\x2\x7B5\x7B4\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2\x2\x7B6\x7B8\x3\x2\x2\x2"+ + "\x7B7\x7B3\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9"+ + "\x7BE\a\xDB\x2\x2\x7BA\x7BC\x5\x104\x83\x2\x7BB\x7BA\x3\x2\x2\x2\x7BB"+ + "\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BF\x5\xC6\x64\x2\x7BE\x7BB"+ + "\x3\x2\x2\x2\x7BE\x7BF\x3\x2\x2\x2\x7BF\x7C9\x3\x2\x2\x2\x7C0\x7C2\x5"+ + "\x104\x83\x2\x7C1\x7C0\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C3\x3"+ + "\x2\x2\x2\x7C3\x7C4\a\xD4\x2\x2\x7C4\x7C5\x5\xCEh\x2\x7C5\x7C6\a\xDB\x2"+ + "\x2\x7C6\x7C8\x3\x2\x2\x2\x7C7\x7C1\x3\x2\x2\x2\x7C8\x7CB\x3\x2\x2\x2"+ + "\x7C9\x7C7\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\xBB\x3\x2\x2\x2\x7CB"+ + "\x7C9\x3\x2\x2\x2\x7CC\x7CF\x5\xB4[\x2\x7CD\x7CF\x5\xB6\\\x2\x7CE\x7CC"+ + "\x3\x2\x2\x2\x7CE\x7CD\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D4\x3"+ + "\x2\x2\x2\x7D0\x7D2\x5\xBE`\x2\x7D1\x7D3\x5\x104\x83\x2\x7D2\x7D1\x3\x2"+ + "\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D5\x3\x2\x2\x2\x7D4\x7D0\x3\x2\x2"+ + "\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D4\x3\x2\x2\x2\x7D6\x7D7\x3\x2\x2\x2"+ + "\x7D7\x7DC\x3\x2\x2\x2\x7D8\x7DA\x5\x104\x83\x2\x7D9\x7D8\x3\x2\x2\x2"+ + "\x7D9\x7DA\x3\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x5\xC6\x64\x2\x7DC"+ + "\x7D9\x3\x2\x2\x2\x7DC\x7DD\x3\x2\x2\x2\x7DD\x7E7\x3\x2\x2\x2\x7DE\x7E0"+ + "\x5\x104\x83\x2\x7DF\x7DE\x3\x2\x2\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E1"+ + "\x3\x2\x2\x2\x7E1\x7E2\a\xD4\x2\x2\x7E2\x7E3\x5\xCEh\x2\x7E3\x7E4\a\xDB"+ + "\x2\x2\x7E4\x7E6\x3\x2\x2\x2\x7E5\x7DF\x3\x2\x2\x2\x7E6\x7E9\x3\x2\x2"+ + "\x2\x7E7\x7E5\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\xBD\x3\x2\x2\x2\x7E9"+ + "\x7E7\x3\x2\x2\x2\x7EA\x7EC\t\xF\x2\x2\x7EB\x7ED\x5\x104\x83\x2\x7EC\x7EB"+ + "\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED\x7F0\x3\x2\x2\x2\x7EE\x7F1\x5"+ + "\xB8]\x2\x7EF\x7F1\x5\xBA^\x2\x7F0\x7EE\x3\x2\x2\x2\x7F0\x7EF\x3\x2\x2"+ + "\x2\x7F1\xBF\x3\x2\x2\x2\x7F2\x7F4\x5\x104\x83\x2\x7F3\x7F2\x3\x2\x2\x2"+ + "\x7F3\x7F4\x3\x2\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\x5\xC6\x64\x2\x7F6"+ + "\xC1\x3\x2\x2\x2\x7F7\x7F9\x5\xC4\x63\x2\x7F8\x7F7\x3\x2\x2\x2\x7F8\x7F9"+ + "\x3\x2\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7FC\x5\x104\x83\x2\x7FB\x7FA"+ + "\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\x7FF\t\n"+ + "\x2\x2\x7FE\x800\x5\x104\x83\x2\x7FF\x7FE\x3\x2\x2\x2\x7FF\x800\x3\x2"+ + "\x2\x2\x800\x802\x3\x2\x2\x2\x801\x7F8\x3\x2\x2\x2\x802\x805\x3\x2\x2"+ + "\x2\x803\x801\x3\x2\x2\x2\x803\x804\x3\x2\x2\x2\x804\x806\x3\x2\x2\x2"+ + "\x805\x803\x3\x2\x2\x2\x806\x813\x5\xC4\x63\x2\x807\x809\x5\x104\x83\x2"+ + "\x808\x807\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80A\x3\x2\x2\x2\x80A"+ + "\x80C\t\n\x2\x2\x80B\x80D\x5\x104\x83\x2\x80C\x80B\x3\x2\x2\x2\x80C\x80D"+ + "\x3\x2\x2\x2\x80D\x80F\x3\x2\x2\x2\x80E\x810\x5\xC4\x63\x2\x80F\x80E\x3"+ + "\x2\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x812\x3\x2\x2\x2\x811\x808\x3\x2"+ + "\x2\x2\x812\x815\x3\x2\x2\x2\x813\x811\x3\x2\x2\x2\x813\x814\x3\x2\x2"+ + "\x2\x814\xC3\x3\x2\x2\x2\x815\x813\x3\x2\x2\x2\x816\x818\a\xD4\x2\x2\x817"+ + "\x816\x3\x2\x2\x2\x817\x818\x3\x2\x2\x2\x818\x81B\x3\x2\x2\x2\x819\x81A"+ + "\t\x10\x2\x2\x81A\x81C\x5\x104\x83\x2\x81B\x819\x3\x2\x2\x2\x81B\x81C"+ + "\x3\x2\x2\x2\x81C\x81E\x3\x2\x2\x2\x81D\x81F\a\xDB\x2\x2\x81E\x81D\x3"+ + "\x2\x2\x2\x81E\x81F\x3\x2\x2\x2\x81F\x820\x3\x2\x2\x2\x820\x821\x5\x92"+ + "J\x2\x821\xC5\x3\x2\x2\x2\x822\x824\a,\x2\x2\x823\x825\x5\x104\x83\x2"+ + "\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2\x2\x2\x825\x826\x3\x2\x2\x2\x826"+ + "\x828\x5\xD2j\x2\x827\x829\x5\xEAv\x2\x828\x827\x3\x2\x2\x2\x828\x829"+ + "\x3\x2\x2\x2\x829\xC7\x3\x2\x2\x2\x82A\x83C\a\xD4\x2\x2\x82B\x82D\x5\x104"+ + "\x83\x2\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3\x2\x2\x2\x82D\x82E\x3\x2\x2"+ + "\x2\x82E\x839\x5\xCA\x66\x2\x82F\x831\x5\x104\x83\x2\x830\x82F\x3\x2\x2"+ + "\x2\x830\x831\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x834\a)\x2\x2\x833"+ + "\x835\x5\x104\x83\x2\x834\x833\x3\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835"+ + "\x836\x3\x2\x2\x2\x836\x838\x5\xCA\x66\x2\x837\x830\x3\x2\x2\x2\x838\x83B"+ + "\x3\x2\x2\x2\x839\x837\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83D\x3"+ + "\x2\x2\x2\x83B\x839\x3\x2\x2\x2\x83C\x82C\x3\x2\x2\x2\x83C\x83D\x3\x2"+ + "\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x840\x5\x104\x83\x2\x83F\x83E\x3\x2"+ + "\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2\x841\x842\a\xDB\x2"+ + "\x2\x842\xC9\x3\x2\x2\x2\x843\x844\a\x95\x2\x2\x844\x846\x5\x104\x83\x2"+ + "\x845\x843\x3\x2\x2\x2\x845\x846\x3\x2\x2\x2\x846\x849\x3\x2\x2\x2\x847"+ + "\x848\t\x11\x2\x2\x848\x84A\x5\x104\x83\x2\x849\x847\x3\x2\x2\x2\x849"+ + "\x84A\x3\x2\x2\x2\x84A\x84D\x3\x2\x2\x2\x84B\x84C\a\x9C\x2\x2\x84C\x84E"+ + "\x5\x104\x83\x2\x84D\x84B\x3\x2\x2\x2\x84D\x84E\x3\x2\x2\x2\x84E\x84F"+ + "\x3\x2\x2\x2\x84F\x851\x5\xD2j\x2\x850\x852\x5\xEAv\x2\x851\x850\x3\x2"+ + "\x2\x2\x851\x852\x3\x2\x2\x2\x852\x85B\x3\x2\x2\x2\x853\x855\x5\x104\x83"+ + "\x2\x854\x853\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2\x855\x856\x3\x2\x2\x2"+ + "\x856\x858\a\xD4\x2\x2\x857\x859\x5\x104\x83\x2\x858\x857\x3\x2\x2\x2"+ + "\x858\x859\x3\x2\x2\x2\x859\x85A\x3\x2\x2\x2\x85A\x85C\a\xDB\x2\x2\x85B"+ + "\x854\x3\x2\x2\x2\x85B\x85C\x3\x2\x2\x2\x85C\x861\x3\x2\x2\x2\x85D\x85F"+ + "\x5\x104\x83\x2\x85E\x85D\x3\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\x860"+ + "\x3\x2\x2\x2\x860\x862\x5\xD6l\x2\x861\x85E\x3\x2\x2\x2\x861\x862\x3\x2"+ + "\x2\x2\x862\x867\x3\x2\x2\x2\x863\x865\x5\x104\x83\x2\x864\x863\x3\x2"+ + "\x2\x2\x864\x865\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x868\x5\xCCg\x2"+ + "\x867\x864\x3\x2\x2\x2\x867\x868\x3\x2\x2\x2\x868\xCB\x3\x2\x2\x2\x869"+ + "\x86B\a\xD0\x2\x2\x86A\x86C\x5\x104\x83\x2\x86B\x86A\x3\x2\x2\x2\x86B"+ + "\x86C\x3\x2\x2\x2\x86C\x86D\x3\x2\x2\x2\x86D\x86E\x5\x92J\x2\x86E\xCD"+ + "\x3\x2\x2\x2\x86F\x87A\x5\xD0i\x2\x870\x872\x5\x104\x83\x2\x871\x870\x3"+ + "\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x875\a)\x2"+ + "\x2\x874\x876\x5\x104\x83\x2\x875\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2"+ + "\x2\x876\x877\x3\x2\x2\x2\x877\x879\x5\xD0i\x2\x878\x871\x3\x2\x2\x2\x879"+ + "\x87C\x3\x2\x2\x2\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\xCF"+ + "\x3\x2\x2\x2\x87C\x87A\x3\x2\x2\x2\x87D\x87E\x5\x92J\x2\x87E\x87F\x5\x104"+ + "\x83\x2\x87F\x880\a\xBE\x2\x2\x880\x881\x5\x104\x83\x2\x881\x883\x3\x2"+ + "\x2\x2\x882\x87D\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ + "\x2\x884\x885\x5\x92J\x2\x885\xD1\x3\x2\x2\x2\x886\x889\x5\xD4k\x2\x887"+ + "\x889\x5\xF0y\x2\x888\x886\x3\x2\x2\x2\x888\x887\x3\x2\x2\x2\x889\xD3"+ + "\x3\x2\x2\x2\x88A\x88D\a\xEF\x2\x2\x88B\x88D\x5\xEEx\x2\x88C\x88A\x3\x2"+ + "\x2\x2\x88C\x88B\x3\x2\x2\x2\x88D\xD5\x3\x2\x2\x2\x88E\x890\a\x39\x2\x2"+ + "\x88F\x891\x5\x104\x83\x2\x890\x88F\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2"+ + "\x891\x894\x3\x2\x2\x2\x892\x893\a\x8D\x2\x2\x893\x895\x5\x104\x83\x2"+ + "\x894\x892\x3\x2\x2\x2\x894\x895\x3\x2\x2\x2\x895\x896\x3\x2\x2\x2\x896"+ + "\x89B\x5\xE8u\x2\x897\x899\x5\x104\x83\x2\x898\x897\x3\x2\x2\x2\x898\x899"+ + "\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89C\x5\xDEp\x2\x89B\x898\x3\x2"+ + "\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\xD7\x3\x2\x2\x2\x89D\x89E\t\x12\x2\x2"+ + "\x89E\xD9\x3\x2\x2\x2\x89F\x8A0\t\xE\x2\x2\x8A0\xDB\x3\x2\x2\x2\x8A1\x8A6"+ + "\x5\xD4k\x2\x8A2\x8A3\t\xF\x2\x2\x8A3\x8A5\x5\xD4k\x2\x8A4\x8A2\x3\x2"+ + "\x2\x2\x8A5\x8A8\x3\x2\x2\x2\x8A6\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ + "\x2\x8A7\xDD\x3\x2\x2\x2\x8A8\x8A6\x3\x2\x2\x2\x8A9\x8AB\a\xD7\x2\x2\x8AA"+ + "\x8AC\x5\x104\x83\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ + "\x8AF\x3\x2\x2\x2\x8AD\x8B0\x5\xE6t\x2\x8AE\x8B0\x5\xD4k\x2\x8AF\x8AD"+ + "\x3\x2\x2\x2\x8AF\x8AE\x3\x2\x2\x2\x8B0\xDF\x3\x2\x2\x2\x8B1\x8BA\x5\xD4"+ + "k\x2\x8B2\x8B4\x5\x104\x83\x2\x8B3\x8B2\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2"+ + "\x2\x8B4\x8B5\x3\x2\x2\x2\x8B5\x8B7\a\xD6\x2\x2\x8B6\x8B8\x5\x104\x83"+ + "\x2\x8B7\x8B6\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2"+ + "\x8B9\x8BB\x5\xD4k\x2\x8BA\x8B3\x3\x2\x2\x2\x8BA\x8BB\x3\x2\x2\x2\x8BB"+ + "\xE1\x3\x2\x2\x2\x8BC\x8BF\x5\xD4k\x2\x8BD\x8BF\x5\xE6t\x2\x8BE\x8BC\x3"+ + "\x2\x2\x2\x8BE\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C1\a*\x2"+ + "\x2\x8C1\xE3\x3\x2\x2\x2\x8C2\x8CB\x5\xE6t\x2\x8C3\x8CB\a\xE8\x2\x2\x8C4"+ + "\x8CB\a\xE3\x2\x2\x8C5\x8CB\a\xBF\x2\x2\x8C6\x8CB\ao\x2\x2\x8C7\x8CB\a"+ + "\x8F\x2\x2\x8C8\x8CB\a\x90\x2\x2\x8C9\x8CB\a[\x2\x2\x8CA\x8C2\x3\x2\x2"+ + "\x2\x8CA\x8C3\x3\x2\x2\x2\x8CA\x8C4\x3\x2\x2\x2\x8CA\x8C5\x3\x2\x2\x2"+ + "\x8CA\x8C6\x3\x2\x2\x2\x8CA\x8C7\x3\x2\x2\x2\x8CA\x8C8\x3\x2\x2\x2\x8CA"+ + "\x8C9\x3\x2\x2\x2\x8CB\xE5\x3\x2\x2\x2\x8CC\x8CD\t\x13\x2\x2\x8CD\xE7"+ + "\x3\x2\x2\x2\x8CE\x8D1\x5\xD8m\x2\x8CF\x8D1\x5\xDCo\x2\x8D0\x8CE\x3\x2"+ + "\x2\x2\x8D0\x8CF\x3\x2\x2\x2\x8D1\x8DA\x3\x2\x2\x2\x8D2\x8D4\x5\x104\x83"+ + "\x2\x8D3\x8D2\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4\x8D5\x3\x2\x2\x2"+ + "\x8D5\x8D7\a\xD4\x2\x2\x8D6\x8D8\x5\x104\x83\x2\x8D7\x8D6\x3\x2\x2\x2"+ + "\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DB\a\xDB\x2\x2\x8DA"+ + "\x8D3\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\xE9\x3\x2\x2\x2\x8DC\x8DD"+ + "\t\x14\x2\x2\x8DD\xEB\x3\x2\x2\x2\x8DE\x8DF\t\x15\x2\x2\x8DF\xED\x3\x2"+ + "\x2\x2\x8E0\x8E1\t\x16\x2\x2\x8E1\xEF\x3\x2\x2\x2\x8E2\x8E3\t\x17\x2\x2"+ + "\x8E3\xF1\x3\x2\x2\x2\x8E4\x8E6\x5\x104\x83\x2\x8E5\x8E4\x3\x2\x2\x2\x8E5"+ + "\x8E6\x3\x2\x2\x2\x8E6\x8EE\x3\x2\x2\x2\x8E7\x8E9\a\xE9\x2\x2\x8E8\x8E7"+ + "\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8E8\x3\x2\x2\x2\x8EA\x8EB\x3"+ + "\x2\x2\x2\x8EB\x8EF\x3\x2\x2\x2\x8EC\x8EF\x5\xF8}\x2\x8ED\x8EF\x5\xF6"+ + "|\x2\x8EE\x8E8\x3\x2\x2\x2\x8EE\x8EC\x3\x2\x2\x2\x8EE\x8ED\x3\x2\x2\x2"+ + "\x8EF\x8F1\x3\x2\x2\x2\x8F0\x8F2\x5\x104\x83\x2\x8F1\x8F0\x3\x2\x2\x2"+ + "\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F8\x3\x2\x2\x2\x8F3\x8F5\x5\x104\x83\x2"+ + "\x8F4\x8F3\x3\x2\x2\x2\x8F4\x8F5\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6"+ + "\x8F8\x5\xFA~\x2\x8F7\x8E5\x3\x2\x2\x2\x8F7\x8F4\x3\x2\x2\x2\x8F8\xF3"+ + "\x3\x2\x2\x2\x8F9\x902\x5\xF2z\x2\x8FA\x8FC\x5\x104\x83\x2\x8FB\x8FA\x3"+ + "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x8FD\x3\x2\x2\x2\x8FD\x8FF\a*\x2"+ + "\x2\x8FE\x900\x5\x104\x83\x2\x8FF\x8FE\x3\x2\x2\x2\x8FF\x900\x3\x2\x2"+ + "\x2\x900\x902\x3\x2\x2\x2\x901\x8F9\x3\x2\x2\x2\x901\x8FB\x3\x2\x2\x2"+ + "\x902\x905\x3\x2\x2\x2\x903\x901\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904"+ + "\xF5\x3\x2\x2\x2\x905\x903\x3\x2\x2\x2\x906\x907\a\xEA\x2\x2\x907\xF7"+ + "\x3\x2\x2\x2\x908\x909\t\x18\x2\x2\x909\xF9\x3\x2\x2\x2\x90A\x90C\a\xEC"+ + "\x2\x2\x90B\x90D\x5\xFC\x7F\x2\x90C\x90B\x3\x2\x2\x2\x90D\x90E\x3\x2\x2"+ + "\x2\x90E\x90C\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F\xFB\x3\x2\x2\x2\x910"+ + "\x911\a/\x2\x2\x911\x913\x5\xFE\x80\x2\x912\x914\x5\x100\x81\x2\x913\x912"+ + "\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\xFD\x3\x2\x2\x2\x915\x916\a\xEF"+ + "\x2\x2\x916\xFF\x3\x2\x2\x2\x917\x918\x5\x104\x83\x2\x918\x91A\x5\x102"+ + "\x82\x2\x919\x91B\x5\x104\x83\x2\x91A\x919\x3\x2\x2\x2\x91A\x91B\x3\x2"+ + "\x2\x2\x91B\x955\x3\x2\x2\x2\x91C\x91D\x5\x104\x83\x2\x91D\x926\x5\x102"+ + "\x82\x2\x91E\x920\x5\x104\x83\x2\x91F\x91E\x3\x2\x2\x2\x91F\x920\x3\x2"+ + "\x2\x2\x920\x921\x3\x2\x2\x2\x921\x923\a)\x2\x2\x922\x924\x5\x104\x83"+ + "\x2\x923\x922\x3\x2\x2\x2\x923\x924\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2"+ + "\x925\x927\x5\x102\x82\x2\x926\x91F\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2"+ + "\x928\x926\x3\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92B\x3\x2\x2\x2\x92A"+ + "\x92C\x5\x104\x83\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C"+ + "\x955\x3\x2\x2\x2\x92D\x92F\x5\x104\x83\x2\x92E\x92D\x3\x2\x2\x2\x92E"+ + "\x92F\x3\x2\x2\x2\x92F\x930\x3\x2\x2\x2\x930\x932\a\xD4\x2\x2\x931\x933"+ + "\x5\x104\x83\x2\x932\x931\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x934"+ + "\x3\x2\x2\x2\x934\x936\x5\x102\x82\x2\x935\x937\x5\x104\x83\x2\x936\x935"+ + "\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x938\x3\x2\x2\x2\x938\x93A\a\xDB"+ + "\x2\x2\x939\x93B\x5\x104\x83\x2\x93A\x939\x3\x2\x2\x2\x93A\x93B\x3\x2"+ + "\x2\x2\x93B\x955\x3\x2\x2\x2\x93C\x93E\x5\x104\x83\x2\x93D\x93C\x3\x2"+ + "\x2\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\a\xD4\x2"+ + "\x2\x940\x949\x5\x102\x82\x2\x941\x943\x5\x104\x83\x2\x942\x941\x3\x2"+ + "\x2\x2\x942\x943\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x946\a)\x2\x2"+ + "\x945\x947\x5\x104\x83\x2\x946\x945\x3\x2\x2\x2\x946\x947\x3\x2\x2\x2"+ + "\x947\x948\x3\x2\x2\x2\x948\x94A\x5\x102\x82\x2\x949\x942\x3\x2\x2\x2"+ + "\x94A\x94B\x3\x2\x2\x2\x94B\x949\x3\x2\x2\x2\x94B\x94C\x3\x2\x2\x2\x94C"+ + "\x94E\x3\x2\x2\x2\x94D\x94F\x5\x104\x83\x2\x94E\x94D\x3\x2\x2\x2\x94E"+ + "\x94F\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x952\a\xDB\x2\x2\x951\x953"+ + "\x5\x104\x83\x2\x952\x951\x3\x2\x2\x2\x952\x953\x3\x2\x2\x2\x953\x955"+ + "\x3\x2\x2\x2\x954\x917\x3\x2\x2\x2\x954\x91C\x3\x2\x2\x2\x954\x92E\x3"+ + "\x2\x2\x2\x954\x93D\x3\x2\x2\x2\x955\x101\x3\x2\x2\x2\x956\x959\a\xEF"+ + "\x2\x2\x957\x959\x5\xE4s\x2\x958\x956\x3\x2\x2\x2\x958\x957\x3\x2\x2\x2"+ + "\x959\x103\x3\x2\x2\x2\x95A\x95C\t\x19\x2\x2\x95B\x95A\x3\x2\x2\x2\x95C"+ + "\x95D\x3\x2\x2\x2\x95D\x95B\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E\x105"+ + "\x3\x2\x2\x2\x1A7\x10A\x110\x113\x117\x11B\x11F\x123\x129\x12C\x136\x138"+ + "\x13E\x146\x14D\x153\x15C\x164\x173\x17D\x185\x18F\x195\x199\x19D\x1A1"+ + "\x1A6\x1AF\x1E1\x1E7\x1EB\x1F0\x1F3\x1F8\x1FE\x202\x207\x20C\x211\x214"+ + "\x218\x21F\x225\x229\x22C\x231\x23C\x23F\x242\x247\x24D\x251\x256\x25C"+ + "\x267\x26E\x276\x27B\x284\x28B\x28F\x292\x29A\x29E\x2A3\x2AD\x2B3\x2C4"+ + "\x2CA\x2D0\x2D4\x2E0\x2E4\x2EA\x2EF\x2F3\x2F7\x2FB\x2FE\x301\x304\x307"+ + "\x30B\x313\x317\x31A\x31D\x321\x339\x33F\x343\x347\x350\x35B\x360\x36A"+ + "\x36E\x373\x377\x37B\x37F\x387\x38B\x393\x397\x39F\x3A1\x3A7\x3AB\x3B1"+ + "\x3B5\x3B9\x3C7\x3D1\x3D5\x3DA\x3E5\x3E9\x3EE\x3FD\x402\x40B\x40F\x413"+ + "\x417\x41B\x41E\x422\x426\x429\x42D\x430\x434\x436\x43B\x43F\x443\x447"+ + "\x449\x44F\x453\x456\x45B\x45F\x465\x468\x46B\x470\x474\x47B\x47F\x485"+ + "\x488\x48C\x493\x497\x49D\x4A0\x4A4\x4AC\x4B0\x4B3\x4B6\x4BA\x4C2\x4C6"+ + "\x4CA\x4CC\x4CF\x4D5\x4D9\x4DD\x4E2\x4E7\x4EB\x4EF\x4F5\x4FD\x4FF\x507"+ + "\x50B\x513\x517\x524\x52B\x52F\x53A\x541\x546\x54A\x54F\x552\x558\x55C"+ + "\x563\x567\x56B\x56F\x572\x576\x57D\x586\x58D\x591\x594\x597\x59A\x59F"+ + "\x5A7\x5AB\x5B3\x5B5\x5BA\x5BF\x5C4\x5C8\x5CE\x5D3\x5DA\x5DE\x5E4\x5E8"+ + "\x5EC\x5F1\x5F5\x5FA\x5FE\x603\x607\x60C\x610\x615\x619\x61E\x622\x627"+ + "\x62B\x630\x634\x639\x63D\x642\x646\x64B\x64F\x652\x654\x65F\x664\x669"+ + "\x66F\x673\x678\x67D\x681\x685\x687\x68B\x68D\x690\x695\x69C\x6A4\x6A8"+ + "\x6B1\x6BB\x6BF\x6C2\x6C5\x6CE\x6D3\x6D6\x6DA\x6DE\x6E2\x6E5\x6ED\x6F2"+ + "\x6F5\x6F9\x6FD\x701\x704\x70C\x70F\x713\x716\x719\x71D\x721\x726\x729"+ + "\x72C\x72F\x737\x73E\x741\x749\x750\x754\x757\x75A\x75D\x765\x76A\x76D"+ + "\x770\x774\x778\x77A\x77E\x781\x784\x78C\x791\x794\x797\x79A\x7A2\x7A7"+ + "\x7AA\x7AD\x7B1\x7B5\x7B7\x7BB\x7BE\x7C1\x7C9\x7CE\x7D2\x7D6\x7D9\x7DC"+ + "\x7DF\x7E7\x7EC\x7F0\x7F3\x7F8\x7FB\x7FF\x803\x808\x80C\x80F\x813\x817"+ + "\x81B\x81E\x824\x828\x82C\x830\x834\x839\x83C\x83F\x845\x849\x84D\x851"+ + "\x854\x858\x85B\x85E\x861\x864\x867\x86B\x871\x875\x87A\x882\x888\x88C"+ + "\x890\x894\x898\x89B\x8A6\x8AB\x8AF\x8B3\x8B7\x8BA\x8BE\x8CA\x8D0\x8D3"+ + "\x8D7\x8DA\x8E5\x8EA\x8EE\x8F1\x8F4\x8F7\x8FB\x8FF\x901\x903\x90E\x913"+ + "\x91A\x91F\x923\x928\x92B\x92E\x932\x936\x93A\x93D\x942\x946\x94B\x94E"+ + "\x952\x954\x958\x95D"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index a0b3b32e5f..328602b20a 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -85,23 +85,15 @@ block : blockStmt (endOfStatement blockStmt)* endOfStatement; blockStmt : lineLabel - | appactivateStmt | attributeStmt - | beepStmt - | chdirStmt - | chdriveStmt | closeStmt | constStmt - | dateStmt - | deleteSettingStmt | deftypeStmt | doLoopStmt - | endStmt | eraseStmt | errorStmt - | exitStmt + | exitStmt | explicitCallStmt - | filecopyStmt | forEachStmt | forNextStmt | getStmt @@ -110,15 +102,11 @@ blockStmt : | ifThenElseStmt | implementsStmt | inputStmt - | killStmt | letStmt | lineInputStmt - | loadStmt | lockStmt | lsetStmt | midStmt - | mkdirStmt - | nameStmt | onErrorStmt | onGoToStmt | onGoSubStmt @@ -126,23 +114,14 @@ blockStmt : | printStmt | putStmt | raiseEventStmt - | randomizeStmt | redimStmt | resetStmt | resumeStmt | returnStmt - | rmdirStmt | rsetStmt - | savepictureStmt - | saveSettingStmt | seekStmt | selectCaseStmt - | sendkeysStmt - | setattrStmt | setStmt - | stopStmt - | timeStmt - | unloadStmt | unlockStmt | variableStmt | whileWendStmt @@ -152,22 +131,12 @@ blockStmt : | implicitCallStmt_InBlock ; -appactivateStmt : APPACTIVATE whiteSpace valueStmt (whiteSpace? COMMA whiteSpace? valueStmt)?; - -beepStmt : BEEP; - -chdirStmt : CHDIR whiteSpace valueStmt; - -chdriveStmt : CHDRIVE whiteSpace valueStmt; - closeStmt : CLOSE (whiteSpace fileNumber (whiteSpace? COMMA whiteSpace? fileNumber)*)?; constStmt : (visibility whiteSpace)? CONST whiteSpace constSubStmt (whiteSpace? COMMA whiteSpace? constSubStmt)*; constSubStmt : identifier typeHint? (whiteSpace asTypeClause)? whiteSpace? EQ whiteSpace? valueStmt; -dateStmt : DATE whiteSpace? EQ whiteSpace? valueStmt; - declareStmt : (visibility whiteSpace)? DECLARE whiteSpace (PTRSAFE whiteSpace)? ((FUNCTION typeHint?) | SUB) whiteSpace identifier typeHint? whiteSpace LIB whiteSpace STRINGLITERAL (whiteSpace ALIAS whiteSpace STRINGLITERAL)? (whiteSpace? argList)? (whiteSpace asTypeClause)?; deftypeStmt : @@ -179,11 +148,6 @@ deftypeStmt : letterrange (whiteSpace? COMMA whiteSpace? letterrange)* ; -deleteSettingStmt : - DELETESETTING whiteSpace valueStmt whiteSpace? - | DELETESETTING whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt - | DELETESETTING whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt whiteSpace? COMMA whiteSpace? valueStmt; - doLoopStmt : DO endOfStatement block? @@ -198,8 +162,6 @@ doLoopStmt : LOOP whiteSpace (WHILE | UNTIL) whiteSpace valueStmt ; -endStmt : END; - enumerationStmt: (visibility whiteSpace)? ENUM whiteSpace identifier endOfStatement enumerationStmt_Constant* @@ -216,8 +178,6 @@ eventStmt : (visibility whiteSpace)? EVENT whiteSpace identifier whiteSpace? arg exitStmt : EXIT_DO | EXIT_FOR | EXIT_FUNCTION | EXIT_PROPERTY | EXIT_SUB; -filecopyStmt : FILECOPY whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt; - forEachStmt : FOR whiteSpace EACH whiteSpace valueStmt whiteSpace IN whiteSpace valueStmt endOfStatement block? @@ -268,26 +228,19 @@ implementsStmt : IMPLEMENTS whiteSpace valueStmt; inputStmt : INPUT whiteSpace fileNumber (whiteSpace? COMMA whiteSpace? valueStmt)+; -killStmt : KILL whiteSpace valueStmt; - -letStmt : (LET whiteSpace)? implicitCallStmt_InStmt whiteSpace? EQ whiteSpace? valueStmt; +letStmt : (LET whiteSpace)? valueStmt whiteSpace? EQ whiteSpace? valueStmt; lineInputStmt : LINE_INPUT whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt; -loadStmt : LOAD whiteSpace valueStmt; - lockStmt : LOCK whiteSpace valueStmt (whiteSpace? COMMA whiteSpace? valueStmt (whiteSpace TO whiteSpace valueStmt)?)?; -lsetStmt : LSET whiteSpace implicitCallStmt_InStmt whiteSpace? EQ whiteSpace? valueStmt; +lsetStmt : LSET whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt; midStmt : MID whiteSpace? LPAREN whiteSpace? argsCall whiteSpace? RPAREN; -mkdirStmt : MKDIR whiteSpace valueStmt; - -nameStmt : NAME whiteSpace valueStmt whiteSpace AS whiteSpace valueStmt; - onErrorStmt : (ON_ERROR | ON_LOCAL_ERROR) whiteSpace (GOTO whiteSpace valueStmt | RESUME whiteSpace NEXT); +// TODO: only first valueStmt is correct, rest should be IDENTIFIER/INTEGERs? onGoToStmt : ON whiteSpace valueStmt whiteSpace GOTO whiteSpace valueStmt (whiteSpace? COMMA whiteSpace? valueStmt)*; onGoSubStmt : ON whiteSpace valueStmt whiteSpace GOSUB whiteSpace valueStmt (whiteSpace? COMMA whiteSpace? valueStmt)*; @@ -334,25 +287,17 @@ putStmt : PUT whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt? whi raiseEventStmt : RAISEEVENT whiteSpace identifier (whiteSpace? LPAREN whiteSpace? (argsCall whiteSpace?)? RPAREN)?; -randomizeStmt : RANDOMIZE (whiteSpace valueStmt)?; - redimStmt : REDIM whiteSpace (PRESERVE whiteSpace)? redimSubStmt (whiteSpace? COMMA whiteSpace? redimSubStmt)*; redimSubStmt : implicitCallStmt_InStmt whiteSpace? LPAREN whiteSpace? subscripts whiteSpace? RPAREN (whiteSpace asTypeClause)?; resetStmt : RESET; -resumeStmt : RESUME (whiteSpace (NEXT | identifier))?; +resumeStmt : RESUME (whiteSpace (NEXT | valueStmt))?; returnStmt : RETURN; -rmdirStmt : RMDIR whiteSpace valueStmt; - -rsetStmt : RSET whiteSpace implicitCallStmt_InStmt whiteSpace? EQ whiteSpace? valueStmt; - -savepictureStmt : SAVEPICTURE whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt; - -saveSettingStmt : SAVESETTING whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt whiteSpace? COMMA whiteSpace? valueStmt whiteSpace? COMMA whiteSpace? valueStmt; +rsetStmt : RSET whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt; seekStmt : SEEK whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt; @@ -378,13 +323,7 @@ sC_Cond : | sC_Selection (whiteSpace? COMMA whiteSpace? sC_Selection)* # caseCondSelection ; -sendkeysStmt : SENDKEYS whiteSpace valueStmt (whiteSpace? COMMA whiteSpace? valueStmt)?; - -setattrStmt : SETATTR whiteSpace valueStmt whiteSpace? COMMA whiteSpace? valueStmt; - -setStmt : SET whiteSpace implicitCallStmt_InStmt whiteSpace? EQ whiteSpace? valueStmt; - -stopStmt : STOP; +setStmt : SET whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt; subStmt : (visibility whiteSpace)? (STATIC whiteSpace)? SUB whiteSpace? identifier (whiteSpace? argList)? endOfStatement @@ -392,8 +331,6 @@ subStmt : END_SUB ; -timeStmt : TIME whiteSpace? EQ whiteSpace? valueStmt; - typeStmt : (visibility whiteSpace)? TYPE whiteSpace identifier endOfStatement typeStmt_Element* @@ -402,8 +339,6 @@ typeStmt : typeStmt_Element : identifier (whiteSpace? LPAREN (whiteSpace? subscripts)? whiteSpace? RPAREN)? (whiteSpace asTypeClause)? endOfStatement; -unloadStmt : UNLOAD whiteSpace valueStmt; - unlockStmt : UNLOCK whiteSpace fileNumber (whiteSpace? COMMA whiteSpace? valueStmt (whiteSpace TO whiteSpace valueStmt)?)?; valueStmt : @@ -471,7 +406,7 @@ implicitCallStmt_InBlock : | iCS_B_ProcedureCall ; -iCS_B_MemberProcedureCall : implicitCallStmt_InStmt? whiteSpace? DOT whiteSpace? identifier typeHint? (whiteSpace argsCall)? (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; +iCS_B_MemberProcedureCall : implicitCallStmt_InStmt? whiteSpace? DOT whiteSpace? unrestrictedIdentifier typeHint? (whiteSpace argsCall)? (whiteSpace? dictionaryCallStmt)? (whiteSpace? LPAREN subscripts RPAREN)*; iCS_B_ProcedureCall : identifier (whiteSpace argsCall)? (whiteSpace? LPAREN subscripts RPAREN)*; @@ -544,11 +479,9 @@ keyword : | ALIAS | AND | ANY - | APPACTIVATE | ARRAY | AS | ATTRIBUTE - | BEEP | BEGIN | BOOLEAN | BYREF @@ -560,8 +493,6 @@ keyword : | CDATE | CDBL | CDEC - | CHDIR - | CHDRIVE | CINT | CIRCLE | CLASS @@ -583,7 +514,6 @@ keyword : | END_IF | EQV | FALSE - | FILECOPY | FIX | IMP | IN @@ -591,7 +521,6 @@ keyword : | INT | INTEGER | IS - | KILL | LBOUND | LEN | LEN @@ -607,9 +536,7 @@ keyword : | MIDB | MIDBTYPESUFFIX | MIDTYPESUFFIX - | MKDIR | MOD - | NAME | NEW | NOT | NOTHING @@ -619,11 +546,8 @@ keyword : | PARAMARRAY | PRESERVE | PSET - | RANDOMIZE | REM | RMDIR - | SAVEPICTURE - | SAVESETTING | SCALE | SENDKEYS | SETATTR @@ -634,12 +558,10 @@ keyword : | TAB | TEXT | THEN - | TIME | TO | TRUE | TYPEOF | UBOUND - | UNLOAD | UNTIL | VARIANT | VERSION diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs index f6e4989667..2b5e578b23 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs @@ -46,19 +46,6 @@ public virtual void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context) { /// The parse tree. public virtual void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -85,19 +72,6 @@ public virtual void EnterConstStmt([NotNull] VBAParser.ConstStmtContext context) /// The parse tree. public virtual void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -293,19 +267,6 @@ public virtual void EnterRemComment([NotNull] VBAParser.RemCommentContext contex /// The parse tree. public virtual void ExitRemComment([NotNull] VBAParser.RemCommentContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -592,19 +553,6 @@ public virtual void EnterICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_Mem /// The parse tree. public virtual void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -709,19 +657,6 @@ public virtual void EnterArgCall([NotNull] VBAParser.ArgCallContext context) { } /// The parse tree. public virtual void ExitArgCall([NotNull] VBAParser.ArgCallContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterNameStmt([NotNull] VBAParser.NameStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitNameStmt([NotNull] VBAParser.NameStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -761,19 +696,6 @@ public virtual void EnterConstSubStmt([NotNull] VBAParser.ConstSubStmtContext co /// The parse tree. public virtual void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterDateStmt([NotNull] VBAParser.DateStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitDateStmt([NotNull] VBAParser.DateStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -813,19 +735,6 @@ public virtual void EnterRedimStmt([NotNull] VBAParser.RedimStmtContext context) /// The parse tree. public virtual void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -943,19 +852,6 @@ public virtual void EnterEventStmt([NotNull] VBAParser.EventStmtContext context) /// The parse tree. public virtual void ExitEventStmt([NotNull] VBAParser.EventStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -982,19 +878,6 @@ public virtual void EnterResumeStmt([NotNull] VBAParser.ResumeStmtContext contex /// The parse tree. public virtual void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1034,19 +917,6 @@ public virtual void EnterVsNot([NotNull] VBAParser.VsNotContext context) { } /// The parse tree. public virtual void ExitVsNot([NotNull] VBAParser.VsNotContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1073,19 +943,6 @@ public virtual void EnterEndOfLine([NotNull] VBAParser.EndOfLineContext context) /// The parse tree. public virtual void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1125,19 +982,6 @@ public virtual void EnterVsAnd([NotNull] VBAParser.VsAndContext context) { } /// The parse tree. public virtual void ExitVsAnd([NotNull] VBAParser.VsAndContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterEndStmt([NotNull] VBAParser.EndStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitEndStmt([NotNull] VBAParser.EndStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1164,19 +1008,6 @@ public virtual void EnterBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseCont /// The parse tree. public virtual void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1398,19 +1229,6 @@ public virtual void EnterVsRelational([NotNull] VBAParser.VsRelationalContext co /// The parse tree. public virtual void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1554,19 +1372,6 @@ public virtual void EnterAnnotationArg([NotNull] VBAParser.AnnotationArgContext /// The parse tree. public virtual void ExitAnnotationArg([NotNull] VBAParser.AnnotationArgContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1619,19 +1424,6 @@ public virtual void EnterVisibility([NotNull] VBAParser.VisibilityContext contex /// The parse tree. public virtual void ExitVisibility([NotNull] VBAParser.VisibilityContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1736,19 +1528,6 @@ public virtual void EnterVsMod([NotNull] VBAParser.VsModContext context) { } /// The parse tree. public virtual void ExitVsMod([NotNull] VBAParser.VsModContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterKillStmt([NotNull] VBAParser.KillStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitKillStmt([NotNull] VBAParser.KillStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1762,19 +1541,6 @@ public virtual void EnterVsOr([NotNull] VBAParser.VsOrContext context) { } /// The parse tree. public virtual void ExitVsOr([NotNull] VBAParser.VsOrContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1801,19 +1567,6 @@ public virtual void EnterCaseCondElse([NotNull] VBAParser.CaseCondElseContext co /// The parse tree. public virtual void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1931,19 +1684,6 @@ public virtual void EnterPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtCont /// The parse tree. public virtual void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -2035,19 +1775,6 @@ public virtual void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmt /// The parse tree. public virtual void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterStopStmt([NotNull] VBAParser.StopStmtContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitStopStmt([NotNull] VBAParser.StopStmtContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs index 176fa5b7ab..0173a3e12a 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs @@ -43,17 +43,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -76,17 +65,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -252,17 +230,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitRemComment([NotNull] VBAParser.RemCommentContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -505,17 +472,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -604,17 +560,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitArgCall([NotNull] VBAParser.ArgCallContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -648,17 +593,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -692,17 +626,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -802,17 +725,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -835,17 +747,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -879,17 +780,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsNot([NotNull] VBAParser.VsNotContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -912,17 +802,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -956,17 +835,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsAnd([NotNull] VBAParser.VsAndContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -989,17 +857,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1187,17 +1044,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1319,17 +1165,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitAnnotationArg([NotNull] VBAParser.AnnotationArgContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1374,17 +1209,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVisibility([NotNull] VBAParser.VisibilityContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1473,17 +1297,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsMod([NotNull] VBAParser.VsModContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1495,17 +1308,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsOr([NotNull] VBAParser.VsOrContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1528,17 +1330,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1638,17 +1429,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -1726,17 +1506,6 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserListener.cs b/Rubberduck.Parsing/Grammar/VBAParserListener.cs index 2624640372..84e1596c12 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserListener.cs @@ -40,17 +40,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitSeekStmt([NotNull] VBAParser.SeekStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -73,17 +62,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitConstStmt([NotNull] VBAParser.ConstStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -255,17 +233,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitRemComment([NotNull] VBAParser.RemCommentContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterTimeStmt([NotNull] VBAParser.TimeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitTimeStmt([NotNull] VBAParser.TimeStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -514,17 +481,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -617,17 +573,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitArgCall([NotNull] VBAParser.ArgCallContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterNameStmt([NotNull] VBAParser.NameStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitNameStmt([NotNull] VBAParser.NameStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -661,17 +606,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterDateStmt([NotNull] VBAParser.DateStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitDateStmt([NotNull] VBAParser.DateStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -707,17 +641,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitRedimStmt([NotNull] VBAParser.RedimStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -821,17 +744,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitEventStmt([NotNull] VBAParser.EventStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -854,17 +766,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - /// /// Enter a parse tree produced by the optionExplicitStmt /// labeled alternative in . @@ -902,17 +803,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsNot([NotNull] VBAParser.VsNotContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -935,17 +825,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitEndOfLine([NotNull] VBAParser.EndOfLineContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -981,17 +860,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsAnd([NotNull] VBAParser.VsAndContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterEndStmt([NotNull] VBAParser.EndStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitEndStmt([NotNull] VBAParser.EndStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1016,17 +884,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - /// /// Enter a parse tree produced by the vsAmp /// labeled alternative in . @@ -1226,17 +1083,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsRelational([NotNull] VBAParser.VsRelationalContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1362,17 +1208,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitAnnotationArg([NotNull] VBAParser.AnnotationArgContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - /// /// Enter a parse tree produced by the vsAssign /// labeled alternative in . @@ -1419,17 +1254,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVisibility([NotNull] VBAParser.VisibilityContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterBeepStmt([NotNull] VBAParser.BeepStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitBeepStmt([NotNull] VBAParser.BeepStmtContext context); - /// /// Enter a parse tree produced by the vsTypeOf /// labeled alternative in . @@ -1524,17 +1348,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsMod([NotNull] VBAParser.VsModContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterKillStmt([NotNull] VBAParser.KillStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitKillStmt([NotNull] VBAParser.KillStmtContext context); - /// /// Enter a parse tree produced by the vsOr /// labeled alternative in . @@ -1548,17 +1361,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsOr([NotNull] VBAParser.VsOrContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1583,17 +1385,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1695,17 +1486,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterLoadStmt([NotNull] VBAParser.LoadStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitLoadStmt([NotNull] VBAParser.LoadStmtContext context); - /// /// Enter a parse tree produced by . /// @@ -1783,17 +1563,6 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterStopStmt([NotNull] VBAParser.StopStmtContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitStopStmt([NotNull] VBAParser.StopStmtContext context); - /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs index 298ad91380..ea008a2e72 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs @@ -37,13 +37,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitSeekStmt([NotNull] VBAParser.SeekStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDeleteSettingStmt([NotNull] VBAParser.DeleteSettingStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -58,13 +51,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitConstStmt([NotNull] VBAParser.ConstStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSetattrStmt([NotNull] VBAParser.SetattrStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -173,13 +159,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitRemComment([NotNull] VBAParser.RemCommentContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitTimeStmt([NotNull] VBAParser.TimeStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -337,13 +316,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitICS_B_MemberProcedureCall([NotNull] VBAParser.ICS_B_MemberProcedureCallContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitFilecopyStmt([NotNull] VBAParser.FilecopyStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -402,13 +374,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitArgCall([NotNull] VBAParser.ArgCallContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitNameStmt([NotNull] VBAParser.NameStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -430,13 +395,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitConstSubStmt([NotNull] VBAParser.ConstSubStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitDateStmt([NotNull] VBAParser.DateStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -459,13 +417,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitRedimStmt([NotNull] VBAParser.RedimStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSaveSettingStmt([NotNull] VBAParser.SaveSettingStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -531,13 +482,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitEventStmt([NotNull] VBAParser.EventStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitMkdirStmt([NotNull] VBAParser.MkdirStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -552,13 +496,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitResumeStmt([NotNull] VBAParser.ResumeStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSendkeysStmt([NotNull] VBAParser.SendkeysStmtContext context); - /// /// Visit a parse tree produced by the optionExplicitStmt /// labeled alternative in . @@ -582,13 +519,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsNot([NotNull] VBAParser.VsNotContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitChdriveStmt([NotNull] VBAParser.ChdriveStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -603,13 +533,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitEndOfLine([NotNull] VBAParser.EndOfLineContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRandomizeStmt([NotNull] VBAParser.RandomizeStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -632,13 +555,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsAnd([NotNull] VBAParser.VsAndContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitEndStmt([NotNull] VBAParser.EndStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -654,13 +570,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitBlockIfThenElse([NotNull] VBAParser.BlockIfThenElseContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitSavepictureStmt([NotNull] VBAParser.SavepictureStmtContext context); - /// /// Visit a parse tree produced by the vsAmp /// labeled alternative in . @@ -786,13 +695,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsRelational([NotNull] VBAParser.VsRelationalContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitChdirStmt([NotNull] VBAParser.ChdirStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -872,13 +774,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitAnnotationArg([NotNull] VBAParser.AnnotationArgContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitUnloadStmt([NotNull] VBAParser.UnloadStmtContext context); - /// /// Visit a parse tree produced by the vsAssign /// labeled alternative in . @@ -908,13 +803,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVisibility([NotNull] VBAParser.VisibilityContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitBeepStmt([NotNull] VBAParser.BeepStmtContext context); - /// /// Visit a parse tree produced by the vsTypeOf /// labeled alternative in . @@ -974,13 +862,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsMod([NotNull] VBAParser.VsModContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitKillStmt([NotNull] VBAParser.KillStmtContext context); - /// /// Visit a parse tree produced by the vsOr /// labeled alternative in . @@ -989,13 +870,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsOr([NotNull] VBAParser.VsOrContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitRmdirStmt([NotNull] VBAParser.RmdirStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -1011,13 +885,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitCaseCondElse([NotNull] VBAParser.CaseCondElseContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitAppactivateStmt([NotNull] VBAParser.AppactivateStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -1082,13 +949,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitPropertyGetStmt([NotNull] VBAParser.PropertyGetStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitLoadStmt([NotNull] VBAParser.LoadStmtContext context); - /// /// Visit a parse tree produced by . /// @@ -1138,13 +998,6 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context); - /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs index cb8ff776f1..022a138956 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs @@ -29,46 +29,44 @@ namespace Rubberduck.Parsing.Preprocessing { [System.CLSCompliant(false)] public partial class VBAConditionalCompilationParser : Parser { public const int - PRINT=166, ELSEIF=93, CBYTE=5, CLOSE=69, STATIC=196, MINUS=230, OPTION_EXPLICIT=159, - L_SQUARE_BRACKET=241, SETATTR=192, DOEVENTS=21, HASHENDIF=240, DATELITERAL=248, - ERROR=107, NOTHING=151, EACH=91, SUB=200, FILECOPY=115, STOP=198, LPAREN=228, - MID=144, CVERR=19, BEEP=58, AS=56, END_PROPERTY=98, AT=45, DATABASE=71, - GOSUB=121, CSNG=15, HASHCONST=236, CHDIR=66, POW=234, DOLLAR=47, PROPERTY_LET=169, - THEN=203, XOR=220, EXIT_FOR=110, DEFINT=79, HASHIF=237, UNLOCK=210, CALL=64, - LOCK_READ=139, SET=191, LOCK_READ_WRITE=141, ABS=1, LSET=142, RAISEEVENT=176, - MIDBTYPESUFFIX=32, SEEK=188, LONG=133, CBOOL=4, LIB=136, DIM=88, APPEND=55, - MKDIR=145, OPEN=156, DIV=222, PROPERTY_SET=170, CDBL=8, PERCENT=46, SENDKEYS=190, - END_SELECT=99, STRING=199, HASHELSEIF=238, SGN=37, REM=180, TO=205, DEFDBL=77, - BYVAL=61, FRIEND=116, LOOP=134, DELETESETTING=87, CLASS=68, DO=89, VARIANT=212, - END_WITH=102, DEFBOOL=74, OPTIONAL=157, ADDRESSOF=50, CONST=70, RSET=185, - INTEGER=129, CDEC=9, REMCOMMENT=250, ATTRIBUTE=53, OUTPUT=163, FOR=117, - PTRSAFE=171, EQ=224, BOOLEAN=60, CIRCLE=11, NAME=147, END_FUNCTION=96, - DEFSNG=84, DEFBYTE=75, NOT=150, CINT=10, SAVESETTING=187, END=103, PRESERVE=165, - ON_LOCAL_ERROR=155, FLOATLITERAL=246, HASHELSE=239, LOAD=131, BINARY=59, - LENB=28, RETURN=183, EXCLAMATIONPOINT=42, NEXT=148, GLOBAL=120, INPUTB=24, - IDENTIFIER=255, WS=254, EMPTY=94, CURRENCY=17, CCUR=6, MOD=146, WITHEVENTS=218, - COLON=40, DEFLNGLNG=81, STEP=197, TIME=204, OPTION_BASE=158, GT=226, PUT=173, - WITH=217, CSTR=16, LOCK_WRITE=140, LINE_CONTINUATION=256, TYPEOF=208, - DEFVAR=86, RMDIR=184, DEFLNG=80, UBOUND=38, FALSE=114, ERRORCHAR=258, - UNDERSCORE=253, INTEGERLITERAL=247, END_IF=97, LOCK=132, TEXT=202, SINGLEQUOTE=252, - SAVEPICTURE=186, MULT=231, SEMICOLON=41, BYTE=63, HEXLITERAL=245, ELSE=92, - IF=123, TYPE=207, AMPERSAND=48, DEFLNGPTR=82, ENUM=104, DEFOBJ=83, IN=126, - CHDRIVE=67, OPTION=34, DOT=43, EXIT_DO=109, GUIDLITERAL=257, IS=128, EQV=105, - WEND=214, FUNCTION=118, HASH=44, CASE=65, GEQ=225, GET=119, PUBLIC=172, - ON_ERROR=154, EXIT=22, MIDB=31, END_ENUM=95, GOTO=122, INTDIV=223, LONGPTR=30, - WIDTH=216, BEGIN=57, EXIT_SUB=113, ASSIGN=221, COMMENT=251, WRITE=219, - RANDOMIZE=175, DOUBLE=90, EXIT_PROPERTY=112, COMMA=39, RANDOM=174, PROPERTY_GET=168, - SELECT=189, PRIVATE=167, ERASE=106, TAB=201, BYREF=62, VERSION=213, NEQ=232, - END_TYPE=101, KILL=130, NEW=149, ARRAY=3, INPUT=127, SINGLE=194, UNLOAD=209, - ALIAS=51, SPC=195, LT=229, RESET=181, END_SUB=100, EVENT=108, READ_WRITE=178, - OPTION_COMPARE=160, ME=143, SCALE=36, CDATE=7, MIDTYPESUFFIX=33, NULL=152, - NEWLINE=249, TRUE=206, RPAREN=235, APPACTIVATE=54, IMP=124, STRINGLITERAL=243, - OCTLITERAL=244, READ=177, DATE=72, LIKE=137, AND=52, OPTION_PRIVATE_MODULE=161, - CLNGLNG=13, PLUS=233, ANY=2, RESUME=182, INT=25, SHARED=193, EXIT_FUNCTION=111, - PSET=35, ACCESS=49, LINE_INPUT=138, ON=153, OR=162, PARAMARRAY=164, LBOUND=26, - R_SQUARE_BRACKET=242, IMPLEMENTS=125, UNTIL=211, DEBUG=20, DEFCUR=78, - CLNGPTR=14, LONGLONG=29, DECLARE=73, DEFDATE=76, FIX=23, LEN=27, REDIM=179, - LEQ=227, DEFSTR=85, LET=135, WHILE=215, CVAR=18, CLNG=12; + PRINT=156, ELSEIF=88, CBYTE=5, CLOSE=65, STATIC=180, MINUS=212, OPTION_EXPLICIT=149, + L_SQUARE_BRACKET=223, DOEVENTS=21, HASHENDIF=222, DATELITERAL=230, ERROR=102, + NOTHING=141, EACH=86, SUB=184, STOP=182, LPAREN=210, MID=136, CVERR=19, + AS=55, END_PROPERTY=93, AT=45, DATABASE=67, GOSUB=115, CSNG=15, HASHCONST=218, + POW=216, DOLLAR=47, PROPERTY_LET=159, THEN=187, XOR=202, EXIT_FOR=105, + DEFINT=75, HASHIF=219, UNLOCK=192, CALL=62, LOCK_READ=131, SET=176, LOCK_READ_WRITE=133, + ABS=1, LSET=134, RAISEEVENT=165, MIDBTYPESUFFIX=32, SEEK=174, LONG=125, + CBOOL=4, LIB=128, DIM=83, APPEND=54, OPEN=146, DIV=204, PROPERTY_SET=160, + CDBL=8, PERCENT=46, END_SELECT=94, STRING=183, HASHELSEIF=220, SGN=37, + REM=169, TO=188, DEFDBL=73, BYVAL=59, FRIEND=110, LOOP=126, CLASS=64, + DO=84, VARIANT=194, END_WITH=97, DEFBOOL=70, OPTIONAL=147, ADDRESSOF=50, + CONST=66, RSET=173, INTEGER=123, CDEC=9, REMCOMMENT=232, ATTRIBUTE=53, + OUTPUT=153, FOR=111, PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91, + DEFSNG=80, DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145, + FLOATLITERAL=228, HASHELSE=221, BINARY=57, LENB=28, RETURN=172, EXCLAMATIONPOINT=42, + NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=237, WS=236, EMPTY=89, CURRENCY=17, + CCUR=6, MOD=137, WITHEVENTS=200, COLON=40, DEFLNGLNG=77, STEP=181, OPTION_BASE=148, + GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=238, + TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=240, + UNDERSCORE=235, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=234, + MULT=213, SEMICOLON=41, BYTE=61, HEXLITERAL=227, ELSE=87, IF=117, TYPE=190, + AMPERSAND=48, DEFLNGPTR=78, ENUM=99, DEFOBJ=79, IN=120, OPTION=34, DOT=43, + EXIT_DO=104, GUIDLITERAL=239, IS=122, EQV=100, WEND=196, FUNCTION=112, + HASH=44, CASE=63, GEQ=207, GET=113, PUBLIC=162, ON_ERROR=144, EXIT=22, + MIDB=31, END_ENUM=90, GOTO=116, INTDIV=205, LONGPTR=30, WIDTH=198, BEGIN=56, + EXIT_SUB=108, ASSIGN=203, COMMENT=233, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107, + COMMA=39, RANDOM=164, PROPERTY_GET=158, SELECT=175, PRIVATE=157, ERASE=101, + TAB=185, BYREF=60, VERSION=195, NEQ=214, END_TYPE=96, NEW=139, ARRAY=3, + INPUT=121, SINGLE=178, ALIAS=51, SPC=179, LT=211, RESET=170, END_SUB=95, + EVENT=103, READ_WRITE=167, OPTION_COMPARE=150, ME=135, SCALE=36, CDATE=7, + MIDTYPESUFFIX=33, NULL=142, NEWLINE=231, TRUE=189, RPAREN=217, IMP=118, + STRINGLITERAL=225, OCTLITERAL=226, READ=166, DATE=68, LIKE=129, AND=52, + OPTION_PRIVATE_MODULE=151, CLNGLNG=13, PLUS=215, ANY=2, RESUME=171, INT=25, + SHARED=177, EXIT_FUNCTION=106, PSET=35, ACCESS=49, LINE_INPUT=130, ON=143, + OR=152, PARAMARRAY=154, LBOUND=26, R_SQUARE_BRACKET=224, IMPLEMENTS=119, + UNTIL=193, DEBUG=20, DEFCUR=74, CLNGPTR=14, LONGLONG=29, DECLARE=69, DEFDATE=72, + FIX=23, LEN=27, REDIM=168, LEQ=209, DEFSTR=81, LET=127, WHILE=197, CVAR=18, + CLNG=12; public static readonly string[] tokenNames = { "", "ABS", "ANY", "ARRAY", "CBOOL", "CBYTE", "CCUR", "CDATE", "CDBL", "CDEC", "CINT", "CIRCLE", "CLNG", "CLNGLNG", "CLNGPTR", "CSNG", @@ -76,32 +74,29 @@ public const int "INPUTB", "INT", "LBOUND", "LEN", "LENB", "LONGLONG", "LONGPTR", "MIDB", "MIDBTYPESUFFIX", "MIDTYPESUFFIX", "OPTION", "PSET", "SCALE", "SGN", "UBOUND", "','", "':'", "';'", "'!'", "'.'", "'#'", "'@'", "'%'", "'$'", "'&'", - "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPACTIVATE", "APPEND", - "AS", "BEGIN", "BEEP", "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", - "CALL", "CASE", "CHDIR", "CHDRIVE", "CLASS", "CLOSE", "CONST", "DATABASE", - "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", "DEFDATE", "DEFDBL", "DEFCUR", - "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", "DEFOBJ", "DEFSNG", "DEFSTR", - "DEFVAR", "DELETESETTING", "DIM", "DO", "DOUBLE", "EACH", "ELSE", "ELSEIF", - "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", "END_SELECT", - "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", "ERASE", "ERROR", - "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", "EXIT_SUB", - "FALSE", "FILECOPY", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", - "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "KILL", - "LOAD", "LOCK", "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", - "LOCK_WRITE", "LOCK_READ_WRITE", "LSET", "ME", "MID", "MKDIR", "MOD", - "NAME", "NEXT", "NEW", "NOT", "NOTHING", "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", - "OPEN", "OPTIONAL", "OPTION_BASE", "OPTION_EXPLICIT", "OPTION_COMPARE", - "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", "PARAMARRAY", "PRESERVE", "PRINT", - "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", "PROPERTY_SET", "PTRSAFE", - "PUBLIC", "PUT", "RANDOM", "RANDOMIZE", "RAISEEVENT", "READ", "READ_WRITE", - "REDIM", "REM", "RESET", "RESUME", "RETURN", "RMDIR", "RSET", "SAVEPICTURE", - "SAVESETTING", "SEEK", "SELECT", "SENDKEYS", "SET", "SETATTR", "SHARED", - "SINGLE", "SPC", "STATIC", "STEP", "STOP", "STRING", "SUB", "TAB", "TEXT", - "THEN", "TIME", "TO", "TRUE", "TYPE", "TYPEOF", "UNLOAD", "UNLOCK", "UNTIL", - "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", "WITHEVENTS", - "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", "LEQ", "'('", - "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", "HASHIF", - "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", + "ACCESS", "ADDRESSOF", "ALIAS", "AND", "ATTRIBUTE", "APPEND", "AS", "BEGIN", + "BINARY", "BOOLEAN", "BYVAL", "BYREF", "BYTE", "CALL", "CASE", "CLASS", + "CLOSE", "CONST", "DATABASE", "DATE", "DECLARE", "DEFBOOL", "DEFBYTE", + "DEFDATE", "DEFDBL", "DEFCUR", "DEFINT", "DEFLNG", "DEFLNGLNG", "DEFLNGPTR", + "DEFOBJ", "DEFSNG", "DEFSTR", "DEFVAR", "DIM", "DO", "DOUBLE", "EACH", + "ELSE", "ELSEIF", "EMPTY", "END_ENUM", "END_FUNCTION", "END_IF", "END_PROPERTY", + "END_SELECT", "END_SUB", "END_TYPE", "END_WITH", "END", "ENUM", "EQV", + "ERASE", "ERROR", "EVENT", "EXIT_DO", "EXIT_FOR", "EXIT_FUNCTION", "EXIT_PROPERTY", + "EXIT_SUB", "FALSE", "FRIEND", "FOR", "FUNCTION", "GET", "GLOBAL", "GOSUB", + "GOTO", "IF", "IMP", "IMPLEMENTS", "IN", "INPUT", "IS", "INTEGER", "LOCK", + "LONG", "LOOP", "LET", "LIB", "LIKE", "LINE_INPUT", "LOCK_READ", "LOCK_WRITE", + "LOCK_READ_WRITE", "LSET", "ME", "MID", "MOD", "NEXT", "NEW", "NOT", "NOTHING", + "NULL", "ON", "ON_ERROR", "ON_LOCAL_ERROR", "OPEN", "OPTIONAL", "OPTION_BASE", + "OPTION_EXPLICIT", "OPTION_COMPARE", "OPTION_PRIVATE_MODULE", "OR", "OUTPUT", + "PARAMARRAY", "PRESERVE", "PRINT", "PRIVATE", "PROPERTY_GET", "PROPERTY_LET", + "PROPERTY_SET", "PTRSAFE", "PUBLIC", "PUT", "RANDOM", "RAISEEVENT", "READ", + "READ_WRITE", "REDIM", "REM", "RESET", "RESUME", "RETURN", "RSET", "SEEK", + "SELECT", "SET", "SHARED", "SINGLE", "SPC", "STATIC", "STEP", "STOP", + "STRING", "SUB", "TAB", "TEXT", "THEN", "TO", "TRUE", "TYPE", "TYPEOF", + "UNLOCK", "UNTIL", "VARIANT", "VERSION", "WEND", "WHILE", "WIDTH", "WITH", + "WITHEVENTS", "WRITE", "XOR", "':='", "'/'", "'\\'", "'='", "GEQ", "'>'", + "LEQ", "'('", "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", + "HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", "NEWLINE", "REMCOMMENT", "COMMENT", "'''", "'_'", "WS", "IDENTIFIER", "LINE_CONTINUATION", "GUIDLITERAL", "ERRORCHAR" @@ -229,7 +224,7 @@ public CcBlockContext ccBlock() { State = 48; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << COMMA) | (1L << COLON) | (1L << SEMICOLON) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPACTIVATE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BEEP) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CALL - 64)) | (1L << (CASE - 64)) | (1L << (CHDIR - 64)) | (1L << (CHDRIVE - 64)) | (1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DELETESETTING - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_ENUM - 64)) | (1L << (END_FUNCTION - 64)) | (1L << (END_IF - 64)) | (1L << (END_PROPERTY - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_SUB - 64)) | (1L << (END_TYPE - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FILECOPY - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (IS - 128)) | (1L << (INTEGER - 128)) | (1L << (KILL - 128)) | (1L << (LOAD - 128)) | (1L << (LOCK - 128)) | (1L << (LONG - 128)) | (1L << (LOOP - 128)) | (1L << (LET - 128)) | (1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MKDIR - 128)) | (1L << (MOD - 128)) | (1L << (NAME - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OPTION_BASE - 128)) | (1L << (OPTION_EXPLICIT - 128)) | (1L << (OPTION_COMPARE - 128)) | (1L << (OPTION_PRIVATE_MODULE - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PTRSAFE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RANDOMIZE - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RMDIR - 128)) | (1L << (RSET - 128)) | (1L << (SAVEPICTURE - 128)) | (1L << (SAVESETTING - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SENDKEYS - 128)) | (1L << (SET - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (SETATTR - 192)) | (1L << (SHARED - 192)) | (1L << (SINGLE - 192)) | (1L << (SPC - 192)) | (1L << (STATIC - 192)) | (1L << (STEP - 192)) | (1L << (STOP - 192)) | (1L << (STRING - 192)) | (1L << (SUB - 192)) | (1L << (TAB - 192)) | (1L << (TEXT - 192)) | (1L << (THEN - 192)) | (1L << (TIME - 192)) | (1L << (TO - 192)) | (1L << (TRUE - 192)) | (1L << (TYPE - 192)) | (1L << (TYPEOF - 192)) | (1L << (UNLOAD - 192)) | (1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (ASSIGN - 192)) | (1L << (DIV - 192)) | (1L << (INTDIV - 192)) | (1L << (EQ - 192)) | (1L << (GEQ - 192)) | (1L << (GT - 192)) | (1L << (LEQ - 192)) | (1L << (LPAREN - 192)) | (1L << (LT - 192)) | (1L << (MINUS - 192)) | (1L << (MULT - 192)) | (1L << (NEQ - 192)) | (1L << (PLUS - 192)) | (1L << (POW - 192)) | (1L << (RPAREN - 192)) | (1L << (HASHCONST - 192)) | (1L << (HASHIF - 192)) | (1L << (L_SQUARE_BRACKET - 192)) | (1L << (R_SQUARE_BRACKET - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (NEWLINE - 192)) | (1L << (REMCOMMENT - 192)) | (1L << (COMMENT - 192)) | (1L << (SINGLEQUOTE - 192)) | (1L << (UNDERSCORE - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)))) != 0) || ((((_la - 256)) & ~0x3f) == 0 && ((1L << (_la - 256)) & ((1L << (LINE_CONTINUATION - 256)) | (1L << (GUIDLITERAL - 256)) | (1L << (ERRORCHAR - 256)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << COMMA) | (1L << COLON) | (1L << SEMICOLON) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_ENUM - 64)) | (1L << (END_FUNCTION - 64)) | (1L << (END_IF - 64)) | (1L << (END_PROPERTY - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_SUB - 64)) | (1L << (END_TYPE - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OPTION_BASE - 128)) | (1L << (OPTION_EXPLICIT - 128)) | (1L << (OPTION_COMPARE - 128)) | (1L << (OPTION_PRIVATE_MODULE - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PTRSAFE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (ASSIGN - 192)) | (1L << (DIV - 192)) | (1L << (INTDIV - 192)) | (1L << (EQ - 192)) | (1L << (GEQ - 192)) | (1L << (GT - 192)) | (1L << (LEQ - 192)) | (1L << (LPAREN - 192)) | (1L << (LT - 192)) | (1L << (MINUS - 192)) | (1L << (MULT - 192)) | (1L << (NEQ - 192)) | (1L << (PLUS - 192)) | (1L << (POW - 192)) | (1L << (RPAREN - 192)) | (1L << (HASHCONST - 192)) | (1L << (HASHIF - 192)) | (1L << (L_SQUARE_BRACKET - 192)) | (1L << (R_SQUARE_BRACKET - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (NEWLINE - 192)) | (1L << (REMCOMMENT - 192)) | (1L << (COMMENT - 192)) | (1L << (SINGLEQUOTE - 192)) | (1L << (UNDERSCORE - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (GUIDLITERAL - 192)) | (1L << (ERRORCHAR - 192)))) != 0)) { { State = 46; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { @@ -524,7 +519,7 @@ public ExtendedLineContext extendedLine() { { State = 84; _la = _input.La(1); - if ( _la <= 0 || (((((_la - 236)) & ~0x3f) == 0 && ((1L << (_la - 236)) & ((1L << (HASHCONST - 236)) | (1L << (HASHIF - 236)) | (1L << (HASHELSEIF - 236)) | (1L << (HASHELSE - 236)) | (1L << (HASHENDIF - 236)))) != 0)) ) { + if ( _la <= 0 || (((((_la - 218)) & ~0x3f) == 0 && ((1L << (_la - 218)) & ((1L << (HASHCONST - 218)) | (1L << (HASHIF - 218)) | (1L << (HASHELSEIF - 218)) | (1L << (HASHELSE - 218)) | (1L << (HASHENDIF - 218)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -1069,7 +1064,7 @@ private CcExpressionContext ccExpression(int _p) { } State = 229; _la = _input.La(1); - if ( !(_la==IS || _la==LIKE || ((((_la - 224)) & ~0x3f) == 0 && ((1L << (_la - 224)) & ((1L << (EQ - 224)) | (1L << (GEQ - 224)) | (1L << (GT - 224)) | (1L << (LEQ - 224)) | (1L << (LT - 224)) | (1L << (NEQ - 224)))) != 0)) ) { + if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -2123,7 +2118,7 @@ public LiteralContext literal() { { State = 409; _la = _input.La(1); - if ( !(((((_la - 94)) & ~0x3f) == 0 && ((1L << (_la - 94)) & ((1L << (EMPTY - 94)) | (1L << (FALSE - 94)) | (1L << (NOTHING - 94)) | (1L << (NULL - 94)))) != 0) || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (TRUE - 206)) | (1L << (STRINGLITERAL - 206)) | (1L << (OCTLITERAL - 206)) | (1L << (HEXLITERAL - 206)) | (1L << (FLOATLITERAL - 206)) | (1L << (INTEGERLITERAL - 206)) | (1L << (DATELITERAL - 206)))) != 0)) ) { + if ( !(((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & ((1L << (EMPTY - 89)) | (1L << (FALSE - 89)) | (1L << (NOTHING - 89)) | (1L << (NULL - 89)))) != 0) || ((((_la - 189)) & ~0x3f) == 0 && ((1L << (_la - 189)) & ((1L << (TRUE - 189)) | (1L << (STRINGLITERAL - 189)) | (1L << (OCTLITERAL - 189)) | (1L << (HEXLITERAL - 189)) | (1L << (FLOATLITERAL - 189)) | (1L << (INTEGERLITERAL - 189)) | (1L << (DATELITERAL - 189)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -2176,7 +2171,7 @@ private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\x104\x19E\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF2\x19E\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -2213,142 +2208,142 @@ private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) "\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x13\x3\x13\x5\x13\x198\n\x13\x3\x14"+ "\x3\x14\x3\x15\x3\x15\x3\x15\x2\x2\x3\xE\x16\x2\x2\x4\x2\x6\x2\b\x2\n"+ "\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2"+ - " \x2\"\x2$\x2&\x2(\x2\x2\n\x3\x2\xEE\xF2\x4\x2\xE0\xE0\xE9\xE9\x4\x2\xE8"+ - "\xE8\xEB\xEB\a\x2\x82\x82\x8B\x8B\xE2\xE5\xE7\xE7\xEA\xEA\x3\x2\xFB\xFB"+ - "\v\x2\x3\x3\x6\n\f\f\xE\x12\x14\x14\x19\x19\x1B\x1B\x1D\x1E\'\'\x5\x2"+ - ",,.\x32\xEC\xEC\a\x2``tt\x99\x9A\xD0\xD0\xF5\xFA\x1CD\x2*\x3\x2\x2\x2"+ - "\x4\x32\x3\x2\x2\x2\x6\x38\x3\x2\x2\x2\bQ\x3\x2\x2\x2\nW\x3\x2\x2\x2\f"+ - "^\x3\x2\x2\x2\xE\x84\x3\x2\x2\x2\x10\x13F\x3\x2\x2\x2\x12\x14C\x3\x2\x2"+ - "\x2\x14\x15B\x3\x2\x2\x2\x16\x15E\x3\x2\x2\x2\x18\x16D\x3\x2\x2\x2\x1A"+ - "\x170\x3\x2\x2\x2\x1C\x173\x3\x2\x2\x2\x1E\x17D\x3\x2\x2\x2 \x182\x3\x2"+ - "\x2\x2\"\x193\x3\x2\x2\x2$\x195\x3\x2\x2\x2&\x199\x3\x2\x2\x2(\x19B\x3"+ - "\x2\x2\x2*+\x5\x4\x3\x2+,\a\x2\x2\x3,\x3\x3\x2\x2\x2-\x31\x5\x6\x4\x2"+ - ".\x31\x5\x10\t\x2/\x31\x5\b\x5\x2\x30-\x3\x2\x2\x2\x30.\x3\x2\x2\x2\x30"+ - "/\x3\x2\x2\x2\x31\x34\x3\x2\x2\x2\x32\x30\x3\x2\x2\x2\x32\x33\x3\x2\x2"+ - "\x2\x33\x5\x3\x2\x2\x2\x34\x32\x3\x2\x2\x2\x35\x37\a\x100\x2\x2\x36\x35"+ - "\x3\x2\x2\x2\x37:\x3\x2\x2\x2\x38\x36\x3\x2\x2\x2\x38\x39\x3\x2\x2\x2"+ - "\x39;\x3\x2\x2\x2:\x38\x3\x2\x2\x2;=\a\xEE\x2\x2<>\a\x100\x2\x2=<\x3\x2"+ - "\x2\x2>?\x3\x2\x2\x2?=\x3\x2\x2\x2?@\x3\x2\x2\x2@\x41\x3\x2\x2\x2\x41"+ - "\x43\x5\f\a\x2\x42\x44\a\x100\x2\x2\x43\x42\x3\x2\x2\x2\x44\x45\x3\x2"+ - "\x2\x2\x45\x43\x3\x2\x2\x2\x45\x46\x3\x2\x2\x2\x46G\x3\x2\x2\x2GI\a\xE2"+ - "\x2\x2HJ\a\x100\x2\x2IH\x3\x2\x2\x2JK\x3\x2\x2\x2KI\x3\x2\x2\x2KL\x3\x2"+ - "\x2\x2LM\x3\x2\x2\x2MN\x5\xE\b\x2NO\x5\x1E\x10\x2O\a\x3\x2\x2\x2PR\x5"+ - "\n\x6\x2QP\x3\x2\x2\x2RS\x3\x2\x2\x2SQ\x3\x2\x2\x2ST\x3\x2\x2\x2T\t\x3"+ - "\x2\x2\x2UX\a\x102\x2\x2VX\n\x2\x2\x2WU\x3\x2\x2\x2WV\x3\x2\x2\x2XY\x3"+ - "\x2\x2\x2YW\x3\x2\x2\x2YZ\x3\x2\x2\x2Z\\\x3\x2\x2\x2[]\a\xFB\x2\x2\\["+ - "\x3\x2\x2\x2\\]\x3\x2\x2\x2]\v\x3\x2\x2\x2^_\x5$\x13\x2_\r\x3\x2\x2\x2"+ - "`\x61\b\b\x1\x2\x61\x65\a\xE8\x2\x2\x62\x64\a\x100\x2\x2\x63\x62\x3\x2"+ - "\x2\x2\x64g\x3\x2\x2\x2\x65\x63\x3\x2\x2\x2\x65\x66\x3\x2\x2\x2\x66h\x3"+ - "\x2\x2\x2g\x65\x3\x2\x2\x2h\x85\x5\xE\b\x12im\a\x98\x2\x2jl\a\x100\x2"+ - "\x2kj\x3\x2\x2\x2lo\x3\x2\x2\x2mk\x3\x2\x2\x2mn\x3\x2\x2\x2np\x3\x2\x2"+ - "\x2om\x3\x2\x2\x2p\x85\x5\xE\b\vqu\a\xE6\x2\x2rt\a\x100\x2\x2sr\x3\x2"+ - "\x2\x2tw\x3\x2\x2\x2us\x3\x2\x2\x2uv\x3\x2\x2\x2vx\x3\x2\x2\x2wu\x3\x2"+ - "\x2\x2x|\x5\xE\b\x2y{\a\x100\x2\x2zy\x3\x2\x2\x2{~\x3\x2\x2\x2|z\x3\x2"+ - "\x2\x2|}\x3\x2\x2\x2}\x7F\x3\x2\x2\x2~|\x3\x2\x2\x2\x7F\x80\a\xED\x2\x2"+ - "\x80\x85\x3\x2\x2\x2\x81\x85\x5 \x11\x2\x82\x85\x5(\x15\x2\x83\x85\x5"+ - "$\x13\x2\x84`\x3\x2\x2\x2\x84i\x3\x2\x2\x2\x84q\x3\x2\x2\x2\x84\x81\x3"+ - "\x2\x2\x2\x84\x82\x3\x2\x2\x2\x84\x83\x3\x2\x2\x2\x85\x13C\x3\x2\x2\x2"+ - "\x86\x8A\f\x13\x2\x2\x87\x89\a\x100\x2\x2\x88\x87\x3\x2\x2\x2\x89\x8C"+ - "\x3\x2\x2\x2\x8A\x88\x3\x2\x2\x2\x8A\x8B\x3\x2\x2\x2\x8B\x8D\x3\x2\x2"+ - "\x2\x8C\x8A\x3\x2\x2\x2\x8D\x91\a\xEC\x2\x2\x8E\x90\a\x100\x2\x2\x8F\x8E"+ - "\x3\x2\x2\x2\x90\x93\x3\x2\x2\x2\x91\x8F\x3\x2\x2\x2\x91\x92\x3\x2\x2"+ - "\x2\x92\x94\x3\x2\x2\x2\x93\x91\x3\x2\x2\x2\x94\x13B\x5\xE\b\x14\x95\x99"+ - "\f\x11\x2\x2\x96\x98\a\x100\x2\x2\x97\x96\x3\x2\x2\x2\x98\x9B\x3\x2\x2"+ - "\x2\x99\x97\x3\x2\x2\x2\x99\x9A\x3\x2\x2\x2\x9A\x9C\x3\x2\x2\x2\x9B\x99"+ - "\x3\x2\x2\x2\x9C\xA0\t\x3\x2\x2\x9D\x9F\a\x100\x2\x2\x9E\x9D\x3\x2\x2"+ - "\x2\x9F\xA2\x3\x2\x2\x2\xA0\x9E\x3\x2\x2\x2\xA0\xA1\x3\x2\x2\x2\xA1\xA3"+ - "\x3\x2\x2\x2\xA2\xA0\x3\x2\x2\x2\xA3\x13B\x5\xE\b\x12\xA4\xA8\f\x10\x2"+ - "\x2\xA5\xA7\a\x100\x2\x2\xA6\xA5\x3\x2\x2\x2\xA7\xAA\x3\x2\x2\x2\xA8\xA6"+ - "\x3\x2\x2\x2\xA8\xA9\x3\x2\x2\x2\xA9\xAB\x3\x2\x2\x2\xAA\xA8\x3\x2\x2"+ - "\x2\xAB\xAF\a\xE1\x2\x2\xAC\xAE\a\x100\x2\x2\xAD\xAC\x3\x2\x2\x2\xAE\xB1"+ - "\x3\x2\x2\x2\xAF\xAD\x3\x2\x2\x2\xAF\xB0\x3\x2\x2\x2\xB0\xB2\x3\x2\x2"+ - "\x2\xB1\xAF\x3\x2\x2\x2\xB2\x13B\x5\xE\b\x11\xB3\xB7\f\xF\x2\x2\xB4\xB6"+ - "\a\x100\x2\x2\xB5\xB4\x3\x2\x2\x2\xB6\xB9\x3\x2\x2\x2\xB7\xB5\x3\x2\x2"+ - "\x2\xB7\xB8\x3\x2\x2\x2\xB8\xBA\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xBA\xBE"+ - "\a\x94\x2\x2\xBB\xBD\a\x100\x2\x2\xBC\xBB\x3\x2\x2\x2\xBD\xC0\x3\x2\x2"+ - "\x2\xBE\xBC\x3\x2\x2\x2\xBE\xBF\x3\x2\x2\x2\xBF\xC1\x3\x2\x2\x2\xC0\xBE"+ - "\x3\x2\x2\x2\xC1\x13B\x5\xE\b\x10\xC2\xC6\f\xE\x2\x2\xC3\xC5\a\x100\x2"+ - "\x2\xC4\xC3\x3\x2\x2\x2\xC5\xC8\x3\x2\x2\x2\xC6\xC4\x3\x2\x2\x2\xC6\xC7"+ - "\x3\x2\x2\x2\xC7\xC9\x3\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC9\xCD\t\x4\x2\x2"+ - "\xCA\xCC\a\x100\x2\x2\xCB\xCA\x3\x2\x2\x2\xCC\xCF\x3\x2\x2\x2\xCD\xCB"+ - "\x3\x2\x2\x2\xCD\xCE\x3\x2\x2\x2\xCE\xD0\x3\x2\x2\x2\xCF\xCD\x3\x2\x2"+ - "\x2\xD0\x13B\x5\xE\b\xF\xD1\xD5\f\r\x2\x2\xD2\xD4\a\x100\x2\x2\xD3\xD2"+ - "\x3\x2\x2\x2\xD4\xD7\x3\x2\x2\x2\xD5\xD3\x3\x2\x2\x2\xD5\xD6\x3\x2\x2"+ - "\x2\xD6\xD8\x3\x2\x2\x2\xD7\xD5\x3\x2\x2\x2\xD8\xDC\a\x32\x2\x2\xD9\xDB"+ - "\a\x100\x2\x2\xDA\xD9\x3\x2\x2\x2\xDB\xDE\x3\x2\x2\x2\xDC\xDA\x3\x2\x2"+ - "\x2\xDC\xDD\x3\x2\x2\x2\xDD\xDF\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDF\x13B"+ - "\x5\xE\b\xE\xE0\xE4\f\f\x2\x2\xE1\xE3\a\x100\x2\x2\xE2\xE1\x3\x2\x2\x2"+ - "\xE3\xE6\x3\x2\x2\x2\xE4\xE2\x3\x2\x2\x2\xE4\xE5\x3\x2\x2\x2\xE5\xE7\x3"+ - "\x2\x2\x2\xE6\xE4\x3\x2\x2\x2\xE7\xEB\t\x5\x2\x2\xE8\xEA\a\x100\x2\x2"+ - "\xE9\xE8\x3\x2\x2\x2\xEA\xED\x3\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3"+ - "\x2\x2\x2\xEC\xEE\x3\x2\x2\x2\xED\xEB\x3\x2\x2\x2\xEE\x13B\x5\xE\b\r\xEF"+ - "\xF3\f\n\x2\x2\xF0\xF2\a\x100\x2\x2\xF1\xF0\x3\x2\x2\x2\xF2\xF5\x3\x2"+ - "\x2\x2\xF3\xF1\x3\x2\x2\x2\xF3\xF4\x3\x2\x2\x2\xF4\xF6\x3\x2\x2\x2\xF5"+ - "\xF3\x3\x2\x2\x2\xF6\xFA\a\x36\x2\x2\xF7\xF9\a\x100\x2\x2\xF8\xF7\x3\x2"+ - "\x2\x2\xF9\xFC\x3\x2\x2\x2\xFA\xF8\x3\x2\x2\x2\xFA\xFB\x3\x2\x2\x2\xFB"+ - "\xFD\x3\x2\x2\x2\xFC\xFA\x3\x2\x2\x2\xFD\x13B\x5\xE\b\v\xFE\x102\f\t\x2"+ - "\x2\xFF\x101\a\x100\x2\x2\x100\xFF\x3\x2\x2\x2\x101\x104\x3\x2\x2\x2\x102"+ - "\x100\x3\x2\x2\x2\x102\x103\x3\x2\x2\x2\x103\x105\x3\x2\x2\x2\x104\x102"+ - "\x3\x2\x2\x2\x105\x109\a\xA4\x2\x2\x106\x108\a\x100\x2\x2\x107\x106\x3"+ - "\x2\x2\x2\x108\x10B\x3\x2\x2\x2\x109\x107\x3\x2\x2\x2\x109\x10A\x3\x2"+ - "\x2\x2\x10A\x10C\x3\x2\x2\x2\x10B\x109\x3\x2\x2\x2\x10C\x13B\x5\xE\b\n"+ - "\x10D\x111\f\b\x2\x2\x10E\x110\a\x100\x2\x2\x10F\x10E\x3\x2\x2\x2\x110"+ - "\x113\x3\x2\x2\x2\x111\x10F\x3\x2\x2\x2\x111\x112\x3\x2\x2\x2\x112\x114"+ - "\x3\x2\x2\x2\x113\x111\x3\x2\x2\x2\x114\x118\a\xDE\x2\x2\x115\x117\a\x100"+ - "\x2\x2\x116\x115\x3\x2\x2\x2\x117\x11A\x3\x2\x2\x2\x118\x116\x3\x2\x2"+ - "\x2\x118\x119\x3\x2\x2\x2\x119\x11B\x3\x2\x2\x2\x11A\x118\x3\x2\x2\x2"+ - "\x11B\x13B\x5\xE\b\t\x11C\x120\f\a\x2\x2\x11D\x11F\a\x100\x2\x2\x11E\x11D"+ - "\x3\x2\x2\x2\x11F\x122\x3\x2\x2\x2\x120\x11E\x3\x2\x2\x2\x120\x121\x3"+ - "\x2\x2\x2\x121\x123\x3\x2\x2\x2\x122\x120\x3\x2\x2\x2\x123\x127\ak\x2"+ - "\x2\x124\x126\a\x100\x2\x2\x125\x124\x3\x2\x2\x2\x126\x129\x3\x2\x2\x2"+ - "\x127\x125\x3\x2\x2\x2\x127\x128\x3\x2\x2\x2\x128\x12A\x3\x2\x2\x2\x129"+ - "\x127\x3\x2\x2\x2\x12A\x13B\x5\xE\b\b\x12B\x12F\f\x6\x2\x2\x12C\x12E\a"+ - "\x100\x2\x2\x12D\x12C\x3\x2\x2\x2\x12E\x131\x3\x2\x2\x2\x12F\x12D\x3\x2"+ - "\x2\x2\x12F\x130\x3\x2\x2\x2\x130\x132\x3\x2\x2\x2\x131\x12F\x3\x2\x2"+ - "\x2\x132\x136\a~\x2\x2\x133\x135\a\x100\x2\x2\x134\x133\x3\x2\x2\x2\x135"+ - "\x138\x3\x2\x2\x2\x136\x134\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139"+ - "\x3\x2\x2\x2\x138\x136\x3\x2\x2\x2\x139\x13B\x5\xE\b\a\x13A\x86\x3\x2"+ - "\x2\x2\x13A\x95\x3\x2\x2\x2\x13A\xA4\x3\x2\x2\x2\x13A\xB3\x3\x2\x2\x2"+ - "\x13A\xC2\x3\x2\x2\x2\x13A\xD1\x3\x2\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xEF"+ - "\x3\x2\x2\x2\x13A\xFE\x3\x2\x2\x2\x13A\x10D\x3\x2\x2\x2\x13A\x11C\x3\x2"+ - "\x2\x2\x13A\x12B\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2"+ - "\x2\x13C\x13D\x3\x2\x2\x2\x13D\xF\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F"+ - "\x140\x5\x12\n\x2\x140\x144\x5\x4\x3\x2\x141\x143\x5\x14\v\x2\x142\x141"+ - "\x3\x2\x2\x2\x143\x146\x3\x2\x2\x2\x144\x142\x3\x2\x2\x2\x144\x145\x3"+ - "\x2\x2\x2\x145\x148\x3\x2\x2\x2\x146\x144\x3\x2\x2\x2\x147\x149\x5\x18"+ - "\r\x2\x148\x147\x3\x2\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2"+ - "\x14A\x14B\x5\x1C\xF\x2\x14B\x11\x3\x2\x2\x2\x14C\x14E\a\xEF\x2\x2\x14D"+ - "\x14F\a\x100\x2\x2\x14E\x14D\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x14E"+ - "\x3\x2\x2\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x154\x5"+ - "\xE\b\x2\x153\x155\a\x100\x2\x2\x154\x153\x3\x2\x2\x2\x155\x156\x3\x2"+ - "\x2\x2\x156\x154\x3\x2\x2\x2\x156\x157\x3\x2\x2\x2\x157\x158\x3\x2\x2"+ - "\x2\x158\x159\a\xCD\x2\x2\x159\x15A\x5\x1E\x10\x2\x15A\x13\x3\x2\x2\x2"+ - "\x15B\x15C\x5\x16\f\x2\x15C\x15D\x5\x4\x3\x2\x15D\x15\x3\x2\x2\x2\x15E"+ - "\x160\a\xF0\x2\x2\x15F\x161\a\x100\x2\x2\x160\x15F\x3\x2\x2\x2\x161\x162"+ - "\x3\x2\x2\x2\x162\x160\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3"+ - "\x2\x2\x2\x164\x166\x5\xE\b\x2\x165\x167\a\x100\x2\x2\x166\x165\x3\x2"+ - "\x2\x2\x167\x168\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2"+ - "\x2\x169\x16A\x3\x2\x2\x2\x16A\x16B\a\xCD\x2\x2\x16B\x16C\x5\x1E\x10\x2"+ - "\x16C\x17\x3\x2\x2\x2\x16D\x16E\x5\x1A\xE\x2\x16E\x16F\x5\x4\x3\x2\x16F"+ - "\x19\x3\x2\x2\x2\x170\x171\a\xF1\x2\x2\x171\x172\x5\x1E\x10\x2\x172\x1B"+ - "\x3\x2\x2\x2\x173\x174\a\xF2\x2\x2\x174\x175\x5\x1E\x10\x2\x175\x1D\x3"+ - "\x2\x2\x2\x176\x17A\a\xFE\x2\x2\x177\x179\n\x6\x2\x2\x178\x177\x3\x2\x2"+ - "\x2\x179\x17C\x3\x2\x2\x2\x17A\x178\x3\x2\x2\x2\x17A\x17B\x3\x2\x2\x2"+ - "\x17B\x17E\x3\x2\x2\x2\x17C\x17A\x3\x2\x2\x2\x17D\x176\x3\x2\x2\x2\x17D"+ - "\x17E\x3\x2\x2\x2\x17E\x180\x3\x2\x2\x2\x17F\x181\a\xFB\x2\x2\x180\x17F"+ - "\x3\x2\x2\x2\x180\x181\x3\x2\x2\x2\x181\x1F\x3\x2\x2\x2\x182\x183\x5\""+ - "\x12\x2\x183\x187\a\xE6\x2\x2\x184\x186\a\x100\x2\x2\x185\x184\x3\x2\x2"+ - "\x2\x186\x189\x3\x2\x2\x2\x187\x185\x3\x2\x2\x2\x187\x188\x3\x2\x2\x2"+ - "\x188\x18A\x3\x2\x2\x2\x189\x187\x3\x2\x2\x2\x18A\x18E\x5\xE\b\x2\x18B"+ - "\x18D\a\x100\x2\x2\x18C\x18B\x3\x2\x2\x2\x18D\x190\x3\x2\x2\x2\x18E\x18C"+ - "\x3\x2\x2\x2\x18E\x18F\x3\x2\x2\x2\x18F\x191\x3\x2\x2\x2\x190\x18E\x3"+ - "\x2\x2\x2\x191\x192\a\xED\x2\x2\x192!\x3\x2\x2\x2\x193\x194\t\a\x2\x2"+ - "\x194#\x3\x2\x2\x2\x195\x197\a\x101\x2\x2\x196\x198\x5&\x14\x2\x197\x196"+ - "\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198%\x3\x2\x2\x2\x199\x19A\t\b\x2"+ - "\x2\x19A\'\x3\x2\x2\x2\x19B\x19C\t\t\x2\x2\x19C)\x3\x2\x2\x2\x37\x30\x32"+ - "\x38?\x45KSWY\\\x65mu|\x84\x8A\x91\x99\xA0\xA8\xAF\xB7\xBE\xC6\xCD\xD5"+ - "\xDC\xE4\xEB\xF3\xFA\x102\x109\x111\x118\x120\x127\x12F\x136\x13A\x13C"+ - "\x144\x148\x150\x156\x162\x168\x17A\x17D\x180\x187\x18E\x197"; + " \x2\"\x2$\x2&\x2(\x2\x2\n\x3\x2\xDC\xE0\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6"+ + "\xD6\xD9\xD9\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2\xE9\xE9\v\x2"+ + "\x3\x3\x6\n\f\f\xE\x12\x14\x14\x19\x19\x1B\x1B\x1D\x1E\'\'\x5\x2,,.\x32"+ + "\xDA\xDA\a\x2[[oo\x8F\x90\xBF\xBF\xE3\xE8\x1CD\x2*\x3\x2\x2\x2\x4\x32"+ + "\x3\x2\x2\x2\x6\x38\x3\x2\x2\x2\bQ\x3\x2\x2\x2\nW\x3\x2\x2\x2\f^\x3\x2"+ + "\x2\x2\xE\x84\x3\x2\x2\x2\x10\x13F\x3\x2\x2\x2\x12\x14C\x3\x2\x2\x2\x14"+ + "\x15B\x3\x2\x2\x2\x16\x15E\x3\x2\x2\x2\x18\x16D\x3\x2\x2\x2\x1A\x170\x3"+ + "\x2\x2\x2\x1C\x173\x3\x2\x2\x2\x1E\x17D\x3\x2\x2\x2 \x182\x3\x2\x2\x2"+ + "\"\x193\x3\x2\x2\x2$\x195\x3\x2\x2\x2&\x199\x3\x2\x2\x2(\x19B\x3\x2\x2"+ + "\x2*+\x5\x4\x3\x2+,\a\x2\x2\x3,\x3\x3\x2\x2\x2-\x31\x5\x6\x4\x2.\x31\x5"+ + "\x10\t\x2/\x31\x5\b\x5\x2\x30-\x3\x2\x2\x2\x30.\x3\x2\x2\x2\x30/\x3\x2"+ + "\x2\x2\x31\x34\x3\x2\x2\x2\x32\x30\x3\x2\x2\x2\x32\x33\x3\x2\x2\x2\x33"+ + "\x5\x3\x2\x2\x2\x34\x32\x3\x2\x2\x2\x35\x37\a\xEE\x2\x2\x36\x35\x3\x2"+ + "\x2\x2\x37:\x3\x2\x2\x2\x38\x36\x3\x2\x2\x2\x38\x39\x3\x2\x2\x2\x39;\x3"+ + "\x2\x2\x2:\x38\x3\x2\x2\x2;=\a\xDC\x2\x2<>\a\xEE\x2\x2=<\x3\x2\x2\x2>"+ + "?\x3\x2\x2\x2?=\x3\x2\x2\x2?@\x3\x2\x2\x2@\x41\x3\x2\x2\x2\x41\x43\x5"+ + "\f\a\x2\x42\x44\a\xEE\x2\x2\x43\x42\x3\x2\x2\x2\x44\x45\x3\x2\x2\x2\x45"+ + "\x43\x3\x2\x2\x2\x45\x46\x3\x2\x2\x2\x46G\x3\x2\x2\x2GI\a\xD0\x2\x2HJ"+ + "\a\xEE\x2\x2IH\x3\x2\x2\x2JK\x3\x2\x2\x2KI\x3\x2\x2\x2KL\x3\x2\x2\x2L"+ + "M\x3\x2\x2\x2MN\x5\xE\b\x2NO\x5\x1E\x10\x2O\a\x3\x2\x2\x2PR\x5\n\x6\x2"+ + "QP\x3\x2\x2\x2RS\x3\x2\x2\x2SQ\x3\x2\x2\x2ST\x3\x2\x2\x2T\t\x3\x2\x2\x2"+ + "UX\a\xF0\x2\x2VX\n\x2\x2\x2WU\x3\x2\x2\x2WV\x3\x2\x2\x2XY\x3\x2\x2\x2"+ + "YW\x3\x2\x2\x2YZ\x3\x2\x2\x2Z\\\x3\x2\x2\x2[]\a\xE9\x2\x2\\[\x3\x2\x2"+ + "\x2\\]\x3\x2\x2\x2]\v\x3\x2\x2\x2^_\x5$\x13\x2_\r\x3\x2\x2\x2`\x61\b\b"+ + "\x1\x2\x61\x65\a\xD6\x2\x2\x62\x64\a\xEE\x2\x2\x63\x62\x3\x2\x2\x2\x64"+ + "g\x3\x2\x2\x2\x65\x63\x3\x2\x2\x2\x65\x66\x3\x2\x2\x2\x66h\x3\x2\x2\x2"+ + "g\x65\x3\x2\x2\x2h\x85\x5\xE\b\x12im\a\x8E\x2\x2jl\a\xEE\x2\x2kj\x3\x2"+ + "\x2\x2lo\x3\x2\x2\x2mk\x3\x2\x2\x2mn\x3\x2\x2\x2np\x3\x2\x2\x2om\x3\x2"+ + "\x2\x2p\x85\x5\xE\b\vqu\a\xD4\x2\x2rt\a\xEE\x2\x2sr\x3\x2\x2\x2tw\x3\x2"+ + "\x2\x2us\x3\x2\x2\x2uv\x3\x2\x2\x2vx\x3\x2\x2\x2wu\x3\x2\x2\x2x|\x5\xE"+ + "\b\x2y{\a\xEE\x2\x2zy\x3\x2\x2\x2{~\x3\x2\x2\x2|z\x3\x2\x2\x2|}\x3\x2"+ + "\x2\x2}\x7F\x3\x2\x2\x2~|\x3\x2\x2\x2\x7F\x80\a\xDB\x2\x2\x80\x85\x3\x2"+ + "\x2\x2\x81\x85\x5 \x11\x2\x82\x85\x5(\x15\x2\x83\x85\x5$\x13\x2\x84`\x3"+ + "\x2\x2\x2\x84i\x3\x2\x2\x2\x84q\x3\x2\x2\x2\x84\x81\x3\x2\x2\x2\x84\x82"+ + "\x3\x2\x2\x2\x84\x83\x3\x2\x2\x2\x85\x13C\x3\x2\x2\x2\x86\x8A\f\x13\x2"+ + "\x2\x87\x89\a\xEE\x2\x2\x88\x87\x3\x2\x2\x2\x89\x8C\x3\x2\x2\x2\x8A\x88"+ + "\x3\x2\x2\x2\x8A\x8B\x3\x2\x2\x2\x8B\x8D\x3\x2\x2\x2\x8C\x8A\x3\x2\x2"+ + "\x2\x8D\x91\a\xDA\x2\x2\x8E\x90\a\xEE\x2\x2\x8F\x8E\x3\x2\x2\x2\x90\x93"+ + "\x3\x2\x2\x2\x91\x8F\x3\x2\x2\x2\x91\x92\x3\x2\x2\x2\x92\x94\x3\x2\x2"+ + "\x2\x93\x91\x3\x2\x2\x2\x94\x13B\x5\xE\b\x14\x95\x99\f\x11\x2\x2\x96\x98"+ + "\a\xEE\x2\x2\x97\x96\x3\x2\x2\x2\x98\x9B\x3\x2\x2\x2\x99\x97\x3\x2\x2"+ + "\x2\x99\x9A\x3\x2\x2\x2\x9A\x9C\x3\x2\x2\x2\x9B\x99\x3\x2\x2\x2\x9C\xA0"+ + "\t\x3\x2\x2\x9D\x9F\a\xEE\x2\x2\x9E\x9D\x3\x2\x2\x2\x9F\xA2\x3\x2\x2\x2"+ + "\xA0\x9E\x3\x2\x2\x2\xA0\xA1\x3\x2\x2\x2\xA1\xA3\x3\x2\x2\x2\xA2\xA0\x3"+ + "\x2\x2\x2\xA3\x13B\x5\xE\b\x12\xA4\xA8\f\x10\x2\x2\xA5\xA7\a\xEE\x2\x2"+ + "\xA6\xA5\x3\x2\x2\x2\xA7\xAA\x3\x2\x2\x2\xA8\xA6\x3\x2\x2\x2\xA8\xA9\x3"+ + "\x2\x2\x2\xA9\xAB\x3\x2\x2\x2\xAA\xA8\x3\x2\x2\x2\xAB\xAF\a\xCF\x2\x2"+ + "\xAC\xAE\a\xEE\x2\x2\xAD\xAC\x3\x2\x2\x2\xAE\xB1\x3\x2\x2\x2\xAF\xAD\x3"+ + "\x2\x2\x2\xAF\xB0\x3\x2\x2\x2\xB0\xB2\x3\x2\x2\x2\xB1\xAF\x3\x2\x2\x2"+ + "\xB2\x13B\x5\xE\b\x11\xB3\xB7\f\xF\x2\x2\xB4\xB6\a\xEE\x2\x2\xB5\xB4\x3"+ + "\x2\x2\x2\xB6\xB9\x3\x2\x2\x2\xB7\xB5\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2"+ + "\xB8\xBA\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xBA\xBE\a\x8B\x2\x2\xBB\xBD\a"+ + "\xEE\x2\x2\xBC\xBB\x3\x2\x2\x2\xBD\xC0\x3\x2\x2\x2\xBE\xBC\x3\x2\x2\x2"+ + "\xBE\xBF\x3\x2\x2\x2\xBF\xC1\x3\x2\x2\x2\xC0\xBE\x3\x2\x2\x2\xC1\x13B"+ + "\x5\xE\b\x10\xC2\xC6\f\xE\x2\x2\xC3\xC5\a\xEE\x2\x2\xC4\xC3\x3\x2\x2\x2"+ + "\xC5\xC8\x3\x2\x2\x2\xC6\xC4\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2\xC7\xC9\x3"+ + "\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC9\xCD\t\x4\x2\x2\xCA\xCC\a\xEE\x2\x2\xCB"+ + "\xCA\x3\x2\x2\x2\xCC\xCF\x3\x2\x2\x2\xCD\xCB\x3\x2\x2\x2\xCD\xCE\x3\x2"+ + "\x2\x2\xCE\xD0\x3\x2\x2\x2\xCF\xCD\x3\x2\x2\x2\xD0\x13B\x5\xE\b\xF\xD1"+ + "\xD5\f\r\x2\x2\xD2\xD4\a\xEE\x2\x2\xD3\xD2\x3\x2\x2\x2\xD4\xD7\x3\x2\x2"+ + "\x2\xD5\xD3\x3\x2\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\xD8\x3\x2\x2\x2\xD7\xD5"+ + "\x3\x2\x2\x2\xD8\xDC\a\x32\x2\x2\xD9\xDB\a\xEE\x2\x2\xDA\xD9\x3\x2\x2"+ + "\x2\xDB\xDE\x3\x2\x2\x2\xDC\xDA\x3\x2\x2\x2\xDC\xDD\x3\x2\x2\x2\xDD\xDF"+ + "\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDF\x13B\x5\xE\b\xE\xE0\xE4\f\f\x2\x2"+ + "\xE1\xE3\a\xEE\x2\x2\xE2\xE1\x3\x2\x2\x2\xE3\xE6\x3\x2\x2\x2\xE4\xE2\x3"+ + "\x2\x2\x2\xE4\xE5\x3\x2\x2\x2\xE5\xE7\x3\x2\x2\x2\xE6\xE4\x3\x2\x2\x2"+ + "\xE7\xEB\t\x5\x2\x2\xE8\xEA\a\xEE\x2\x2\xE9\xE8\x3\x2\x2\x2\xEA\xED\x3"+ + "\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2\xEC\xEE\x3\x2\x2\x2"+ + "\xED\xEB\x3\x2\x2\x2\xEE\x13B\x5\xE\b\r\xEF\xF3\f\n\x2\x2\xF0\xF2\a\xEE"+ + "\x2\x2\xF1\xF0\x3\x2\x2\x2\xF2\xF5\x3\x2\x2\x2\xF3\xF1\x3\x2\x2\x2\xF3"+ + "\xF4\x3\x2\x2\x2\xF4\xF6\x3\x2\x2\x2\xF5\xF3\x3\x2\x2\x2\xF6\xFA\a\x36"+ + "\x2\x2\xF7\xF9\a\xEE\x2\x2\xF8\xF7\x3\x2\x2\x2\xF9\xFC\x3\x2\x2\x2\xFA"+ + "\xF8\x3\x2\x2\x2\xFA\xFB\x3\x2\x2\x2\xFB\xFD\x3\x2\x2\x2\xFC\xFA\x3\x2"+ + "\x2\x2\xFD\x13B\x5\xE\b\v\xFE\x102\f\t\x2\x2\xFF\x101\a\xEE\x2\x2\x100"+ + "\xFF\x3\x2\x2\x2\x101\x104\x3\x2\x2\x2\x102\x100\x3\x2\x2\x2\x102\x103"+ + "\x3\x2\x2\x2\x103\x105\x3\x2\x2\x2\x104\x102\x3\x2\x2\x2\x105\x109\a\x9A"+ + "\x2\x2\x106\x108\a\xEE\x2\x2\x107\x106\x3\x2\x2\x2\x108\x10B\x3\x2\x2"+ + "\x2\x109\x107\x3\x2\x2\x2\x109\x10A\x3\x2\x2\x2\x10A\x10C\x3\x2\x2\x2"+ + "\x10B\x109\x3\x2\x2\x2\x10C\x13B\x5\xE\b\n\x10D\x111\f\b\x2\x2\x10E\x110"+ + "\a\xEE\x2\x2\x10F\x10E\x3\x2\x2\x2\x110\x113\x3\x2\x2\x2\x111\x10F\x3"+ + "\x2\x2\x2\x111\x112\x3\x2\x2\x2\x112\x114\x3\x2\x2\x2\x113\x111\x3\x2"+ + "\x2\x2\x114\x118\a\xCC\x2\x2\x115\x117\a\xEE\x2\x2\x116\x115\x3\x2\x2"+ + "\x2\x117\x11A\x3\x2\x2\x2\x118\x116\x3\x2\x2\x2\x118\x119\x3\x2\x2\x2"+ + "\x119\x11B\x3\x2\x2\x2\x11A\x118\x3\x2\x2\x2\x11B\x13B\x5\xE\b\t\x11C"+ + "\x120\f\a\x2\x2\x11D\x11F\a\xEE\x2\x2\x11E\x11D\x3\x2\x2\x2\x11F\x122"+ + "\x3\x2\x2\x2\x120\x11E\x3\x2\x2\x2\x120\x121\x3\x2\x2\x2\x121\x123\x3"+ + "\x2\x2\x2\x122\x120\x3\x2\x2\x2\x123\x127\a\x66\x2\x2\x124\x126\a\xEE"+ + "\x2\x2\x125\x124\x3\x2\x2\x2\x126\x129\x3\x2\x2\x2\x127\x125\x3\x2\x2"+ + "\x2\x127\x128\x3\x2\x2\x2\x128\x12A\x3\x2\x2\x2\x129\x127\x3\x2\x2\x2"+ + "\x12A\x13B\x5\xE\b\b\x12B\x12F\f\x6\x2\x2\x12C\x12E\a\xEE\x2\x2\x12D\x12C"+ + "\x3\x2\x2\x2\x12E\x131\x3\x2\x2\x2\x12F\x12D\x3\x2\x2\x2\x12F\x130\x3"+ + "\x2\x2\x2\x130\x132\x3\x2\x2\x2\x131\x12F\x3\x2\x2\x2\x132\x136\ax\x2"+ + "\x2\x133\x135\a\xEE\x2\x2\x134\x133\x3\x2\x2\x2\x135\x138\x3\x2\x2\x2"+ + "\x136\x134\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x3\x2\x2\x2\x138"+ + "\x136\x3\x2\x2\x2\x139\x13B\x5\xE\b\a\x13A\x86\x3\x2\x2\x2\x13A\x95\x3"+ + "\x2\x2\x2\x13A\xA4\x3\x2\x2\x2\x13A\xB3\x3\x2\x2\x2\x13A\xC2\x3\x2\x2"+ + "\x2\x13A\xD1\x3\x2\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xEF\x3\x2\x2\x2\x13A"+ + "\xFE\x3\x2\x2\x2\x13A\x10D\x3\x2\x2\x2\x13A\x11C\x3\x2\x2\x2\x13A\x12B"+ + "\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2\x13C\x13D\x3"+ + "\x2\x2\x2\x13D\xF\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F\x140\x5\x12\n"+ + "\x2\x140\x144\x5\x4\x3\x2\x141\x143\x5\x14\v\x2\x142\x141\x3\x2\x2\x2"+ + "\x143\x146\x3\x2\x2\x2\x144\x142\x3\x2\x2\x2\x144\x145\x3\x2\x2\x2\x145"+ + "\x148\x3\x2\x2\x2\x146\x144\x3\x2\x2\x2\x147\x149\x5\x18\r\x2\x148\x147"+ + "\x3\x2\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2\x14A\x14B\x5"+ + "\x1C\xF\x2\x14B\x11\x3\x2\x2\x2\x14C\x14E\a\xDD\x2\x2\x14D\x14F\a\xEE"+ + "\x2\x2\x14E\x14D\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x14E\x3\x2\x2"+ + "\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x154\x5\xE\b\x2\x153"+ + "\x155\a\xEE\x2\x2\x154\x153\x3\x2\x2\x2\x155\x156\x3\x2\x2\x2\x156\x154"+ + "\x3\x2\x2\x2\x156\x157\x3\x2\x2\x2\x157\x158\x3\x2\x2\x2\x158\x159\a\xBD"+ + "\x2\x2\x159\x15A\x5\x1E\x10\x2\x15A\x13\x3\x2\x2\x2\x15B\x15C\x5\x16\f"+ + "\x2\x15C\x15D\x5\x4\x3\x2\x15D\x15\x3\x2\x2\x2\x15E\x160\a\xDE\x2\x2\x15F"+ + "\x161\a\xEE\x2\x2\x160\x15F\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x160"+ + "\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3\x2\x2\x2\x164\x166\x5"+ + "\xE\b\x2\x165\x167\a\xEE\x2\x2\x166\x165\x3\x2\x2\x2\x167\x168\x3\x2\x2"+ + "\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3\x2\x2\x2"+ + "\x16A\x16B\a\xBD\x2\x2\x16B\x16C\x5\x1E\x10\x2\x16C\x17\x3\x2\x2\x2\x16D"+ + "\x16E\x5\x1A\xE\x2\x16E\x16F\x5\x4\x3\x2\x16F\x19\x3\x2\x2\x2\x170\x171"+ + "\a\xDF\x2\x2\x171\x172\x5\x1E\x10\x2\x172\x1B\x3\x2\x2\x2\x173\x174\a"+ + "\xE0\x2\x2\x174\x175\x5\x1E\x10\x2\x175\x1D\x3\x2\x2\x2\x176\x17A\a\xEC"+ + "\x2\x2\x177\x179\n\x6\x2\x2\x178\x177\x3\x2\x2\x2\x179\x17C\x3\x2\x2\x2"+ + "\x17A\x178\x3\x2\x2\x2\x17A\x17B\x3\x2\x2\x2\x17B\x17E\x3\x2\x2\x2\x17C"+ + "\x17A\x3\x2\x2\x2\x17D\x176\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x180"+ + "\x3\x2\x2\x2\x17F\x181\a\xE9\x2\x2\x180\x17F\x3\x2\x2\x2\x180\x181\x3"+ + "\x2\x2\x2\x181\x1F\x3\x2\x2\x2\x182\x183\x5\"\x12\x2\x183\x187\a\xD4\x2"+ + "\x2\x184\x186\a\xEE\x2\x2\x185\x184\x3\x2\x2\x2\x186\x189\x3\x2\x2\x2"+ + "\x187\x185\x3\x2\x2\x2\x187\x188\x3\x2\x2\x2\x188\x18A\x3\x2\x2\x2\x189"+ + "\x187\x3\x2\x2\x2\x18A\x18E\x5\xE\b\x2\x18B\x18D\a\xEE\x2\x2\x18C\x18B"+ + "\x3\x2\x2\x2\x18D\x190\x3\x2\x2\x2\x18E\x18C\x3\x2\x2\x2\x18E\x18F\x3"+ + "\x2\x2\x2\x18F\x191\x3\x2\x2\x2\x190\x18E\x3\x2\x2\x2\x191\x192\a\xDB"+ + "\x2\x2\x192!\x3\x2\x2\x2\x193\x194\t\a\x2\x2\x194#\x3\x2\x2\x2\x195\x197"+ + "\a\xEF\x2\x2\x196\x198\x5&\x14\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3\x2"+ + "\x2\x2\x198%\x3\x2\x2\x2\x199\x19A\t\b\x2\x2\x19A\'\x3\x2\x2\x2\x19B\x19C"+ + "\t\t\x2\x2\x19C)\x3\x2\x2\x2\x37\x30\x32\x38?\x45KSWY\\\x65mu|\x84\x8A"+ + "\x91\x99\xA0\xA8\xAF\xB7\xBE\xC6\xCD\xD5\xDC\xE4\xEB\xF3\xFA\x102\x109"+ + "\x111\x118\x120\x127\x12F\x136\x13A\x13C\x144\x148\x150\x156\x162\x168"+ + "\x17A\x17D\x180\x187\x18E\x197"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 7d02ff602c..63335b6053 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -31,12 +31,19 @@ private void Visit(IndexExpression expression, Func module.Equals(Declaration.GetModuleParent(m)) && m.DeclarationType == DeclarationType.Event).FirstOrDefault(); + } + + public Declaration FindLabel(Declaration procedure, string label) + { + var matches = MatchName(label); + return matches.Where(m => procedure.Equals(m.ParentDeclaration) && m.DeclarationType == DeclarationType.LineLabel).FirstOrDefault(); + } + public IEnumerable MatchName(string name) { var normalizedName = name.ToLowerInvariant(); @@ -308,7 +320,7 @@ public Declaration FindMemberReferencedProject(Declaration callingProject, Decla public Declaration FindMemberReferencedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, DeclarationType moduleType, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetModuleParent(p).DeclarationType == moduleType); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && (Declaration.GetModuleParent(p) == null || Declaration.GetModuleParent(p).DeclarationType == moduleType)); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; @@ -316,7 +328,7 @@ public Declaration FindMemberReferencedProjectInModule(Declaration callingProjec public Declaration FindMemberReferencedProjectInGlobalClassModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && Declaration.GetModuleParent(p).DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)Declaration.GetModuleParent(p)).IsGlobalClassModule); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType) && (Declaration.GetModuleParent(p) == null || Declaration.GetModuleParent(p).DeclarationType == DeclarationType.ClassModule) && ((ClassModuleDeclaration)Declaration.GetModuleParent(p)).IsGlobalClassModule); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index 58f823306d..43171f8df7 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -118,11 +118,61 @@ public override void EnterSelectCaseStmt(VBAParser.SelectCaseStmtContext context _resolver.Resolve(context); } + public override void EnterGoToStmt(VBAParser.GoToStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterOnGoToStmt(VBAParser.OnGoToStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterGoSubStmt([NotNull] VBAParser.GoSubStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterOnGoSubStmt(VBAParser.OnGoSubStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterExplicitCallStmt(VBAParser.ExplicitCallStmtContext context) { _resolver.Resolve(context); } + public override void EnterConstStmt(VBAParser.ConstStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterRedimStmt(VBAParser.RedimStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterEraseStmt(VBAParser.EraseStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterMidStmt(VBAParser.MidStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterLsetStmt(VBAParser.LsetStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterRsetStmt(VBAParser.RsetStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterICS_B_ProcedureCall(VBAParser.ICS_B_ProcedureCallContext context) { _resolver.Resolve(context); @@ -173,6 +223,82 @@ public override void EnterICS_S_DictionaryCall(VBAParser.ICS_S_DictionaryCallCon } } + public override void EnterOpenStmt(VBAParser.OpenStmtContext context) + { + _resolver.Resolve(context); + } + + + + + + public override void EnterCloseStmt(VBAParser.CloseStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterSeekStmt([NotNull] VBAParser.SeekStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterLockStmt([NotNull] VBAParser.LockStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterUnlockStmt([NotNull] VBAParser.UnlockStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterLineInputStmt([NotNull] VBAParser.LineInputStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterWidthStmt([NotNull] VBAParser.WidthStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterPrintStmt([NotNull] VBAParser.PrintStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterWriteStmt([NotNull] VBAParser.WriteStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterInputStmt([NotNull] VBAParser.InputStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterPutStmt([NotNull] VBAParser.PutStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterGetStmt([NotNull] VBAParser.GetStmtContext context) + { + _resolver.Resolve(context); + } + + + + public override void EnterOnErrorStmt(VBAParser.OnErrorStmtContext context) + { + _resolver.Resolve(context); + } + + public override void EnterErrorStmt(VBAParser.ErrorStmtContext context) + { + _resolver.Resolve(context); + } + public override void EnterLetStmt(VBAParser.LetStmtContext context) { _resolver.Resolve(context); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 55ee45406a..c2dfb3dbd1 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -83,6 +83,7 @@ public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, Decl var typeBindingContext = new TypeBindingContext(_declarationFinder); var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( + _declarationFinder, new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), typeBindingContext, procedurePointerBindingContext); @@ -120,6 +121,7 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(expr, declaration)); qualifier = boundExpression.ReferencedDeclaration; } + Resolve(context.block()); // note: pushes null if unresolved _withBlockQualifiers.Push(qualifier); _withBlockExpressions.Push(boundExpression); @@ -422,6 +424,7 @@ private Declaration ResolveType(Declaration parent) private static readonly Type[] IdentifierContexts = { typeof (VBAParser.IdentifierContext), + typeof (VBAParser.UnrestrictedIdentifierContext), }; private Declaration ResolveInternal(ParserRuleContext callSiteContext, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, VBAParser.DictionaryCallStmtContext fieldCall = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) @@ -731,11 +734,11 @@ public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) { parentType = ResolveType(_withBlockQualifiers.Peek()); parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), parentType, ContextAccessorType.GetValueOrReference) - ?? ResolveInternal(context.identifier(), parentType); + ?? ResolveInternal(context.unrestrictedIdentifier(), parentType); parentType = ResolveType(parentScope); } - var identifierContext = context.identifier(); + var identifierContext = context.unrestrictedIdentifier(); Declaration member = null; if (parentType != null) { @@ -762,7 +765,7 @@ public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) var reference = CreateReference(identifierContext, member); if (reference != null) { - parentScope.AddMemberCall(CreateReference(context.identifier(), member)); + parentScope.AddMemberCall(CreateReference(context.unrestrictedIdentifier(), member)); member.AddReference(reference); _alreadyResolved.Add(reference.Context); } @@ -882,68 +885,148 @@ public void Resolve(VBAParser.ICS_S_MembersCallContext context) _alreadyResolved.Add(context); } - public void Resolve(VBAParser.WhileWendStmtContext context) + public void Resolve(VBAParser.OnErrorStmtContext context) { - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); + if (context.valueStmt() == null) + { + return; + } + ResolveLabel(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.ErrorStmtContext context) + { + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + } + + private void ResolveLabel(ParserRuleContext context, string label) + { + var labelDeclaration = _bindingService.ResolveGoTo(_currentParent, label); + if (labelDeclaration != null) + { + labelDeclaration.AddReference(CreateReference(context, labelDeclaration)); + } + } + + private void ResolveDefault(ParserRuleContext context, string expression, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) + { + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); if (boundExpression != null) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context, declaration, isAssignmentTarget, hasExplicitLetStatement)); } - // TODO: Resolve block } - public void Resolve(VBAParser.DoLoopStmtContext context) + public void Resolve(VBAParser.GoToStmtContext context) { - if (context.valueStmt() == null) + ResolveLabel(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.OnGoToStmtContext context) + { + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText()); + for (int labelIndex = 1; labelIndex < context.valueStmt().Count; labelIndex++) + { + ResolveLabel(context.valueStmt()[labelIndex], context.valueStmt()[labelIndex].GetText()); + } + } + + public void Resolve(VBAParser.GoSubStmtContext context) + { + ResolveLabel(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.OnGoSubStmtContext context) + { + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText()); + for (int labelIndex = 1; labelIndex < context.valueStmt().Count; labelIndex++) + { + ResolveLabel(context.valueStmt()[labelIndex], context.valueStmt()[labelIndex].GetText()); + } + } + + public void Resolve(VBAParser.RedimStmtContext context) + { + foreach (var redimStmt in context.redimSubStmt()) + { + foreach (var dimSpec in redimStmt.subscripts().subscript()) + { + foreach (var expr in dimSpec.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + } + } + + public void Resolve(VBAParser.BlockContext context) + { + if (context == null) { return; } - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); - if (boundExpression != null) + foreach (var stmt in context.blockStmt()) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); + Resolve(stmt); } - // TODO: Resolve block } - public void Resolve(VBAParser.BlockIfThenElseContext context) + public void Resolve(VBAParser.BlockStmtContext context) + { + //if (context == null) + //{ + // return; + //} + //dynamic ctx = context; + //Resolve(ctx); + } + + public void Resolve(VBAParser.WhileWendStmtContext context) + { + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + Resolve(context.block()); + } + + public void Resolve(VBAParser.DoLoopStmtContext context) { - var ifExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.ifBlockStmt().ifConditionStmt().GetText(), GetInnerMostWithExpression()); - if (ifExpr != null) + if (context.valueStmt() == null) { - _boundExpressionVisitor.AddIdentifierReferences(ifExpr, declaration => CreateReference(context.ifBlockStmt().ifConditionStmt(), declaration)); + return; } + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + Resolve(context.block()); + } + + public void Resolve(VBAParser.BlockIfThenElseContext context) + { + ResolveDefault(context.ifBlockStmt().ifConditionStmt(), context.ifBlockStmt().ifConditionStmt().GetText()); + Resolve(context.ifBlockStmt().block()); if (context.ifElseIfBlockStmt() != null) { foreach (var elseIfBlock in context.ifElseIfBlockStmt()) { - var elseIfExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, elseIfBlock.ifConditionStmt().GetText(), GetInnerMostWithExpression()); - if (elseIfExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(elseIfExpr, declaration => CreateReference(elseIfBlock.ifConditionStmt(), declaration)); - } + ResolveDefault(elseIfBlock.ifConditionStmt(), elseIfBlock.ifConditionStmt().GetText()); + Resolve(elseIfBlock.block()); } } - // TODO: Resolve blocks. + if (context.ifElseBlockStmt() != null) + { + Resolve(context.ifElseBlockStmt().block()); + } } public void Resolve(VBAParser.InlineIfThenElseContext context) { - var ifExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.ifConditionStmt().GetText(), GetInnerMostWithExpression()); - if (ifExpr != null) + ResolveDefault(context.ifConditionStmt(), context.ifConditionStmt().GetText()); + foreach (var blockStmt in context.blockStmt()) { - _boundExpressionVisitor.AddIdentifierReferences(ifExpr, declaration => CreateReference(context.ifConditionStmt(), declaration)); + Resolve(blockStmt); } - // TODO: Resolve blocks. } public void Resolve(VBAParser.SelectCaseStmtContext context) { - var selectExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); - if (selectExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(selectExpr, declaration => CreateReference(context.valueStmt(), declaration)); - } + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); if (context.sC_Case() != null) { foreach (var caseClauseBlock in context.sC_Case()) @@ -956,40 +1039,24 @@ public void Resolve(VBAParser.SelectCaseStmtContext context) if (selectClause is VBAParser.CaseCondIsContext) { var ctx = (VBAParser.CaseCondIsContext)selectClause; - var clauseExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt().GetText(), GetInnerMostWithExpression()); - if (clauseExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(clauseExpr, declaration => CreateReference(ctx.valueStmt(), declaration)); - } + ResolveDefault(ctx.valueStmt(), ctx.valueStmt().GetText()); } else if (selectClause is VBAParser.CaseCondToContext) { var ctx = (VBAParser.CaseCondToContext)selectClause; - var fromExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt()[0].GetText(), GetInnerMostWithExpression()); - if (fromExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(fromExpr, declaration => CreateReference(ctx.valueStmt()[0], declaration)); - } - var toExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, ctx.valueStmt()[1].GetText(), GetInnerMostWithExpression()); - if (toExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(toExpr, declaration => CreateReference(ctx.valueStmt()[1], declaration)); - } + ResolveDefault(ctx.valueStmt()[0], ctx.valueStmt()[0].GetText()); + ResolveDefault(ctx.valueStmt()[0], ctx.valueStmt()[0].GetText()); } else { var ctx = (VBAParser.CaseCondValueContext)selectClause; - var clauseExpr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt().GetText(), GetInnerMostWithExpression()); - if (clauseExpr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(clauseExpr, declaration => CreateReference(context.valueStmt(), declaration)); - } + ResolveDefault(ctx.valueStmt(), ctx.valueStmt().GetText()); } } } + Resolve(caseClauseBlock.block()); } } - // TODO: Resolve blocks. } private string GetParentComTypeName(Declaration declaration) @@ -998,7 +1065,16 @@ private string GetParentComTypeName(Declaration declaration) { return string.Empty; } - var property = declaration.QualifiedName.QualifiedModuleName.Component.Properties.OfType().Where(p => p.Name == "Parent").FirstOrDefault(); + Property property; + try + { + property = declaration.QualifiedName.QualifiedModuleName.Component.Properties.OfType().Where(p => p.Name == "Parent").FirstOrDefault(); + } + catch + { + // TODO: Doesn't work in MS Access. + return string.Empty; + } if (property != null) { return ComHelper.GetTypeName(property.Object); @@ -1039,30 +1115,161 @@ private void TryResolve(TContext context) where TContext : ParserRuleC { return; } - ResolveInternal(context, _currentScope); } public void Resolve(VBAParser.LetStmtContext context) { - var leftSide = context.implicitCallStmt_InStmt(); var letStatement = context.LET(); - ResolveInternal(leftSide, _currentScope, ContextAccessorType.AssignValue, letStatement != null, true); + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), true, letStatement != null); + ResolveDefault(context.valueStmt()[1], context.valueStmt()[1].GetText()); } public void Resolve(VBAParser.SetStmtContext context) { - var leftSide = context.implicitCallStmt_InStmt(); - ResolveInternal(leftSide, _currentScope, ContextAccessorType.AssignReference, false, true); + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), true, false); + ResolveDefault(context.valueStmt()[1], context.valueStmt()[1].GetText()); } public void Resolve(VBAParser.ExplicitCallStmtContext context) { - var expression = context.explicitCallStmtExpression().GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); - if (boundExpression != null) + ResolveDefault(context.explicitCallStmtExpression(), context.explicitCallStmtExpression().GetText()); + } + + public void Resolve(VBAParser.ConstStmtContext context) + { + foreach (var constStmt in context.constSubStmt()) + { + ResolveDefault(constStmt.valueStmt(), constStmt.valueStmt().GetText()); + } + } + + public void Resolve(VBAParser.EraseStmtContext context) + { + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.OpenStmtContext context) + { + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + } + + public void Resolve(VBAParser.CloseStmtContext context) + { + foreach (var expr in context.fileNumber()) + { + ResolveDefault(expr.valueStmt(), expr.valueStmt().GetText()); + } + } + + public void Resolve(VBAParser.SeekStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.LockStmtContext context) + { + foreach (var expr in context.valueStmt()) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.explicitCallStmtExpression(), declaration)); + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.UnlockStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.LineInputStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.WidthStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.PrintStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.outputList().outputList_Expression()) + { + if (expr.valueStmt() != null) + { + ResolveDefault(expr.valueStmt(), expr.valueStmt().GetText()); + } + ResolveArgsCall(expr.argsCall()); + } + } + + public void Resolve(VBAParser.WriteStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.outputList().outputList_Expression()) + { + if (expr.valueStmt() != null) + { + ResolveDefault(expr.valueStmt(), expr.valueStmt().GetText()); + } + ResolveArgsCall(expr.argsCall()); + } + } + + public void Resolve(VBAParser.InputStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.PutStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.GetStmtContext context) + { + ResolveDefault(context.fileNumber().valueStmt(), context.fileNumber().valueStmt().GetText()); + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.LsetStmtContext context) + { + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); + } + } + + public void Resolve(VBAParser.RsetStmtContext context) + { + foreach (var expr in context.valueStmt()) + { + ResolveDefault(expr, expr.GetText()); } } @@ -1107,7 +1314,6 @@ public void Resolve(VBAParser.ForNextStmtContext context) // each iteration also counts as a plain usage _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration)); } - for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { var expr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[exprIndex].GetText(), GetInnerMostWithExpression()); @@ -1116,8 +1322,7 @@ public void Resolve(VBAParser.ForNextStmtContext context) _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); } } - - // TODO: resolve block + Resolve(context.block()); } public void Resolve(VBAParser.ForEachStmtContext context) @@ -1139,8 +1344,7 @@ public void Resolve(VBAParser.ForEachStmtContext context) _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); } } - - // TODO: resolve block + Resolve(context.block()); } public void Resolve(VBAParser.ImplementsStmtContext context) @@ -1163,12 +1367,68 @@ public void Resolve(VBAParser.VsAddressOfContext context) public void Resolve(VBAParser.RaiseEventStmtContext context) { - ResolveInternal(context.identifier(), _currentScope); + var eventDeclaration = _bindingService.ResolveEvent(_moduleDeclaration, context.identifier().GetText()); + if (eventDeclaration != null) + { + eventDeclaration.AddReference(CreateReference(context.identifier(), eventDeclaration)); + } + ResolveArgsCall(context.argsCall()); + } + + public void Resolve(VBAParser.MidStmtContext context) + { + ResolveArgsCall(context.argsCall()); + } + + private void ResolveArgsCall(VBAParser.ArgsCallContext argsCall) + { + if (argsCall == null) + { + return; + } + foreach (var argCall in argsCall.argCall()) + { + ResolveDefault(argCall.valueStmt(), argCall.valueStmt().GetText()); + } } public void Resolve(VBAParser.ResumeStmtContext context) { - ResolveInternal(context.identifier(), _currentScope); + if (context.valueStmt() == null) + { + return; + } + ResolveLabel(context.valueStmt(), context.valueStmt().GetText()); + } + + public void Resolve(VBAParser.LineLabelContext context) + { + // Nothing to bind. + } + + public void Resolve(VBAParser.AttributeStmtContext context) + { + // Nothing to bind. + } + + public void Resolve(VBAParser.DeftypeStmtContext context) + { + // Nothing to bind. + } + + public void Resolve(VBAParser.ExitStmtContext context) + { + // Nothing to bind. + } + + public void Resolve(VBAParser.VariableStmtContext context) + { + // Nothing to bind. + } + + public void Resolve(VBAParser.ImplicitCallStmt_InBlockContext context) + { + // TODO: This is a call statement but arg list has to be specified separately. } public void Resolve(VBAParser.FieldLengthContext context) @@ -1178,6 +1438,7 @@ public void Resolve(VBAParser.FieldLengthContext context) public void Resolve(VBAParser.VsAssignContext context) { + // TODO: Understand this. // named parameter reference must be scoped to called procedure var callee = FindParentCall(context); ResolveInternal(context.implicitCallStmt_InStmt(), callee, ContextAccessorType.AssignValueOrReference); diff --git a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs index 4257001aca..dd6b403beb 100644 --- a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs +++ b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs @@ -15,6 +15,7 @@ public TypeAnnotationPass(DeclarationFinder declarationFinder) var typeBindingContext = new TypeBindingContext(_declarationFinder); var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( + _declarationFinder, new DefaultBindingContext(_declarationFinder, typeBindingContext, procedurePointerBindingContext), typeBindingContext, procedurePointerBindingContext); From 0d75ecf07b7244a64f0afe9cafa9c241568c65f4 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Wed, 4 May 2016 22:25:25 +0200 Subject: [PATCH 12/72] lots of fixes (call stmt now works now, get/set/let disambiguation as well) --- RetailCoder.VBE/Common/RubberduckHooks.cs | 4 +- ...plicitVariantReturnTypeInspectionResult.cs | 4 +- ...ocedureCanBeWrittenAsFunctionInspection.cs | 4 +- ...ocedureShouldBeFunctionInspectionResult.cs | 8 +- .../Binding/BinaryOpDefaultBinding.cs | 2 +- Rubberduck.Parsing/Binding/BindingService.cs | 20 +- .../Binding/DefaultBindingContext.cs | 251 +- Rubberduck.Parsing/Binding/IBindingContext.cs | 4 +- .../Binding/IndexDefaultBinding.cs | 12 +- .../Binding/MemberAccessDefaultBinding.cs | 42 +- .../Binding/ProcedurePointerBindingContext.cs | 11 +- .../Binding/ResolutionStatementContext.cs | 10 + .../Binding/SimpleNameDefaultBinding.cs | 13 +- .../Binding/StatementContext.cs | 20 + .../Binding/TypeBindingContext.cs | 12 +- .../Binding/VBAExpressionParser.cs | 1591 +++-- .../Binding/VBAExpressionParser.g4 | 5 +- .../VBAExpressionParserBaseListener.cs | 13 + .../Binding/VBAExpressionParserBaseVisitor.cs | 11 + .../Binding/VBAExpressionParserListener.cs | 11 + .../Binding/VBAExpressionParserVisitor.cs | 7 + Rubberduck.Parsing/Grammar/VBAParser.cs | 6024 +++++++++-------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 25 +- .../Grammar/VBAParserBaseListener.cs | 65 + .../Grammar/VBAParserBaseVisitor.cs | 55 + .../Grammar/VBAParserListener.cs | 55 + .../Grammar/VBAParserVisitor.cs | 35 + .../ParserRuleContextExtensions.cs | 10 +- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 2 + .../Symbols/BoundExpressionVisitor.cs | 33 +- Rubberduck.Parsing/Symbols/Declaration.cs | 4 +- .../Symbols/DeclarationFinder.cs | 2 + .../Symbols/DeclarationSymbolsListener.cs | 22 +- .../Symbols/IdentifierReference.cs | 7 +- .../Symbols/IdentifierReferenceListener.cs | 71 +- .../Symbols/IdentifierReferenceResolver.cs | 1706 +++-- .../Symbols/TypeAnnotationPass.cs | 7 +- Rubberduck.Parsing/VBA/AttributeParser.cs | 52 +- Rubberduck.Parsing/VBA/Nodes/ProcedureNode.cs | 10 +- Rubberduck.Parsing/VBA/RubberduckParser.cs | 15 +- .../VBA/RubberduckParserState.cs | 95 +- RubberduckTests/Grammar/ResolverTests.cs | 26 - 42 files changed, 5515 insertions(+), 4861 deletions(-) create mode 100644 Rubberduck.Parsing/Binding/ResolutionStatementContext.cs create mode 100644 Rubberduck.Parsing/Binding/StatementContext.cs diff --git a/RetailCoder.VBE/Common/RubberduckHooks.cs b/RetailCoder.VBE/Common/RubberduckHooks.cs index 5dbe8744ce..c68fc89bd1 100644 --- a/RetailCoder.VBE/Common/RubberduckHooks.cs +++ b/RetailCoder.VBE/Common/RubberduckHooks.cs @@ -68,7 +68,7 @@ private void Mouse_RawMouseInputReceived(object sender, RawMouseEventArgs e) { if (e.UlButtons.HasFlag(UsButtonFlags.RI_MOUSE_LEFT_BUTTON_UP) || e.UlButtons.HasFlag(UsButtonFlags.RI_MOUSE_RIGHT_BUTTON_UP)) { - MessageReceived(this, HookEventArgs.Empty); + OnMessageReceived(this, HookEventArgs.Empty); } } @@ -76,7 +76,7 @@ private void Keyboard_RawKeyboardInputReceived(object sender, RawKeyEventArgs e) { if (e.Message == WM.KEYUP) { - MessageReceived(this, HookEventArgs.Empty); + OnMessageReceived(this, HookEventArgs.Empty); } } diff --git a/RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs b/RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs index 03d7675f7b..81cd069adb 100644 --- a/RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs +++ b/RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs @@ -70,7 +70,7 @@ private ProcedureNode GetNode(VBAParser.FunctionStmtContext context) } var scope = Selection.QualifiedName.ToString(); - var localScope = scope + "." + context.identifier().GetText(); + var localScope = scope + "." + context.functionName().identifier().GetText(); return new ProcedureNode(context, scope, localScope); } @@ -82,7 +82,7 @@ private ProcedureNode GetNode(VBAParser.PropertyGetStmtContext context) } var scope = Selection.QualifiedName.ToString(); - var localScope = scope + "." + context.identifier().GetText(); + var localScope = scope + "." + context.functionName().identifier().GetText(); return new ProcedureNode(context, scope, localScope); } } diff --git a/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs b/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs index 75cf72db59..d022897a7c 100644 --- a/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs +++ b/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs @@ -31,7 +31,7 @@ public override IEnumerable GetInspectionResults() { var declaration = UserDeclarations.SingleOrDefault(d => d.DeclarationType == DeclarationType.Procedure && - d.IdentifierName == c.identifier().GetText() && + d.IdentifierName == c.subroutineName().GetText() && d.Context.GetSelection().Equals(c.GetSelection())); var interfaceImplementation = UserDeclarations.FindInterfaceImplementationMembers().SingleOrDefault(m => m.Equals(declaration)); @@ -46,7 +46,7 @@ public override IEnumerable GetInspectionResults() .Where(c => { var declaration = UserDeclarations.SingleOrDefault(d => d.DeclarationType == DeclarationType.Procedure && - d.IdentifierName == c.identifier().GetText() && + d.IdentifierName == c.subroutineName().GetText() && d.Context.GetSelection().Equals(c.GetSelection())); if (declaration == null) { return false; } // rather be safe than sorry diff --git a/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs b/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs index c300aa4ad0..1780077359 100644 --- a/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs +++ b/RetailCoder.VBE/Inspections/ProcedureShouldBeFunctionInspectionResult.cs @@ -16,7 +16,7 @@ public class ProcedureShouldBeFunctionInspectionResult : InspectionResultBase public ProcedureShouldBeFunctionInspectionResult(IInspection inspection, RubberduckParserState state, QualifiedContext argListQualifiedContext, QualifiedContext subStmtQualifiedContext) : base(inspection, subStmtQualifiedContext.ModuleName, - subStmtQualifiedContext.Context.identifier()) + subStmtQualifiedContext.Context.subroutineName()) { _target = state.AllUserDeclarations.Single(declaration => declaration.DeclarationType == DeclarationType.Procedure @@ -100,7 +100,7 @@ private void UpdateSignature() var newfunctionWithReturn = newFunctionWithoutReturn .Insert(newFunctionWithoutReturn.LastIndexOf(Environment.NewLine, StringComparison.Ordinal), - Environment.NewLine + " " + _subStmtQualifiedContext.Context.identifier().GetText() + + Environment.NewLine + " " + _subStmtQualifiedContext.Context.subroutineName().GetText() + " = " + _argQualifiedContext.Context.unrestrictedIdentifier().GetText()); _lineOffset = newfunctionWithReturn.Split(new[] {Environment.NewLine}, StringSplitOptions.None).Length - @@ -115,7 +115,7 @@ private void UpdateSignature() private void UpdateCalls() { - var procedureName = _subStmtQualifiedContext.Context.identifier().GetText(); + var procedureName = _subStmtQualifiedContext.Context.subroutineName().GetText(); var procedure = _state.AllDeclarations.SingleOrDefault(d => @@ -142,7 +142,7 @@ d.Context is VBAParser.SubStmtContext && var referenceText = reference.Context.Parent.GetText(); var newCall = referenceParent.argsCall().argCall().ToList().ElementAt(_argListQualifiedContext.Context.arg().ToList().IndexOf(_argQualifiedContext.Context)).GetText() + - " = " + _subStmtQualifiedContext.Context.identifier().GetText() + + " = " + _subStmtQualifiedContext.Context.subroutineName().GetText() + "(" + referenceParent.argsCall().GetText() + ")"; var oldLines = module.Lines[startLine, reference.Selection.LineCount]; diff --git a/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs b/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs index f7943bd5f4..bf3ddad183 100644 --- a/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/BinaryOpDefaultBinding.cs @@ -1,4 +1,5 @@ using Antlr4.Runtime; +using System.Diagnostics; namespace Rubberduck.Parsing.Binding { @@ -20,7 +21,6 @@ public BinaryOpDefaultBinding( public IBoundExpression Resolve() { - // TODO: Allow broken trees? var leftExpr = _left.Resolve(); if (leftExpr == null) { diff --git a/Rubberduck.Parsing/Binding/BindingService.cs b/Rubberduck.Parsing/Binding/BindingService.cs index 0c1570d7ea..da2572540f 100644 --- a/Rubberduck.Parsing/Binding/BindingService.cs +++ b/Rubberduck.Parsing/Binding/BindingService.cs @@ -1,6 +1,8 @@ using Antlr4.Runtime; using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.Symbols; +using System; +using System.Diagnostics; namespace Rubberduck.Parsing.Binding { @@ -33,26 +35,25 @@ public Declaration ResolveGoTo(Declaration procedure, string label) return _declarationFinder.FindLabel(procedure, label); } - public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, IBoundExpression withBlockVariable) + public IBoundExpression ResolveDefault(Declaration module, Declaration parent, string expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - // Trim the expression because the grammar allows whitespace in some places. var expr = Parse(expression.Trim()); - return _defaultBindingContext.Resolve(module, parent, expr, withBlockVariable); + return _defaultBindingContext.Resolve(module, parent, expr, withBlockVariable, statementContext); } public IBoundExpression ResolveType(Declaration module, Declaration parent, string expression) { - var expr = Parse(expression); - return _typedBindingContext.Resolve(module, parent, expr, null); + var expr = Parse(expression.Trim()); + return _typedBindingContext.Resolve(module, parent, expr, null, ResolutionStatementContext.Undefined); } public IBoundExpression ResolveProcedurePointer(Declaration module, Declaration parent, string expression) { - var expr = Parse(expression); - return _procedurePointerBindingContext.Resolve(module, parent, expr, null); + var expr = Parse(expression.Trim()); + return _procedurePointerBindingContext.Resolve(module, parent, expr, null, ResolutionStatementContext.Undefined); } - private VBAExpressionParser.ExpressionContext Parse(string expression) + private ParserRuleContext Parse(string expression) { var stream = new AntlrInputStream(expression); var lexer = new VBALexer(stream); @@ -60,7 +61,8 @@ private VBAExpressionParser.ExpressionContext Parse(string expression) var parser = new VBAExpressionParser(tokens); parser.AddErrorListener(new ExceptionErrorListener()); var tree = parser.startRule(); - return tree.expression(); + var prettyTree = tree.ToStringTree(parser); + return tree; } } } diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 3db20b6272..a724fae254 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -19,9 +19,9 @@ public DefaultBindingContext( _procedurePointerBindingContext = procedurePointerBindingContext; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable, statementContext); if (bindingTree != null) { return bindingTree.Resolve(); @@ -29,26 +29,79 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } - public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic dynamicExpression = expression; - return Visit(module, parent, dynamicExpression, withBlockVariable); + return Visit(module, parent, dynamicExpression, withBlockVariable, statementContext); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.StartRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) + { + // Call statements always have an argument list + if (statementContext == ResolutionStatementContext.CallStatement) + { + if (expression.callStmt() != null) + { + return VisitCallStmt(module, parent, expression.callStmt(), withBlockVariable, statementContext); + } + else + { + return VisitCallStmt(module, parent, expression.expression(), withBlockVariable, statementContext); + } + } + return Visit(module, parent, (dynamic)expression.expression(), withBlockVariable, statementContext); + } + + private IExpressionBinding VisitCallStmt(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) + { + if (expression is VBAExpressionParser.CallStmtContext) + { + var callStmtExpression = (VBAExpressionParser.CallStmtContext)expression; + dynamic lexpr; + if (callStmtExpression.simpleNameExpression() != null) + { + lexpr = callStmtExpression.simpleNameExpression(); + } + else if (callStmtExpression.memberAccessExpression() != null) + { + lexpr = callStmtExpression.memberAccessExpression(); + } + else + { + lexpr = callStmtExpression.withExpression(); + } + var lexprBinding = Visit(module, parent, lexpr, withBlockVariable, ResolutionStatementContext.Undefined); + var argList = VisitArgumentList(module, parent, callStmtExpression.argumentList(), withBlockVariable, ResolutionStatementContext.Undefined); + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lexprBinding, argList); + } + else + { + var lexprBinding = Visit(module, parent, (dynamic)expression, withBlockVariable, ResolutionStatementContext.Undefined); + if (!(lexprBinding is IndexDefaultBinding)) + { + return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lexprBinding, new ArgumentList()); + } + else + { + return lexprBinding; + } + } + } + + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lexpr = expression.lExpression(); - return Visit(module, parent, lexpr, withBlockVariable); + return Visit(module, parent, lexpr, withBlockVariable, statementContext); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return Visit(module, parent, expression.newExpression(), withBlockVariable); + return Visit(module, parent, expression.newExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.NewExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - var typeExpressionBinding = Visit(module, parent, expression.typeExpression(), withBlockVariable); + var typeExpressionBinding = Visit(module, parent, expression.typeExpression(), withBlockVariable, ResolutionStatementContext.Undefined); if (typeExpressionBinding == null) { return null; @@ -56,65 +109,65 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr return new NewTypeBinding(_declarationFinder, module, parent, expression, typeExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { if (expression.builtInType() != null) { return null; } - return Visit(module, parent, expression.definedTypeExpression(), withBlockVariable); + return Visit(module, parent, expression.definedTypeExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DefinedTypeExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { if (expression.simpleNameExpression() != null) { - return _typeBindingContext.BuildTree(module, parent, expression.simpleNameExpression(), withBlockVariable); + return _typeBindingContext.BuildTree(module, parent, expression.simpleNameExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - return _typeBindingContext.BuildTree(module, parent, expression.memberAccessExpression(), withBlockVariable); + return _typeBindingContext.BuildTree(module, parent, expression.memberAccessExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return Visit(module, parent, expression.simpleNameExpression(), withBlockVariable); + return Visit(module, parent, expression.simpleNameExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.SimpleNameExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return new SimpleNameDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression); + return new SimpleNameDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, statementContext); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, statementContext); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, statementContext); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable, ResolutionStatementContext.Undefined); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, argumentListBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IndexExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + var argumentListBinding = VisitArgumentList(module, parent, expression.argumentList(), withBlockVariable, ResolutionStatementContext.Undefined); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, argumentListBinding); } - private ArgumentList VisitArgumentList(Declaration module, Declaration parent, VBAExpressionParser.ArgumentListContext argumentList, IBoundExpression withBlockVariable) + private ArgumentList VisitArgumentList(Declaration module, Declaration parent, VBAExpressionParser.ArgumentListContext argumentList, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { var convertedList = new ArgumentList(); if (argumentList == null) @@ -126,52 +179,52 @@ private ArgumentList VisitArgumentList(Declaration module, Declaration parent, V { foreach (var expr in list.positionalArgument()) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable), ArgumentListArgumentType.Positional); + convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Positional); } } if (list.requiredPositionalArgument() != null) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, list.requiredPositionalArgument().argumentExpression(), withBlockVariable), ArgumentListArgumentType.Positional); + convertedList.AddArgument(VisitArgumentBinding(module, parent, list.requiredPositionalArgument().argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Positional); } if (list.namedArgumentList() != null) { foreach (var expr in list.namedArgumentList().namedArgument()) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable), ArgumentListArgumentType.Named); + convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Named); } } return convertedList; } - private IExpressionBinding VisitArgumentBinding(Declaration module, Declaration parent, VBAExpressionParser.ArgumentExpressionContext argumentExpression, IBoundExpression withBlockVariable) + private IExpressionBinding VisitArgumentBinding(Declaration module, Declaration parent, VBAExpressionParser.ArgumentExpressionContext argumentExpression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { if (argumentExpression.expression() != null) { dynamic expr = argumentExpression.expression(); - return Visit(module, parent, expr, withBlockVariable); + return Visit(module, parent, expr, withBlockVariable, ResolutionStatementContext.Undefined); } else { dynamic expr = argumentExpression.addressOfExpression(); - return Visit(module, parent, expr, withBlockVariable); + return Visit(module, parent, expr, withBlockVariable, ResolutionStatementContext.Undefined); } } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); - var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable); - return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding); + var lExpressionBinding = Visit(module, parent, lExpression, withBlockVariable, ResolutionStatementContext.Undefined); + return VisitDictionaryAccessExpression(module, parent, expression, expression.unrestrictedName(), lExpressionBinding, ResolutionStatementContext.Undefined); } - private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext nameContext, IExpressionBinding lExpressionBinding) + private IExpressionBinding VisitDictionaryAccessExpression(Declaration module, Declaration parent, ParserRuleContext expression, ParserRuleContext nameContext, IExpressionBinding lExpressionBinding, ResolutionStatementContext statementContext) { /* A dictionary access expression is syntactically translated into an index expression with the same @@ -183,7 +236,7 @@ declared type of String and a value equal to the name value of or is @@ -210,145 +263,145 @@ private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpr */ if (expression.withMemberAccessExpression() != null) { - return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, withBlockVariable, expression.withMemberAccessExpression().unrestrictedName().GetText()); + return new MemberAccessDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, withBlockVariable, expression.withMemberAccessExpression().unrestrictedName().GetText(), statementContext); } else { - return VisitDictionaryAccessExpression(module, parent, expression, expression.withDictionaryAccessExpression().unrestrictedName(), withBlockVariable); + return VisitDictionaryAccessExpression(module, parent, expression, expression.withDictionaryAccessExpression().unrestrictedName(), withBlockVariable, ResolutionStatementContext.Undefined); } } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic expressionParens = expression.expression(); - var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable); + var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable, ResolutionStatementContext.Undefined); return new ParenthesizedDefaultBinding(expression, expressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ParenthesizedExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic expressionParens = expression.expression(); - var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable); + var expressionBinding = Visit(module, parent, expressionParens, withBlockVariable, ResolutionStatementContext.Undefined); return new ParenthesizedDefaultBinding(expression, expressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return Visit(module, parent, expression.typeOfIsExpression(), withBlockVariable); + return Visit(module, parent, expression.typeOfIsExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.TypeOfIsExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic booleanExpression = expression.expression(); - var booleanExpressionBinding = Visit(module, parent, booleanExpression, withBlockVariable); + var booleanExpressionBinding = Visit(module, parent, booleanExpression, withBlockVariable, ResolutionStatementContext.Undefined); dynamic typeExpression = expression.typeExpression(); - var typeExpressionBinding = Visit(module, parent, typeExpression, withBlockVariable); + var typeExpressionBinding = Visit(module, parent, typeExpression, withBlockVariable, ResolutionStatementContext.Undefined); return new TypeOfIsDefaultBinding(expression, booleanExpressionBinding, typeExpressionBinding); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.PowOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.PowOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MultOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.MultOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IntDivOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.IntDivOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ModOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ModOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ConcatOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.ConcatOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.RelationalOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.RelationalOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalAndOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalAndOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalOrOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalOrOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalXorOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalXorOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalEqvOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalEqvOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalImpOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalImpOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable); + return VisitBinaryOp(module, parent, expression, expression.expression()[0], expression.expression()[1], withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.UnaryMinusOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.UnaryMinusOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable); + return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalNotOpContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LogicalNotOpContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable); + return VisitUnaryOp(module, parent, expression, expression.expression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return Visit(module, parent, expression.literalExpression(), withBlockVariable); + return Visit(module, parent, expression.literalExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExprContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - return Visit(module, parent, expression.instanceExpression(), withBlockVariable); + return Visit(module, parent, expression.instanceExpression(), withBlockVariable, ResolutionStatementContext.Undefined); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.InstanceExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { return new InstanceDefaultBinding(expression, module); } - private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExpressionContext expression, IBoundExpression withBlockVariable) + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LiteralExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { return new LiteralDefaultBinding(expression); } - private IExpressionBinding VisitBinaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext left, ParserRuleContext right, IBoundExpression withBlockVariable) + private IExpressionBinding VisitBinaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext left, ParserRuleContext right, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic leftExpr = left; - var leftBinding = Visit(module, parent, leftExpr, withBlockVariable); + var leftBinding = Visit(module, parent, leftExpr, withBlockVariable, ResolutionStatementContext.Undefined); dynamic rightExpr = right; - var rightBinding = Visit(module, parent, rightExpr, withBlockVariable); + var rightBinding = Visit(module, parent, rightExpr, withBlockVariable, ResolutionStatementContext.Undefined); return new BinaryOpDefaultBinding(context, leftBinding, rightBinding); } - private IExpressionBinding VisitUnaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext expr, IBoundExpression withBlockVariable) + private IExpressionBinding VisitUnaryOp(Declaration module, Declaration parent, ParserRuleContext context, ParserRuleContext expr, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic exprExpr = expr; - var exprBinding = Visit(module, parent, exprExpr, withBlockVariable); + var exprBinding = Visit(module, parent, exprExpr, withBlockVariable, ResolutionStatementContext.Undefined); return new UnaryOpDefaultBinding(context, exprBinding); } } diff --git a/Rubberduck.Parsing/Binding/IBindingContext.cs b/Rubberduck.Parsing/Binding/IBindingContext.cs index 193d17e854..0efe96761c 100644 --- a/Rubberduck.Parsing/Binding/IBindingContext.cs +++ b/Rubberduck.Parsing/Binding/IBindingContext.cs @@ -5,7 +5,7 @@ namespace Rubberduck.Parsing.Binding { public interface IBindingContext { - IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable); - IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable); + IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext); + IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext); } } diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index 79c4a23468..e25108c9ad 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -11,7 +11,8 @@ public sealed class IndexDefaultBinding : IExpressionBinding private readonly Declaration _module; private readonly Declaration _parent; private readonly ParserRuleContext _expression; - private readonly IBoundExpression _lExpression; + private readonly IExpressionBinding _lExpressionBinding; + private IBoundExpression _lExpression; private readonly ArgumentList _argumentList; private const int DEFAULT_MEMBER_RECURSION_LIMIT = 32; @@ -31,9 +32,10 @@ public IndexDefaultBinding( module, parent, expression, - lExpressionBinding.Resolve(), + (IBoundExpression)null, argumentList) { + _lExpressionBinding = lExpressionBinding; } public IndexDefaultBinding( @@ -64,6 +66,10 @@ private void ResolveArgumentList() public IBoundExpression Resolve() { + if (_lExpressionBinding != null) + { + _lExpression = _lExpressionBinding.Resolve(); + } ResolveArgumentList(); return Resolve(_lExpression); } @@ -162,7 +168,7 @@ private IBoundExpression ResolveDefaultMember(IBoundExpression lExpression, stri recursively, as if this default member was specified instead for with the same . */ - if (((IDeclarationWithParameter)defaultMember).Parameters.Count() == 0) + if (((IDeclarationWithParameter)defaultMember).Parameters.Count() == 0 && _argumentList.HasArguments) { // Recursion limit reached, abort. if (DEFAULT_MEMBER_RECURSION_LIMIT == _defaultMemberRecursionLimitCounter) diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs index 8c8587de4c..dc0e20b036 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -11,7 +11,9 @@ public sealed class MemberAccessDefaultBinding : IExpressionBinding private readonly Declaration _parent; private readonly ParserRuleContext _context; private readonly string _name; - private readonly IBoundExpression _lExpression; + private readonly IExpressionBinding _lExpressionBinding; + private IBoundExpression _lExpression; + private readonly DeclarationType _propertySearchType; public MemberAccessDefaultBinding( DeclarationFinder declarationFinder, @@ -19,16 +21,19 @@ public MemberAccessDefaultBinding( Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExpressionContext expression, - IExpressionBinding lExpressionBinding) + IExpressionBinding lExpressionBinding, + ResolutionStatementContext statementContext) : this( declarationFinder, project, module, parent, expression, - lExpressionBinding.Resolve(), - ExpressionName.GetName(expression.unrestrictedName())) + null, + ExpressionName.GetName(expression.unrestrictedName()), + statementContext) { + _lExpressionBinding = lExpressionBinding; } public MemberAccessDefaultBinding( @@ -37,16 +42,19 @@ public MemberAccessDefaultBinding( Declaration module, Declaration parent, VBAExpressionParser.MemberAccessExprContext expression, - IExpressionBinding lExpressionBinding) + IExpressionBinding lExpressionBinding, + ResolutionStatementContext statementContext) : this( declarationFinder, project, module, parent, expression, - lExpressionBinding.Resolve(), - ExpressionName.GetName(expression.unrestrictedName())) + null, + ExpressionName.GetName(expression.unrestrictedName()), + statementContext) { + _lExpressionBinding = lExpressionBinding; } public MemberAccessDefaultBinding( @@ -56,7 +64,8 @@ public MemberAccessDefaultBinding( Declaration parent, ParserRuleContext expression, IBoundExpression lExpression, - string name) + string name, + ResolutionStatementContext statementContext) { _declarationFinder = declarationFinder; _project = project; @@ -65,11 +74,16 @@ public MemberAccessDefaultBinding( _context = expression; _lExpression = lExpression; _name = name; + _propertySearchType = StatementContext.GetSearchDeclarationType(statementContext); } public IBoundExpression Resolve() { IBoundExpression boundExpression = null; + if (_lExpressionBinding != null) + { + _lExpression = _lExpressionBinding.Resolve(); + } if (_lExpression == null) { return null; @@ -141,12 +155,18 @@ expression is classified as an unbound member and has a declared type of Variant { return null; } + // TODO: DeclarationType UDT Member should actually be Variable? + var udtMember = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.UserDefinedTypeMember); + if (udtMember != null) + { + return new MemberAccessExpression(udtMember, ExpressionClassification.Variable, _context, _lExpression); + } var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Variable); if (variable != null) { return new MemberAccessExpression(variable, ExpressionClassification.Variable, _context, _lExpression); } - var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Property); + var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, _propertySearchType); if (property != null) { return new MemberAccessExpression(property, ExpressionClassification.Property, _context, _lExpression); @@ -221,7 +241,7 @@ with the same declared type as the member. { return boundExpression; } - boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, _propertySearchType, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; @@ -344,7 +364,7 @@ the same declared type as the member. { return boundExpression; } - boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, DeclarationType.Property, ExpressionClassification.Property); + boundExpression = ResolveMemberInModule(_lExpression.ReferencedDeclaration, _propertySearchType, ExpressionClassification.Property); if (boundExpression != null) { return boundExpression; diff --git a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs index e0514c3f2b..b0b97d3619 100644 --- a/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs +++ b/Rubberduck.Parsing/Binding/ProcedurePointerBindingContext.cs @@ -12,9 +12,9 @@ public ProcedurePointerBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable, statementContext); if (bindingTree != null) { return bindingTree.Resolve(); @@ -22,12 +22,17 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } - public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic dynamicExpression = expression; return Visit(module, parent, dynamicExpression); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.StartRuleContext expression) + { + return Visit(module, parent, (dynamic)expression.expression()); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddressOfExpressionContext expression) { return Visit(module, parent, expression.procedurePointerExpression()); diff --git a/Rubberduck.Parsing/Binding/ResolutionStatementContext.cs b/Rubberduck.Parsing/Binding/ResolutionStatementContext.cs new file mode 100644 index 0000000000..49ecbb0376 --- /dev/null +++ b/Rubberduck.Parsing/Binding/ResolutionStatementContext.cs @@ -0,0 +1,10 @@ +namespace Rubberduck.Parsing.Binding +{ + public enum ResolutionStatementContext + { + Undefined, + CallStatement, + SetStatement, + LetStatement + } +} diff --git a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs index 5ea830b9af..1005cfb38a 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs @@ -9,19 +9,22 @@ public sealed class SimpleNameDefaultBinding : IExpressionBinding private readonly Declaration _module; private readonly Declaration _parent; private readonly VBAExpressionParser.SimpleNameExpressionContext _expression; + private readonly DeclarationType _propertySearchType; public SimpleNameDefaultBinding( DeclarationFinder declarationFinder, Declaration project, Declaration module, Declaration parent, - VBAExpressionParser.SimpleNameExpressionContext expression) + VBAExpressionParser.SimpleNameExpressionContext expression, + ResolutionStatementContext statementContext) { _declarationFinder = declarationFinder; _project = project; _module = module; _parent = parent; _expression = expression; + _propertySearchType = StatementContext.GetSearchDeclarationType(statementContext); } public IBoundExpression Resolve() @@ -116,7 +119,7 @@ function or subroutine defined at the module-level in the enclosing module. { return new SimpleNameExpression(enumMember, ExpressionClassification.Value, _expression); } - var property = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, DeclarationType.Property); + var property = _declarationFinder.FindMemberEnclosingModule(_project, _module, _parent, name, _propertySearchType); if (property != null) { return new SimpleNameExpression(property, ExpressionClassification.Property, _expression); @@ -184,7 +187,7 @@ within the enclosing project other than the enclosing module. { return new SimpleNameExpression(accessibleMember, ExpressionClassification.Value, _expression); } - var accessibleProperty = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Property); + var accessibleProperty = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, _propertySearchType); if (accessibleProperty != null) { return new SimpleNameExpression(accessibleProperty, ExpressionClassification.Property, _expression); @@ -245,7 +248,7 @@ private IBoundExpression ResolveModuleReferencedProjectNamespace(string name) { return new SimpleNameExpression(accessibleMember, ExpressionClassification.Value, _expression); } - var accessibleProperty = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, DeclarationType.Property); + var accessibleProperty = _declarationFinder.FindMemberReferencedProjectInModule(_project, _module, _parent, DeclarationType.ProceduralModule, name, _propertySearchType); if (accessibleProperty != null) { return new SimpleNameExpression(accessibleProperty, ExpressionClassification.Property, _expression); @@ -282,7 +285,7 @@ private IBoundExpression ResolveModuleReferencedProjectNamespace(string name) { return new SimpleNameExpression(globalClassModuleMember, ExpressionClassification.Value, _expression); } - var globalClassModuleProperty = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, DeclarationType.Property); + var globalClassModuleProperty = _declarationFinder.FindMemberReferencedProjectInGlobalClassModule(_project, _module, _parent, name, _propertySearchType); if (globalClassModuleProperty != null) { return new SimpleNameExpression(globalClassModuleProperty, ExpressionClassification.Property, _expression); diff --git a/Rubberduck.Parsing/Binding/StatementContext.cs b/Rubberduck.Parsing/Binding/StatementContext.cs new file mode 100644 index 0000000000..97d64a33db --- /dev/null +++ b/Rubberduck.Parsing/Binding/StatementContext.cs @@ -0,0 +1,20 @@ +using Rubberduck.Parsing.Symbols; + +namespace Rubberduck.Parsing.Binding +{ + public static class StatementContext + { + public static DeclarationType GetSearchDeclarationType(ResolutionStatementContext statementContext) + { + switch(statementContext) + { + case ResolutionStatementContext.LetStatement: + return DeclarationType.PropertyLet; + case ResolutionStatementContext.SetStatement: + return DeclarationType.PropertySet; + default: + return DeclarationType.PropertyGet; + } + } + } +} diff --git a/Rubberduck.Parsing/Binding/TypeBindingContext.cs b/Rubberduck.Parsing/Binding/TypeBindingContext.cs index 61457ab5f2..063b611e6a 100644 --- a/Rubberduck.Parsing/Binding/TypeBindingContext.cs +++ b/Rubberduck.Parsing/Binding/TypeBindingContext.cs @@ -1,5 +1,6 @@ using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; +using System; namespace Rubberduck.Parsing.Binding { @@ -12,9 +13,9 @@ public TypeBindingContext(DeclarationFinder declarationFinder) _declarationFinder = declarationFinder; } - public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { - IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable); + IExpressionBinding bindingTree = BuildTree(module, parent, expression, withBlockVariable, statementContext); if (bindingTree != null) { return bindingTree.Resolve(); @@ -22,12 +23,17 @@ public IBoundExpression Resolve(Declaration module, Declaration parent, ParserRu return null; } - public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable) + public IExpressionBinding BuildTree(Declaration module, Declaration parent, ParserRuleContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic dynamicExpression = expression; return Visit(module, parent, dynamicExpression); } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.StartRuleContext expression) + { + return Visit(module, parent, (dynamic)expression.expression()); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.LExprContext expression) { dynamic lexpr = expression.lExpression(); diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs index a4685b39f7..2ce497a947 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs @@ -103,38 +103,38 @@ public const int "COLLECTION" }; public const int - RULE_startRule = 0, RULE_unrestrictedName = 1, RULE_name = 2, RULE_reservedIdentifierName = 3, - RULE_reservedUntypedName = 4, RULE_reservedTypedName = 5, RULE_untypedName = 6, - RULE_typedName = 7, RULE_typedNameValue = 8, RULE_typeSuffix = 9, RULE_optionCompareArgument = 10, - RULE_builtInType = 11, RULE_expression = 12, RULE_literalExpression = 13, - RULE_numberLiteral = 14, RULE_parenthesizedExpression = 15, RULE_typeOfIsExpression = 16, - RULE_newExpression = 17, RULE_lExpression = 18, RULE_memberAccessExpression = 19, - RULE_indexExpression = 20, RULE_dictionaryAccessExpression = 21, RULE_argumentList = 22, - RULE_positionalOrNamedArgumentList = 23, RULE_positionalArgument = 24, - RULE_requiredPositionalArgument = 25, RULE_namedArgumentList = 26, RULE_namedArgument = 27, - RULE_argumentExpression = 28, RULE_simpleNameExpression = 29, RULE_instanceExpression = 30, - RULE_withExpression = 31, RULE_withMemberAccessExpression = 32, RULE_withDictionaryAccessExpression = 33, - RULE_constantExpression = 34, RULE_typeExpression = 35, RULE_definedTypeExpression = 36, - RULE_addressOfExpression = 37, RULE_procedurePointerExpression = 38, RULE_reservedIdentifier = 39, - RULE_statementKeyword = 40, RULE_remKeyword = 41, RULE_markerKeyword = 42, - RULE_operatorIdentifier = 43, RULE_reservedName = 44, RULE_reservedProcedureName = 45, - RULE_specialForm = 46, RULE_reservedTypeIdentifier = 47, RULE_uncategorizedKeyword = 48, - RULE_literalIdentifier = 49, RULE_booleanLiteralIdentifier = 50, RULE_objectLiteralIdentifier = 51, - RULE_variantLiteralIdentifier = 52, RULE_whiteSpace = 53; + RULE_startRule = 0, RULE_callStmt = 1, RULE_unrestrictedName = 2, RULE_name = 3, + RULE_reservedIdentifierName = 4, RULE_reservedUntypedName = 5, RULE_reservedTypedName = 6, + RULE_untypedName = 7, RULE_typedName = 8, RULE_typedNameValue = 9, RULE_typeSuffix = 10, + RULE_optionCompareArgument = 11, RULE_builtInType = 12, RULE_expression = 13, + RULE_literalExpression = 14, RULE_numberLiteral = 15, RULE_parenthesizedExpression = 16, + RULE_typeOfIsExpression = 17, RULE_newExpression = 18, RULE_lExpression = 19, + RULE_memberAccessExpression = 20, RULE_indexExpression = 21, RULE_dictionaryAccessExpression = 22, + RULE_argumentList = 23, RULE_positionalOrNamedArgumentList = 24, RULE_positionalArgument = 25, + RULE_requiredPositionalArgument = 26, RULE_namedArgumentList = 27, RULE_namedArgument = 28, + RULE_argumentExpression = 29, RULE_simpleNameExpression = 30, RULE_instanceExpression = 31, + RULE_withExpression = 32, RULE_withMemberAccessExpression = 33, RULE_withDictionaryAccessExpression = 34, + RULE_constantExpression = 35, RULE_typeExpression = 36, RULE_definedTypeExpression = 37, + RULE_addressOfExpression = 38, RULE_procedurePointerExpression = 39, RULE_reservedIdentifier = 40, + RULE_statementKeyword = 41, RULE_remKeyword = 42, RULE_markerKeyword = 43, + RULE_operatorIdentifier = 44, RULE_reservedName = 45, RULE_reservedProcedureName = 46, + RULE_specialForm = 47, RULE_reservedTypeIdentifier = 48, RULE_uncategorizedKeyword = 49, + RULE_literalIdentifier = 50, RULE_booleanLiteralIdentifier = 51, RULE_objectLiteralIdentifier = 52, + RULE_variantLiteralIdentifier = 53, RULE_whiteSpace = 54; public static readonly string[] ruleNames = { - "startRule", "unrestrictedName", "name", "reservedIdentifierName", "reservedUntypedName", - "reservedTypedName", "untypedName", "typedName", "typedNameValue", "typeSuffix", - "optionCompareArgument", "builtInType", "expression", "literalExpression", - "numberLiteral", "parenthesizedExpression", "typeOfIsExpression", "newExpression", - "lExpression", "memberAccessExpression", "indexExpression", "dictionaryAccessExpression", - "argumentList", "positionalOrNamedArgumentList", "positionalArgument", - "requiredPositionalArgument", "namedArgumentList", "namedArgument", "argumentExpression", - "simpleNameExpression", "instanceExpression", "withExpression", "withMemberAccessExpression", - "withDictionaryAccessExpression", "constantExpression", "typeExpression", - "definedTypeExpression", "addressOfExpression", "procedurePointerExpression", - "reservedIdentifier", "statementKeyword", "remKeyword", "markerKeyword", - "operatorIdentifier", "reservedName", "reservedProcedureName", "specialForm", - "reservedTypeIdentifier", "uncategorizedKeyword", "literalIdentifier", + "startRule", "callStmt", "unrestrictedName", "name", "reservedIdentifierName", + "reservedUntypedName", "reservedTypedName", "untypedName", "typedName", + "typedNameValue", "typeSuffix", "optionCompareArgument", "builtInType", + "expression", "literalExpression", "numberLiteral", "parenthesizedExpression", + "typeOfIsExpression", "newExpression", "lExpression", "memberAccessExpression", + "indexExpression", "dictionaryAccessExpression", "argumentList", "positionalOrNamedArgumentList", + "positionalArgument", "requiredPositionalArgument", "namedArgumentList", + "namedArgument", "argumentExpression", "simpleNameExpression", "instanceExpression", + "withExpression", "withMemberAccessExpression", "withDictionaryAccessExpression", + "constantExpression", "typeExpression", "definedTypeExpression", "addressOfExpression", + "procedurePointerExpression", "reservedIdentifier", "statementKeyword", + "remKeyword", "markerKeyword", "operatorIdentifier", "reservedName", "reservedProcedureName", + "specialForm", "reservedTypeIdentifier", "uncategorizedKeyword", "literalIdentifier", "booleanLiteralIdentifier", "objectLiteralIdentifier", "variantLiteralIdentifier", "whiteSpace" }; @@ -153,6 +153,9 @@ public VBAExpressionParser(ITokenStream input) _interp = new ParserATNSimulator(this,_ATN); } public partial class StartRuleContext : ParserRuleContext { + public CallStmtContext callStmt() { + return GetRuleContext(0); + } public ITerminalNode Eof() { return GetToken(VBAExpressionParser.Eof, 0); } public ExpressionContext expression() { return GetRuleContext(0); @@ -184,8 +187,107 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 108; expression(0); - State = 109; Match(Eof); + State = 112; + switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { + case 1: + { + State = 110; expression(0); + } + break; + + case 2: + { + State = 111; callStmt(); + } + break; + } + State = 114; Match(Eof); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class CallStmtContext : ParserRuleContext { + public MemberAccessExpressionContext memberAccessExpression() { + return GetRuleContext(0); + } + public WithExpressionContext withExpression() { + return GetRuleContext(0); + } + public SimpleNameExpressionContext simpleNameExpression() { + return GetRuleContext(0); + } + public WhiteSpaceContext whiteSpace() { + return GetRuleContext(0); + } + public ArgumentListContext argumentList() { + return GetRuleContext(0); + } + public CallStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_callStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAExpressionParserListener typedListener = listener as IVBAExpressionParserListener; + if (typedListener != null) typedListener.EnterCallStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAExpressionParserListener typedListener = listener as IVBAExpressionParserListener; + if (typedListener != null) typedListener.ExitCallStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAExpressionParserVisitor typedVisitor = visitor as IVBAExpressionParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitCallStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CallStmtContext callStmt() { + CallStmtContext _localctx = new CallStmtContext(_ctx, State); + EnterRule(_localctx, 2, RULE_callStmt); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 119; + switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { + case 1: + { + State = 116; memberAccessExpression(); + } + break; + + case 2: + { + State = 117; simpleNameExpression(); + } + break; + + case 3: + { + State = 118; withExpression(); + } + break; + } + State = 124; + _la = _input.La(1); + if (_la==WS || _la==LINE_CONTINUATION) { + { + State = 121; whiteSpace(); + State = 122; argumentList(); + } + } + } } catch (RecognitionException re) { @@ -229,21 +331,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnrestrictedNameContext unrestrictedName() { UnrestrictedNameContext _localctx = new UnrestrictedNameContext(_ctx, State); - EnterRule(_localctx, 2, RULE_unrestrictedName); + EnterRule(_localctx, 4, RULE_unrestrictedName); try { - State = 113; - switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { + State = 128; + switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 111; name(); + State = 126; name(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 112; reservedIdentifierName(); + State = 127; reservedIdentifierName(); } break; } @@ -289,21 +391,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NameContext name() { NameContext _localctx = new NameContext(_ctx, State); - EnterRule(_localctx, 4, RULE_name); + EnterRule(_localctx, 6, RULE_name); try { - State = 117; - switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { + State = 132; + switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 115; untypedName(); + State = 130; untypedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 116; typedName(); + State = 131; typedName(); } break; } @@ -349,21 +451,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedIdentifierNameContext reservedIdentifierName() { ReservedIdentifierNameContext _localctx = new ReservedIdentifierNameContext(_ctx, State); - EnterRule(_localctx, 6, RULE_reservedIdentifierName); + EnterRule(_localctx, 8, RULE_reservedIdentifierName); try { - State = 121; - switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { + State = 136; + switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 119; reservedUntypedName(); + State = 134; reservedUntypedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 120; reservedTypedName(); + State = 135; reservedTypedName(); } break; } @@ -406,11 +508,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedUntypedNameContext reservedUntypedName() { ReservedUntypedNameContext _localctx = new ReservedUntypedNameContext(_ctx, State); - EnterRule(_localctx, 8, RULE_reservedUntypedName); + EnterRule(_localctx, 10, RULE_reservedUntypedName); try { EnterOuterAlt(_localctx, 1); { - State = 123; reservedIdentifier(); + State = 138; reservedIdentifier(); } } catch (RecognitionException re) { @@ -454,12 +556,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedTypedNameContext reservedTypedName() { ReservedTypedNameContext _localctx = new ReservedTypedNameContext(_ctx, State); - EnterRule(_localctx, 10, RULE_reservedTypedName); + EnterRule(_localctx, 12, RULE_reservedTypedName); try { EnterOuterAlt(_localctx, 1); { - State = 125; reservedIdentifier(); - State = 126; typeSuffix(); + State = 140; reservedIdentifier(); + State = 141; typeSuffix(); } } catch (RecognitionException re) { @@ -513,63 +615,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UntypedNameContext untypedName() { UntypedNameContext _localctx = new UntypedNameContext(_ctx, State); - EnterRule(_localctx, 12, RULE_untypedName); + EnterRule(_localctx, 14, RULE_untypedName); try { - State = 136; - switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { + State = 151; + switch ( Interpreter.AdaptivePredict(_input,6,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 128; Match(IDENTIFIER); + State = 143; Match(IDENTIFIER); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 129; Match(FOREIGNNAME); + State = 144; Match(FOREIGNNAME); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 130; reservedProcedureName(); + State = 145; reservedProcedureName(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 131; specialForm(); + State = 146; specialForm(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 132; optionCompareArgument(); + State = 147; optionCompareArgument(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 133; Match(OBJECT); + State = 148; Match(OBJECT); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 134; uncategorizedKeyword(); + State = 149; uncategorizedKeyword(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 135; Match(ERROR); + State = 150; Match(ERROR); } break; } @@ -615,12 +717,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypedNameContext typedName() { TypedNameContext _localctx = new TypedNameContext(_ctx, State); - EnterRule(_localctx, 14, RULE_typedName); + EnterRule(_localctx, 16, RULE_typedName); try { EnterOuterAlt(_localctx, 1); { - State = 138; typedNameValue(); - State = 139; typeSuffix(); + State = 153; typedNameValue(); + State = 154; typeSuffix(); } } catch (RecognitionException re) { @@ -673,56 +775,56 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypedNameValueContext typedNameValue() { TypedNameValueContext _localctx = new TypedNameValueContext(_ctx, State); - EnterRule(_localctx, 16, RULE_typedNameValue); + EnterRule(_localctx, 18, RULE_typedNameValue); try { - State = 148; - switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { + State = 163; + switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 141; Match(IDENTIFIER); + State = 156; Match(IDENTIFIER); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 142; reservedProcedureName(); + State = 157; reservedProcedureName(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 143; specialForm(); + State = 158; specialForm(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 144; optionCompareArgument(); + State = 159; optionCompareArgument(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 145; Match(OBJECT); + State = 160; Match(OBJECT); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 146; uncategorizedKeyword(); + State = 161; uncategorizedKeyword(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 147; Match(ERROR); + State = 162; Match(ERROR); } break; } @@ -769,12 +871,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeSuffixContext typeSuffix() { TypeSuffixContext _localctx = new TypeSuffixContext(_ctx, State); - EnterRule(_localctx, 18, RULE_typeSuffix); + EnterRule(_localctx, 20, RULE_typeSuffix); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 150; + State = 165; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -820,12 +922,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OptionCompareArgumentContext optionCompareArgument() { OptionCompareArgumentContext _localctx = new OptionCompareArgumentContext(_ctx, State); - EnterRule(_localctx, 20, RULE_optionCompareArgument); + EnterRule(_localctx, 22, RULE_optionCompareArgument); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 152; + State = 167; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -880,72 +982,72 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BuiltInTypeContext builtInType() { BuiltInTypeContext _localctx = new BuiltInTypeContext(_ctx, State); - EnterRule(_localctx, 22, RULE_builtInType); + EnterRule(_localctx, 24, RULE_builtInType); int _la; try { - State = 175; - switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { + State = 190; + switch ( Interpreter.AdaptivePredict(_input,12,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 154; reservedTypeIdentifier(); + State = 169; reservedTypeIdentifier(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 155; Match(L_SQUARE_BRACKET); - State = 157; + State = 170; Match(L_SQUARE_BRACKET); + State = 172; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 156; whiteSpace(); + State = 171; whiteSpace(); } } - State = 159; reservedTypeIdentifier(); - State = 161; + State = 174; reservedTypeIdentifier(); + State = 176; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 160; whiteSpace(); + State = 175; whiteSpace(); } } - State = 163; Match(R_SQUARE_BRACKET); + State = 178; Match(R_SQUARE_BRACKET); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 165; Match(OBJECT); + State = 180; Match(OBJECT); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 166; Match(L_SQUARE_BRACKET); - State = 168; + State = 181; Match(L_SQUARE_BRACKET); + State = 183; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 167; whiteSpace(); + State = 182; whiteSpace(); } } - State = 170; Match(OBJECT); - State = 172; + State = 185; Match(OBJECT); + State = 187; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 171; whiteSpace(); + State = 186; whiteSpace(); } } - State = 174; Match(R_SQUARE_BRACKET); + State = 189; Match(R_SQUARE_BRACKET); } break; } @@ -1490,14 +1592,14 @@ private ExpressionContext expression(int _p) { int _parentState = State; ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); ExpressionContext _prevctx = _localctx; - int _startState = 24; - EnterRecursionRule(_localctx, 24, RULE_expression, _p); + int _startState = 26; + EnterRecursionRule(_localctx, 26, RULE_expression, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 202; + State = 217; switch (_input.La(1)) { case MINUS: { @@ -1505,16 +1607,16 @@ private ExpressionContext expression(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 178; Match(MINUS); - State = 180; + State = 193; Match(MINUS); + State = 195; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 179; whiteSpace(); + State = 194; whiteSpace(); } } - State = 182; expression(14); + State = 197; expression(14); } break; case NOT: @@ -1522,16 +1624,16 @@ private ExpressionContext expression(int _p) { _localctx = new LogicalNotOpContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 183; Match(NOT); - State = 185; + State = 198; Match(NOT); + State = 200; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 184; whiteSpace(); + State = 199; whiteSpace(); } } - State = 187; expression(7); + State = 202; expression(7); } break; case ABS: @@ -1591,7 +1693,7 @@ private ExpressionContext expression(int _p) { _localctx = new LExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 188; lExpression(0); + State = 203; lExpression(0); } break; case LPAREN: @@ -1599,25 +1701,25 @@ private ExpressionContext expression(int _p) { _localctx = new ParenthesizedExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 189; Match(LPAREN); - State = 191; + State = 204; Match(LPAREN); + State = 206; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 190; whiteSpace(); + State = 205; whiteSpace(); } } - State = 193; expression(0); - State = 195; + State = 208; expression(0); + State = 210; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 194; whiteSpace(); + State = 209; whiteSpace(); } } - State = 197; Match(RPAREN); + State = 212; Match(RPAREN); } break; case TYPEOF: @@ -1625,7 +1727,7 @@ private ExpressionContext expression(int _p) { _localctx = new TypeOfIsExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 199; typeOfIsExpression(); + State = 214; typeOfIsExpression(); } break; case NEW: @@ -1633,7 +1735,7 @@ private ExpressionContext expression(int _p) { _localctx = new NewExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 200; newExpression(); + State = 215; newExpression(); } break; case EMPTY: @@ -1651,47 +1753,47 @@ private ExpressionContext expression(int _p) { _localctx = new LiteralExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 201; literalExpression(); + State = 216; literalExpression(); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.Lt(-1); - State = 314; + State = 329; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,40,_ctx); + _alt = Interpreter.AdaptivePredict(_input,43,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 312; - switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { + State = 327; + switch ( Interpreter.AdaptivePredict(_input,42,_ctx) ) { case 1: { _localctx = new PowOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 204; + State = 219; if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); - State = 206; + State = 221; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 205; whiteSpace(); + State = 220; whiteSpace(); } } - State = 208; Match(POW); - State = 210; + State = 223; Match(POW); + State = 225; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 209; whiteSpace(); + State = 224; whiteSpace(); } } - State = 212; expression(16); + State = 227; expression(16); } break; @@ -1699,31 +1801,31 @@ private ExpressionContext expression(int _p) { { _localctx = new MultOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 213; + State = 228; if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); - State = 215; + State = 230; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 214; whiteSpace(); + State = 229; whiteSpace(); } } - State = 217; + State = 232; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 219; + State = 234; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 218; whiteSpace(); + State = 233; whiteSpace(); } } - State = 221; expression(14); + State = 236; expression(14); } break; @@ -1731,26 +1833,26 @@ private ExpressionContext expression(int _p) { { _localctx = new IntDivOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 222; + State = 237; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 224; + State = 239; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 223; whiteSpace(); + State = 238; whiteSpace(); } } - State = 226; Match(INTDIV); - State = 228; + State = 241; Match(INTDIV); + State = 243; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 227; whiteSpace(); + State = 242; whiteSpace(); } } - State = 230; expression(13); + State = 245; expression(13); } break; @@ -1758,26 +1860,26 @@ private ExpressionContext expression(int _p) { { _localctx = new ModOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 231; + State = 246; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 233; + State = 248; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 232; whiteSpace(); + State = 247; whiteSpace(); } } - State = 235; Match(MOD); - State = 237; + State = 250; Match(MOD); + State = 252; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 236; whiteSpace(); + State = 251; whiteSpace(); } } - State = 239; expression(12); + State = 254; expression(12); } break; @@ -1785,31 +1887,31 @@ private ExpressionContext expression(int _p) { { _localctx = new AddOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 240; + State = 255; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 242; + State = 257; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 241; whiteSpace(); + State = 256; whiteSpace(); } } - State = 244; + State = 259; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 246; + State = 261; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 245; whiteSpace(); + State = 260; whiteSpace(); } } - State = 248; expression(11); + State = 263; expression(11); } break; @@ -1817,26 +1919,26 @@ private ExpressionContext expression(int _p) { { _localctx = new ConcatOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 249; + State = 264; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 251; + State = 266; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 250; whiteSpace(); + State = 265; whiteSpace(); } } - State = 253; Match(AMPERSAND); - State = 255; + State = 268; Match(AMPERSAND); + State = 270; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 254; whiteSpace(); + State = 269; whiteSpace(); } } - State = 257; expression(10); + State = 272; expression(10); } break; @@ -1844,31 +1946,31 @@ private ExpressionContext expression(int _p) { { _localctx = new RelationalOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 258; + State = 273; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 260; + State = 275; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 259; whiteSpace(); + State = 274; whiteSpace(); } } - State = 262; + State = 277; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 264; + State = 279; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 263; whiteSpace(); + State = 278; whiteSpace(); } } - State = 266; expression(9); + State = 281; expression(9); } break; @@ -1876,26 +1978,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalAndOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 267; + State = 282; if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 269; + State = 284; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 268; whiteSpace(); + State = 283; whiteSpace(); } } - State = 271; Match(AND); - State = 273; + State = 286; Match(AND); + State = 288; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 272; whiteSpace(); + State = 287; whiteSpace(); } } - State = 275; expression(7); + State = 290; expression(7); } break; @@ -1903,26 +2005,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalOrOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 276; + State = 291; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 278; + State = 293; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 277; whiteSpace(); + State = 292; whiteSpace(); } } - State = 280; Match(OR); - State = 282; + State = 295; Match(OR); + State = 297; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 281; whiteSpace(); + State = 296; whiteSpace(); } } - State = 284; expression(6); + State = 299; expression(6); } break; @@ -1930,26 +2032,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalXorOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 285; + State = 300; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 287; + State = 302; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 286; whiteSpace(); + State = 301; whiteSpace(); } } - State = 289; Match(XOR); - State = 291; + State = 304; Match(XOR); + State = 306; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 290; whiteSpace(); + State = 305; whiteSpace(); } } - State = 293; expression(5); + State = 308; expression(5); } break; @@ -1957,26 +2059,26 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalEqvOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 294; + State = 309; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 296; + State = 311; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 295; whiteSpace(); + State = 310; whiteSpace(); } } - State = 298; Match(EQV); - State = 300; + State = 313; Match(EQV); + State = 315; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 299; whiteSpace(); + State = 314; whiteSpace(); } } - State = 302; expression(4); + State = 317; expression(4); } break; @@ -1984,34 +2086,34 @@ private ExpressionContext expression(int _p) { { _localctx = new LogicalImpOpContext(new ExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_expression); - State = 303; + State = 318; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 305; + State = 320; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 304; whiteSpace(); + State = 319; whiteSpace(); } } - State = 307; Match(IMP); - State = 309; + State = 322; Match(IMP); + State = 324; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 308; whiteSpace(); + State = 323; whiteSpace(); } } - State = 311; expression(3); + State = 326; expression(3); } break; } } } - State = 316; + State = 331; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,40,_ctx); + _alt = Interpreter.AdaptivePredict(_input,43,_ctx); } } } @@ -2061,9 +2163,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralExpressionContext literalExpression() { LiteralExpressionContext _localctx = new LiteralExpressionContext(_ctx, State); - EnterRule(_localctx, 26, RULE_literalExpression); + EnterRule(_localctx, 28, RULE_literalExpression); try { - State = 324; + State = 339; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -2071,19 +2173,19 @@ public LiteralExpressionContext literalExpression() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 317; numberLiteral(); + State = 332; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 318; Match(DATELITERAL); + State = 333; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 319; Match(STRINGLITERAL); + State = 334; Match(STRINGLITERAL); } break; case EMPTY: @@ -2093,12 +2195,12 @@ public LiteralExpressionContext literalExpression() { case TRUE: EnterOuterAlt(_localctx, 4); { - State = 320; literalIdentifier(); - State = 322; - switch ( Interpreter.AdaptivePredict(_input,41,_ctx) ) { + State = 335; literalIdentifier(); + State = 337; + switch ( Interpreter.AdaptivePredict(_input,44,_ctx) ) { case 1: { - State = 321; typeSuffix(); + State = 336; typeSuffix(); } break; } @@ -2147,12 +2249,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 28, RULE_numberLiteral); + EnterRule(_localctx, 30, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 326; + State = 341; _la = _input.La(1); if ( !(((((_la - 226)) & ~0x3f) == 0 && ((1L << (_la - 226)) & ((1L << (OCTLITERAL - 226)) | (1L << (HEXLITERAL - 226)) | (1L << (FLOATLITERAL - 226)) | (1L << (INTEGERLITERAL - 226)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -2206,30 +2308,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ParenthesizedExpressionContext parenthesizedExpression() { ParenthesizedExpressionContext _localctx = new ParenthesizedExpressionContext(_ctx, State); - EnterRule(_localctx, 30, RULE_parenthesizedExpression); + EnterRule(_localctx, 32, RULE_parenthesizedExpression); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 328; Match(LPAREN); - State = 330; + State = 343; Match(LPAREN); + State = 345; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 329; whiteSpace(); + State = 344; whiteSpace(); } } - State = 332; expression(0); - State = 334; + State = 347; expression(0); + State = 349; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 333; whiteSpace(); + State = 348; whiteSpace(); } } - State = 336; Match(RPAREN); + State = 351; Match(RPAREN); } } catch (RecognitionException re) { @@ -2281,17 +2383,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfIsExpressionContext typeOfIsExpression() { TypeOfIsExpressionContext _localctx = new TypeOfIsExpressionContext(_ctx, State); - EnterRule(_localctx, 32, RULE_typeOfIsExpression); + EnterRule(_localctx, 34, RULE_typeOfIsExpression); try { EnterOuterAlt(_localctx, 1); { - State = 338; Match(TYPEOF); - State = 339; whiteSpace(); - State = 340; expression(0); - State = 341; whiteSpace(); - State = 342; Match(IS); - State = 343; whiteSpace(); - State = 344; typeExpression(); + State = 353; Match(TYPEOF); + State = 354; whiteSpace(); + State = 355; expression(0); + State = 356; whiteSpace(); + State = 357; Match(IS); + State = 358; whiteSpace(); + State = 359; typeExpression(); } } catch (RecognitionException re) { @@ -2336,13 +2438,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NewExpressionContext newExpression() { NewExpressionContext _localctx = new NewExpressionContext(_ctx, State); - EnterRule(_localctx, 34, RULE_newExpression); + EnterRule(_localctx, 36, RULE_newExpression); try { EnterOuterAlt(_localctx, 1); { - State = 346; Match(NEW); - State = 347; whiteSpace(); - State = 348; typeExpression(); + State = 361; Match(NEW); + State = 362; whiteSpace(); + State = 363; typeExpression(); } } catch (RecognitionException re) { @@ -2520,14 +2622,14 @@ private LExpressionContext lExpression(int _p) { int _parentState = State; LExpressionContext _localctx = new LExpressionContext(_ctx, _parentState); LExpressionContext _prevctx = _localctx; - int _startState = 36; - EnterRecursionRule(_localctx, 36, RULE_lExpression, _p); + int _startState = 38; + EnterRecursionRule(_localctx, 38, RULE_lExpression, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 354; + State = 369; switch (_input.La(1)) { case ME: { @@ -2535,7 +2637,7 @@ private LExpressionContext lExpression(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 351; instanceExpression(); + State = 366; instanceExpression(); } break; case ABS: @@ -2592,7 +2694,7 @@ private LExpressionContext lExpression(int _p) { _localctx = new SimpleNameExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 352; simpleNameExpression(); + State = 367; simpleNameExpression(); } break; case EXCLAMATIONPOINT: @@ -2601,63 +2703,63 @@ private LExpressionContext lExpression(int _p) { _localctx = new WithExprContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 353; withExpression(); + State = 368; withExpression(); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.Lt(-1); - State = 395; + State = 410; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,52,_ctx); + _alt = Interpreter.AdaptivePredict(_input,55,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 393; - switch ( Interpreter.AdaptivePredict(_input,51,_ctx) ) { + State = 408; + switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { case 1: { _localctx = new IndexExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 356; + State = 371; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 358; + State = 373; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 357; whiteSpace(); + State = 372; whiteSpace(); } } - State = 360; Match(LPAREN); - State = 362; - switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { + State = 375; Match(LPAREN); + State = 377; + switch ( Interpreter.AdaptivePredict(_input,50,_ctx) ) { case 1: { - State = 361; whiteSpace(); + State = 376; whiteSpace(); } break; } - State = 365; - switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { + State = 380; + switch ( Interpreter.AdaptivePredict(_input,51,_ctx) ) { case 1: { - State = 364; argumentList(); + State = 379; argumentList(); } break; } - State = 368; + State = 383; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 367; whiteSpace(); + State = 382; whiteSpace(); } } - State = 370; Match(RPAREN); + State = 385; Match(RPAREN); } break; @@ -2665,10 +2767,10 @@ private LExpressionContext lExpression(int _p) { { _localctx = new MemberAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 371; + State = 386; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 372; Match(DOT); - State = 373; unrestrictedName(); + State = 387; Match(DOT); + State = 388; unrestrictedName(); } break; @@ -2676,19 +2778,19 @@ private LExpressionContext lExpression(int _p) { { _localctx = new MemberAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 374; + State = 389; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 375; Match(LINE_CONTINUATION); - State = 377; + State = 390; Match(LINE_CONTINUATION); + State = 392; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 376; whiteSpace(); + State = 391; whiteSpace(); } } - State = 379; Match(DOT); - State = 380; unrestrictedName(); + State = 394; Match(DOT); + State = 395; unrestrictedName(); } break; @@ -2696,10 +2798,10 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 381; + State = 396; if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 382; Match(EXCLAMATIONPOINT); - State = 383; unrestrictedName(); + State = 397; Match(EXCLAMATIONPOINT); + State = 398; unrestrictedName(); } break; @@ -2707,11 +2809,11 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 384; + State = 399; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 385; Match(LINE_CONTINUATION); - State = 386; Match(EXCLAMATIONPOINT); - State = 387; unrestrictedName(); + State = 400; Match(LINE_CONTINUATION); + State = 401; Match(EXCLAMATIONPOINT); + State = 402; unrestrictedName(); } break; @@ -2719,20 +2821,20 @@ private LExpressionContext lExpression(int _p) { { _localctx = new DictionaryAccessExprContext(new LExpressionContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_lExpression); - State = 388; + State = 403; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 389; Match(LINE_CONTINUATION); - State = 390; Match(EXCLAMATIONPOINT); - State = 391; Match(LINE_CONTINUATION); - State = 392; unrestrictedName(); + State = 404; Match(LINE_CONTINUATION); + State = 405; Match(EXCLAMATIONPOINT); + State = 406; Match(LINE_CONTINUATION); + State = 407; unrestrictedName(); } break; } } } - State = 397; + State = 412; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,52,_ctx); + _alt = Interpreter.AdaptivePredict(_input,55,_ctx); } } } @@ -2782,35 +2884,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MemberAccessExpressionContext memberAccessExpression() { MemberAccessExpressionContext _localctx = new MemberAccessExpressionContext(_ctx, State); - EnterRule(_localctx, 38, RULE_memberAccessExpression); + EnterRule(_localctx, 40, RULE_memberAccessExpression); int _la; try { - State = 410; - switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { + State = 425; + switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 398; lExpression(0); - State = 399; Match(DOT); - State = 400; unrestrictedName(); + State = 413; lExpression(0); + State = 414; Match(DOT); + State = 415; unrestrictedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 402; lExpression(0); - State = 403; Match(LINE_CONTINUATION); - State = 405; + State = 417; lExpression(0); + State = 418; Match(LINE_CONTINUATION); + State = 420; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 404; whiteSpace(); + State = 419; whiteSpace(); } } - State = 407; Match(DOT); - State = 408; unrestrictedName(); + State = 422; Match(DOT); + State = 423; unrestrictedName(); } break; } @@ -2864,46 +2966,46 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IndexExpressionContext indexExpression() { IndexExpressionContext _localctx = new IndexExpressionContext(_ctx, State); - EnterRule(_localctx, 40, RULE_indexExpression); + EnterRule(_localctx, 42, RULE_indexExpression); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 412; lExpression(0); - State = 414; + State = 427; lExpression(0); + State = 429; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 413; whiteSpace(); + State = 428; whiteSpace(); } } - State = 416; Match(LPAREN); - State = 418; - switch ( Interpreter.AdaptivePredict(_input,56,_ctx) ) { + State = 431; Match(LPAREN); + State = 433; + switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 417; whiteSpace(); + State = 432; whiteSpace(); } break; } - State = 421; - switch ( Interpreter.AdaptivePredict(_input,57,_ctx) ) { + State = 436; + switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { case 1: { - State = 420; argumentList(); + State = 435; argumentList(); } break; } - State = 424; + State = 439; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 423; whiteSpace(); + State = 438; whiteSpace(); } } - State = 426; Match(RPAREN); + State = 441; Match(RPAREN); } } catch (RecognitionException re) { @@ -2952,37 +3054,37 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryAccessExpressionContext dictionaryAccessExpression() { DictionaryAccessExpressionContext _localctx = new DictionaryAccessExpressionContext(_ctx, State); - EnterRule(_localctx, 42, RULE_dictionaryAccessExpression); + EnterRule(_localctx, 44, RULE_dictionaryAccessExpression); try { - State = 443; - switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { + State = 458; + switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 428; lExpression(0); - State = 429; Match(EXCLAMATIONPOINT); - State = 430; unrestrictedName(); + State = 443; lExpression(0); + State = 444; Match(EXCLAMATIONPOINT); + State = 445; unrestrictedName(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 432; lExpression(0); - State = 433; Match(LINE_CONTINUATION); - State = 434; Match(EXCLAMATIONPOINT); - State = 435; unrestrictedName(); + State = 447; lExpression(0); + State = 448; Match(LINE_CONTINUATION); + State = 449; Match(EXCLAMATIONPOINT); + State = 450; unrestrictedName(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 437; lExpression(0); - State = 438; Match(LINE_CONTINUATION); - State = 439; Match(EXCLAMATIONPOINT); - State = 440; Match(LINE_CONTINUATION); - State = 441; unrestrictedName(); + State = 452; lExpression(0); + State = 453; Match(LINE_CONTINUATION); + State = 454; Match(EXCLAMATIONPOINT); + State = 455; Match(LINE_CONTINUATION); + State = 456; unrestrictedName(); } break; } @@ -3025,11 +3127,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgumentListContext argumentList() { ArgumentListContext _localctx = new ArgumentListContext(_ctx, State); - EnterRule(_localctx, 44, RULE_argumentList); + EnterRule(_localctx, 46, RULE_argumentList); try { EnterOuterAlt(_localctx, 1); { - State = 445; positionalOrNamedArgumentList(); + State = 460; positionalOrNamedArgumentList(); } } catch (RecognitionException re) { @@ -3089,101 +3191,101 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PositionalOrNamedArgumentListContext positionalOrNamedArgumentList() { PositionalOrNamedArgumentListContext _localctx = new PositionalOrNamedArgumentListContext(_ctx, State); - EnterRule(_localctx, 46, RULE_positionalOrNamedArgumentList); + EnterRule(_localctx, 48, RULE_positionalOrNamedArgumentList); int _la; try { int _alt; - State = 479; - switch ( Interpreter.AdaptivePredict(_input,68,_ctx) ) { + State = 494; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 459; + State = 474; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,63,_ctx); + _alt = Interpreter.AdaptivePredict(_input,66,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 448; + State = 463; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (EMPTY - 64)) | (1L << (ERROR - 64)) | (1L << (FALSE - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (VERSION - 195)) | (1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (FLOATLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (IDENTIFIER - 195)) | (1L << (FOREIGNNAME - 195)) | (1L << (OBJECT - 195)) | (1L << (COLLECTION - 195)))) != 0)) { { - State = 447; positionalArgument(); + State = 462; positionalArgument(); } } - State = 451; + State = 466; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 450; whiteSpace(); + State = 465; whiteSpace(); } } - State = 453; Match(COMMA); - State = 455; - switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { + State = 468; Match(COMMA); + State = 470; + switch ( Interpreter.AdaptivePredict(_input,65,_ctx) ) { case 1: { - State = 454; whiteSpace(); + State = 469; whiteSpace(); } break; } } } } - State = 461; + State = 476; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,63,_ctx); + _alt = Interpreter.AdaptivePredict(_input,66,_ctx); } - State = 462; requiredPositionalArgument(); + State = 477; requiredPositionalArgument(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 475; + State = 490; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,67,_ctx); + _alt = Interpreter.AdaptivePredict(_input,70,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 464; + State = 479; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BINARY) | (1L << BYVAL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (EMPTY - 64)) | (1L << (ERROR - 64)) | (1L << (FALSE - 64)) | (1L << (INPUT - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 195)) & ~0x3f) == 0 && ((1L << (_la - 195)) & ((1L << (VERSION - 195)) | (1L << (LPAREN - 195)) | (1L << (MINUS - 195)) | (1L << (STRINGLITERAL - 195)) | (1L << (OCTLITERAL - 195)) | (1L << (HEXLITERAL - 195)) | (1L << (FLOATLITERAL - 195)) | (1L << (INTEGERLITERAL - 195)) | (1L << (DATELITERAL - 195)) | (1L << (IDENTIFIER - 195)) | (1L << (FOREIGNNAME - 195)) | (1L << (OBJECT - 195)) | (1L << (COLLECTION - 195)))) != 0)) { { - State = 463; positionalArgument(); + State = 478; positionalArgument(); } } - State = 467; + State = 482; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 466; whiteSpace(); + State = 481; whiteSpace(); } } - State = 469; Match(COMMA); - State = 471; - switch ( Interpreter.AdaptivePredict(_input,66,_ctx) ) { + State = 484; Match(COMMA); + State = 486; + switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { case 1: { - State = 470; whiteSpace(); + State = 485; whiteSpace(); } break; } } } } - State = 477; + State = 492; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,67,_ctx); + _alt = Interpreter.AdaptivePredict(_input,70,_ctx); } - State = 478; namedArgumentList(); + State = 493; namedArgumentList(); } break; } @@ -3226,11 +3328,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PositionalArgumentContext positionalArgument() { PositionalArgumentContext _localctx = new PositionalArgumentContext(_ctx, State); - EnterRule(_localctx, 48, RULE_positionalArgument); + EnterRule(_localctx, 50, RULE_positionalArgument); try { EnterOuterAlt(_localctx, 1); { - State = 481; argumentExpression(); + State = 496; argumentExpression(); } } catch (RecognitionException re) { @@ -3271,11 +3373,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RequiredPositionalArgumentContext requiredPositionalArgument() { RequiredPositionalArgumentContext _localctx = new RequiredPositionalArgumentContext(_ctx, State); - EnterRule(_localctx, 50, RULE_requiredPositionalArgument); + EnterRule(_localctx, 52, RULE_requiredPositionalArgument); try { EnterOuterAlt(_localctx, 1); { - State = 483; argumentExpression(); + State = 498; argumentExpression(); } } catch (RecognitionException re) { @@ -3329,44 +3431,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NamedArgumentListContext namedArgumentList() { NamedArgumentListContext _localctx = new NamedArgumentListContext(_ctx, State); - EnterRule(_localctx, 52, RULE_namedArgumentList); + EnterRule(_localctx, 54, RULE_namedArgumentList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 485; namedArgument(); - State = 496; + State = 500; namedArgument(); + State = 511; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,71,_ctx); + _alt = Interpreter.AdaptivePredict(_input,74,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 487; + State = 502; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 486; whiteSpace(); + State = 501; whiteSpace(); } } - State = 489; Match(COMMA); - State = 491; + State = 504; Match(COMMA); + State = 506; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 490; whiteSpace(); + State = 505; whiteSpace(); } } - State = 493; namedArgument(); + State = 508; namedArgument(); } } } - State = 498; + State = 513; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,71,_ctx); + _alt = Interpreter.AdaptivePredict(_input,74,_ctx); } } } @@ -3418,30 +3520,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NamedArgumentContext namedArgument() { NamedArgumentContext _localctx = new NamedArgumentContext(_ctx, State); - EnterRule(_localctx, 54, RULE_namedArgument); + EnterRule(_localctx, 56, RULE_namedArgument); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 499; unrestrictedName(); - State = 501; + State = 514; unrestrictedName(); + State = 516; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 500; whiteSpace(); + State = 515; whiteSpace(); } } - State = 503; Match(ASSIGN); - State = 505; + State = 518; Match(ASSIGN); + State = 520; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 504; whiteSpace(); + State = 519; whiteSpace(); } } - State = 507; argumentExpression(); + State = 522; argumentExpression(); } } catch (RecognitionException re) { @@ -3489,10 +3591,10 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgumentExpressionContext argumentExpression() { ArgumentExpressionContext _localctx = new ArgumentExpressionContext(_ctx, State); - EnterRule(_localctx, 56, RULE_argumentExpression); + EnterRule(_localctx, 58, RULE_argumentExpression); int _la; try { - State = 515; + State = 530; switch (_input.La(1)) { case ABS: case ARRAY: @@ -3566,22 +3668,22 @@ public ArgumentExpressionContext argumentExpression() { case COLLECTION: EnterOuterAlt(_localctx, 1); { - State = 511; + State = 526; _la = _input.La(1); if (_la==BYVAL) { { - State = 509; Match(BYVAL); - State = 510; whiteSpace(); + State = 524; Match(BYVAL); + State = 525; whiteSpace(); } } - State = 513; expression(0); + State = 528; expression(0); } break; case ADDRESSOF: EnterOuterAlt(_localctx, 2); { - State = 514; addressOfExpression(); + State = 529; addressOfExpression(); } break; default: @@ -3626,11 +3728,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SimpleNameExpressionContext simpleNameExpression() { SimpleNameExpressionContext _localctx = new SimpleNameExpressionContext(_ctx, State); - EnterRule(_localctx, 58, RULE_simpleNameExpression); + EnterRule(_localctx, 60, RULE_simpleNameExpression); try { EnterOuterAlt(_localctx, 1); { - State = 517; name(); + State = 532; name(); } } catch (RecognitionException re) { @@ -3669,11 +3771,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public InstanceExpressionContext instanceExpression() { InstanceExpressionContext _localctx = new InstanceExpressionContext(_ctx, State); - EnterRule(_localctx, 60, RULE_instanceExpression); + EnterRule(_localctx, 62, RULE_instanceExpression); try { EnterOuterAlt(_localctx, 1); { - State = 519; Match(ME); + State = 534; Match(ME); } } catch (RecognitionException re) { @@ -3717,20 +3819,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithExpressionContext withExpression() { WithExpressionContext _localctx = new WithExpressionContext(_ctx, State); - EnterRule(_localctx, 62, RULE_withExpression); + EnterRule(_localctx, 64, RULE_withExpression); try { - State = 523; + State = 538; switch (_input.La(1)) { case DOT: EnterOuterAlt(_localctx, 1); { - State = 521; withMemberAccessExpression(); + State = 536; withMemberAccessExpression(); } break; case EXCLAMATIONPOINT: EnterOuterAlt(_localctx, 2); { - State = 522; withDictionaryAccessExpression(); + State = 537; withDictionaryAccessExpression(); } break; default: @@ -3776,12 +3878,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithMemberAccessExpressionContext withMemberAccessExpression() { WithMemberAccessExpressionContext _localctx = new WithMemberAccessExpressionContext(_ctx, State); - EnterRule(_localctx, 64, RULE_withMemberAccessExpression); + EnterRule(_localctx, 66, RULE_withMemberAccessExpression); try { EnterOuterAlt(_localctx, 1); { - State = 525; Match(DOT); - State = 526; unrestrictedName(); + State = 540; Match(DOT); + State = 541; unrestrictedName(); } } catch (RecognitionException re) { @@ -3823,12 +3925,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithDictionaryAccessExpressionContext withDictionaryAccessExpression() { WithDictionaryAccessExpressionContext _localctx = new WithDictionaryAccessExpressionContext(_ctx, State); - EnterRule(_localctx, 66, RULE_withDictionaryAccessExpression); + EnterRule(_localctx, 68, RULE_withDictionaryAccessExpression); try { EnterOuterAlt(_localctx, 1); { - State = 528; Match(EXCLAMATIONPOINT); - State = 529; unrestrictedName(); + State = 543; Match(EXCLAMATIONPOINT); + State = 544; unrestrictedName(); } } catch (RecognitionException re) { @@ -3869,11 +3971,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstantExpressionContext constantExpression() { ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, State); - EnterRule(_localctx, 68, RULE_constantExpression); + EnterRule(_localctx, 70, RULE_constantExpression); try { EnterOuterAlt(_localctx, 1); { - State = 531; expression(0); + State = 546; expression(0); } } catch (RecognitionException re) { @@ -3917,21 +4019,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeExpressionContext typeExpression() { TypeExpressionContext _localctx = new TypeExpressionContext(_ctx, State); - EnterRule(_localctx, 70, RULE_typeExpression); + EnterRule(_localctx, 72, RULE_typeExpression); try { - State = 535; - switch ( Interpreter.AdaptivePredict(_input,77,_ctx) ) { + State = 550; + switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 533; builtInType(); + State = 548; builtInType(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 534; definedTypeExpression(); + State = 549; definedTypeExpression(); } break; } @@ -3977,21 +4079,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DefinedTypeExpressionContext definedTypeExpression() { DefinedTypeExpressionContext _localctx = new DefinedTypeExpressionContext(_ctx, State); - EnterRule(_localctx, 72, RULE_definedTypeExpression); + EnterRule(_localctx, 74, RULE_definedTypeExpression); try { - State = 539; - switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { + State = 554; + switch ( Interpreter.AdaptivePredict(_input,81,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 537; simpleNameExpression(); + State = 552; simpleNameExpression(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 538; memberAccessExpression(); + State = 553; memberAccessExpression(); } break; } @@ -4038,13 +4140,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AddressOfExpressionContext addressOfExpression() { AddressOfExpressionContext _localctx = new AddressOfExpressionContext(_ctx, State); - EnterRule(_localctx, 74, RULE_addressOfExpression); + EnterRule(_localctx, 76, RULE_addressOfExpression); try { EnterOuterAlt(_localctx, 1); { - State = 541; Match(ADDRESSOF); - State = 542; whiteSpace(); - State = 543; procedurePointerExpression(); + State = 556; Match(ADDRESSOF); + State = 557; whiteSpace(); + State = 558; procedurePointerExpression(); } } catch (RecognitionException re) { @@ -4088,21 +4190,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ProcedurePointerExpressionContext procedurePointerExpression() { ProcedurePointerExpressionContext _localctx = new ProcedurePointerExpressionContext(_ctx, State); - EnterRule(_localctx, 76, RULE_procedurePointerExpression); + EnterRule(_localctx, 78, RULE_procedurePointerExpression); try { - State = 547; - switch ( Interpreter.AdaptivePredict(_input,79,_ctx) ) { + State = 562; + switch ( Interpreter.AdaptivePredict(_input,82,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 545; memberAccessExpression(); + State = 560; memberAccessExpression(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 546; simpleNameExpression(); + State = 561; simpleNameExpression(); } break; } @@ -4166,63 +4268,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedIdentifierContext reservedIdentifier() { ReservedIdentifierContext _localctx = new ReservedIdentifierContext(_ctx, State); - EnterRule(_localctx, 78, RULE_reservedIdentifier); + EnterRule(_localctx, 80, RULE_reservedIdentifier); try { - State = 557; - switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { + State = 572; + switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 549; statementKeyword(); + State = 564; statementKeyword(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 550; markerKeyword(); + State = 565; markerKeyword(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 551; operatorIdentifier(); + State = 566; operatorIdentifier(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 552; specialForm(); + State = 567; specialForm(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 553; reservedName(); + State = 568; reservedName(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 554; literalIdentifier(); + State = 569; literalIdentifier(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 555; remKeyword(); + State = 570; remKeyword(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 556; reservedTypeIdentifier(); + State = 571; reservedTypeIdentifier(); } break; } @@ -4356,12 +4458,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StatementKeywordContext statementKeyword() { StatementKeywordContext _localctx = new StatementKeywordContext(_ctx, State); - EnterRule(_localctx, 80, RULE_statementKeyword); + EnterRule(_localctx, 82, RULE_statementKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 559; + State = 574; _la = _input.La(1); if ( !(((((_la - 22)) & ~0x3f) == 0 && ((1L << (_la - 22)) & ((1L << (EXIT - 22)) | (1L << (OPTION - 22)) | (1L << (ACCESS - 22)) | (1L << (APPEND - 22)) | (1L << (BINARY - 22)) | (1L << (CALL - 22)) | (1L << (CASE - 22)) | (1L << (CLOSE - 22)) | (1L << (CONST - 22)) | (1L << (DECLARE - 22)) | (1L << (DEFBOOL - 22)) | (1L << (DEFBYTE - 22)) | (1L << (DEFDATE - 22)) | (1L << (DEFDBL - 22)) | (1L << (DEFCUR - 22)) | (1L << (DEFINT - 22)) | (1L << (DEFLNG - 22)) | (1L << (DEFLNGLNG - 22)) | (1L << (DEFLNGPTR - 22)) | (1L << (DEFOBJ - 22)) | (1L << (DEFSNG - 22)) | (1L << (DEFSTR - 22)) | (1L << (DEFVAR - 22)) | (1L << (DIM - 22)) | (1L << (DO - 22)))) != 0) || ((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & ((1L << (ELSE - 87)) | (1L << (ELSEIF - 87)) | (1L << (END_IF - 87)) | (1L << (END_SELECT - 87)) | (1L << (END_WITH - 87)) | (1L << (END - 87)) | (1L << (ENUM - 87)) | (1L << (ERASE - 87)) | (1L << (ERROR - 87)) | (1L << (EVENT - 87)) | (1L << (EXIT_DO - 87)) | (1L << (EXIT_FOR - 87)) | (1L << (EXIT_FUNCTION - 87)) | (1L << (EXIT_PROPERTY - 87)) | (1L << (EXIT_SUB - 87)) | (1L << (FRIEND - 87)) | (1L << (FOR - 87)) | (1L << (FUNCTION - 87)) | (1L << (GET - 87)) | (1L << (GLOBAL - 87)) | (1L << (GOSUB - 87)) | (1L << (GOTO - 87)) | (1L << (IF - 87)) | (1L << (IMPLEMENTS - 87)) | (1L << (INPUT - 87)) | (1L << (LOCK - 87)) | (1L << (LOOP - 87)) | (1L << (LET - 87)) | (1L << (LINE_INPUT - 87)) | (1L << (LOCK_READ - 87)) | (1L << (LOCK_WRITE - 87)) | (1L << (LOCK_READ_WRITE - 87)) | (1L << (LSET - 87)) | (1L << (NEXT - 87)) | (1L << (ON - 87)) | (1L << (ON_ERROR - 87)) | (1L << (OPEN - 87)))) != 0) || ((((_la - 153)) & ~0x3f) == 0 && ((1L << (_la - 153)) & ((1L << (OUTPUT - 153)) | (1L << (PRINT - 153)) | (1L << (PRIVATE - 153)) | (1L << (PUBLIC - 153)) | (1L << (PUT - 153)) | (1L << (RANDOM - 153)) | (1L << (RAISEEVENT - 153)) | (1L << (READ - 153)) | (1L << (READ_WRITE - 153)) | (1L << (REDIM - 153)) | (1L << (RESET - 153)) | (1L << (RESUME - 153)) | (1L << (RETURN - 153)) | (1L << (RSET - 153)) | (1L << (SEEK - 153)) | (1L << (SELECT - 153)) | (1L << (SET - 153)) | (1L << (SHARED - 153)) | (1L << (STATIC - 153)) | (1L << (STEP - 153)) | (1L << (STOP - 153)) | (1L << (SUB - 153)) | (1L << (TYPE - 153)) | (1L << (UNLOCK - 153)) | (1L << (WEND - 153)) | (1L << (WHILE - 153)) | (1L << (WIDTH - 153)) | (1L << (WITH - 153)) | (1L << (WRITE - 153)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4405,11 +4507,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemKeywordContext remKeyword() { RemKeywordContext _localctx = new RemKeywordContext(_ctx, State); - EnterRule(_localctx, 82, RULE_remKeyword); + EnterRule(_localctx, 84, RULE_remKeyword); try { EnterOuterAlt(_localctx, 1); { - State = 561; Match(REM); + State = 576; Match(REM); } } catch (RecognitionException re) { @@ -4467,12 +4569,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MarkerKeywordContext markerKeyword() { MarkerKeywordContext _localctx = new MarkerKeywordContext(_ctx, State); - EnterRule(_localctx, 84, RULE_markerKeyword); + EnterRule(_localctx, 86, RULE_markerKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 563; + State = 578; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ANY) | (1L << AS) | (1L << BYVAL) | (1L << BYREF) | (1L << CASE))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (EACH - 86)) | (1L << (ELSE - 86)) | (1L << (IN - 86)) | (1L << (NEW - 86)) | (1L << (OPTIONAL - 86)))) != 0) || ((((_la - 154)) & ~0x3f) == 0 && ((1L << (_la - 154)) & ((1L << (PARAMARRAY - 154)) | (1L << (PRESERVE - 154)) | (1L << (SHARED - 154)) | (1L << (SPC - 154)) | (1L << (TAB - 154)) | (1L << (THEN - 154)) | (1L << (TO - 154)) | (1L << (UNTIL - 154)) | (1L << (WITHEVENTS - 154)) | (1L << (WRITE - 154)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4527,12 +4629,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OperatorIdentifierContext operatorIdentifier() { OperatorIdentifierContext _localctx = new OperatorIdentifierContext(_ctx, State); - EnterRule(_localctx, 86, RULE_operatorIdentifier); + EnterRule(_localctx, 88, RULE_operatorIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 565; + State = 580; _la = _input.La(1); if ( !(_la==ADDRESSOF || _la==AND || ((((_la - 100)) & ~0x3f) == 0 && ((1L << (_la - 100)) & ((1L << (EQV - 100)) | (1L << (IMP - 100)) | (1L << (IS - 100)) | (1L << (LIKE - 100)) | (1L << (MOD - 100)) | (1L << (NEW - 100)) | (1L << (NOT - 100)) | (1L << (OR - 100)))) != 0) || _la==TYPEOF || _la==XOR) ) { _errHandler.RecoverInline(this); @@ -4579,14 +4681,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedNameContext reservedName() { ReservedNameContext _localctx = new ReservedNameContext(_ctx, State); - EnterRule(_localctx, 88, RULE_reservedName); + EnterRule(_localctx, 90, RULE_reservedName); try { - State = 569; + State = 584; switch (_input.La(1)) { case ME: EnterOuterAlt(_localctx, 1); { - State = 567; Match(ME); + State = 582; Match(ME); } break; case ABS: @@ -4619,7 +4721,7 @@ public ReservedNameContext reservedName() { case MID: EnterOuterAlt(_localctx, 2); { - State = 568; reservedProcedureName(); + State = 583; reservedProcedureName(); } break; default: @@ -4689,12 +4791,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedProcedureNameContext reservedProcedureName() { ReservedProcedureNameContext _localctx = new ReservedProcedureNameContext(_ctx, State); - EnterRule(_localctx, 90, RULE_reservedProcedureName); + EnterRule(_localctx, 92, RULE_reservedProcedureName); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 571; + State = 586; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INT) | (1L << LEN) | (1L << LENB) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN))) != 0) || _la==MID) ) { _errHandler.RecoverInline(this); @@ -4744,12 +4846,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SpecialFormContext specialForm() { SpecialFormContext _localctx = new SpecialFormContext(_ctx, State); - EnterRule(_localctx, 92, RULE_specialForm); + EnterRule(_localctx, 94, RULE_specialForm); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 573; + State = 588; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ARRAY) | (1L << CIRCLE) | (1L << INPUTB) | (1L << LBOUND) | (1L << SCALE) | (1L << UBOUND))) != 0) || _la==INPUT) ) { _errHandler.RecoverInline(this); @@ -4804,12 +4906,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReservedTypeIdentifierContext reservedTypeIdentifier() { ReservedTypeIdentifierContext _localctx = new ReservedTypeIdentifierContext(_ctx, State); - EnterRule(_localctx, 94, RULE_reservedTypeIdentifier); + EnterRule(_localctx, 96, RULE_reservedTypeIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 575; + State = 590; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (DATE - 68)) | (1L << (DOUBLE - 68)) | (1L << (INTEGER - 68)) | (1L << (LONG - 68)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SINGLE - 178)) | (1L << (STRING - 178)) | (1L << (VARIANT - 178)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4861,12 +4963,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UncategorizedKeywordContext uncategorizedKeyword() { UncategorizedKeywordContext _localctx = new UncategorizedKeywordContext(_ctx, State); - EnterRule(_localctx, 96, RULE_uncategorizedKeyword); + EnterRule(_localctx, 98, RULE_uncategorizedKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 577; + State = 592; _la = _input.La(1); if ( !(((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & ((1L << (ALIAS - 51)) | (1L << (ATTRIBUTE - 51)) | (1L << (BEGIN - 51)) | (1L << (CLASS - 51)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (ON - 128)) | (1L << (TAB - 128)))) != 0) || _la==VERSION || _la==COLLECTION) ) { _errHandler.RecoverInline(this); @@ -4918,28 +5020,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralIdentifierContext literalIdentifier() { LiteralIdentifierContext _localctx = new LiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 98, RULE_literalIdentifier); + EnterRule(_localctx, 100, RULE_literalIdentifier); try { - State = 582; + State = 597; switch (_input.La(1)) { case FALSE: case TRUE: EnterOuterAlt(_localctx, 1); { - State = 579; booleanLiteralIdentifier(); + State = 594; booleanLiteralIdentifier(); } break; case NOTHING: EnterOuterAlt(_localctx, 2); { - State = 580; objectLiteralIdentifier(); + State = 595; objectLiteralIdentifier(); } break; case EMPTY: case NULL: EnterOuterAlt(_localctx, 3); { - State = 581; variantLiteralIdentifier(); + State = 596; variantLiteralIdentifier(); } break; default: @@ -4983,12 +5085,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BooleanLiteralIdentifierContext booleanLiteralIdentifier() { BooleanLiteralIdentifierContext _localctx = new BooleanLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 100, RULE_booleanLiteralIdentifier); + EnterRule(_localctx, 102, RULE_booleanLiteralIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 584; + State = 599; _la = _input.La(1); if ( !(_la==FALSE || _la==TRUE) ) { _errHandler.RecoverInline(this); @@ -5032,11 +5134,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ObjectLiteralIdentifierContext objectLiteralIdentifier() { ObjectLiteralIdentifierContext _localctx = new ObjectLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 102, RULE_objectLiteralIdentifier); + EnterRule(_localctx, 104, RULE_objectLiteralIdentifier); try { EnterOuterAlt(_localctx, 1); { - State = 586; Match(NOTHING); + State = 601; Match(NOTHING); } } catch (RecognitionException re) { @@ -5076,12 +5178,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariantLiteralIdentifierContext variantLiteralIdentifier() { VariantLiteralIdentifierContext _localctx = new VariantLiteralIdentifierContext(_ctx, State); - EnterRule(_localctx, 104, RULE_variantLiteralIdentifier); + EnterRule(_localctx, 106, RULE_variantLiteralIdentifier); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 588; + State = 603; _la = _input.La(1); if ( !(_la==EMPTY || _la==NULL) ) { _errHandler.RecoverInline(this); @@ -5132,13 +5234,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 106, RULE_whiteSpace); + EnterRule(_localctx, 108, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 591; + State = 606; _errHandler.Sync(this); _alt = 1; do { @@ -5146,7 +5248,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 590; + State = 605; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -5158,9 +5260,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 593; + State = 608; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,83,_ctx); + _alt = Interpreter.AdaptivePredict(_input,86,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -5177,9 +5279,9 @@ public WhiteSpaceContext whiteSpace() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 12: return expression_sempred((ExpressionContext)_localctx, predIndex); + case 13: return expression_sempred((ExpressionContext)_localctx, predIndex); - case 18: return lExpression_sempred((LExpressionContext)_localctx, predIndex); + case 19: return lExpression_sempred((LExpressionContext)_localctx, predIndex); } return true; } @@ -5229,7 +5331,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x256\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF5\x265\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -5238,270 +5340,277 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { "\t!\x4\"\t\"\x4#\t#\x4$\t$\x4%\t%\x4&\t&\x4\'\t\'\x4(\t(\x4)\t)\x4*\t"+ "*\x4+\t+\x4,\t,\x4-\t-\x4.\t.\x4/\t/\x4\x30\t\x30\x4\x31\t\x31\x4\x32"+ "\t\x32\x4\x33\t\x33\x4\x34\t\x34\x4\x35\t\x35\x4\x36\t\x36\x4\x37\t\x37"+ - "\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x5\x3t\n\x3\x3\x4\x3\x4\x5\x4x\n\x4\x3"+ - "\x5\x3\x5\x5\x5|\n\x5\x3\x6\x3\x6\x3\a\x3\a\x3\a\x3\b\x3\b\x3\b\x3\b\x3"+ - "\b\x3\b\x3\b\x3\b\x5\b\x8B\n\b\x3\t\x3\t\x3\t\x3\n\x3\n\x3\n\x3\n\x3\n"+ - "\x3\n\x3\n\x5\n\x97\n\n\x3\v\x3\v\x3\f\x3\f\x3\r\x3\r\x3\r\x5\r\xA0\n"+ - "\r\x3\r\x3\r\x5\r\xA4\n\r\x3\r\x3\r\x3\r\x3\r\x3\r\x5\r\xAB\n\r\x3\r\x3"+ - "\r\x5\r\xAF\n\r\x3\r\x5\r\xB2\n\r\x3\xE\x3\xE\x3\xE\x5\xE\xB7\n\xE\x3"+ - "\xE\x3\xE\x3\xE\x5\xE\xBC\n\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xC2\n\xE"+ - "\x3\xE\x3\xE\x5\xE\xC6\n\xE\x3\xE\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xCD\n"+ - "\xE\x3\xE\x3\xE\x5\xE\xD1\n\xE\x3\xE\x3\xE\x5\xE\xD5\n\xE\x3\xE\x3\xE"+ - "\x3\xE\x5\xE\xDA\n\xE\x3\xE\x3\xE\x5\xE\xDE\n\xE\x3\xE\x3\xE\x3\xE\x5"+ - "\xE\xE3\n\xE\x3\xE\x3\xE\x5\xE\xE7\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xEC\n"+ - "\xE\x3\xE\x3\xE\x5\xE\xF0\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xF5\n\xE\x3\xE"+ - "\x3\xE\x5\xE\xF9\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\xFE\n\xE\x3\xE\x3\xE\x5"+ - "\xE\x102\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x107\n\xE\x3\xE\x3\xE\x5\xE\x10B"+ - "\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x110\n\xE\x3\xE\x3\xE\x5\xE\x114\n\xE\x3"+ - "\xE\x3\xE\x3\xE\x5\xE\x119\n\xE\x3\xE\x3\xE\x5\xE\x11D\n\xE\x3\xE\x3\xE"+ - "\x3\xE\x5\xE\x122\n\xE\x3\xE\x3\xE\x5\xE\x126\n\xE\x3\xE\x3\xE\x3\xE\x5"+ - "\xE\x12B\n\xE\x3\xE\x3\xE\x5\xE\x12F\n\xE\x3\xE\x3\xE\x3\xE\x5\xE\x134"+ - "\n\xE\x3\xE\x3\xE\x5\xE\x138\n\xE\x3\xE\a\xE\x13B\n\xE\f\xE\xE\xE\x13E"+ - "\v\xE\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x145\n\xF\x5\xF\x147\n\xF\x3"+ - "\x10\x3\x10\x3\x11\x3\x11\x5\x11\x14D\n\x11\x3\x11\x3\x11\x5\x11\x151"+ - "\n\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12\x3\x12"+ - "\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14"+ - "\x165\n\x14\x3\x14\x3\x14\x5\x14\x169\n\x14\x3\x14\x3\x14\x5\x14\x16D"+ - "\n\x14\x3\x14\x5\x14\x170\n\x14\x3\x14\x5\x14\x173\n\x14\x3\x14\x3\x14"+ - "\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x17C\n\x14\x3\x14\x3\x14\x3"+ - "\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3\x14\x3"+ - "\x14\x3\x14\a\x14\x18C\n\x14\f\x14\xE\x14\x18F\v\x14\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x198\n\x15\x3\x15\x3\x15\x3\x15"+ - "\x5\x15\x19D\n\x15\x3\x16\x3\x16\x5\x16\x1A1\n\x16\x3\x16\x3\x16\x5\x16"+ - "\x1A5\n\x16\x3\x16\x5\x16\x1A8\n\x16\x3\x16\x5\x16\x1AB\n\x16\x3\x16\x3"+ - "\x16\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3"+ - "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x1BE\n\x17\x3\x18\x3\x18"+ - "\x3\x19\x5\x19\x1C3\n\x19\x3\x19\x5\x19\x1C6\n\x19\x3\x19\x3\x19\x5\x19"+ - "\x1CA\n\x19\a\x19\x1CC\n\x19\f\x19\xE\x19\x1CF\v\x19\x3\x19\x3\x19\x5"+ - "\x19\x1D3\n\x19\x3\x19\x5\x19\x1D6\n\x19\x3\x19\x3\x19\x5\x19\x1DA\n\x19"+ - "\a\x19\x1DC\n\x19\f\x19\xE\x19\x1DF\v\x19\x3\x19\x5\x19\x1E2\n\x19\x3"+ - "\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x5\x1C\x1EA\n\x1C\x3\x1C\x3\x1C"+ - "\x5\x1C\x1EE\n\x1C\x3\x1C\a\x1C\x1F1\n\x1C\f\x1C\xE\x1C\x1F4\v\x1C\x3"+ - "\x1D\x3\x1D\x5\x1D\x1F8\n\x1D\x3\x1D\x3\x1D\x5\x1D\x1FC\n\x1D\x3\x1D\x3"+ - "\x1D\x3\x1E\x3\x1E\x5\x1E\x202\n\x1E\x3\x1E\x3\x1E\x5\x1E\x206\n\x1E\x3"+ - "\x1F\x3\x1F\x3 \x3 \x3!\x3!\x5!\x20E\n!\x3\"\x3\"\x3\"\x3#\x3#\x3#\x3"+ - "$\x3$\x3%\x3%\x5%\x21A\n%\x3&\x3&\x5&\x21E\n&\x3\'\x3\'\x3\'\x3\'\x3("+ - "\x3(\x5(\x226\n(\x3)\x3)\x3)\x3)\x3)\x3)\x3)\x3)\x5)\x230\n)\x3*\x3*\x3"+ - "+\x3+\x3,\x3,\x3-\x3-\x3.\x3.\x5.\x23C\n.\x3/\x3/\x3\x30\x3\x30\x3\x31"+ - "\x3\x31\x3\x32\x3\x32\x3\x33\x3\x33\x3\x33\x5\x33\x249\n\x33\x3\x34\x3"+ - "\x34\x3\x35\x3\x35\x3\x36\x3\x36\x3\x37\x6\x37\x252\n\x37\r\x37\xE\x37"+ - "\x253\x3\x37\x2\x2\x4\x1A&\x38\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2"+ - "\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2"+ - "&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2"+ - "\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2"+ - "`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2\x2\x12\x5\x2,,.\x32\xDA\xDA\x5\x2"+ - ";;\x45\x45\xBC\xBC\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9\a\x2||"+ - "\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2\xE4\xE7\"\x2\x18\x18$$\x33\x33"+ - "\x38\x38;;@\x41\x43\x44GVYZ^^``\x63\x65gnpwyy{{~~\x80\x81\x84\x88\x8C"+ - "\x8C\x91\x92\x94\x94\x9B\x9B\x9E\x9F\xA4\xAA\xAC\xB3\xB6\xB8\xBA\xBA\xC0"+ - "\xC0\xC2\xC2\xC6\xC9\xCB\xCB\x11\x2\x4\x4\x39\x39=>\x41\x41XYzz\x8D\x8D"+ - "\x95\x95\x9C\x9D\xB3\xB3\xB5\xB5\xBB\xBB\xBD\xBE\xC3\xC3\xCA\xCB\r\x2"+ - "\x34\x34\x36\x36\x66\x66xx||\x83\x83\x8B\x8B\x8D\x8E\x9A\x9A\xC1\xC1\xCC"+ - "\xCC\f\x2\x3\x3\x6\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x8A\x8A"+ - "\t\x2\x5\x5\r\r\x1A\x1A\x1C\x1C&&(({{\r\x2\x13\x13\x1F <\x209\x3\x2\x2\x2@\x20D\x3\x2\x2\x2\x42"+ - "\x20F\x3\x2\x2\x2\x44\x212\x3\x2\x2\x2\x46\x215\x3\x2\x2\x2H\x219\x3\x2"+ - "\x2\x2J\x21D\x3\x2\x2\x2L\x21F\x3\x2\x2\x2N\x225\x3\x2\x2\x2P\x22F\x3"+ - "\x2\x2\x2R\x231\x3\x2\x2\x2T\x233\x3\x2\x2\x2V\x235\x3\x2\x2\x2X\x237"+ - "\x3\x2\x2\x2Z\x23B\x3\x2\x2\x2\\\x23D\x3\x2\x2\x2^\x23F\x3\x2\x2\x2`\x241"+ - "\x3\x2\x2\x2\x62\x243\x3\x2\x2\x2\x64\x248\x3\x2\x2\x2\x66\x24A\x3\x2"+ - "\x2\x2h\x24C\x3\x2\x2\x2j\x24E\x3\x2\x2\x2l\x251\x3\x2\x2\x2no\x5\x1A"+ - "\xE\x2op\a\x2\x2\x3p\x3\x3\x2\x2\x2qt\x5\x6\x4\x2rt\x5\b\x5\x2sq\x3\x2"+ - "\x2\x2sr\x3\x2\x2\x2t\x5\x3\x2\x2\x2ux\x5\xE\b\x2vx\x5\x10\t\x2wu\x3\x2"+ - "\x2\x2wv\x3\x2\x2\x2x\a\x3\x2\x2\x2y|\x5\n\x6\x2z|\x5\f\a\x2{y\x3\x2\x2"+ - "\x2{z\x3\x2\x2\x2|\t\x3\x2\x2\x2}~\x5P)\x2~\v\x3\x2\x2\x2\x7F\x80\x5P"+ - ")\x2\x80\x81\x5\x14\v\x2\x81\r\x3\x2\x2\x2\x82\x8B\a\xEF\x2\x2\x83\x8B"+ - "\a\xF3\x2\x2\x84\x8B\x5\\/\x2\x85\x8B\x5^\x30\x2\x86\x8B\x5\x16\f\x2\x87"+ - "\x8B\a\xF4\x2\x2\x88\x8B\x5\x62\x32\x2\x89\x8B\ah\x2\x2\x8A\x82\x3\x2"+ - "\x2\x2\x8A\x83\x3\x2\x2\x2\x8A\x84\x3\x2\x2\x2\x8A\x85\x3\x2\x2\x2\x8A"+ - "\x86\x3\x2\x2\x2\x8A\x87\x3\x2\x2\x2\x8A\x88\x3\x2\x2\x2\x8A\x89\x3\x2"+ - "\x2\x2\x8B\xF\x3\x2\x2\x2\x8C\x8D\x5\x12\n\x2\x8D\x8E\x5\x14\v\x2\x8E"+ - "\x11\x3\x2\x2\x2\x8F\x97\a\xEF\x2\x2\x90\x97\x5\\/\x2\x91\x97\x5^\x30"+ - "\x2\x92\x97\x5\x16\f\x2\x93\x97\a\xF4\x2\x2\x94\x97\x5\x62\x32\x2\x95"+ - "\x97\ah\x2\x2\x96\x8F\x3\x2\x2\x2\x96\x90\x3\x2\x2\x2\x96\x91\x3\x2\x2"+ - "\x2\x96\x92\x3\x2\x2\x2\x96\x93\x3\x2\x2\x2\x96\x94\x3\x2\x2\x2\x96\x95"+ - "\x3\x2\x2\x2\x97\x13\x3\x2\x2\x2\x98\x99\t\x2\x2\x2\x99\x15\x3\x2\x2\x2"+ - "\x9A\x9B\t\x3\x2\x2\x9B\x17\x3\x2\x2\x2\x9C\xB2\x5`\x31\x2\x9D\x9F\a\xE1"+ - "\x2\x2\x9E\xA0\x5l\x37\x2\x9F\x9E\x3\x2\x2\x2\x9F\xA0\x3\x2\x2\x2\xA0"+ - "\xA1\x3\x2\x2\x2\xA1\xA3\x5`\x31\x2\xA2\xA4\x5l\x37\x2\xA3\xA2\x3\x2\x2"+ - "\x2\xA3\xA4\x3\x2\x2\x2\xA4\xA5\x3\x2\x2\x2\xA5\xA6\a\xE2\x2\x2\xA6\xB2"+ - "\x3\x2\x2\x2\xA7\xB2\a\xF4\x2\x2\xA8\xAA\a\xE1\x2\x2\xA9\xAB\x5l\x37\x2"+ - "\xAA\xA9\x3\x2\x2\x2\xAA\xAB\x3\x2\x2\x2\xAB\xAC\x3\x2\x2\x2\xAC\xAE\a"+ - "\xF4\x2\x2\xAD\xAF\x5l\x37\x2\xAE\xAD\x3\x2\x2\x2\xAE\xAF\x3\x2\x2\x2"+ - "\xAF\xB0\x3\x2\x2\x2\xB0\xB2\a\xE2\x2\x2\xB1\x9C\x3\x2\x2\x2\xB1\x9D\x3"+ - "\x2\x2\x2\xB1\xA7\x3\x2\x2\x2\xB1\xA8\x3\x2\x2\x2\xB2\x19\x3\x2\x2\x2"+ - "\xB3\xB4\b\xE\x1\x2\xB4\xB6\a\xD6\x2\x2\xB5\xB7\x5l\x37\x2\xB6\xB5\x3"+ - "\x2\x2\x2\xB6\xB7\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2\xB8\xCD\x5\x1A\xE\x10"+ - "\xB9\xBB\a\x8E\x2\x2\xBA\xBC\x5l\x37\x2\xBB\xBA\x3\x2\x2\x2\xBB\xBC\x3"+ - "\x2\x2\x2\xBC\xBD\x3\x2\x2\x2\xBD\xCD\x5\x1A\xE\t\xBE\xCD\x5&\x14\x2\xBF"+ - "\xC1\a\xD4\x2\x2\xC0\xC2\x5l\x37\x2\xC1\xC0\x3\x2\x2\x2\xC1\xC2\x3\x2"+ - "\x2\x2\xC2\xC3\x3\x2\x2\x2\xC3\xC5\x5\x1A\xE\x2\xC4\xC6\x5l\x37\x2\xC5"+ - "\xC4\x3\x2\x2\x2\xC5\xC6\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2\xC7\xC8\a\xDB"+ - "\x2\x2\xC8\xCD\x3\x2\x2\x2\xC9\xCD\x5\"\x12\x2\xCA\xCD\x5$\x13\x2\xCB"+ - "\xCD\x5\x1C\xF\x2\xCC\xB3\x3\x2\x2\x2\xCC\xB9\x3\x2\x2\x2\xCC\xBE\x3\x2"+ - "\x2\x2\xCC\xBF\x3\x2\x2\x2\xCC\xC9\x3\x2\x2\x2\xCC\xCA\x3\x2\x2\x2\xCC"+ - "\xCB\x3\x2\x2\x2\xCD\x13C\x3\x2\x2\x2\xCE\xD0\f\x11\x2\x2\xCF\xD1\x5l"+ - "\x37\x2\xD0\xCF\x3\x2\x2\x2\xD0\xD1\x3\x2\x2\x2\xD1\xD2\x3\x2\x2\x2\xD2"+ - "\xD4\a\xDA\x2\x2\xD3\xD5\x5l\x37\x2\xD4\xD3\x3\x2\x2\x2\xD4\xD5\x3\x2"+ - "\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\x13B\x5\x1A\xE\x12\xD7\xD9\f\xF\x2\x2\xD8"+ - "\xDA\x5l\x37\x2\xD9\xD8\x3\x2\x2\x2\xD9\xDA\x3\x2\x2\x2\xDA\xDB\x3\x2"+ - "\x2\x2\xDB\xDD\t\x4\x2\x2\xDC\xDE\x5l\x37\x2\xDD\xDC\x3\x2\x2\x2\xDD\xDE"+ - "\x3\x2\x2\x2\xDE\xDF\x3\x2\x2\x2\xDF\x13B\x5\x1A\xE\x10\xE0\xE2\f\xE\x2"+ - "\x2\xE1\xE3\x5l\x37\x2\xE2\xE1\x3\x2\x2\x2\xE2\xE3\x3\x2\x2\x2\xE3\xE4"+ - "\x3\x2\x2\x2\xE4\xE6\a\xCF\x2\x2\xE5\xE7\x5l\x37\x2\xE6\xE5\x3\x2\x2\x2"+ - "\xE6\xE7\x3\x2\x2\x2\xE7\xE8\x3\x2\x2\x2\xE8\x13B\x5\x1A\xE\xF\xE9\xEB"+ - "\f\r\x2\x2\xEA\xEC\x5l\x37\x2\xEB\xEA\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2"+ - "\xEC\xED\x3\x2\x2\x2\xED\xEF\a\x8B\x2\x2\xEE\xF0\x5l\x37\x2\xEF\xEE\x3"+ - "\x2\x2\x2\xEF\xF0\x3\x2\x2\x2\xF0\xF1\x3\x2\x2\x2\xF1\x13B\x5\x1A\xE\xE"+ - "\xF2\xF4\f\f\x2\x2\xF3\xF5\x5l\x37\x2\xF4\xF3\x3\x2\x2\x2\xF4\xF5\x3\x2"+ - "\x2\x2\xF5\xF6\x3\x2\x2\x2\xF6\xF8\t\x5\x2\x2\xF7\xF9\x5l\x37\x2\xF8\xF7"+ - "\x3\x2\x2\x2\xF8\xF9\x3\x2\x2\x2\xF9\xFA\x3\x2\x2\x2\xFA\x13B\x5\x1A\xE"+ - "\r\xFB\xFD\f\v\x2\x2\xFC\xFE\x5l\x37\x2\xFD\xFC\x3\x2\x2\x2\xFD\xFE\x3"+ - "\x2\x2\x2\xFE\xFF\x3\x2\x2\x2\xFF\x101\a\x32\x2\x2\x100\x102\x5l\x37\x2"+ - "\x101\x100\x3\x2\x2\x2\x101\x102\x3\x2\x2\x2\x102\x103\x3\x2\x2\x2\x103"+ - "\x13B\x5\x1A\xE\f\x104\x106\f\n\x2\x2\x105\x107\x5l\x37\x2\x106\x105\x3"+ - "\x2\x2\x2\x106\x107\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108\x10A\t\x6\x2"+ - "\x2\x109\x10B\x5l\x37\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B\x3\x2\x2\x2\x10B"+ - "\x10C\x3\x2\x2\x2\x10C\x13B\x5\x1A\xE\v\x10D\x10F\f\b\x2\x2\x10E\x110"+ - "\x5l\x37\x2\x10F\x10E\x3\x2\x2\x2\x10F\x110\x3\x2\x2\x2\x110\x111\x3\x2"+ - "\x2\x2\x111\x113\a\x36\x2\x2\x112\x114\x5l\x37\x2\x113\x112\x3\x2\x2\x2"+ - "\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x13B\x5\x1A\xE\t\x116"+ - "\x118\f\a\x2\x2\x117\x119\x5l\x37\x2\x118\x117\x3\x2\x2\x2\x118\x119\x3"+ - "\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11C\a\x9A\x2\x2\x11B\x11D\x5l\x37"+ - "\x2\x11C\x11B\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D\x11E\x3\x2\x2\x2"+ - "\x11E\x13B\x5\x1A\xE\b\x11F\x121\f\x6\x2\x2\x120\x122\x5l\x37\x2\x121"+ - "\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2\x2\x2\x123\x125"+ - "\a\xCC\x2\x2\x124\x126\x5l\x37\x2\x125\x124\x3\x2\x2\x2\x125\x126\x3\x2"+ - "\x2\x2\x126\x127\x3\x2\x2\x2\x127\x13B\x5\x1A\xE\a\x128\x12A\f\x5\x2\x2"+ - "\x129\x12B\x5l\x37\x2\x12A\x129\x3\x2\x2\x2\x12A\x12B\x3\x2\x2\x2\x12B"+ - "\x12C\x3\x2\x2\x2\x12C\x12E\a\x66\x2\x2\x12D\x12F\x5l\x37\x2\x12E\x12D"+ - "\x3\x2\x2\x2\x12E\x12F\x3\x2\x2\x2\x12F\x130\x3\x2\x2\x2\x130\x13B\x5"+ - "\x1A\xE\x6\x131\x133\f\x4\x2\x2\x132\x134\x5l\x37\x2\x133\x132\x3\x2\x2"+ - "\x2\x133\x134\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x137\ax\x2\x2\x136"+ - "\x138\x5l\x37\x2\x137\x136\x3\x2\x2\x2\x137\x138\x3\x2\x2\x2\x138\x139"+ - "\x3\x2\x2\x2\x139\x13B\x5\x1A\xE\x5\x13A\xCE\x3\x2\x2\x2\x13A\xD7\x3\x2"+ - "\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xE9\x3\x2\x2\x2\x13A\xF2\x3\x2\x2\x2"+ - "\x13A\xFB\x3\x2\x2\x2\x13A\x104\x3\x2\x2\x2\x13A\x10D\x3\x2\x2\x2\x13A"+ - "\x116\x3\x2\x2\x2\x13A\x11F\x3\x2\x2\x2\x13A\x128\x3\x2\x2\x2\x13A\x131"+ - "\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2\x13C\x13D\x3"+ - "\x2\x2\x2\x13D\x1B\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F\x147\x5\x1E"+ - "\x10\x2\x140\x147\a\xE8\x2\x2\x141\x147\a\xE3\x2\x2\x142\x144\x5\x64\x33"+ - "\x2\x143\x145\x5\x14\v\x2\x144\x143\x3\x2\x2\x2\x144\x145\x3\x2\x2\x2"+ - "\x145\x147\x3\x2\x2\x2\x146\x13F\x3\x2\x2\x2\x146\x140\x3\x2\x2\x2\x146"+ - "\x141\x3\x2\x2\x2\x146\x142\x3\x2\x2\x2\x147\x1D\x3\x2\x2\x2\x148\x149"+ - "\t\a\x2\x2\x149\x1F\x3\x2\x2\x2\x14A\x14C\a\xD4\x2\x2\x14B\x14D\x5l\x37"+ - "\x2\x14C\x14B\x3\x2\x2\x2\x14C\x14D\x3\x2\x2\x2\x14D\x14E\x3\x2\x2\x2"+ - "\x14E\x150\x5\x1A\xE\x2\x14F\x151\x5l\x37\x2\x150\x14F\x3\x2\x2\x2\x150"+ - "\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x153\a\xDB\x2\x2\x153!\x3"+ - "\x2\x2\x2\x154\x155\a\xC1\x2\x2\x155\x156\x5l\x37\x2\x156\x157\x5\x1A"+ - "\xE\x2\x157\x158\x5l\x37\x2\x158\x159\a|\x2\x2\x159\x15A\x5l\x37\x2\x15A"+ - "\x15B\x5H%\x2\x15B#\x3\x2\x2\x2\x15C\x15D\a\x8D\x2\x2\x15D\x15E\x5l\x37"+ - "\x2\x15E\x15F\x5H%\x2\x15F%\x3\x2\x2\x2\x160\x161\b\x14\x1\x2\x161\x165"+ - "\x5> \x2\x162\x165\x5<\x1F\x2\x163\x165\x5@!\x2\x164\x160\x3\x2\x2\x2"+ - "\x164\x162\x3\x2\x2\x2\x164\x163\x3\x2\x2\x2\x165\x18D\x3\x2\x2\x2\x166"+ - "\x168\f\v\x2\x2\x167\x169\x5l\x37\x2\x168\x167\x3\x2\x2\x2\x168\x169\x3"+ - "\x2\x2\x2\x169\x16A\x3\x2\x2\x2\x16A\x16C\a\xD4\x2\x2\x16B\x16D\x5l\x37"+ - "\x2\x16C\x16B\x3\x2\x2\x2\x16C\x16D\x3\x2\x2\x2\x16D\x16F\x3\x2\x2\x2"+ - "\x16E\x170\x5.\x18\x2\x16F\x16E\x3\x2\x2\x2\x16F\x170\x3\x2\x2\x2\x170"+ - "\x172\x3\x2\x2\x2\x171\x173\x5l\x37\x2\x172\x171\x3\x2\x2\x2\x172\x173"+ - "\x3\x2\x2\x2\x173\x174\x3\x2\x2\x2\x174\x18C\a\xDB\x2\x2\x175\x176\f\n"+ - "\x2\x2\x176\x177\a-\x2\x2\x177\x18C\x5\x4\x3\x2\x178\x179\f\t\x2\x2\x179"+ - "\x17B\a\xF0\x2\x2\x17A\x17C\x5l\x37\x2\x17B\x17A\x3\x2\x2\x2\x17B\x17C"+ - "\x3\x2\x2\x2\x17C\x17D\x3\x2\x2\x2\x17D\x17E\a-\x2\x2\x17E\x18C\x5\x4"+ - "\x3\x2\x17F\x180\f\b\x2\x2\x180\x181\a,\x2\x2\x181\x18C\x5\x4\x3\x2\x182"+ - "\x183\f\a\x2\x2\x183\x184\a\xF0\x2\x2\x184\x185\a,\x2\x2\x185\x18C\x5"+ - "\x4\x3\x2\x186\x187\f\x6\x2\x2\x187\x188\a\xF0\x2\x2\x188\x189\a,\x2\x2"+ - "\x189\x18A\a\xF0\x2\x2\x18A\x18C\x5\x4\x3\x2\x18B\x166\x3\x2\x2\x2\x18B"+ - "\x175\x3\x2\x2\x2\x18B\x178\x3\x2\x2\x2\x18B\x17F\x3\x2\x2\x2\x18B\x182"+ - "\x3\x2\x2\x2\x18B\x186\x3\x2\x2\x2\x18C\x18F\x3\x2\x2\x2\x18D\x18B\x3"+ - "\x2\x2\x2\x18D\x18E\x3\x2\x2\x2\x18E\'\x3\x2\x2\x2\x18F\x18D\x3\x2\x2"+ - "\x2\x190\x191\x5&\x14\x2\x191\x192\a-\x2\x2\x192\x193\x5\x4\x3\x2\x193"+ - "\x19D\x3\x2\x2\x2\x194\x195\x5&\x14\x2\x195\x197\a\xF0\x2\x2\x196\x198"+ - "\x5l\x37\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3\x2\x2\x2\x198\x199\x3\x2"+ - "\x2\x2\x199\x19A\a-\x2\x2\x19A\x19B\x5\x4\x3\x2\x19B\x19D\x3\x2\x2\x2"+ - "\x19C\x190\x3\x2\x2\x2\x19C\x194\x3\x2\x2\x2\x19D)\x3\x2\x2\x2\x19E\x1A0"+ - "\x5&\x14\x2\x19F\x1A1\x5l\x37\x2\x1A0\x19F\x3\x2\x2\x2\x1A0\x1A1\x3\x2"+ - "\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A4\a\xD4\x2\x2\x1A3\x1A5\x5l\x37\x2"+ - "\x1A4\x1A3\x3\x2\x2\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1A7\x3\x2\x2\x2\x1A6"+ - "\x1A8\x5.\x18\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1AA"+ - "\x3\x2\x2\x2\x1A9\x1AB\x5l\x37\x2\x1AA\x1A9\x3\x2\x2\x2\x1AA\x1AB\x3\x2"+ - "\x2\x2\x1AB\x1AC\x3\x2\x2\x2\x1AC\x1AD\a\xDB\x2\x2\x1AD+\x3\x2\x2\x2\x1AE"+ - "\x1AF\x5&\x14\x2\x1AF\x1B0\a,\x2\x2\x1B0\x1B1\x5\x4\x3\x2\x1B1\x1BE\x3"+ - "\x2\x2\x2\x1B2\x1B3\x5&\x14\x2\x1B3\x1B4\a\xF0\x2\x2\x1B4\x1B5\a,\x2\x2"+ - "\x1B5\x1B6\x5\x4\x3\x2\x1B6\x1BE\x3\x2\x2\x2\x1B7\x1B8\x5&\x14\x2\x1B8"+ - "\x1B9\a\xF0\x2\x2\x1B9\x1BA\a,\x2\x2\x1BA\x1BB\a\xF0\x2\x2\x1BB\x1BC\x5"+ - "\x4\x3\x2\x1BC\x1BE\x3\x2\x2\x2\x1BD\x1AE\x3\x2\x2\x2\x1BD\x1B2\x3\x2"+ - "\x2\x2\x1BD\x1B7\x3\x2\x2\x2\x1BE-\x3\x2\x2\x2\x1BF\x1C0\x5\x30\x19\x2"+ - "\x1C0/\x3\x2\x2\x2\x1C1\x1C3\x5\x32\x1A\x2\x1C2\x1C1\x3\x2\x2\x2\x1C2"+ - "\x1C3\x3\x2\x2\x2\x1C3\x1C5\x3\x2\x2\x2\x1C4\x1C6\x5l\x37\x2\x1C5\x1C4"+ - "\x3\x2\x2\x2\x1C5\x1C6\x3\x2\x2\x2\x1C6\x1C7\x3\x2\x2\x2\x1C7\x1C9\a)"+ - "\x2\x2\x1C8\x1CA\x5l\x37\x2\x1C9\x1C8\x3\x2\x2\x2\x1C9\x1CA\x3\x2\x2\x2"+ - "\x1CA\x1CC\x3\x2\x2\x2\x1CB\x1C2\x3\x2\x2\x2\x1CC\x1CF\x3\x2\x2\x2\x1CD"+ - "\x1CB\x3\x2\x2\x2\x1CD\x1CE\x3\x2\x2\x2\x1CE\x1D0\x3\x2\x2\x2\x1CF\x1CD"+ - "\x3\x2\x2\x2\x1D0\x1E2\x5\x34\x1B\x2\x1D1\x1D3\x5\x32\x1A\x2\x1D2\x1D1"+ - "\x3\x2\x2\x2\x1D2\x1D3\x3\x2\x2\x2\x1D3\x1D5\x3\x2\x2\x2\x1D4\x1D6\x5"+ - "l\x37\x2\x1D5\x1D4\x3\x2\x2\x2\x1D5\x1D6\x3\x2\x2\x2\x1D6\x1D7\x3\x2\x2"+ - "\x2\x1D7\x1D9\a)\x2\x2\x1D8\x1DA\x5l\x37\x2\x1D9\x1D8\x3\x2\x2\x2\x1D9"+ - "\x1DA\x3\x2\x2\x2\x1DA\x1DC\x3\x2\x2\x2\x1DB\x1D2\x3\x2\x2\x2\x1DC\x1DF"+ - "\x3\x2\x2\x2\x1DD\x1DB\x3\x2\x2\x2\x1DD\x1DE\x3\x2\x2\x2\x1DE\x1E0\x3"+ - "\x2\x2\x2\x1DF\x1DD\x3\x2\x2\x2\x1E0\x1E2\x5\x36\x1C\x2\x1E1\x1CD\x3\x2"+ - "\x2\x2\x1E1\x1DD\x3\x2\x2\x2\x1E2\x31\x3\x2\x2\x2\x1E3\x1E4\x5:\x1E\x2"+ - "\x1E4\x33\x3\x2\x2\x2\x1E5\x1E6\x5:\x1E\x2\x1E6\x35\x3\x2\x2\x2\x1E7\x1F2"+ - "\x5\x38\x1D\x2\x1E8\x1EA\x5l\x37\x2\x1E9\x1E8\x3\x2\x2\x2\x1E9\x1EA\x3"+ - "\x2\x2\x2\x1EA\x1EB\x3\x2\x2\x2\x1EB\x1ED\a)\x2\x2\x1EC\x1EE\x5l\x37\x2"+ - "\x1ED\x1EC\x3\x2\x2\x2\x1ED\x1EE\x3\x2\x2\x2\x1EE\x1EF\x3\x2\x2\x2\x1EF"+ - "\x1F1\x5\x38\x1D\x2\x1F0\x1E9\x3\x2\x2\x2\x1F1\x1F4\x3\x2\x2\x2\x1F2\x1F0"+ - "\x3\x2\x2\x2\x1F2\x1F3\x3\x2\x2\x2\x1F3\x37\x3\x2\x2\x2\x1F4\x1F2\x3\x2"+ - "\x2\x2\x1F5\x1F7\x5\x4\x3\x2\x1F6\x1F8\x5l\x37\x2\x1F7\x1F6\x3\x2\x2\x2"+ - "\x1F7\x1F8\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2\x2\x1F9\x1FB\a\xCD\x2\x2\x1FA"+ - "\x1FC\x5l\x37\x2\x1FB\x1FA\x3\x2\x2\x2\x1FB\x1FC\x3\x2\x2\x2\x1FC\x1FD"+ - "\x3\x2\x2\x2\x1FD\x1FE\x5:\x1E\x2\x1FE\x39\x3\x2\x2\x2\x1FF\x200\a=\x2"+ - "\x2\x200\x202\x5l\x37\x2\x201\x1FF\x3\x2\x2\x2\x201\x202\x3\x2\x2\x2\x202"+ - "\x203\x3\x2\x2\x2\x203\x206\x5\x1A\xE\x2\x204\x206\x5L\'\x2\x205\x201"+ - "\x3\x2\x2\x2\x205\x204\x3\x2\x2\x2\x206;\x3\x2\x2\x2\x207\x208\x5\x6\x4"+ - "\x2\x208=\x3\x2\x2\x2\x209\x20A\a\x89\x2\x2\x20A?\x3\x2\x2\x2\x20B\x20E"+ - "\x5\x42\"\x2\x20C\x20E\x5\x44#\x2\x20D\x20B\x3\x2\x2\x2\x20D\x20C\x3\x2"+ - "\x2\x2\x20E\x41\x3\x2\x2\x2\x20F\x210\a-\x2\x2\x210\x211\x5\x4\x3\x2\x211"+ - "\x43\x3\x2\x2\x2\x212\x213\a,\x2\x2\x213\x214\x5\x4\x3\x2\x214\x45\x3"+ - "\x2\x2\x2\x215\x216\x5\x1A\xE\x2\x216G\x3\x2\x2\x2\x217\x21A\x5\x18\r"+ - "\x2\x218\x21A\x5J&\x2\x219\x217\x3\x2\x2\x2\x219\x218\x3\x2\x2\x2\x21A"+ - "I\x3\x2\x2\x2\x21B\x21E\x5<\x1F\x2\x21C\x21E\x5(\x15\x2\x21D\x21B\x3\x2"+ - "\x2\x2\x21D\x21C\x3\x2\x2\x2\x21EK\x3\x2\x2\x2\x21F\x220\a\x34\x2\x2\x220"+ - "\x221\x5l\x37\x2\x221\x222\x5N(\x2\x222M\x3\x2\x2\x2\x223\x226\x5(\x15"+ - "\x2\x224\x226\x5<\x1F\x2\x225\x223\x3\x2\x2\x2\x225\x224\x3\x2\x2\x2\x226"+ - "O\x3\x2\x2\x2\x227\x230\x5R*\x2\x228\x230\x5V,\x2\x229\x230\x5X-\x2\x22A"+ - "\x230\x5^\x30\x2\x22B\x230\x5Z.\x2\x22C\x230\x5\x64\x33\x2\x22D\x230\x5"+ - "T+\x2\x22E\x230\x5`\x31\x2\x22F\x227\x3\x2\x2\x2\x22F\x228\x3\x2\x2\x2"+ - "\x22F\x229\x3\x2\x2\x2\x22F\x22A\x3\x2\x2\x2\x22F\x22B\x3\x2\x2\x2\x22F"+ - "\x22C\x3\x2\x2\x2\x22F\x22D\x3\x2\x2\x2\x22F\x22E\x3\x2\x2\x2\x230Q\x3"+ - "\x2\x2\x2\x231\x232\t\b\x2\x2\x232S\x3\x2\x2\x2\x233\x234\a\xAB\x2\x2"+ - "\x234U\x3\x2\x2\x2\x235\x236\t\t\x2\x2\x236W\x3\x2\x2\x2\x237\x238\t\n"+ - "\x2\x2\x238Y\x3\x2\x2\x2\x239\x23C\a\x89\x2\x2\x23A\x23C\x5\\/\x2\x23B"+ - "\x239\x3\x2\x2\x2\x23B\x23A\x3\x2\x2\x2\x23C[\x3\x2\x2\x2\x23D\x23E\t"+ - "\v\x2\x2\x23E]\x3\x2\x2\x2\x23F\x240\t\f\x2\x2\x240_\x3\x2\x2\x2\x241"+ - "\x242\t\r\x2\x2\x242\x61\x3\x2\x2\x2\x243\x244\t\xE\x2\x2\x244\x63\x3"+ - "\x2\x2\x2\x245\x249\x5\x66\x34\x2\x246\x249\x5h\x35\x2\x247\x249\x5j\x36"+ - "\x2\x248\x245\x3\x2\x2\x2\x248\x246\x3\x2\x2\x2\x248\x247\x3\x2\x2\x2"+ - "\x249\x65\x3\x2\x2\x2\x24A\x24B\t\xF\x2\x2\x24Bg\x3\x2\x2\x2\x24C\x24D"+ - "\a\x8F\x2\x2\x24Di\x3\x2\x2\x2\x24E\x24F\t\x10\x2\x2\x24Fk\x3\x2\x2\x2"+ - "\x250\x252\t\x11\x2\x2\x251\x250\x3\x2\x2\x2\x252\x253\x3\x2\x2\x2\x253"+ - "\x251\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254m\x3\x2\x2\x2Vsw{\x8A\x96"+ - "\x9F\xA3\xAA\xAE\xB1\xB6\xBB\xC1\xC5\xCC\xD0\xD4\xD9\xDD\xE2\xE6\xEB\xEF"+ - "\xF4\xF8\xFD\x101\x106\x10A\x10F\x113\x118\x11C\x121\x125\x12A\x12E\x133"+ - "\x137\x13A\x13C\x144\x146\x14C\x150\x164\x168\x16C\x16F\x172\x17B\x18B"+ - "\x18D\x197\x19C\x1A0\x1A4\x1A7\x1AA\x1BD\x1C2\x1C5\x1C9\x1CD\x1D2\x1D5"+ - "\x1D9\x1DD\x1E1\x1E9\x1ED\x1F2\x1F7\x1FB\x201\x205\x20D\x219\x21D\x225"+ - "\x22F\x23B\x248\x253"; + "\x4\x38\t\x38\x3\x2\x3\x2\x5\x2s\n\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\x5"+ + "\x3z\n\x3\x3\x3\x3\x3\x3\x3\x5\x3\x7F\n\x3\x3\x4\x3\x4\x5\x4\x83\n\x4"+ + "\x3\x5\x3\x5\x5\x5\x87\n\x5\x3\x6\x3\x6\x5\x6\x8B\n\x6\x3\a\x3\a\x3\b"+ + "\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x9A\n\t\x3\n\x3"+ + "\n\x3\n\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x3\v\x5\v\xA6\n\v\x3\f\x3\f\x3\r"+ + "\x3\r\x3\xE\x3\xE\x3\xE\x5\xE\xAF\n\xE\x3\xE\x3\xE\x5\xE\xB3\n\xE\x3\xE"+ + "\x3\xE\x3\xE\x3\xE\x3\xE\x5\xE\xBA\n\xE\x3\xE\x3\xE\x5\xE\xBE\n\xE\x3"+ + "\xE\x5\xE\xC1\n\xE\x3\xF\x3\xF\x3\xF\x5\xF\xC6\n\xF\x3\xF\x3\xF\x3\xF"+ + "\x5\xF\xCB\n\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\xD1\n\xF\x3\xF\x3\xF\x5"+ + "\xF\xD5\n\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\xDC\n\xF\x3\xF\x3\xF"+ + "\x5\xF\xE0\n\xF\x3\xF\x3\xF\x5\xF\xE4\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\xE9"+ + "\n\xF\x3\xF\x3\xF\x5\xF\xED\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\xF2\n\xF\x3\xF"+ + "\x3\xF\x5\xF\xF6\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\xFB\n\xF\x3\xF\x3\xF\x5"+ + "\xF\xFF\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\x104\n\xF\x3\xF\x3\xF\x5\xF\x108"+ + "\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\x10D\n\xF\x3\xF\x3\xF\x5\xF\x111\n\xF\x3"+ + "\xF\x3\xF\x3\xF\x5\xF\x116\n\xF\x3\xF\x3\xF\x5\xF\x11A\n\xF\x3\xF\x3\xF"+ + "\x3\xF\x5\xF\x11F\n\xF\x3\xF\x3\xF\x5\xF\x123\n\xF\x3\xF\x3\xF\x3\xF\x5"+ + "\xF\x128\n\xF\x3\xF\x3\xF\x5\xF\x12C\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\x131"+ + "\n\xF\x3\xF\x3\xF\x5\xF\x135\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\x13A\n\xF\x3"+ + "\xF\x3\xF\x5\xF\x13E\n\xF\x3\xF\x3\xF\x3\xF\x5\xF\x143\n\xF\x3\xF\x3\xF"+ + "\x5\xF\x147\n\xF\x3\xF\a\xF\x14A\n\xF\f\xF\xE\xF\x14D\v\xF\x3\x10\x3\x10"+ + "\x3\x10\x3\x10\x3\x10\x5\x10\x154\n\x10\x5\x10\x156\n\x10\x3\x11\x3\x11"+ + "\x3\x12\x3\x12\x5\x12\x15C\n\x12\x3\x12\x3\x12\x5\x12\x160\n\x12\x3\x12"+ + "\x3\x12\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x14"+ + "\x3\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x174\n\x15\x3"+ + "\x15\x3\x15\x5\x15\x178\n\x15\x3\x15\x3\x15\x5\x15\x17C\n\x15\x3\x15\x5"+ + "\x15\x17F\n\x15\x3\x15\x5\x15\x182\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3"+ + "\x15\x3\x15\x3\x15\x5\x15\x18B\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\a\x15"+ + "\x19B\n\x15\f\x15\xE\x15\x19E\v\x15\x3\x16\x3\x16\x3\x16\x3\x16\x3\x16"+ + "\x3\x16\x3\x16\x5\x16\x1A7\n\x16\x3\x16\x3\x16\x3\x16\x5\x16\x1AC\n\x16"+ + "\x3\x17\x3\x17\x5\x17\x1B0\n\x17\x3\x17\x3\x17\x5\x17\x1B4\n\x17\x3\x17"+ + "\x5\x17\x1B7\n\x17\x3\x17\x5\x17\x1BA\n\x17\x3\x17\x3\x17\x3\x18\x3\x18"+ + "\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18"+ + "\x3\x18\x3\x18\x3\x18\x5\x18\x1CD\n\x18\x3\x19\x3\x19\x3\x1A\x5\x1A\x1D2"+ + "\n\x1A\x3\x1A\x5\x1A\x1D5\n\x1A\x3\x1A\x3\x1A\x5\x1A\x1D9\n\x1A\a\x1A"+ + "\x1DB\n\x1A\f\x1A\xE\x1A\x1DE\v\x1A\x3\x1A\x3\x1A\x5\x1A\x1E2\n\x1A\x3"+ + "\x1A\x5\x1A\x1E5\n\x1A\x3\x1A\x3\x1A\x5\x1A\x1E9\n\x1A\a\x1A\x1EB\n\x1A"+ + "\f\x1A\xE\x1A\x1EE\v\x1A\x3\x1A\x5\x1A\x1F1\n\x1A\x3\x1B\x3\x1B\x3\x1C"+ + "\x3\x1C\x3\x1D\x3\x1D\x5\x1D\x1F9\n\x1D\x3\x1D\x3\x1D\x5\x1D\x1FD\n\x1D"+ + "\x3\x1D\a\x1D\x200\n\x1D\f\x1D\xE\x1D\x203\v\x1D\x3\x1E\x3\x1E\x5\x1E"+ + "\x207\n\x1E\x3\x1E\x3\x1E\x5\x1E\x20B\n\x1E\x3\x1E\x3\x1E\x3\x1F\x3\x1F"+ + "\x5\x1F\x211\n\x1F\x3\x1F\x3\x1F\x5\x1F\x215\n\x1F\x3 \x3 \x3!\x3!\x3"+ + "\"\x3\"\x5\"\x21D\n\"\x3#\x3#\x3#\x3$\x3$\x3$\x3%\x3%\x3&\x3&\x5&\x229"+ + "\n&\x3\'\x3\'\x5\'\x22D\n\'\x3(\x3(\x3(\x3(\x3)\x3)\x5)\x235\n)\x3*\x3"+ + "*\x3*\x3*\x3*\x3*\x3*\x3*\x5*\x23F\n*\x3+\x3+\x3,\x3,\x3-\x3-\x3.\x3."+ + "\x3/\x3/\x5/\x24B\n/\x3\x30\x3\x30\x3\x31\x3\x31\x3\x32\x3\x32\x3\x33"+ + "\x3\x33\x3\x34\x3\x34\x3\x34\x5\x34\x258\n\x34\x3\x35\x3\x35\x3\x36\x3"+ + "\x36\x3\x37\x3\x37\x3\x38\x6\x38\x261\n\x38\r\x38\xE\x38\x262\x3\x38\x2"+ + "\x2\x4\x1C(\x39\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14"+ + "\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2"+ + "\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46"+ + "\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2"+ + "\x66\x2h\x2j\x2l\x2n\x2\x2\x12\x5\x2,,.\x32\xDA\xDA\x5\x2;;\x45\x45\xBC"+ + "\xBC\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9\a\x2||\x83\x83\xD0\xD3"+ + "\xD5\xD5\xD8\xD8\x3\x2\xE4\xE7\"\x2\x18\x18$$\x33\x33\x38\x38;;@\x41\x43"+ + "\x44GVYZ^^``\x63\x65gnpwyy{{~~\x80\x81\x84\x88\x8C\x8C\x91\x92\x94\x94"+ + "\x9B\x9B\x9E\x9F\xA4\xAA\xAC\xB3\xB6\xB8\xBA\xBA\xC0\xC0\xC2\xC2\xC6\xC9"+ + "\xCB\xCB\x11\x2\x4\x4\x39\x39=>\x41\x41XYzz\x8D\x8D\x95\x95\x9C\x9D\xB3"+ + "\xB3\xB5\xB5\xBB\xBB\xBD\xBE\xC3\xC3\xCA\xCB\r\x2\x34\x34\x36\x36\x66"+ + "\x66xx||\x83\x83\x8B\x8B\x8D\x8E\x9A\x9A\xC1\xC1\xCC\xCC\f\x2\x3\x3\x6"+ + "\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x8A\x8A\t\x2\x5\x5\r\r"+ + "\x1A\x1A\x1C\x1C&&(({{\r\x2\x13\x13\x1F <\x216\x3\x2\x2\x2@\x218\x3\x2\x2\x2\x42\x21C\x3\x2\x2\x2"+ + "\x44\x21E\x3\x2\x2\x2\x46\x221\x3\x2\x2\x2H\x224\x3\x2\x2\x2J\x228\x3"+ + "\x2\x2\x2L\x22C\x3\x2\x2\x2N\x22E\x3\x2\x2\x2P\x234\x3\x2\x2\x2R\x23E"+ + "\x3\x2\x2\x2T\x240\x3\x2\x2\x2V\x242\x3\x2\x2\x2X\x244\x3\x2\x2\x2Z\x246"+ + "\x3\x2\x2\x2\\\x24A\x3\x2\x2\x2^\x24C\x3\x2\x2\x2`\x24E\x3\x2\x2\x2\x62"+ + "\x250\x3\x2\x2\x2\x64\x252\x3\x2\x2\x2\x66\x257\x3\x2\x2\x2h\x259\x3\x2"+ + "\x2\x2j\x25B\x3\x2\x2\x2l\x25D\x3\x2\x2\x2n\x260\x3\x2\x2\x2ps\x5\x1C"+ + "\xF\x2qs\x5\x4\x3\x2rp\x3\x2\x2\x2rq\x3\x2\x2\x2st\x3\x2\x2\x2tu\a\x2"+ + "\x2\x3u\x3\x3\x2\x2\x2vz\x5*\x16\x2wz\x5> \x2xz\x5\x42\"\x2yv\x3\x2\x2"+ + "\x2yw\x3\x2\x2\x2yx\x3\x2\x2\x2z~\x3\x2\x2\x2{|\x5n\x38\x2|}\x5\x30\x19"+ + "\x2}\x7F\x3\x2\x2\x2~{\x3\x2\x2\x2~\x7F\x3\x2\x2\x2\x7F\x5\x3\x2\x2\x2"+ + "\x80\x83\x5\b\x5\x2\x81\x83\x5\n\x6\x2\x82\x80\x3\x2\x2\x2\x82\x81\x3"+ + "\x2\x2\x2\x83\a\x3\x2\x2\x2\x84\x87\x5\x10\t\x2\x85\x87\x5\x12\n\x2\x86"+ + "\x84\x3\x2\x2\x2\x86\x85\x3\x2\x2\x2\x87\t\x3\x2\x2\x2\x88\x8B\x5\f\a"+ + "\x2\x89\x8B\x5\xE\b\x2\x8A\x88\x3\x2\x2\x2\x8A\x89\x3\x2\x2\x2\x8B\v\x3"+ + "\x2\x2\x2\x8C\x8D\x5R*\x2\x8D\r\x3\x2\x2\x2\x8E\x8F\x5R*\x2\x8F\x90\x5"+ + "\x16\f\x2\x90\xF\x3\x2\x2\x2\x91\x9A\a\xEF\x2\x2\x92\x9A\a\xF3\x2\x2\x93"+ + "\x9A\x5^\x30\x2\x94\x9A\x5`\x31\x2\x95\x9A\x5\x18\r\x2\x96\x9A\a\xF4\x2"+ + "\x2\x97\x9A\x5\x64\x33\x2\x98\x9A\ah\x2\x2\x99\x91\x3\x2\x2\x2\x99\x92"+ + "\x3\x2\x2\x2\x99\x93\x3\x2\x2\x2\x99\x94\x3\x2\x2\x2\x99\x95\x3\x2\x2"+ + "\x2\x99\x96\x3\x2\x2\x2\x99\x97\x3\x2\x2\x2\x99\x98\x3\x2\x2\x2\x9A\x11"+ + "\x3\x2\x2\x2\x9B\x9C\x5\x14\v\x2\x9C\x9D\x5\x16\f\x2\x9D\x13\x3\x2\x2"+ + "\x2\x9E\xA6\a\xEF\x2\x2\x9F\xA6\x5^\x30\x2\xA0\xA6\x5`\x31\x2\xA1\xA6"+ + "\x5\x18\r\x2\xA2\xA6\a\xF4\x2\x2\xA3\xA6\x5\x64\x33\x2\xA4\xA6\ah\x2\x2"+ + "\xA5\x9E\x3\x2\x2\x2\xA5\x9F\x3\x2\x2\x2\xA5\xA0\x3\x2\x2\x2\xA5\xA1\x3"+ + "\x2\x2\x2\xA5\xA2\x3\x2\x2\x2\xA5\xA3\x3\x2\x2\x2\xA5\xA4\x3\x2\x2\x2"+ + "\xA6\x15\x3\x2\x2\x2\xA7\xA8\t\x2\x2\x2\xA8\x17\x3\x2\x2\x2\xA9\xAA\t"+ + "\x3\x2\x2\xAA\x19\x3\x2\x2\x2\xAB\xC1\x5\x62\x32\x2\xAC\xAE\a\xE1\x2\x2"+ + "\xAD\xAF\x5n\x38\x2\xAE\xAD\x3\x2\x2\x2\xAE\xAF\x3\x2\x2\x2\xAF\xB0\x3"+ + "\x2\x2\x2\xB0\xB2\x5\x62\x32\x2\xB1\xB3\x5n\x38\x2\xB2\xB1\x3\x2\x2\x2"+ + "\xB2\xB3\x3\x2\x2\x2\xB3\xB4\x3\x2\x2\x2\xB4\xB5\a\xE2\x2\x2\xB5\xC1\x3"+ + "\x2\x2\x2\xB6\xC1\a\xF4\x2\x2\xB7\xB9\a\xE1\x2\x2\xB8\xBA\x5n\x38\x2\xB9"+ + "\xB8\x3\x2\x2\x2\xB9\xBA\x3\x2\x2\x2\xBA\xBB\x3\x2\x2\x2\xBB\xBD\a\xF4"+ + "\x2\x2\xBC\xBE\x5n\x38\x2\xBD\xBC\x3\x2\x2\x2\xBD\xBE\x3\x2\x2\x2\xBE"+ + "\xBF\x3\x2\x2\x2\xBF\xC1\a\xE2\x2\x2\xC0\xAB\x3\x2\x2\x2\xC0\xAC\x3\x2"+ + "\x2\x2\xC0\xB6\x3\x2\x2\x2\xC0\xB7\x3\x2\x2\x2\xC1\x1B\x3\x2\x2\x2\xC2"+ + "\xC3\b\xF\x1\x2\xC3\xC5\a\xD6\x2\x2\xC4\xC6\x5n\x38\x2\xC5\xC4\x3\x2\x2"+ + "\x2\xC5\xC6\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2\xC7\xDC\x5\x1C\xF\x10\xC8"+ + "\xCA\a\x8E\x2\x2\xC9\xCB\x5n\x38\x2\xCA\xC9\x3\x2\x2\x2\xCA\xCB\x3\x2"+ + "\x2\x2\xCB\xCC\x3\x2\x2\x2\xCC\xDC\x5\x1C\xF\t\xCD\xDC\x5(\x15\x2\xCE"+ + "\xD0\a\xD4\x2\x2\xCF\xD1\x5n\x38\x2\xD0\xCF\x3\x2\x2\x2\xD0\xD1\x3\x2"+ + "\x2\x2\xD1\xD2\x3\x2\x2\x2\xD2\xD4\x5\x1C\xF\x2\xD3\xD5\x5n\x38\x2\xD4"+ + "\xD3\x3\x2\x2\x2\xD4\xD5\x3\x2\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\xD7\a\xDB"+ + "\x2\x2\xD7\xDC\x3\x2\x2\x2\xD8\xDC\x5$\x13\x2\xD9\xDC\x5&\x14\x2\xDA\xDC"+ + "\x5\x1E\x10\x2\xDB\xC2\x3\x2\x2\x2\xDB\xC8\x3\x2\x2\x2\xDB\xCD\x3\x2\x2"+ + "\x2\xDB\xCE\x3\x2\x2\x2\xDB\xD8\x3\x2\x2\x2\xDB\xD9\x3\x2\x2\x2\xDB\xDA"+ + "\x3\x2\x2\x2\xDC\x14B\x3\x2\x2\x2\xDD\xDF\f\x11\x2\x2\xDE\xE0\x5n\x38"+ + "\x2\xDF\xDE\x3\x2\x2\x2\xDF\xE0\x3\x2\x2\x2\xE0\xE1\x3\x2\x2\x2\xE1\xE3"+ + "\a\xDA\x2\x2\xE2\xE4\x5n\x38\x2\xE3\xE2\x3\x2\x2\x2\xE3\xE4\x3\x2\x2\x2"+ + "\xE4\xE5\x3\x2\x2\x2\xE5\x14A\x5\x1C\xF\x12\xE6\xE8\f\xF\x2\x2\xE7\xE9"+ + "\x5n\x38\x2\xE8\xE7\x3\x2\x2\x2\xE8\xE9\x3\x2\x2\x2\xE9\xEA\x3\x2\x2\x2"+ + "\xEA\xEC\t\x4\x2\x2\xEB\xED\x5n\x38\x2\xEC\xEB\x3\x2\x2\x2\xEC\xED\x3"+ + "\x2\x2\x2\xED\xEE\x3\x2\x2\x2\xEE\x14A\x5\x1C\xF\x10\xEF\xF1\f\xE\x2\x2"+ + "\xF0\xF2\x5n\x38\x2\xF1\xF0\x3\x2\x2\x2\xF1\xF2\x3\x2\x2\x2\xF2\xF3\x3"+ + "\x2\x2\x2\xF3\xF5\a\xCF\x2\x2\xF4\xF6\x5n\x38\x2\xF5\xF4\x3\x2\x2\x2\xF5"+ + "\xF6\x3\x2\x2\x2\xF6\xF7\x3\x2\x2\x2\xF7\x14A\x5\x1C\xF\xF\xF8\xFA\f\r"+ + "\x2\x2\xF9\xFB\x5n\x38\x2\xFA\xF9\x3\x2\x2\x2\xFA\xFB\x3\x2\x2\x2\xFB"+ + "\xFC\x3\x2\x2\x2\xFC\xFE\a\x8B\x2\x2\xFD\xFF\x5n\x38\x2\xFE\xFD\x3\x2"+ + "\x2\x2\xFE\xFF\x3\x2\x2\x2\xFF\x100\x3\x2\x2\x2\x100\x14A\x5\x1C\xF\xE"+ + "\x101\x103\f\f\x2\x2\x102\x104\x5n\x38\x2\x103\x102\x3\x2\x2\x2\x103\x104"+ + "\x3\x2\x2\x2\x104\x105\x3\x2\x2\x2\x105\x107\t\x5\x2\x2\x106\x108\x5n"+ + "\x38\x2\x107\x106\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108\x109\x3\x2\x2"+ + "\x2\x109\x14A\x5\x1C\xF\r\x10A\x10C\f\v\x2\x2\x10B\x10D\x5n\x38\x2\x10C"+ + "\x10B\x3\x2\x2\x2\x10C\x10D\x3\x2\x2\x2\x10D\x10E\x3\x2\x2\x2\x10E\x110"+ + "\a\x32\x2\x2\x10F\x111\x5n\x38\x2\x110\x10F\x3\x2\x2\x2\x110\x111\x3\x2"+ + "\x2\x2\x111\x112\x3\x2\x2\x2\x112\x14A\x5\x1C\xF\f\x113\x115\f\n\x2\x2"+ + "\x114\x116\x5n\x38\x2\x115\x114\x3\x2\x2\x2\x115\x116\x3\x2\x2\x2\x116"+ + "\x117\x3\x2\x2\x2\x117\x119\t\x6\x2\x2\x118\x11A\x5n\x38\x2\x119\x118"+ + "\x3\x2\x2\x2\x119\x11A\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2\x11B\x14A\x5"+ + "\x1C\xF\v\x11C\x11E\f\b\x2\x2\x11D\x11F\x5n\x38\x2\x11E\x11D\x3\x2\x2"+ + "\x2\x11E\x11F\x3\x2\x2\x2\x11F\x120\x3\x2\x2\x2\x120\x122\a\x36\x2\x2"+ + "\x121\x123\x5n\x38\x2\x122\x121\x3\x2\x2\x2\x122\x123\x3\x2\x2\x2\x123"+ + "\x124\x3\x2\x2\x2\x124\x14A\x5\x1C\xF\t\x125\x127\f\a\x2\x2\x126\x128"+ + "\x5n\x38\x2\x127\x126\x3\x2\x2\x2\x127\x128\x3\x2\x2\x2\x128\x129\x3\x2"+ + "\x2\x2\x129\x12B\a\x9A\x2\x2\x12A\x12C\x5n\x38\x2\x12B\x12A\x3\x2\x2\x2"+ + "\x12B\x12C\x3\x2\x2\x2\x12C\x12D\x3\x2\x2\x2\x12D\x14A\x5\x1C\xF\b\x12E"+ + "\x130\f\x6\x2\x2\x12F\x131\x5n\x38\x2\x130\x12F\x3\x2\x2\x2\x130\x131"+ + "\x3\x2\x2\x2\x131\x132\x3\x2\x2\x2\x132\x134\a\xCC\x2\x2\x133\x135\x5"+ + "n\x38\x2\x134\x133\x3\x2\x2\x2\x134\x135\x3\x2\x2\x2\x135\x136\x3\x2\x2"+ + "\x2\x136\x14A\x5\x1C\xF\a\x137\x139\f\x5\x2\x2\x138\x13A\x5n\x38\x2\x139"+ + "\x138\x3\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13B\x3\x2\x2\x2\x13B\x13D"+ + "\a\x66\x2\x2\x13C\x13E\x5n\x38\x2\x13D\x13C\x3\x2\x2\x2\x13D\x13E\x3\x2"+ + "\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x14A\x5\x1C\xF\x6\x140\x142\f\x4\x2"+ + "\x2\x141\x143\x5n\x38\x2\x142\x141\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143"+ + "\x144\x3\x2\x2\x2\x144\x146\ax\x2\x2\x145\x147\x5n\x38\x2\x146\x145\x3"+ + "\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x148\x3\x2\x2\x2\x148\x14A\x5\x1C"+ + "\xF\x5\x149\xDD\x3\x2\x2\x2\x149\xE6\x3\x2\x2\x2\x149\xEF\x3\x2\x2\x2"+ + "\x149\xF8\x3\x2\x2\x2\x149\x101\x3\x2\x2\x2\x149\x10A\x3\x2\x2\x2\x149"+ + "\x113\x3\x2\x2\x2\x149\x11C\x3\x2\x2\x2\x149\x125\x3\x2\x2\x2\x149\x12E"+ + "\x3\x2\x2\x2\x149\x137\x3\x2\x2\x2\x149\x140\x3\x2\x2\x2\x14A\x14D\x3"+ + "\x2\x2\x2\x14B\x149\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x1D\x3\x2\x2"+ + "\x2\x14D\x14B\x3\x2\x2\x2\x14E\x156\x5 \x11\x2\x14F\x156\a\xE8\x2\x2\x150"+ + "\x156\a\xE3\x2\x2\x151\x153\x5\x66\x34\x2\x152\x154\x5\x16\f\x2\x153\x152"+ + "\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x156\x3\x2\x2\x2\x155\x14E\x3"+ + "\x2\x2\x2\x155\x14F\x3\x2\x2\x2\x155\x150\x3\x2\x2\x2\x155\x151\x3\x2"+ + "\x2\x2\x156\x1F\x3\x2\x2\x2\x157\x158\t\a\x2\x2\x158!\x3\x2\x2\x2\x159"+ + "\x15B\a\xD4\x2\x2\x15A\x15C\x5n\x38\x2\x15B\x15A\x3\x2\x2\x2\x15B\x15C"+ + "\x3\x2\x2\x2\x15C\x15D\x3\x2\x2\x2\x15D\x15F\x5\x1C\xF\x2\x15E\x160\x5"+ + "n\x38\x2\x15F\x15E\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160\x161\x3\x2\x2"+ + "\x2\x161\x162\a\xDB\x2\x2\x162#\x3\x2\x2\x2\x163\x164\a\xC1\x2\x2\x164"+ + "\x165\x5n\x38\x2\x165\x166\x5\x1C\xF\x2\x166\x167\x5n\x38\x2\x167\x168"+ + "\a|\x2\x2\x168\x169\x5n\x38\x2\x169\x16A\x5J&\x2\x16A%\x3\x2\x2\x2\x16B"+ + "\x16C\a\x8D\x2\x2\x16C\x16D\x5n\x38\x2\x16D\x16E\x5J&\x2\x16E\'\x3\x2"+ + "\x2\x2\x16F\x170\b\x15\x1\x2\x170\x174\x5@!\x2\x171\x174\x5> \x2\x172"+ + "\x174\x5\x42\"\x2\x173\x16F\x3\x2\x2\x2\x173\x171\x3\x2\x2\x2\x173\x172"+ + "\x3\x2\x2\x2\x174\x19C\x3\x2\x2\x2\x175\x177\f\v\x2\x2\x176\x178\x5n\x38"+ + "\x2\x177\x176\x3\x2\x2\x2\x177\x178\x3\x2\x2\x2\x178\x179\x3\x2\x2\x2"+ + "\x179\x17B\a\xD4\x2\x2\x17A\x17C\x5n\x38\x2\x17B\x17A\x3\x2\x2\x2\x17B"+ + "\x17C\x3\x2\x2\x2\x17C\x17E\x3\x2\x2\x2\x17D\x17F\x5\x30\x19\x2\x17E\x17D"+ + "\x3\x2\x2\x2\x17E\x17F\x3\x2\x2\x2\x17F\x181\x3\x2\x2\x2\x180\x182\x5"+ + "n\x38\x2\x181\x180\x3\x2\x2\x2\x181\x182\x3\x2\x2\x2\x182\x183\x3\x2\x2"+ + "\x2\x183\x19B\a\xDB\x2\x2\x184\x185\f\n\x2\x2\x185\x186\a-\x2\x2\x186"+ + "\x19B\x5\x6\x4\x2\x187\x188\f\t\x2\x2\x188\x18A\a\xF0\x2\x2\x189\x18B"+ + "\x5n\x38\x2\x18A\x189\x3\x2\x2\x2\x18A\x18B\x3\x2\x2\x2\x18B\x18C\x3\x2"+ + "\x2\x2\x18C\x18D\a-\x2\x2\x18D\x19B\x5\x6\x4\x2\x18E\x18F\f\b\x2\x2\x18F"+ + "\x190\a,\x2\x2\x190\x19B\x5\x6\x4\x2\x191\x192\f\a\x2\x2\x192\x193\a\xF0"+ + "\x2\x2\x193\x194\a,\x2\x2\x194\x19B\x5\x6\x4\x2\x195\x196\f\x6\x2\x2\x196"+ + "\x197\a\xF0\x2\x2\x197\x198\a,\x2\x2\x198\x199\a\xF0\x2\x2\x199\x19B\x5"+ + "\x6\x4\x2\x19A\x175\x3\x2\x2\x2\x19A\x184\x3\x2\x2\x2\x19A\x187\x3\x2"+ + "\x2\x2\x19A\x18E\x3\x2\x2\x2\x19A\x191\x3\x2\x2\x2\x19A\x195\x3\x2\x2"+ + "\x2\x19B\x19E\x3\x2\x2\x2\x19C\x19A\x3\x2\x2\x2\x19C\x19D\x3\x2\x2\x2"+ + "\x19D)\x3\x2\x2\x2\x19E\x19C\x3\x2\x2\x2\x19F\x1A0\x5(\x15\x2\x1A0\x1A1"+ + "\a-\x2\x2\x1A1\x1A2\x5\x6\x4\x2\x1A2\x1AC\x3\x2\x2\x2\x1A3\x1A4\x5(\x15"+ + "\x2\x1A4\x1A6\a\xF0\x2\x2\x1A5\x1A7\x5n\x38\x2\x1A6\x1A5\x3\x2\x2\x2\x1A6"+ + "\x1A7\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\a-\x2\x2\x1A9\x1AA\x5"+ + "\x6\x4\x2\x1AA\x1AC\x3\x2\x2\x2\x1AB\x19F\x3\x2\x2\x2\x1AB\x1A3\x3\x2"+ + "\x2\x2\x1AC+\x3\x2\x2\x2\x1AD\x1AF\x5(\x15\x2\x1AE\x1B0\x5n\x38\x2\x1AF"+ + "\x1AE\x3\x2\x2\x2\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B1\x3\x2\x2\x2\x1B1\x1B3"+ + "\a\xD4\x2\x2\x1B2\x1B4\x5n\x38\x2\x1B3\x1B2\x3\x2\x2\x2\x1B3\x1B4\x3\x2"+ + "\x2\x2\x1B4\x1B6\x3\x2\x2\x2\x1B5\x1B7\x5\x30\x19\x2\x1B6\x1B5\x3\x2\x2"+ + "\x2\x1B6\x1B7\x3\x2\x2\x2\x1B7\x1B9\x3\x2\x2\x2\x1B8\x1BA\x5n\x38\x2\x1B9"+ + "\x1B8\x3\x2\x2\x2\x1B9\x1BA\x3\x2\x2\x2\x1BA\x1BB\x3\x2\x2\x2\x1BB\x1BC"+ + "\a\xDB\x2\x2\x1BC-\x3\x2\x2\x2\x1BD\x1BE\x5(\x15\x2\x1BE\x1BF\a,\x2\x2"+ + "\x1BF\x1C0\x5\x6\x4\x2\x1C0\x1CD\x3\x2\x2\x2\x1C1\x1C2\x5(\x15\x2\x1C2"+ + "\x1C3\a\xF0\x2\x2\x1C3\x1C4\a,\x2\x2\x1C4\x1C5\x5\x6\x4\x2\x1C5\x1CD\x3"+ + "\x2\x2\x2\x1C6\x1C7\x5(\x15\x2\x1C7\x1C8\a\xF0\x2\x2\x1C8\x1C9\a,\x2\x2"+ + "\x1C9\x1CA\a\xF0\x2\x2\x1CA\x1CB\x5\x6\x4\x2\x1CB\x1CD\x3\x2\x2\x2\x1CC"+ + "\x1BD\x3\x2\x2\x2\x1CC\x1C1\x3\x2\x2\x2\x1CC\x1C6\x3\x2\x2\x2\x1CD/\x3"+ + "\x2\x2\x2\x1CE\x1CF\x5\x32\x1A\x2\x1CF\x31\x3\x2\x2\x2\x1D0\x1D2\x5\x34"+ + "\x1B\x2\x1D1\x1D0\x3\x2\x2\x2\x1D1\x1D2\x3\x2\x2\x2\x1D2\x1D4\x3\x2\x2"+ + "\x2\x1D3\x1D5\x5n\x38\x2\x1D4\x1D3\x3\x2\x2\x2\x1D4\x1D5\x3\x2\x2\x2\x1D5"+ + "\x1D6\x3\x2\x2\x2\x1D6\x1D8\a)\x2\x2\x1D7\x1D9\x5n\x38\x2\x1D8\x1D7\x3"+ + "\x2\x2\x2\x1D8\x1D9\x3\x2\x2\x2\x1D9\x1DB\x3\x2\x2\x2\x1DA\x1D1\x3\x2"+ + "\x2\x2\x1DB\x1DE\x3\x2\x2\x2\x1DC\x1DA\x3\x2\x2\x2\x1DC\x1DD\x3\x2\x2"+ + "\x2\x1DD\x1DF\x3\x2\x2\x2\x1DE\x1DC\x3\x2\x2\x2\x1DF\x1F1\x5\x36\x1C\x2"+ + "\x1E0\x1E2\x5\x34\x1B\x2\x1E1\x1E0\x3\x2\x2\x2\x1E1\x1E2\x3\x2\x2\x2\x1E2"+ + "\x1E4\x3\x2\x2\x2\x1E3\x1E5\x5n\x38\x2\x1E4\x1E3\x3\x2\x2\x2\x1E4\x1E5"+ + "\x3\x2\x2\x2\x1E5\x1E6\x3\x2\x2\x2\x1E6\x1E8\a)\x2\x2\x1E7\x1E9\x5n\x38"+ + "\x2\x1E8\x1E7\x3\x2\x2\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1EB\x3\x2\x2\x2"+ + "\x1EA\x1E1\x3\x2\x2\x2\x1EB\x1EE\x3\x2\x2\x2\x1EC\x1EA\x3\x2\x2\x2\x1EC"+ + "\x1ED\x3\x2\x2\x2\x1ED\x1EF\x3\x2\x2\x2\x1EE\x1EC\x3\x2\x2\x2\x1EF\x1F1"+ + "\x5\x38\x1D\x2\x1F0\x1DC\x3\x2\x2\x2\x1F0\x1EC\x3\x2\x2\x2\x1F1\x33\x3"+ + "\x2\x2\x2\x1F2\x1F3\x5<\x1F\x2\x1F3\x35\x3\x2\x2\x2\x1F4\x1F5\x5<\x1F"+ + "\x2\x1F5\x37\x3\x2\x2\x2\x1F6\x201\x5:\x1E\x2\x1F7\x1F9\x5n\x38\x2\x1F8"+ + "\x1F7\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FC"+ + "\a)\x2\x2\x1FB\x1FD\x5n\x38\x2\x1FC\x1FB\x3\x2\x2\x2\x1FC\x1FD\x3\x2\x2"+ + "\x2\x1FD\x1FE\x3\x2\x2\x2\x1FE\x200\x5:\x1E\x2\x1FF\x1F8\x3\x2\x2\x2\x200"+ + "\x203\x3\x2\x2\x2\x201\x1FF\x3\x2\x2\x2\x201\x202\x3\x2\x2\x2\x202\x39"+ + "\x3\x2\x2\x2\x203\x201\x3\x2\x2\x2\x204\x206\x5\x6\x4\x2\x205\x207\x5"+ + "n\x38\x2\x206\x205\x3\x2\x2\x2\x206\x207\x3\x2\x2\x2\x207\x208\x3\x2\x2"+ + "\x2\x208\x20A\a\xCD\x2\x2\x209\x20B\x5n\x38\x2\x20A\x209\x3\x2\x2\x2\x20A"+ + "\x20B\x3\x2\x2\x2\x20B\x20C\x3\x2\x2\x2\x20C\x20D\x5<\x1F\x2\x20D;\x3"+ + "\x2\x2\x2\x20E\x20F\a=\x2\x2\x20F\x211\x5n\x38\x2\x210\x20E\x3\x2\x2\x2"+ + "\x210\x211\x3\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212\x215\x5\x1C\xF\x2\x213"+ + "\x215\x5N(\x2\x214\x210\x3\x2\x2\x2\x214\x213\x3\x2\x2\x2\x215=\x3\x2"+ + "\x2\x2\x216\x217\x5\b\x5\x2\x217?\x3\x2\x2\x2\x218\x219\a\x89\x2\x2\x219"+ + "\x41\x3\x2\x2\x2\x21A\x21D\x5\x44#\x2\x21B\x21D\x5\x46$\x2\x21C\x21A\x3"+ + "\x2\x2\x2\x21C\x21B\x3\x2\x2\x2\x21D\x43\x3\x2\x2\x2\x21E\x21F\a-\x2\x2"+ + "\x21F\x220\x5\x6\x4\x2\x220\x45\x3\x2\x2\x2\x221\x222\a,\x2\x2\x222\x223"+ + "\x5\x6\x4\x2\x223G\x3\x2\x2\x2\x224\x225\x5\x1C\xF\x2\x225I\x3\x2\x2\x2"+ + "\x226\x229\x5\x1A\xE\x2\x227\x229\x5L\'\x2\x228\x226\x3\x2\x2\x2\x228"+ + "\x227\x3\x2\x2\x2\x229K\x3\x2\x2\x2\x22A\x22D\x5> \x2\x22B\x22D\x5*\x16"+ + "\x2\x22C\x22A\x3\x2\x2\x2\x22C\x22B\x3\x2\x2\x2\x22DM\x3\x2\x2\x2\x22E"+ + "\x22F\a\x34\x2\x2\x22F\x230\x5n\x38\x2\x230\x231\x5P)\x2\x231O\x3\x2\x2"+ + "\x2\x232\x235\x5*\x16\x2\x233\x235\x5> \x2\x234\x232\x3\x2\x2\x2\x234"+ + "\x233\x3\x2\x2\x2\x235Q\x3\x2\x2\x2\x236\x23F\x5T+\x2\x237\x23F\x5X-\x2"+ + "\x238\x23F\x5Z.\x2\x239\x23F\x5`\x31\x2\x23A\x23F\x5\\/\x2\x23B\x23F\x5"+ + "\x66\x34\x2\x23C\x23F\x5V,\x2\x23D\x23F\x5\x62\x32\x2\x23E\x236\x3\x2"+ + "\x2\x2\x23E\x237\x3\x2\x2\x2\x23E\x238\x3\x2\x2\x2\x23E\x239\x3\x2\x2"+ + "\x2\x23E\x23A\x3\x2\x2\x2\x23E\x23B\x3\x2\x2\x2\x23E\x23C\x3\x2\x2\x2"+ + "\x23E\x23D\x3\x2\x2\x2\x23FS\x3\x2\x2\x2\x240\x241\t\b\x2\x2\x241U\x3"+ + "\x2\x2\x2\x242\x243\a\xAB\x2\x2\x243W\x3\x2\x2\x2\x244\x245\t\t\x2\x2"+ + "\x245Y\x3\x2\x2\x2\x246\x247\t\n\x2\x2\x247[\x3\x2\x2\x2\x248\x24B\a\x89"+ + "\x2\x2\x249\x24B\x5^\x30\x2\x24A\x248\x3\x2\x2\x2\x24A\x249\x3\x2\x2\x2"+ + "\x24B]\x3\x2\x2\x2\x24C\x24D\t\v\x2\x2\x24D_\x3\x2\x2\x2\x24E\x24F\t\f"+ + "\x2\x2\x24F\x61\x3\x2\x2\x2\x250\x251\t\r\x2\x2\x251\x63\x3\x2\x2\x2\x252"+ + "\x253\t\xE\x2\x2\x253\x65\x3\x2\x2\x2\x254\x258\x5h\x35\x2\x255\x258\x5"+ + "j\x36\x2\x256\x258\x5l\x37\x2\x257\x254\x3\x2\x2\x2\x257\x255\x3\x2\x2"+ + "\x2\x257\x256\x3\x2\x2\x2\x258g\x3\x2\x2\x2\x259\x25A\t\xF\x2\x2\x25A"+ + "i\x3\x2\x2\x2\x25B\x25C\a\x8F\x2\x2\x25Ck\x3\x2\x2\x2\x25D\x25E\t\x10"+ + "\x2\x2\x25Em\x3\x2\x2\x2\x25F\x261\t\x11\x2\x2\x260\x25F\x3\x2\x2\x2\x261"+ + "\x262\x3\x2\x2\x2\x262\x260\x3\x2\x2\x2\x262\x263\x3\x2\x2\x2\x263o\x3"+ + "\x2\x2\x2Yry~\x82\x86\x8A\x99\xA5\xAE\xB2\xB9\xBD\xC0\xC5\xCA\xD0\xD4"+ + "\xDB\xDF\xE3\xE8\xEC\xF1\xF5\xFA\xFE\x103\x107\x10C\x110\x115\x119\x11E"+ + "\x122\x127\x12B\x130\x134\x139\x13D\x142\x146\x149\x14B\x153\x155\x15B"+ + "\x15F\x173\x177\x17B\x17E\x181\x18A\x19A\x19C\x1A6\x1AB\x1AF\x1B3\x1B6"+ + "\x1B9\x1CC\x1D1\x1D4\x1D8\x1DC\x1E1\x1E4\x1E8\x1EC\x1F0\x1F8\x1FC\x201"+ + "\x206\x20A\x210\x214\x21C\x228\x22C\x234\x23E\x24A\x257\x262"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 index 99407b06e1..f1a24818f1 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.g4 @@ -21,7 +21,10 @@ parser grammar VBAExpressionParser; options { tokenVocab = VBALexer; } -startRule : expression EOF; +startRule : (expression | callStmt) EOF; + +// Call statement is here because its syntax is slightly different than a normal expression +callStmt : (memberAccessExpression | simpleNameExpression | withExpression) (whiteSpace argumentList)?; // 5.1 Module Body Structure unrestrictedName : name | reservedIdentifierName; diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs index 849fa03fee..33f64d299f 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseListener.cs @@ -943,6 +943,19 @@ public virtual void EnterArgumentExpression([NotNull] VBAExpressionParser.Argume /// The parse tree. public virtual void ExitArgumentExpression([NotNull] VBAExpressionParser.ArgumentExpressionContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterCallStmt([NotNull] VBAExpressionParser.CallStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitCallStmt([NotNull] VBAExpressionParser.CallStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs index 7cb5f27cb0..5eac9014cc 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserBaseVisitor.cs @@ -802,6 +802,17 @@ public partial class VBAExpressionParserBaseVisitor : AbstractParseTreeV /// The visitor result. public virtual Result VisitArgumentExpression([NotNull] VBAExpressionParser.ArgumentExpressionContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitCallStmt([NotNull] VBAExpressionParser.CallStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs index 362f8d4cd0..fad6f18e3e 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserListener.cs @@ -847,6 +847,17 @@ public interface IVBAExpressionParserListener : IParseTreeListener { /// The parse tree. void ExitArgumentExpression([NotNull] VBAExpressionParser.ArgumentExpressionContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterCallStmt([NotNull] VBAExpressionParser.CallStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitCallStmt([NotNull] VBAExpressionParser.CallStmtContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs b/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs index 9bc02386ca..f9880546a9 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParserVisitor.cs @@ -544,6 +544,13 @@ public interface IVBAExpressionParserVisitor : IParseTreeVisitor /// The visitor result. Result VisitArgumentExpression([NotNull] VBAExpressionParser.ArgumentExpressionContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitCallStmt([NotNull] VBAExpressionParser.CallStmtContext context); + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 6d38c2f5b3..3704da5a93 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -107,72 +107,74 @@ public const int RULE_startRule = 0, RULE_module = 1, RULE_moduleHeader = 2, RULE_moduleConfig = 3, RULE_moduleConfigElement = 4, RULE_moduleAttributes = 5, RULE_moduleDeclarations = 6, RULE_moduleOption = 7, RULE_moduleDeclarationsElement = 8, RULE_moduleBody = 9, - RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_block = 12, - RULE_blockStmt = 13, RULE_closeStmt = 14, RULE_constStmt = 15, RULE_constSubStmt = 16, - RULE_declareStmt = 17, RULE_deftypeStmt = 18, RULE_doLoopStmt = 19, RULE_enumerationStmt = 20, - RULE_enumerationStmt_Constant = 21, RULE_eraseStmt = 22, RULE_errorStmt = 23, - RULE_eventStmt = 24, RULE_exitStmt = 25, RULE_forEachStmt = 26, RULE_forNextStmt = 27, - RULE_functionStmt = 28, RULE_getStmt = 29, RULE_goSubStmt = 30, RULE_goToStmt = 31, - RULE_ifThenElseStmt = 32, RULE_ifBlockStmt = 33, RULE_ifConditionStmt = 34, - RULE_ifElseIfBlockStmt = 35, RULE_ifElseBlockStmt = 36, RULE_implementsStmt = 37, - RULE_inputStmt = 38, RULE_letStmt = 39, RULE_lineInputStmt = 40, RULE_lockStmt = 41, - RULE_lsetStmt = 42, RULE_midStmt = 43, RULE_onErrorStmt = 44, RULE_onGoToStmt = 45, - RULE_onGoSubStmt = 46, RULE_openStmt = 47, RULE_outputList = 48, RULE_outputList_Expression = 49, - RULE_printStmt = 50, RULE_propertyGetStmt = 51, RULE_propertySetStmt = 52, - RULE_propertyLetStmt = 53, RULE_putStmt = 54, RULE_raiseEventStmt = 55, - RULE_redimStmt = 56, RULE_redimSubStmt = 57, RULE_resetStmt = 58, RULE_resumeStmt = 59, - RULE_returnStmt = 60, RULE_rsetStmt = 61, RULE_seekStmt = 62, RULE_selectCaseStmt = 63, - RULE_sC_Selection = 64, RULE_sC_Case = 65, RULE_sC_Cond = 66, RULE_setStmt = 67, - RULE_subStmt = 68, RULE_typeStmt = 69, RULE_typeStmt_Element = 70, RULE_unlockStmt = 71, - RULE_valueStmt = 72, RULE_typeOfIsExpression = 73, RULE_variableStmt = 74, - RULE_variableListStmt = 75, RULE_variableSubStmt = 76, RULE_whileWendStmt = 77, - RULE_widthStmt = 78, RULE_withStmt = 79, RULE_withStmtExpression = 80, - RULE_writeStmt = 81, RULE_fileNumber = 82, RULE_explicitCallStmt = 83, - RULE_explicitCallStmtExpression = 84, RULE_implicitCallStmt_InBlock = 85, - RULE_iCS_B_MemberProcedureCall = 86, RULE_iCS_B_ProcedureCall = 87, RULE_implicitCallStmt_InStmt = 88, - RULE_iCS_S_VariableOrProcedureCall = 89, RULE_iCS_S_ProcedureOrArrayCall = 90, - RULE_iCS_S_VariableOrProcedureCallUnrestricted = 91, RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 92, - RULE_iCS_S_MembersCall = 93, RULE_iCS_S_MemberCall = 94, RULE_iCS_S_DictionaryCall = 95, - RULE_argsCall = 96, RULE_argCall = 97, RULE_dictionaryCallStmt = 98, RULE_argList = 99, - RULE_arg = 100, RULE_argDefaultValue = 101, RULE_subscripts = 102, RULE_subscript = 103, - RULE_unrestrictedIdentifier = 104, RULE_identifier = 105, RULE_asTypeClause = 106, - RULE_baseType = 107, RULE_comparisonOperator = 108, RULE_complexType = 109, - RULE_fieldLength = 110, RULE_letterrange = 111, RULE_lineLabel = 112, - RULE_literal = 113, RULE_numberLiteral = 114, RULE_type = 115, RULE_typeHint = 116, - RULE_visibility = 117, RULE_keyword = 118, RULE_statementKeyword = 119, - RULE_endOfLine = 120, RULE_endOfStatement = 121, RULE_remComment = 122, - RULE_comment = 123, RULE_annotationList = 124, RULE_annotation = 125, - RULE_annotationName = 126, RULE_annotationArgList = 127, RULE_annotationArg = 128, - RULE_whiteSpace = 129; + RULE_moduleBodyElement = 10, RULE_attributeStmt = 11, RULE_attributeName = 12, + RULE_attributeValue = 13, RULE_block = 14, RULE_blockStmt = 15, RULE_closeStmt = 16, + RULE_constStmt = 17, RULE_constSubStmt = 18, RULE_declareStmt = 19, RULE_deftypeStmt = 20, + RULE_doLoopStmt = 21, RULE_enumerationStmt = 22, RULE_enumerationStmt_Constant = 23, + RULE_eraseStmt = 24, RULE_errorStmt = 25, RULE_eventStmt = 26, RULE_exitStmt = 27, + RULE_forEachStmt = 28, RULE_forNextStmt = 29, RULE_functionStmt = 30, + RULE_functionName = 31, RULE_getStmt = 32, RULE_goSubStmt = 33, RULE_goToStmt = 34, + RULE_ifThenElseStmt = 35, RULE_ifBlockStmt = 36, RULE_ifConditionStmt = 37, + RULE_ifElseIfBlockStmt = 38, RULE_ifElseBlockStmt = 39, RULE_implementsStmt = 40, + RULE_inputStmt = 41, RULE_letStmt = 42, RULE_lineInputStmt = 43, RULE_lockStmt = 44, + RULE_lsetStmt = 45, RULE_midStmt = 46, RULE_onErrorStmt = 47, RULE_onGoToStmt = 48, + RULE_onGoSubStmt = 49, RULE_openStmt = 50, RULE_outputList = 51, RULE_outputList_Expression = 52, + RULE_printStmt = 53, RULE_propertyGetStmt = 54, RULE_propertySetStmt = 55, + RULE_propertyLetStmt = 56, RULE_putStmt = 57, RULE_raiseEventStmt = 58, + RULE_redimStmt = 59, RULE_redimSubStmt = 60, RULE_resetStmt = 61, RULE_resumeStmt = 62, + RULE_returnStmt = 63, RULE_rsetStmt = 64, RULE_seekStmt = 65, RULE_selectCaseStmt = 66, + RULE_sC_Selection = 67, RULE_sC_Case = 68, RULE_sC_Cond = 69, RULE_setStmt = 70, + RULE_subStmt = 71, RULE_subroutineName = 72, RULE_typeStmt = 73, RULE_typeStmt_Element = 74, + RULE_unlockStmt = 75, RULE_valueStmt = 76, RULE_typeOfIsExpression = 77, + RULE_variableStmt = 78, RULE_variableListStmt = 79, RULE_variableSubStmt = 80, + RULE_whileWendStmt = 81, RULE_widthStmt = 82, RULE_withStmt = 83, RULE_withStmtExpression = 84, + RULE_writeStmt = 85, RULE_fileNumber = 86, RULE_explicitCallStmt = 87, + RULE_explicitCallStmtExpression = 88, RULE_implicitCallStmt_InBlock = 89, + RULE_iCS_B_MemberProcedureCall = 90, RULE_iCS_B_ProcedureCall = 91, RULE_implicitCallStmt_InStmt = 92, + RULE_iCS_S_VariableOrProcedureCall = 93, RULE_iCS_S_ProcedureOrArrayCall = 94, + RULE_iCS_S_VariableOrProcedureCallUnrestricted = 95, RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 96, + RULE_iCS_S_MembersCall = 97, RULE_iCS_S_MemberCall = 98, RULE_iCS_S_DictionaryCall = 99, + RULE_argsCall = 100, RULE_argCall = 101, RULE_dictionaryCallStmt = 102, + RULE_argList = 103, RULE_arg = 104, RULE_argDefaultValue = 105, RULE_subscripts = 106, + RULE_subscript = 107, RULE_unrestrictedIdentifier = 108, RULE_identifier = 109, + RULE_asTypeClause = 110, RULE_baseType = 111, RULE_comparisonOperator = 112, + RULE_complexType = 113, RULE_fieldLength = 114, RULE_letterrange = 115, + RULE_lineLabel = 116, RULE_literal = 117, RULE_numberLiteral = 118, RULE_type = 119, + RULE_typeHint = 120, RULE_visibility = 121, RULE_keyword = 122, RULE_markerKeyword = 123, + RULE_statementKeyword = 124, RULE_endOfLine = 125, RULE_endOfStatement = 126, + RULE_remComment = 127, RULE_comment = 128, RULE_annotationList = 129, + RULE_annotation = 130, RULE_annotationName = 131, RULE_annotationArgList = 132, + RULE_annotationArg = 133, RULE_whiteSpace = 134; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", - "moduleBody", "moduleBodyElement", "attributeStmt", "block", "blockStmt", - "closeStmt", "constStmt", "constSubStmt", "declareStmt", "deftypeStmt", - "doLoopStmt", "enumerationStmt", "enumerationStmt_Constant", "eraseStmt", - "errorStmt", "eventStmt", "exitStmt", "forEachStmt", "forNextStmt", "functionStmt", - "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", "ifBlockStmt", "ifConditionStmt", - "ifElseIfBlockStmt", "ifElseBlockStmt", "implementsStmt", "inputStmt", - "letStmt", "lineInputStmt", "lockStmt", "lsetStmt", "midStmt", "onErrorStmt", - "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", "outputList_Expression", - "printStmt", "propertyGetStmt", "propertySetStmt", "propertyLetStmt", - "putStmt", "raiseEventStmt", "redimStmt", "redimSubStmt", "resetStmt", - "resumeStmt", "returnStmt", "rsetStmt", "seekStmt", "selectCaseStmt", - "sC_Selection", "sC_Case", "sC_Cond", "setStmt", "subStmt", "typeStmt", - "typeStmt_Element", "unlockStmt", "valueStmt", "typeOfIsExpression", "variableStmt", - "variableListStmt", "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", - "withStmtExpression", "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", - "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", - "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", - "iCS_S_VariableOrProcedureCallUnrestricted", "iCS_S_ProcedureOrArrayCallUnrestricted", - "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", - "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", - "subscripts", "subscript", "unrestrictedIdentifier", "identifier", "asTypeClause", - "baseType", "comparisonOperator", "complexType", "fieldLength", "letterrange", - "lineLabel", "literal", "numberLiteral", "type", "typeHint", "visibility", - "keyword", "statementKeyword", "endOfLine", "endOfStatement", "remComment", - "comment", "annotationList", "annotation", "annotationName", "annotationArgList", - "annotationArg", "whiteSpace" + "moduleBody", "moduleBodyElement", "attributeStmt", "attributeName", "attributeValue", + "block", "blockStmt", "closeStmt", "constStmt", "constSubStmt", "declareStmt", + "deftypeStmt", "doLoopStmt", "enumerationStmt", "enumerationStmt_Constant", + "eraseStmt", "errorStmt", "eventStmt", "exitStmt", "forEachStmt", "forNextStmt", + "functionStmt", "functionName", "getStmt", "goSubStmt", "goToStmt", "ifThenElseStmt", + "ifBlockStmt", "ifConditionStmt", "ifElseIfBlockStmt", "ifElseBlockStmt", + "implementsStmt", "inputStmt", "letStmt", "lineInputStmt", "lockStmt", + "lsetStmt", "midStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", + "outputList", "outputList_Expression", "printStmt", "propertyGetStmt", + "propertySetStmt", "propertyLetStmt", "putStmt", "raiseEventStmt", "redimStmt", + "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rsetStmt", "seekStmt", + "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "setStmt", "subStmt", + "subroutineName", "typeStmt", "typeStmt_Element", "unlockStmt", "valueStmt", + "typeOfIsExpression", "variableStmt", "variableListStmt", "variableSubStmt", + "whileWendStmt", "widthStmt", "withStmt", "withStmtExpression", "writeStmt", + "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", "implicitCallStmt_InBlock", + "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", + "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_VariableOrProcedureCallUnrestricted", + "iCS_S_ProcedureOrArrayCallUnrestricted", "iCS_S_MembersCall", "iCS_S_MemberCall", + "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", "argList", + "arg", "argDefaultValue", "subscripts", "subscript", "unrestrictedIdentifier", + "identifier", "asTypeClause", "baseType", "comparisonOperator", "complexType", + "fieldLength", "letterrange", "lineLabel", "literal", "numberLiteral", + "type", "typeHint", "visibility", "keyword", "markerKeyword", "statementKeyword", + "endOfLine", "endOfStatement", "remComment", "comment", "annotationList", + "annotation", "annotationName", "annotationArgList", "annotationArg", + "whiteSpace" }; public override string GrammarFileName { get { return "VBAParser.g4"; } } @@ -220,8 +222,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 260; module(); - State = 261; Match(Eof); + State = 270; module(); + State = 271; Match(Eof); } } catch (RecognitionException re) { @@ -291,65 +293,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 264; + State = 274; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 263; whiteSpace(); + State = 273; whiteSpace(); } break; } - State = 266; endOfStatement(); - State = 270; + State = 276; endOfStatement(); + State = 280; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 267; moduleHeader(); - State = 268; endOfStatement(); + State = 277; moduleHeader(); + State = 278; endOfStatement(); } break; } - State = 273; + State = 283; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 272; moduleConfig(); + State = 282; moduleConfig(); } break; } - State = 275; endOfStatement(); - State = 277; + State = 285; endOfStatement(); + State = 287; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 276; moduleAttributes(); + State = 286; moduleAttributes(); } break; } - State = 279; endOfStatement(); - State = 281; + State = 289; endOfStatement(); + State = 291; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 280; moduleDeclarations(); + State = 290; moduleDeclarations(); } break; } - State = 283; endOfStatement(); - State = 285; + State = 293; endOfStatement(); + State = 295; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 284; moduleBody(); + State = 294; moduleBody(); } break; } - State = 287; endOfStatement(); - State = 289; + State = 297; endOfStatement(); + State = 299; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 288; whiteSpace(); + State = 298; whiteSpace(); } } @@ -408,26 +410,26 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 291; Match(VERSION); - State = 292; whiteSpace(); - State = 293; numberLiteral(); - State = 295; + State = 301; Match(VERSION); + State = 302; whiteSpace(); + State = 303; numberLiteral(); + State = 305; switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: { - State = 294; whiteSpace(); + State = 304; whiteSpace(); } break; } - State = 298; + State = 308; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { - State = 297; Match(CLASS); + State = 307; Match(CLASS); } break; } - State = 300; endOfStatement(); + State = 310; endOfStatement(); } } catch (RecognitionException re) { @@ -491,28 +493,28 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 302; Match(BEGIN); - State = 310; + State = 312; Match(BEGIN); + State = 320; switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { case 1: { - State = 303; whiteSpace(); - State = 304; Match(GUIDLITERAL); - State = 305; whiteSpace(); - State = 306; unrestrictedIdentifier(); - State = 308; + State = 313; whiteSpace(); + State = 314; Match(GUIDLITERAL); + State = 315; whiteSpace(); + State = 316; unrestrictedIdentifier(); + State = 318; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: { - State = 307; whiteSpace(); + State = 317; whiteSpace(); } break; } } break; } - State = 312; endOfStatement(); - State = 314; + State = 322; endOfStatement(); + State = 324; _errHandler.Sync(this); _alt = 1; do { @@ -520,18 +522,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 313; moduleConfigElement(); + State = 323; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 316; + State = 326; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 318; Match(END); + State = 328; Match(END); } } catch (RecognitionException re) { @@ -549,10 +551,10 @@ public partial class ModuleConfigElementContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public ITerminalNode COLON() { return GetToken(VBAParser.COLON, 0); } - public LiteralContext literal() { - return GetRuleContext(0); + public ValueStmtContext valueStmt() { + return GetRuleContext(0); } + public ITerminalNode COLON() { return GetToken(VBAParser.COLON, 0); } public NumberLiteralContext numberLiteral() { return GetRuleContext(0); } @@ -592,47 +594,50 @@ public ModuleConfigElementContext moduleConfigElement() { EnterRule(_localctx, 8, RULE_moduleConfigElement); int _la; try { + int _alt; EnterOuterAlt(_localctx, 1); { - State = 320; unrestrictedIdentifier(); - State = 324; + State = 330; unrestrictedIdentifier(); + State = 334; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 321; whiteSpace(); + State = 331; whiteSpace(); } } - State = 326; + State = 336; _errHandler.Sync(this); _la = _input.La(1); } - State = 327; Match(EQ); - State = 331; + State = 337; Match(EQ); + State = 341; _errHandler.Sync(this); - _la = _input.La(1); - while (_la==WS || _la==LINE_CONTINUATION) { - { - { - State = 328; whiteSpace(); - } + _alt = Interpreter.AdaptivePredict(_input,13,_ctx); + while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { + if ( _alt==1 ) { + { + { + State = 338; whiteSpace(); + } + } } - State = 333; + State = 343; _errHandler.Sync(this); - _la = _input.La(1); + _alt = Interpreter.AdaptivePredict(_input,13,_ctx); } - State = 334; literal(); - State = 337; + State = 344; valueStmt(0); + State = 347; switch ( Interpreter.AdaptivePredict(_input,14,_ctx) ) { case 1: { - State = 335; Match(COLON); - State = 336; numberLiteral(); + State = 345; Match(COLON); + State = 346; numberLiteral(); } break; } - State = 339; endOfStatement(); + State = 349; endOfStatement(); } } catch (RecognitionException re) { @@ -687,7 +692,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 344; + State = 354; _errHandler.Sync(this); _alt = 1; do { @@ -695,15 +700,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 341; attributeStmt(); - State = 342; endOfStatement(); + State = 351; attributeStmt(); + State = 352; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 346; + State = 356; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -761,24 +766,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 348; moduleDeclarationsElement(); - State = 354; + State = 358; moduleDeclarationsElement(); + State = 364; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 349; endOfStatement(); - State = 350; moduleDeclarationsElement(); + State = 359; endOfStatement(); + State = 360; moduleDeclarationsElement(); } } } - State = 356; + State = 366; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); } - State = 357; endOfStatement(); + State = 367; endOfStatement(); } } catch (RecognitionException re) { @@ -891,24 +896,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 369; + State = 379; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 359; Match(OPTION_BASE); - State = 360; whiteSpace(); - State = 361; numberLiteral(); + State = 369; Match(OPTION_BASE); + State = 370; whiteSpace(); + State = 371; numberLiteral(); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 363; Match(OPTION_COMPARE); - State = 364; whiteSpace(); - State = 365; + State = 373; Match(OPTION_COMPARE); + State = 374; whiteSpace(); + State = 375; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -920,14 +925,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 367; Match(OPTION_EXPLICIT); + State = 377; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 368; Match(OPTION_PRIVATE_MODULE); + State = 378; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -995,61 +1000,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 379; + State = 389; switch ( Interpreter.AdaptivePredict(_input,18,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 371; declareStmt(); + State = 381; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 372; enumerationStmt(); + State = 382; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 373; eventStmt(); + State = 383; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 374; constStmt(); + State = 384; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 375; implementsStmt(); + State = 385; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 376; variableStmt(); + State = 386; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 377; moduleOption(); + State = 387; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 378; typeStmt(); + State = 388; typeStmt(); } break; } @@ -1106,24 +1111,24 @@ public ModuleBodyContext moduleBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 381; moduleBodyElement(); - State = 387; + State = 391; moduleBodyElement(); + State = 397; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 382; endOfStatement(); - State = 383; moduleBodyElement(); + State = 392; endOfStatement(); + State = 393; moduleBodyElement(); } } } - State = 389; + State = 399; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); } - State = 390; endOfStatement(); + State = 400; endOfStatement(); } } catch (RecognitionException re) { @@ -1178,40 +1183,40 @@ public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 397; + State = 407; switch ( Interpreter.AdaptivePredict(_input,20,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 392; functionStmt(); + State = 402; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 393; propertyGetStmt(); + State = 403; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 394; propertySetStmt(); + State = 404; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 395; propertyLetStmt(); + State = 405; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 396; subStmt(); + State = 406; subStmt(); } break; } @@ -1231,20 +1236,20 @@ public partial class AttributeStmtContext : ParserRuleContext { public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } - public LiteralContext literal(int i) { - return GetRuleContext(i); + public IReadOnlyList attributeValue() { + return GetRuleContexts(); } public IReadOnlyList COMMA() { return GetTokens(VBAParser.COMMA); } - public IReadOnlyList literal() { - return GetRuleContexts(); - } public ITerminalNode ATTRIBUTE() { return GetToken(VBAParser.ATTRIBUTE, 0); } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } public ITerminalNode EQ() { return GetToken(VBAParser.EQ, 0); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); + public AttributeValueContext attributeValue(int i) { + return GetRuleContext(i); + } + public AttributeNameContext attributeName() { + return GetRuleContext(0); } public ITerminalNode COMMA(int i) { return GetToken(VBAParser.COMMA, i); @@ -1278,56 +1283,56 @@ public AttributeStmtContext attributeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 399; Match(ATTRIBUTE); - State = 400; whiteSpace(); - State = 401; implicitCallStmt_InStmt(); - State = 403; + State = 409; Match(ATTRIBUTE); + State = 410; whiteSpace(); + State = 411; attributeName(); + State = 413; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 402; whiteSpace(); + State = 412; whiteSpace(); } } - State = 405; Match(EQ); - State = 407; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 415; Match(EQ); + State = 417; + switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { + case 1: { - State = 406; whiteSpace(); + State = 416; whiteSpace(); } + break; } - - State = 409; literal(); - State = 420; + State = 419; attributeValue(); + State = 430; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 411; + State = 421; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 410; whiteSpace(); + State = 420; whiteSpace(); } } - State = 413; Match(COMMA); - State = 415; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 423; Match(COMMA); + State = 425; + switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { + case 1: { - State = 414; whiteSpace(); + State = 424; whiteSpace(); } + break; } - - State = 417; literal(); + State = 427; attributeValue(); } } } - State = 422; + State = 432; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); } @@ -1344,6 +1349,96 @@ public AttributeStmtContext attributeStmt() { return _localctx; } + public partial class AttributeNameContext : ParserRuleContext { + public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { + return GetRuleContext(0); + } + public AttributeNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_attributeName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterAttributeName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitAttributeName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitAttributeName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AttributeNameContext attributeName() { + AttributeNameContext _localctx = new AttributeNameContext(_ctx, State); + EnterRule(_localctx, 24, RULE_attributeName); + try { + EnterOuterAlt(_localctx, 1); + { + State = 433; implicitCallStmt_InStmt(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class AttributeValueContext : ParserRuleContext { + public ValueStmtContext valueStmt() { + return GetRuleContext(0); + } + public AttributeValueContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_attributeValue; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterAttributeValue(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitAttributeValue(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitAttributeValue(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public AttributeValueContext attributeValue() { + AttributeValueContext _localctx = new AttributeValueContext(_ctx, State); + EnterRule(_localctx, 26, RULE_attributeValue); + try { + EnterOuterAlt(_localctx, 1); + { + State = 435; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + public partial class BlockContext : ParserRuleContext { public EndOfStatementContext endOfStatement(int i) { return GetRuleContext(i); @@ -1380,29 +1475,29 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockContext block() { BlockContext _localctx = new BlockContext(_ctx, State); - EnterRule(_localctx, 24, RULE_block); + EnterRule(_localctx, 28, RULE_block); try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 423; blockStmt(); - State = 429; + State = 437; blockStmt(); + State = 443; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 424; endOfStatement(); - State = 425; blockStmt(); + State = 438; endOfStatement(); + State = 439; blockStmt(); } } } - State = 431; + State = 445; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); } - State = 432; endOfStatement(); + State = 446; endOfStatement(); } } catch (RecognitionException re) { @@ -1575,322 +1670,322 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); - EnterRule(_localctx, 26, RULE_blockStmt); + EnterRule(_localctx, 30, RULE_blockStmt); try { - State = 479; + State = 493; switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 434; lineLabel(); + State = 448; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 435; attributeStmt(); + State = 449; attributeStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 436; closeStmt(); + State = 450; closeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 437; constStmt(); + State = 451; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 438; deftypeStmt(); + State = 452; deftypeStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 439; doLoopStmt(); + State = 453; doLoopStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 440; eraseStmt(); + State = 454; eraseStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 441; errorStmt(); + State = 455; errorStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 442; exitStmt(); + State = 456; exitStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 443; explicitCallStmt(); + State = 457; explicitCallStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 444; forEachStmt(); + State = 458; forEachStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 445; forNextStmt(); + State = 459; forNextStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 446; getStmt(); + State = 460; getStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 447; goSubStmt(); + State = 461; goSubStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 448; goToStmt(); + State = 462; goToStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 449; ifThenElseStmt(); + State = 463; ifThenElseStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 450; implementsStmt(); + State = 464; implementsStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 451; inputStmt(); + State = 465; inputStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 452; letStmt(); + State = 466; letStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 453; lineInputStmt(); + State = 467; lineInputStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 454; lockStmt(); + State = 468; lockStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 455; lsetStmt(); + State = 469; lsetStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 456; midStmt(); + State = 470; midStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 457; onErrorStmt(); + State = 471; onErrorStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 458; onGoToStmt(); + State = 472; onGoToStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 459; onGoSubStmt(); + State = 473; onGoSubStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 460; openStmt(); + State = 474; openStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 461; printStmt(); + State = 475; printStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 462; putStmt(); + State = 476; putStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 463; raiseEventStmt(); + State = 477; raiseEventStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 464; redimStmt(); + State = 478; redimStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 465; resetStmt(); + State = 479; resetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 466; resumeStmt(); + State = 480; resumeStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 467; returnStmt(); + State = 481; returnStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 468; rsetStmt(); + State = 482; rsetStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 469; seekStmt(); + State = 483; seekStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 470; selectCaseStmt(); + State = 484; selectCaseStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 471; setStmt(); + State = 485; setStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 472; unlockStmt(); + State = 486; unlockStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 473; variableStmt(); + State = 487; variableStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 474; whileWendStmt(); + State = 488; whileWendStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 475; widthStmt(); + State = 489; widthStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 476; withStmt(); + State = 490; withStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 477; writeStmt(); + State = 491; writeStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 478; implicitCallStmt_InBlock(); + State = 492; implicitCallStmt_InBlock(); } break; } @@ -1947,48 +2042,48 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CloseStmtContext closeStmt() { CloseStmtContext _localctx = new CloseStmtContext(_ctx, State); - EnterRule(_localctx, 28, RULE_closeStmt); + EnterRule(_localctx, 32, RULE_closeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 481; Match(CLOSE); - State = 497; + State = 495; Match(CLOSE); + State = 511; switch ( Interpreter.AdaptivePredict(_input,31,_ctx) ) { case 1: { - State = 482; whiteSpace(); - State = 483; fileNumber(); - State = 494; + State = 496; whiteSpace(); + State = 497; fileNumber(); + State = 508; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,30,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 485; + State = 499; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 484; whiteSpace(); + State = 498; whiteSpace(); } } - State = 487; Match(COMMA); - State = 489; + State = 501; Match(COMMA); + State = 503; switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 488; whiteSpace(); + State = 502; whiteSpace(); } break; } - State = 491; fileNumber(); + State = 505; fileNumber(); } } } - State = 496; + State = 510; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,30,_ctx); } @@ -2052,53 +2147,53 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstStmtContext constStmt() { ConstStmtContext _localctx = new ConstStmtContext(_ctx, State); - EnterRule(_localctx, 30, RULE_constStmt); + EnterRule(_localctx, 34, RULE_constStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 502; + State = 516; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 499; visibility(); - State = 500; whiteSpace(); + State = 513; visibility(); + State = 514; whiteSpace(); } } - State = 504; Match(CONST); - State = 505; whiteSpace(); - State = 506; constSubStmt(); - State = 517; + State = 518; Match(CONST); + State = 519; whiteSpace(); + State = 520; constSubStmt(); + State = 531; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,35,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 508; + State = 522; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 507; whiteSpace(); + State = 521; whiteSpace(); } } - State = 510; Match(COMMA); - State = 512; + State = 524; Match(COMMA); + State = 526; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 511; whiteSpace(); + State = 525; whiteSpace(); } } - State = 514; constSubStmt(); + State = 528; constSubStmt(); } } } - State = 519; + State = 533; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,35,_ctx); } @@ -2158,47 +2253,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ConstSubStmtContext constSubStmt() { ConstSubStmtContext _localctx = new ConstSubStmtContext(_ctx, State); - EnterRule(_localctx, 32, RULE_constSubStmt); + EnterRule(_localctx, 36, RULE_constSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 520; identifier(); - State = 522; + State = 534; identifier(); + State = 536; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 521; typeHint(); + State = 535; typeHint(); } } - State = 527; + State = 541; switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { case 1: { - State = 524; whiteSpace(); - State = 525; asTypeClause(); + State = 538; whiteSpace(); + State = 539; asTypeClause(); } break; } - State = 530; + State = 544; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 529; whiteSpace(); + State = 543; whiteSpace(); } } - State = 532; Match(EQ); - State = 534; + State = 546; Match(EQ); + State = 548; switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { case 1: { - State = 533; whiteSpace(); + State = 547; whiteSpace(); } break; } - State = 536; valueStmt(0); + State = 550; valueStmt(0); } } catch (RecognitionException re) { @@ -2270,42 +2365,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeclareStmtContext declareStmt() { DeclareStmtContext _localctx = new DeclareStmtContext(_ctx, State); - EnterRule(_localctx, 34, RULE_declareStmt); + EnterRule(_localctx, 38, RULE_declareStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 541; + State = 555; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 538; visibility(); - State = 539; whiteSpace(); + State = 552; visibility(); + State = 553; whiteSpace(); } } - State = 543; Match(DECLARE); - State = 544; whiteSpace(); - State = 547; + State = 557; Match(DECLARE); + State = 558; whiteSpace(); + State = 561; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 545; Match(PTRSAFE); - State = 546; whiteSpace(); + State = 559; Match(PTRSAFE); + State = 560; whiteSpace(); } } - State = 554; + State = 568; switch (_input.La(1)) { case FUNCTION: { { - State = 549; Match(FUNCTION); - State = 551; + State = 563; Match(FUNCTION); + State = 565; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 550; typeHint(); + State = 564; typeHint(); } } @@ -2314,59 +2409,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 553; Match(SUB); + State = 567; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 556; whiteSpace(); - State = 557; identifier(); - State = 559; + State = 570; whiteSpace(); + State = 571; identifier(); + State = 573; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 558; typeHint(); + State = 572; typeHint(); } } - State = 561; whiteSpace(); - State = 562; Match(LIB); - State = 563; whiteSpace(); - State = 564; Match(STRINGLITERAL); - State = 570; + State = 575; whiteSpace(); + State = 576; Match(LIB); + State = 577; whiteSpace(); + State = 578; Match(STRINGLITERAL); + State = 584; switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { case 1: { - State = 565; whiteSpace(); - State = 566; Match(ALIAS); - State = 567; whiteSpace(); - State = 568; Match(STRINGLITERAL); + State = 579; whiteSpace(); + State = 580; Match(ALIAS); + State = 581; whiteSpace(); + State = 582; Match(STRINGLITERAL); } break; } - State = 576; + State = 590; switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { case 1: { - State = 573; + State = 587; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 572; whiteSpace(); + State = 586; whiteSpace(); } } - State = 575; argList(); + State = 589; argList(); } break; } - State = 581; + State = 595; switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 578; whiteSpace(); - State = 579; asTypeClause(); + State = 592; whiteSpace(); + State = 593; asTypeClause(); } break; } @@ -2436,49 +2531,49 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DeftypeStmtContext deftypeStmt() { DeftypeStmtContext _localctx = new DeftypeStmtContext(_ctx, State); - EnterRule(_localctx, 36, RULE_deftypeStmt); + EnterRule(_localctx, 40, RULE_deftypeStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 583; + State = 597; _la = _input.La(1); if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (DEFBOOL - 70)) | (1L << (DEFBYTE - 70)) | (1L << (DEFDATE - 70)) | (1L << (DEFDBL - 70)) | (1L << (DEFCUR - 70)) | (1L << (DEFINT - 70)) | (1L << (DEFLNG - 70)) | (1L << (DEFLNGLNG - 70)) | (1L << (DEFLNGPTR - 70)) | (1L << (DEFOBJ - 70)) | (1L << (DEFSNG - 70)) | (1L << (DEFSTR - 70)) | (1L << (DEFVAR - 70)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 584; whiteSpace(); - State = 585; letterrange(); - State = 596; + State = 598; whiteSpace(); + State = 599; letterrange(); + State = 610; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,51,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 587; + State = 601; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 586; whiteSpace(); + State = 600; whiteSpace(); } } - State = 589; Match(COMMA); - State = 591; + State = 603; Match(COMMA); + State = 605; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 590; whiteSpace(); + State = 604; whiteSpace(); } } - State = 593; letterrange(); + State = 607; letterrange(); } } } - State = 598; + State = 612; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,51,_ctx); } @@ -2538,77 +2633,77 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DoLoopStmtContext doLoopStmt() { DoLoopStmtContext _localctx = new DoLoopStmtContext(_ctx, State); - EnterRule(_localctx, 38, RULE_doLoopStmt); + EnterRule(_localctx, 42, RULE_doLoopStmt); int _la; try { - State = 628; + State = 642; switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 599; Match(DO); - State = 600; endOfStatement(); - State = 602; + State = 613; Match(DO); + State = 614; endOfStatement(); + State = 616; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 601; block(); + State = 615; block(); } } - State = 604; Match(LOOP); + State = 618; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 606; Match(DO); - State = 607; whiteSpace(); - State = 608; + State = 620; Match(DO); + State = 621; whiteSpace(); + State = 622; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 609; whiteSpace(); - State = 610; valueStmt(0); - State = 611; endOfStatement(); - State = 613; + State = 623; whiteSpace(); + State = 624; valueStmt(0); + State = 625; endOfStatement(); + State = 627; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 612; block(); + State = 626; block(); } } - State = 615; Match(LOOP); + State = 629; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 617; Match(DO); - State = 618; endOfStatement(); - State = 620; + State = 631; Match(DO); + State = 632; endOfStatement(); + State = 634; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 619; block(); + State = 633; block(); } } - State = 622; Match(LOOP); - State = 623; whiteSpace(); - State = 624; + State = 636; Match(LOOP); + State = 637; whiteSpace(); + State = 638; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 625; whiteSpace(); - State = 626; valueStmt(0); + State = 639; whiteSpace(); + State = 640; valueStmt(0); } break; } @@ -2671,38 +2766,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmtContext enumerationStmt() { EnumerationStmtContext _localctx = new EnumerationStmtContext(_ctx, State); - EnterRule(_localctx, 40, RULE_enumerationStmt); + EnterRule(_localctx, 44, RULE_enumerationStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 633; + State = 647; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 630; visibility(); - State = 631; whiteSpace(); + State = 644; visibility(); + State = 645; whiteSpace(); } } - State = 635; Match(ENUM); - State = 636; whiteSpace(); - State = 637; identifier(); - State = 638; endOfStatement(); - State = 642; + State = 649; Match(ENUM); + State = 650; whiteSpace(); + State = 651; identifier(); + State = 652; endOfStatement(); + State = 656; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 639; enumerationStmt_Constant(); + State = 653; enumerationStmt_Constant(); } } - State = 644; + State = 658; _errHandler.Sync(this); _la = _input.La(1); } - State = 645; Match(END_ENUM); + State = 659; Match(END_ENUM); } } catch (RecognitionException re) { @@ -2756,38 +2851,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EnumerationStmt_ConstantContext enumerationStmt_Constant() { EnumerationStmt_ConstantContext _localctx = new EnumerationStmt_ConstantContext(_ctx, State); - EnterRule(_localctx, 42, RULE_enumerationStmt_Constant); + EnterRule(_localctx, 46, RULE_enumerationStmt_Constant); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 647; identifier(); - State = 656; + State = 661; identifier(); + State = 670; switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { case 1: { - State = 649; + State = 663; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 648; whiteSpace(); + State = 662; whiteSpace(); } } - State = 651; Match(EQ); - State = 653; + State = 665; Match(EQ); + State = 667; switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 652; whiteSpace(); + State = 666; whiteSpace(); } break; } - State = 655; valueStmt(0); + State = 669; valueStmt(0); } break; } - State = 658; endOfStatement(); + State = 672; endOfStatement(); } } catch (RecognitionException re) { @@ -2842,44 +2937,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EraseStmtContext eraseStmt() { EraseStmtContext _localctx = new EraseStmtContext(_ctx, State); - EnterRule(_localctx, 44, RULE_eraseStmt); + EnterRule(_localctx, 48, RULE_eraseStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 660; Match(ERASE); - State = 661; whiteSpace(); - State = 662; valueStmt(0); - State = 673; + State = 674; Match(ERASE); + State = 675; whiteSpace(); + State = 676; valueStmt(0); + State = 687; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 664; + State = 678; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 663; whiteSpace(); + State = 677; whiteSpace(); } } - State = 666; Match(COMMA); - State = 668; + State = 680; Match(COMMA); + State = 682; switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { case 1: { - State = 667; whiteSpace(); + State = 681; whiteSpace(); } break; } - State = 670; valueStmt(0); + State = 684; valueStmt(0); } } } - State = 675; + State = 689; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); } @@ -2927,13 +3022,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ErrorStmtContext errorStmt() { ErrorStmtContext _localctx = new ErrorStmtContext(_ctx, State); - EnterRule(_localctx, 46, RULE_errorStmt); + EnterRule(_localctx, 50, RULE_errorStmt); try { EnterOuterAlt(_localctx, 1); { - State = 676; Match(ERROR); - State = 677; whiteSpace(); - State = 678; valueStmt(0); + State = 690; Match(ERROR); + State = 691; whiteSpace(); + State = 692; valueStmt(0); } } catch (RecognitionException re) { @@ -2987,32 +3082,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EventStmtContext eventStmt() { EventStmtContext _localctx = new EventStmtContext(_ctx, State); - EnterRule(_localctx, 48, RULE_eventStmt); + EnterRule(_localctx, 52, RULE_eventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 683; + State = 697; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 680; visibility(); - State = 681; whiteSpace(); + State = 694; visibility(); + State = 695; whiteSpace(); } } - State = 685; Match(EVENT); - State = 686; whiteSpace(); - State = 687; identifier(); - State = 689; + State = 699; Match(EVENT); + State = 700; whiteSpace(); + State = 701; identifier(); + State = 703; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 688; whiteSpace(); + State = 702; whiteSpace(); } } - State = 691; argList(); + State = 705; argList(); } } catch (RecognitionException re) { @@ -3055,12 +3150,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExitStmtContext exitStmt() { ExitStmtContext _localctx = new ExitStmtContext(_ctx, State); - EnterRule(_localctx, 50, RULE_exitStmt); + EnterRule(_localctx, 54, RULE_exitStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 693; + State = 707; _la = _input.La(1); if ( !(((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & ((1L << (EXIT_DO - 104)) | (1L << (EXIT_FOR - 104)) | (1L << (EXIT_FUNCTION - 104)) | (1L << (EXIT_PROPERTY - 104)) | (1L << (EXIT_SUB - 104)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3125,36 +3220,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); - EnterRule(_localctx, 52, RULE_forEachStmt); + EnterRule(_localctx, 56, RULE_forEachStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 695; Match(FOR); - State = 696; whiteSpace(); - State = 697; Match(EACH); - State = 698; whiteSpace(); - State = 699; valueStmt(0); - State = 700; whiteSpace(); - State = 701; Match(IN); - State = 702; whiteSpace(); - State = 703; valueStmt(0); - State = 704; endOfStatement(); - State = 706; + State = 709; Match(FOR); + State = 710; whiteSpace(); + State = 711; Match(EACH); + State = 712; whiteSpace(); + State = 713; valueStmt(0); + State = 714; whiteSpace(); + State = 715; Match(IN); + State = 716; whiteSpace(); + State = 717; valueStmt(0); + State = 718; endOfStatement(); + State = 720; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 705; block(); + State = 719; block(); } } - State = 708; Match(NEXT); - State = 712; + State = 722; Match(NEXT); + State = 726; switch ( Interpreter.AdaptivePredict(_input,67,_ctx) ) { case 1: { - State = 709; whiteSpace(); - State = 710; valueStmt(0); + State = 723; whiteSpace(); + State = 724; valueStmt(0); } break; } @@ -3218,63 +3313,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ForNextStmtContext forNextStmt() { ForNextStmtContext _localctx = new ForNextStmtContext(_ctx, State); - EnterRule(_localctx, 54, RULE_forNextStmt); + EnterRule(_localctx, 58, RULE_forNextStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 714; Match(FOR); - State = 715; whiteSpace(); - State = 716; valueStmt(0); - State = 718; + State = 728; Match(FOR); + State = 729; whiteSpace(); + State = 730; valueStmt(0); + State = 732; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 717; whiteSpace(); + State = 731; whiteSpace(); } } - State = 720; Match(EQ); - State = 722; + State = 734; Match(EQ); + State = 736; switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { case 1: { - State = 721; whiteSpace(); + State = 735; whiteSpace(); } break; } - State = 724; valueStmt(0); - State = 725; whiteSpace(); - State = 726; Match(TO); - State = 727; whiteSpace(); - State = 728; valueStmt(0); - State = 734; + State = 738; valueStmt(0); + State = 739; whiteSpace(); + State = 740; Match(TO); + State = 741; whiteSpace(); + State = 742; valueStmt(0); + State = 748; switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { case 1: { - State = 729; whiteSpace(); - State = 730; Match(STEP); - State = 731; whiteSpace(); - State = 732; valueStmt(0); + State = 743; whiteSpace(); + State = 744; Match(STEP); + State = 745; whiteSpace(); + State = 746; valueStmt(0); } break; } - State = 736; endOfStatement(); - State = 738; + State = 750; endOfStatement(); + State = 752; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 737; block(); + State = 751; block(); } } - State = 740; Match(NEXT); - State = 744; + State = 754; Match(NEXT); + State = 758; switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 741; whiteSpace(); - State = 742; valueStmt(0); + State = 755; whiteSpace(); + State = 756; valueStmt(0); } break; } @@ -3295,6 +3390,9 @@ public partial class FunctionStmtContext : ParserRuleContext { public ArgListContext argList() { return GetRuleContext(0); } + public FunctionNameContext functionName() { + return GetRuleContext(0); + } public ITerminalNode FUNCTION() { return GetToken(VBAParser.FUNCTION, 0); } public ITerminalNode END_FUNCTION() { return GetToken(VBAParser.END_FUNCTION, 0); } public WhiteSpaceContext whiteSpace(int i) { @@ -3310,9 +3408,6 @@ public IReadOnlyList whiteSpace() { public AsTypeClauseContext asTypeClause() { return GetRuleContext(0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public VisibilityContext visibility() { return GetRuleContext(0); } @@ -3345,89 +3440,134 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FunctionStmtContext functionStmt() { FunctionStmtContext _localctx = new FunctionStmtContext(_ctx, State); - EnterRule(_localctx, 56, RULE_functionStmt); + EnterRule(_localctx, 60, RULE_functionStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 749; + State = 763; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 746; visibility(); - State = 747; whiteSpace(); + State = 760; visibility(); + State = 761; whiteSpace(); } } - State = 753; + State = 767; _la = _input.La(1); if (_la==STATIC) { { - State = 751; Match(STATIC); - State = 752; whiteSpace(); + State = 765; Match(STATIC); + State = 766; whiteSpace(); } } - State = 755; Match(FUNCTION); - State = 757; + State = 769; Match(FUNCTION); + State = 771; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 756; whiteSpace(); + State = 770; whiteSpace(); } } - State = 759; identifier(); - State = 761; + State = 773; functionName(); + State = 775; switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { case 1: { - State = 760; typeHint(); + State = 774; typeHint(); } break; } - State = 767; + State = 781; switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: { - State = 764; + State = 778; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 763; whiteSpace(); + State = 777; whiteSpace(); } } - State = 766; argList(); + State = 780; argList(); } break; } - State = 773; + State = 787; switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: { - State = 770; + State = 784; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 769; whiteSpace(); + State = 783; whiteSpace(); } } - State = 772; asTypeClause(); + State = 786; asTypeClause(); } break; } - State = 775; endOfStatement(); - State = 777; + State = 789; endOfStatement(); + State = 791; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 776; block(); + State = 790; block(); } } - State = 779; Match(END_FUNCTION); + State = 793; Match(END_FUNCTION); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class FunctionNameContext : ParserRuleContext { + public IdentifierContext identifier() { + return GetRuleContext(0); + } + public FunctionNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_functionName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterFunctionName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitFunctionName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitFunctionName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public FunctionNameContext functionName() { + FunctionNameContext _localctx = new FunctionNameContext(_ctx, State); + EnterRule(_localctx, 62, RULE_functionName); + try { + EnterOuterAlt(_localctx, 1); + { + State = 795; identifier(); } } catch (RecognitionException re) { @@ -3485,57 +3625,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GetStmtContext getStmt() { GetStmtContext _localctx = new GetStmtContext(_ctx, State); - EnterRule(_localctx, 58, RULE_getStmt); + EnterRule(_localctx, 64, RULE_getStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 781; Match(GET); - State = 782; whiteSpace(); - State = 783; fileNumber(); - State = 785; + State = 797; Match(GET); + State = 798; whiteSpace(); + State = 799; fileNumber(); + State = 801; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 784; whiteSpace(); + State = 800; whiteSpace(); } } - State = 787; Match(COMMA); - State = 789; + State = 803; Match(COMMA); + State = 805; switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: { - State = 788; whiteSpace(); + State = 804; whiteSpace(); } break; } - State = 792; + State = 808; switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 791; valueStmt(0); + State = 807; valueStmt(0); } break; } - State = 795; + State = 811; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 794; whiteSpace(); + State = 810; whiteSpace(); } } - State = 797; Match(COMMA); - State = 799; + State = 813; Match(COMMA); + State = 815; switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { case 1: { - State = 798; whiteSpace(); + State = 814; whiteSpace(); } break; } - State = 801; valueStmt(0); + State = 817; valueStmt(0); } } catch (RecognitionException re) { @@ -3580,13 +3720,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoSubStmtContext goSubStmt() { GoSubStmtContext _localctx = new GoSubStmtContext(_ctx, State); - EnterRule(_localctx, 60, RULE_goSubStmt); + EnterRule(_localctx, 66, RULE_goSubStmt); try { EnterOuterAlt(_localctx, 1); { - State = 803; Match(GOSUB); - State = 804; whiteSpace(); - State = 805; valueStmt(0); + State = 819; Match(GOSUB); + State = 820; whiteSpace(); + State = 821; valueStmt(0); } } catch (RecognitionException re) { @@ -3631,13 +3771,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public GoToStmtContext goToStmt() { GoToStmtContext _localctx = new GoToStmtContext(_ctx, State); - EnterRule(_localctx, 62, RULE_goToStmt); + EnterRule(_localctx, 68, RULE_goToStmt); try { EnterOuterAlt(_localctx, 1); { - State = 807; Match(GOTO); - State = 808; whiteSpace(); - State = 809; valueStmt(0); + State = 823; Match(GOTO); + State = 824; whiteSpace(); + State = 825; valueStmt(0); } } catch (RecognitionException re) { @@ -3730,30 +3870,30 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfThenElseStmtContext ifThenElseStmt() { IfThenElseStmtContext _localctx = new IfThenElseStmtContext(_ctx, State); - EnterRule(_localctx, 64, RULE_ifThenElseStmt); + EnterRule(_localctx, 70, RULE_ifThenElseStmt); int _la; try { - State = 837; + State = 853; switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 811; Match(IF); - State = 812; whiteSpace(); - State = 813; ifConditionStmt(); - State = 814; whiteSpace(); - State = 815; Match(THEN); - State = 816; whiteSpace(); - State = 817; blockStmt(); - State = 823; + State = 827; Match(IF); + State = 828; whiteSpace(); + State = 829; ifConditionStmt(); + State = 830; whiteSpace(); + State = 831; Match(THEN); + State = 832; whiteSpace(); + State = 833; blockStmt(); + State = 839; switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 818; whiteSpace(); - State = 819; Match(ELSE); - State = 820; whiteSpace(); - State = 821; blockStmt(); + State = 834; whiteSpace(); + State = 835; Match(ELSE); + State = 836; whiteSpace(); + State = 837; blockStmt(); } break; } @@ -3764,29 +3904,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 825; ifBlockStmt(); - State = 829; + State = 841; ifBlockStmt(); + State = 845; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 826; ifElseIfBlockStmt(); + State = 842; ifElseIfBlockStmt(); } } - State = 831; + State = 847; _errHandler.Sync(this); _la = _input.La(1); } - State = 833; + State = 849; _la = _input.La(1); if (_la==ELSE) { { - State = 832; ifElseBlockStmt(); + State = 848; ifElseBlockStmt(); } } - State = 835; Match(END_IF); + State = 851; Match(END_IF); } break; } @@ -3843,21 +3983,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfBlockStmtContext ifBlockStmt() { IfBlockStmtContext _localctx = new IfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 66, RULE_ifBlockStmt); + EnterRule(_localctx, 72, RULE_ifBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 839; Match(IF); - State = 840; whiteSpace(); - State = 841; ifConditionStmt(); - State = 842; whiteSpace(); - State = 843; Match(THEN); - State = 844; endOfStatement(); - State = 846; + State = 855; Match(IF); + State = 856; whiteSpace(); + State = 857; ifConditionStmt(); + State = 858; whiteSpace(); + State = 859; Match(THEN); + State = 860; endOfStatement(); + State = 862; switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 845; block(); + State = 861; block(); } break; } @@ -3901,11 +4041,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfConditionStmtContext ifConditionStmt() { IfConditionStmtContext _localctx = new IfConditionStmtContext(_ctx, State); - EnterRule(_localctx, 68, RULE_ifConditionStmt); + EnterRule(_localctx, 74, RULE_ifConditionStmt); try { EnterOuterAlt(_localctx, 1); { - State = 848; valueStmt(0); + State = 864; valueStmt(0); } } catch (RecognitionException re) { @@ -3960,21 +4100,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseIfBlockStmtContext ifElseIfBlockStmt() { IfElseIfBlockStmtContext _localctx = new IfElseIfBlockStmtContext(_ctx, State); - EnterRule(_localctx, 70, RULE_ifElseIfBlockStmt); + EnterRule(_localctx, 76, RULE_ifElseIfBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 850; Match(ELSEIF); - State = 851; whiteSpace(); - State = 852; ifConditionStmt(); - State = 853; whiteSpace(); - State = 854; Match(THEN); - State = 855; endOfStatement(); - State = 857; + State = 866; Match(ELSEIF); + State = 867; whiteSpace(); + State = 868; ifConditionStmt(); + State = 869; whiteSpace(); + State = 870; Match(THEN); + State = 871; endOfStatement(); + State = 873; switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { case 1: { - State = 856; block(); + State = 872; block(); } break; } @@ -4022,17 +4162,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IfElseBlockStmtContext ifElseBlockStmt() { IfElseBlockStmtContext _localctx = new IfElseBlockStmtContext(_ctx, State); - EnterRule(_localctx, 72, RULE_ifElseBlockStmt); + EnterRule(_localctx, 78, RULE_ifElseBlockStmt); try { EnterOuterAlt(_localctx, 1); { - State = 859; Match(ELSE); - State = 860; endOfStatement(); - State = 862; + State = 875; Match(ELSE); + State = 876; endOfStatement(); + State = 878; switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 861; block(); + State = 877; block(); } break; } @@ -4080,13 +4220,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplementsStmtContext implementsStmt() { ImplementsStmtContext _localctx = new ImplementsStmtContext(_ctx, State); - EnterRule(_localctx, 74, RULE_implementsStmt); + EnterRule(_localctx, 80, RULE_implementsStmt); try { EnterOuterAlt(_localctx, 1); { - State = 864; Match(IMPLEMENTS); - State = 865; whiteSpace(); - State = 866; valueStmt(0); + State = 880; Match(IMPLEMENTS); + State = 881; whiteSpace(); + State = 882; valueStmt(0); } } catch (RecognitionException re) { @@ -4144,16 +4284,16 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public InputStmtContext inputStmt() { InputStmtContext _localctx = new InputStmtContext(_ctx, State); - EnterRule(_localctx, 76, RULE_inputStmt); + EnterRule(_localctx, 82, RULE_inputStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 868; Match(INPUT); - State = 869; whiteSpace(); - State = 870; fileNumber(); - State = 879; + State = 884; Match(INPUT); + State = 885; whiteSpace(); + State = 886; fileNumber(); + State = 895; _errHandler.Sync(this); _alt = 1; do { @@ -4161,31 +4301,31 @@ public InputStmtContext inputStmt() { case 1: { { - State = 872; + State = 888; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 871; whiteSpace(); + State = 887; whiteSpace(); } } - State = 874; Match(COMMA); - State = 876; + State = 890; Match(COMMA); + State = 892; switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 875; whiteSpace(); + State = 891; whiteSpace(); } break; } - State = 878; valueStmt(0); + State = 894; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 881; + State = 897; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,96,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -4240,39 +4380,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetStmtContext letStmt() { LetStmtContext _localctx = new LetStmtContext(_ctx, State); - EnterRule(_localctx, 78, RULE_letStmt); + EnterRule(_localctx, 84, RULE_letStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 885; + State = 901; _la = _input.La(1); if (_la==LET) { { - State = 883; Match(LET); - State = 884; whiteSpace(); + State = 899; Match(LET); + State = 900; whiteSpace(); } } - State = 887; valueStmt(0); - State = 889; + State = 903; valueStmt(0); + State = 905; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 888; whiteSpace(); + State = 904; whiteSpace(); } } - State = 891; Match(EQ); - State = 893; + State = 907; Match(EQ); + State = 909; switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 892; whiteSpace(); + State = 908; whiteSpace(); } break; } - State = 895; valueStmt(0); + State = 911; valueStmt(0); } } catch (RecognitionException re) { @@ -4324,32 +4464,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineInputStmtContext lineInputStmt() { LineInputStmtContext _localctx = new LineInputStmtContext(_ctx, State); - EnterRule(_localctx, 80, RULE_lineInputStmt); + EnterRule(_localctx, 86, RULE_lineInputStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 897; Match(LINE_INPUT); - State = 898; whiteSpace(); - State = 899; fileNumber(); - State = 901; + State = 913; Match(LINE_INPUT); + State = 914; whiteSpace(); + State = 915; fileNumber(); + State = 917; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 900; whiteSpace(); + State = 916; whiteSpace(); } } - State = 903; Match(COMMA); - State = 905; + State = 919; Match(COMMA); + State = 921; switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 904; whiteSpace(); + State = 920; whiteSpace(); } break; } - State = 907; valueStmt(0); + State = 923; valueStmt(0); } } catch (RecognitionException re) { @@ -4402,44 +4542,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LockStmtContext lockStmt() { LockStmtContext _localctx = new LockStmtContext(_ctx, State); - EnterRule(_localctx, 82, RULE_lockStmt); + EnterRule(_localctx, 88, RULE_lockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 909; Match(LOCK); - State = 910; whiteSpace(); - State = 911; valueStmt(0); - State = 927; + State = 925; Match(LOCK); + State = 926; whiteSpace(); + State = 927; valueStmt(0); + State = 943; switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: { - State = 913; + State = 929; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 912; whiteSpace(); + State = 928; whiteSpace(); } } - State = 915; Match(COMMA); - State = 917; + State = 931; Match(COMMA); + State = 933; switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { case 1: { - State = 916; whiteSpace(); + State = 932; whiteSpace(); } break; } - State = 919; valueStmt(0); - State = 925; + State = 935; valueStmt(0); + State = 941; switch ( Interpreter.AdaptivePredict(_input,104,_ctx) ) { case 1: { - State = 920; whiteSpace(); - State = 921; Match(TO); - State = 922; whiteSpace(); - State = 923; valueStmt(0); + State = 936; whiteSpace(); + State = 937; Match(TO); + State = 938; whiteSpace(); + State = 939; valueStmt(0); } break; } @@ -4497,32 +4637,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LsetStmtContext lsetStmt() { LsetStmtContext _localctx = new LsetStmtContext(_ctx, State); - EnterRule(_localctx, 84, RULE_lsetStmt); + EnterRule(_localctx, 90, RULE_lsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 929; Match(LSET); - State = 930; whiteSpace(); - State = 931; valueStmt(0); - State = 933; + State = 945; Match(LSET); + State = 946; whiteSpace(); + State = 947; valueStmt(0); + State = 949; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 932; whiteSpace(); + State = 948; whiteSpace(); } } - State = 935; Match(EQ); - State = 937; + State = 951; Match(EQ); + State = 953; switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 936; whiteSpace(); + State = 952; whiteSpace(); } break; } - State = 939; valueStmt(0); + State = 955; valueStmt(0); } } catch (RecognitionException re) { @@ -4572,39 +4712,39 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MidStmtContext midStmt() { MidStmtContext _localctx = new MidStmtContext(_ctx, State); - EnterRule(_localctx, 86, RULE_midStmt); + EnterRule(_localctx, 92, RULE_midStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 941; Match(MID); - State = 943; + State = 957; Match(MID); + State = 959; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 942; whiteSpace(); + State = 958; whiteSpace(); } } - State = 945; Match(LPAREN); - State = 947; + State = 961; Match(LPAREN); + State = 963; switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { case 1: { - State = 946; whiteSpace(); + State = 962; whiteSpace(); } break; } - State = 949; argsCall(); - State = 951; + State = 965; argsCall(); + State = 967; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 950; whiteSpace(); + State = 966; whiteSpace(); } } - State = 953; Match(RPAREN); + State = 969; Match(RPAREN); } } catch (RecognitionException re) { @@ -4656,32 +4796,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnErrorStmtContext onErrorStmt() { OnErrorStmtContext _localctx = new OnErrorStmtContext(_ctx, State); - EnterRule(_localctx, 88, RULE_onErrorStmt); + EnterRule(_localctx, 94, RULE_onErrorStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 955; + State = 971; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 956; whiteSpace(); - State = 965; + State = 972; whiteSpace(); + State = 981; switch (_input.La(1)) { case GOTO: { - State = 957; Match(GOTO); - State = 958; whiteSpace(); - State = 959; valueStmt(0); + State = 973; Match(GOTO); + State = 974; whiteSpace(); + State = 975; valueStmt(0); } break; case RESUME: { - State = 961; Match(RESUME); - State = 962; whiteSpace(); - State = 963; Match(NEXT); + State = 977; Match(RESUME); + State = 978; whiteSpace(); + State = 979; Match(NEXT); } break; default: @@ -4742,48 +4882,48 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoToStmtContext onGoToStmt() { OnGoToStmtContext _localctx = new OnGoToStmtContext(_ctx, State); - EnterRule(_localctx, 90, RULE_onGoToStmt); + EnterRule(_localctx, 96, RULE_onGoToStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 967; Match(ON); - State = 968; whiteSpace(); - State = 969; valueStmt(0); - State = 970; whiteSpace(); - State = 971; Match(GOTO); - State = 972; whiteSpace(); - State = 973; valueStmt(0); - State = 984; + State = 983; Match(ON); + State = 984; whiteSpace(); + State = 985; valueStmt(0); + State = 986; whiteSpace(); + State = 987; Match(GOTO); + State = 988; whiteSpace(); + State = 989; valueStmt(0); + State = 1000; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,114,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 975; + State = 991; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 974; whiteSpace(); + State = 990; whiteSpace(); } } - State = 977; Match(COMMA); - State = 979; + State = 993; Match(COMMA); + State = 995; switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { case 1: { - State = 978; whiteSpace(); + State = 994; whiteSpace(); } break; } - State = 981; valueStmt(0); + State = 997; valueStmt(0); } } } - State = 986; + State = 1002; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,114,_ctx); } @@ -4842,48 +4982,48 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OnGoSubStmtContext onGoSubStmt() { OnGoSubStmtContext _localctx = new OnGoSubStmtContext(_ctx, State); - EnterRule(_localctx, 92, RULE_onGoSubStmt); + EnterRule(_localctx, 98, RULE_onGoSubStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 987; Match(ON); - State = 988; whiteSpace(); - State = 989; valueStmt(0); - State = 990; whiteSpace(); - State = 991; Match(GOSUB); - State = 992; whiteSpace(); - State = 993; valueStmt(0); - State = 1004; + State = 1003; Match(ON); + State = 1004; whiteSpace(); + State = 1005; valueStmt(0); + State = 1006; whiteSpace(); + State = 1007; Match(GOSUB); + State = 1008; whiteSpace(); + State = 1009; valueStmt(0); + State = 1020; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,117,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 995; + State = 1011; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 994; whiteSpace(); + State = 1010; whiteSpace(); } } - State = 997; Match(COMMA); - State = 999; + State = 1013; Match(COMMA); + State = 1015; switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 998; whiteSpace(); + State = 1014; whiteSpace(); } break; } - State = 1001; valueStmt(0); + State = 1017; valueStmt(0); } } } - State = 1006; + State = 1022; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,117,_ctx); } @@ -4957,31 +5097,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OpenStmtContext openStmt() { OpenStmtContext _localctx = new OpenStmtContext(_ctx, State); - EnterRule(_localctx, 94, RULE_openStmt); + EnterRule(_localctx, 100, RULE_openStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1007; Match(OPEN); - State = 1008; whiteSpace(); - State = 1009; valueStmt(0); - State = 1010; whiteSpace(); - State = 1011; Match(FOR); - State = 1012; whiteSpace(); - State = 1013; + State = 1023; Match(OPEN); + State = 1024; whiteSpace(); + State = 1025; valueStmt(0); + State = 1026; whiteSpace(); + State = 1027; Match(FOR); + State = 1028; whiteSpace(); + State = 1029; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 121)) & ~0x3f) == 0 && ((1L << (_la - 121)) & ((1L << (INPUT - 121)) | (1L << (OUTPUT - 121)) | (1L << (RANDOM - 121)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1019; + State = 1035; switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1014; whiteSpace(); - State = 1015; Match(ACCESS); - State = 1016; whiteSpace(); - State = 1017; + State = 1030; whiteSpace(); + State = 1031; Match(ACCESS); + State = 1032; whiteSpace(); + State = 1033; _la = _input.La(1); if ( !(((((_la - 166)) & ~0x3f) == 0 && ((1L << (_la - 166)) & ((1L << (READ - 166)) | (1L << (READ_WRITE - 166)) | (1L << (WRITE - 166)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -4990,12 +5130,12 @@ public OpenStmtContext openStmt() { } break; } - State = 1024; + State = 1040; switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1021; whiteSpace(); - State = 1022; + State = 1037; whiteSpace(); + State = 1038; _la = _input.La(1); if ( !(((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (LOCK_READ - 131)) | (1L << (LOCK_WRITE - 131)) | (1L << (LOCK_READ_WRITE - 131)) | (1L << (SHARED - 131)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -5004,34 +5144,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1026; whiteSpace(); - State = 1027; Match(AS); - State = 1028; whiteSpace(); - State = 1029; fileNumber(); - State = 1041; + State = 1042; whiteSpace(); + State = 1043; Match(AS); + State = 1044; whiteSpace(); + State = 1045; fileNumber(); + State = 1057; switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1030; whiteSpace(); - State = 1031; Match(LEN); - State = 1033; + State = 1046; whiteSpace(); + State = 1047; Match(LEN); + State = 1049; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1032; whiteSpace(); + State = 1048; whiteSpace(); } } - State = 1035; Match(EQ); - State = 1037; + State = 1051; Match(EQ); + State = 1053; switch ( Interpreter.AdaptivePredict(_input,121,_ctx) ) { case 1: { - State = 1036; whiteSpace(); + State = 1052; whiteSpace(); } break; } - State = 1039; valueStmt(0); + State = 1055; valueStmt(0); } break; } @@ -5092,57 +5232,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputListContext outputList() { OutputListContext _localctx = new OutputListContext(_ctx, State); - EnterRule(_localctx, 96, RULE_outputList); + EnterRule(_localctx, 102, RULE_outputList); int _la; try { int _alt; - State = 1076; + State = 1092; switch ( Interpreter.AdaptivePredict(_input,132,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1043; outputList_Expression(); - State = 1056; + State = 1059; outputList_Expression(); + State = 1072; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,126,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1045; + State = 1061; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1044; whiteSpace(); + State = 1060; whiteSpace(); } } - State = 1047; + State = 1063; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1049; + State = 1065; switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1048; whiteSpace(); + State = 1064; whiteSpace(); } break; } - State = 1052; + State = 1068; switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { case 1: { - State = 1051; outputList_Expression(); + State = 1067; outputList_Expression(); } break; } } } } - State = 1058; + State = 1074; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,126,_ctx); } @@ -5152,15 +5292,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1060; + State = 1076; switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { case 1: { - State = 1059; outputList_Expression(); + State = 1075; outputList_Expression(); } break; } - State = 1072; + State = 1088; _errHandler.Sync(this); _alt = 1; do { @@ -5168,33 +5308,33 @@ public OutputListContext outputList() { case 1: { { - State = 1063; + State = 1079; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1062; whiteSpace(); + State = 1078; whiteSpace(); } } - State = 1065; + State = 1081; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1067; + State = 1083; switch ( Interpreter.AdaptivePredict(_input,129,_ctx) ) { case 1: { - State = 1066; whiteSpace(); + State = 1082; whiteSpace(); } break; } - State = 1070; + State = 1086; switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { case 1: { - State = 1069; outputList_Expression(); + State = 1085; outputList_Expression(); } break; } @@ -5204,7 +5344,7 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1074; + State = 1090; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,131,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -5263,58 +5403,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public OutputList_ExpressionContext outputList_Expression() { OutputList_ExpressionContext _localctx = new OutputList_ExpressionContext(_ctx, State); - EnterRule(_localctx, 98, RULE_outputList_Expression); + EnterRule(_localctx, 104, RULE_outputList_Expression); int _la; try { - State = 1095; + State = 1111; switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1078; valueStmt(0); + State = 1094; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1079; + State = 1095; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1093; + State = 1109; switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1081; + State = 1097; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1080; whiteSpace(); + State = 1096; whiteSpace(); } } - State = 1083; Match(LPAREN); - State = 1085; + State = 1099; Match(LPAREN); + State = 1101; switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { case 1: { - State = 1084; whiteSpace(); + State = 1100; whiteSpace(); } break; } - State = 1087; argsCall(); - State = 1089; + State = 1103; argsCall(); + State = 1105; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1088; whiteSpace(); + State = 1104; whiteSpace(); } } - State = 1091; Match(RPAREN); + State = 1107; Match(RPAREN); } break; } @@ -5371,36 +5511,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PrintStmtContext printStmt() { PrintStmtContext _localctx = new PrintStmtContext(_ctx, State); - EnterRule(_localctx, 100, RULE_printStmt); + EnterRule(_localctx, 106, RULE_printStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1097; Match(PRINT); - State = 1098; whiteSpace(); - State = 1099; fileNumber(); - State = 1101; + State = 1113; Match(PRINT); + State = 1114; whiteSpace(); + State = 1115; fileNumber(); + State = 1117; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1100; whiteSpace(); + State = 1116; whiteSpace(); } } - State = 1103; Match(COMMA); - State = 1108; + State = 1119; Match(COMMA); + State = 1124; switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1105; + State = 1121; switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1104; whiteSpace(); + State = 1120; whiteSpace(); } break; } - State = 1107; outputList(); + State = 1123; outputList(); } break; } @@ -5421,6 +5561,9 @@ public partial class PropertyGetStmtContext : ParserRuleContext { public ArgListContext argList() { return GetRuleContext(0); } + public FunctionNameContext functionName() { + return GetRuleContext(0); + } public WhiteSpaceContext whiteSpace(int i) { return GetRuleContext(i); } @@ -5434,9 +5577,6 @@ public IReadOnlyList whiteSpace() { public AsTypeClauseContext asTypeClause() { return GetRuleContext(0); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public VisibilityContext visibility() { return GetRuleContext(0); } @@ -5471,75 +5611,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyGetStmtContext propertyGetStmt() { PropertyGetStmtContext _localctx = new PropertyGetStmtContext(_ctx, State); - EnterRule(_localctx, 102, RULE_propertyGetStmt); + EnterRule(_localctx, 108, RULE_propertyGetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1113; + State = 1129; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1110; visibility(); - State = 1111; whiteSpace(); + State = 1126; visibility(); + State = 1127; whiteSpace(); } } - State = 1117; + State = 1133; _la = _input.La(1); if (_la==STATIC) { { - State = 1115; Match(STATIC); - State = 1116; whiteSpace(); + State = 1131; Match(STATIC); + State = 1132; whiteSpace(); } } - State = 1119; Match(PROPERTY_GET); - State = 1120; whiteSpace(); - State = 1121; identifier(); - State = 1123; + State = 1135; Match(PROPERTY_GET); + State = 1136; whiteSpace(); + State = 1137; functionName(); + State = 1139; switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { case 1: { - State = 1122; typeHint(); + State = 1138; typeHint(); } break; } - State = 1129; + State = 1145; switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1126; + State = 1142; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1125; whiteSpace(); + State = 1141; whiteSpace(); } } - State = 1128; argList(); + State = 1144; argList(); } break; } - State = 1134; + State = 1150; switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { case 1: { - State = 1131; whiteSpace(); - State = 1132; asTypeClause(); + State = 1147; whiteSpace(); + State = 1148; asTypeClause(); } break; } - State = 1136; endOfStatement(); - State = 1138; + State = 1152; endOfStatement(); + State = 1154; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1137; block(); + State = 1153; block(); } } - State = 1140; Match(END_PROPERTY); + State = 1156; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5564,8 +5704,8 @@ public WhiteSpaceContext whiteSpace(int i) { public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public IdentifierContext identifier() { - return GetRuleContext(0); + public SubroutineNameContext subroutineName() { + return GetRuleContext(0); } public VisibilityContext visibility() { return GetRuleContext(0); @@ -5601,58 +5741,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertySetStmtContext propertySetStmt() { PropertySetStmtContext _localctx = new PropertySetStmtContext(_ctx, State); - EnterRule(_localctx, 104, RULE_propertySetStmt); + EnterRule(_localctx, 110, RULE_propertySetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1145; + State = 1161; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1142; visibility(); - State = 1143; whiteSpace(); + State = 1158; visibility(); + State = 1159; whiteSpace(); } } - State = 1149; + State = 1165; _la = _input.La(1); if (_la==STATIC) { { - State = 1147; Match(STATIC); - State = 1148; whiteSpace(); + State = 1163; Match(STATIC); + State = 1164; whiteSpace(); } } - State = 1151; Match(PROPERTY_SET); - State = 1152; whiteSpace(); - State = 1153; identifier(); - State = 1158; + State = 1167; Match(PROPERTY_SET); + State = 1168; whiteSpace(); + State = 1169; subroutineName(); + State = 1174; switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1155; + State = 1171; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1154; whiteSpace(); + State = 1170; whiteSpace(); } } - State = 1157; argList(); + State = 1173; argList(); } break; } - State = 1160; endOfStatement(); - State = 1162; + State = 1176; endOfStatement(); + State = 1178; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1161; block(); + State = 1177; block(); } } - State = 1164; Match(END_PROPERTY); + State = 1180; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5678,8 +5818,8 @@ public WhiteSpaceContext whiteSpace(int i) { public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public IdentifierContext identifier() { - return GetRuleContext(0); + public SubroutineNameContext subroutineName() { + return GetRuleContext(0); } public VisibilityContext visibility() { return GetRuleContext(0); @@ -5714,58 +5854,58 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PropertyLetStmtContext propertyLetStmt() { PropertyLetStmtContext _localctx = new PropertyLetStmtContext(_ctx, State); - EnterRule(_localctx, 106, RULE_propertyLetStmt); + EnterRule(_localctx, 112, RULE_propertyLetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1169; + State = 1185; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1166; visibility(); - State = 1167; whiteSpace(); + State = 1182; visibility(); + State = 1183; whiteSpace(); } } - State = 1173; + State = 1189; _la = _input.La(1); if (_la==STATIC) { { - State = 1171; Match(STATIC); - State = 1172; whiteSpace(); + State = 1187; Match(STATIC); + State = 1188; whiteSpace(); } } - State = 1175; Match(PROPERTY_LET); - State = 1176; whiteSpace(); - State = 1177; identifier(); - State = 1182; + State = 1191; Match(PROPERTY_LET); + State = 1192; whiteSpace(); + State = 1193; subroutineName(); + State = 1198; switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { case 1: { - State = 1179; + State = 1195; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1178; whiteSpace(); + State = 1194; whiteSpace(); } } - State = 1181; argList(); + State = 1197; argList(); } break; } - State = 1184; endOfStatement(); - State = 1186; + State = 1200; endOfStatement(); + State = 1202; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1185; block(); + State = 1201; block(); } } - State = 1188; Match(END_PROPERTY); + State = 1204; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5823,57 +5963,57 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public PutStmtContext putStmt() { PutStmtContext _localctx = new PutStmtContext(_ctx, State); - EnterRule(_localctx, 108, RULE_putStmt); + EnterRule(_localctx, 114, RULE_putStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1190; Match(PUT); - State = 1191; whiteSpace(); - State = 1192; fileNumber(); - State = 1194; + State = 1206; Match(PUT); + State = 1207; whiteSpace(); + State = 1208; fileNumber(); + State = 1210; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1193; whiteSpace(); + State = 1209; whiteSpace(); } } - State = 1196; Match(COMMA); - State = 1198; + State = 1212; Match(COMMA); + State = 1214; switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { case 1: { - State = 1197; whiteSpace(); + State = 1213; whiteSpace(); } break; } - State = 1201; + State = 1217; switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1200; valueStmt(0); + State = 1216; valueStmt(0); } break; } - State = 1204; + State = 1220; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1203; whiteSpace(); + State = 1219; whiteSpace(); } } - State = 1206; Match(COMMA); - State = 1208; + State = 1222; Match(COMMA); + State = 1224; switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { case 1: { - State = 1207; whiteSpace(); + State = 1223; whiteSpace(); } break; } - State = 1210; valueStmt(0); + State = 1226; valueStmt(0); } } catch (RecognitionException re) { @@ -5926,52 +6066,52 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RaiseEventStmtContext raiseEventStmt() { RaiseEventStmtContext _localctx = new RaiseEventStmtContext(_ctx, State); - EnterRule(_localctx, 110, RULE_raiseEventStmt); + EnterRule(_localctx, 116, RULE_raiseEventStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1212; Match(RAISEEVENT); - State = 1213; whiteSpace(); - State = 1214; identifier(); - State = 1229; + State = 1228; Match(RAISEEVENT); + State = 1229; whiteSpace(); + State = 1230; identifier(); + State = 1245; switch ( Interpreter.AdaptivePredict(_input,167,_ctx) ) { case 1: { - State = 1216; + State = 1232; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1215; whiteSpace(); + State = 1231; whiteSpace(); } } - State = 1218; Match(LPAREN); - State = 1220; + State = 1234; Match(LPAREN); + State = 1236; switch ( Interpreter.AdaptivePredict(_input,164,_ctx) ) { case 1: { - State = 1219; whiteSpace(); + State = 1235; whiteSpace(); } break; } - State = 1226; + State = 1242; switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1222; argsCall(); - State = 1224; + State = 1238; argsCall(); + State = 1240; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1223; whiteSpace(); + State = 1239; whiteSpace(); } } } break; } - State = 1228; Match(RPAREN); + State = 1244; Match(RPAREN); } break; } @@ -6030,53 +6170,53 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimStmtContext redimStmt() { RedimStmtContext _localctx = new RedimStmtContext(_ctx, State); - EnterRule(_localctx, 112, RULE_redimStmt); + EnterRule(_localctx, 118, RULE_redimStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1231; Match(REDIM); - State = 1232; whiteSpace(); - State = 1235; + State = 1247; Match(REDIM); + State = 1248; whiteSpace(); + State = 1251; switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { case 1: { - State = 1233; Match(PRESERVE); - State = 1234; whiteSpace(); + State = 1249; Match(PRESERVE); + State = 1250; whiteSpace(); } break; } - State = 1237; redimSubStmt(); - State = 1248; + State = 1253; redimSubStmt(); + State = 1264; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,171,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1239; + State = 1255; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1238; whiteSpace(); + State = 1254; whiteSpace(); } } - State = 1241; Match(COMMA); - State = 1243; + State = 1257; Match(COMMA); + State = 1259; switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { case 1: { - State = 1242; whiteSpace(); + State = 1258; whiteSpace(); } break; } - State = 1245; redimSubStmt(); + State = 1261; redimSubStmt(); } } } - State = 1250; + State = 1266; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,171,_ctx); } @@ -6134,45 +6274,45 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RedimSubStmtContext redimSubStmt() { RedimSubStmtContext _localctx = new RedimSubStmtContext(_ctx, State); - EnterRule(_localctx, 114, RULE_redimSubStmt); + EnterRule(_localctx, 120, RULE_redimSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1251; implicitCallStmt_InStmt(); - State = 1253; + State = 1267; implicitCallStmt_InStmt(); + State = 1269; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1252; whiteSpace(); + State = 1268; whiteSpace(); } } - State = 1255; Match(LPAREN); - State = 1257; + State = 1271; Match(LPAREN); + State = 1273; switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { case 1: { - State = 1256; whiteSpace(); + State = 1272; whiteSpace(); } break; } - State = 1259; subscripts(); - State = 1261; + State = 1275; subscripts(); + State = 1277; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1260; whiteSpace(); + State = 1276; whiteSpace(); } } - State = 1263; Match(RPAREN); - State = 1267; + State = 1279; Match(RPAREN); + State = 1283; switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1264; whiteSpace(); - State = 1265; asTypeClause(); + State = 1280; whiteSpace(); + State = 1281; asTypeClause(); } break; } @@ -6214,11 +6354,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResetStmtContext resetStmt() { ResetStmtContext _localctx = new ResetStmtContext(_ctx, State); - EnterRule(_localctx, 116, RULE_resetStmt); + EnterRule(_localctx, 122, RULE_resetStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1269; Match(RESET); + State = 1285; Match(RESET); } } catch (RecognitionException re) { @@ -6264,21 +6404,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ResumeStmtContext resumeStmt() { ResumeStmtContext _localctx = new ResumeStmtContext(_ctx, State); - EnterRule(_localctx, 118, RULE_resumeStmt); + EnterRule(_localctx, 124, RULE_resumeStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1271; Match(RESUME); - State = 1277; + State = 1287; Match(RESUME); + State = 1293; switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1272; whiteSpace(); - State = 1275; + State = 1288; whiteSpace(); + State = 1291; switch (_input.La(1)) { case NEXT: { - State = 1273; Match(NEXT); + State = 1289; Match(NEXT); } break; case ABS: @@ -6323,7 +6463,6 @@ public ResumeStmtContext resumeStmt() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -6388,7 +6527,7 @@ public ResumeStmtContext resumeStmt() { case SENDKEYS: case SETATTR: { - State = 1274; valueStmt(0); + State = 1290; valueStmt(0); } break; default: @@ -6435,11 +6574,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ReturnStmtContext returnStmt() { ReturnStmtContext _localctx = new ReturnStmtContext(_ctx, State); - EnterRule(_localctx, 120, RULE_returnStmt); + EnterRule(_localctx, 126, RULE_returnStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1279; Match(RETURN); + State = 1295; Match(RETURN); } } catch (RecognitionException re) { @@ -6491,32 +6630,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RsetStmtContext rsetStmt() { RsetStmtContext _localctx = new RsetStmtContext(_ctx, State); - EnterRule(_localctx, 122, RULE_rsetStmt); + EnterRule(_localctx, 128, RULE_rsetStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1281; Match(RSET); - State = 1282; whiteSpace(); - State = 1283; valueStmt(0); - State = 1285; + State = 1297; Match(RSET); + State = 1298; whiteSpace(); + State = 1299; valueStmt(0); + State = 1301; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1284; whiteSpace(); + State = 1300; whiteSpace(); } } - State = 1287; Match(EQ); - State = 1289; + State = 1303; Match(EQ); + State = 1305; switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1288; whiteSpace(); + State = 1304; whiteSpace(); } break; } - State = 1291; valueStmt(0); + State = 1307; valueStmt(0); } } catch (RecognitionException re) { @@ -6568,32 +6707,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SeekStmtContext seekStmt() { SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 124, RULE_seekStmt); + EnterRule(_localctx, 130, RULE_seekStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1293; Match(SEEK); - State = 1294; whiteSpace(); - State = 1295; fileNumber(); - State = 1297; + State = 1309; Match(SEEK); + State = 1310; whiteSpace(); + State = 1311; fileNumber(); + State = 1313; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1296; whiteSpace(); + State = 1312; whiteSpace(); } } - State = 1299; Match(COMMA); - State = 1301; + State = 1315; Match(COMMA); + State = 1317; switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1300; whiteSpace(); + State = 1316; whiteSpace(); } break; } - State = 1303; valueStmt(0); + State = 1319; valueStmt(0); } } catch (RecognitionException re) { @@ -6652,31 +6791,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SelectCaseStmtContext selectCaseStmt() { SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 126, RULE_selectCaseStmt); + EnterRule(_localctx, 132, RULE_selectCaseStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1305; Match(SELECT); - State = 1306; whiteSpace(); - State = 1307; Match(CASE); - State = 1308; whiteSpace(); - State = 1309; valueStmt(0); - State = 1310; endOfStatement(); - State = 1314; + State = 1321; Match(SELECT); + State = 1322; whiteSpace(); + State = 1323; Match(CASE); + State = 1324; whiteSpace(); + State = 1325; valueStmt(0); + State = 1326; endOfStatement(); + State = 1330; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1311; sC_Case(); + State = 1327; sC_Case(); } } - State = 1316; + State = 1332; _errHandler.Sync(this); _la = _input.La(1); } - State = 1317; Match(END_SELECT); + State = 1333; Match(END_SELECT); } } catch (RecognitionException re) { @@ -6783,34 +6922,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_SelectionContext sC_Selection() { SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 128, RULE_sC_Selection); + EnterRule(_localctx, 134, RULE_sC_Selection); int _la; try { - State = 1336; + State = 1352; switch ( Interpreter.AdaptivePredict(_input,185,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1319; Match(IS); - State = 1321; + State = 1335; Match(IS); + State = 1337; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1320; whiteSpace(); + State = 1336; whiteSpace(); } } - State = 1323; comparisonOperator(); - State = 1325; + State = 1339; comparisonOperator(); + State = 1341; switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1324; whiteSpace(); + State = 1340; whiteSpace(); } break; } - State = 1327; valueStmt(0); + State = 1343; valueStmt(0); } break; @@ -6818,11 +6957,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1329; valueStmt(0); - State = 1330; whiteSpace(); - State = 1331; Match(TO); - State = 1332; whiteSpace(); - State = 1333; valueStmt(0); + State = 1345; valueStmt(0); + State = 1346; whiteSpace(); + State = 1347; Match(TO); + State = 1348; whiteSpace(); + State = 1349; valueStmt(0); } break; @@ -6830,7 +6969,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1335; valueStmt(0); + State = 1351; valueStmt(0); } break; } @@ -6883,20 +7022,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 130, RULE_sC_Case); + EnterRule(_localctx, 136, RULE_sC_Case); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1338; Match(CASE); - State = 1339; whiteSpace(); - State = 1340; sC_Cond(); - State = 1341; endOfStatement(); - State = 1343; + State = 1354; Match(CASE); + State = 1355; whiteSpace(); + State = 1356; sC_Cond(); + State = 1357; endOfStatement(); + State = 1359; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1342; block(); + State = 1358; block(); } } @@ -6978,17 +7117,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CondContext sC_Cond() { SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 132, RULE_sC_Cond); + EnterRule(_localctx, 138, RULE_sC_Cond); int _la; try { int _alt; - State = 1360; + State = 1376; switch (_input.La(1)) { case ELSE: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1345; Match(ELSE); + State = 1361; Match(ELSE); } break; case ABS: @@ -7033,7 +7172,6 @@ public SC_CondContext sC_Cond() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -7100,36 +7238,36 @@ public SC_CondContext sC_Cond() { _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1346; sC_Selection(); - State = 1357; + State = 1362; sC_Selection(); + State = 1373; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,189,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1348; + State = 1364; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1347; whiteSpace(); + State = 1363; whiteSpace(); } } - State = 1350; Match(COMMA); - State = 1352; + State = 1366; Match(COMMA); + State = 1368; switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1351; whiteSpace(); + State = 1367; whiteSpace(); } break; } - State = 1354; sC_Selection(); + State = 1370; sC_Selection(); } } } - State = 1359; + State = 1375; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,189,_ctx); } @@ -7188,32 +7326,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetStmtContext setStmt() { SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 134, RULE_setStmt); + EnterRule(_localctx, 140, RULE_setStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1362; Match(SET); - State = 1363; whiteSpace(); - State = 1364; valueStmt(0); - State = 1366; + State = 1378; Match(SET); + State = 1379; whiteSpace(); + State = 1380; valueStmt(0); + State = 1382; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1365; whiteSpace(); + State = 1381; whiteSpace(); } } - State = 1368; Match(EQ); - State = 1370; + State = 1384; Match(EQ); + State = 1386; switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { case 1: { - State = 1369; whiteSpace(); + State = 1385; whiteSpace(); } break; } - State = 1372; valueStmt(0); + State = 1388; valueStmt(0); } } catch (RecognitionException re) { @@ -7237,12 +7375,12 @@ public WhiteSpaceContext whiteSpace(int i) { public ITerminalNode STATIC() { return GetToken(VBAParser.STATIC, 0); } public ITerminalNode END_SUB() { return GetToken(VBAParser.END_SUB, 0); } public ITerminalNode SUB() { return GetToken(VBAParser.SUB, 0); } + public SubroutineNameContext subroutineName() { + return GetRuleContext(0); + } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public IdentifierContext identifier() { - return GetRuleContext(0); - } public VisibilityContext visibility() { return GetRuleContext(0); } @@ -7275,65 +7413,110 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubStmtContext subStmt() { SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 136, RULE_subStmt); + EnterRule(_localctx, 142, RULE_subStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1377; + State = 1393; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1374; visibility(); - State = 1375; whiteSpace(); + State = 1390; visibility(); + State = 1391; whiteSpace(); } } - State = 1381; + State = 1397; _la = _input.La(1); if (_la==STATIC) { { - State = 1379; Match(STATIC); - State = 1380; whiteSpace(); + State = 1395; Match(STATIC); + State = 1396; whiteSpace(); } } - State = 1383; Match(SUB); - State = 1385; + State = 1399; Match(SUB); + State = 1401; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1384; whiteSpace(); + State = 1400; whiteSpace(); } } - State = 1387; identifier(); - State = 1392; + State = 1403; subroutineName(); + State = 1408; switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1389; + State = 1405; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1388; whiteSpace(); + State = 1404; whiteSpace(); } } - State = 1391; argList(); + State = 1407; argList(); } break; } - State = 1394; endOfStatement(); - State = 1396; + State = 1410; endOfStatement(); + State = 1412; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1395; block(); + State = 1411; block(); } } - State = 1398; Match(END_SUB); + State = 1414; Match(END_SUB); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class SubroutineNameContext : ParserRuleContext { + public IdentifierContext identifier() { + return GetRuleContext(0); + } + public SubroutineNameContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_subroutineName; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterSubroutineName(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitSubroutineName(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitSubroutineName(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public SubroutineNameContext subroutineName() { + SubroutineNameContext _localctx = new SubroutineNameContext(_ctx, State); + EnterRule(_localctx, 144, RULE_subroutineName); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1416; identifier(); } } catch (RecognitionException re) { @@ -7394,38 +7577,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmtContext typeStmt() { TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 138, RULE_typeStmt); + EnterRule(_localctx, 146, RULE_typeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1403; + State = 1421; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1400; visibility(); - State = 1401; whiteSpace(); + State = 1418; visibility(); + State = 1419; whiteSpace(); } } - State = 1405; Match(TYPE); - State = 1406; whiteSpace(); - State = 1407; identifier(); - State = 1408; endOfStatement(); - State = 1412; + State = 1423; Match(TYPE); + State = 1424; whiteSpace(); + State = 1425; identifier(); + State = 1426; endOfStatement(); + State = 1430; _errHandler.Sync(this); _la = _input.La(1); - while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 1409; typeStmt_Element(); + State = 1427; typeStmt_Element(); } } - State = 1414; + State = 1432; _errHandler.Sync(this); _la = _input.La(1); } - State = 1415; Match(END_TYPE); + State = 1433; Match(END_TYPE); } } catch (RecognitionException re) { @@ -7483,63 +7666,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmt_ElementContext typeStmt_Element() { TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 140, RULE_typeStmt_Element); + EnterRule(_localctx, 148, RULE_typeStmt_Element); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1417; identifier(); - State = 1432; + State = 1435; identifier(); + State = 1450; switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1419; + State = 1437; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1418; whiteSpace(); + State = 1436; whiteSpace(); } } - State = 1421; Match(LPAREN); - State = 1426; + State = 1439; Match(LPAREN); + State = 1444; switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1423; + State = 1441; switch ( Interpreter.AdaptivePredict(_input,202,_ctx) ) { case 1: { - State = 1422; whiteSpace(); + State = 1440; whiteSpace(); } break; } - State = 1425; subscripts(); + State = 1443; subscripts(); } break; } - State = 1429; + State = 1447; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1428; whiteSpace(); + State = 1446; whiteSpace(); } } - State = 1431; Match(RPAREN); + State = 1449; Match(RPAREN); } break; } - State = 1437; + State = 1455; switch ( Interpreter.AdaptivePredict(_input,206,_ctx) ) { case 1: { - State = 1434; whiteSpace(); - State = 1435; asTypeClause(); + State = 1452; whiteSpace(); + State = 1453; asTypeClause(); } break; } - State = 1439; endOfStatement(); + State = 1457; endOfStatement(); } } catch (RecognitionException re) { @@ -7595,44 +7778,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnlockStmtContext unlockStmt() { UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_unlockStmt); + EnterRule(_localctx, 150, RULE_unlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1441; Match(UNLOCK); - State = 1442; whiteSpace(); - State = 1443; fileNumber(); - State = 1459; + State = 1459; Match(UNLOCK); + State = 1460; whiteSpace(); + State = 1461; fileNumber(); + State = 1477; switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1445; + State = 1463; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1444; whiteSpace(); + State = 1462; whiteSpace(); } } - State = 1447; Match(COMMA); - State = 1449; + State = 1465; Match(COMMA); + State = 1467; switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1448; whiteSpace(); + State = 1466; whiteSpace(); } break; } - State = 1451; valueStmt(0); - State = 1457; + State = 1469; valueStmt(0); + State = 1475; switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: { - State = 1452; whiteSpace(); - State = 1453; Match(TO); - State = 1454; whiteSpace(); - State = 1455; valueStmt(0); + State = 1470; whiteSpace(); + State = 1471; Match(TO); + State = 1472; whiteSpace(); + State = 1473; valueStmt(0); } break; } @@ -8256,14 +8439,14 @@ private ValueStmtContext valueStmt(int _p) { int _parentState = State; ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); ValueStmtContext _prevctx = _localctx; - int _startState = 144; - EnterRecursionRule(_localctx, 144, RULE_valueStmt, _p); + int _startState = 152; + EnterRecursionRule(_localctx, 152, RULE_valueStmt, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1506; + State = 1524; switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: { @@ -8271,16 +8454,16 @@ private ValueStmtContext valueStmt(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 1462; Match(NEW); - State = 1464; + State = 1480; Match(NEW); + State = 1482; switch ( Interpreter.AdaptivePredict(_input,211,_ctx) ) { case 1: { - State = 1463; whiteSpace(); + State = 1481; whiteSpace(); } break; } - State = 1466; valueStmt(19); + State = 1484; valueStmt(19); } break; @@ -8289,16 +8472,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1467; Match(ADDRESSOF); - State = 1469; + State = 1485; Match(ADDRESSOF); + State = 1487; switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1468; whiteSpace(); + State = 1486; whiteSpace(); } break; } - State = 1471; valueStmt(16); + State = 1489; valueStmt(16); } break; @@ -8307,25 +8490,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1472; implicitCallStmt_InStmt(); - State = 1474; + State = 1490; implicitCallStmt_InStmt(); + State = 1492; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1473; whiteSpace(); + State = 1491; whiteSpace(); } } - State = 1476; Match(ASSIGN); - State = 1478; + State = 1494; Match(ASSIGN); + State = 1496; switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: { - State = 1477; whiteSpace(); + State = 1495; whiteSpace(); } break; } - State = 1480; valueStmt(15); + State = 1498; valueStmt(15); } break; @@ -8334,16 +8517,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1482; Match(MINUS); - State = 1484; + State = 1500; Match(MINUS); + State = 1502; switch ( Interpreter.AdaptivePredict(_input,215,_ctx) ) { case 1: { - State = 1483; whiteSpace(); + State = 1501; whiteSpace(); } break; } - State = 1486; valueStmt(13); + State = 1504; valueStmt(13); } break; @@ -8352,16 +8535,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1487; Match(NOT); - State = 1489; + State = 1505; Match(NOT); + State = 1507; switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1488; whiteSpace(); + State = 1506; whiteSpace(); } break; } - State = 1491; valueStmt(6); + State = 1509; valueStmt(6); } break; @@ -8370,7 +8553,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1492; literal(); + State = 1510; literal(); } break; @@ -8379,7 +8562,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1493; implicitCallStmt_InStmt(); + State = 1511; implicitCallStmt_InStmt(); } break; @@ -8388,25 +8571,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1494; Match(LPAREN); - State = 1496; + State = 1512; Match(LPAREN); + State = 1514; switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1495; whiteSpace(); + State = 1513; whiteSpace(); } break; } - State = 1498; valueStmt(0); - State = 1500; + State = 1516; valueStmt(0); + State = 1518; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1499; whiteSpace(); + State = 1517; whiteSpace(); } } - State = 1502; Match(RPAREN); + State = 1520; Match(RPAREN); } break; @@ -8415,7 +8598,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1504; typeOfIsExpression(); + State = 1522; typeOfIsExpression(); } break; @@ -8424,12 +8607,12 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1505; midStmt(); + State = 1523; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1618; + State = 1636; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,245,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -8437,32 +8620,32 @@ private ValueStmtContext valueStmt(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1616; + State = 1634; switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1508; + State = 1526; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1510; + State = 1528; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1509; whiteSpace(); + State = 1527; whiteSpace(); } } - State = 1512; Match(POW); - State = 1514; + State = 1530; Match(POW); + State = 1532; switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1513; whiteSpace(); + State = 1531; whiteSpace(); } break; } - State = 1516; valueStmt(15); + State = 1534; valueStmt(15); } break; @@ -8470,31 +8653,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1517; + State = 1535; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1519; + State = 1537; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1518; whiteSpace(); + State = 1536; whiteSpace(); } } - State = 1521; + State = 1539; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1523; + State = 1541; switch ( Interpreter.AdaptivePredict(_input,223,_ctx) ) { case 1: { - State = 1522; whiteSpace(); + State = 1540; whiteSpace(); } break; } - State = 1525; valueStmt(13); + State = 1543; valueStmt(13); } break; @@ -8502,26 +8685,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1526; + State = 1544; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1528; + State = 1546; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1527; whiteSpace(); + State = 1545; whiteSpace(); } } - State = 1530; Match(INTDIV); - State = 1532; + State = 1548; Match(INTDIV); + State = 1550; switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { case 1: { - State = 1531; whiteSpace(); + State = 1549; whiteSpace(); } break; } - State = 1534; valueStmt(12); + State = 1552; valueStmt(12); } break; @@ -8529,26 +8712,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1535; + State = 1553; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1537; + State = 1555; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1536; whiteSpace(); + State = 1554; whiteSpace(); } } - State = 1539; Match(MOD); - State = 1541; + State = 1557; Match(MOD); + State = 1559; switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { case 1: { - State = 1540; whiteSpace(); + State = 1558; whiteSpace(); } break; } - State = 1543; valueStmt(11); + State = 1561; valueStmt(11); } break; @@ -8556,31 +8739,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1544; + State = 1562; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1546; + State = 1564; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1545; whiteSpace(); + State = 1563; whiteSpace(); } } - State = 1548; + State = 1566; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1550; + State = 1568; switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1549; whiteSpace(); + State = 1567; whiteSpace(); } break; } - State = 1552; valueStmt(10); + State = 1570; valueStmt(10); } break; @@ -8588,26 +8771,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1553; + State = 1571; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1555; + State = 1573; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1554; whiteSpace(); + State = 1572; whiteSpace(); } } - State = 1557; Match(AMPERSAND); - State = 1559; + State = 1575; Match(AMPERSAND); + State = 1577; switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { case 1: { - State = 1558; whiteSpace(); + State = 1576; whiteSpace(); } break; } - State = 1561; valueStmt(9); + State = 1579; valueStmt(9); } break; @@ -8615,31 +8798,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1562; + State = 1580; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1564; + State = 1582; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1563; whiteSpace(); + State = 1581; whiteSpace(); } } - State = 1566; + State = 1584; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1568; + State = 1586; switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1567; whiteSpace(); + State = 1585; whiteSpace(); } break; } - State = 1570; valueStmt(8); + State = 1588; valueStmt(8); } break; @@ -8647,26 +8830,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1571; + State = 1589; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1573; + State = 1591; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1572; whiteSpace(); + State = 1590; whiteSpace(); } } - State = 1575; Match(AND); - State = 1577; + State = 1593; Match(AND); + State = 1595; switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { case 1: { - State = 1576; whiteSpace(); + State = 1594; whiteSpace(); } break; } - State = 1579; valueStmt(6); + State = 1597; valueStmt(6); } break; @@ -8674,26 +8857,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1580; + State = 1598; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1582; + State = 1600; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1581; whiteSpace(); + State = 1599; whiteSpace(); } } - State = 1584; Match(OR); - State = 1586; + State = 1602; Match(OR); + State = 1604; switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1585; whiteSpace(); + State = 1603; whiteSpace(); } break; } - State = 1588; valueStmt(5); + State = 1606; valueStmt(5); } break; @@ -8701,26 +8884,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1589; + State = 1607; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1591; + State = 1609; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1590; whiteSpace(); + State = 1608; whiteSpace(); } } - State = 1593; Match(XOR); - State = 1595; + State = 1611; Match(XOR); + State = 1613; switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1594; whiteSpace(); + State = 1612; whiteSpace(); } break; } - State = 1597; valueStmt(4); + State = 1615; valueStmt(4); } break; @@ -8728,26 +8911,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1598; + State = 1616; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1600; + State = 1618; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1599; whiteSpace(); + State = 1617; whiteSpace(); } } - State = 1602; Match(EQV); - State = 1604; + State = 1620; Match(EQV); + State = 1622; switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1603; whiteSpace(); + State = 1621; whiteSpace(); } break; } - State = 1606; valueStmt(3); + State = 1624; valueStmt(3); } break; @@ -8755,32 +8938,32 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1607; + State = 1625; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1609; + State = 1627; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1608; whiteSpace(); + State = 1626; whiteSpace(); } } - State = 1611; Match(IMP); - State = 1613; + State = 1629; Match(IMP); + State = 1631; switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1612; whiteSpace(); + State = 1630; whiteSpace(); } break; } - State = 1615; valueStmt(2); + State = 1633; valueStmt(2); } break; } } } - State = 1620; + State = 1638; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,245,_ctx); } @@ -8835,21 +9018,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfIsExpressionContext typeOfIsExpression() { TypeOfIsExpressionContext _localctx = new TypeOfIsExpressionContext(_ctx, State); - EnterRule(_localctx, 146, RULE_typeOfIsExpression); + EnterRule(_localctx, 154, RULE_typeOfIsExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1621; Match(TYPEOF); - State = 1622; whiteSpace(); - State = 1623; valueStmt(0); - State = 1629; + State = 1639; Match(TYPEOF); + State = 1640; whiteSpace(); + State = 1641; valueStmt(0); + State = 1647; switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1624; whiteSpace(); - State = 1625; Match(IS); - State = 1626; whiteSpace(); - State = 1627; type(); + State = 1642; whiteSpace(); + State = 1643; Match(IS); + State = 1644; whiteSpace(); + State = 1645; type(); } break; } @@ -8905,20 +9088,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableStmtContext variableStmt() { VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 148, RULE_variableStmt); + EnterRule(_localctx, 156, RULE_variableStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1634; + State = 1652; switch (_input.La(1)) { case DIM: { - State = 1631; Match(DIM); + State = 1649; Match(DIM); } break; case STATIC: { - State = 1632; Match(STATIC); + State = 1650; Match(STATIC); } break; case FRIEND: @@ -8926,23 +9109,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1633; visibility(); + State = 1651; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1636; whiteSpace(); - State = 1639; + State = 1654; whiteSpace(); + State = 1657; switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1637; Match(WITHEVENTS); - State = 1638; whiteSpace(); + State = 1655; Match(WITHEVENTS); + State = 1656; whiteSpace(); } break; } - State = 1641; variableListStmt(); + State = 1659; variableListStmt(); } } catch (RecognitionException re) { @@ -8996,42 +9179,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableListStmtContext variableListStmt() { VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_variableListStmt); + EnterRule(_localctx, 158, RULE_variableListStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1643; variableSubStmt(); - State = 1654; + State = 1661; variableSubStmt(); + State = 1672; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,251,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1645; + State = 1663; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1644; whiteSpace(); + State = 1662; whiteSpace(); } } - State = 1647; Match(COMMA); - State = 1649; + State = 1665; Match(COMMA); + State = 1667; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1648; whiteSpace(); + State = 1666; whiteSpace(); } } - State = 1651; variableSubStmt(); + State = 1669; variableSubStmt(); } } } - State = 1656; + State = 1674; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,251,_ctx); } @@ -9092,75 +9275,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableSubStmtContext variableSubStmt() { VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 152, RULE_variableSubStmt); + EnterRule(_localctx, 160, RULE_variableSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1657; identifier(); - State = 1675; + State = 1675; identifier(); + State = 1693; switch ( Interpreter.AdaptivePredict(_input,257,_ctx) ) { case 1: { - State = 1659; + State = 1677; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1658; whiteSpace(); + State = 1676; whiteSpace(); } } - State = 1661; Match(LPAREN); - State = 1663; + State = 1679; Match(LPAREN); + State = 1681; switch ( Interpreter.AdaptivePredict(_input,253,_ctx) ) { case 1: { - State = 1662; whiteSpace(); + State = 1680; whiteSpace(); } break; } - State = 1669; + State = 1687; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (LPAREN - 193)) | (1L << (MINUS - 193)) | (1L << (STRINGLITERAL - 193)) | (1L << (OCTLITERAL - 193)) | (1L << (HEXLITERAL - 193)) | (1L << (FLOATLITERAL - 193)) | (1L << (INTEGERLITERAL - 193)) | (1L << (DATELITERAL - 193)) | (1L << (WS - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (LINE_CONTINUATION - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (LPAREN - 193)) | (1L << (MINUS - 193)) | (1L << (STRINGLITERAL - 193)) | (1L << (OCTLITERAL - 193)) | (1L << (HEXLITERAL - 193)) | (1L << (FLOATLITERAL - 193)) | (1L << (INTEGERLITERAL - 193)) | (1L << (DATELITERAL - 193)) | (1L << (WS - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (LINE_CONTINUATION - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { - State = 1665; subscripts(); - State = 1667; + State = 1683; subscripts(); + State = 1685; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1666; whiteSpace(); + State = 1684; whiteSpace(); } } } } - State = 1671; Match(RPAREN); - State = 1673; + State = 1689; Match(RPAREN); + State = 1691; switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1672; whiteSpace(); + State = 1690; whiteSpace(); } break; } } break; } - State = 1678; + State = 1696; switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1677; typeHint(); + State = 1695; typeHint(); } break; } - State = 1683; + State = 1701; switch ( Interpreter.AdaptivePredict(_input,259,_ctx) ) { case 1: { - State = 1680; whiteSpace(); - State = 1681; asTypeClause(); + State = 1698; whiteSpace(); + State = 1699; asTypeClause(); } break; } @@ -9215,24 +9398,24 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 154, RULE_whileWendStmt); + EnterRule(_localctx, 162, RULE_whileWendStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1685; Match(WHILE); - State = 1686; whiteSpace(); - State = 1687; valueStmt(0); - State = 1688; endOfStatement(); - State = 1690; + State = 1703; Match(WHILE); + State = 1704; whiteSpace(); + State = 1705; valueStmt(0); + State = 1706; endOfStatement(); + State = 1708; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1689; block(); + State = 1707; block(); } } - State = 1692; Match(WEND); + State = 1710; Match(WEND); } } catch (RecognitionException re) { @@ -9284,32 +9467,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WidthStmtContext widthStmt() { WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_widthStmt); + EnterRule(_localctx, 164, RULE_widthStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1694; Match(WIDTH); - State = 1695; whiteSpace(); - State = 1696; fileNumber(); - State = 1698; + State = 1712; Match(WIDTH); + State = 1713; whiteSpace(); + State = 1714; fileNumber(); + State = 1716; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1697; whiteSpace(); + State = 1715; whiteSpace(); } } - State = 1700; Match(COMMA); - State = 1702; + State = 1718; Match(COMMA); + State = 1720; switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1701; whiteSpace(); + State = 1719; whiteSpace(); } break; } - State = 1704; valueStmt(0); + State = 1722; valueStmt(0); } } catch (RecognitionException re) { @@ -9361,24 +9544,24 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtContext withStmt() { WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_withStmt); + EnterRule(_localctx, 166, RULE_withStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1706; Match(WITH); - State = 1707; whiteSpace(); - State = 1708; withStmtExpression(); - State = 1709; endOfStatement(); - State = 1711; + State = 1724; Match(WITH); + State = 1725; whiteSpace(); + State = 1726; withStmtExpression(); + State = 1727; endOfStatement(); + State = 1729; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { { - State = 1710; block(); + State = 1728; block(); } } - State = 1713; Match(END_WITH); + State = 1731; Match(END_WITH); } } catch (RecognitionException re) { @@ -9419,11 +9602,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtExpressionContext withStmtExpression() { WithStmtExpressionContext _localctx = new WithStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 160, RULE_withStmtExpression); + EnterRule(_localctx, 168, RULE_withStmtExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1715; valueStmt(0); + State = 1733; valueStmt(0); } } catch (RecognitionException re) { @@ -9475,36 +9658,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WriteStmtContext writeStmt() { WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 162, RULE_writeStmt); + EnterRule(_localctx, 170, RULE_writeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1717; Match(WRITE); - State = 1718; whiteSpace(); - State = 1719; fileNumber(); - State = 1721; + State = 1735; Match(WRITE); + State = 1736; whiteSpace(); + State = 1737; fileNumber(); + State = 1739; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1720; whiteSpace(); + State = 1738; whiteSpace(); } } - State = 1723; Match(COMMA); - State = 1728; + State = 1741; Match(COMMA); + State = 1746; switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1725; + State = 1743; switch ( Interpreter.AdaptivePredict(_input,265,_ctx) ) { case 1: { - State = 1724; whiteSpace(); + State = 1742; whiteSpace(); } break; } - State = 1727; outputList(); + State = 1745; outputList(); } break; } @@ -9549,20 +9732,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FileNumberContext fileNumber() { FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 164, RULE_fileNumber); + EnterRule(_localctx, 172, RULE_fileNumber); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1731; + State = 1749; _la = _input.La(1); if (_la==HASH) { { - State = 1730; Match(HASH); + State = 1748; Match(HASH); } } - State = 1733; valueStmt(0); + State = 1751; valueStmt(0); } } catch (RecognitionException re) { @@ -9607,13 +9790,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_explicitCallStmt); + EnterRule(_localctx, 174, RULE_explicitCallStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1735; Match(CALL); - State = 1736; whiteSpace(); - State = 1737; explicitCallStmtExpression(); + State = 1753; Match(CALL); + State = 1754; whiteSpace(); + State = 1755; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -9737,90 +9920,90 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { ExplicitCallStmtExpressionContext _localctx = new ExplicitCallStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 168, RULE_explicitCallStmtExpression); + EnterRule(_localctx, 176, RULE_explicitCallStmtExpression); int _la; try { int _alt; - State = 1805; + State = 1823; switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1740; + State = 1758; switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1739; implicitCallStmt_InStmt(); + State = 1757; implicitCallStmt_InStmt(); } break; } - State = 1742; Match(DOT); - State = 1743; identifier(); - State = 1745; + State = 1760; Match(DOT); + State = 1761; identifier(); + State = 1763; switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { case 1: { - State = 1744; typeHint(); + State = 1762; typeHint(); } break; } - State = 1760; + State = 1778; switch ( Interpreter.AdaptivePredict(_input,273,_ctx) ) { case 1: { - State = 1748; + State = 1766; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1747; whiteSpace(); + State = 1765; whiteSpace(); } } - State = 1750; Match(LPAREN); - State = 1752; + State = 1768; Match(LPAREN); + State = 1770; switch ( Interpreter.AdaptivePredict(_input,271,_ctx) ) { case 1: { - State = 1751; whiteSpace(); + State = 1769; whiteSpace(); } break; } - State = 1754; argsCall(); - State = 1756; + State = 1772; argsCall(); + State = 1774; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1755; whiteSpace(); + State = 1773; whiteSpace(); } } - State = 1758; Match(RPAREN); + State = 1776; Match(RPAREN); } break; } - State = 1771; + State = 1789; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,275,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1763; + State = 1781; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1762; whiteSpace(); + State = 1780; whiteSpace(); } } - State = 1765; Match(LPAREN); - State = 1766; subscripts(); - State = 1767; Match(RPAREN); + State = 1783; Match(LPAREN); + State = 1784; subscripts(); + State = 1785; Match(RPAREN); } } } - State = 1773; + State = 1791; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,275,_ctx); } @@ -9831,71 +10014,71 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1774; identifier(); - State = 1776; + State = 1792; identifier(); + State = 1794; switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { case 1: { - State = 1775; typeHint(); + State = 1793; typeHint(); } break; } - State = 1791; + State = 1809; switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { case 1: { - State = 1779; + State = 1797; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1778; whiteSpace(); + State = 1796; whiteSpace(); } } - State = 1781; Match(LPAREN); - State = 1783; + State = 1799; Match(LPAREN); + State = 1801; switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { case 1: { - State = 1782; whiteSpace(); + State = 1800; whiteSpace(); } break; } - State = 1785; argsCall(); - State = 1787; + State = 1803; argsCall(); + State = 1805; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1786; whiteSpace(); + State = 1804; whiteSpace(); } } - State = 1789; Match(RPAREN); + State = 1807; Match(RPAREN); } break; } - State = 1802; + State = 1820; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1794; + State = 1812; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1793; whiteSpace(); + State = 1811; whiteSpace(); } } - State = 1796; Match(LPAREN); - State = 1797; subscripts(); - State = 1798; Match(RPAREN); + State = 1814; Match(LPAREN); + State = 1815; subscripts(); + State = 1816; Match(RPAREN); } } } - State = 1804; + State = 1822; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); } @@ -9944,21 +10127,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 170, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 178, RULE_implicitCallStmt_InBlock); try { - State = 1809; + State = 1827; switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1807; iCS_B_MemberProcedureCall(); + State = 1825; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1808; iCS_B_ProcedureCall(); + State = 1826; iCS_B_ProcedureCall(); } break; } @@ -10034,93 +10217,93 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 172, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 180, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1812; + State = 1830; switch ( Interpreter.AdaptivePredict(_input,285,_ctx) ) { case 1: { - State = 1811; implicitCallStmt_InStmt(); + State = 1829; implicitCallStmt_InStmt(); } break; } - State = 1815; + State = 1833; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1814; whiteSpace(); + State = 1832; whiteSpace(); } } - State = 1817; Match(DOT); - State = 1819; + State = 1835; Match(DOT); + State = 1837; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1818; whiteSpace(); + State = 1836; whiteSpace(); } } - State = 1821; unrestrictedIdentifier(); - State = 1823; + State = 1839; unrestrictedIdentifier(); + State = 1841; switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 1822; typeHint(); + State = 1840; typeHint(); } break; } - State = 1828; + State = 1846; switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { case 1: { - State = 1825; whiteSpace(); - State = 1826; argsCall(); + State = 1843; whiteSpace(); + State = 1844; argsCall(); } break; } - State = 1834; + State = 1852; switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1831; + State = 1849; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1830; whiteSpace(); + State = 1848; whiteSpace(); } } - State = 1833; dictionaryCallStmt(); + State = 1851; dictionaryCallStmt(); } break; } - State = 1845; + State = 1863; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,293,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1837; + State = 1855; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1836; whiteSpace(); + State = 1854; whiteSpace(); } } - State = 1839; Match(LPAREN); - State = 1840; subscripts(); - State = 1841; Match(RPAREN); + State = 1857; Match(LPAREN); + State = 1858; subscripts(); + State = 1859; Match(RPAREN); } } } - State = 1847; + State = 1865; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,293,_ctx); } @@ -10187,44 +10370,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 174, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 182, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1848; identifier(); - State = 1852; + State = 1866; identifier(); + State = 1870; switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 1849; whiteSpace(); - State = 1850; argsCall(); + State = 1867; whiteSpace(); + State = 1868; argsCall(); } break; } - State = 1863; + State = 1881; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,296,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1855; + State = 1873; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1854; whiteSpace(); + State = 1872; whiteSpace(); } } - State = 1857; Match(LPAREN); - State = 1858; subscripts(); - State = 1859; Match(RPAREN); + State = 1875; Match(LPAREN); + State = 1876; subscripts(); + State = 1877; Match(RPAREN); } } } - State = 1865; + State = 1883; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,296,_ctx); } @@ -10277,35 +10460,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 176, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 184, RULE_implicitCallStmt_InStmt); try { - State = 1870; + State = 1888; switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1866; iCS_S_MembersCall(); + State = 1884; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1867; iCS_S_VariableOrProcedureCall(); + State = 1885; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 1868; iCS_S_ProcedureOrArrayCall(); + State = 1886; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 1869; iCS_S_DictionaryCall(); + State = 1887; iCS_S_DictionaryCall(); } break; } @@ -10374,59 +10557,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 178, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 186, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1872; identifier(); - State = 1874; + State = 1890; identifier(); + State = 1892; switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { case 1: { - State = 1873; typeHint(); + State = 1891; typeHint(); } break; } - State = 1880; + State = 1898; switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 1877; + State = 1895; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1876; whiteSpace(); + State = 1894; whiteSpace(); } } - State = 1879; dictionaryCallStmt(); + State = 1897; dictionaryCallStmt(); } break; } - State = 1891; + State = 1909; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,302,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1883; + State = 1901; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1882; whiteSpace(); + State = 1900; whiteSpace(); } } - State = 1885; Match(LPAREN); - State = 1886; subscripts(); - State = 1887; Match(RPAREN); + State = 1903; Match(LPAREN); + State = 1904; subscripts(); + State = 1905; Match(RPAREN); } } } - State = 1893; + State = 1911; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,302,_ctx); } @@ -10502,106 +10685,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 180, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 188, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1896; + State = 1914; switch ( Interpreter.AdaptivePredict(_input,303,_ctx) ) { case 1: { - State = 1894; identifier(); + State = 1912; identifier(); } break; case 2: { - State = 1895; baseType(); + State = 1913; baseType(); } break; } - State = 1899; + State = 1917; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 1898; typeHint(); + State = 1916; typeHint(); } } - State = 1902; + State = 1920; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1901; whiteSpace(); + State = 1919; whiteSpace(); } } - State = 1904; Match(LPAREN); - State = 1906; + State = 1922; Match(LPAREN); + State = 1924; switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { case 1: { - State = 1905; whiteSpace(); + State = 1923; whiteSpace(); } break; } - State = 1912; + State = 1930; switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { case 1: { - State = 1908; argsCall(); - State = 1910; + State = 1926; argsCall(); + State = 1928; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1909; whiteSpace(); + State = 1927; whiteSpace(); } } } break; } - State = 1914; Match(RPAREN); - State = 1919; + State = 1932; Match(RPAREN); + State = 1937; switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { case 1: { - State = 1916; + State = 1934; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1915; whiteSpace(); + State = 1933; whiteSpace(); } } - State = 1918; dictionaryCallStmt(); + State = 1936; dictionaryCallStmt(); } break; } - State = 1930; + State = 1948; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,312,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1922; + State = 1940; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1921; whiteSpace(); + State = 1939; whiteSpace(); } } - State = 1924; Match(LPAREN); - State = 1925; subscripts(); - State = 1926; Match(RPAREN); + State = 1942; Match(LPAREN); + State = 1943; subscripts(); + State = 1944; Match(RPAREN); } } } - State = 1932; + State = 1950; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,312,_ctx); } @@ -10671,59 +10854,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallUnrestrictedContext iCS_S_VariableOrProcedureCallUnrestricted() { ICS_S_VariableOrProcedureCallUnrestrictedContext _localctx = new ICS_S_VariableOrProcedureCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 182, RULE_iCS_S_VariableOrProcedureCallUnrestricted); + EnterRule(_localctx, 190, RULE_iCS_S_VariableOrProcedureCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1933; unrestrictedIdentifier(); - State = 1935; + State = 1951; unrestrictedIdentifier(); + State = 1953; switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { case 1: { - State = 1934; typeHint(); + State = 1952; typeHint(); } break; } - State = 1941; + State = 1959; switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: { - State = 1938; + State = 1956; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1937; whiteSpace(); + State = 1955; whiteSpace(); } } - State = 1940; dictionaryCallStmt(); + State = 1958; dictionaryCallStmt(); } break; } - State = 1952; + State = 1970; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1944; + State = 1962; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1943; whiteSpace(); + State = 1961; whiteSpace(); } } - State = 1946; Match(LPAREN); - State = 1947; subscripts(); - State = 1948; Match(RPAREN); + State = 1964; Match(LPAREN); + State = 1965; subscripts(); + State = 1966; Match(RPAREN); } } } - State = 1954; + State = 1972; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,317,_ctx); } @@ -10799,106 +10982,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallUnrestrictedContext iCS_S_ProcedureOrArrayCallUnrestricted() { ICS_S_ProcedureOrArrayCallUnrestrictedContext _localctx = new ICS_S_ProcedureOrArrayCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 184, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); + EnterRule(_localctx, 192, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1957; + State = 1975; switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { case 1: { - State = 1955; unrestrictedIdentifier(); + State = 1973; unrestrictedIdentifier(); } break; case 2: { - State = 1956; baseType(); + State = 1974; baseType(); } break; } - State = 1960; + State = 1978; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 1959; typeHint(); + State = 1977; typeHint(); } } - State = 1963; + State = 1981; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1962; whiteSpace(); + State = 1980; whiteSpace(); } } - State = 1965; Match(LPAREN); - State = 1967; + State = 1983; Match(LPAREN); + State = 1985; switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { case 1: { - State = 1966; whiteSpace(); + State = 1984; whiteSpace(); } break; } - State = 1973; + State = 1991; switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: { - State = 1969; argsCall(); - State = 1971; + State = 1987; argsCall(); + State = 1989; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1970; whiteSpace(); + State = 1988; whiteSpace(); } } } break; } - State = 1975; Match(RPAREN); - State = 1980; + State = 1993; Match(RPAREN); + State = 1998; switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 1977; + State = 1995; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1976; whiteSpace(); + State = 1994; whiteSpace(); } } - State = 1979; dictionaryCallStmt(); + State = 1997; dictionaryCallStmt(); } break; } - State = 1991; + State = 2009; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1983; + State = 2001; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1982; whiteSpace(); + State = 2000; whiteSpace(); } } - State = 1985; Match(LPAREN); - State = 1986; subscripts(); - State = 1987; Match(RPAREN); + State = 2003; Match(LPAREN); + State = 2004; subscripts(); + State = 2005; Match(RPAREN); } } } - State = 1993; + State = 2011; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); } @@ -10974,27 +11157,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 186, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 194, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1996; + State = 2014; switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: { - State = 1994; iCS_S_VariableOrProcedureCall(); + State = 2012; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 1995; iCS_S_ProcedureOrArrayCall(); + State = 2013; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2002; + State = 2020; _errHandler.Sync(this); _alt = 1; do { @@ -11002,12 +11185,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 1998; iCS_S_MemberCall(); - State = 2000; + State = 2016; iCS_S_MemberCall(); + State = 2018; switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 1999; whiteSpace(); + State = 2017; whiteSpace(); } break; } @@ -11017,48 +11200,48 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2004; + State = 2022; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,330,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2010; + State = 2028; switch ( Interpreter.AdaptivePredict(_input,332,_ctx) ) { case 1: { - State = 2007; + State = 2025; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2006; whiteSpace(); + State = 2024; whiteSpace(); } } - State = 2009; dictionaryCallStmt(); + State = 2027; dictionaryCallStmt(); } break; } - State = 2021; + State = 2039; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,334,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2013; + State = 2031; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2012; whiteSpace(); + State = 2030; whiteSpace(); } } - State = 2015; Match(LPAREN); - State = 2016; subscripts(); - State = 2017; Match(RPAREN); + State = 2033; Match(LPAREN); + State = 2034; subscripts(); + State = 2035; Match(RPAREN); } } } - State = 2023; + State = 2041; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,334,_ctx); } @@ -11110,36 +11293,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 188, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 196, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2024; + State = 2042; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2026; + State = 2044; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2025; whiteSpace(); + State = 2043; whiteSpace(); } } - State = 2030; + State = 2048; switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { case 1: { - State = 2028; iCS_S_VariableOrProcedureCallUnrestricted(); + State = 2046; iCS_S_VariableOrProcedureCallUnrestricted(); } break; case 2: { - State = 2029; iCS_S_ProcedureOrArrayCallUnrestricted(); + State = 2047; iCS_S_ProcedureOrArrayCallUnrestricted(); } break; } @@ -11186,20 +11369,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 190, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 198, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2033; + State = 2051; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2032; whiteSpace(); + State = 2050; whiteSpace(); } } - State = 2035; dictionaryCallStmt(); + State = 2053; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -11257,98 +11440,98 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 192, RULE_argsCall); + EnterRule(_localctx, 200, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2049; + State = 2067; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,341,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2038; + State = 2056; switch ( Interpreter.AdaptivePredict(_input,338,_ctx) ) { case 1: { - State = 2037; argCall(); + State = 2055; argCall(); } break; } - State = 2041; + State = 2059; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2040; whiteSpace(); + State = 2058; whiteSpace(); } } - State = 2043; + State = 2061; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2045; + State = 2063; switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { case 1: { - State = 2044; whiteSpace(); + State = 2062; whiteSpace(); } break; } } } } - State = 2051; + State = 2069; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,341,_ctx); } - State = 2052; argCall(); - State = 2065; + State = 2070; argCall(); + State = 2083; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,345,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2054; + State = 2072; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2053; whiteSpace(); + State = 2071; whiteSpace(); } } - State = 2056; + State = 2074; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2058; + State = 2076; switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { case 1: { - State = 2057; whiteSpace(); + State = 2075; whiteSpace(); } break; } - State = 2061; + State = 2079; switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2060; argCall(); + State = 2078; argCall(); } break; } } } } - State = 2067; + State = 2085; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,345,_ctx); } @@ -11400,42 +11583,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 194, RULE_argCall); + EnterRule(_localctx, 202, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2069; + State = 2087; switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { case 1: { - State = 2068; Match(LPAREN); + State = 2086; Match(LPAREN); } break; } - State = 2073; + State = 2091; switch ( Interpreter.AdaptivePredict(_input,347,_ctx) ) { case 1: { - State = 2071; + State = 2089; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2072; whiteSpace(); + State = 2090; whiteSpace(); } break; } - State = 2076; + State = 2094; _la = _input.La(1); if (_la==RPAREN) { { - State = 2075; Match(RPAREN); + State = 2093; Match(RPAREN); } } - State = 2078; valueStmt(0); + State = 2096; valueStmt(0); } } catch (RecognitionException re) { @@ -11483,26 +11666,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 196, RULE_dictionaryCallStmt); + EnterRule(_localctx, 204, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2080; Match(EXCLAMATIONPOINT); - State = 2082; + State = 2098; Match(EXCLAMATIONPOINT); + State = 2100; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2081; whiteSpace(); + State = 2099; whiteSpace(); } } - State = 2084; unrestrictedIdentifier(); - State = 2086; + State = 2102; unrestrictedIdentifier(); + State = 2104; switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { case 1: { - State = 2085; typeHint(); + State = 2103; typeHint(); } break; } @@ -11561,70 +11744,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 198, RULE_argList); + EnterRule(_localctx, 206, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2088; Match(LPAREN); - State = 2106; + State = 2106; Match(LPAREN); + State = 2124; switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { case 1: { - State = 2090; + State = 2108; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2089; whiteSpace(); + State = 2107; whiteSpace(); } } - State = 2092; arg(); - State = 2103; + State = 2110; arg(); + State = 2121; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,354,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2094; + State = 2112; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2093; whiteSpace(); + State = 2111; whiteSpace(); } } - State = 2096; Match(COMMA); - State = 2098; + State = 2114; Match(COMMA); + State = 2116; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2097; whiteSpace(); + State = 2115; whiteSpace(); } } - State = 2100; arg(); + State = 2118; arg(); } } } - State = 2105; + State = 2123; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,354,_ctx); } } break; } - State = 2109; + State = 2127; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2108; whiteSpace(); + State = 2126; whiteSpace(); } } - State = 2111; Match(RPAREN); + State = 2129; Match(RPAREN); } } catch (RecognitionException re) { @@ -11686,106 +11869,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 200, RULE_arg); + EnterRule(_localctx, 208, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2115; + State = 2133; switch ( Interpreter.AdaptivePredict(_input,357,_ctx) ) { case 1: { - State = 2113; Match(OPTIONAL); - State = 2114; whiteSpace(); + State = 2131; Match(OPTIONAL); + State = 2132; whiteSpace(); } break; } - State = 2119; + State = 2137; switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2117; + State = 2135; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2118; whiteSpace(); + State = 2136; whiteSpace(); } break; } - State = 2123; + State = 2141; switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2121; Match(PARAMARRAY); - State = 2122; whiteSpace(); + State = 2139; Match(PARAMARRAY); + State = 2140; whiteSpace(); } break; } - State = 2125; unrestrictedIdentifier(); - State = 2127; + State = 2143; unrestrictedIdentifier(); + State = 2145; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2126; typeHint(); + State = 2144; typeHint(); } } - State = 2137; + State = 2155; switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2130; + State = 2148; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2129; whiteSpace(); + State = 2147; whiteSpace(); } } - State = 2132; Match(LPAREN); - State = 2134; + State = 2150; Match(LPAREN); + State = 2152; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2133; whiteSpace(); + State = 2151; whiteSpace(); } } - State = 2136; Match(RPAREN); + State = 2154; Match(RPAREN); } break; } - State = 2143; + State = 2161; switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2140; + State = 2158; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2139; whiteSpace(); + State = 2157; whiteSpace(); } } - State = 2142; asTypeClause(); + State = 2160; asTypeClause(); } break; } - State = 2149; + State = 2167; switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2146; + State = 2164; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2145; whiteSpace(); + State = 2163; whiteSpace(); } } - State = 2148; argDefaultValue(); + State = 2166; argDefaultValue(); } break; } @@ -11833,20 +12016,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 202, RULE_argDefaultValue); + EnterRule(_localctx, 210, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2151; Match(EQ); - State = 2153; + State = 2169; Match(EQ); + State = 2171; switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { case 1: { - State = 2152; whiteSpace(); + State = 2170; whiteSpace(); } break; } - State = 2155; valueStmt(0); + State = 2173; valueStmt(0); } } catch (RecognitionException re) { @@ -11900,42 +12083,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 204, RULE_subscripts); + EnterRule(_localctx, 212, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2157; subscript(); - State = 2168; + State = 2175; subscript(); + State = 2186; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,371,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2159; + State = 2177; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2158; whiteSpace(); + State = 2176; whiteSpace(); } } - State = 2161; Match(COMMA); - State = 2163; + State = 2179; Match(COMMA); + State = 2181; switch ( Interpreter.AdaptivePredict(_input,370,_ctx) ) { case 1: { - State = 2162; whiteSpace(); + State = 2180; whiteSpace(); } break; } - State = 2165; subscript(); + State = 2183; subscript(); } } } - State = 2170; + State = 2188; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,371,_ctx); } @@ -11989,22 +12172,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 206, RULE_subscript); + EnterRule(_localctx, 214, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2176; + State = 2194; switch ( Interpreter.AdaptivePredict(_input,372,_ctx) ) { case 1: { - State = 2171; valueStmt(0); - State = 2172; whiteSpace(); - State = 2173; Match(TO); - State = 2174; whiteSpace(); + State = 2189; valueStmt(0); + State = 2190; whiteSpace(); + State = 2191; Match(TO); + State = 2192; whiteSpace(); } break; } - State = 2178; valueStmt(0); + State = 2196; valueStmt(0); } } catch (RecognitionException re) { @@ -12019,6 +12202,9 @@ public SubscriptContext subscript() { } public partial class UnrestrictedIdentifierContext : ParserRuleContext { + public MarkerKeywordContext markerKeyword() { + return GetRuleContext(0); + } public IdentifierContext identifier() { return GetRuleContext(0); } @@ -12048,9 +12234,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnrestrictedIdentifierContext unrestrictedIdentifier() { UnrestrictedIdentifierContext _localctx = new UnrestrictedIdentifierContext(_ctx, State); - EnterRule(_localctx, 208, RULE_unrestrictedIdentifier); + EnterRule(_localctx, 216, RULE_unrestrictedIdentifier); try { - State = 2182; + State = 2201; switch (_input.La(1)) { case ABS: case ANY: @@ -12092,7 +12278,6 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -12147,7 +12332,7 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case SETATTR: EnterOuterAlt(_localctx, 1); { - State = 2180; identifier(); + State = 2198; identifier(); } break; case EXIT: @@ -12244,7 +12429,13 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case RESUME_NEXT: EnterOuterAlt(_localctx, 2); { - State = 2181; statementKeyword(); + State = 2199; statementKeyword(); + } + break; + case AS: + EnterOuterAlt(_localctx, 3); + { + State = 2200; markerKeyword(); } break; default: @@ -12290,14 +12481,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); - EnterRule(_localctx, 210, RULE_identifier); + EnterRule(_localctx, 218, RULE_identifier); try { - State = 2186; + State = 2205; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2184; Match(IDENTIFIER); + State = 2203; Match(IDENTIFIER); } break; case ABS: @@ -12340,7 +12531,6 @@ public IdentifierContext identifier() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -12394,7 +12584,7 @@ public IdentifierContext identifier() { case SETATTR: EnterOuterAlt(_localctx, 2); { - State = 2185; keyword(); + State = 2204; keyword(); } break; default: @@ -12450,43 +12640,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 212, RULE_asTypeClause); + EnterRule(_localctx, 220, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2188; Match(AS); - State = 2190; + State = 2207; Match(AS); + State = 2209; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2189; whiteSpace(); + State = 2208; whiteSpace(); } } - State = 2194; + State = 2213; switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { case 1: { - State = 2192; Match(NEW); - State = 2193; whiteSpace(); + State = 2211; Match(NEW); + State = 2212; whiteSpace(); } break; } - State = 2196; type(); - State = 2201; + State = 2215; type(); + State = 2220; switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2198; + State = 2217; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2197; whiteSpace(); + State = 2216; whiteSpace(); } } - State = 2200; fieldLength(); + State = 2219; fieldLength(); } break; } @@ -12539,12 +12729,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 214, RULE_baseType); + EnterRule(_localctx, 222, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2203; + State = 2222; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (DATE - 68)) | (1L << (DOUBLE - 68)) | (1L << (INTEGER - 68)) | (1L << (LONG - 68)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SINGLE - 178)) | (1L << (STRING - 178)) | (1L << (VARIANT - 178)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -12595,12 +12785,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 216, RULE_comparisonOperator); + EnterRule(_localctx, 224, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2205; + State = 2224; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -12657,31 +12847,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 218, RULE_complexType); + EnterRule(_localctx, 226, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2207; identifier(); - State = 2212; + State = 2226; identifier(); + State = 2231; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,379,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2208; + State = 2227; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2209; identifier(); + State = 2228; identifier(); } } } - State = 2214; + State = 2233; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,379,_ctx); } @@ -12732,28 +12922,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 220, RULE_fieldLength); + EnterRule(_localctx, 228, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2215; Match(MULT); - State = 2217; + State = 2234; Match(MULT); + State = 2236; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2216; whiteSpace(); + State = 2235; whiteSpace(); } } - State = 2221; + State = 2240; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2219; numberLiteral(); + State = 2238; numberLiteral(); } break; case ABS: @@ -12796,7 +12986,6 @@ public FieldLengthContext fieldLength() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -12850,7 +13039,7 @@ public FieldLengthContext fieldLength() { case SENDKEYS: case SETATTR: { - State = 2220; identifier(); + State = 2239; identifier(); } break; default: @@ -12906,34 +13095,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 222, RULE_letterrange); + EnterRule(_localctx, 230, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2223; identifier(); - State = 2232; + State = 2242; identifier(); + State = 2251; switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2225; + State = 2244; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2224; whiteSpace(); + State = 2243; whiteSpace(); } } - State = 2227; Match(MINUS); - State = 2229; + State = 2246; Match(MINUS); + State = 2248; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2228; whiteSpace(); + State = 2247; whiteSpace(); } } - State = 2231; identifier(); + State = 2250; identifier(); } break; } @@ -12981,11 +13170,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 224, RULE_lineLabel); + EnterRule(_localctx, 232, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2236; + State = 2255; switch (_input.La(1)) { case ABS: case ANY: @@ -13027,7 +13216,6 @@ public LineLabelContext lineLabel() { case ALIAS: case AND: case ATTRIBUTE: - case AS: case BEGIN: case BOOLEAN: case BYVAL: @@ -13081,7 +13269,7 @@ public LineLabelContext lineLabel() { case SENDKEYS: case SETATTR: { - State = 2234; identifier(); + State = 2253; identifier(); } break; case OCTLITERAL: @@ -13089,13 +13277,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2235; numberLiteral(); + State = 2254; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2238; Match(COLON); + State = 2257; Match(COLON); } } catch (RecognitionException re) { @@ -13143,9 +13331,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 226, RULE_literal); + EnterRule(_localctx, 234, RULE_literal); try { - State = 2248; + State = 2267; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -13153,49 +13341,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2240; numberLiteral(); + State = 2259; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2241; Match(DATELITERAL); + State = 2260; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2242; Match(STRINGLITERAL); + State = 2261; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2243; Match(TRUE); + State = 2262; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2244; Match(FALSE); + State = 2263; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2245; Match(NOTHING); + State = 2264; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2246; Match(NULL); + State = 2265; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2247; Match(EMPTY); + State = 2266; Match(EMPTY); } break; default: @@ -13241,12 +13429,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 228, RULE_numberLiteral); + EnterRule(_localctx, 236, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2250; + State = 2269; _la = _input.La(1); if ( !(((((_la - 226)) & ~0x3f) == 0 && ((1L << (_la - 226)) & ((1L << (OCTLITERAL - 226)) | (1L << (HEXLITERAL - 226)) | (1L << (FLOATLITERAL - 226)) | (1L << (INTEGERLITERAL - 226)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13303,47 +13491,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 230, RULE_type); + EnterRule(_localctx, 238, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2254; + State = 2273; switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { case 1: { - State = 2252; baseType(); + State = 2271; baseType(); } break; case 2: { - State = 2253; complexType(); + State = 2272; complexType(); } break; } - State = 2264; + State = 2283; switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2257; + State = 2276; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2256; whiteSpace(); + State = 2275; whiteSpace(); } } - State = 2259; Match(LPAREN); - State = 2261; + State = 2278; Match(LPAREN); + State = 2280; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2260; whiteSpace(); + State = 2279; whiteSpace(); } } - State = 2263; Match(RPAREN); + State = 2282; Match(RPAREN); } break; } @@ -13391,12 +13579,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 232, RULE_typeHint); + EnterRule(_localctx, 240, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2266; + State = 2285; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -13443,12 +13631,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 234, RULE_visibility); + EnterRule(_localctx, 242, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2268; + State = 2287; _la = _input.La(1); if ( !(((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13530,7 +13718,6 @@ public ITerminalNode LEN(int i) { public ITerminalNode SPC() { return GetToken(VBAParser.SPC, 0); } public ITerminalNode TO() { return GetToken(VBAParser.TO, 0); } public ITerminalNode INT() { return GetToken(VBAParser.INT, 0); } - public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } public ITerminalNode NOT() { return GetToken(VBAParser.NOT, 0); } public ITerminalNode LBOUND() { return GetToken(VBAParser.LBOUND, 0); } public ITerminalNode UBOUND() { return GetToken(VBAParser.UBOUND, 0); } @@ -13586,14 +13773,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KeywordContext keyword() { KeywordContext _localctx = new KeywordContext(_ctx, State); - EnterRule(_localctx, 236, RULE_keyword); + EnterRule(_localctx, 244, RULE_keyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2270; + State = 2289; _la = _input.La(1); - if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << AS) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) ) { + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); @@ -13610,6 +13797,49 @@ public KeywordContext keyword() { return _localctx; } + public partial class MarkerKeywordContext : ParserRuleContext { + public ITerminalNode AS() { return GetToken(VBAParser.AS, 0); } + public MarkerKeywordContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_markerKeyword; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterMarkerKeyword(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitMarkerKeyword(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitMarkerKeyword(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public MarkerKeywordContext markerKeyword() { + MarkerKeywordContext _localctx = new MarkerKeywordContext(_ctx, State); + EnterRule(_localctx, 246, RULE_markerKeyword); + try { + EnterOuterAlt(_localctx, 1); + { + State = 2291; Match(AS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + public partial class StatementKeywordContext : ParserRuleContext { public ITerminalNode CASE() { return GetToken(VBAParser.CASE, 0); } public ITerminalNode DEFOBJ() { return GetToken(VBAParser.DEFOBJ, 0); } @@ -13729,12 +13959,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StatementKeywordContext statementKeyword() { StatementKeywordContext _localctx = new StatementKeywordContext(_ctx, State); - EnterRule(_localctx, 238, RULE_statementKeyword); + EnterRule(_localctx, 248, RULE_statementKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2272; + State = 2293; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXIT) | (1L << OPTION) | (1L << ACCESS) | (1L << APPEND) | (1L << BINARY) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (CLOSE - 65)) | (1L << (CONST - 65)) | (1L << (DECLARE - 65)) | (1L << (DEFBOOL - 65)) | (1L << (DEFBYTE - 65)) | (1L << (DEFDATE - 65)) | (1L << (DEFDBL - 65)) | (1L << (DEFCUR - 65)) | (1L << (DEFINT - 65)) | (1L << (DEFLNG - 65)) | (1L << (DEFLNGLNG - 65)) | (1L << (DEFLNGPTR - 65)) | (1L << (DEFOBJ - 65)) | (1L << (DEFSNG - 65)) | (1L << (DEFSTR - 65)) | (1L << (DEFVAR - 65)) | (1L << (DIM - 65)) | (1L << (DO - 65)) | (1L << (ELSE - 65)) | (1L << (ELSEIF - 65)) | (1L << (END_SELECT - 65)) | (1L << (END_WITH - 65)) | (1L << (END - 65)) | (1L << (ENUM - 65)) | (1L << (ERASE - 65)) | (1L << (ERROR - 65)) | (1L << (EVENT - 65)) | (1L << (EXIT_DO - 65)) | (1L << (EXIT_FOR - 65)) | (1L << (EXIT_FUNCTION - 65)) | (1L << (EXIT_PROPERTY - 65)) | (1L << (EXIT_SUB - 65)) | (1L << (FRIEND - 65)) | (1L << (FOR - 65)) | (1L << (FUNCTION - 65)) | (1L << (GET - 65)) | (1L << (GLOBAL - 65)) | (1L << (GOSUB - 65)) | (1L << (GOTO - 65)) | (1L << (IF - 65)) | (1L << (IMPLEMENTS - 65)) | (1L << (INPUT - 65)) | (1L << (LOCK - 65)) | (1L << (LOOP - 65)) | (1L << (LET - 65)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (LINE_INPUT - 130)) | (1L << (LOCK_READ - 130)) | (1L << (LOCK_WRITE - 130)) | (1L << (LOCK_READ_WRITE - 130)) | (1L << (LSET - 130)) | (1L << (NEXT - 130)) | (1L << (ON - 130)) | (1L << (ON_ERROR - 130)) | (1L << (OPEN - 130)) | (1L << (OUTPUT - 130)) | (1L << (PRINT - 130)) | (1L << (PRIVATE - 130)) | (1L << (PUBLIC - 130)) | (1L << (PUT - 130)) | (1L << (RANDOM - 130)) | (1L << (RAISEEVENT - 130)) | (1L << (READ - 130)) | (1L << (READ_WRITE - 130)) | (1L << (REDIM - 130)) | (1L << (RESET - 130)) | (1L << (RESUME - 130)) | (1L << (RETURN - 130)) | (1L << (RSET - 130)) | (1L << (SEEK - 130)) | (1L << (SELECT - 130)) | (1L << (SET - 130)) | (1L << (SHARED - 130)) | (1L << (STATIC - 130)) | (1L << (STEP - 130)) | (1L << (STOP - 130)) | (1L << (SUB - 130)) | (1L << (TYPE - 130)) | (1L << (UNLOCK - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (WEND - 196)) | (1L << (WHILE - 196)) | (1L << (WIDTH - 196)) | (1L << (WITH - 196)) | (1L << (WRITE - 196)) | (1L << (ENDIF - 196)) | (1L << (RESUME_NEXT - 196)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13796,28 +14026,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 240, RULE_endOfLine); + EnterRule(_localctx, 250, RULE_endOfLine); int _la; try { int _alt; - State = 2293; + State = 2314; switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2275; + State = 2296; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2274; whiteSpace(); + State = 2295; whiteSpace(); } } - State = 2284; + State = 2305; switch (_input.La(1)) { case NEWLINE: { - State = 2278; + State = 2299; _errHandler.Sync(this); _alt = 1; do { @@ -13825,14 +14055,14 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2277; Match(NEWLINE); + State = 2298; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2280; + State = 2301; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,392,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -13841,22 +14071,22 @@ public EndOfLineContext endOfLine() { case COMMENT: case SINGLEQUOTE: { - State = 2282; comment(); + State = 2303; comment(); } break; case REMCOMMENT: { - State = 2283; remComment(); + State = 2304; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2287; + State = 2308; switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { case 1: { - State = 2286; whiteSpace(); + State = 2307; whiteSpace(); } break; } @@ -13866,15 +14096,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2290; + State = 2311; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2289; whiteSpace(); + State = 2310; whiteSpace(); } } - State = 2292; annotationList(); + State = 2313; annotationList(); } break; } @@ -13930,42 +14160,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 242, RULE_endOfStatement); + EnterRule(_localctx, 252, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2305; + State = 2326; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,400,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2303; + State = 2324; switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { case 1: { - State = 2295; endOfLine(); + State = 2316; endOfLine(); } break; case 2: { - State = 2297; + State = 2318; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2296; whiteSpace(); + State = 2317; whiteSpace(); } } - State = 2299; Match(COLON); - State = 2301; + State = 2320; Match(COLON); + State = 2322; switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2300; whiteSpace(); + State = 2321; whiteSpace(); } break; } @@ -13974,7 +14204,7 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2307; + State = 2328; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,400,_ctx); } @@ -14016,11 +14246,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 244, RULE_remComment); + EnterRule(_localctx, 254, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2308; Match(REMCOMMENT); + State = 2329; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -14060,12 +14290,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 246, RULE_comment); + EnterRule(_localctx, 256, RULE_comment); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2310; + State = 2331; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -14115,22 +14345,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationListContext annotationList() { AnnotationListContext _localctx = new AnnotationListContext(_ctx, State); - EnterRule(_localctx, 248, RULE_annotationList); + EnterRule(_localctx, 258, RULE_annotationList); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2312; Match(SINGLEQUOTE); - State = 2314; + State = 2333; Match(SINGLEQUOTE); + State = 2335; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2313; annotation(); + State = 2334; annotation(); } } - State = 2316; + State = 2337; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -14178,17 +14408,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationContext annotation() { AnnotationContext _localctx = new AnnotationContext(_ctx, State); - EnterRule(_localctx, 250, RULE_annotation); + EnterRule(_localctx, 260, RULE_annotation); try { EnterOuterAlt(_localctx, 1); { - State = 2318; Match(AT); - State = 2319; annotationName(); - State = 2321; + State = 2339; Match(AT); + State = 2340; annotationName(); + State = 2342; switch ( Interpreter.AdaptivePredict(_input,402,_ctx) ) { case 1: { - State = 2320; annotationArgList(); + State = 2341; annotationArgList(); } break; } @@ -14230,11 +14460,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationNameContext annotationName() { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, State); - EnterRule(_localctx, 252, RULE_annotationName); + EnterRule(_localctx, 262, RULE_annotationName); try { EnterOuterAlt(_localctx, 1); { - State = 2323; Match(IDENTIFIER); + State = 2344; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -14290,22 +14520,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgListContext annotationArgList() { AnnotationArgListContext _localctx = new AnnotationArgListContext(_ctx, State); - EnterRule(_localctx, 254, RULE_annotationArgList); + EnterRule(_localctx, 264, RULE_annotationArgList); int _la; try { int _alt; - State = 2386; + State = 2407; switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2325; whiteSpace(); - State = 2326; annotationArg(); - State = 2328; + State = 2346; whiteSpace(); + State = 2347; annotationArg(); + State = 2349; switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { case 1: { - State = 2327; whiteSpace(); + State = 2348; whiteSpace(); } break; } @@ -14315,9 +14545,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2330; whiteSpace(); - State = 2331; annotationArg(); - State = 2340; + State = 2351; whiteSpace(); + State = 2352; annotationArg(); + State = 2361; _errHandler.Sync(this); _alt = 1; do { @@ -14325,39 +14555,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2333; + State = 2354; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2332; whiteSpace(); + State = 2353; whiteSpace(); } } - State = 2335; Match(COMMA); - State = 2337; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 2356; Match(COMMA); + State = 2358; + switch ( Interpreter.AdaptivePredict(_input,405,_ctx) ) { + case 1: { - State = 2336; whiteSpace(); + State = 2357; whiteSpace(); } + break; } - - State = 2339; annotationArg(); + State = 2360; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2342; + State = 2363; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,406,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2345; + State = 2366; switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2344; whiteSpace(); + State = 2365; whiteSpace(); } break; } @@ -14367,38 +14597,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2348; + State = 2369; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2347; whiteSpace(); + State = 2368; whiteSpace(); } } - State = 2350; Match(LPAREN); - State = 2352; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 2371; Match(LPAREN); + State = 2373; + switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { + case 1: { - State = 2351; whiteSpace(); + State = 2372; whiteSpace(); } + break; } - - State = 2354; annotationArg(); - State = 2356; + State = 2375; annotationArg(); + State = 2377; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2355; whiteSpace(); + State = 2376; whiteSpace(); } } - State = 2358; Match(RPAREN); - State = 2360; + State = 2379; Match(RPAREN); + State = 2381; switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { case 1: { - State = 2359; whiteSpace(); + State = 2380; whiteSpace(); } break; } @@ -14408,17 +14638,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2363; + State = 2384; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2362; whiteSpace(); + State = 2383; whiteSpace(); } } - State = 2365; Match(LPAREN); - State = 2366; annotationArg(); - State = 2375; + State = 2386; Match(LPAREN); + State = 2387; annotationArg(); + State = 2396; _errHandler.Sync(this); _alt = 1; do { @@ -14426,48 +14656,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2368; + State = 2389; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2367; whiteSpace(); + State = 2388; whiteSpace(); } } - State = 2370; Match(COMMA); - State = 2372; - _la = _input.La(1); - if (_la==WS || _la==LINE_CONTINUATION) { + State = 2391; Match(COMMA); + State = 2393; + switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { + case 1: { - State = 2371; whiteSpace(); + State = 2392; whiteSpace(); } + break; } - - State = 2374; annotationArg(); + State = 2395; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2377; + State = 2398; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,415,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2380; + State = 2401; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2379; whiteSpace(); + State = 2400; whiteSpace(); } } - State = 2382; Match(RPAREN); - State = 2384; + State = 2403; Match(RPAREN); + State = 2405; switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { case 1: { - State = 2383; whiteSpace(); + State = 2404; whiteSpace(); } break; } @@ -14487,10 +14717,9 @@ public AnnotationArgListContext annotationArgList() { } public partial class AnnotationArgContext : ParserRuleContext { - public LiteralContext literal() { - return GetRuleContext(0); + public ValueStmtContext valueStmt() { + return GetRuleContext(0); } - public ITerminalNode IDENTIFIER() { return GetToken(VBAParser.IDENTIFIER, 0); } public AnnotationArgContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -14514,34 +14743,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); - EnterRule(_localctx, 256, RULE_annotationArg); + EnterRule(_localctx, 266, RULE_annotationArg); try { - State = 2390; - switch (_input.La(1)) { - case IDENTIFIER: - EnterOuterAlt(_localctx, 1); - { - State = 2388; Match(IDENTIFIER); - } - break; - case EMPTY: - case FALSE: - case NOTHING: - case NULL: - case TRUE: - case STRINGLITERAL: - case OCTLITERAL: - case HEXLITERAL: - case FLOATLITERAL: - case INTEGERLITERAL: - case DATELITERAL: - EnterOuterAlt(_localctx, 2); - { - State = 2389; literal(); - } - break; - default: - throw new NoViableAltException(this); + EnterOuterAlt(_localctx, 1); + { + State = 2409; valueStmt(0); } } catch (RecognitionException re) { @@ -14587,13 +14793,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 258, RULE_whiteSpace); + EnterRule(_localctx, 268, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2393; + State = 2412; _errHandler.Sync(this); _alt = 1; do { @@ -14601,7 +14807,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2392; + State = 2411; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -14613,9 +14819,9 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2395; + State = 2414; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,420,_ctx); + _alt = Interpreter.AdaptivePredict(_input,419,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } } @@ -14632,7 +14838,7 @@ public WhiteSpaceContext whiteSpace() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 72: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + case 76: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); } return true; } @@ -14666,7 +14872,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xFA\x960\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xFA\x973\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -14684,1119 +14890,1127 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "\tg\x4h\th\x4i\ti\x4j\tj\x4k\tk\x4l\tl\x4m\tm\x4n\tn\x4o\to\x4p\tp\x4"+ "q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\tz\x4"+ "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ - "\t\x82\x4\x83\t\x83\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x10B\n\x3\x3\x3\x3\x3"+ - "\x3\x3\x3\x3\x5\x3\x111\n\x3\x3\x3\x5\x3\x114\n\x3\x3\x3\x3\x3\x5\x3\x118"+ - "\n\x3\x3\x3\x3\x3\x5\x3\x11C\n\x3\x3\x3\x3\x3\x5\x3\x120\n\x3\x3\x3\x3"+ - "\x3\x5\x3\x124\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x12A\n\x4\x3\x4\x5\x4"+ - "\x12D\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x137"+ - "\n\x5\x5\x5\x139\n\x5\x3\x5\x3\x5\x6\x5\x13D\n\x5\r\x5\xE\x5\x13E\x3\x5"+ - "\x3\x5\x3\x6\x3\x6\a\x6\x145\n\x6\f\x6\xE\x6\x148\v\x6\x3\x6\x3\x6\a\x6"+ - "\x14C\n\x6\f\x6\xE\x6\x14F\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x154\n\x6\x3\x6"+ - "\x3\x6\x3\a\x3\a\x3\a\x6\a\x15B\n\a\r\a\xE\a\x15C\x3\b\x3\b\x3\b\x3\b"+ - "\a\b\x163\n\b\f\b\xE\b\x166\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x3\t\x5\t\x174\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ - "\n\x3\n\x5\n\x17E\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x184\n\v\f\v\xE\v\x187\v"+ - "\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x190\n\f\x3\r\x3\r\x3\r\x3"+ - "\r\x5\r\x196\n\r\x3\r\x3\r\x5\r\x19A\n\r\x3\r\x3\r\x5\r\x19E\n\r\x3\r"+ - "\x3\r\x5\r\x1A2\n\r\x3\r\a\r\x1A5\n\r\f\r\xE\r\x1A8\v\r\x3\xE\x3\xE\x3"+ - "\xE\x3\xE\a\xE\x1AE\n\xE\f\xE\xE\xE\x1B1\v\xE\x3\xE\x3\xE\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF"+ - "\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3"+ - "\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x3\xF\x5\xF\x1E2\n\xF\x3"+ - "\x10\x3\x10\x3\x10\x3\x10\x5\x10\x1E8\n\x10\x3\x10\x3\x10\x5\x10\x1EC"+ - "\n\x10\x3\x10\a\x10\x1EF\n\x10\f\x10\xE\x10\x1F2\v\x10\x5\x10\x1F4\n\x10"+ - "\x3\x11\x3\x11\x3\x11\x5\x11\x1F9\n\x11\x3\x11\x3\x11\x3\x11\x3\x11\x5"+ - "\x11\x1FF\n\x11\x3\x11\x3\x11\x5\x11\x203\n\x11\x3\x11\a\x11\x206\n\x11"+ - "\f\x11\xE\x11\x209\v\x11\x3\x12\x3\x12\x5\x12\x20D\n\x12\x3\x12\x3\x12"+ - "\x3\x12\x5\x12\x212\n\x12\x3\x12\x5\x12\x215\n\x12\x3\x12\x3\x12\x5\x12"+ - "\x219\n\x12\x3\x12\x3\x12\x3\x13\x3\x13\x3\x13\x5\x13\x220\n\x13\x3\x13"+ - "\x3\x13\x3\x13\x3\x13\x5\x13\x226\n\x13\x3\x13\x3\x13\x5\x13\x22A\n\x13"+ - "\x3\x13\x5\x13\x22D\n\x13\x3\x13\x3\x13\x3\x13\x5\x13\x232\n\x13\x3\x13"+ - "\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x3\x13\x5\x13\x23D\n"+ - "\x13\x3\x13\x5\x13\x240\n\x13\x3\x13\x5\x13\x243\n\x13\x3\x13\x3\x13\x3"+ - "\x13\x5\x13\x248\n\x13\x3\x14\x3\x14\x3\x14\x3\x14\x5\x14\x24E\n\x14\x3"+ - "\x14\x3\x14\x5\x14\x252\n\x14\x3\x14\a\x14\x255\n\x14\f\x14\xE\x14\x258"+ - "\v\x14\x3\x15\x3\x15\x3\x15\x5\x15\x25D\n\x15\x3\x15\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x268\n\x15\x3\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x15\x5\x15\x26F\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3"+ - "\x15\x3\x15\x5\x15\x277\n\x15\x3\x16\x3\x16\x3\x16\x5\x16\x27C\n\x16\x3"+ - "\x16\x3\x16\x3\x16\x3\x16\x3\x16\a\x16\x283\n\x16\f\x16\xE\x16\x286\v"+ - "\x16\x3\x16\x3\x16\x3\x17\x3\x17\x5\x17\x28C\n\x17\x3\x17\x3\x17\x5\x17"+ - "\x290\n\x17\x3\x17\x5\x17\x293\n\x17\x3\x17\x3\x17\x3\x18\x3\x18\x3\x18"+ - "\x3\x18\x5\x18\x29B\n\x18\x3\x18\x3\x18\x5\x18\x29F\n\x18\x3\x18\a\x18"+ - "\x2A2\n\x18\f\x18\xE\x18\x2A5\v\x18\x3\x19\x3\x19\x3\x19\x3\x19\x3\x1A"+ - "\x3\x1A\x3\x1A\x5\x1A\x2AE\n\x1A\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2B4"+ - "\n\x1A\x3\x1A\x3\x1A\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C"+ - "\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2C5\n\x1C\x3\x1C\x3"+ - "\x1C\x3\x1C\x3\x1C\x5\x1C\x2CB\n\x1C\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D"+ - "\x2D1\n\x1D\x3\x1D\x3\x1D\x5\x1D\x2D5\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D"+ - "\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2E1\n\x1D\x3\x1D\x3"+ - "\x1D\x5\x1D\x2E5\n\x1D\x3\x1D\x3\x1D\x3\x1D\x3\x1D\x5\x1D\x2EB\n\x1D\x3"+ - "\x1E\x3\x1E\x3\x1E\x5\x1E\x2F0\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2F4\n\x1E\x3"+ - "\x1E\x3\x1E\x5\x1E\x2F8\n\x1E\x3\x1E\x3\x1E\x5\x1E\x2FC\n\x1E\x3\x1E\x5"+ - "\x1E\x2FF\n\x1E\x3\x1E\x5\x1E\x302\n\x1E\x3\x1E\x5\x1E\x305\n\x1E\x3\x1E"+ - "\x5\x1E\x308\n\x1E\x3\x1E\x3\x1E\x5\x1E\x30C\n\x1E\x3\x1E\x3\x1E\x3\x1F"+ - "\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x314\n\x1F\x3\x1F\x3\x1F\x5\x1F\x318\n\x1F"+ - "\x3\x1F\x5\x1F\x31B\n\x1F\x3\x1F\x5\x1F\x31E\n\x1F\x3\x1F\x3\x1F\x5\x1F"+ - "\x322\n\x1F\x3\x1F\x3\x1F\x3 \x3 \x3 \x3 \x3!\x3!\x3!\x3!\x3\"\x3\"\x3"+ - "\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x3\"\x5\"\x33A\n\"\x3\"\x3"+ - "\"\a\"\x33E\n\"\f\"\xE\"\x341\v\"\x3\"\x5\"\x344\n\"\x3\"\x3\"\x5\"\x348"+ - "\n\"\x3#\x3#\x3#\x3#\x3#\x3#\x3#\x5#\x351\n#\x3$\x3$\x3%\x3%\x3%\x3%\x3"+ - "%\x3%\x3%\x5%\x35C\n%\x3&\x3&\x3&\x5&\x361\n&\x3\'\x3\'\x3\'\x3\'\x3("+ - "\x3(\x3(\x3(\x5(\x36B\n(\x3(\x3(\x5(\x36F\n(\x3(\x6(\x372\n(\r(\xE(\x373"+ - "\x3)\x3)\x5)\x378\n)\x3)\x3)\x5)\x37C\n)\x3)\x3)\x5)\x380\n)\x3)\x3)\x3"+ - "*\x3*\x3*\x3*\x5*\x388\n*\x3*\x3*\x5*\x38C\n*\x3*\x3*\x3+\x3+\x3+\x3+"+ - "\x5+\x394\n+\x3+\x3+\x5+\x398\n+\x3+\x3+\x3+\x3+\x3+\x3+\x5+\x3A0\n+\x5"+ - "+\x3A2\n+\x3,\x3,\x3,\x3,\x5,\x3A8\n,\x3,\x3,\x5,\x3AC\n,\x3,\x3,\x3-"+ - "\x3-\x5-\x3B2\n-\x3-\x3-\x5-\x3B6\n-\x3-\x3-\x5-\x3BA\n-\x3-\x3-\x3.\x3"+ - ".\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3C8\n.\x3/\x3/\x3/\x3/\x3/\x3/"+ - "\x3/\x3/\x5/\x3D2\n/\x3/\x3/\x5/\x3D6\n/\x3/\a/\x3D9\n/\f/\xE/\x3DC\v"+ - "/\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x3\x30\x5\x30\x3E6"+ - "\n\x30\x3\x30\x3\x30\x5\x30\x3EA\n\x30\x3\x30\a\x30\x3ED\n\x30\f\x30\xE"+ - "\x30\x3F0\v\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31"+ - "\x3\x31\x3\x31\x3\x31\x3\x31\x5\x31\x3FE\n\x31\x3\x31\x3\x31\x3\x31\x5"+ - "\x31\x403\n\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x5\x31"+ - "\x40C\n\x31\x3\x31\x3\x31\x5\x31\x410\n\x31\x3\x31\x3\x31\x5\x31\x414"+ - "\n\x31\x3\x32\x3\x32\x5\x32\x418\n\x32\x3\x32\x3\x32\x5\x32\x41C\n\x32"+ - "\x3\x32\x5\x32\x41F\n\x32\a\x32\x421\n\x32\f\x32\xE\x32\x424\v\x32\x3"+ - "\x32\x5\x32\x427\n\x32\x3\x32\x5\x32\x42A\n\x32\x3\x32\x3\x32\x5\x32\x42E"+ - "\n\x32\x3\x32\x5\x32\x431\n\x32\x6\x32\x433\n\x32\r\x32\xE\x32\x434\x5"+ - "\x32\x437\n\x32\x3\x33\x3\x33\x3\x33\x5\x33\x43C\n\x33\x3\x33\x3\x33\x5"+ - "\x33\x440\n\x33\x3\x33\x3\x33\x5\x33\x444\n\x33\x3\x33\x3\x33\x5\x33\x448"+ - "\n\x33\x5\x33\x44A\n\x33\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x450\n\x34"+ - "\x3\x34\x3\x34\x5\x34\x454\n\x34\x3\x34\x5\x34\x457\n\x34\x3\x35\x3\x35"+ - "\x3\x35\x5\x35\x45C\n\x35\x3\x35\x3\x35\x5\x35\x460\n\x35\x3\x35\x3\x35"+ - "\x3\x35\x3\x35\x5\x35\x466\n\x35\x3\x35\x5\x35\x469\n\x35\x3\x35\x5\x35"+ - "\x46C\n\x35\x3\x35\x3\x35\x3\x35\x5\x35\x471\n\x35\x3\x35\x3\x35\x5\x35"+ - "\x475\n\x35\x3\x35\x3\x35\x3\x36\x3\x36\x3\x36\x5\x36\x47C\n\x36\x3\x36"+ - "\x3\x36\x5\x36\x480\n\x36\x3\x36\x3\x36\x3\x36\x3\x36\x5\x36\x486\n\x36"+ - "\x3\x36\x5\x36\x489\n\x36\x3\x36\x3\x36\x5\x36\x48D\n\x36\x3\x36\x3\x36"+ - "\x3\x37\x3\x37\x3\x37\x5\x37\x494\n\x37\x3\x37\x3\x37\x5\x37\x498\n\x37"+ - "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x49E\n\x37\x3\x37\x5\x37\x4A1\n\x37"+ - "\x3\x37\x3\x37\x5\x37\x4A5\n\x37\x3\x37\x3\x37\x3\x38\x3\x38\x3\x38\x3"+ - "\x38\x5\x38\x4AD\n\x38\x3\x38\x3\x38\x5\x38\x4B1\n\x38\x3\x38\x5\x38\x4B4"+ - "\n\x38\x3\x38\x5\x38\x4B7\n\x38\x3\x38\x3\x38\x5\x38\x4BB\n\x38\x3\x38"+ - "\x3\x38\x3\x39\x3\x39\x3\x39\x3\x39\x5\x39\x4C3\n\x39\x3\x39\x3\x39\x5"+ - "\x39\x4C7\n\x39\x3\x39\x3\x39\x5\x39\x4CB\n\x39\x5\x39\x4CD\n\x39\x3\x39"+ - "\x5\x39\x4D0\n\x39\x3:\x3:\x3:\x3:\x5:\x4D6\n:\x3:\x3:\x5:\x4DA\n:\x3"+ - ":\x3:\x5:\x4DE\n:\x3:\a:\x4E1\n:\f:\xE:\x4E4\v:\x3;\x3;\x5;\x4E8\n;\x3"+ - ";\x3;\x5;\x4EC\n;\x3;\x3;\x5;\x4F0\n;\x3;\x3;\x3;\x3;\x5;\x4F6\n;\x3<"+ - "\x3<\x3=\x3=\x3=\x3=\x5=\x4FE\n=\x5=\x500\n=\x3>\x3>\x3?\x3?\x3?\x3?\x5"+ - "?\x508\n?\x3?\x3?\x5?\x50C\n?\x3?\x3?\x3@\x3@\x3@\x3@\x5@\x514\n@\x3@"+ - "\x3@\x5@\x518\n@\x3@\x3@\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3\x41\x3"+ - "\x41\a\x41\x523\n\x41\f\x41\xE\x41\x526\v\x41\x3\x41\x3\x41\x3\x42\x3"+ - "\x42\x5\x42\x52C\n\x42\x3\x42\x3\x42\x5\x42\x530\n\x42\x3\x42\x3\x42\x3"+ - "\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x53B\n\x42\x3\x43"+ - "\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x542\n\x43\x3\x44\x3\x44\x3\x44\x5"+ - "\x44\x547\n\x44\x3\x44\x3\x44\x5\x44\x54B\n\x44\x3\x44\a\x44\x54E\n\x44"+ - "\f\x44\xE\x44\x551\v\x44\x5\x44\x553\n\x44\x3\x45\x3\x45\x3\x45\x3\x45"+ - "\x5\x45\x559\n\x45\x3\x45\x3\x45\x5\x45\x55D\n\x45\x3\x45\x3\x45\x3\x46"+ - "\x3\x46\x3\x46\x5\x46\x564\n\x46\x3\x46\x3\x46\x5\x46\x568\n\x46\x3\x46"+ - "\x3\x46\x5\x46\x56C\n\x46\x3\x46\x3\x46\x5\x46\x570\n\x46\x3\x46\x5\x46"+ - "\x573\n\x46\x3\x46\x3\x46\x5\x46\x577\n\x46\x3\x46\x3\x46\x3G\x3G\x3G"+ - "\x5G\x57E\nG\x3G\x3G\x3G\x3G\x3G\aG\x585\nG\fG\xEG\x588\vG\x3G\x3G\x3"+ - "H\x3H\x5H\x58E\nH\x3H\x3H\x5H\x592\nH\x3H\x5H\x595\nH\x3H\x5H\x598\nH"+ - "\x3H\x5H\x59B\nH\x3H\x3H\x3H\x5H\x5A0\nH\x3H\x3H\x3I\x3I\x3I\x3I\x5I\x5A8"+ - "\nI\x3I\x3I\x5I\x5AC\nI\x3I\x3I\x3I\x3I\x3I\x3I\x5I\x5B4\nI\x5I\x5B6\n"+ - "I\x3J\x3J\x3J\x5J\x5BB\nJ\x3J\x3J\x3J\x5J\x5C0\nJ\x3J\x3J\x3J\x5J\x5C5"+ - "\nJ\x3J\x3J\x5J\x5C9\nJ\x3J\x3J\x3J\x3J\x5J\x5CF\nJ\x3J\x3J\x3J\x5J\x5D4"+ - "\nJ\x3J\x3J\x3J\x3J\x3J\x5J\x5DB\nJ\x3J\x3J\x5J\x5DF\nJ\x3J\x3J\x3J\x3"+ - "J\x5J\x5E5\nJ\x3J\x3J\x5J\x5E9\nJ\x3J\x3J\x5J\x5ED\nJ\x3J\x3J\x3J\x5J"+ - "\x5F2\nJ\x3J\x3J\x5J\x5F6\nJ\x3J\x3J\x3J\x5J\x5FB\nJ\x3J\x3J\x5J\x5FF"+ - "\nJ\x3J\x3J\x3J\x5J\x604\nJ\x3J\x3J\x5J\x608\nJ\x3J\x3J\x3J\x5J\x60D\n"+ - "J\x3J\x3J\x5J\x611\nJ\x3J\x3J\x3J\x5J\x616\nJ\x3J\x3J\x5J\x61A\nJ\x3J"+ - "\x3J\x3J\x5J\x61F\nJ\x3J\x3J\x5J\x623\nJ\x3J\x3J\x3J\x5J\x628\nJ\x3J\x3"+ - "J\x5J\x62C\nJ\x3J\x3J\x3J\x5J\x631\nJ\x3J\x3J\x5J\x635\nJ\x3J\x3J\x3J"+ - "\x5J\x63A\nJ\x3J\x3J\x5J\x63E\nJ\x3J\x3J\x3J\x5J\x643\nJ\x3J\x3J\x5J\x647"+ - "\nJ\x3J\x3J\x3J\x5J\x64C\nJ\x3J\x3J\x5J\x650\nJ\x3J\aJ\x653\nJ\fJ\xEJ"+ - "\x656\vJ\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x3K\x5K\x660\nK\x3L\x3L\x3L\x5L\x665"+ - "\nL\x3L\x3L\x3L\x5L\x66A\nL\x3L\x3L\x3M\x3M\x5M\x670\nM\x3M\x3M\x5M\x674"+ - "\nM\x3M\aM\x677\nM\fM\xEM\x67A\vM\x3N\x3N\x5N\x67E\nN\x3N\x3N\x5N\x682"+ - "\nN\x3N\x3N\x5N\x686\nN\x5N\x688\nN\x3N\x3N\x5N\x68C\nN\x5N\x68E\nN\x3"+ - "N\x5N\x691\nN\x3N\x3N\x3N\x5N\x696\nN\x3O\x3O\x3O\x3O\x3O\x5O\x69D\nO"+ - "\x3O\x3O\x3P\x3P\x3P\x3P\x5P\x6A5\nP\x3P\x3P\x5P\x6A9\nP\x3P\x3P\x3Q\x3"+ - "Q\x3Q\x3Q\x3Q\x5Q\x6B2\nQ\x3Q\x3Q\x3R\x3R\x3S\x3S\x3S\x3S\x5S\x6BC\nS"+ - "\x3S\x3S\x5S\x6C0\nS\x3S\x5S\x6C3\nS\x3T\x5T\x6C6\nT\x3T\x3T\x3U\x3U\x3"+ - "U\x3U\x3V\x5V\x6CF\nV\x3V\x3V\x3V\x5V\x6D4\nV\x3V\x5V\x6D7\nV\x3V\x3V"+ - "\x5V\x6DB\nV\x3V\x3V\x5V\x6DF\nV\x3V\x3V\x5V\x6E3\nV\x3V\x5V\x6E6\nV\x3"+ - "V\x3V\x3V\x3V\aV\x6EC\nV\fV\xEV\x6EF\vV\x3V\x3V\x5V\x6F3\nV\x3V\x5V\x6F6"+ - "\nV\x3V\x3V\x5V\x6FA\nV\x3V\x3V\x5V\x6FE\nV\x3V\x3V\x5V\x702\nV\x3V\x5"+ - "V\x705\nV\x3V\x3V\x3V\x3V\aV\x70B\nV\fV\xEV\x70E\vV\x5V\x710\nV\x3W\x3"+ - "W\x5W\x714\nW\x3X\x5X\x717\nX\x3X\x5X\x71A\nX\x3X\x3X\x5X\x71E\nX\x3X"+ - "\x3X\x5X\x722\nX\x3X\x3X\x3X\x5X\x727\nX\x3X\x5X\x72A\nX\x3X\x5X\x72D"+ - "\nX\x3X\x5X\x730\nX\x3X\x3X\x3X\x3X\aX\x736\nX\fX\xEX\x739\vX\x3Y\x3Y"+ - "\x3Y\x3Y\x5Y\x73F\nY\x3Y\x5Y\x742\nY\x3Y\x3Y\x3Y\x3Y\aY\x748\nY\fY\xE"+ - "Y\x74B\vY\x3Z\x3Z\x3Z\x3Z\x5Z\x751\nZ\x3[\x3[\x5[\x755\n[\x3[\x5[\x758"+ - "\n[\x3[\x5[\x75B\n[\x3[\x5[\x75E\n[\x3[\x3[\x3[\x3[\a[\x764\n[\f[\xE["+ - "\x767\v[\x3\\\x3\\\x5\\\x76B\n\\\x3\\\x5\\\x76E\n\\\x3\\\x5\\\x771\n\\"+ - "\x3\\\x3\\\x5\\\x775\n\\\x3\\\x3\\\x5\\\x779\n\\\x5\\\x77B\n\\\x3\\\x3"+ - "\\\x5\\\x77F\n\\\x3\\\x5\\\x782\n\\\x3\\\x5\\\x785\n\\\x3\\\x3\\\x3\\"+ - "\x3\\\a\\\x78B\n\\\f\\\xE\\\x78E\v\\\x3]\x3]\x5]\x792\n]\x3]\x5]\x795"+ - "\n]\x3]\x5]\x798\n]\x3]\x5]\x79B\n]\x3]\x3]\x3]\x3]\a]\x7A1\n]\f]\xE]"+ - "\x7A4\v]\x3^\x3^\x5^\x7A8\n^\x3^\x5^\x7AB\n^\x3^\x5^\x7AE\n^\x3^\x3^\x5"+ - "^\x7B2\n^\x3^\x3^\x5^\x7B6\n^\x5^\x7B8\n^\x3^\x3^\x5^\x7BC\n^\x3^\x5^"+ - "\x7BF\n^\x3^\x5^\x7C2\n^\x3^\x3^\x3^\x3^\a^\x7C8\n^\f^\xE^\x7CB\v^\x3"+ - "_\x3_\x5_\x7CF\n_\x3_\x3_\x5_\x7D3\n_\x6_\x7D5\n_\r_\xE_\x7D6\x3_\x5_"+ - "\x7DA\n_\x3_\x5_\x7DD\n_\x3_\x5_\x7E0\n_\x3_\x3_\x3_\x3_\a_\x7E6\n_\f"+ - "_\xE_\x7E9\v_\x3`\x3`\x5`\x7ED\n`\x3`\x3`\x5`\x7F1\n`\x3\x61\x5\x61\x7F4"+ - "\n\x61\x3\x61\x3\x61\x3\x62\x5\x62\x7F9\n\x62\x3\x62\x5\x62\x7FC\n\x62"+ - "\x3\x62\x3\x62\x5\x62\x800\n\x62\a\x62\x802\n\x62\f\x62\xE\x62\x805\v"+ - "\x62\x3\x62\x3\x62\x5\x62\x809\n\x62\x3\x62\x3\x62\x5\x62\x80D\n\x62\x3"+ - "\x62\x5\x62\x810\n\x62\a\x62\x812\n\x62\f\x62\xE\x62\x815\v\x62\x3\x63"+ - "\x5\x63\x818\n\x63\x3\x63\x3\x63\x5\x63\x81C\n\x63\x3\x63\x5\x63\x81F"+ - "\n\x63\x3\x63\x3\x63\x3\x64\x3\x64\x5\x64\x825\n\x64\x3\x64\x3\x64\x5"+ - "\x64\x829\n\x64\x3\x65\x3\x65\x5\x65\x82D\n\x65\x3\x65\x3\x65\x5\x65\x831"+ - "\n\x65\x3\x65\x3\x65\x5\x65\x835\n\x65\x3\x65\a\x65\x838\n\x65\f\x65\xE"+ - "\x65\x83B\v\x65\x5\x65\x83D\n\x65\x3\x65\x5\x65\x840\n\x65\x3\x65\x3\x65"+ - "\x3\x66\x3\x66\x5\x66\x846\n\x66\x3\x66\x3\x66\x5\x66\x84A\n\x66\x3\x66"+ - "\x3\x66\x5\x66\x84E\n\x66\x3\x66\x3\x66\x5\x66\x852\n\x66\x3\x66\x5\x66"+ - "\x855\n\x66\x3\x66\x3\x66\x5\x66\x859\n\x66\x3\x66\x5\x66\x85C\n\x66\x3"+ - "\x66\x5\x66\x85F\n\x66\x3\x66\x5\x66\x862\n\x66\x3\x66\x5\x66\x865\n\x66"+ - "\x3\x66\x5\x66\x868\n\x66\x3g\x3g\x5g\x86C\ng\x3g\x3g\x3h\x3h\x5h\x872"+ - "\nh\x3h\x3h\x5h\x876\nh\x3h\ah\x879\nh\fh\xEh\x87C\vh\x3i\x3i\x3i\x3i"+ - "\x3i\x5i\x883\ni\x3i\x3i\x3j\x3j\x5j\x889\nj\x3k\x3k\x5k\x88D\nk\x3l\x3"+ - "l\x5l\x891\nl\x3l\x3l\x5l\x895\nl\x3l\x3l\x5l\x899\nl\x3l\x5l\x89C\nl"+ - "\x3m\x3m\x3n\x3n\x3o\x3o\x3o\ao\x8A5\no\fo\xEo\x8A8\vo\x3p\x3p\x5p\x8AC"+ - "\np\x3p\x3p\x5p\x8B0\np\x3q\x3q\x5q\x8B4\nq\x3q\x3q\x5q\x8B8\nq\x3q\x5"+ - "q\x8BB\nq\x3r\x3r\x5r\x8BF\nr\x3r\x3r\x3s\x3s\x3s\x3s\x3s\x3s\x3s\x3s"+ - "\x5s\x8CB\ns\x3t\x3t\x3u\x3u\x5u\x8D1\nu\x3u\x5u\x8D4\nu\x3u\x3u\x5u\x8D8"+ - "\nu\x3u\x5u\x8DB\nu\x3v\x3v\x3w\x3w\x3x\x3x\x3y\x3y\x3z\x5z\x8E6\nz\x3"+ - "z\x6z\x8E9\nz\rz\xEz\x8EA\x3z\x3z\x5z\x8EF\nz\x3z\x5z\x8F2\nz\x3z\x5z"+ - "\x8F5\nz\x3z\x5z\x8F8\nz\x3{\x3{\x5{\x8FC\n{\x3{\x3{\x5{\x900\n{\a{\x902"+ - "\n{\f{\xE{\x905\v{\x3|\x3|\x3}\x3}\x3~\x3~\x6~\x90D\n~\r~\xE~\x90E\x3"+ - "\x7F\x3\x7F\x3\x7F\x5\x7F\x914\n\x7F\x3\x80\x3\x80\x3\x81\x3\x81\x3\x81"+ - "\x5\x81\x91B\n\x81\x3\x81\x3\x81\x3\x81\x5\x81\x920\n\x81\x3\x81\x3\x81"+ - "\x5\x81\x924\n\x81\x3\x81\x6\x81\x927\n\x81\r\x81\xE\x81\x928\x3\x81\x5"+ - "\x81\x92C\n\x81\x3\x81\x5\x81\x92F\n\x81\x3\x81\x3\x81\x5\x81\x933\n\x81"+ - "\x3\x81\x3\x81\x5\x81\x937\n\x81\x3\x81\x3\x81\x5\x81\x93B\n\x81\x3\x81"+ - "\x5\x81\x93E\n\x81\x3\x81\x3\x81\x3\x81\x5\x81\x943\n\x81\x3\x81\x3\x81"+ - "\x5\x81\x947\n\x81\x3\x81\x6\x81\x94A\n\x81\r\x81\xE\x81\x94B\x3\x81\x5"+ - "\x81\x94F\n\x81\x3\x81\x3\x81\x5\x81\x953\n\x81\x5\x81\x955\n\x81\x3\x82"+ - "\x3\x82\x5\x82\x959\n\x82\x3\x83\x6\x83\x95C\n\x83\r\x83\xE\x83\x95D\x3"+ - "\x83\x2\x2\x3\x92\x84\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12"+ - "\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2"+ - ",\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44"+ - "\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2"+ - "\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2"+ - "\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2"+ - "\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2"+ - "\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2"+ - "\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2"+ - "\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2"+ - "\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2"+ - "\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104\x2\x2\x1A\x5\x2;;\x45\x45\xBC"+ + "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ + "\x4\x88\t\x88\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x115\n\x3\x3\x3\x3\x3\x3\x3"+ + "\x3\x3\x5\x3\x11B\n\x3\x3\x3\x5\x3\x11E\n\x3\x3\x3\x3\x3\x5\x3\x122\n"+ + "\x3\x3\x3\x3\x3\x5\x3\x126\n\x3\x3\x3\x3\x3\x5\x3\x12A\n\x3\x3\x3\x3\x3"+ + "\x5\x3\x12E\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x134\n\x4\x3\x4\x5\x4\x137"+ + "\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x141\n\x5"+ + "\x5\x5\x143\n\x5\x3\x5\x3\x5\x6\x5\x147\n\x5\r\x5\xE\x5\x148\x3\x5\x3"+ + "\x5\x3\x6\x3\x6\a\x6\x14F\n\x6\f\x6\xE\x6\x152\v\x6\x3\x6\x3\x6\a\x6\x156"+ + "\n\x6\f\x6\xE\x6\x159\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x15E\n\x6\x3\x6\x3"+ + "\x6\x3\a\x3\a\x3\a\x6\a\x165\n\a\r\a\xE\a\x166\x3\b\x3\b\x3\b\x3\b\a\b"+ + "\x16D\n\b\f\b\xE\b\x170\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x5\t\x17E\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ + "\n\x5\n\x188\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x18E\n\v\f\v\xE\v\x191\v\v\x3"+ + "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x19A\n\f\x3\r\x3\r\x3\r\x3\r\x5"+ + "\r\x1A0\n\r\x3\r\x3\r\x5\r\x1A4\n\r\x3\r\x3\r\x5\r\x1A8\n\r\x3\r\x3\r"+ + "\x5\r\x1AC\n\r\x3\r\a\r\x1AF\n\r\f\r\xE\r\x1B2\v\r\x3\xE\x3\xE\x3\xF\x3"+ + "\xF\x3\x10\x3\x10\x3\x10\x3\x10\a\x10\x1BC\n\x10\f\x10\xE\x10\x1BF\v\x10"+ + "\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x5\x11\x1F0\n\x11\x3"+ + "\x12\x3\x12\x3\x12\x3\x12\x5\x12\x1F6\n\x12\x3\x12\x3\x12\x5\x12\x1FA"+ + "\n\x12\x3\x12\a\x12\x1FD\n\x12\f\x12\xE\x12\x200\v\x12\x5\x12\x202\n\x12"+ + "\x3\x13\x3\x13\x3\x13\x5\x13\x207\n\x13\x3\x13\x3\x13\x3\x13\x3\x13\x5"+ + "\x13\x20D\n\x13\x3\x13\x3\x13\x5\x13\x211\n\x13\x3\x13\a\x13\x214\n\x13"+ + "\f\x13\xE\x13\x217\v\x13\x3\x14\x3\x14\x5\x14\x21B\n\x14\x3\x14\x3\x14"+ + "\x3\x14\x5\x14\x220\n\x14\x3\x14\x5\x14\x223\n\x14\x3\x14\x3\x14\x5\x14"+ + "\x227\n\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x5\x15\x22E\n\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x5\x15\x234\n\x15\x3\x15\x3\x15\x5\x15\x238\n\x15"+ + "\x3\x15\x5\x15\x23B\n\x15\x3\x15\x3\x15\x3\x15\x5\x15\x240\n\x15\x3\x15"+ + "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x24B\n"+ + "\x15\x3\x15\x5\x15\x24E\n\x15\x3\x15\x5\x15\x251\n\x15\x3\x15\x3\x15\x3"+ + "\x15\x5\x15\x256\n\x15\x3\x16\x3\x16\x3\x16\x3\x16\x5\x16\x25C\n\x16\x3"+ + "\x16\x3\x16\x5\x16\x260\n\x16\x3\x16\a\x16\x263\n\x16\f\x16\xE\x16\x266"+ + "\v\x16\x3\x17\x3\x17\x3\x17\x5\x17\x26B\n\x17\x3\x17\x3\x17\x3\x17\x3"+ + "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x276\n\x17\x3\x17\x3\x17"+ + "\x3\x17\x3\x17\x3\x17\x5\x17\x27D\n\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3"+ + "\x17\x3\x17\x5\x17\x285\n\x17\x3\x18\x3\x18\x3\x18\x5\x18\x28A\n\x18\x3"+ + "\x18\x3\x18\x3\x18\x3\x18\x3\x18\a\x18\x291\n\x18\f\x18\xE\x18\x294\v"+ + "\x18\x3\x18\x3\x18\x3\x19\x3\x19\x5\x19\x29A\n\x19\x3\x19\x3\x19\x5\x19"+ + "\x29E\n\x19\x3\x19\x5\x19\x2A1\n\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A"+ + "\x3\x1A\x5\x1A\x2A9\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2AD\n\x1A\x3\x1A\a\x1A"+ + "\x2B0\n\x1A\f\x1A\xE\x1A\x2B3\v\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C"+ + "\x3\x1C\x3\x1C\x5\x1C\x2BC\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2C2"+ + "\n\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E"+ + "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2D3\n\x1E\x3\x1E\x3"+ + "\x1E\x3\x1E\x3\x1E\x5\x1E\x2D9\n\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F"+ + "\x2DF\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E3\n\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F"+ + "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x2EF\n\x1F\x3\x1F\x3"+ + "\x1F\x5\x1F\x2F3\n\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x2F9\n\x1F\x3"+ + " \x3 \x3 \x5 \x2FE\n \x3 \x3 \x5 \x302\n \x3 \x3 \x5 \x306\n \x3 \x3 "+ + "\x5 \x30A\n \x3 \x5 \x30D\n \x3 \x5 \x310\n \x3 \x5 \x313\n \x3 \x5 \x316"+ + "\n \x3 \x3 \x5 \x31A\n \x3 \x3 \x3!\x3!\x3\"\x3\"\x3\"\x3\"\x5\"\x324"+ + "\n\"\x3\"\x3\"\x5\"\x328\n\"\x3\"\x5\"\x32B\n\"\x3\"\x5\"\x32E\n\"\x3"+ + "\"\x3\"\x5\"\x332\n\"\x3\"\x3\"\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3%\x3"+ + "%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5%\x34A\n%\x3%\x3%\a%\x34E"+ + "\n%\f%\xE%\x351\v%\x3%\x5%\x354\n%\x3%\x3%\x5%\x358\n%\x3&\x3&\x3&\x3"+ + "&\x3&\x3&\x3&\x5&\x361\n&\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x5(\x36C"+ + "\n(\x3)\x3)\x3)\x5)\x371\n)\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x5+\x37B\n"+ + "+\x3+\x3+\x5+\x37F\n+\x3+\x6+\x382\n+\r+\xE+\x383\x3,\x3,\x5,\x388\n,"+ + "\x3,\x3,\x5,\x38C\n,\x3,\x3,\x5,\x390\n,\x3,\x3,\x3-\x3-\x3-\x3-\x5-\x398"+ + "\n-\x3-\x3-\x5-\x39C\n-\x3-\x3-\x3.\x3.\x3.\x3.\x5.\x3A4\n.\x3.\x3.\x5"+ + ".\x3A8\n.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3B0\n.\x5.\x3B2\n.\x3/\x3/\x3/"+ + "\x3/\x5/\x3B8\n/\x3/\x3/\x5/\x3BC\n/\x3/\x3/\x3\x30\x3\x30\x5\x30\x3C2"+ + "\n\x30\x3\x30\x3\x30\x5\x30\x3C6\n\x30\x3\x30\x3\x30\x5\x30\x3CA\n\x30"+ + "\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31"+ + "\x3\x31\x3\x31\x5\x31\x3D8\n\x31\x3\x32\x3\x32\x3\x32\x3\x32\x3\x32\x3"+ + "\x32\x3\x32\x3\x32\x5\x32\x3E2\n\x32\x3\x32\x3\x32\x5\x32\x3E6\n\x32\x3"+ + "\x32\a\x32\x3E9\n\x32\f\x32\xE\x32\x3EC\v\x32\x3\x33\x3\x33\x3\x33\x3"+ + "\x33\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3F6\n\x33\x3\x33\x3\x33\x5\x33"+ + "\x3FA\n\x33\x3\x33\a\x33\x3FD\n\x33\f\x33\xE\x33\x400\v\x33\x3\x34\x3"+ + "\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3"+ + "\x34\x5\x34\x40E\n\x34\x3\x34\x3\x34\x3\x34\x5\x34\x413\n\x34\x3\x34\x3"+ + "\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x41C\n\x34\x3\x34\x3\x34"+ + "\x5\x34\x420\n\x34\x3\x34\x3\x34\x5\x34\x424\n\x34\x3\x35\x3\x35\x5\x35"+ + "\x428\n\x35\x3\x35\x3\x35\x5\x35\x42C\n\x35\x3\x35\x5\x35\x42F\n\x35\a"+ + "\x35\x431\n\x35\f\x35\xE\x35\x434\v\x35\x3\x35\x5\x35\x437\n\x35\x3\x35"+ + "\x5\x35\x43A\n\x35\x3\x35\x3\x35\x5\x35\x43E\n\x35\x3\x35\x5\x35\x441"+ + "\n\x35\x6\x35\x443\n\x35\r\x35\xE\x35\x444\x5\x35\x447\n\x35\x3\x36\x3"+ + "\x36\x3\x36\x5\x36\x44C\n\x36\x3\x36\x3\x36\x5\x36\x450\n\x36\x3\x36\x3"+ + "\x36\x5\x36\x454\n\x36\x3\x36\x3\x36\x5\x36\x458\n\x36\x5\x36\x45A\n\x36"+ + "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x460\n\x37\x3\x37\x3\x37\x5\x37\x464"+ + "\n\x37\x3\x37\x5\x37\x467\n\x37\x3\x38\x3\x38\x3\x38\x5\x38\x46C\n\x38"+ + "\x3\x38\x3\x38\x5\x38\x470\n\x38\x3\x38\x3\x38\x3\x38\x3\x38\x5\x38\x476"+ + "\n\x38\x3\x38\x5\x38\x479\n\x38\x3\x38\x5\x38\x47C\n\x38\x3\x38\x3\x38"+ + "\x3\x38\x5\x38\x481\n\x38\x3\x38\x3\x38\x5\x38\x485\n\x38\x3\x38\x3\x38"+ + "\x3\x39\x3\x39\x3\x39\x5\x39\x48C\n\x39\x3\x39\x3\x39\x5\x39\x490\n\x39"+ + "\x3\x39\x3\x39\x3\x39\x3\x39\x5\x39\x496\n\x39\x3\x39\x5\x39\x499\n\x39"+ + "\x3\x39\x3\x39\x5\x39\x49D\n\x39\x3\x39\x3\x39\x3:\x3:\x3:\x5:\x4A4\n"+ + ":\x3:\x3:\x5:\x4A8\n:\x3:\x3:\x3:\x3:\x5:\x4AE\n:\x3:\x5:\x4B1\n:\x3:"+ + "\x3:\x5:\x4B5\n:\x3:\x3:\x3;\x3;\x3;\x3;\x5;\x4BD\n;\x3;\x3;\x5;\x4C1"+ + "\n;\x3;\x5;\x4C4\n;\x3;\x5;\x4C7\n;\x3;\x3;\x5;\x4CB\n;\x3;\x3;\x3<\x3"+ + "<\x3<\x3<\x5<\x4D3\n<\x3<\x3<\x5<\x4D7\n<\x3<\x3<\x5<\x4DB\n<\x5<\x4DD"+ + "\n<\x3<\x5<\x4E0\n<\x3=\x3=\x3=\x3=\x5=\x4E6\n=\x3=\x3=\x5=\x4EA\n=\x3"+ + "=\x3=\x5=\x4EE\n=\x3=\a=\x4F1\n=\f=\xE=\x4F4\v=\x3>\x3>\x5>\x4F8\n>\x3"+ + ">\x3>\x5>\x4FC\n>\x3>\x3>\x5>\x500\n>\x3>\x3>\x3>\x3>\x5>\x506\n>\x3?"+ + "\x3?\x3@\x3@\x3@\x3@\x5@\x50E\n@\x5@\x510\n@\x3\x41\x3\x41\x3\x42\x3\x42"+ + "\x3\x42\x3\x42\x5\x42\x518\n\x42\x3\x42\x3\x42\x5\x42\x51C\n\x42\x3\x42"+ + "\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x524\n\x43\x3\x43\x3\x43\x5"+ + "\x43\x528\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44"+ + "\x3\x44\a\x44\x533\n\x44\f\x44\xE\x44\x536\v\x44\x3\x44\x3\x44\x3\x45"+ + "\x3\x45\x5\x45\x53C\n\x45\x3\x45\x3\x45\x5\x45\x540\n\x45\x3\x45\x3\x45"+ + "\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x54B\n\x45\x3"+ + "\x46\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x552\n\x46\x3G\x3G\x3G\x5G\x557"+ + "\nG\x3G\x3G\x5G\x55B\nG\x3G\aG\x55E\nG\fG\xEG\x561\vG\x5G\x563\nG\x3H"+ + "\x3H\x3H\x3H\x5H\x569\nH\x3H\x3H\x5H\x56D\nH\x3H\x3H\x3I\x3I\x3I\x5I\x574"+ + "\nI\x3I\x3I\x5I\x578\nI\x3I\x3I\x5I\x57C\nI\x3I\x3I\x5I\x580\nI\x3I\x5"+ + "I\x583\nI\x3I\x3I\x5I\x587\nI\x3I\x3I\x3J\x3J\x3K\x3K\x3K\x5K\x590\nK"+ + "\x3K\x3K\x3K\x3K\x3K\aK\x597\nK\fK\xEK\x59A\vK\x3K\x3K\x3L\x3L\x5L\x5A0"+ + "\nL\x3L\x3L\x5L\x5A4\nL\x3L\x5L\x5A7\nL\x3L\x5L\x5AA\nL\x3L\x5L\x5AD\n"+ + "L\x3L\x3L\x3L\x5L\x5B2\nL\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5BA\nM\x3M\x3M"+ + "\x5M\x5BE\nM\x3M\x3M\x3M\x3M\x3M\x3M\x5M\x5C6\nM\x5M\x5C8\nM\x3N\x3N\x3"+ + "N\x5N\x5CD\nN\x3N\x3N\x3N\x5N\x5D2\nN\x3N\x3N\x3N\x5N\x5D7\nN\x3N\x3N"+ + "\x5N\x5DB\nN\x3N\x3N\x3N\x3N\x5N\x5E1\nN\x3N\x3N\x3N\x5N\x5E6\nN\x3N\x3"+ + "N\x3N\x3N\x3N\x5N\x5ED\nN\x3N\x3N\x5N\x5F1\nN\x3N\x3N\x3N\x3N\x5N\x5F7"+ + "\nN\x3N\x3N\x5N\x5FB\nN\x3N\x3N\x5N\x5FF\nN\x3N\x3N\x3N\x5N\x604\nN\x3"+ + "N\x3N\x5N\x608\nN\x3N\x3N\x3N\x5N\x60D\nN\x3N\x3N\x5N\x611\nN\x3N\x3N"+ + "\x3N\x5N\x616\nN\x3N\x3N\x5N\x61A\nN\x3N\x3N\x3N\x5N\x61F\nN\x3N\x3N\x5"+ + "N\x623\nN\x3N\x3N\x3N\x5N\x628\nN\x3N\x3N\x5N\x62C\nN\x3N\x3N\x3N\x5N"+ + "\x631\nN\x3N\x3N\x5N\x635\nN\x3N\x3N\x3N\x5N\x63A\nN\x3N\x3N\x5N\x63E"+ + "\nN\x3N\x3N\x3N\x5N\x643\nN\x3N\x3N\x5N\x647\nN\x3N\x3N\x3N\x5N\x64C\n"+ + "N\x3N\x3N\x5N\x650\nN\x3N\x3N\x3N\x5N\x655\nN\x3N\x3N\x5N\x659\nN\x3N"+ + "\x3N\x3N\x5N\x65E\nN\x3N\x3N\x5N\x662\nN\x3N\aN\x665\nN\fN\xEN\x668\v"+ + "N\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x5O\x672\nO\x3P\x3P\x3P\x5P\x677\nP"+ + "\x3P\x3P\x3P\x5P\x67C\nP\x3P\x3P\x3Q\x3Q\x5Q\x682\nQ\x3Q\x3Q\x5Q\x686"+ + "\nQ\x3Q\aQ\x689\nQ\fQ\xEQ\x68C\vQ\x3R\x3R\x5R\x690\nR\x3R\x3R\x5R\x694"+ + "\nR\x3R\x3R\x5R\x698\nR\x5R\x69A\nR\x3R\x3R\x5R\x69E\nR\x5R\x6A0\nR\x3"+ + "R\x5R\x6A3\nR\x3R\x3R\x3R\x5R\x6A8\nR\x3S\x3S\x3S\x3S\x3S\x5S\x6AF\nS"+ + "\x3S\x3S\x3T\x3T\x3T\x3T\x5T\x6B7\nT\x3T\x3T\x5T\x6BB\nT\x3T\x3T\x3U\x3"+ + "U\x3U\x3U\x3U\x5U\x6C4\nU\x3U\x3U\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x6CE\nW"+ + "\x3W\x3W\x5W\x6D2\nW\x3W\x5W\x6D5\nW\x3X\x5X\x6D8\nX\x3X\x3X\x3Y\x3Y\x3"+ + "Y\x3Y\x3Z\x5Z\x6E1\nZ\x3Z\x3Z\x3Z\x5Z\x6E6\nZ\x3Z\x5Z\x6E9\nZ\x3Z\x3Z"+ + "\x5Z\x6ED\nZ\x3Z\x3Z\x5Z\x6F1\nZ\x3Z\x3Z\x5Z\x6F5\nZ\x3Z\x5Z\x6F8\nZ\x3"+ + "Z\x3Z\x3Z\x3Z\aZ\x6FE\nZ\fZ\xEZ\x701\vZ\x3Z\x3Z\x5Z\x705\nZ\x3Z\x5Z\x708"+ + "\nZ\x3Z\x3Z\x5Z\x70C\nZ\x3Z\x3Z\x5Z\x710\nZ\x3Z\x3Z\x5Z\x714\nZ\x3Z\x5"+ + "Z\x717\nZ\x3Z\x3Z\x3Z\x3Z\aZ\x71D\nZ\fZ\xEZ\x720\vZ\x5Z\x722\nZ\x3[\x3"+ + "[\x5[\x726\n[\x3\\\x5\\\x729\n\\\x3\\\x5\\\x72C\n\\\x3\\\x3\\\x5\\\x730"+ + "\n\\\x3\\\x3\\\x5\\\x734\n\\\x3\\\x3\\\x3\\\x5\\\x739\n\\\x3\\\x5\\\x73C"+ + "\n\\\x3\\\x5\\\x73F\n\\\x3\\\x5\\\x742\n\\\x3\\\x3\\\x3\\\x3\\\a\\\x748"+ + "\n\\\f\\\xE\\\x74B\v\\\x3]\x3]\x3]\x3]\x5]\x751\n]\x3]\x5]\x754\n]\x3"+ + "]\x3]\x3]\x3]\a]\x75A\n]\f]\xE]\x75D\v]\x3^\x3^\x3^\x3^\x5^\x763\n^\x3"+ + "_\x3_\x5_\x767\n_\x3_\x5_\x76A\n_\x3_\x5_\x76D\n_\x3_\x5_\x770\n_\x3_"+ + "\x3_\x3_\x3_\a_\x776\n_\f_\xE_\x779\v_\x3`\x3`\x5`\x77D\n`\x3`\x5`\x780"+ + "\n`\x3`\x5`\x783\n`\x3`\x3`\x5`\x787\n`\x3`\x3`\x5`\x78B\n`\x5`\x78D\n"+ + "`\x3`\x3`\x5`\x791\n`\x3`\x5`\x794\n`\x3`\x5`\x797\n`\x3`\x3`\x3`\x3`"+ + "\a`\x79D\n`\f`\xE`\x7A0\v`\x3\x61\x3\x61\x5\x61\x7A4\n\x61\x3\x61\x5\x61"+ + "\x7A7\n\x61\x3\x61\x5\x61\x7AA\n\x61\x3\x61\x5\x61\x7AD\n\x61\x3\x61\x3"+ + "\x61\x3\x61\x3\x61\a\x61\x7B3\n\x61\f\x61\xE\x61\x7B6\v\x61\x3\x62\x3"+ + "\x62\x5\x62\x7BA\n\x62\x3\x62\x5\x62\x7BD\n\x62\x3\x62\x5\x62\x7C0\n\x62"+ + "\x3\x62\x3\x62\x5\x62\x7C4\n\x62\x3\x62\x3\x62\x5\x62\x7C8\n\x62\x5\x62"+ + "\x7CA\n\x62\x3\x62\x3\x62\x5\x62\x7CE\n\x62\x3\x62\x5\x62\x7D1\n\x62\x3"+ + "\x62\x5\x62\x7D4\n\x62\x3\x62\x3\x62\x3\x62\x3\x62\a\x62\x7DA\n\x62\f"+ + "\x62\xE\x62\x7DD\v\x62\x3\x63\x3\x63\x5\x63\x7E1\n\x63\x3\x63\x3\x63\x5"+ + "\x63\x7E5\n\x63\x6\x63\x7E7\n\x63\r\x63\xE\x63\x7E8\x3\x63\x5\x63\x7EC"+ + "\n\x63\x3\x63\x5\x63\x7EF\n\x63\x3\x63\x5\x63\x7F2\n\x63\x3\x63\x3\x63"+ + "\x3\x63\x3\x63\a\x63\x7F8\n\x63\f\x63\xE\x63\x7FB\v\x63\x3\x64\x3\x64"+ + "\x5\x64\x7FF\n\x64\x3\x64\x3\x64\x5\x64\x803\n\x64\x3\x65\x5\x65\x806"+ + "\n\x65\x3\x65\x3\x65\x3\x66\x5\x66\x80B\n\x66\x3\x66\x5\x66\x80E\n\x66"+ + "\x3\x66\x3\x66\x5\x66\x812\n\x66\a\x66\x814\n\x66\f\x66\xE\x66\x817\v"+ + "\x66\x3\x66\x3\x66\x5\x66\x81B\n\x66\x3\x66\x3\x66\x5\x66\x81F\n\x66\x3"+ + "\x66\x5\x66\x822\n\x66\a\x66\x824\n\x66\f\x66\xE\x66\x827\v\x66\x3g\x5"+ + "g\x82A\ng\x3g\x3g\x5g\x82E\ng\x3g\x5g\x831\ng\x3g\x3g\x3h\x3h\x5h\x837"+ + "\nh\x3h\x3h\x5h\x83B\nh\x3i\x3i\x5i\x83F\ni\x3i\x3i\x5i\x843\ni\x3i\x3"+ + "i\x5i\x847\ni\x3i\ai\x84A\ni\fi\xEi\x84D\vi\x5i\x84F\ni\x3i\x5i\x852\n"+ + "i\x3i\x3i\x3j\x3j\x5j\x858\nj\x3j\x3j\x5j\x85C\nj\x3j\x3j\x5j\x860\nj"+ + "\x3j\x3j\x5j\x864\nj\x3j\x5j\x867\nj\x3j\x3j\x5j\x86B\nj\x3j\x5j\x86E"+ + "\nj\x3j\x5j\x871\nj\x3j\x5j\x874\nj\x3j\x5j\x877\nj\x3j\x5j\x87A\nj\x3"+ + "k\x3k\x5k\x87E\nk\x3k\x3k\x3l\x3l\x5l\x884\nl\x3l\x3l\x5l\x888\nl\x3l"+ + "\al\x88B\nl\fl\xEl\x88E\vl\x3m\x3m\x3m\x3m\x3m\x5m\x895\nm\x3m\x3m\x3"+ + "n\x3n\x3n\x5n\x89C\nn\x3o\x3o\x5o\x8A0\no\x3p\x3p\x5p\x8A4\np\x3p\x3p"+ + "\x5p\x8A8\np\x3p\x3p\x5p\x8AC\np\x3p\x5p\x8AF\np\x3q\x3q\x3r\x3r\x3s\x3"+ + "s\x3s\as\x8B8\ns\fs\xEs\x8BB\vs\x3t\x3t\x5t\x8BF\nt\x3t\x3t\x5t\x8C3\n"+ + "t\x3u\x3u\x5u\x8C7\nu\x3u\x3u\x5u\x8CB\nu\x3u\x5u\x8CE\nu\x3v\x3v\x5v"+ + "\x8D2\nv\x3v\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x5w\x8DE\nw\x3x\x3x\x3"+ + "y\x3y\x5y\x8E4\ny\x3y\x5y\x8E7\ny\x3y\x3y\x5y\x8EB\ny\x3y\x5y\x8EE\ny"+ + "\x3z\x3z\x3{\x3{\x3|\x3|\x3}\x3}\x3~\x3~\x3\x7F\x5\x7F\x8FB\n\x7F\x3\x7F"+ + "\x6\x7F\x8FE\n\x7F\r\x7F\xE\x7F\x8FF\x3\x7F\x3\x7F\x5\x7F\x904\n\x7F\x3"+ + "\x7F\x5\x7F\x907\n\x7F\x3\x7F\x5\x7F\x90A\n\x7F\x3\x7F\x5\x7F\x90D\n\x7F"+ + "\x3\x80\x3\x80\x5\x80\x911\n\x80\x3\x80\x3\x80\x5\x80\x915\n\x80\a\x80"+ + "\x917\n\x80\f\x80\xE\x80\x91A\v\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x83"+ + "\x3\x83\x6\x83\x922\n\x83\r\x83\xE\x83\x923\x3\x84\x3\x84\x3\x84\x5\x84"+ + "\x929\n\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x5\x86\x930\n\x86\x3\x86"+ + "\x3\x86\x3\x86\x5\x86\x935\n\x86\x3\x86\x3\x86\x5\x86\x939\n\x86\x3\x86"+ + "\x6\x86\x93C\n\x86\r\x86\xE\x86\x93D\x3\x86\x5\x86\x941\n\x86\x3\x86\x5"+ + "\x86\x944\n\x86\x3\x86\x3\x86\x5\x86\x948\n\x86\x3\x86\x3\x86\x5\x86\x94C"+ + "\n\x86\x3\x86\x3\x86\x5\x86\x950\n\x86\x3\x86\x5\x86\x953\n\x86\x3\x86"+ + "\x3\x86\x3\x86\x5\x86\x958\n\x86\x3\x86\x3\x86\x5\x86\x95C\n\x86\x3\x86"+ + "\x6\x86\x95F\n\x86\r\x86\xE\x86\x960\x3\x86\x5\x86\x964\n\x86\x3\x86\x3"+ + "\x86\x5\x86\x968\n\x86\x5\x86\x96A\n\x86\x3\x87\x3\x87\x3\x88\x6\x88\x96F"+ + "\n\x88\r\x88\xE\x88\x970\x3\x88\x2\x2\x3\x9A\x89\x2\x2\x4\x2\x6\x2\b\x2"+ + "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E"+ + "\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2"+ + ":\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2"+ + "X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2"+ + "v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2"+ + "\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2"+ + "\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2"+ + "\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2"+ + "\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2"+ + "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ + "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ + "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x2\x1A\x5\x2;;\x45\x45\xBC"+ "\xBC\x3\x2HT\x4\x2\xC3\xC3\xC7\xC7\x3\x2jn\x3\x2\x92\x93\a\x2\x38\x38"+ ";;{{\x9B\x9B\xA6\xA6\x4\x2\xA8\xA9\xCB\xCB\x4\x2\x85\x87\xB3\xB3\x4\x2"+ "))++\x4\x2\xB5\xB5\xBB\xBB\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9"+ "\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2,-\x4\x2=>\x9C\x9C\x3\x2"+ "=>\r\x2\x13\x13\x1F <\x325\x3\x2\x2\x2@\x329\x3\x2\x2\x2\x42"+ - "\x347\x3\x2\x2\x2\x44\x349\x3\x2\x2\x2\x46\x352\x3\x2\x2\x2H\x354\x3\x2"+ - "\x2\x2J\x35D\x3\x2\x2\x2L\x362\x3\x2\x2\x2N\x366\x3\x2\x2\x2P\x377\x3"+ - "\x2\x2\x2R\x383\x3\x2\x2\x2T\x38F\x3\x2\x2\x2V\x3A3\x3\x2\x2\x2X\x3AF"+ - "\x3\x2\x2\x2Z\x3BD\x3\x2\x2\x2\\\x3C9\x3\x2\x2\x2^\x3DD\x3\x2\x2\x2`\x3F1"+ - "\x3\x2\x2\x2\x62\x436\x3\x2\x2\x2\x64\x449\x3\x2\x2\x2\x66\x44B\x3\x2"+ - "\x2\x2h\x45B\x3\x2\x2\x2j\x47B\x3\x2\x2\x2l\x493\x3\x2\x2\x2n\x4A8\x3"+ - "\x2\x2\x2p\x4BE\x3\x2\x2\x2r\x4D1\x3\x2\x2\x2t\x4E5\x3\x2\x2\x2v\x4F7"+ - "\x3\x2\x2\x2x\x4F9\x3\x2\x2\x2z\x501\x3\x2\x2\x2|\x503\x3\x2\x2\x2~\x50F"+ - "\x3\x2\x2\x2\x80\x51B\x3\x2\x2\x2\x82\x53A\x3\x2\x2\x2\x84\x53C\x3\x2"+ - "\x2\x2\x86\x552\x3\x2\x2\x2\x88\x554\x3\x2\x2\x2\x8A\x563\x3\x2\x2\x2"+ - "\x8C\x57D\x3\x2\x2\x2\x8E\x58B\x3\x2\x2\x2\x90\x5A3\x3\x2\x2\x2\x92\x5E4"+ - "\x3\x2\x2\x2\x94\x657\x3\x2\x2\x2\x96\x664\x3\x2\x2\x2\x98\x66D\x3\x2"+ - "\x2\x2\x9A\x67B\x3\x2\x2\x2\x9C\x697\x3\x2\x2\x2\x9E\x6A0\x3\x2\x2\x2"+ - "\xA0\x6AC\x3\x2\x2\x2\xA2\x6B5\x3\x2\x2\x2\xA4\x6B7\x3\x2\x2\x2\xA6\x6C5"+ - "\x3\x2\x2\x2\xA8\x6C9\x3\x2\x2\x2\xAA\x70F\x3\x2\x2\x2\xAC\x713\x3\x2"+ - "\x2\x2\xAE\x716\x3\x2\x2\x2\xB0\x73A\x3\x2\x2\x2\xB2\x750\x3\x2\x2\x2"+ - "\xB4\x752\x3\x2\x2\x2\xB6\x76A\x3\x2\x2\x2\xB8\x78F\x3\x2\x2\x2\xBA\x7A7"+ - "\x3\x2\x2\x2\xBC\x7CE\x3\x2\x2\x2\xBE\x7EA\x3\x2\x2\x2\xC0\x7F3\x3\x2"+ - "\x2\x2\xC2\x803\x3\x2\x2\x2\xC4\x817\x3\x2\x2\x2\xC6\x822\x3\x2\x2\x2"+ - "\xC8\x82A\x3\x2\x2\x2\xCA\x845\x3\x2\x2\x2\xCC\x869\x3\x2\x2\x2\xCE\x86F"+ - "\x3\x2\x2\x2\xD0\x882\x3\x2\x2\x2\xD2\x888\x3\x2\x2\x2\xD4\x88C\x3\x2"+ - "\x2\x2\xD6\x88E\x3\x2\x2\x2\xD8\x89D\x3\x2\x2\x2\xDA\x89F\x3\x2\x2\x2"+ - "\xDC\x8A1\x3\x2\x2\x2\xDE\x8A9\x3\x2\x2\x2\xE0\x8B1\x3\x2\x2\x2\xE2\x8BE"+ - "\x3\x2\x2\x2\xE4\x8CA\x3\x2\x2\x2\xE6\x8CC\x3\x2\x2\x2\xE8\x8D0\x3\x2"+ - "\x2\x2\xEA\x8DC\x3\x2\x2\x2\xEC\x8DE\x3\x2\x2\x2\xEE\x8E0\x3\x2\x2\x2"+ - "\xF0\x8E2\x3\x2\x2\x2\xF2\x8F7\x3\x2\x2\x2\xF4\x903\x3\x2\x2\x2\xF6\x906"+ - "\x3\x2\x2\x2\xF8\x908\x3\x2\x2\x2\xFA\x90A\x3\x2\x2\x2\xFC\x910\x3\x2"+ - "\x2\x2\xFE\x915\x3\x2\x2\x2\x100\x954\x3\x2\x2\x2\x102\x958\x3\x2\x2\x2"+ - "\x104\x95B\x3\x2\x2\x2\x106\x107\x5\x4\x3\x2\x107\x108\a\x2\x2\x3\x108"+ - "\x3\x3\x2\x2\x2\x109\x10B\x5\x104\x83\x2\x10A\x109\x3\x2\x2\x2\x10A\x10B"+ - "\x3\x2\x2\x2\x10B\x10C\x3\x2\x2\x2\x10C\x110\x5\xF4{\x2\x10D\x10E\x5\x6"+ - "\x4\x2\x10E\x10F\x5\xF4{\x2\x10F\x111\x3\x2\x2\x2\x110\x10D\x3\x2\x2\x2"+ - "\x110\x111\x3\x2\x2\x2\x111\x113\x3\x2\x2\x2\x112\x114\x5\b\x5\x2\x113"+ - "\x112\x3\x2\x2\x2\x113\x114\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x117"+ - "\x5\xF4{\x2\x116\x118\x5\f\a\x2\x117\x116\x3\x2\x2\x2\x117\x118\x3\x2"+ - "\x2\x2\x118\x119\x3\x2\x2\x2\x119\x11B\x5\xF4{\x2\x11A\x11C\x5\xE\b\x2"+ - "\x11B\x11A\x3\x2\x2\x2\x11B\x11C\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D"+ - "\x11F\x5\xF4{\x2\x11E\x120\x5\x14\v\x2\x11F\x11E\x3\x2\x2\x2\x11F\x120"+ - "\x3\x2\x2\x2\x120\x121\x3\x2\x2\x2\x121\x123\x5\xF4{\x2\x122\x124\x5\x104"+ - "\x83\x2\x123\x122\x3\x2\x2\x2\x123\x124\x3\x2\x2\x2\x124\x5\x3\x2\x2\x2"+ - "\x125\x126\a\xC5\x2\x2\x126\x127\x5\x104\x83\x2\x127\x129\x5\xE6t\x2\x128"+ - "\x12A\x5\x104\x83\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A"+ - "\x12C\x3\x2\x2\x2\x12B\x12D\a\x42\x2\x2\x12C\x12B\x3\x2\x2\x2\x12C\x12D"+ - "\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x12F\x5\xF4{\x2\x12F\a\x3\x2\x2"+ - "\x2\x130\x138\a:\x2\x2\x131\x132\x5\x104\x83\x2\x132\x133\a\xF1\x2\x2"+ - "\x133\x134\x5\x104\x83\x2\x134\x136\x5\xD2j\x2\x135\x137\x5\x104\x83\x2"+ - "\x136\x135\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x3\x2\x2\x2\x138"+ - "\x131\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13A\x3\x2\x2\x2\x13A\x13C"+ - "\x5\xF4{\x2\x13B\x13D\x5\n\x6\x2\x13C\x13B\x3\x2\x2\x2\x13D\x13E\x3\x2"+ - "\x2\x2\x13E\x13C\x3\x2\x2\x2\x13E\x13F\x3\x2\x2\x2\x13F\x140\x3\x2\x2"+ - "\x2\x140\x141\a\x64\x2\x2\x141\t\x3\x2\x2\x2\x142\x146\x5\xD2j\x2\x143"+ - "\x145\x5\x104\x83\x2\x144\x143\x3\x2\x2\x2\x145\x148\x3\x2\x2\x2\x146"+ - "\x144\x3\x2\x2\x2\x146\x147\x3\x2\x2\x2\x147\x149\x3\x2\x2\x2\x148\x146"+ - "\x3\x2\x2\x2\x149\x14D\a\xD0\x2\x2\x14A\x14C\x5\x104\x83\x2\x14B\x14A"+ - "\x3\x2\x2\x2\x14C\x14F\x3\x2\x2\x2\x14D\x14B\x3\x2\x2\x2\x14D\x14E\x3"+ - "\x2\x2\x2\x14E\x150\x3\x2\x2\x2\x14F\x14D\x3\x2\x2\x2\x150\x153\x5\xE4"+ - "s\x2\x151\x152\a*\x2\x2\x152\x154\x5\xE6t\x2\x153\x151\x3\x2\x2\x2\x153"+ - "\x154\x3\x2\x2\x2\x154\x155\x3\x2\x2\x2\x155\x156\x5\xF4{\x2\x156\v\x3"+ - "\x2\x2\x2\x157\x158\x5\x18\r\x2\x158\x159\x5\xF4{\x2\x159\x15B\x3\x2\x2"+ - "\x2\x15A\x157\x3\x2\x2\x2\x15B\x15C\x3\x2\x2\x2\x15C\x15A\x3\x2\x2\x2"+ - "\x15C\x15D\x3\x2\x2\x2\x15D\r\x3\x2\x2\x2\x15E\x164\x5\x12\n\x2\x15F\x160"+ - "\x5\xF4{\x2\x160\x161\x5\x12\n\x2\x161\x163\x3\x2\x2\x2\x162\x15F\x3\x2"+ - "\x2\x2\x163\x166\x3\x2\x2\x2\x164\x162\x3\x2\x2\x2\x164\x165\x3\x2\x2"+ - "\x2\x165\x167\x3\x2\x2\x2\x166\x164\x3\x2\x2\x2\x167\x168\x5\xF4{\x2\x168"+ - "\xF\x3\x2\x2\x2\x169\x16A\a\x96\x2\x2\x16A\x16B\x5\x104\x83\x2\x16B\x16C"+ - "\x5\xE6t\x2\x16C\x174\x3\x2\x2\x2\x16D\x16E\a\x98\x2\x2\x16E\x16F\x5\x104"+ - "\x83\x2\x16F\x170\t\x2\x2\x2\x170\x174\x3\x2\x2\x2\x171\x174\a\x97\x2"+ - "\x2\x172\x174\a\x99\x2\x2\x173\x169\x3\x2\x2\x2\x173\x16D\x3\x2\x2\x2"+ - "\x173\x171\x3\x2\x2\x2\x173\x172\x3\x2\x2\x2\x174\x11\x3\x2\x2\x2\x175"+ - "\x17E\x5$\x13\x2\x176\x17E\x5*\x16\x2\x177\x17E\x5\x32\x1A\x2\x178\x17E"+ - "\x5 \x11\x2\x179\x17E\x5L\'\x2\x17A\x17E\x5\x96L\x2\x17B\x17E\x5\x10\t"+ - "\x2\x17C\x17E\x5\x8CG\x2\x17D\x175\x3\x2\x2\x2\x17D\x176\x3\x2\x2\x2\x17D"+ - "\x177\x3\x2\x2\x2\x17D\x178\x3\x2\x2\x2\x17D\x179\x3\x2\x2\x2\x17D\x17A"+ - "\x3\x2\x2\x2\x17D\x17B\x3\x2\x2\x2\x17D\x17C\x3\x2\x2\x2\x17E\x13\x3\x2"+ - "\x2\x2\x17F\x185\x5\x16\f\x2\x180\x181\x5\xF4{\x2\x181\x182\x5\x16\f\x2"+ - "\x182\x184\x3\x2\x2\x2\x183\x180\x3\x2\x2\x2\x184\x187\x3\x2\x2\x2\x185"+ - "\x183\x3\x2\x2\x2\x185\x186\x3\x2\x2\x2\x186\x188\x3\x2\x2\x2\x187\x185"+ - "\x3\x2\x2\x2\x188\x189\x5\xF4{\x2\x189\x15\x3\x2\x2\x2\x18A\x190\x5:\x1E"+ - "\x2\x18B\x190\x5h\x35\x2\x18C\x190\x5j\x36\x2\x18D\x190\x5l\x37\x2\x18E"+ - "\x190\x5\x8A\x46\x2\x18F\x18A\x3\x2\x2\x2\x18F\x18B\x3\x2\x2\x2\x18F\x18C"+ - "\x3\x2\x2\x2\x18F\x18D\x3\x2\x2\x2\x18F\x18E\x3\x2\x2\x2\x190\x17\x3\x2"+ - "\x2\x2\x191\x192\a\x37\x2\x2\x192\x193\x5\x104\x83\x2\x193\x195\x5\xB2"+ - "Z\x2\x194\x196\x5\x104\x83\x2\x195\x194\x3\x2\x2\x2\x195\x196\x3\x2\x2"+ - "\x2\x196\x197\x3\x2\x2\x2\x197\x199\a\xD0\x2\x2\x198\x19A\x5\x104\x83"+ - "\x2\x199\x198\x3\x2\x2\x2\x199\x19A\x3\x2\x2\x2\x19A\x19B\x3\x2\x2\x2"+ - "\x19B\x1A6\x5\xE4s\x2\x19C\x19E\x5\x104\x83\x2\x19D\x19C\x3\x2\x2\x2\x19D"+ - "\x19E\x3\x2\x2\x2\x19E\x19F\x3\x2\x2\x2\x19F\x1A1\a)\x2\x2\x1A0\x1A2\x5"+ - "\x104\x83\x2\x1A1\x1A0\x3\x2\x2\x2\x1A1\x1A2\x3\x2\x2\x2\x1A2\x1A3\x3"+ - "\x2\x2\x2\x1A3\x1A5\x5\xE4s\x2\x1A4\x19D\x3\x2\x2\x2\x1A5\x1A8\x3\x2\x2"+ - "\x2\x1A6\x1A4\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2\x1A7\x19\x3\x2\x2\x2\x1A8"+ - "\x1A6\x3\x2\x2\x2\x1A9\x1AF\x5\x1C\xF\x2\x1AA\x1AB\x5\xF4{\x2\x1AB\x1AC"+ - "\x5\x1C\xF\x2\x1AC\x1AE\x3\x2\x2\x2\x1AD\x1AA\x3\x2\x2\x2\x1AE\x1B1\x3"+ - "\x2\x2\x2\x1AF\x1AD\x3\x2\x2\x2\x1AF\x1B0\x3\x2\x2\x2\x1B0\x1B2\x3\x2"+ - "\x2\x2\x1B1\x1AF\x3\x2\x2\x2\x1B2\x1B3\x5\xF4{\x2\x1B3\x1B\x3\x2\x2\x2"+ - "\x1B4\x1E2\x5\xE2r\x2\x1B5\x1E2\x5\x18\r\x2\x1B6\x1E2\x5\x1E\x10\x2\x1B7"+ - "\x1E2\x5 \x11\x2\x1B8\x1E2\x5&\x14\x2\x1B9\x1E2\x5(\x15\x2\x1BA\x1E2\x5"+ - ".\x18\x2\x1BB\x1E2\x5\x30\x19\x2\x1BC\x1E2\x5\x34\x1B\x2\x1BD\x1E2\x5"+ - "\xA8U\x2\x1BE\x1E2\x5\x36\x1C\x2\x1BF\x1E2\x5\x38\x1D\x2\x1C0\x1E2\x5"+ - "<\x1F\x2\x1C1\x1E2\x5> \x2\x1C2\x1E2\x5@!\x2\x1C3\x1E2\x5\x42\"\x2\x1C4"+ - "\x1E2\x5L\'\x2\x1C5\x1E2\x5N(\x2\x1C6\x1E2\x5P)\x2\x1C7\x1E2\x5R*\x2\x1C8"+ - "\x1E2\x5T+\x2\x1C9\x1E2\x5V,\x2\x1CA\x1E2\x5X-\x2\x1CB\x1E2\x5Z.\x2\x1CC"+ - "\x1E2\x5\\/\x2\x1CD\x1E2\x5^\x30\x2\x1CE\x1E2\x5`\x31\x2\x1CF\x1E2\x5"+ - "\x66\x34\x2\x1D0\x1E2\x5n\x38\x2\x1D1\x1E2\x5p\x39\x2\x1D2\x1E2\x5r:\x2"+ - "\x1D3\x1E2\x5v<\x2\x1D4\x1E2\x5x=\x2\x1D5\x1E2\x5z>\x2\x1D6\x1E2\x5|?"+ - "\x2\x1D7\x1E2\x5~@\x2\x1D8\x1E2\x5\x80\x41\x2\x1D9\x1E2\x5\x88\x45\x2"+ - "\x1DA\x1E2\x5\x90I\x2\x1DB\x1E2\x5\x96L\x2\x1DC\x1E2\x5\x9CO\x2\x1DD\x1E2"+ - "\x5\x9EP\x2\x1DE\x1E2\x5\xA0Q\x2\x1DF\x1E2\x5\xA4S\x2\x1E0\x1E2\x5\xAC"+ - "W\x2\x1E1\x1B4\x3\x2\x2\x2\x1E1\x1B5\x3\x2\x2\x2\x1E1\x1B6\x3\x2\x2\x2"+ - "\x1E1\x1B7\x3\x2\x2\x2\x1E1\x1B8\x3\x2\x2\x2\x1E1\x1B9\x3\x2\x2\x2\x1E1"+ - "\x1BA\x3\x2\x2\x2\x1E1\x1BB\x3\x2\x2\x2\x1E1\x1BC\x3\x2\x2\x2\x1E1\x1BD"+ - "\x3\x2\x2\x2\x1E1\x1BE\x3\x2\x2\x2\x1E1\x1BF\x3\x2\x2\x2\x1E1\x1C0\x3"+ - "\x2\x2\x2\x1E1\x1C1\x3\x2\x2\x2\x1E1\x1C2\x3\x2\x2\x2\x1E1\x1C3\x3\x2"+ - "\x2\x2\x1E1\x1C4\x3\x2\x2\x2\x1E1\x1C5\x3\x2\x2\x2\x1E1\x1C6\x3\x2\x2"+ - "\x2\x1E1\x1C7\x3\x2\x2\x2\x1E1\x1C8\x3\x2\x2\x2\x1E1\x1C9\x3\x2\x2\x2"+ - "\x1E1\x1CA\x3\x2\x2\x2\x1E1\x1CB\x3\x2\x2\x2\x1E1\x1CC\x3\x2\x2\x2\x1E1"+ - "\x1CD\x3\x2\x2\x2\x1E1\x1CE\x3\x2\x2\x2\x1E1\x1CF\x3\x2\x2\x2\x1E1\x1D0"+ - "\x3\x2\x2\x2\x1E1\x1D1\x3\x2\x2\x2\x1E1\x1D2\x3\x2\x2\x2\x1E1\x1D3\x3"+ - "\x2\x2\x2\x1E1\x1D4\x3\x2\x2\x2\x1E1\x1D5\x3\x2\x2\x2\x1E1\x1D6\x3\x2"+ - "\x2\x2\x1E1\x1D7\x3\x2\x2\x2\x1E1\x1D8\x3\x2\x2\x2\x1E1\x1D9\x3\x2\x2"+ - "\x2\x1E1\x1DA\x3\x2\x2\x2\x1E1\x1DB\x3\x2\x2\x2\x1E1\x1DC\x3\x2\x2\x2"+ - "\x1E1\x1DD\x3\x2\x2\x2\x1E1\x1DE\x3\x2\x2\x2\x1E1\x1DF\x3\x2\x2\x2\x1E1"+ - "\x1E0\x3\x2\x2\x2\x1E2\x1D\x3\x2\x2\x2\x1E3\x1F3\a\x43\x2\x2\x1E4\x1E5"+ - "\x5\x104\x83\x2\x1E5\x1F0\x5\xA6T\x2\x1E6\x1E8\x5\x104\x83\x2\x1E7\x1E6"+ - "\x3\x2\x2\x2\x1E7\x1E8\x3\x2\x2\x2\x1E8\x1E9\x3\x2\x2\x2\x1E9\x1EB\a)"+ - "\x2\x2\x1EA\x1EC\x5\x104\x83\x2\x1EB\x1EA\x3\x2\x2\x2\x1EB\x1EC\x3\x2"+ - "\x2\x2\x1EC\x1ED\x3\x2\x2\x2\x1ED\x1EF\x5\xA6T\x2\x1EE\x1E7\x3\x2\x2\x2"+ - "\x1EF\x1F2\x3\x2\x2\x2\x1F0\x1EE\x3\x2\x2\x2\x1F0\x1F1\x3\x2\x2\x2\x1F1"+ - "\x1F4\x3\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F3\x1E4\x3\x2\x2\x2\x1F3\x1F4"+ - "\x3\x2\x2\x2\x1F4\x1F\x3\x2\x2\x2\x1F5\x1F6\x5\xECw\x2\x1F6\x1F7\x5\x104"+ - "\x83\x2\x1F7\x1F9\x3\x2\x2\x2\x1F8\x1F5\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2"+ - "\x2\x1F9\x1FA\x3\x2\x2\x2\x1FA\x1FB\a\x44\x2\x2\x1FB\x1FC\x5\x104\x83"+ - "\x2\x1FC\x207\x5\"\x12\x2\x1FD\x1FF\x5\x104\x83\x2\x1FE\x1FD\x3\x2\x2"+ - "\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x200\x3\x2\x2\x2\x200\x202\a)\x2\x2\x201"+ - "\x203\x5\x104\x83\x2\x202\x201\x3\x2\x2\x2\x202\x203\x3\x2\x2\x2\x203"+ - "\x204\x3\x2\x2\x2\x204\x206\x5\"\x12\x2\x205\x1FE\x3\x2\x2\x2\x206\x209"+ - "\x3\x2\x2\x2\x207\x205\x3\x2\x2\x2\x207\x208\x3\x2\x2\x2\x208!\x3\x2\x2"+ - "\x2\x209\x207\x3\x2\x2\x2\x20A\x20C\x5\xD4k\x2\x20B\x20D\x5\xEAv\x2\x20C"+ - "\x20B\x3\x2\x2\x2\x20C\x20D\x3\x2\x2\x2\x20D\x211\x3\x2\x2\x2\x20E\x20F"+ - "\x5\x104\x83\x2\x20F\x210\x5\xD6l\x2\x210\x212\x3\x2\x2\x2\x211\x20E\x3"+ - "\x2\x2\x2\x211\x212\x3\x2\x2\x2\x212\x214\x3\x2\x2\x2\x213\x215\x5\x104"+ - "\x83\x2\x214\x213\x3\x2\x2\x2\x214\x215\x3\x2\x2\x2\x215\x216\x3\x2\x2"+ - "\x2\x216\x218\a\xD0\x2\x2\x217\x219\x5\x104\x83\x2\x218\x217\x3\x2\x2"+ - "\x2\x218\x219\x3\x2\x2\x2\x219\x21A\x3\x2\x2\x2\x21A\x21B\x5\x92J\x2\x21B"+ - "#\x3\x2\x2\x2\x21C\x21D\x5\xECw\x2\x21D\x21E\x5\x104\x83\x2\x21E\x220"+ - "\x3\x2\x2\x2\x21F\x21C\x3\x2\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x221\x3"+ - "\x2\x2\x2\x221\x222\aG\x2\x2\x222\x225\x5\x104\x83\x2\x223\x224\a\xA3"+ - "\x2\x2\x224\x226\x5\x104\x83\x2\x225\x223\x3\x2\x2\x2\x225\x226\x3\x2"+ - "\x2\x2\x226\x22C\x3\x2\x2\x2\x227\x229\ar\x2\x2\x228\x22A\x5\xEAv\x2\x229"+ - "\x228\x3\x2\x2\x2\x229\x22A\x3\x2\x2\x2\x22A\x22D\x3\x2\x2\x2\x22B\x22D"+ - "\a\xBA\x2\x2\x22C\x227\x3\x2\x2\x2\x22C\x22B\x3\x2\x2\x2\x22D\x22E\x3"+ - "\x2\x2\x2\x22E\x22F\x5\x104\x83\x2\x22F\x231\x5\xD4k\x2\x230\x232\x5\xEA"+ - "v\x2\x231\x230\x3\x2\x2\x2\x231\x232\x3\x2\x2\x2\x232\x233\x3\x2\x2\x2"+ - "\x233\x234\x5\x104\x83\x2\x234\x235\a\x82\x2\x2\x235\x236\x5\x104\x83"+ - "\x2\x236\x23C\a\xE3\x2\x2\x237\x238\x5\x104\x83\x2\x238\x239\a\x35\x2"+ - "\x2\x239\x23A\x5\x104\x83\x2\x23A\x23B\a\xE3\x2\x2\x23B\x23D\x3\x2\x2"+ - "\x2\x23C\x237\x3\x2\x2\x2\x23C\x23D\x3\x2\x2\x2\x23D\x242\x3\x2\x2\x2"+ - "\x23E\x240\x5\x104\x83\x2\x23F\x23E\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2"+ - "\x240\x241\x3\x2\x2\x2\x241\x243\x5\xC8\x65\x2\x242\x23F\x3\x2\x2\x2\x242"+ - "\x243\x3\x2\x2\x2\x243\x247\x3\x2\x2\x2\x244\x245\x5\x104\x83\x2\x245"+ - "\x246\x5\xD6l\x2\x246\x248\x3\x2\x2\x2\x247\x244\x3\x2\x2\x2\x247\x248"+ - "\x3\x2\x2\x2\x248%\x3\x2\x2\x2\x249\x24A\t\x3\x2\x2\x24A\x24B\x5\x104"+ - "\x83\x2\x24B\x256\x5\xE0q\x2\x24C\x24E\x5\x104\x83\x2\x24D\x24C\x3\x2"+ - "\x2\x2\x24D\x24E\x3\x2\x2\x2\x24E\x24F\x3\x2\x2\x2\x24F\x251\a)\x2\x2"+ - "\x250\x252\x5\x104\x83\x2\x251\x250\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2"+ - "\x252\x253\x3\x2\x2\x2\x253\x255\x5\xE0q\x2\x254\x24D\x3\x2\x2\x2\x255"+ - "\x258\x3\x2\x2\x2\x256\x254\x3\x2\x2\x2\x256\x257\x3\x2\x2\x2\x257\'\x3"+ - "\x2\x2\x2\x258\x256\x3\x2\x2\x2\x259\x25A\aV\x2\x2\x25A\x25C\x5\xF4{\x2"+ - "\x25B\x25D\x5\x1A\xE\x2\x25C\x25B\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D"+ - "\x25E\x3\x2\x2\x2\x25E\x25F\a\x80\x2\x2\x25F\x277\x3\x2\x2\x2\x260\x261"+ - "\aV\x2\x2\x261\x262\x5\x104\x83\x2\x262\x263\t\x4\x2\x2\x263\x264\x5\x104"+ - "\x83\x2\x264\x265\x5\x92J\x2\x265\x267\x5\xF4{\x2\x266\x268\x5\x1A\xE"+ - "\x2\x267\x266\x3\x2\x2\x2\x267\x268\x3\x2\x2\x2\x268\x269\x3\x2\x2\x2"+ - "\x269\x26A\a\x80\x2\x2\x26A\x277\x3\x2\x2\x2\x26B\x26C\aV\x2\x2\x26C\x26E"+ - "\x5\xF4{\x2\x26D\x26F\x5\x1A\xE\x2\x26E\x26D\x3\x2\x2\x2\x26E\x26F\x3"+ - "\x2\x2\x2\x26F\x270\x3\x2\x2\x2\x270\x271\a\x80\x2\x2\x271\x272\x5\x104"+ - "\x83\x2\x272\x273\t\x4\x2\x2\x273\x274\x5\x104\x83\x2\x274\x275\x5\x92"+ - "J\x2\x275\x277\x3\x2\x2\x2\x276\x259\x3\x2\x2\x2\x276\x260\x3\x2\x2\x2"+ - "\x276\x26B\x3\x2\x2\x2\x277)\x3\x2\x2\x2\x278\x279\x5\xECw\x2\x279\x27A"+ - "\x5\x104\x83\x2\x27A\x27C\x3\x2\x2\x2\x27B\x278\x3\x2\x2\x2\x27B\x27C"+ - "\x3\x2\x2\x2\x27C\x27D\x3\x2\x2\x2\x27D\x27E\a\x65\x2\x2\x27E\x27F\x5"+ - "\x104\x83\x2\x27F\x280\x5\xD4k\x2\x280\x284\x5\xF4{\x2\x281\x283\x5,\x17"+ - "\x2\x282\x281\x3\x2\x2\x2\x283\x286\x3\x2\x2\x2\x284\x282\x3\x2\x2\x2"+ - "\x284\x285\x3\x2\x2\x2\x285\x287\x3\x2\x2\x2\x286\x284\x3\x2\x2\x2\x287"+ - "\x288\a\\\x2\x2\x288+\x3\x2\x2\x2\x289\x292\x5\xD4k\x2\x28A\x28C\x5\x104"+ - "\x83\x2\x28B\x28A\x3\x2\x2\x2\x28B\x28C\x3\x2\x2\x2\x28C\x28D\x3\x2\x2"+ - "\x2\x28D\x28F\a\xD0\x2\x2\x28E\x290\x5\x104\x83\x2\x28F\x28E\x3\x2\x2"+ - "\x2\x28F\x290\x3\x2\x2\x2\x290\x291\x3\x2\x2\x2\x291\x293\x5\x92J\x2\x292"+ - "\x28B\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x294\x3\x2\x2\x2\x294\x295"+ - "\x5\xF4{\x2\x295-\x3\x2\x2\x2\x296\x297\ag\x2\x2\x297\x298\x5\x104\x83"+ - "\x2\x298\x2A3\x5\x92J\x2\x299\x29B\x5\x104\x83\x2\x29A\x299\x3\x2\x2\x2"+ - "\x29A\x29B\x3\x2\x2\x2\x29B\x29C\x3\x2\x2\x2\x29C\x29E\a)\x2\x2\x29D\x29F"+ - "\x5\x104\x83\x2\x29E\x29D\x3\x2\x2\x2\x29E\x29F\x3\x2\x2\x2\x29F\x2A0"+ - "\x3\x2\x2\x2\x2A0\x2A2\x5\x92J\x2\x2A1\x29A\x3\x2\x2\x2\x2A2\x2A5\x3\x2"+ - "\x2\x2\x2A3\x2A1\x3\x2\x2\x2\x2A3\x2A4\x3\x2\x2\x2\x2A4/\x3\x2\x2\x2\x2A5"+ - "\x2A3\x3\x2\x2\x2\x2A6\x2A7\ah\x2\x2\x2A7\x2A8\x5\x104\x83\x2\x2A8\x2A9"+ - "\x5\x92J\x2\x2A9\x31\x3\x2\x2\x2\x2AA\x2AB\x5\xECw\x2\x2AB\x2AC\x5\x104"+ - "\x83\x2\x2AC\x2AE\x3\x2\x2\x2\x2AD\x2AA\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2"+ - "\x2\x2AE\x2AF\x3\x2\x2\x2\x2AF\x2B0\ai\x2\x2\x2B0\x2B1\x5\x104\x83\x2"+ - "\x2B1\x2B3\x5\xD4k\x2\x2B2\x2B4\x5\x104\x83\x2\x2B3\x2B2\x3\x2\x2\x2\x2B3"+ - "\x2B4\x3\x2\x2\x2\x2B4\x2B5\x3\x2\x2\x2\x2B5\x2B6\x5\xC8\x65\x2\x2B6\x33"+ - "\x3\x2\x2\x2\x2B7\x2B8\t\x5\x2\x2\x2B8\x35\x3\x2\x2\x2\x2B9\x2BA\aq\x2"+ - "\x2\x2BA\x2BB\x5\x104\x83\x2\x2BB\x2BC\aX\x2\x2\x2BC\x2BD\x5\x104\x83"+ - "\x2\x2BD\x2BE\x5\x92J\x2\x2BE\x2BF\x5\x104\x83\x2\x2BF\x2C0\az\x2\x2\x2C0"+ - "\x2C1\x5\x104\x83\x2\x2C1\x2C2\x5\x92J\x2\x2C2\x2C4\x5\xF4{\x2\x2C3\x2C5"+ - "\x5\x1A\xE\x2\x2C4\x2C3\x3\x2\x2\x2\x2C4\x2C5\x3\x2\x2\x2\x2C5\x2C6\x3"+ - "\x2\x2\x2\x2C6\x2CA\a\x8C\x2\x2\x2C7\x2C8\x5\x104\x83\x2\x2C8\x2C9\x5"+ - "\x92J\x2\x2C9\x2CB\x3\x2\x2\x2\x2CA\x2C7\x3\x2\x2\x2\x2CA\x2CB\x3\x2\x2"+ - "\x2\x2CB\x37\x3\x2\x2\x2\x2CC\x2CD\aq\x2\x2\x2CD\x2CE\x5\x104\x83\x2\x2CE"+ - "\x2D0\x5\x92J\x2\x2CF\x2D1\x5\x104\x83\x2\x2D0\x2CF\x3\x2\x2\x2\x2D0\x2D1"+ - "\x3\x2\x2\x2\x2D1\x2D2\x3\x2\x2\x2\x2D2\x2D4\a\xD0\x2\x2\x2D3\x2D5\x5"+ - "\x104\x83\x2\x2D4\x2D3\x3\x2\x2\x2\x2D4\x2D5\x3\x2\x2\x2\x2D5\x2D6\x3"+ - "\x2\x2\x2\x2D6\x2D7\x5\x92J\x2\x2D7\x2D8\x5\x104\x83\x2\x2D8\x2D9\a\xBE"+ - "\x2\x2\x2D9\x2DA\x5\x104\x83\x2\x2DA\x2E0\x5\x92J\x2\x2DB\x2DC\x5\x104"+ - "\x83\x2\x2DC\x2DD\a\xB7\x2\x2\x2DD\x2DE\x5\x104\x83\x2\x2DE\x2DF\x5\x92"+ - "J\x2\x2DF\x2E1\x3\x2\x2\x2\x2E0\x2DB\x3\x2\x2\x2\x2E0\x2E1\x3\x2\x2\x2"+ - "\x2E1\x2E2\x3\x2\x2\x2\x2E2\x2E4\x5\xF4{\x2\x2E3\x2E5\x5\x1A\xE\x2\x2E4"+ - "\x2E3\x3\x2\x2\x2\x2E4\x2E5\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6\x2EA"+ - "\a\x8C\x2\x2\x2E7\x2E8\x5\x104\x83\x2\x2E8\x2E9\x5\x92J\x2\x2E9\x2EB\x3"+ - "\x2\x2\x2\x2EA\x2E7\x3\x2\x2\x2\x2EA\x2EB\x3\x2\x2\x2\x2EB\x39\x3\x2\x2"+ - "\x2\x2EC\x2ED\x5\xECw\x2\x2ED\x2EE\x5\x104\x83\x2\x2EE\x2F0\x3\x2\x2\x2"+ - "\x2EF\x2EC\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F3\x3\x2\x2\x2\x2F1"+ - "\x2F2\a\xB6\x2\x2\x2F2\x2F4\x5\x104\x83\x2\x2F3\x2F1\x3\x2\x2\x2\x2F3"+ - "\x2F4\x3\x2\x2\x2\x2F4\x2F5\x3\x2\x2\x2\x2F5\x2F7\ar\x2\x2\x2F6\x2F8\x5"+ - "\x104\x83\x2\x2F7\x2F6\x3\x2\x2\x2\x2F7\x2F8\x3\x2\x2\x2\x2F8\x2F9\x3"+ - "\x2\x2\x2\x2F9\x2FB\x5\xD4k\x2\x2FA\x2FC\x5\xEAv\x2\x2FB\x2FA\x3\x2\x2"+ - "\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC\x301\x3\x2\x2\x2\x2FD\x2FF\x5\x104\x83"+ - "\x2\x2FE\x2FD\x3\x2\x2\x2\x2FE\x2FF\x3\x2\x2\x2\x2FF\x300\x3\x2\x2\x2"+ - "\x300\x302\x5\xC8\x65\x2\x301\x2FE\x3\x2\x2\x2\x301\x302\x3\x2\x2\x2\x302"+ - "\x307\x3\x2\x2\x2\x303\x305\x5\x104\x83\x2\x304\x303\x3\x2\x2\x2\x304"+ - "\x305\x3\x2\x2\x2\x305\x306\x3\x2\x2\x2\x306\x308\x5\xD6l\x2\x307\x304"+ - "\x3\x2\x2\x2\x307\x308\x3\x2\x2\x2\x308\x309\x3\x2\x2\x2\x309\x30B\x5"+ - "\xF4{\x2\x30A\x30C\x5\x1A\xE\x2\x30B\x30A\x3\x2\x2\x2\x30B\x30C\x3\x2"+ - "\x2\x2\x30C\x30D\x3\x2\x2\x2\x30D\x30E\a]\x2\x2\x30E;\x3\x2\x2\x2\x30F"+ - "\x310\as\x2\x2\x310\x311\x5\x104\x83\x2\x311\x313\x5\xA6T\x2\x312\x314"+ - "\x5\x104\x83\x2\x313\x312\x3\x2\x2\x2\x313\x314\x3\x2\x2\x2\x314\x315"+ - "\x3\x2\x2\x2\x315\x317\a)\x2\x2\x316\x318\x5\x104\x83\x2\x317\x316\x3"+ - "\x2\x2\x2\x317\x318\x3\x2\x2\x2\x318\x31A\x3\x2\x2\x2\x319\x31B\x5\x92"+ - "J\x2\x31A\x319\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31D\x3\x2\x2\x2"+ - "\x31C\x31E\x5\x104\x83\x2\x31D\x31C\x3\x2\x2\x2\x31D\x31E\x3\x2\x2\x2"+ - "\x31E\x31F\x3\x2\x2\x2\x31F\x321\a)\x2\x2\x320\x322\x5\x104\x83\x2\x321"+ - "\x320\x3\x2\x2\x2\x321\x322\x3\x2\x2\x2\x322\x323\x3\x2\x2\x2\x323\x324"+ - "\x5\x92J\x2\x324=\x3\x2\x2\x2\x325\x326\au\x2\x2\x326\x327\x5\x104\x83"+ - "\x2\x327\x328\x5\x92J\x2\x328?\x3\x2\x2\x2\x329\x32A\av\x2\x2\x32A\x32B"+ - "\x5\x104\x83\x2\x32B\x32C\x5\x92J\x2\x32C\x41\x3\x2\x2\x2\x32D\x32E\a"+ - "w\x2\x2\x32E\x32F\x5\x104\x83\x2\x32F\x330\x5\x46$\x2\x330\x331\x5\x104"+ - "\x83\x2\x331\x332\a\xBD\x2\x2\x332\x333\x5\x104\x83\x2\x333\x339\x5\x1C"+ - "\xF\x2\x334\x335\x5\x104\x83\x2\x335\x336\aY\x2\x2\x336\x337\x5\x104\x83"+ - "\x2\x337\x338\x5\x1C\xF\x2\x338\x33A\x3\x2\x2\x2\x339\x334\x3\x2\x2\x2"+ - "\x339\x33A\x3\x2\x2\x2\x33A\x348\x3\x2\x2\x2\x33B\x33F\x5\x44#\x2\x33C"+ - "\x33E\x5H%\x2\x33D\x33C\x3\x2\x2\x2\x33E\x341\x3\x2\x2\x2\x33F\x33D\x3"+ - "\x2\x2\x2\x33F\x340\x3\x2\x2\x2\x340\x343\x3\x2\x2\x2\x341\x33F\x3\x2"+ - "\x2\x2\x342\x344\x5J&\x2\x343\x342\x3\x2\x2\x2\x343\x344\x3\x2\x2\x2\x344"+ - "\x345\x3\x2\x2\x2\x345\x346\a^\x2\x2\x346\x348\x3\x2\x2\x2\x347\x32D\x3"+ - "\x2\x2\x2\x347\x33B\x3\x2\x2\x2\x348\x43\x3\x2\x2\x2\x349\x34A\aw\x2\x2"+ - "\x34A\x34B\x5\x104\x83\x2\x34B\x34C\x5\x46$\x2\x34C\x34D\x5\x104\x83\x2"+ - "\x34D\x34E\a\xBD\x2\x2\x34E\x350\x5\xF4{\x2\x34F\x351\x5\x1A\xE\x2\x350"+ - "\x34F\x3\x2\x2\x2\x350\x351\x3\x2\x2\x2\x351\x45\x3\x2\x2\x2\x352\x353"+ - "\x5\x92J\x2\x353G\x3\x2\x2\x2\x354\x355\aZ\x2\x2\x355\x356\x5\x104\x83"+ - "\x2\x356\x357\x5\x46$\x2\x357\x358\x5\x104\x83\x2\x358\x359\a\xBD\x2\x2"+ - "\x359\x35B\x5\xF4{\x2\x35A\x35C\x5\x1A\xE\x2\x35B\x35A\x3\x2\x2\x2\x35B"+ - "\x35C\x3\x2\x2\x2\x35CI\x3\x2\x2\x2\x35D\x35E\aY\x2\x2\x35E\x360\x5\xF4"+ - "{\x2\x35F\x361\x5\x1A\xE\x2\x360\x35F\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2"+ - "\x361K\x3\x2\x2\x2\x362\x363\ay\x2\x2\x363\x364\x5\x104\x83\x2\x364\x365"+ - "\x5\x92J\x2\x365M\x3\x2\x2\x2\x366\x367\a{\x2\x2\x367\x368\x5\x104\x83"+ - "\x2\x368\x371\x5\xA6T\x2\x369\x36B\x5\x104\x83\x2\x36A\x369\x3\x2\x2\x2"+ - "\x36A\x36B\x3\x2\x2\x2\x36B\x36C\x3\x2\x2\x2\x36C\x36E\a)\x2\x2\x36D\x36F"+ - "\x5\x104\x83\x2\x36E\x36D\x3\x2\x2\x2\x36E\x36F\x3\x2\x2\x2\x36F\x370"+ - "\x3\x2\x2\x2\x370\x372\x5\x92J\x2\x371\x36A\x3\x2\x2\x2\x372\x373\x3\x2"+ - "\x2\x2\x373\x371\x3\x2\x2\x2\x373\x374\x3\x2\x2\x2\x374O\x3\x2\x2\x2\x375"+ - "\x376\a\x81\x2\x2\x376\x378\x5\x104\x83\x2\x377\x375\x3\x2\x2\x2\x377"+ - "\x378\x3\x2\x2\x2\x378\x379\x3\x2\x2\x2\x379\x37B\x5\x92J\x2\x37A\x37C"+ - "\x5\x104\x83\x2\x37B\x37A\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37D"+ - "\x3\x2\x2\x2\x37D\x37F\a\xD0\x2\x2\x37E\x380\x5\x104\x83\x2\x37F\x37E"+ - "\x3\x2\x2\x2\x37F\x380\x3\x2\x2\x2\x380\x381\x3\x2\x2\x2\x381\x382\x5"+ - "\x92J\x2\x382Q\x3\x2\x2\x2\x383\x384\a\x84\x2\x2\x384\x385\x5\x104\x83"+ - "\x2\x385\x387\x5\xA6T\x2\x386\x388\x5\x104\x83\x2\x387\x386\x3\x2\x2\x2"+ - "\x387\x388\x3\x2\x2\x2\x388\x389\x3\x2\x2\x2\x389\x38B\a)\x2\x2\x38A\x38C"+ - "\x5\x104\x83\x2\x38B\x38A\x3\x2\x2\x2\x38B\x38C\x3\x2\x2\x2\x38C\x38D"+ - "\x3\x2\x2\x2\x38D\x38E\x5\x92J\x2\x38ES\x3\x2\x2\x2\x38F\x390\a~\x2\x2"+ - "\x390\x391\x5\x104\x83\x2\x391\x3A1\x5\x92J\x2\x392\x394\x5\x104\x83\x2"+ - "\x393\x392\x3\x2\x2\x2\x393\x394\x3\x2\x2\x2\x394\x395\x3\x2\x2\x2\x395"+ - "\x397\a)\x2\x2\x396\x398\x5\x104\x83\x2\x397\x396\x3\x2\x2\x2\x397\x398"+ - "\x3\x2\x2\x2\x398\x399\x3\x2\x2\x2\x399\x39F\x5\x92J\x2\x39A\x39B\x5\x104"+ - "\x83\x2\x39B\x39C\a\xBE\x2\x2\x39C\x39D\x5\x104\x83\x2\x39D\x39E\x5\x92"+ - "J\x2\x39E\x3A0\x3\x2\x2\x2\x39F\x39A\x3\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2"+ - "\x3A0\x3A2\x3\x2\x2\x2\x3A1\x393\x3\x2\x2\x2\x3A1\x3A2\x3\x2\x2\x2\x3A2"+ - "U\x3\x2\x2\x2\x3A3\x3A4\a\x88\x2\x2\x3A4\x3A5\x5\x104\x83\x2\x3A5\x3A7"+ - "\x5\x92J\x2\x3A6\x3A8\x5\x104\x83\x2\x3A7\x3A6\x3\x2\x2\x2\x3A7\x3A8\x3"+ - "\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AB\a\xD0\x2\x2\x3AA\x3AC\x5\x104"+ - "\x83\x2\x3AB\x3AA\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC\x3AD\x3\x2\x2"+ - "\x2\x3AD\x3AE\x5\x92J\x2\x3AEW\x3\x2\x2\x2\x3AF\x3B1\a\x8A\x2\x2\x3B0"+ - "\x3B2\x5\x104\x83\x2\x3B1\x3B0\x3\x2\x2\x2\x3B1\x3B2\x3\x2\x2\x2\x3B2"+ - "\x3B3\x3\x2\x2\x2\x3B3\x3B5\a\xD4\x2\x2\x3B4\x3B6\x5\x104\x83\x2\x3B5"+ - "\x3B4\x3\x2\x2\x2\x3B5\x3B6\x3\x2\x2\x2\x3B6\x3B7\x3\x2\x2\x2\x3B7\x3B9"+ - "\x5\xC2\x62\x2\x3B8\x3BA\x5\x104\x83\x2\x3B9\x3B8\x3\x2\x2\x2\x3B9\x3BA"+ - "\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB\x3BC\a\xDB\x2\x2\x3BCY\x3\x2\x2"+ - "\x2\x3BD\x3BE\t\x6\x2\x2\x3BE\x3C7\x5\x104\x83\x2\x3BF\x3C0\av\x2\x2\x3C0"+ - "\x3C1\x5\x104\x83\x2\x3C1\x3C2\x5\x92J\x2\x3C2\x3C8\x3\x2\x2\x2\x3C3\x3C4"+ - "\a\xAD\x2\x2\x3C4\x3C5\x5\x104\x83\x2\x3C5\x3C6\a\x8C\x2\x2\x3C6\x3C8"+ - "\x3\x2\x2\x2\x3C7\x3BF\x3\x2\x2\x2\x3C7\x3C3\x3\x2\x2\x2\x3C8[\x3\x2\x2"+ - "\x2\x3C9\x3CA\a\x91\x2\x2\x3CA\x3CB\x5\x104\x83\x2\x3CB\x3CC\x5\x92J\x2"+ - "\x3CC\x3CD\x5\x104\x83\x2\x3CD\x3CE\av\x2\x2\x3CE\x3CF\x5\x104\x83\x2"+ - "\x3CF\x3DA\x5\x92J\x2\x3D0\x3D2\x5\x104\x83\x2\x3D1\x3D0\x3\x2\x2\x2\x3D1"+ - "\x3D2\x3\x2\x2\x2\x3D2\x3D3\x3\x2\x2\x2\x3D3\x3D5\a)\x2\x2\x3D4\x3D6\x5"+ - "\x104\x83\x2\x3D5\x3D4\x3\x2\x2\x2\x3D5\x3D6\x3\x2\x2\x2\x3D6\x3D7\x3"+ - "\x2\x2\x2\x3D7\x3D9\x5\x92J\x2\x3D8\x3D1\x3\x2\x2\x2\x3D9\x3DC\x3\x2\x2"+ - "\x2\x3DA\x3D8\x3\x2\x2\x2\x3DA\x3DB\x3\x2\x2\x2\x3DB]\x3\x2\x2\x2\x3DC"+ - "\x3DA\x3\x2\x2\x2\x3DD\x3DE\a\x91\x2\x2\x3DE\x3DF\x5\x104\x83\x2\x3DF"+ - "\x3E0\x5\x92J\x2\x3E0\x3E1\x5\x104\x83\x2\x3E1\x3E2\au\x2\x2\x3E2\x3E3"+ - "\x5\x104\x83\x2\x3E3\x3EE\x5\x92J\x2\x3E4\x3E6\x5\x104\x83\x2\x3E5\x3E4"+ - "\x3\x2\x2\x2\x3E5\x3E6\x3\x2\x2\x2\x3E6\x3E7\x3\x2\x2\x2\x3E7\x3E9\a)"+ - "\x2\x2\x3E8\x3EA\x5\x104\x83\x2\x3E9\x3E8\x3\x2\x2\x2\x3E9\x3EA\x3\x2"+ - "\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x3ED\x5\x92J\x2\x3EC\x3E5\x3\x2\x2\x2"+ - "\x3ED\x3F0\x3\x2\x2\x2\x3EE\x3EC\x3\x2\x2\x2\x3EE\x3EF\x3\x2\x2\x2\x3EF"+ - "_\x3\x2\x2\x2\x3F0\x3EE\x3\x2\x2\x2\x3F1\x3F2\a\x94\x2\x2\x3F2\x3F3\x5"+ - "\x104\x83\x2\x3F3\x3F4\x5\x92J\x2\x3F4\x3F5\x5\x104\x83\x2\x3F5\x3F6\a"+ - "q\x2\x2\x3F6\x3F7\x5\x104\x83\x2\x3F7\x3FD\t\a\x2\x2\x3F8\x3F9\x5\x104"+ - "\x83\x2\x3F9\x3FA\a\x33\x2\x2\x3FA\x3FB\x5\x104\x83\x2\x3FB\x3FC\t\b\x2"+ - "\x2\x3FC\x3FE\x3\x2\x2\x2\x3FD\x3F8\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2\x2"+ - "\x3FE\x402\x3\x2\x2\x2\x3FF\x400\x5\x104\x83\x2\x400\x401\t\t\x2\x2\x401"+ - "\x403\x3\x2\x2\x2\x402\x3FF\x3\x2\x2\x2\x402\x403\x3\x2\x2\x2\x403\x404"+ - "\x3\x2\x2\x2\x404\x405\x5\x104\x83\x2\x405\x406\a\x39\x2\x2\x406\x407"+ - "\x5\x104\x83\x2\x407\x413\x5\xA6T\x2\x408\x409\x5\x104\x83\x2\x409\x40B"+ - "\a\x1D\x2\x2\x40A\x40C\x5\x104\x83\x2\x40B\x40A\x3\x2\x2\x2\x40B\x40C"+ - "\x3\x2\x2\x2\x40C\x40D\x3\x2\x2\x2\x40D\x40F\a\xD0\x2\x2\x40E\x410\x5"+ - "\x104\x83\x2\x40F\x40E\x3\x2\x2\x2\x40F\x410\x3\x2\x2\x2\x410\x411\x3"+ - "\x2\x2\x2\x411\x412\x5\x92J\x2\x412\x414\x3\x2\x2\x2\x413\x408\x3\x2\x2"+ - "\x2\x413\x414\x3\x2\x2\x2\x414\x61\x3\x2\x2\x2\x415\x422\x5\x64\x33\x2"+ - "\x416\x418\x5\x104\x83\x2\x417\x416\x3\x2\x2\x2\x417\x418\x3\x2\x2\x2"+ - "\x418\x419\x3\x2\x2\x2\x419\x41B\t\n\x2\x2\x41A\x41C\x5\x104\x83\x2\x41B"+ - "\x41A\x3\x2\x2\x2\x41B\x41C\x3\x2\x2\x2\x41C\x41E\x3\x2\x2\x2\x41D\x41F"+ - "\x5\x64\x33\x2\x41E\x41D\x3\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x421\x3"+ - "\x2\x2\x2\x420\x417\x3\x2\x2\x2\x421\x424\x3\x2\x2\x2\x422\x420\x3\x2"+ - "\x2\x2\x422\x423\x3\x2\x2\x2\x423\x437\x3\x2\x2\x2\x424\x422\x3\x2\x2"+ - "\x2\x425\x427\x5\x64\x33\x2\x426\x425\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2"+ - "\x427\x432\x3\x2\x2\x2\x428\x42A\x5\x104\x83\x2\x429\x428\x3\x2\x2\x2"+ - "\x429\x42A\x3\x2\x2\x2\x42A\x42B\x3\x2\x2\x2\x42B\x42D\t\n\x2\x2\x42C"+ - "\x42E\x5\x104\x83\x2\x42D\x42C\x3\x2\x2\x2\x42D\x42E\x3\x2\x2\x2\x42E"+ - "\x430\x3\x2\x2\x2\x42F\x431\x5\x64\x33\x2\x430\x42F\x3\x2\x2\x2\x430\x431"+ - "\x3\x2\x2\x2\x431\x433\x3\x2\x2\x2\x432\x429\x3\x2\x2\x2\x433\x434\x3"+ - "\x2\x2\x2\x434\x432\x3\x2\x2\x2\x434\x435\x3\x2\x2\x2\x435\x437\x3\x2"+ - "\x2\x2\x436\x415\x3\x2\x2\x2\x436\x426\x3\x2\x2\x2\x437\x63\x3\x2\x2\x2"+ - "\x438\x44A\x5\x92J\x2\x439\x447\t\v\x2\x2\x43A\x43C\x5\x104\x83\x2\x43B"+ - "\x43A\x3\x2\x2\x2\x43B\x43C\x3\x2\x2\x2\x43C\x43D\x3\x2\x2\x2\x43D\x43F"+ - "\a\xD4\x2\x2\x43E\x440\x5\x104\x83\x2\x43F\x43E\x3\x2\x2\x2\x43F\x440"+ - "\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441\x443\x5\xC2\x62\x2\x442\x444\x5"+ - "\x104\x83\x2\x443\x442\x3\x2\x2\x2\x443\x444\x3\x2\x2\x2\x444\x445\x3"+ - "\x2\x2\x2\x445\x446\a\xDB\x2\x2\x446\x448\x3\x2\x2\x2\x447\x43B\x3\x2"+ - "\x2\x2\x447\x448\x3\x2\x2\x2\x448\x44A\x3\x2\x2\x2\x449\x438\x3\x2\x2"+ - "\x2\x449\x439\x3\x2\x2\x2\x44A\x65\x3\x2\x2\x2\x44B\x44C\a\x9E\x2\x2\x44C"+ - "\x44D\x5\x104\x83\x2\x44D\x44F\x5\xA6T\x2\x44E\x450\x5\x104\x83\x2\x44F"+ - "\x44E\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x451\x3\x2\x2\x2\x451\x456"+ - "\a)\x2\x2\x452\x454\x5\x104\x83\x2\x453\x452\x3\x2\x2\x2\x453\x454\x3"+ - "\x2\x2\x2\x454\x455\x3\x2\x2\x2\x455\x457\x5\x62\x32\x2\x456\x453\x3\x2"+ - "\x2\x2\x456\x457\x3\x2\x2\x2\x457g\x3\x2\x2\x2\x458\x459\x5\xECw\x2\x459"+ - "\x45A\x5\x104\x83\x2\x45A\x45C\x3\x2\x2\x2\x45B\x458\x3\x2\x2\x2\x45B"+ - "\x45C\x3\x2\x2\x2\x45C\x45F\x3\x2\x2\x2\x45D\x45E\a\xB6\x2\x2\x45E\x460"+ - "\x5\x104\x83\x2\x45F\x45D\x3\x2\x2\x2\x45F\x460\x3\x2\x2\x2\x460\x461"+ - "\x3\x2\x2\x2\x461\x462\a\xA0\x2\x2\x462\x463\x5\x104\x83\x2\x463\x465"+ - "\x5\xD4k\x2\x464\x466\x5\xEAv\x2\x465\x464\x3\x2\x2\x2\x465\x466\x3\x2"+ - "\x2\x2\x466\x46B\x3\x2\x2\x2\x467\x469\x5\x104\x83\x2\x468\x467\x3\x2"+ - "\x2\x2\x468\x469\x3\x2\x2\x2\x469\x46A\x3\x2\x2\x2\x46A\x46C\x5\xC8\x65"+ - "\x2\x46B\x468\x3\x2\x2\x2\x46B\x46C\x3\x2\x2\x2\x46C\x470\x3\x2\x2\x2"+ - "\x46D\x46E\x5\x104\x83\x2\x46E\x46F\x5\xD6l\x2\x46F\x471\x3\x2\x2\x2\x470"+ - "\x46D\x3\x2\x2\x2\x470\x471\x3\x2\x2\x2\x471\x472\x3\x2\x2\x2\x472\x474"+ - "\x5\xF4{\x2\x473\x475\x5\x1A\xE\x2\x474\x473\x3\x2\x2\x2\x474\x475\x3"+ - "\x2\x2\x2\x475\x476\x3\x2\x2\x2\x476\x477\a_\x2\x2\x477i\x3\x2\x2\x2\x478"+ - "\x479\x5\xECw\x2\x479\x47A\x5\x104\x83\x2\x47A\x47C\x3\x2\x2\x2\x47B\x478"+ - "\x3\x2\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C\x47F\x3\x2\x2\x2\x47D\x47E\a\xB6"+ - "\x2\x2\x47E\x480\x5\x104\x83\x2\x47F\x47D\x3\x2\x2\x2\x47F\x480\x3\x2"+ - "\x2\x2\x480\x481\x3\x2\x2\x2\x481\x482\a\xA2\x2\x2\x482\x483\x5\x104\x83"+ - "\x2\x483\x488\x5\xD4k\x2\x484\x486\x5\x104\x83\x2\x485\x484\x3\x2\x2\x2"+ - "\x485\x486\x3\x2\x2\x2\x486\x487\x3\x2\x2\x2\x487\x489\x5\xC8\x65\x2\x488"+ - "\x485\x3\x2\x2\x2\x488\x489\x3\x2\x2\x2\x489\x48A\x3\x2\x2\x2\x48A\x48C"+ - "\x5\xF4{\x2\x48B\x48D\x5\x1A\xE\x2\x48C\x48B\x3\x2\x2\x2\x48C\x48D\x3"+ - "\x2\x2\x2\x48D\x48E\x3\x2\x2\x2\x48E\x48F\a_\x2\x2\x48Fk\x3\x2\x2\x2\x490"+ - "\x491\x5\xECw\x2\x491\x492\x5\x104\x83\x2\x492\x494\x3\x2\x2\x2\x493\x490"+ - "\x3\x2\x2\x2\x493\x494\x3\x2\x2\x2\x494\x497\x3\x2\x2\x2\x495\x496\a\xB6"+ - "\x2\x2\x496\x498\x5\x104\x83\x2\x497\x495\x3\x2\x2\x2\x497\x498\x3\x2"+ - "\x2\x2\x498\x499\x3\x2\x2\x2\x499\x49A\a\xA1\x2\x2\x49A\x49B\x5\x104\x83"+ - "\x2\x49B\x4A0\x5\xD4k\x2\x49C\x49E\x5\x104\x83\x2\x49D\x49C\x3\x2\x2\x2"+ - "\x49D\x49E\x3\x2\x2\x2\x49E\x49F\x3\x2\x2\x2\x49F\x4A1\x5\xC8\x65\x2\x4A0"+ - "\x49D\x3\x2\x2\x2\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A2\x3\x2\x2\x2\x4A2\x4A4"+ - "\x5\xF4{\x2\x4A3\x4A5\x5\x1A\xE\x2\x4A4\x4A3\x3\x2\x2\x2\x4A4\x4A5\x3"+ - "\x2\x2\x2\x4A5\x4A6\x3\x2\x2\x2\x4A6\x4A7\a_\x2\x2\x4A7m\x3\x2\x2\x2\x4A8"+ - "\x4A9\a\xA5\x2\x2\x4A9\x4AA\x5\x104\x83\x2\x4AA\x4AC\x5\xA6T\x2\x4AB\x4AD"+ - "\x5\x104\x83\x2\x4AC\x4AB\x3\x2\x2\x2\x4AC\x4AD\x3\x2\x2\x2\x4AD\x4AE"+ - "\x3\x2\x2\x2\x4AE\x4B0\a)\x2\x2\x4AF\x4B1\x5\x104\x83\x2\x4B0\x4AF\x3"+ - "\x2\x2\x2\x4B0\x4B1\x3\x2\x2\x2\x4B1\x4B3\x3\x2\x2\x2\x4B2\x4B4\x5\x92"+ - "J\x2\x4B3\x4B2\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B6\x3\x2\x2\x2"+ - "\x4B5\x4B7\x5\x104\x83\x2\x4B6\x4B5\x3\x2\x2\x2\x4B6\x4B7\x3\x2\x2\x2"+ - "\x4B7\x4B8\x3\x2\x2\x2\x4B8\x4BA\a)\x2\x2\x4B9\x4BB\x5\x104\x83\x2\x4BA"+ - "\x4B9\x3\x2\x2\x2\x4BA\x4BB\x3\x2\x2\x2\x4BB\x4BC\x3\x2\x2\x2\x4BC\x4BD"+ - "\x5\x92J\x2\x4BDo\x3\x2\x2\x2\x4BE\x4BF\a\xA7\x2\x2\x4BF\x4C0\x5\x104"+ - "\x83\x2\x4C0\x4CF\x5\xD4k\x2\x4C1\x4C3\x5\x104\x83\x2\x4C2\x4C1\x3\x2"+ - "\x2\x2\x4C2\x4C3\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x4C6\a\xD4\x2"+ - "\x2\x4C5\x4C7\x5\x104\x83\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2"+ - "\x2\x4C7\x4CC\x3\x2\x2\x2\x4C8\x4CA\x5\xC2\x62\x2\x4C9\x4CB\x5\x104\x83"+ - "\x2\x4CA\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\x3\x2\x2\x2"+ - "\x4CC\x4C8\x3\x2\x2\x2\x4CC\x4CD\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE"+ - "\x4D0\a\xDB\x2\x2\x4CF\x4C2\x3\x2\x2\x2\x4CF\x4D0\x3\x2\x2\x2\x4D0q\x3"+ - "\x2\x2\x2\x4D1\x4D2\a\xAA\x2\x2\x4D2\x4D5\x5\x104\x83\x2\x4D3\x4D4\a\x9D"+ - "\x2\x2\x4D4\x4D6\x5\x104\x83\x2\x4D5\x4D3\x3\x2\x2\x2\x4D5\x4D6\x3\x2"+ - "\x2\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4E2\x5t;\x2\x4D8\x4DA\x5\x104\x83\x2"+ - "\x4D9\x4D8\x3\x2\x2\x2\x4D9\x4DA\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB"+ - "\x4DD\a)\x2\x2\x4DC\x4DE\x5\x104\x83\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE"+ - "\x3\x2\x2\x2\x4DE\x4DF\x3\x2\x2\x2\x4DF\x4E1\x5t;\x2\x4E0\x4D9\x3\x2\x2"+ - "\x2\x4E1\x4E4\x3\x2\x2\x2\x4E2\x4E0\x3\x2\x2\x2\x4E2\x4E3\x3\x2\x2\x2"+ - "\x4E3s\x3\x2\x2\x2\x4E4\x4E2\x3\x2\x2\x2\x4E5\x4E7\x5\xB2Z\x2\x4E6\x4E8"+ - "\x5\x104\x83\x2\x4E7\x4E6\x3\x2\x2\x2\x4E7\x4E8\x3\x2\x2\x2\x4E8\x4E9"+ - "\x3\x2\x2\x2\x4E9\x4EB\a\xD4\x2\x2\x4EA\x4EC\x5\x104\x83\x2\x4EB\x4EA"+ - "\x3\x2\x2\x2\x4EB\x4EC\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED\x4EF\x5"+ - "\xCEh\x2\x4EE\x4F0\x5\x104\x83\x2\x4EF\x4EE\x3\x2\x2\x2\x4EF\x4F0\x3\x2"+ - "\x2\x2\x4F0\x4F1\x3\x2\x2\x2\x4F1\x4F5\a\xDB\x2\x2\x4F2\x4F3\x5\x104\x83"+ - "\x2\x4F3\x4F4\x5\xD6l\x2\x4F4\x4F6\x3\x2\x2\x2\x4F5\x4F2\x3\x2\x2\x2\x4F5"+ - "\x4F6\x3\x2\x2\x2\x4F6u\x3\x2\x2\x2\x4F7\x4F8\a\xAC\x2\x2\x4F8w\x3\x2"+ - "\x2\x2\x4F9\x4FF\a\xAD\x2\x2\x4FA\x4FD\x5\x104\x83\x2\x4FB\x4FE\a\x8C"+ - "\x2\x2\x4FC\x4FE\x5\x92J\x2\x4FD\x4FB\x3\x2\x2\x2\x4FD\x4FC\x3\x2\x2\x2"+ - "\x4FE\x500\x3\x2\x2\x2\x4FF\x4FA\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500"+ - "y\x3\x2\x2\x2\x501\x502\a\xAE\x2\x2\x502{\x3\x2\x2\x2\x503\x504\a\xAF"+ - "\x2\x2\x504\x505\x5\x104\x83\x2\x505\x507\x5\x92J\x2\x506\x508\x5\x104"+ - "\x83\x2\x507\x506\x3\x2\x2\x2\x507\x508\x3\x2\x2\x2\x508\x509\x3\x2\x2"+ - "\x2\x509\x50B\a\xD0\x2\x2\x50A\x50C\x5\x104\x83\x2\x50B\x50A\x3\x2\x2"+ - "\x2\x50B\x50C\x3\x2\x2\x2\x50C\x50D\x3\x2\x2\x2\x50D\x50E\x5\x92J\x2\x50E"+ - "}\x3\x2\x2\x2\x50F\x510\a\xB0\x2\x2\x510\x511\x5\x104\x83\x2\x511\x513"+ - "\x5\xA6T\x2\x512\x514\x5\x104\x83\x2\x513\x512\x3\x2\x2\x2\x513\x514\x3"+ - "\x2\x2\x2\x514\x515\x3\x2\x2\x2\x515\x517\a)\x2\x2\x516\x518\x5\x104\x83"+ - "\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3\x2\x2\x2"+ - "\x519\x51A\x5\x92J\x2\x51A\x7F\x3\x2\x2\x2\x51B\x51C\a\xB1\x2\x2\x51C"+ - "\x51D\x5\x104\x83\x2\x51D\x51E\a\x41\x2\x2\x51E\x51F\x5\x104\x83\x2\x51F"+ - "\x520\x5\x92J\x2\x520\x524\x5\xF4{\x2\x521\x523\x5\x84\x43\x2\x522\x521"+ - "\x3\x2\x2\x2\x523\x526\x3\x2\x2\x2\x524\x522\x3\x2\x2\x2\x524\x525\x3"+ - "\x2\x2\x2\x525\x527\x3\x2\x2\x2\x526\x524\x3\x2\x2\x2\x527\x528\a`\x2"+ - "\x2\x528\x81\x3\x2\x2\x2\x529\x52B\a|\x2\x2\x52A\x52C\x5\x104\x83\x2\x52B"+ - "\x52A\x3\x2\x2\x2\x52B\x52C\x3\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D\x52F"+ - "\x5\xDAn\x2\x52E\x530\x5\x104\x83\x2\x52F\x52E\x3\x2\x2\x2\x52F\x530\x3"+ - "\x2\x2\x2\x530\x531\x3\x2\x2\x2\x531\x532\x5\x92J\x2\x532\x53B\x3\x2\x2"+ - "\x2\x533\x534\x5\x92J\x2\x534\x535\x5\x104\x83\x2\x535\x536\a\xBE\x2\x2"+ - "\x536\x537\x5\x104\x83\x2\x537\x538\x5\x92J\x2\x538\x53B\x3\x2\x2\x2\x539"+ - "\x53B\x5\x92J\x2\x53A\x529\x3\x2\x2\x2\x53A\x533\x3\x2\x2\x2\x53A\x539"+ - "\x3\x2\x2\x2\x53B\x83\x3\x2\x2\x2\x53C\x53D\a\x41\x2\x2\x53D\x53E\x5\x104"+ - "\x83\x2\x53E\x53F\x5\x86\x44\x2\x53F\x541\x5\xF4{\x2\x540\x542\x5\x1A"+ - "\xE\x2\x541\x540\x3\x2\x2\x2\x541\x542\x3\x2\x2\x2\x542\x85\x3\x2\x2\x2"+ - "\x543\x553\aY\x2\x2\x544\x54F\x5\x82\x42\x2\x545\x547\x5\x104\x83\x2\x546"+ - "\x545\x3\x2\x2\x2\x546\x547\x3\x2\x2\x2\x547\x548\x3\x2\x2\x2\x548\x54A"+ - "\a)\x2\x2\x549\x54B\x5\x104\x83\x2\x54A\x549\x3\x2\x2\x2\x54A\x54B\x3"+ - "\x2\x2\x2\x54B\x54C\x3\x2\x2\x2\x54C\x54E\x5\x82\x42\x2\x54D\x546\x3\x2"+ - "\x2\x2\x54E\x551\x3\x2\x2\x2\x54F\x54D\x3\x2\x2\x2\x54F\x550\x3\x2\x2"+ - "\x2\x550\x553\x3\x2\x2\x2\x551\x54F\x3\x2\x2\x2\x552\x543\x3\x2\x2\x2"+ - "\x552\x544\x3\x2\x2\x2\x553\x87\x3\x2\x2\x2\x554\x555\a\xB2\x2\x2\x555"+ - "\x556\x5\x104\x83\x2\x556\x558\x5\x92J\x2\x557\x559\x5\x104\x83\x2\x558"+ - "\x557\x3\x2\x2\x2\x558\x559\x3\x2\x2\x2\x559\x55A\x3\x2\x2\x2\x55A\x55C"+ - "\a\xD0\x2\x2\x55B\x55D\x5\x104\x83\x2\x55C\x55B\x3\x2\x2\x2\x55C\x55D"+ - "\x3\x2\x2\x2\x55D\x55E\x3\x2\x2\x2\x55E\x55F\x5\x92J\x2\x55F\x89\x3\x2"+ - "\x2\x2\x560\x561\x5\xECw\x2\x561\x562\x5\x104\x83\x2\x562\x564\x3\x2\x2"+ - "\x2\x563\x560\x3\x2\x2\x2\x563\x564\x3\x2\x2\x2\x564\x567\x3\x2\x2\x2"+ - "\x565\x566\a\xB6\x2\x2\x566\x568\x5\x104\x83\x2\x567\x565\x3\x2\x2\x2"+ - "\x567\x568\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2\x569\x56B\a\xBA\x2\x2\x56A"+ - "\x56C\x5\x104\x83\x2\x56B\x56A\x3\x2\x2\x2\x56B\x56C\x3\x2\x2\x2\x56C"+ - "\x56D\x3\x2\x2\x2\x56D\x572\x5\xD4k\x2\x56E\x570\x5\x104\x83\x2\x56F\x56E"+ - "\x3\x2\x2\x2\x56F\x570\x3\x2\x2\x2\x570\x571\x3\x2\x2\x2\x571\x573\x5"+ - "\xC8\x65\x2\x572\x56F\x3\x2\x2\x2\x572\x573\x3\x2\x2\x2\x573\x574\x3\x2"+ - "\x2\x2\x574\x576\x5\xF4{\x2\x575\x577\x5\x1A\xE\x2\x576\x575\x3\x2\x2"+ - "\x2\x576\x577\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\a\x61\x2\x2"+ - "\x579\x8B\x3\x2\x2\x2\x57A\x57B\x5\xECw\x2\x57B\x57C\x5\x104\x83\x2\x57C"+ - "\x57E\x3\x2\x2\x2\x57D\x57A\x3\x2\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x57F"+ - "\x3\x2\x2\x2\x57F\x580\a\xC0\x2\x2\x580\x581\x5\x104\x83\x2\x581\x582"+ - "\x5\xD4k\x2\x582\x586\x5\xF4{\x2\x583\x585\x5\x8EH\x2\x584\x583\x3\x2"+ - "\x2\x2\x585\x588\x3\x2\x2\x2\x586\x584\x3\x2\x2\x2\x586\x587\x3\x2\x2"+ - "\x2\x587\x589\x3\x2\x2\x2\x588\x586\x3\x2\x2\x2\x589\x58A\a\x62\x2\x2"+ - "\x58A\x8D\x3\x2\x2\x2\x58B\x59A\x5\xD4k\x2\x58C\x58E\x5\x104\x83\x2\x58D"+ - "\x58C\x3\x2\x2\x2\x58D\x58E\x3\x2\x2\x2\x58E\x58F\x3\x2\x2\x2\x58F\x594"+ - "\a\xD4\x2\x2\x590\x592\x5\x104\x83\x2\x591\x590\x3\x2\x2\x2\x591\x592"+ - "\x3\x2\x2\x2\x592\x593\x3\x2\x2\x2\x593\x595\x5\xCEh\x2\x594\x591\x3\x2"+ - "\x2\x2\x594\x595\x3\x2\x2\x2\x595\x597\x3\x2\x2\x2\x596\x598\x5\x104\x83"+ - "\x2\x597\x596\x3\x2\x2\x2\x597\x598\x3\x2\x2\x2\x598\x599\x3\x2\x2\x2"+ - "\x599\x59B\a\xDB\x2\x2\x59A\x58D\x3\x2\x2\x2\x59A\x59B\x3\x2\x2\x2\x59B"+ - "\x59F\x3\x2\x2\x2\x59C\x59D\x5\x104\x83\x2\x59D\x59E\x5\xD6l\x2\x59E\x5A0"+ - "\x3\x2\x2\x2\x59F\x59C\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3"+ - "\x2\x2\x2\x5A1\x5A2\x5\xF4{\x2\x5A2\x8F\x3\x2\x2\x2\x5A3\x5A4\a\xC2\x2"+ - "\x2\x5A4\x5A5\x5\x104\x83\x2\x5A5\x5B5\x5\xA6T\x2\x5A6\x5A8\x5\x104\x83"+ - "\x2\x5A7\x5A6\x3\x2\x2\x2\x5A7\x5A8\x3\x2\x2\x2\x5A8\x5A9\x3\x2\x2\x2"+ - "\x5A9\x5AB\a)\x2\x2\x5AA\x5AC\x5\x104\x83\x2\x5AB\x5AA\x3\x2\x2\x2\x5AB"+ - "\x5AC\x3\x2\x2\x2\x5AC\x5AD\x3\x2\x2\x2\x5AD\x5B3\x5\x92J\x2\x5AE\x5AF"+ - "\x5\x104\x83\x2\x5AF\x5B0\a\xBE\x2\x2\x5B0\x5B1\x5\x104\x83\x2\x5B1\x5B2"+ - "\x5\x92J\x2\x5B2\x5B4\x3\x2\x2\x2\x5B3\x5AE\x3\x2\x2\x2\x5B3\x5B4\x3\x2"+ - "\x2\x2\x5B4\x5B6\x3\x2\x2\x2\x5B5\x5A7\x3\x2\x2\x2\x5B5\x5B6\x3\x2\x2"+ - "\x2\x5B6\x91\x3\x2\x2\x2\x5B7\x5B8\bJ\x1\x2\x5B8\x5BA\a\x8D\x2\x2\x5B9"+ - "\x5BB\x5\x104\x83\x2\x5BA\x5B9\x3\x2\x2\x2\x5BA\x5BB\x3\x2\x2\x2\x5BB"+ - "\x5BC\x3\x2\x2\x2\x5BC\x5E5\x5\x92J\x15\x5BD\x5BF\a\x34\x2\x2\x5BE\x5C0"+ - "\x5\x104\x83\x2\x5BF\x5BE\x3\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C1"+ - "\x3\x2\x2\x2\x5C1\x5E5\x5\x92J\x12\x5C2\x5C4\x5\xB2Z\x2\x5C3\x5C5\x5\x104"+ - "\x83\x2\x5C4\x5C3\x3\x2\x2\x2\x5C4\x5C5\x3\x2\x2\x2\x5C5\x5C6\x3\x2\x2"+ - "\x2\x5C6\x5C8\a\xCD\x2\x2\x5C7\x5C9\x5\x104\x83\x2\x5C8\x5C7\x3\x2\x2"+ - "\x2\x5C8\x5C9\x3\x2\x2\x2\x5C9\x5CA\x3\x2\x2\x2\x5CA\x5CB\x5\x92J\x11"+ - "\x5CB\x5E5\x3\x2\x2\x2\x5CC\x5CE\a\xD6\x2\x2\x5CD\x5CF\x5\x104\x83\x2"+ - "\x5CE\x5CD\x3\x2\x2\x2\x5CE\x5CF\x3\x2\x2\x2\x5CF\x5D0\x3\x2\x2\x2\x5D0"+ - "\x5E5\x5\x92J\xF\x5D1\x5D3\a\x8E\x2\x2\x5D2\x5D4\x5\x104\x83\x2\x5D3\x5D2"+ - "\x3\x2\x2\x2\x5D3\x5D4\x3\x2\x2\x2\x5D4\x5D5\x3\x2\x2\x2\x5D5\x5E5\x5"+ - "\x92J\b\x5D6\x5E5\x5\xE4s\x2\x5D7\x5E5\x5\xB2Z\x2\x5D8\x5DA\a\xD4\x2\x2"+ - "\x5D9\x5DB\x5\x104\x83\x2\x5DA\x5D9\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2"+ - "\x5DB\x5DC\x3\x2\x2\x2\x5DC\x5DE\x5\x92J\x2\x5DD\x5DF\x5\x104\x83\x2\x5DE"+ - "\x5DD\x3\x2\x2\x2\x5DE\x5DF\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1"+ - "\a\xDB\x2\x2\x5E1\x5E5\x3\x2\x2\x2\x5E2\x5E5\x5\x94K\x2\x5E3\x5E5\x5X"+ - "-\x2\x5E4\x5B7\x3\x2\x2\x2\x5E4\x5BD\x3\x2\x2\x2\x5E4\x5C2\x3\x2\x2\x2"+ - "\x5E4\x5CC\x3\x2\x2\x2\x5E4\x5D1\x3\x2\x2\x2\x5E4\x5D6\x3\x2\x2\x2\x5E4"+ - "\x5D7\x3\x2\x2\x2\x5E4\x5D8\x3\x2\x2\x2\x5E4\x5E2\x3\x2\x2\x2\x5E4\x5E3"+ - "\x3\x2\x2\x2\x5E5\x654\x3\x2\x2\x2\x5E6\x5E8\f\x10\x2\x2\x5E7\x5E9\x5"+ - "\x104\x83\x2\x5E8\x5E7\x3\x2\x2\x2\x5E8\x5E9\x3\x2\x2\x2\x5E9\x5EA\x3"+ - "\x2\x2\x2\x5EA\x5EC\a\xDA\x2\x2\x5EB\x5ED\x5\x104\x83\x2\x5EC\x5EB\x3"+ - "\x2\x2\x2\x5EC\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x653\x5\x92"+ - "J\x11\x5EF\x5F1\f\xE\x2\x2\x5F0\x5F2\x5\x104\x83\x2\x5F1\x5F0\x3\x2\x2"+ - "\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F5\t\f\x2\x2\x5F4"+ - "\x5F6\x5\x104\x83\x2\x5F5\x5F4\x3\x2\x2\x2\x5F5\x5F6\x3\x2\x2\x2\x5F6"+ - "\x5F7\x3\x2\x2\x2\x5F7\x653\x5\x92J\xF\x5F8\x5FA\f\r\x2\x2\x5F9\x5FB\x5"+ - "\x104\x83\x2\x5FA\x5F9\x3\x2\x2\x2\x5FA\x5FB\x3\x2\x2\x2\x5FB\x5FC\x3"+ - "\x2\x2\x2\x5FC\x5FE\a\xCF\x2\x2\x5FD\x5FF\x5\x104\x83\x2\x5FE\x5FD\x3"+ - "\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x3\x2\x2\x2\x600\x653\x5\x92"+ - "J\xE\x601\x603\f\f\x2\x2\x602\x604\x5\x104\x83\x2\x603\x602\x3\x2\x2\x2"+ - "\x603\x604\x3\x2\x2\x2\x604\x605\x3\x2\x2\x2\x605\x607\a\x8B\x2\x2\x606"+ - "\x608\x5\x104\x83\x2\x607\x606\x3\x2\x2\x2\x607\x608\x3\x2\x2\x2\x608"+ - "\x609\x3\x2\x2\x2\x609\x653\x5\x92J\r\x60A\x60C\f\v\x2\x2\x60B\x60D\x5"+ - "\x104\x83\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3"+ - "\x2\x2\x2\x60E\x610\t\r\x2\x2\x60F\x611\x5\x104\x83\x2\x610\x60F\x3\x2"+ - "\x2\x2\x610\x611\x3\x2\x2\x2\x611\x612\x3\x2\x2\x2\x612\x653\x5\x92J\f"+ - "\x613\x615\f\n\x2\x2\x614\x616\x5\x104\x83\x2\x615\x614\x3\x2\x2\x2\x615"+ - "\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2\x617\x619\a\x32\x2\x2\x618\x61A"+ - "\x5\x104\x83\x2\x619\x618\x3\x2\x2\x2\x619\x61A\x3\x2\x2\x2\x61A\x61B"+ - "\x3\x2\x2\x2\x61B\x653\x5\x92J\v\x61C\x61E\f\t\x2\x2\x61D\x61F\x5\x104"+ - "\x83\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F\x3\x2\x2\x2\x61F\x620\x3\x2\x2"+ - "\x2\x620\x622\t\xE\x2\x2\x621\x623\x5\x104\x83\x2\x622\x621\x3\x2\x2\x2"+ - "\x622\x623\x3\x2\x2\x2\x623\x624\x3\x2\x2\x2\x624\x653\x5\x92J\n\x625"+ - "\x627\f\a\x2\x2\x626\x628\x5\x104\x83\x2\x627\x626\x3\x2\x2\x2\x627\x628"+ - "\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B\a\x36\x2\x2\x62A\x62C\x5"+ - "\x104\x83\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C\x3\x2\x2\x2\x62C\x62D\x3"+ - "\x2\x2\x2\x62D\x653\x5\x92J\b\x62E\x630\f\x6\x2\x2\x62F\x631\x5\x104\x83"+ - "\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631\x632\x3\x2\x2\x2"+ - "\x632\x634\a\x9A\x2\x2\x633\x635\x5\x104\x83\x2\x634\x633\x3\x2\x2\x2"+ - "\x634\x635\x3\x2\x2\x2\x635\x636\x3\x2\x2\x2\x636\x653\x5\x92J\a\x637"+ - "\x639\f\x5\x2\x2\x638\x63A\x5\x104\x83\x2\x639\x638\x3\x2\x2\x2\x639\x63A"+ - "\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a\xCC\x2\x2\x63C\x63E\x5"+ - "\x104\x83\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2\x2\x2\x63E\x63F\x3"+ - "\x2\x2\x2\x63F\x653\x5\x92J\x6\x640\x642\f\x4\x2\x2\x641\x643\x5\x104"+ - "\x83\x2\x642\x641\x3\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\x644\x3\x2\x2"+ - "\x2\x644\x646\a\x66\x2\x2\x645\x647\x5\x104\x83\x2\x646\x645\x3\x2\x2"+ - "\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648\x653\x5\x92J\x5\x649"+ - "\x64B\f\x3\x2\x2\x64A\x64C\x5\x104\x83\x2\x64B\x64A\x3\x2\x2\x2\x64B\x64C"+ - "\x3\x2\x2\x2\x64C\x64D\x3\x2\x2\x2\x64D\x64F\ax\x2\x2\x64E\x650\x5\x104"+ - "\x83\x2\x64F\x64E\x3\x2\x2\x2\x64F\x650\x3\x2\x2\x2\x650\x651\x3\x2\x2"+ - "\x2\x651\x653\x5\x92J\x4\x652\x5E6\x3\x2\x2\x2\x652\x5EF\x3\x2\x2\x2\x652"+ - "\x5F8\x3\x2\x2\x2\x652\x601\x3\x2\x2\x2\x652\x60A\x3\x2\x2\x2\x652\x613"+ - "\x3\x2\x2\x2\x652\x61C\x3\x2\x2\x2\x652\x625\x3\x2\x2\x2\x652\x62E\x3"+ - "\x2\x2\x2\x652\x637\x3\x2\x2\x2\x652\x640\x3\x2\x2\x2\x652\x649\x3\x2"+ - "\x2\x2\x653\x656\x3\x2\x2\x2\x654\x652\x3\x2\x2\x2\x654\x655\x3\x2\x2"+ - "\x2\x655\x93\x3\x2\x2\x2\x656\x654\x3\x2\x2\x2\x657\x658\a\xC1\x2\x2\x658"+ - "\x659\x5\x104\x83\x2\x659\x65F\x5\x92J\x2\x65A\x65B\x5\x104\x83\x2\x65B"+ - "\x65C\a|\x2\x2\x65C\x65D\x5\x104\x83\x2\x65D\x65E\x5\xE8u\x2\x65E\x660"+ - "\x3\x2\x2\x2\x65F\x65A\x3\x2\x2\x2\x65F\x660\x3\x2\x2\x2\x660\x95\x3\x2"+ - "\x2\x2\x661\x665\aU\x2\x2\x662\x665\a\xB6\x2\x2\x663\x665\x5\xECw\x2\x664"+ - "\x661\x3\x2\x2\x2\x664\x662\x3\x2\x2\x2\x664\x663\x3\x2\x2\x2\x665\x666"+ - "\x3\x2\x2\x2\x666\x669\x5\x104\x83\x2\x667\x668\a\xCA\x2\x2\x668\x66A"+ - "\x5\x104\x83\x2\x669\x667\x3\x2\x2\x2\x669\x66A\x3\x2\x2\x2\x66A\x66B"+ - "\x3\x2\x2\x2\x66B\x66C\x5\x98M\x2\x66C\x97\x3\x2\x2\x2\x66D\x678\x5\x9A"+ - "N\x2\x66E\x670\x5\x104\x83\x2\x66F\x66E\x3\x2\x2\x2\x66F\x670\x3\x2\x2"+ - "\x2\x670\x671\x3\x2\x2\x2\x671\x673\a)\x2\x2\x672\x674\x5\x104\x83\x2"+ - "\x673\x672\x3\x2\x2\x2\x673\x674\x3\x2\x2\x2\x674\x675\x3\x2\x2\x2\x675"+ - "\x677\x5\x9AN\x2\x676\x66F\x3\x2\x2\x2\x677\x67A\x3\x2\x2\x2\x678\x676"+ - "\x3\x2\x2\x2\x678\x679\x3\x2\x2\x2\x679\x99\x3\x2\x2\x2\x67A\x678\x3\x2"+ - "\x2\x2\x67B\x68D\x5\xD4k\x2\x67C\x67E\x5\x104\x83\x2\x67D\x67C\x3\x2\x2"+ - "\x2\x67D\x67E\x3\x2\x2\x2\x67E\x67F\x3\x2\x2\x2\x67F\x681\a\xD4\x2\x2"+ - "\x680\x682\x5\x104\x83\x2\x681\x680\x3\x2\x2\x2\x681\x682\x3\x2\x2\x2"+ - "\x682\x687\x3\x2\x2\x2\x683\x685\x5\xCEh\x2\x684\x686\x5\x104\x83\x2\x685"+ - "\x684\x3\x2\x2\x2\x685\x686\x3\x2\x2\x2\x686\x688\x3\x2\x2\x2\x687\x683"+ - "\x3\x2\x2\x2\x687\x688\x3\x2\x2\x2\x688\x689\x3\x2\x2\x2\x689\x68B\a\xDB"+ - "\x2\x2\x68A\x68C\x5\x104\x83\x2\x68B\x68A\x3\x2\x2\x2\x68B\x68C\x3\x2"+ - "\x2\x2\x68C\x68E\x3\x2\x2\x2\x68D\x67D\x3\x2\x2\x2\x68D\x68E\x3\x2\x2"+ - "\x2\x68E\x690\x3\x2\x2\x2\x68F\x691\x5\xEAv\x2\x690\x68F\x3\x2\x2\x2\x690"+ - "\x691\x3\x2\x2\x2\x691\x695\x3\x2\x2\x2\x692\x693\x5\x104\x83\x2\x693"+ - "\x694\x5\xD6l\x2\x694\x696\x3\x2\x2\x2\x695\x692\x3\x2\x2\x2\x695\x696"+ - "\x3\x2\x2\x2\x696\x9B\x3\x2\x2\x2\x697\x698\a\xC7\x2\x2\x698\x699\x5\x104"+ - "\x83\x2\x699\x69A\x5\x92J\x2\x69A\x69C\x5\xF4{\x2\x69B\x69D\x5\x1A\xE"+ - "\x2\x69C\x69B\x3\x2\x2\x2\x69C\x69D\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2"+ - "\x69E\x69F\a\xC6\x2\x2\x69F\x9D\x3\x2\x2\x2\x6A0\x6A1\a\xC8\x2\x2\x6A1"+ - "\x6A2\x5\x104\x83\x2\x6A2\x6A4\x5\xA6T\x2\x6A3\x6A5\x5\x104\x83\x2\x6A4"+ - "\x6A3\x3\x2\x2\x2\x6A4\x6A5\x3\x2\x2\x2\x6A5\x6A6\x3\x2\x2\x2\x6A6\x6A8"+ - "\a)\x2\x2\x6A7\x6A9\x5\x104\x83\x2\x6A8\x6A7\x3\x2\x2\x2\x6A8\x6A9\x3"+ - "\x2\x2\x2\x6A9\x6AA\x3\x2\x2\x2\x6AA\x6AB\x5\x92J\x2\x6AB\x9F\x3\x2\x2"+ - "\x2\x6AC\x6AD\a\xC9\x2\x2\x6AD\x6AE\x5\x104\x83\x2\x6AE\x6AF\x5\xA2R\x2"+ - "\x6AF\x6B1\x5\xF4{\x2\x6B0\x6B2\x5\x1A\xE\x2\x6B1\x6B0\x3\x2\x2\x2\x6B1"+ - "\x6B2\x3\x2\x2\x2\x6B2\x6B3\x3\x2\x2\x2\x6B3\x6B4\a\x63\x2\x2\x6B4\xA1"+ - "\x3\x2\x2\x2\x6B5\x6B6\x5\x92J\x2\x6B6\xA3\x3\x2\x2\x2\x6B7\x6B8\a\xCB"+ - "\x2\x2\x6B8\x6B9\x5\x104\x83\x2\x6B9\x6BB\x5\xA6T\x2\x6BA\x6BC\x5\x104"+ - "\x83\x2\x6BB\x6BA\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2"+ - "\x2\x6BD\x6C2\a)\x2\x2\x6BE\x6C0\x5\x104\x83\x2\x6BF\x6BE\x3\x2\x2\x2"+ - "\x6BF\x6C0\x3\x2\x2\x2\x6C0\x6C1\x3\x2\x2\x2\x6C1\x6C3\x5\x62\x32\x2\x6C2"+ - "\x6BF\x3\x2\x2\x2\x6C2\x6C3\x3\x2\x2\x2\x6C3\xA5\x3\x2\x2\x2\x6C4\x6C6"+ - "\a.\x2\x2\x6C5\x6C4\x3\x2\x2\x2\x6C5\x6C6\x3\x2\x2\x2\x6C6\x6C7\x3\x2"+ - "\x2\x2\x6C7\x6C8\x5\x92J\x2\x6C8\xA7\x3\x2\x2\x2\x6C9\x6CA\a@\x2\x2\x6CA"+ - "\x6CB\x5\x104\x83\x2\x6CB\x6CC\x5\xAAV\x2\x6CC\xA9\x3\x2\x2\x2\x6CD\x6CF"+ - "\x5\xB2Z\x2\x6CE\x6CD\x3\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D0\x3\x2"+ - "\x2\x2\x6D0\x6D1\a-\x2\x2\x6D1\x6D3\x5\xD4k\x2\x6D2\x6D4\x5\xEAv\x2\x6D3"+ - "\x6D2\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6E2\x3\x2\x2\x2\x6D5\x6D7"+ - "\x5\x104\x83\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6\x6D7\x3\x2\x2\x2\x6D7\x6D8"+ - "\x3\x2\x2\x2\x6D8\x6DA\a\xD4\x2\x2\x6D9\x6DB\x5\x104\x83\x2\x6DA\x6D9"+ - "\x3\x2\x2\x2\x6DA\x6DB\x3\x2\x2\x2\x6DB\x6DC\x3\x2\x2\x2\x6DC\x6DE\x5"+ - "\xC2\x62\x2\x6DD\x6DF\x5\x104\x83\x2\x6DE\x6DD\x3\x2\x2\x2\x6DE\x6DF\x3"+ - "\x2\x2\x2\x6DF\x6E0\x3\x2\x2\x2\x6E0\x6E1\a\xDB\x2\x2\x6E1\x6E3\x3\x2"+ - "\x2\x2\x6E2\x6D6\x3\x2\x2\x2\x6E2\x6E3\x3\x2\x2\x2\x6E3\x6ED\x3\x2\x2"+ - "\x2\x6E4\x6E6\x5\x104\x83\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2"+ - "\x2\x6E6\x6E7\x3\x2\x2\x2\x6E7\x6E8\a\xD4\x2\x2\x6E8\x6E9\x5\xCEh\x2\x6E9"+ - "\x6EA\a\xDB\x2\x2\x6EA\x6EC\x3\x2\x2\x2\x6EB\x6E5\x3\x2\x2\x2\x6EC\x6EF"+ - "\x3\x2\x2\x2\x6ED\x6EB\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x710\x3"+ - "\x2\x2\x2\x6EF\x6ED\x3\x2\x2\x2\x6F0\x6F2\x5\xD4k\x2\x6F1\x6F3\x5\xEA"+ - "v\x2\x6F2\x6F1\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x701\x3\x2\x2\x2"+ - "\x6F4\x6F6\x5\x104\x83\x2\x6F5\x6F4\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2"+ - "\x6F6\x6F7\x3\x2\x2\x2\x6F7\x6F9\a\xD4\x2\x2\x6F8\x6FA\x5\x104\x83\x2"+ - "\x6F9\x6F8\x3\x2\x2\x2\x6F9\x6FA\x3\x2\x2\x2\x6FA\x6FB\x3\x2\x2\x2\x6FB"+ - "\x6FD\x5\xC2\x62\x2\x6FC\x6FE\x5\x104\x83\x2\x6FD\x6FC\x3\x2\x2\x2\x6FD"+ - "\x6FE\x3\x2\x2\x2\x6FE\x6FF\x3\x2\x2\x2\x6FF\x700\a\xDB\x2\x2\x700\x702"+ - "\x3\x2\x2\x2\x701\x6F5\x3\x2\x2\x2\x701\x702\x3\x2\x2\x2\x702\x70C\x3"+ - "\x2\x2\x2\x703\x705\x5\x104\x83\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3"+ - "\x2\x2\x2\x705\x706\x3\x2\x2\x2\x706\x707\a\xD4\x2\x2\x707\x708\x5\xCE"+ - "h\x2\x708\x709\a\xDB\x2\x2\x709\x70B\x3\x2\x2\x2\x70A\x704\x3\x2\x2\x2"+ - "\x70B\x70E\x3\x2\x2\x2\x70C\x70A\x3\x2\x2\x2\x70C\x70D\x3\x2\x2\x2\x70D"+ - "\x710\x3\x2\x2\x2\x70E\x70C\x3\x2\x2\x2\x70F\x6CE\x3\x2\x2\x2\x70F\x6F0"+ - "\x3\x2\x2\x2\x710\xAB\x3\x2\x2\x2\x711\x714\x5\xAEX\x2\x712\x714\x5\xB0"+ - "Y\x2\x713\x711\x3\x2\x2\x2\x713\x712\x3\x2\x2\x2\x714\xAD\x3\x2\x2\x2"+ - "\x715\x717\x5\xB2Z\x2\x716\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717"+ - "\x719\x3\x2\x2\x2\x718\x71A\x5\x104\x83\x2\x719\x718\x3\x2\x2\x2\x719"+ - "\x71A\x3\x2\x2\x2\x71A\x71B\x3\x2\x2\x2\x71B\x71D\a-\x2\x2\x71C\x71E\x5"+ - "\x104\x83\x2\x71D\x71C\x3\x2\x2\x2\x71D\x71E\x3\x2\x2\x2\x71E\x71F\x3"+ - "\x2\x2\x2\x71F\x721\x5\xD2j\x2\x720\x722\x5\xEAv\x2\x721\x720\x3\x2\x2"+ - "\x2\x721\x722\x3\x2\x2\x2\x722\x726\x3\x2\x2\x2\x723\x724\x5\x104\x83"+ - "\x2\x724\x725\x5\xC2\x62\x2\x725\x727\x3\x2\x2\x2\x726\x723\x3\x2\x2\x2"+ - "\x726\x727\x3\x2\x2\x2\x727\x72C\x3\x2\x2\x2\x728\x72A\x5\x104\x83\x2"+ - "\x729\x728\x3\x2\x2\x2\x729\x72A\x3\x2\x2\x2\x72A\x72B\x3\x2\x2\x2\x72B"+ - "\x72D\x5\xC6\x64\x2\x72C\x729\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2\x72D\x737"+ - "\x3\x2\x2\x2\x72E\x730\x5\x104\x83\x2\x72F\x72E\x3\x2\x2\x2\x72F\x730"+ - "\x3\x2\x2\x2\x730\x731\x3\x2\x2\x2\x731\x732\a\xD4\x2\x2\x732\x733\x5"+ - "\xCEh\x2\x733\x734\a\xDB\x2\x2\x734\x736\x3\x2\x2\x2\x735\x72F\x3\x2\x2"+ - "\x2\x736\x739\x3\x2\x2\x2\x737\x735\x3\x2\x2\x2\x737\x738\x3\x2\x2\x2"+ - "\x738\xAF\x3\x2\x2\x2\x739\x737\x3\x2\x2\x2\x73A\x73E\x5\xD4k\x2\x73B"+ - "\x73C\x5\x104\x83\x2\x73C\x73D\x5\xC2\x62\x2\x73D\x73F\x3\x2\x2\x2\x73E"+ - "\x73B\x3\x2\x2\x2\x73E\x73F\x3\x2\x2\x2\x73F\x749\x3\x2\x2\x2\x740\x742"+ - "\x5\x104\x83\x2\x741\x740\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x743"+ - "\x3\x2\x2\x2\x743\x744\a\xD4\x2\x2\x744\x745\x5\xCEh\x2\x745\x746\a\xDB"+ - "\x2\x2\x746\x748\x3\x2\x2\x2\x747\x741\x3\x2\x2\x2\x748\x74B\x3\x2\x2"+ - "\x2\x749\x747\x3\x2\x2\x2\x749\x74A\x3\x2\x2\x2\x74A\xB1\x3\x2\x2\x2\x74B"+ - "\x749\x3\x2\x2\x2\x74C\x751\x5\xBC_\x2\x74D\x751\x5\xB4[\x2\x74E\x751"+ - "\x5\xB6\\\x2\x74F\x751\x5\xC0\x61\x2\x750\x74C\x3\x2\x2\x2\x750\x74D\x3"+ - "\x2\x2\x2\x750\x74E\x3\x2\x2\x2\x750\x74F\x3\x2\x2\x2\x751\xB3\x3\x2\x2"+ - "\x2\x752\x754\x5\xD4k\x2\x753\x755\x5\xEAv\x2\x754\x753\x3\x2\x2\x2\x754"+ - "\x755\x3\x2\x2\x2\x755\x75A\x3\x2\x2\x2\x756\x758\x5\x104\x83\x2\x757"+ - "\x756\x3\x2\x2\x2\x757\x758\x3\x2\x2\x2\x758\x759\x3\x2\x2\x2\x759\x75B"+ - "\x5\xC6\x64\x2\x75A\x757\x3\x2\x2\x2\x75A\x75B\x3\x2\x2\x2\x75B\x765\x3"+ - "\x2\x2\x2\x75C\x75E\x5\x104\x83\x2\x75D\x75C\x3\x2\x2\x2\x75D\x75E\x3"+ - "\x2\x2\x2\x75E\x75F\x3\x2\x2\x2\x75F\x760\a\xD4\x2\x2\x760\x761\x5\xCE"+ - "h\x2\x761\x762\a\xDB\x2\x2\x762\x764\x3\x2\x2\x2\x763\x75D\x3\x2\x2\x2"+ - "\x764\x767\x3\x2\x2\x2\x765\x763\x3\x2\x2\x2\x765\x766\x3\x2\x2\x2\x766"+ - "\xB5\x3\x2\x2\x2\x767\x765\x3\x2\x2\x2\x768\x76B\x5\xD4k\x2\x769\x76B"+ - "\x5\xD8m\x2\x76A\x768\x3\x2\x2\x2\x76A\x769\x3\x2\x2\x2\x76B\x76D\x3\x2"+ - "\x2\x2\x76C\x76E\x5\xEAv\x2\x76D\x76C\x3\x2\x2\x2\x76D\x76E\x3\x2\x2\x2"+ - "\x76E\x770\x3\x2\x2\x2\x76F\x771\x5\x104\x83\x2\x770\x76F\x3\x2\x2\x2"+ - "\x770\x771\x3\x2\x2\x2\x771\x772\x3\x2\x2\x2\x772\x774\a\xD4\x2\x2\x773"+ - "\x775\x5\x104\x83\x2\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775"+ - "\x77A\x3\x2\x2\x2\x776\x778\x5\xC2\x62\x2\x777\x779\x5\x104\x83\x2\x778"+ - "\x777\x3\x2\x2\x2\x778\x779\x3\x2\x2\x2\x779\x77B\x3\x2\x2\x2\x77A\x776"+ - "\x3\x2\x2\x2\x77A\x77B\x3\x2\x2\x2\x77B\x77C\x3\x2\x2\x2\x77C\x781\a\xDB"+ - "\x2\x2\x77D\x77F\x5\x104\x83\x2\x77E\x77D\x3\x2\x2\x2\x77E\x77F\x3\x2"+ - "\x2\x2\x77F\x780\x3\x2\x2\x2\x780\x782\x5\xC6\x64\x2\x781\x77E\x3\x2\x2"+ - "\x2\x781\x782\x3\x2\x2\x2\x782\x78C\x3\x2\x2\x2\x783\x785\x5\x104\x83"+ - "\x2\x784\x783\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x786\x3\x2\x2\x2"+ - "\x786\x787\a\xD4\x2\x2\x787\x788\x5\xCEh\x2\x788\x789\a\xDB\x2\x2\x789"+ - "\x78B\x3\x2\x2\x2\x78A\x784\x3\x2\x2\x2\x78B\x78E\x3\x2\x2\x2\x78C\x78A"+ - "\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\xB7\x3\x2\x2\x2\x78E\x78C\x3\x2"+ - "\x2\x2\x78F\x791\x5\xD2j\x2\x790\x792\x5\xEAv\x2\x791\x790\x3\x2\x2\x2"+ - "\x791\x792\x3\x2\x2\x2\x792\x797\x3\x2\x2\x2\x793\x795\x5\x104\x83\x2"+ - "\x794\x793\x3\x2\x2\x2\x794\x795\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796"+ - "\x798\x5\xC6\x64\x2\x797\x794\x3\x2\x2\x2\x797\x798\x3\x2\x2\x2\x798\x7A2"+ - "\x3\x2\x2\x2\x799\x79B\x5\x104\x83\x2\x79A\x799\x3\x2\x2\x2\x79A\x79B"+ - "\x3\x2\x2\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79D\a\xD4\x2\x2\x79D\x79E\x5"+ - "\xCEh\x2\x79E\x79F\a\xDB\x2\x2\x79F\x7A1\x3\x2\x2\x2\x7A0\x79A\x3\x2\x2"+ - "\x2\x7A1\x7A4\x3\x2\x2\x2\x7A2\x7A0\x3\x2\x2\x2\x7A2\x7A3\x3\x2\x2\x2"+ - "\x7A3\xB9\x3\x2\x2\x2\x7A4\x7A2\x3\x2\x2\x2\x7A5\x7A8\x5\xD2j\x2\x7A6"+ - "\x7A8\x5\xD8m\x2\x7A7\x7A5\x3\x2\x2\x2\x7A7\x7A6\x3\x2\x2\x2\x7A8\x7AA"+ - "\x3\x2\x2\x2\x7A9\x7AB\x5\xEAv\x2\x7AA\x7A9\x3\x2\x2\x2\x7AA\x7AB\x3\x2"+ - "\x2\x2\x7AB\x7AD\x3\x2\x2\x2\x7AC\x7AE\x5\x104\x83\x2\x7AD\x7AC\x3\x2"+ - "\x2\x2\x7AD\x7AE\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B1\a\xD4\x2"+ - "\x2\x7B0\x7B2\x5\x104\x83\x2\x7B1\x7B0\x3\x2\x2\x2\x7B1\x7B2\x3\x2\x2"+ - "\x2\x7B2\x7B7\x3\x2\x2\x2\x7B3\x7B5\x5\xC2\x62\x2\x7B4\x7B6\x5\x104\x83"+ - "\x2\x7B5\x7B4\x3\x2\x2\x2\x7B5\x7B6\x3\x2\x2\x2\x7B6\x7B8\x3\x2\x2\x2"+ - "\x7B7\x7B3\x3\x2\x2\x2\x7B7\x7B8\x3\x2\x2\x2\x7B8\x7B9\x3\x2\x2\x2\x7B9"+ - "\x7BE\a\xDB\x2\x2\x7BA\x7BC\x5\x104\x83\x2\x7BB\x7BA\x3\x2\x2\x2\x7BB"+ - "\x7BC\x3\x2\x2\x2\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BF\x5\xC6\x64\x2\x7BE\x7BB"+ - "\x3\x2\x2\x2\x7BE\x7BF\x3\x2\x2\x2\x7BF\x7C9\x3\x2\x2\x2\x7C0\x7C2\x5"+ - "\x104\x83\x2\x7C1\x7C0\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C3\x3"+ - "\x2\x2\x2\x7C3\x7C4\a\xD4\x2\x2\x7C4\x7C5\x5\xCEh\x2\x7C5\x7C6\a\xDB\x2"+ - "\x2\x7C6\x7C8\x3\x2\x2\x2\x7C7\x7C1\x3\x2\x2\x2\x7C8\x7CB\x3\x2\x2\x2"+ - "\x7C9\x7C7\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\xBB\x3\x2\x2\x2\x7CB"+ - "\x7C9\x3\x2\x2\x2\x7CC\x7CF\x5\xB4[\x2\x7CD\x7CF\x5\xB6\\\x2\x7CE\x7CC"+ - "\x3\x2\x2\x2\x7CE\x7CD\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D4\x3"+ - "\x2\x2\x2\x7D0\x7D2\x5\xBE`\x2\x7D1\x7D3\x5\x104\x83\x2\x7D2\x7D1\x3\x2"+ - "\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D5\x3\x2\x2\x2\x7D4\x7D0\x3\x2\x2"+ - "\x2\x7D5\x7D6\x3\x2\x2\x2\x7D6\x7D4\x3\x2\x2\x2\x7D6\x7D7\x3\x2\x2\x2"+ - "\x7D7\x7DC\x3\x2\x2\x2\x7D8\x7DA\x5\x104\x83\x2\x7D9\x7D8\x3\x2\x2\x2"+ - "\x7D9\x7DA\x3\x2\x2\x2\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x5\xC6\x64\x2\x7DC"+ - "\x7D9\x3\x2\x2\x2\x7DC\x7DD\x3\x2\x2\x2\x7DD\x7E7\x3\x2\x2\x2\x7DE\x7E0"+ - "\x5\x104\x83\x2\x7DF\x7DE\x3\x2\x2\x2\x7DF\x7E0\x3\x2\x2\x2\x7E0\x7E1"+ - "\x3\x2\x2\x2\x7E1\x7E2\a\xD4\x2\x2\x7E2\x7E3\x5\xCEh\x2\x7E3\x7E4\a\xDB"+ - "\x2\x2\x7E4\x7E6\x3\x2\x2\x2\x7E5\x7DF\x3\x2\x2\x2\x7E6\x7E9\x3\x2\x2"+ - "\x2\x7E7\x7E5\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\xBD\x3\x2\x2\x2\x7E9"+ - "\x7E7\x3\x2\x2\x2\x7EA\x7EC\t\xF\x2\x2\x7EB\x7ED\x5\x104\x83\x2\x7EC\x7EB"+ - "\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED\x7F0\x3\x2\x2\x2\x7EE\x7F1\x5"+ - "\xB8]\x2\x7EF\x7F1\x5\xBA^\x2\x7F0\x7EE\x3\x2\x2\x2\x7F0\x7EF\x3\x2\x2"+ - "\x2\x7F1\xBF\x3\x2\x2\x2\x7F2\x7F4\x5\x104\x83\x2\x7F3\x7F2\x3\x2\x2\x2"+ - "\x7F3\x7F4\x3\x2\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F6\x5\xC6\x64\x2\x7F6"+ - "\xC1\x3\x2\x2\x2\x7F7\x7F9\x5\xC4\x63\x2\x7F8\x7F7\x3\x2\x2\x2\x7F8\x7F9"+ - "\x3\x2\x2\x2\x7F9\x7FB\x3\x2\x2\x2\x7FA\x7FC\x5\x104\x83\x2\x7FB\x7FA"+ - "\x3\x2\x2\x2\x7FB\x7FC\x3\x2\x2\x2\x7FC\x7FD\x3\x2\x2\x2\x7FD\x7FF\t\n"+ - "\x2\x2\x7FE\x800\x5\x104\x83\x2\x7FF\x7FE\x3\x2\x2\x2\x7FF\x800\x3\x2"+ - "\x2\x2\x800\x802\x3\x2\x2\x2\x801\x7F8\x3\x2\x2\x2\x802\x805\x3\x2\x2"+ - "\x2\x803\x801\x3\x2\x2\x2\x803\x804\x3\x2\x2\x2\x804\x806\x3\x2\x2\x2"+ - "\x805\x803\x3\x2\x2\x2\x806\x813\x5\xC4\x63\x2\x807\x809\x5\x104\x83\x2"+ - "\x808\x807\x3\x2\x2\x2\x808\x809\x3\x2\x2\x2\x809\x80A\x3\x2\x2\x2\x80A"+ - "\x80C\t\n\x2\x2\x80B\x80D\x5\x104\x83\x2\x80C\x80B\x3\x2\x2\x2\x80C\x80D"+ - "\x3\x2\x2\x2\x80D\x80F\x3\x2\x2\x2\x80E\x810\x5\xC4\x63\x2\x80F\x80E\x3"+ - "\x2\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x812\x3\x2\x2\x2\x811\x808\x3\x2"+ - "\x2\x2\x812\x815\x3\x2\x2\x2\x813\x811\x3\x2\x2\x2\x813\x814\x3\x2\x2"+ - "\x2\x814\xC3\x3\x2\x2\x2\x815\x813\x3\x2\x2\x2\x816\x818\a\xD4\x2\x2\x817"+ - "\x816\x3\x2\x2\x2\x817\x818\x3\x2\x2\x2\x818\x81B\x3\x2\x2\x2\x819\x81A"+ - "\t\x10\x2\x2\x81A\x81C\x5\x104\x83\x2\x81B\x819\x3\x2\x2\x2\x81B\x81C"+ - "\x3\x2\x2\x2\x81C\x81E\x3\x2\x2\x2\x81D\x81F\a\xDB\x2\x2\x81E\x81D\x3"+ - "\x2\x2\x2\x81E\x81F\x3\x2\x2\x2\x81F\x820\x3\x2\x2\x2\x820\x821\x5\x92"+ - "J\x2\x821\xC5\x3\x2\x2\x2\x822\x824\a,\x2\x2\x823\x825\x5\x104\x83\x2"+ - "\x824\x823\x3\x2\x2\x2\x824\x825\x3\x2\x2\x2\x825\x826\x3\x2\x2\x2\x826"+ - "\x828\x5\xD2j\x2\x827\x829\x5\xEAv\x2\x828\x827\x3\x2\x2\x2\x828\x829"+ - "\x3\x2\x2\x2\x829\xC7\x3\x2\x2\x2\x82A\x83C\a\xD4\x2\x2\x82B\x82D\x5\x104"+ - "\x83\x2\x82C\x82B\x3\x2\x2\x2\x82C\x82D\x3\x2\x2\x2\x82D\x82E\x3\x2\x2"+ - "\x2\x82E\x839\x5\xCA\x66\x2\x82F\x831\x5\x104\x83\x2\x830\x82F\x3\x2\x2"+ - "\x2\x830\x831\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x834\a)\x2\x2\x833"+ - "\x835\x5\x104\x83\x2\x834\x833\x3\x2\x2\x2\x834\x835\x3\x2\x2\x2\x835"+ - "\x836\x3\x2\x2\x2\x836\x838\x5\xCA\x66\x2\x837\x830\x3\x2\x2\x2\x838\x83B"+ - "\x3\x2\x2\x2\x839\x837\x3\x2\x2\x2\x839\x83A\x3\x2\x2\x2\x83A\x83D\x3"+ - "\x2\x2\x2\x83B\x839\x3\x2\x2\x2\x83C\x82C\x3\x2\x2\x2\x83C\x83D\x3\x2"+ - "\x2\x2\x83D\x83F\x3\x2\x2\x2\x83E\x840\x5\x104\x83\x2\x83F\x83E\x3\x2"+ - "\x2\x2\x83F\x840\x3\x2\x2\x2\x840\x841\x3\x2\x2\x2\x841\x842\a\xDB\x2"+ - "\x2\x842\xC9\x3\x2\x2\x2\x843\x844\a\x95\x2\x2\x844\x846\x5\x104\x83\x2"+ - "\x845\x843\x3\x2\x2\x2\x845\x846\x3\x2\x2\x2\x846\x849\x3\x2\x2\x2\x847"+ - "\x848\t\x11\x2\x2\x848\x84A\x5\x104\x83\x2\x849\x847\x3\x2\x2\x2\x849"+ - "\x84A\x3\x2\x2\x2\x84A\x84D\x3\x2\x2\x2\x84B\x84C\a\x9C\x2\x2\x84C\x84E"+ - "\x5\x104\x83\x2\x84D\x84B\x3\x2\x2\x2\x84D\x84E\x3\x2\x2\x2\x84E\x84F"+ - "\x3\x2\x2\x2\x84F\x851\x5\xD2j\x2\x850\x852\x5\xEAv\x2\x851\x850\x3\x2"+ - "\x2\x2\x851\x852\x3\x2\x2\x2\x852\x85B\x3\x2\x2\x2\x853\x855\x5\x104\x83"+ - "\x2\x854\x853\x3\x2\x2\x2\x854\x855\x3\x2\x2\x2\x855\x856\x3\x2\x2\x2"+ - "\x856\x858\a\xD4\x2\x2\x857\x859\x5\x104\x83\x2\x858\x857\x3\x2\x2\x2"+ - "\x858\x859\x3\x2\x2\x2\x859\x85A\x3\x2\x2\x2\x85A\x85C\a\xDB\x2\x2\x85B"+ - "\x854\x3\x2\x2\x2\x85B\x85C\x3\x2\x2\x2\x85C\x861\x3\x2\x2\x2\x85D\x85F"+ - "\x5\x104\x83\x2\x85E\x85D\x3\x2\x2\x2\x85E\x85F\x3\x2\x2\x2\x85F\x860"+ - "\x3\x2\x2\x2\x860\x862\x5\xD6l\x2\x861\x85E\x3\x2\x2\x2\x861\x862\x3\x2"+ - "\x2\x2\x862\x867\x3\x2\x2\x2\x863\x865\x5\x104\x83\x2\x864\x863\x3\x2"+ - "\x2\x2\x864\x865\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x868\x5\xCCg\x2"+ - "\x867\x864\x3\x2\x2\x2\x867\x868\x3\x2\x2\x2\x868\xCB\x3\x2\x2\x2\x869"+ - "\x86B\a\xD0\x2\x2\x86A\x86C\x5\x104\x83\x2\x86B\x86A\x3\x2\x2\x2\x86B"+ - "\x86C\x3\x2\x2\x2\x86C\x86D\x3\x2\x2\x2\x86D\x86E\x5\x92J\x2\x86E\xCD"+ - "\x3\x2\x2\x2\x86F\x87A\x5\xD0i\x2\x870\x872\x5\x104\x83\x2\x871\x870\x3"+ - "\x2\x2\x2\x871\x872\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x875\a)\x2"+ - "\x2\x874\x876\x5\x104\x83\x2\x875\x874\x3\x2\x2\x2\x875\x876\x3\x2\x2"+ - "\x2\x876\x877\x3\x2\x2\x2\x877\x879\x5\xD0i\x2\x878\x871\x3\x2\x2\x2\x879"+ - "\x87C\x3\x2\x2\x2\x87A\x878\x3\x2\x2\x2\x87A\x87B\x3\x2\x2\x2\x87B\xCF"+ - "\x3\x2\x2\x2\x87C\x87A\x3\x2\x2\x2\x87D\x87E\x5\x92J\x2\x87E\x87F\x5\x104"+ - "\x83\x2\x87F\x880\a\xBE\x2\x2\x880\x881\x5\x104\x83\x2\x881\x883\x3\x2"+ - "\x2\x2\x882\x87D\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x884\x3\x2\x2"+ - "\x2\x884\x885\x5\x92J\x2\x885\xD1\x3\x2\x2\x2\x886\x889\x5\xD4k\x2\x887"+ - "\x889\x5\xF0y\x2\x888\x886\x3\x2\x2\x2\x888\x887\x3\x2\x2\x2\x889\xD3"+ - "\x3\x2\x2\x2\x88A\x88D\a\xEF\x2\x2\x88B\x88D\x5\xEEx\x2\x88C\x88A\x3\x2"+ - "\x2\x2\x88C\x88B\x3\x2\x2\x2\x88D\xD5\x3\x2\x2\x2\x88E\x890\a\x39\x2\x2"+ - "\x88F\x891\x5\x104\x83\x2\x890\x88F\x3\x2\x2\x2\x890\x891\x3\x2\x2\x2"+ - "\x891\x894\x3\x2\x2\x2\x892\x893\a\x8D\x2\x2\x893\x895\x5\x104\x83\x2"+ - "\x894\x892\x3\x2\x2\x2\x894\x895\x3\x2\x2\x2\x895\x896\x3\x2\x2\x2\x896"+ - "\x89B\x5\xE8u\x2\x897\x899\x5\x104\x83\x2\x898\x897\x3\x2\x2\x2\x898\x899"+ - "\x3\x2\x2\x2\x899\x89A\x3\x2\x2\x2\x89A\x89C\x5\xDEp\x2\x89B\x898\x3\x2"+ - "\x2\x2\x89B\x89C\x3\x2\x2\x2\x89C\xD7\x3\x2\x2\x2\x89D\x89E\t\x12\x2\x2"+ - "\x89E\xD9\x3\x2\x2\x2\x89F\x8A0\t\xE\x2\x2\x8A0\xDB\x3\x2\x2\x2\x8A1\x8A6"+ - "\x5\xD4k\x2\x8A2\x8A3\t\xF\x2\x2\x8A3\x8A5\x5\xD4k\x2\x8A4\x8A2\x3\x2"+ - "\x2\x2\x8A5\x8A8\x3\x2\x2\x2\x8A6\x8A4\x3\x2\x2\x2\x8A6\x8A7\x3\x2\x2"+ - "\x2\x8A7\xDD\x3\x2\x2\x2\x8A8\x8A6\x3\x2\x2\x2\x8A9\x8AB\a\xD7\x2\x2\x8AA"+ - "\x8AC\x5\x104\x83\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ - "\x8AF\x3\x2\x2\x2\x8AD\x8B0\x5\xE6t\x2\x8AE\x8B0\x5\xD4k\x2\x8AF\x8AD"+ - "\x3\x2\x2\x2\x8AF\x8AE\x3\x2\x2\x2\x8B0\xDF\x3\x2\x2\x2\x8B1\x8BA\x5\xD4"+ - "k\x2\x8B2\x8B4\x5\x104\x83\x2\x8B3\x8B2\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2"+ - "\x2\x8B4\x8B5\x3\x2\x2\x2\x8B5\x8B7\a\xD6\x2\x2\x8B6\x8B8\x5\x104\x83"+ - "\x2\x8B7\x8B6\x3\x2\x2\x2\x8B7\x8B8\x3\x2\x2\x2\x8B8\x8B9\x3\x2\x2\x2"+ - "\x8B9\x8BB\x5\xD4k\x2\x8BA\x8B3\x3\x2\x2\x2\x8BA\x8BB\x3\x2\x2\x2\x8BB"+ - "\xE1\x3\x2\x2\x2\x8BC\x8BF\x5\xD4k\x2\x8BD\x8BF\x5\xE6t\x2\x8BE\x8BC\x3"+ - "\x2\x2\x2\x8BE\x8BD\x3\x2\x2\x2\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C1\a*\x2"+ - "\x2\x8C1\xE3\x3\x2\x2\x2\x8C2\x8CB\x5\xE6t\x2\x8C3\x8CB\a\xE8\x2\x2\x8C4"+ - "\x8CB\a\xE3\x2\x2\x8C5\x8CB\a\xBF\x2\x2\x8C6\x8CB\ao\x2\x2\x8C7\x8CB\a"+ - "\x8F\x2\x2\x8C8\x8CB\a\x90\x2\x2\x8C9\x8CB\a[\x2\x2\x8CA\x8C2\x3\x2\x2"+ - "\x2\x8CA\x8C3\x3\x2\x2\x2\x8CA\x8C4\x3\x2\x2\x2\x8CA\x8C5\x3\x2\x2\x2"+ - "\x8CA\x8C6\x3\x2\x2\x2\x8CA\x8C7\x3\x2\x2\x2\x8CA\x8C8\x3\x2\x2\x2\x8CA"+ - "\x8C9\x3\x2\x2\x2\x8CB\xE5\x3\x2\x2\x2\x8CC\x8CD\t\x13\x2\x2\x8CD\xE7"+ - "\x3\x2\x2\x2\x8CE\x8D1\x5\xD8m\x2\x8CF\x8D1\x5\xDCo\x2\x8D0\x8CE\x3\x2"+ - "\x2\x2\x8D0\x8CF\x3\x2\x2\x2\x8D1\x8DA\x3\x2\x2\x2\x8D2\x8D4\x5\x104\x83"+ - "\x2\x8D3\x8D2\x3\x2\x2\x2\x8D3\x8D4\x3\x2\x2\x2\x8D4\x8D5\x3\x2\x2\x2"+ - "\x8D5\x8D7\a\xD4\x2\x2\x8D6\x8D8\x5\x104\x83\x2\x8D7\x8D6\x3\x2\x2\x2"+ - "\x8D7\x8D8\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8DB\a\xDB\x2\x2\x8DA"+ - "\x8D3\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\xE9\x3\x2\x2\x2\x8DC\x8DD"+ - "\t\x14\x2\x2\x8DD\xEB\x3\x2\x2\x2\x8DE\x8DF\t\x15\x2\x2\x8DF\xED\x3\x2"+ - "\x2\x2\x8E0\x8E1\t\x16\x2\x2\x8E1\xEF\x3\x2\x2\x2\x8E2\x8E3\t\x17\x2\x2"+ - "\x8E3\xF1\x3\x2\x2\x2\x8E4\x8E6\x5\x104\x83\x2\x8E5\x8E4\x3\x2\x2\x2\x8E5"+ - "\x8E6\x3\x2\x2\x2\x8E6\x8EE\x3\x2\x2\x2\x8E7\x8E9\a\xE9\x2\x2\x8E8\x8E7"+ - "\x3\x2\x2\x2\x8E9\x8EA\x3\x2\x2\x2\x8EA\x8E8\x3\x2\x2\x2\x8EA\x8EB\x3"+ - "\x2\x2\x2\x8EB\x8EF\x3\x2\x2\x2\x8EC\x8EF\x5\xF8}\x2\x8ED\x8EF\x5\xF6"+ - "|\x2\x8EE\x8E8\x3\x2\x2\x2\x8EE\x8EC\x3\x2\x2\x2\x8EE\x8ED\x3\x2\x2\x2"+ - "\x8EF\x8F1\x3\x2\x2\x2\x8F0\x8F2\x5\x104\x83\x2\x8F1\x8F0\x3\x2\x2\x2"+ - "\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F8\x3\x2\x2\x2\x8F3\x8F5\x5\x104\x83\x2"+ - "\x8F4\x8F3\x3\x2\x2\x2\x8F4\x8F5\x3\x2\x2\x2\x8F5\x8F6\x3\x2\x2\x2\x8F6"+ - "\x8F8\x5\xFA~\x2\x8F7\x8E5\x3\x2\x2\x2\x8F7\x8F4\x3\x2\x2\x2\x8F8\xF3"+ - "\x3\x2\x2\x2\x8F9\x902\x5\xF2z\x2\x8FA\x8FC\x5\x104\x83\x2\x8FB\x8FA\x3"+ - "\x2\x2\x2\x8FB\x8FC\x3\x2\x2\x2\x8FC\x8FD\x3\x2\x2\x2\x8FD\x8FF\a*\x2"+ - "\x2\x8FE\x900\x5\x104\x83\x2\x8FF\x8FE\x3\x2\x2\x2\x8FF\x900\x3\x2\x2"+ - "\x2\x900\x902\x3\x2\x2\x2\x901\x8F9\x3\x2\x2\x2\x901\x8FB\x3\x2\x2\x2"+ - "\x902\x905\x3\x2\x2\x2\x903\x901\x3\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904"+ - "\xF5\x3\x2\x2\x2\x905\x903\x3\x2\x2\x2\x906\x907\a\xEA\x2\x2\x907\xF7"+ - "\x3\x2\x2\x2\x908\x909\t\x18\x2\x2\x909\xF9\x3\x2\x2\x2\x90A\x90C\a\xEC"+ - "\x2\x2\x90B\x90D\x5\xFC\x7F\x2\x90C\x90B\x3\x2\x2\x2\x90D\x90E\x3\x2\x2"+ - "\x2\x90E\x90C\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F\xFB\x3\x2\x2\x2\x910"+ - "\x911\a/\x2\x2\x911\x913\x5\xFE\x80\x2\x912\x914\x5\x100\x81\x2\x913\x912"+ - "\x3\x2\x2\x2\x913\x914\x3\x2\x2\x2\x914\xFD\x3\x2\x2\x2\x915\x916\a\xEF"+ - "\x2\x2\x916\xFF\x3\x2\x2\x2\x917\x918\x5\x104\x83\x2\x918\x91A\x5\x102"+ - "\x82\x2\x919\x91B\x5\x104\x83\x2\x91A\x919\x3\x2\x2\x2\x91A\x91B\x3\x2"+ - "\x2\x2\x91B\x955\x3\x2\x2\x2\x91C\x91D\x5\x104\x83\x2\x91D\x926\x5\x102"+ - "\x82\x2\x91E\x920\x5\x104\x83\x2\x91F\x91E\x3\x2\x2\x2\x91F\x920\x3\x2"+ - "\x2\x2\x920\x921\x3\x2\x2\x2\x921\x923\a)\x2\x2\x922\x924\x5\x104\x83"+ - "\x2\x923\x922\x3\x2\x2\x2\x923\x924\x3\x2\x2\x2\x924\x925\x3\x2\x2\x2"+ - "\x925\x927\x5\x102\x82\x2\x926\x91F\x3\x2\x2\x2\x927\x928\x3\x2\x2\x2"+ - "\x928\x926\x3\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929\x92B\x3\x2\x2\x2\x92A"+ - "\x92C\x5\x104\x83\x2\x92B\x92A\x3\x2\x2\x2\x92B\x92C\x3\x2\x2\x2\x92C"+ - "\x955\x3\x2\x2\x2\x92D\x92F\x5\x104\x83\x2\x92E\x92D\x3\x2\x2\x2\x92E"+ - "\x92F\x3\x2\x2\x2\x92F\x930\x3\x2\x2\x2\x930\x932\a\xD4\x2\x2\x931\x933"+ - "\x5\x104\x83\x2\x932\x931\x3\x2\x2\x2\x932\x933\x3\x2\x2\x2\x933\x934"+ - "\x3\x2\x2\x2\x934\x936\x5\x102\x82\x2\x935\x937\x5\x104\x83\x2\x936\x935"+ - "\x3\x2\x2\x2\x936\x937\x3\x2\x2\x2\x937\x938\x3\x2\x2\x2\x938\x93A\a\xDB"+ - "\x2\x2\x939\x93B\x5\x104\x83\x2\x93A\x939\x3\x2\x2\x2\x93A\x93B\x3\x2"+ - "\x2\x2\x93B\x955\x3\x2\x2\x2\x93C\x93E\x5\x104\x83\x2\x93D\x93C\x3\x2"+ - "\x2\x2\x93D\x93E\x3\x2\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x940\a\xD4\x2"+ - "\x2\x940\x949\x5\x102\x82\x2\x941\x943\x5\x104\x83\x2\x942\x941\x3\x2"+ - "\x2\x2\x942\x943\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2\x944\x946\a)\x2\x2"+ - "\x945\x947\x5\x104\x83\x2\x946\x945\x3\x2\x2\x2\x946\x947\x3\x2\x2\x2"+ - "\x947\x948\x3\x2\x2\x2\x948\x94A\x5\x102\x82\x2\x949\x942\x3\x2\x2\x2"+ - "\x94A\x94B\x3\x2\x2\x2\x94B\x949\x3\x2\x2\x2\x94B\x94C\x3\x2\x2\x2\x94C"+ - "\x94E\x3\x2\x2\x2\x94D\x94F\x5\x104\x83\x2\x94E\x94D\x3\x2\x2\x2\x94E"+ - "\x94F\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x952\a\xDB\x2\x2\x951\x953"+ - "\x5\x104\x83\x2\x952\x951\x3\x2\x2\x2\x952\x953\x3\x2\x2\x2\x953\x955"+ - "\x3\x2\x2\x2\x954\x917\x3\x2\x2\x2\x954\x91C\x3\x2\x2\x2\x954\x92E\x3"+ - "\x2\x2\x2\x954\x93D\x3\x2\x2\x2\x955\x101\x3\x2\x2\x2\x956\x959\a\xEF"+ - "\x2\x2\x957\x959\x5\xE4s\x2\x958\x956\x3\x2\x2\x2\x958\x957\x3\x2\x2\x2"+ - "\x959\x103\x3\x2\x2\x2\x95A\x95C\t\x19\x2\x2\x95B\x95A\x3\x2\x2\x2\x95C"+ - "\x95D\x3\x2\x2\x2\x95D\x95B\x3\x2\x2\x2\x95D\x95E\x3\x2\x2\x2\x95E\x105"+ - "\x3\x2\x2\x2\x1A7\x10A\x110\x113\x117\x11B\x11F\x123\x129\x12C\x136\x138"+ - "\x13E\x146\x14D\x153\x15C\x164\x173\x17D\x185\x18F\x195\x199\x19D\x1A1"+ - "\x1A6\x1AF\x1E1\x1E7\x1EB\x1F0\x1F3\x1F8\x1FE\x202\x207\x20C\x211\x214"+ - "\x218\x21F\x225\x229\x22C\x231\x23C\x23F\x242\x247\x24D\x251\x256\x25C"+ - "\x267\x26E\x276\x27B\x284\x28B\x28F\x292\x29A\x29E\x2A3\x2AD\x2B3\x2C4"+ - "\x2CA\x2D0\x2D4\x2E0\x2E4\x2EA\x2EF\x2F3\x2F7\x2FB\x2FE\x301\x304\x307"+ - "\x30B\x313\x317\x31A\x31D\x321\x339\x33F\x343\x347\x350\x35B\x360\x36A"+ - "\x36E\x373\x377\x37B\x37F\x387\x38B\x393\x397\x39F\x3A1\x3A7\x3AB\x3B1"+ - "\x3B5\x3B9\x3C7\x3D1\x3D5\x3DA\x3E5\x3E9\x3EE\x3FD\x402\x40B\x40F\x413"+ - "\x417\x41B\x41E\x422\x426\x429\x42D\x430\x434\x436\x43B\x43F\x443\x447"+ - "\x449\x44F\x453\x456\x45B\x45F\x465\x468\x46B\x470\x474\x47B\x47F\x485"+ - "\x488\x48C\x493\x497\x49D\x4A0\x4A4\x4AC\x4B0\x4B3\x4B6\x4BA\x4C2\x4C6"+ - "\x4CA\x4CC\x4CF\x4D5\x4D9\x4DD\x4E2\x4E7\x4EB\x4EF\x4F5\x4FD\x4FF\x507"+ - "\x50B\x513\x517\x524\x52B\x52F\x53A\x541\x546\x54A\x54F\x552\x558\x55C"+ - "\x563\x567\x56B\x56F\x572\x576\x57D\x586\x58D\x591\x594\x597\x59A\x59F"+ - "\x5A7\x5AB\x5B3\x5B5\x5BA\x5BF\x5C4\x5C8\x5CE\x5D3\x5DA\x5DE\x5E4\x5E8"+ - "\x5EC\x5F1\x5F5\x5FA\x5FE\x603\x607\x60C\x610\x615\x619\x61E\x622\x627"+ - "\x62B\x630\x634\x639\x63D\x642\x646\x64B\x64F\x652\x654\x65F\x664\x669"+ - "\x66F\x673\x678\x67D\x681\x685\x687\x68B\x68D\x690\x695\x69C\x6A4\x6A8"+ - "\x6B1\x6BB\x6BF\x6C2\x6C5\x6CE\x6D3\x6D6\x6DA\x6DE\x6E2\x6E5\x6ED\x6F2"+ - "\x6F5\x6F9\x6FD\x701\x704\x70C\x70F\x713\x716\x719\x71D\x721\x726\x729"+ - "\x72C\x72F\x737\x73E\x741\x749\x750\x754\x757\x75A\x75D\x765\x76A\x76D"+ - "\x770\x774\x778\x77A\x77E\x781\x784\x78C\x791\x794\x797\x79A\x7A2\x7A7"+ - "\x7AA\x7AD\x7B1\x7B5\x7B7\x7BB\x7BE\x7C1\x7C9\x7CE\x7D2\x7D6\x7D9\x7DC"+ - "\x7DF\x7E7\x7EC\x7F0\x7F3\x7F8\x7FB\x7FF\x803\x808\x80C\x80F\x813\x817"+ - "\x81B\x81E\x824\x828\x82C\x830\x834\x839\x83C\x83F\x845\x849\x84D\x851"+ - "\x854\x858\x85B\x85E\x861\x864\x867\x86B\x871\x875\x87A\x882\x888\x88C"+ - "\x890\x894\x898\x89B\x8A6\x8AB\x8AF\x8B3\x8B7\x8BA\x8BE\x8CA\x8D0\x8D3"+ - "\x8D7\x8DA\x8E5\x8EA\x8EE\x8F1\x8F4\x8F7\x8FB\x8FF\x901\x903\x90E\x913"+ - "\x91A\x91F\x923\x928\x92B\x92E\x932\x936\x93A\x93D\x942\x946\x94B\x94E"+ - "\x952\x954\x958\x95D"; + "\x19#%(\x34\x37::\x2FD\x3\x2\x2\x2@\x31D\x3\x2\x2\x2\x42\x31F"+ + "\x3\x2\x2\x2\x44\x335\x3\x2\x2\x2\x46\x339\x3\x2\x2\x2H\x357\x3\x2\x2"+ + "\x2J\x359\x3\x2\x2\x2L\x362\x3\x2\x2\x2N\x364\x3\x2\x2\x2P\x36D\x3\x2"+ + "\x2\x2R\x372\x3\x2\x2\x2T\x376\x3\x2\x2\x2V\x387\x3\x2\x2\x2X\x393\x3"+ + "\x2\x2\x2Z\x39F\x3\x2\x2\x2\\\x3B3\x3\x2\x2\x2^\x3BF\x3\x2\x2\x2`\x3CD"+ + "\x3\x2\x2\x2\x62\x3D9\x3\x2\x2\x2\x64\x3ED\x3\x2\x2\x2\x66\x401\x3\x2"+ + "\x2\x2h\x446\x3\x2\x2\x2j\x459\x3\x2\x2\x2l\x45B\x3\x2\x2\x2n\x46B\x3"+ + "\x2\x2\x2p\x48B\x3\x2\x2\x2r\x4A3\x3\x2\x2\x2t\x4B8\x3\x2\x2\x2v\x4CE"+ + "\x3\x2\x2\x2x\x4E1\x3\x2\x2\x2z\x4F5\x3\x2\x2\x2|\x507\x3\x2\x2\x2~\x509"+ + "\x3\x2\x2\x2\x80\x511\x3\x2\x2\x2\x82\x513\x3\x2\x2\x2\x84\x51F\x3\x2"+ + "\x2\x2\x86\x52B\x3\x2\x2\x2\x88\x54A\x3\x2\x2\x2\x8A\x54C\x3\x2\x2\x2"+ + "\x8C\x562\x3\x2\x2\x2\x8E\x564\x3\x2\x2\x2\x90\x573\x3\x2\x2\x2\x92\x58A"+ + "\x3\x2\x2\x2\x94\x58F\x3\x2\x2\x2\x96\x59D\x3\x2\x2\x2\x98\x5B5\x3\x2"+ + "\x2\x2\x9A\x5F6\x3\x2\x2\x2\x9C\x669\x3\x2\x2\x2\x9E\x676\x3\x2\x2\x2"+ + "\xA0\x67F\x3\x2\x2\x2\xA2\x68D\x3\x2\x2\x2\xA4\x6A9\x3\x2\x2\x2\xA6\x6B2"+ + "\x3\x2\x2\x2\xA8\x6BE\x3\x2\x2\x2\xAA\x6C7\x3\x2\x2\x2\xAC\x6C9\x3\x2"+ + "\x2\x2\xAE\x6D7\x3\x2\x2\x2\xB0\x6DB\x3\x2\x2\x2\xB2\x721\x3\x2\x2\x2"+ + "\xB4\x725\x3\x2\x2\x2\xB6\x728\x3\x2\x2\x2\xB8\x74C\x3\x2\x2\x2\xBA\x762"+ + "\x3\x2\x2\x2\xBC\x764\x3\x2\x2\x2\xBE\x77C\x3\x2\x2\x2\xC0\x7A1\x3\x2"+ + "\x2\x2\xC2\x7B9\x3\x2\x2\x2\xC4\x7E0\x3\x2\x2\x2\xC6\x7FC\x3\x2\x2\x2"+ + "\xC8\x805\x3\x2\x2\x2\xCA\x815\x3\x2\x2\x2\xCC\x829\x3\x2\x2\x2\xCE\x834"+ + "\x3\x2\x2\x2\xD0\x83C\x3\x2\x2\x2\xD2\x857\x3\x2\x2\x2\xD4\x87B\x3\x2"+ + "\x2\x2\xD6\x881\x3\x2\x2\x2\xD8\x894\x3\x2\x2\x2\xDA\x89B\x3\x2\x2\x2"+ + "\xDC\x89F\x3\x2\x2\x2\xDE\x8A1\x3\x2\x2\x2\xE0\x8B0\x3\x2\x2\x2\xE2\x8B2"+ + "\x3\x2\x2\x2\xE4\x8B4\x3\x2\x2\x2\xE6\x8BC\x3\x2\x2\x2\xE8\x8C4\x3\x2"+ + "\x2\x2\xEA\x8D1\x3\x2\x2\x2\xEC\x8DD\x3\x2\x2\x2\xEE\x8DF\x3\x2\x2\x2"+ + "\xF0\x8E3\x3\x2\x2\x2\xF2\x8EF\x3\x2\x2\x2\xF4\x8F1\x3\x2\x2\x2\xF6\x8F3"+ + "\x3\x2\x2\x2\xF8\x8F5\x3\x2\x2\x2\xFA\x8F7\x3\x2\x2\x2\xFC\x90C\x3\x2"+ + "\x2\x2\xFE\x918\x3\x2\x2\x2\x100\x91B\x3\x2\x2\x2\x102\x91D\x3\x2\x2\x2"+ + "\x104\x91F\x3\x2\x2\x2\x106\x925\x3\x2\x2\x2\x108\x92A\x3\x2\x2\x2\x10A"+ + "\x969\x3\x2\x2\x2\x10C\x96B\x3\x2\x2\x2\x10E\x96E\x3\x2\x2\x2\x110\x111"+ + "\x5\x4\x3\x2\x111\x112\a\x2\x2\x3\x112\x3\x3\x2\x2\x2\x113\x115\x5\x10E"+ + "\x88\x2\x114\x113\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x116\x3\x2\x2"+ + "\x2\x116\x11A\x5\xFE\x80\x2\x117\x118\x5\x6\x4\x2\x118\x119\x5\xFE\x80"+ + "\x2\x119\x11B\x3\x2\x2\x2\x11A\x117\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2"+ + "\x11B\x11D\x3\x2\x2\x2\x11C\x11E\x5\b\x5\x2\x11D\x11C\x3\x2\x2\x2\x11D"+ + "\x11E\x3\x2\x2\x2\x11E\x11F\x3\x2\x2\x2\x11F\x121\x5\xFE\x80\x2\x120\x122"+ + "\x5\f\a\x2\x121\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2"+ + "\x2\x2\x123\x125\x5\xFE\x80\x2\x124\x126\x5\xE\b\x2\x125\x124\x3\x2\x2"+ + "\x2\x125\x126\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x5\xFE\x80\x2"+ + "\x128\x12A\x5\x14\v\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A"+ + "\x12B\x3\x2\x2\x2\x12B\x12D\x5\xFE\x80\x2\x12C\x12E\x5\x10E\x88\x2\x12D"+ + "\x12C\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x5\x3\x2\x2\x2\x12F\x130"+ + "\a\xC5\x2\x2\x130\x131\x5\x10E\x88\x2\x131\x133\x5\xEEx\x2\x132\x134\x5"+ + "\x10E\x88\x2\x133\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x136\x3"+ + "\x2\x2\x2\x135\x137\a\x42\x2\x2\x136\x135\x3\x2\x2\x2\x136\x137\x3\x2"+ + "\x2\x2\x137\x138\x3\x2\x2\x2\x138\x139\x5\xFE\x80\x2\x139\a\x3\x2\x2\x2"+ + "\x13A\x142\a:\x2\x2\x13B\x13C\x5\x10E\x88\x2\x13C\x13D\a\xF1\x2\x2\x13D"+ + "\x13E\x5\x10E\x88\x2\x13E\x140\x5\xDAn\x2\x13F\x141\x5\x10E\x88\x2\x140"+ + "\x13F\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x3\x2\x2\x2\x142\x13B"+ + "\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x144\x3\x2\x2\x2\x144\x146\x5"+ + "\xFE\x80\x2\x145\x147\x5\n\x6\x2\x146\x145\x3\x2\x2\x2\x147\x148\x3\x2"+ + "\x2\x2\x148\x146\x3\x2\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14A\x3\x2\x2"+ + "\x2\x14A\x14B\a\x64\x2\x2\x14B\t\x3\x2\x2\x2\x14C\x150\x5\xDAn\x2\x14D"+ + "\x14F\x5\x10E\x88\x2\x14E\x14D\x3\x2\x2\x2\x14F\x152\x3\x2\x2\x2\x150"+ + "\x14E\x3\x2\x2\x2\x150\x151\x3\x2\x2\x2\x151\x153\x3\x2\x2\x2\x152\x150"+ + "\x3\x2\x2\x2\x153\x157\a\xD0\x2\x2\x154\x156\x5\x10E\x88\x2\x155\x154"+ + "\x3\x2\x2\x2\x156\x159\x3\x2\x2\x2\x157\x155\x3\x2\x2\x2\x157\x158\x3"+ + "\x2\x2\x2\x158\x15A\x3\x2\x2\x2\x159\x157\x3\x2\x2\x2\x15A\x15D\x5\x9A"+ + "N\x2\x15B\x15C\a*\x2\x2\x15C\x15E\x5\xEEx\x2\x15D\x15B\x3\x2\x2\x2\x15D"+ + "\x15E\x3\x2\x2\x2\x15E\x15F\x3\x2\x2\x2\x15F\x160\x5\xFE\x80\x2\x160\v"+ + "\x3\x2\x2\x2\x161\x162\x5\x18\r\x2\x162\x163\x5\xFE\x80\x2\x163\x165\x3"+ + "\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165\x166\x3\x2\x2\x2\x166\x164\x3\x2"+ + "\x2\x2\x166\x167\x3\x2\x2\x2\x167\r\x3\x2\x2\x2\x168\x16E\x5\x12\n\x2"+ + "\x169\x16A\x5\xFE\x80\x2\x16A\x16B\x5\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C"+ + "\x169\x3\x2\x2\x2\x16D\x170\x3\x2\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F"+ + "\x3\x2\x2\x2\x16F\x171\x3\x2\x2\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5"+ + "\xFE\x80\x2\x172\xF\x3\x2\x2\x2\x173\x174\a\x96\x2\x2\x174\x175\x5\x10E"+ + "\x88\x2\x175\x176\x5\xEEx\x2\x176\x17E\x3\x2\x2\x2\x177\x178\a\x98\x2"+ + "\x2\x178\x179\x5\x10E\x88\x2\x179\x17A\t\x2\x2\x2\x17A\x17E\x3\x2\x2\x2"+ + "\x17B\x17E\a\x97\x2\x2\x17C\x17E\a\x99\x2\x2\x17D\x173\x3\x2\x2\x2\x17D"+ + "\x177\x3\x2\x2\x2\x17D\x17B\x3\x2\x2\x2\x17D\x17C\x3\x2\x2\x2\x17E\x11"+ + "\x3\x2\x2\x2\x17F\x188\x5(\x15\x2\x180\x188\x5.\x18\x2\x181\x188\x5\x36"+ + "\x1C\x2\x182\x188\x5$\x13\x2\x183\x188\x5R*\x2\x184\x188\x5\x9EP\x2\x185"+ + "\x188\x5\x10\t\x2\x186\x188\x5\x94K\x2\x187\x17F\x3\x2\x2\x2\x187\x180"+ + "\x3\x2\x2\x2\x187\x181\x3\x2\x2\x2\x187\x182\x3\x2\x2\x2\x187\x183\x3"+ + "\x2\x2\x2\x187\x184\x3\x2\x2\x2\x187\x185\x3\x2\x2\x2\x187\x186\x3\x2"+ + "\x2\x2\x188\x13\x3\x2\x2\x2\x189\x18F\x5\x16\f\x2\x18A\x18B\x5\xFE\x80"+ + "\x2\x18B\x18C\x5\x16\f\x2\x18C\x18E\x3\x2\x2\x2\x18D\x18A\x3\x2\x2\x2"+ + "\x18E\x191\x3\x2\x2\x2\x18F\x18D\x3\x2\x2\x2\x18F\x190\x3\x2\x2\x2\x190"+ + "\x192\x3\x2\x2\x2\x191\x18F\x3\x2\x2\x2\x192\x193\x5\xFE\x80\x2\x193\x15"+ + "\x3\x2\x2\x2\x194\x19A\x5> \x2\x195\x19A\x5n\x38\x2\x196\x19A\x5p\x39"+ + "\x2\x197\x19A\x5r:\x2\x198\x19A\x5\x90I\x2\x199\x194\x3\x2\x2\x2\x199"+ + "\x195\x3\x2\x2\x2\x199\x196\x3\x2\x2\x2\x199\x197\x3\x2\x2\x2\x199\x198"+ + "\x3\x2\x2\x2\x19A\x17\x3\x2\x2\x2\x19B\x19C\a\x37\x2\x2\x19C\x19D\x5\x10E"+ + "\x88\x2\x19D\x19F\x5\x1A\xE\x2\x19E\x1A0\x5\x10E\x88\x2\x19F\x19E\x3\x2"+ + "\x2\x2\x19F\x1A0\x3\x2\x2\x2\x1A0\x1A1\x3\x2\x2\x2\x1A1\x1A3\a\xD0\x2"+ + "\x2\x1A2\x1A4\x5\x10E\x88\x2\x1A3\x1A2\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2"+ + "\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1B0\x5\x1C\xF\x2\x1A6\x1A8\x5\x10E\x88"+ + "\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2"+ + "\x1A9\x1AB\a)\x2\x2\x1AA\x1AC\x5\x10E\x88\x2\x1AB\x1AA\x3\x2\x2\x2\x1AB"+ + "\x1AC\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x5\x1C\xF\x2\x1AE\x1A7"+ + "\x3\x2\x2\x2\x1AF\x1B2\x3\x2\x2\x2\x1B0\x1AE\x3\x2\x2\x2\x1B0\x1B1\x3"+ + "\x2\x2\x2\x1B1\x19\x3\x2\x2\x2\x1B2\x1B0\x3\x2\x2\x2\x1B3\x1B4\x5\xBA"+ + "^\x2\x1B4\x1B\x3\x2\x2\x2\x1B5\x1B6\x5\x9AN\x2\x1B6\x1D\x3\x2\x2\x2\x1B7"+ + "\x1BD\x5 \x11\x2\x1B8\x1B9\x5\xFE\x80\x2\x1B9\x1BA\x5 \x11\x2\x1BA\x1BC"+ + "\x3\x2\x2\x2\x1BB\x1B8\x3\x2\x2\x2\x1BC\x1BF\x3\x2\x2\x2\x1BD\x1BB\x3"+ + "\x2\x2\x2\x1BD\x1BE\x3\x2\x2\x2\x1BE\x1C0\x3\x2\x2\x2\x1BF\x1BD\x3\x2"+ + "\x2\x2\x1C0\x1C1\x5\xFE\x80\x2\x1C1\x1F\x3\x2\x2\x2\x1C2\x1F0\x5\xEAv"+ + "\x2\x1C3\x1F0\x5\x18\r\x2\x1C4\x1F0\x5\"\x12\x2\x1C5\x1F0\x5$\x13\x2\x1C6"+ + "\x1F0\x5*\x16\x2\x1C7\x1F0\x5,\x17\x2\x1C8\x1F0\x5\x32\x1A\x2\x1C9\x1F0"+ + "\x5\x34\x1B\x2\x1CA\x1F0\x5\x38\x1D\x2\x1CB\x1F0\x5\xB0Y\x2\x1CC\x1F0"+ + "\x5:\x1E\x2\x1CD\x1F0\x5<\x1F\x2\x1CE\x1F0\x5\x42\"\x2\x1CF\x1F0\x5\x44"+ + "#\x2\x1D0\x1F0\x5\x46$\x2\x1D1\x1F0\x5H%\x2\x1D2\x1F0\x5R*\x2\x1D3\x1F0"+ + "\x5T+\x2\x1D4\x1F0\x5V,\x2\x1D5\x1F0\x5X-\x2\x1D6\x1F0\x5Z.\x2\x1D7\x1F0"+ + "\x5\\/\x2\x1D8\x1F0\x5^\x30\x2\x1D9\x1F0\x5`\x31\x2\x1DA\x1F0\x5\x62\x32"+ + "\x2\x1DB\x1F0\x5\x64\x33\x2\x1DC\x1F0\x5\x66\x34\x2\x1DD\x1F0\x5l\x37"+ + "\x2\x1DE\x1F0\x5t;\x2\x1DF\x1F0\x5v<\x2\x1E0\x1F0\x5x=\x2\x1E1\x1F0\x5"+ + "|?\x2\x1E2\x1F0\x5~@\x2\x1E3\x1F0\x5\x80\x41\x2\x1E4\x1F0\x5\x82\x42\x2"+ + "\x1E5\x1F0\x5\x84\x43\x2\x1E6\x1F0\x5\x86\x44\x2\x1E7\x1F0\x5\x8EH\x2"+ + "\x1E8\x1F0\x5\x98M\x2\x1E9\x1F0\x5\x9EP\x2\x1EA\x1F0\x5\xA4S\x2\x1EB\x1F0"+ + "\x5\xA6T\x2\x1EC\x1F0\x5\xA8U\x2\x1ED\x1F0\x5\xACW\x2\x1EE\x1F0\x5\xB4"+ + "[\x2\x1EF\x1C2\x3\x2\x2\x2\x1EF\x1C3\x3\x2\x2\x2\x1EF\x1C4\x3\x2\x2\x2"+ + "\x1EF\x1C5\x3\x2\x2\x2\x1EF\x1C6\x3\x2\x2\x2\x1EF\x1C7\x3\x2\x2\x2\x1EF"+ + "\x1C8\x3\x2\x2\x2\x1EF\x1C9\x3\x2\x2\x2\x1EF\x1CA\x3\x2\x2\x2\x1EF\x1CB"+ + "\x3\x2\x2\x2\x1EF\x1CC\x3\x2\x2\x2\x1EF\x1CD\x3\x2\x2\x2\x1EF\x1CE\x3"+ + "\x2\x2\x2\x1EF\x1CF\x3\x2\x2\x2\x1EF\x1D0\x3\x2\x2\x2\x1EF\x1D1\x3\x2"+ + "\x2\x2\x1EF\x1D2\x3\x2\x2\x2\x1EF\x1D3\x3\x2\x2\x2\x1EF\x1D4\x3\x2\x2"+ + "\x2\x1EF\x1D5\x3\x2\x2\x2\x1EF\x1D6\x3\x2\x2\x2\x1EF\x1D7\x3\x2\x2\x2"+ + "\x1EF\x1D8\x3\x2\x2\x2\x1EF\x1D9\x3\x2\x2\x2\x1EF\x1DA\x3\x2\x2\x2\x1EF"+ + "\x1DB\x3\x2\x2\x2\x1EF\x1DC\x3\x2\x2\x2\x1EF\x1DD\x3\x2\x2\x2\x1EF\x1DE"+ + "\x3\x2\x2\x2\x1EF\x1DF\x3\x2\x2\x2\x1EF\x1E0\x3\x2\x2\x2\x1EF\x1E1\x3"+ + "\x2\x2\x2\x1EF\x1E2\x3\x2\x2\x2\x1EF\x1E3\x3\x2\x2\x2\x1EF\x1E4\x3\x2"+ + "\x2\x2\x1EF\x1E5\x3\x2\x2\x2\x1EF\x1E6\x3\x2\x2\x2\x1EF\x1E7\x3\x2\x2"+ + "\x2\x1EF\x1E8\x3\x2\x2\x2\x1EF\x1E9\x3\x2\x2\x2\x1EF\x1EA\x3\x2\x2\x2"+ + "\x1EF\x1EB\x3\x2\x2\x2\x1EF\x1EC\x3\x2\x2\x2\x1EF\x1ED\x3\x2\x2\x2\x1EF"+ + "\x1EE\x3\x2\x2\x2\x1F0!\x3\x2\x2\x2\x1F1\x201\a\x43\x2\x2\x1F2\x1F3\x5"+ + "\x10E\x88\x2\x1F3\x1FE\x5\xAEX\x2\x1F4\x1F6\x5\x10E\x88\x2\x1F5\x1F4\x3"+ + "\x2\x2\x2\x1F5\x1F6\x3\x2\x2\x2\x1F6\x1F7\x3\x2\x2\x2\x1F7\x1F9\a)\x2"+ + "\x2\x1F8\x1FA\x5\x10E\x88\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2"+ + "\x2\x1FA\x1FB\x3\x2\x2\x2\x1FB\x1FD\x5\xAEX\x2\x1FC\x1F5\x3\x2\x2\x2\x1FD"+ + "\x200\x3\x2\x2\x2\x1FE\x1FC\x3\x2\x2\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x202"+ + "\x3\x2\x2\x2\x200\x1FE\x3\x2\x2\x2\x201\x1F2\x3\x2\x2\x2\x201\x202\x3"+ + "\x2\x2\x2\x202#\x3\x2\x2\x2\x203\x204\x5\xF4{\x2\x204\x205\x5\x10E\x88"+ + "\x2\x205\x207\x3\x2\x2\x2\x206\x203\x3\x2\x2\x2\x206\x207\x3\x2\x2\x2"+ + "\x207\x208\x3\x2\x2\x2\x208\x209\a\x44\x2\x2\x209\x20A\x5\x10E\x88\x2"+ + "\x20A\x215\x5&\x14\x2\x20B\x20D\x5\x10E\x88\x2\x20C\x20B\x3\x2\x2\x2\x20C"+ + "\x20D\x3\x2\x2\x2\x20D\x20E\x3\x2\x2\x2\x20E\x210\a)\x2\x2\x20F\x211\x5"+ + "\x10E\x88\x2\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x212\x3"+ + "\x2\x2\x2\x212\x214\x5&\x14\x2\x213\x20C\x3\x2\x2\x2\x214\x217\x3\x2\x2"+ + "\x2\x215\x213\x3\x2\x2\x2\x215\x216\x3\x2\x2\x2\x216%\x3\x2\x2\x2\x217"+ + "\x215\x3\x2\x2\x2\x218\x21A\x5\xDCo\x2\x219\x21B\x5\xF2z\x2\x21A\x219"+ + "\x3\x2\x2\x2\x21A\x21B\x3\x2\x2\x2\x21B\x21F\x3\x2\x2\x2\x21C\x21D\x5"+ + "\x10E\x88\x2\x21D\x21E\x5\xDEp\x2\x21E\x220\x3\x2\x2\x2\x21F\x21C\x3\x2"+ + "\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x222\x3\x2\x2\x2\x221\x223\x5\x10E\x88"+ + "\x2\x222\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2"+ + "\x224\x226\a\xD0\x2\x2\x225\x227\x5\x10E\x88\x2\x226\x225\x3\x2\x2\x2"+ + "\x226\x227\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228\x229\x5\x9AN\x2\x229"+ + "\'\x3\x2\x2\x2\x22A\x22B\x5\xF4{\x2\x22B\x22C\x5\x10E\x88\x2\x22C\x22E"+ + "\x3\x2\x2\x2\x22D\x22A\x3\x2\x2\x2\x22D\x22E\x3\x2\x2\x2\x22E\x22F\x3"+ + "\x2\x2\x2\x22F\x230\aG\x2\x2\x230\x233\x5\x10E\x88\x2\x231\x232\a\xA3"+ + "\x2\x2\x232\x234\x5\x10E\x88\x2\x233\x231\x3\x2\x2\x2\x233\x234\x3\x2"+ + "\x2\x2\x234\x23A\x3\x2\x2\x2\x235\x237\ar\x2\x2\x236\x238\x5\xF2z\x2\x237"+ + "\x236\x3\x2\x2\x2\x237\x238\x3\x2\x2\x2\x238\x23B\x3\x2\x2\x2\x239\x23B"+ + "\a\xBA\x2\x2\x23A\x235\x3\x2\x2\x2\x23A\x239\x3\x2\x2\x2\x23B\x23C\x3"+ + "\x2\x2\x2\x23C\x23D\x5\x10E\x88\x2\x23D\x23F\x5\xDCo\x2\x23E\x240\x5\xF2"+ + "z\x2\x23F\x23E\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2"+ + "\x241\x242\x5\x10E\x88\x2\x242\x243\a\x82\x2\x2\x243\x244\x5\x10E\x88"+ + "\x2\x244\x24A\a\xE3\x2\x2\x245\x246\x5\x10E\x88\x2\x246\x247\a\x35\x2"+ + "\x2\x247\x248\x5\x10E\x88\x2\x248\x249\a\xE3\x2\x2\x249\x24B\x3\x2\x2"+ + "\x2\x24A\x245\x3\x2\x2\x2\x24A\x24B\x3\x2\x2\x2\x24B\x250\x3\x2\x2\x2"+ + "\x24C\x24E\x5\x10E\x88\x2\x24D\x24C\x3\x2\x2\x2\x24D\x24E\x3\x2\x2\x2"+ + "\x24E\x24F\x3\x2\x2\x2\x24F\x251\x5\xD0i\x2\x250\x24D\x3\x2\x2\x2\x250"+ + "\x251\x3\x2\x2\x2\x251\x255\x3\x2\x2\x2\x252\x253\x5\x10E\x88\x2\x253"+ + "\x254\x5\xDEp\x2\x254\x256\x3\x2\x2\x2\x255\x252\x3\x2\x2\x2\x255\x256"+ + "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x258\t\x3\x2\x2\x258\x259\x5\x10E"+ + "\x88\x2\x259\x264\x5\xE8u\x2\x25A\x25C\x5\x10E\x88\x2\x25B\x25A\x3\x2"+ + "\x2\x2\x25B\x25C\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D\x25F\a)\x2\x2"+ + "\x25E\x260\x5\x10E\x88\x2\x25F\x25E\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2"+ + "\x260\x261\x3\x2\x2\x2\x261\x263\x5\xE8u\x2\x262\x25B\x3\x2\x2\x2\x263"+ + "\x266\x3\x2\x2\x2\x264\x262\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2\x265+\x3"+ + "\x2\x2\x2\x266\x264\x3\x2\x2\x2\x267\x268\aV\x2\x2\x268\x26A\x5\xFE\x80"+ + "\x2\x269\x26B\x5\x1E\x10\x2\x26A\x269\x3\x2\x2\x2\x26A\x26B\x3\x2\x2\x2"+ + "\x26B\x26C\x3\x2\x2\x2\x26C\x26D\a\x80\x2\x2\x26D\x285\x3\x2\x2\x2\x26E"+ + "\x26F\aV\x2\x2\x26F\x270\x5\x10E\x88\x2\x270\x271\t\x4\x2\x2\x271\x272"+ + "\x5\x10E\x88\x2\x272\x273\x5\x9AN\x2\x273\x275\x5\xFE\x80\x2\x274\x276"+ + "\x5\x1E\x10\x2\x275\x274\x3\x2\x2\x2\x275\x276\x3\x2\x2\x2\x276\x277\x3"+ + "\x2\x2\x2\x277\x278\a\x80\x2\x2\x278\x285\x3\x2\x2\x2\x279\x27A\aV\x2"+ + "\x2\x27A\x27C\x5\xFE\x80\x2\x27B\x27D\x5\x1E\x10\x2\x27C\x27B\x3\x2\x2"+ + "\x2\x27C\x27D\x3\x2\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x27F\a\x80\x2\x2"+ + "\x27F\x280\x5\x10E\x88\x2\x280\x281\t\x4\x2\x2\x281\x282\x5\x10E\x88\x2"+ + "\x282\x283\x5\x9AN\x2\x283\x285\x3\x2\x2\x2\x284\x267\x3\x2\x2\x2\x284"+ + "\x26E\x3\x2\x2\x2\x284\x279\x3\x2\x2\x2\x285-\x3\x2\x2\x2\x286\x287\x5"+ + "\xF4{\x2\x287\x288\x5\x10E\x88\x2\x288\x28A\x3\x2\x2\x2\x289\x286\x3\x2"+ + "\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\a\x65\x2"+ + "\x2\x28C\x28D\x5\x10E\x88\x2\x28D\x28E\x5\xDCo\x2\x28E\x292\x5\xFE\x80"+ + "\x2\x28F\x291\x5\x30\x19\x2\x290\x28F\x3\x2\x2\x2\x291\x294\x3\x2\x2\x2"+ + "\x292\x290\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x295\x3\x2\x2\x2\x294"+ + "\x292\x3\x2\x2\x2\x295\x296\a\\\x2\x2\x296/\x3\x2\x2\x2\x297\x2A0\x5\xDC"+ + "o\x2\x298\x29A\x5\x10E\x88\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2"+ + "\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29D\a\xD0\x2\x2\x29C\x29E\x5\x10E\x88"+ + "\x2\x29D\x29C\x3\x2\x2\x2\x29D\x29E\x3\x2\x2\x2\x29E\x29F\x3\x2\x2\x2"+ + "\x29F\x2A1\x5\x9AN\x2\x2A0\x299\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1"+ + "\x2A2\x3\x2\x2\x2\x2A2\x2A3\x5\xFE\x80\x2\x2A3\x31\x3\x2\x2\x2\x2A4\x2A5"+ + "\ag\x2\x2\x2A5\x2A6\x5\x10E\x88\x2\x2A6\x2B1\x5\x9AN\x2\x2A7\x2A9\x5\x10E"+ + "\x88\x2\x2A8\x2A7\x3\x2\x2\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AA\x3\x2\x2"+ + "\x2\x2AA\x2AC\a)\x2\x2\x2AB\x2AD\x5\x10E\x88\x2\x2AC\x2AB\x3\x2\x2\x2"+ + "\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2\x2\x2AE\x2B0\x5\x9AN\x2\x2AF"+ + "\x2A8\x3\x2\x2\x2\x2B0\x2B3\x3\x2\x2\x2\x2B1\x2AF\x3\x2\x2\x2\x2B1\x2B2"+ + "\x3\x2\x2\x2\x2B2\x33\x3\x2\x2\x2\x2B3\x2B1\x3\x2\x2\x2\x2B4\x2B5\ah\x2"+ + "\x2\x2B5\x2B6\x5\x10E\x88\x2\x2B6\x2B7\x5\x9AN\x2\x2B7\x35\x3\x2\x2\x2"+ + "\x2B8\x2B9\x5\xF4{\x2\x2B9\x2BA\x5\x10E\x88\x2\x2BA\x2BC\x3\x2\x2\x2\x2BB"+ + "\x2B8\x3\x2\x2\x2\x2BB\x2BC\x3\x2\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BE"+ + "\ai\x2\x2\x2BE\x2BF\x5\x10E\x88\x2\x2BF\x2C1\x5\xDCo\x2\x2C0\x2C2\x5\x10E"+ + "\x88\x2\x2C1\x2C0\x3\x2\x2\x2\x2C1\x2C2\x3\x2\x2\x2\x2C2\x2C3\x3\x2\x2"+ + "\x2\x2C3\x2C4\x5\xD0i\x2\x2C4\x37\x3\x2\x2\x2\x2C5\x2C6\t\x5\x2\x2\x2C6"+ + "\x39\x3\x2\x2\x2\x2C7\x2C8\aq\x2\x2\x2C8\x2C9\x5\x10E\x88\x2\x2C9\x2CA"+ + "\aX\x2\x2\x2CA\x2CB\x5\x10E\x88\x2\x2CB\x2CC\x5\x9AN\x2\x2CC\x2CD\x5\x10E"+ + "\x88\x2\x2CD\x2CE\az\x2\x2\x2CE\x2CF\x5\x10E\x88\x2\x2CF\x2D0\x5\x9AN"+ + "\x2\x2D0\x2D2\x5\xFE\x80\x2\x2D1\x2D3\x5\x1E\x10\x2\x2D2\x2D1\x3\x2\x2"+ + "\x2\x2D2\x2D3\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D8\a\x8C\x2\x2"+ + "\x2D5\x2D6\x5\x10E\x88\x2\x2D6\x2D7\x5\x9AN\x2\x2D7\x2D9\x3\x2\x2\x2\x2D8"+ + "\x2D5\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9;\x3\x2\x2\x2\x2DA\x2DB\a"+ + "q\x2\x2\x2DB\x2DC\x5\x10E\x88\x2\x2DC\x2DE\x5\x9AN\x2\x2DD\x2DF\x5\x10E"+ + "\x88\x2\x2DE\x2DD\x3\x2\x2\x2\x2DE\x2DF\x3\x2\x2\x2\x2DF\x2E0\x3\x2\x2"+ + "\x2\x2E0\x2E2\a\xD0\x2\x2\x2E1\x2E3\x5\x10E\x88\x2\x2E2\x2E1\x3\x2\x2"+ + "\x2\x2E2\x2E3\x3\x2\x2\x2\x2E3\x2E4\x3\x2\x2\x2\x2E4\x2E5\x5\x9AN\x2\x2E5"+ + "\x2E6\x5\x10E\x88\x2\x2E6\x2E7\a\xBE\x2\x2\x2E7\x2E8\x5\x10E\x88\x2\x2E8"+ + "\x2EE\x5\x9AN\x2\x2E9\x2EA\x5\x10E\x88\x2\x2EA\x2EB\a\xB7\x2\x2\x2EB\x2EC"+ + "\x5\x10E\x88\x2\x2EC\x2ED\x5\x9AN\x2\x2ED\x2EF\x3\x2\x2\x2\x2EE\x2E9\x3"+ + "\x2\x2\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F2\x5\xFE"+ + "\x80\x2\x2F1\x2F3\x5\x1E\x10\x2\x2F2\x2F1\x3\x2\x2\x2\x2F2\x2F3\x3\x2"+ + "\x2\x2\x2F3\x2F4\x3\x2\x2\x2\x2F4\x2F8\a\x8C\x2\x2\x2F5\x2F6\x5\x10E\x88"+ + "\x2\x2F6\x2F7\x5\x9AN\x2\x2F7\x2F9\x3\x2\x2\x2\x2F8\x2F5\x3\x2\x2\x2\x2F8"+ + "\x2F9\x3\x2\x2\x2\x2F9=\x3\x2\x2\x2\x2FA\x2FB\x5\xF4{\x2\x2FB\x2FC\x5"+ + "\x10E\x88\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3"+ + "\x2\x2\x2\x2FE\x301\x3\x2\x2\x2\x2FF\x300\a\xB6\x2\x2\x300\x302\x5\x10E"+ + "\x88\x2\x301\x2FF\x3\x2\x2\x2\x301\x302\x3\x2\x2\x2\x302\x303\x3\x2\x2"+ + "\x2\x303\x305\ar\x2\x2\x304\x306\x5\x10E\x88\x2\x305\x304\x3\x2\x2\x2"+ + "\x305\x306\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x309\x5@!\x2\x308\x30A"+ + "\x5\xF2z\x2\x309\x308\x3\x2\x2\x2\x309\x30A\x3\x2\x2\x2\x30A\x30F\x3\x2"+ + "\x2\x2\x30B\x30D\x5\x10E\x88\x2\x30C\x30B\x3\x2\x2\x2\x30C\x30D\x3\x2"+ + "\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x310\x5\xD0i\x2\x30F\x30C\x3\x2\x2\x2"+ + "\x30F\x310\x3\x2\x2\x2\x310\x315\x3\x2\x2\x2\x311\x313\x5\x10E\x88\x2"+ + "\x312\x311\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x314\x3\x2\x2\x2\x314"+ + "\x316\x5\xDEp\x2\x315\x312\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ + "\x3\x2\x2\x2\x317\x319\x5\xFE\x80\x2\x318\x31A\x5\x1E\x10\x2\x319\x318"+ + "\x3\x2\x2\x2\x319\x31A\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31C\a]"+ + "\x2\x2\x31C?\x3\x2\x2\x2\x31D\x31E\x5\xDCo\x2\x31E\x41\x3\x2\x2\x2\x31F"+ + "\x320\as\x2\x2\x320\x321\x5\x10E\x88\x2\x321\x323\x5\xAEX\x2\x322\x324"+ + "\x5\x10E\x88\x2\x323\x322\x3\x2\x2\x2\x323\x324\x3\x2\x2\x2\x324\x325"+ + "\x3\x2\x2\x2\x325\x327\a)\x2\x2\x326\x328\x5\x10E\x88\x2\x327\x326\x3"+ + "\x2\x2\x2\x327\x328\x3\x2\x2\x2\x328\x32A\x3\x2\x2\x2\x329\x32B\x5\x9A"+ + "N\x2\x32A\x329\x3\x2\x2\x2\x32A\x32B\x3\x2\x2\x2\x32B\x32D\x3\x2\x2\x2"+ + "\x32C\x32E\x5\x10E\x88\x2\x32D\x32C\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2"+ + "\x32E\x32F\x3\x2\x2\x2\x32F\x331\a)\x2\x2\x330\x332\x5\x10E\x88\x2\x331"+ + "\x330\x3\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x334"+ + "\x5\x9AN\x2\x334\x43\x3\x2\x2\x2\x335\x336\au\x2\x2\x336\x337\x5\x10E"+ + "\x88\x2\x337\x338\x5\x9AN\x2\x338\x45\x3\x2\x2\x2\x339\x33A\av\x2\x2\x33A"+ + "\x33B\x5\x10E\x88\x2\x33B\x33C\x5\x9AN\x2\x33CG\x3\x2\x2\x2\x33D\x33E"+ + "\aw\x2\x2\x33E\x33F\x5\x10E\x88\x2\x33F\x340\x5L\'\x2\x340\x341\x5\x10E"+ + "\x88\x2\x341\x342\a\xBD\x2\x2\x342\x343\x5\x10E\x88\x2\x343\x349\x5 \x11"+ + "\x2\x344\x345\x5\x10E\x88\x2\x345\x346\aY\x2\x2\x346\x347\x5\x10E\x88"+ + "\x2\x347\x348\x5 \x11\x2\x348\x34A\x3\x2\x2\x2\x349\x344\x3\x2\x2\x2\x349"+ + "\x34A\x3\x2\x2\x2\x34A\x358\x3\x2\x2\x2\x34B\x34F\x5J&\x2\x34C\x34E\x5"+ + "N(\x2\x34D\x34C\x3\x2\x2\x2\x34E\x351\x3\x2\x2\x2\x34F\x34D\x3\x2\x2\x2"+ + "\x34F\x350\x3\x2\x2\x2\x350\x353\x3\x2\x2\x2\x351\x34F\x3\x2\x2\x2\x352"+ + "\x354\x5P)\x2\x353\x352\x3\x2\x2\x2\x353\x354\x3\x2\x2\x2\x354\x355\x3"+ + "\x2\x2\x2\x355\x356\a^\x2\x2\x356\x358\x3\x2\x2\x2\x357\x33D\x3\x2\x2"+ + "\x2\x357\x34B\x3\x2\x2\x2\x358I\x3\x2\x2\x2\x359\x35A\aw\x2\x2\x35A\x35B"+ + "\x5\x10E\x88\x2\x35B\x35C\x5L\'\x2\x35C\x35D\x5\x10E\x88\x2\x35D\x35E"+ + "\a\xBD\x2\x2\x35E\x360\x5\xFE\x80\x2\x35F\x361\x5\x1E\x10\x2\x360\x35F"+ + "\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2\x361K\x3\x2\x2\x2\x362\x363\x5\x9A"+ + "N\x2\x363M\x3\x2\x2\x2\x364\x365\aZ\x2\x2\x365\x366\x5\x10E\x88\x2\x366"+ + "\x367\x5L\'\x2\x367\x368\x5\x10E\x88\x2\x368\x369\a\xBD\x2\x2\x369\x36B"+ + "\x5\xFE\x80\x2\x36A\x36C\x5\x1E\x10\x2\x36B\x36A\x3\x2\x2\x2\x36B\x36C"+ + "\x3\x2\x2\x2\x36CO\x3\x2\x2\x2\x36D\x36E\aY\x2\x2\x36E\x370\x5\xFE\x80"+ + "\x2\x36F\x371\x5\x1E\x10\x2\x370\x36F\x3\x2\x2\x2\x370\x371\x3\x2\x2\x2"+ + "\x371Q\x3\x2\x2\x2\x372\x373\ay\x2\x2\x373\x374\x5\x10E\x88\x2\x374\x375"+ + "\x5\x9AN\x2\x375S\x3\x2\x2\x2\x376\x377\a{\x2\x2\x377\x378\x5\x10E\x88"+ + "\x2\x378\x381\x5\xAEX\x2\x379\x37B\x5\x10E\x88\x2\x37A\x379\x3\x2\x2\x2"+ + "\x37A\x37B\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37E\a)\x2\x2\x37D\x37F"+ + "\x5\x10E\x88\x2\x37E\x37D\x3\x2\x2\x2\x37E\x37F\x3\x2\x2\x2\x37F\x380"+ + "\x3\x2\x2\x2\x380\x382\x5\x9AN\x2\x381\x37A\x3\x2\x2\x2\x382\x383\x3\x2"+ + "\x2\x2\x383\x381\x3\x2\x2\x2\x383\x384\x3\x2\x2\x2\x384U\x3\x2\x2\x2\x385"+ + "\x386\a\x81\x2\x2\x386\x388\x5\x10E\x88\x2\x387\x385\x3\x2\x2\x2\x387"+ + "\x388\x3\x2\x2\x2\x388\x389\x3\x2\x2\x2\x389\x38B\x5\x9AN\x2\x38A\x38C"+ + "\x5\x10E\x88\x2\x38B\x38A\x3\x2\x2\x2\x38B\x38C\x3\x2\x2\x2\x38C\x38D"+ + "\x3\x2\x2\x2\x38D\x38F\a\xD0\x2\x2\x38E\x390\x5\x10E\x88\x2\x38F\x38E"+ + "\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x391\x3\x2\x2\x2\x391\x392\x5"+ + "\x9AN\x2\x392W\x3\x2\x2\x2\x393\x394\a\x84\x2\x2\x394\x395\x5\x10E\x88"+ + "\x2\x395\x397\x5\xAEX\x2\x396\x398\x5\x10E\x88\x2\x397\x396\x3\x2\x2\x2"+ + "\x397\x398\x3\x2\x2\x2\x398\x399\x3\x2\x2\x2\x399\x39B\a)\x2\x2\x39A\x39C"+ + "\x5\x10E\x88\x2\x39B\x39A\x3\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39C\x39D"+ + "\x3\x2\x2\x2\x39D\x39E\x5\x9AN\x2\x39EY\x3\x2\x2\x2\x39F\x3A0\a~\x2\x2"+ + "\x3A0\x3A1\x5\x10E\x88\x2\x3A1\x3B1\x5\x9AN\x2\x3A2\x3A4\x5\x10E\x88\x2"+ + "\x3A3\x3A2\x3\x2\x2\x2\x3A3\x3A4\x3\x2\x2\x2\x3A4\x3A5\x3\x2\x2\x2\x3A5"+ + "\x3A7\a)\x2\x2\x3A6\x3A8\x5\x10E\x88\x2\x3A7\x3A6\x3\x2\x2\x2\x3A7\x3A8"+ + "\x3\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AF\x5\x9AN\x2\x3AA\x3AB\x5\x10E"+ + "\x88\x2\x3AB\x3AC\a\xBE\x2\x2\x3AC\x3AD\x5\x10E\x88\x2\x3AD\x3AE\x5\x9A"+ + "N\x2\x3AE\x3B0\x3\x2\x2\x2\x3AF\x3AA\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2"+ + "\x3B0\x3B2\x3\x2\x2\x2\x3B1\x3A3\x3\x2\x2\x2\x3B1\x3B2\x3\x2\x2\x2\x3B2"+ + "[\x3\x2\x2\x2\x3B3\x3B4\a\x88\x2\x2\x3B4\x3B5\x5\x10E\x88\x2\x3B5\x3B7"+ + "\x5\x9AN\x2\x3B6\x3B8\x5\x10E\x88\x2\x3B7\x3B6\x3\x2\x2\x2\x3B7\x3B8\x3"+ + "\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9\x3BB\a\xD0\x2\x2\x3BA\x3BC\x5\x10E"+ + "\x88\x2\x3BB\x3BA\x3\x2\x2\x2\x3BB\x3BC\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2"+ + "\x2\x3BD\x3BE\x5\x9AN\x2\x3BE]\x3\x2\x2\x2\x3BF\x3C1\a\x8A\x2\x2\x3C0"+ + "\x3C2\x5\x10E\x88\x2\x3C1\x3C0\x3\x2\x2\x2\x3C1\x3C2\x3\x2\x2\x2\x3C2"+ + "\x3C3\x3\x2\x2\x2\x3C3\x3C5\a\xD4\x2\x2\x3C4\x3C6\x5\x10E\x88\x2\x3C5"+ + "\x3C4\x3\x2\x2\x2\x3C5\x3C6\x3\x2\x2\x2\x3C6\x3C7\x3\x2\x2\x2\x3C7\x3C9"+ + "\x5\xCA\x66\x2\x3C8\x3CA\x5\x10E\x88\x2\x3C9\x3C8\x3\x2\x2\x2\x3C9\x3CA"+ + "\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CC\a\xDB\x2\x2\x3CC_\x3\x2\x2"+ + "\x2\x3CD\x3CE\t\x6\x2\x2\x3CE\x3D7\x5\x10E\x88\x2\x3CF\x3D0\av\x2\x2\x3D0"+ + "\x3D1\x5\x10E\x88\x2\x3D1\x3D2\x5\x9AN\x2\x3D2\x3D8\x3\x2\x2\x2\x3D3\x3D4"+ + "\a\xAD\x2\x2\x3D4\x3D5\x5\x10E\x88\x2\x3D5\x3D6\a\x8C\x2\x2\x3D6\x3D8"+ + "\x3\x2\x2\x2\x3D7\x3CF\x3\x2\x2\x2\x3D7\x3D3\x3\x2\x2\x2\x3D8\x61\x3\x2"+ + "\x2\x2\x3D9\x3DA\a\x91\x2\x2\x3DA\x3DB\x5\x10E\x88\x2\x3DB\x3DC\x5\x9A"+ + "N\x2\x3DC\x3DD\x5\x10E\x88\x2\x3DD\x3DE\av\x2\x2\x3DE\x3DF\x5\x10E\x88"+ + "\x2\x3DF\x3EA\x5\x9AN\x2\x3E0\x3E2\x5\x10E\x88\x2\x3E1\x3E0\x3\x2\x2\x2"+ + "\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x3\x2\x2\x2\x3E3\x3E5\a)\x2\x2\x3E4\x3E6"+ + "\x5\x10E\x88\x2\x3E5\x3E4\x3\x2\x2\x2\x3E5\x3E6\x3\x2\x2\x2\x3E6\x3E7"+ + "\x3\x2\x2\x2\x3E7\x3E9\x5\x9AN\x2\x3E8\x3E1\x3\x2\x2\x2\x3E9\x3EC\x3\x2"+ + "\x2\x2\x3EA\x3E8\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x63\x3\x2\x2\x2"+ + "\x3EC\x3EA\x3\x2\x2\x2\x3ED\x3EE\a\x91\x2\x2\x3EE\x3EF\x5\x10E\x88\x2"+ + "\x3EF\x3F0\x5\x9AN\x2\x3F0\x3F1\x5\x10E\x88\x2\x3F1\x3F2\au\x2\x2\x3F2"+ + "\x3F3\x5\x10E\x88\x2\x3F3\x3FE\x5\x9AN\x2\x3F4\x3F6\x5\x10E\x88\x2\x3F5"+ + "\x3F4\x3\x2\x2\x2\x3F5\x3F6\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7\x3F9"+ + "\a)\x2\x2\x3F8\x3FA\x5\x10E\x88\x2\x3F9\x3F8\x3\x2\x2\x2\x3F9\x3FA\x3"+ + "\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\x5\x9AN\x2\x3FC\x3F5\x3\x2\x2"+ + "\x2\x3FD\x400\x3\x2\x2\x2\x3FE\x3FC\x3\x2\x2\x2\x3FE\x3FF\x3\x2\x2\x2"+ + "\x3FF\x65\x3\x2\x2\x2\x400\x3FE\x3\x2\x2\x2\x401\x402\a\x94\x2\x2\x402"+ + "\x403\x5\x10E\x88\x2\x403\x404\x5\x9AN\x2\x404\x405\x5\x10E\x88\x2\x405"+ + "\x406\aq\x2\x2\x406\x407\x5\x10E\x88\x2\x407\x40D\t\a\x2\x2\x408\x409"+ + "\x5\x10E\x88\x2\x409\x40A\a\x33\x2\x2\x40A\x40B\x5\x10E\x88\x2\x40B\x40C"+ + "\t\b\x2\x2\x40C\x40E\x3\x2\x2\x2\x40D\x408\x3\x2\x2\x2\x40D\x40E\x3\x2"+ + "\x2\x2\x40E\x412\x3\x2\x2\x2\x40F\x410\x5\x10E\x88\x2\x410\x411\t\t\x2"+ + "\x2\x411\x413\x3\x2\x2\x2\x412\x40F\x3\x2\x2\x2\x412\x413\x3\x2\x2\x2"+ + "\x413\x414\x3\x2\x2\x2\x414\x415\x5\x10E\x88\x2\x415\x416\a\x39\x2\x2"+ + "\x416\x417\x5\x10E\x88\x2\x417\x423\x5\xAEX\x2\x418\x419\x5\x10E\x88\x2"+ + "\x419\x41B\a\x1D\x2\x2\x41A\x41C\x5\x10E\x88\x2\x41B\x41A\x3\x2\x2\x2"+ + "\x41B\x41C\x3\x2\x2\x2\x41C\x41D\x3\x2\x2\x2\x41D\x41F\a\xD0\x2\x2\x41E"+ + "\x420\x5\x10E\x88\x2\x41F\x41E\x3\x2\x2\x2\x41F\x420\x3\x2\x2\x2\x420"+ + "\x421\x3\x2\x2\x2\x421\x422\x5\x9AN\x2\x422\x424\x3\x2\x2\x2\x423\x418"+ + "\x3\x2\x2\x2\x423\x424\x3\x2\x2\x2\x424g\x3\x2\x2\x2\x425\x432\x5j\x36"+ + "\x2\x426\x428\x5\x10E\x88\x2\x427\x426\x3\x2\x2\x2\x427\x428\x3\x2\x2"+ + "\x2\x428\x429\x3\x2\x2\x2\x429\x42B\t\n\x2\x2\x42A\x42C\x5\x10E\x88\x2"+ + "\x42B\x42A\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C\x42E\x3\x2\x2\x2\x42D"+ + "\x42F\x5j\x36\x2\x42E\x42D\x3\x2\x2\x2\x42E\x42F\x3\x2\x2\x2\x42F\x431"+ + "\x3\x2\x2\x2\x430\x427\x3\x2\x2\x2\x431\x434\x3\x2\x2\x2\x432\x430\x3"+ + "\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x447\x3\x2\x2\x2\x434\x432\x3\x2"+ + "\x2\x2\x435\x437\x5j\x36\x2\x436\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2"+ + "\x437\x442\x3\x2\x2\x2\x438\x43A\x5\x10E\x88\x2\x439\x438\x3\x2\x2\x2"+ + "\x439\x43A\x3\x2\x2\x2\x43A\x43B\x3\x2\x2\x2\x43B\x43D\t\n\x2\x2\x43C"+ + "\x43E\x5\x10E\x88\x2\x43D\x43C\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E"+ + "\x440\x3\x2\x2\x2\x43F\x441\x5j\x36\x2\x440\x43F\x3\x2\x2\x2\x440\x441"+ + "\x3\x2\x2\x2\x441\x443\x3\x2\x2\x2\x442\x439\x3\x2\x2\x2\x443\x444\x3"+ + "\x2\x2\x2\x444\x442\x3\x2\x2\x2\x444\x445\x3\x2\x2\x2\x445\x447\x3\x2"+ + "\x2\x2\x446\x425\x3\x2\x2\x2\x446\x436\x3\x2\x2\x2\x447i\x3\x2\x2\x2\x448"+ + "\x45A\x5\x9AN\x2\x449\x457\t\v\x2\x2\x44A\x44C\x5\x10E\x88\x2\x44B\x44A"+ + "\x3\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44D\x3\x2\x2\x2\x44D\x44F\a\xD4"+ + "\x2\x2\x44E\x450\x5\x10E\x88\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2"+ + "\x2\x2\x450\x451\x3\x2\x2\x2\x451\x453\x5\xCA\x66\x2\x452\x454\x5\x10E"+ + "\x88\x2\x453\x452\x3\x2\x2\x2\x453\x454\x3\x2\x2\x2\x454\x455\x3\x2\x2"+ + "\x2\x455\x456\a\xDB\x2\x2\x456\x458\x3\x2\x2\x2\x457\x44B\x3\x2\x2\x2"+ + "\x457\x458\x3\x2\x2\x2\x458\x45A\x3\x2\x2\x2\x459\x448\x3\x2\x2\x2\x459"+ + "\x449\x3\x2\x2\x2\x45Ak\x3\x2\x2\x2\x45B\x45C\a\x9E\x2\x2\x45C\x45D\x5"+ + "\x10E\x88\x2\x45D\x45F\x5\xAEX\x2\x45E\x460\x5\x10E\x88\x2\x45F\x45E\x3"+ + "\x2\x2\x2\x45F\x460\x3\x2\x2\x2\x460\x461\x3\x2\x2\x2\x461\x466\a)\x2"+ + "\x2\x462\x464\x5\x10E\x88\x2\x463\x462\x3\x2\x2\x2\x463\x464\x3\x2\x2"+ + "\x2\x464\x465\x3\x2\x2\x2\x465\x467\x5h\x35\x2\x466\x463\x3\x2\x2\x2\x466"+ + "\x467\x3\x2\x2\x2\x467m\x3\x2\x2\x2\x468\x469\x5\xF4{\x2\x469\x46A\x5"+ + "\x10E\x88\x2\x46A\x46C\x3\x2\x2\x2\x46B\x468\x3\x2\x2\x2\x46B\x46C\x3"+ + "\x2\x2\x2\x46C\x46F\x3\x2\x2\x2\x46D\x46E\a\xB6\x2\x2\x46E\x470\x5\x10E"+ + "\x88\x2\x46F\x46D\x3\x2\x2\x2\x46F\x470\x3\x2\x2\x2\x470\x471\x3\x2\x2"+ + "\x2\x471\x472\a\xA0\x2\x2\x472\x473\x5\x10E\x88\x2\x473\x475\x5@!\x2\x474"+ + "\x476\x5\xF2z\x2\x475\x474\x3\x2\x2\x2\x475\x476\x3\x2\x2\x2\x476\x47B"+ + "\x3\x2\x2\x2\x477\x479\x5\x10E\x88\x2\x478\x477\x3\x2\x2\x2\x478\x479"+ + "\x3\x2\x2\x2\x479\x47A\x3\x2\x2\x2\x47A\x47C\x5\xD0i\x2\x47B\x478\x3\x2"+ + "\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C\x480\x3\x2\x2\x2\x47D\x47E\x5\x10E\x88"+ + "\x2\x47E\x47F\x5\xDEp\x2\x47F\x481\x3\x2\x2\x2\x480\x47D\x3\x2\x2\x2\x480"+ + "\x481\x3\x2\x2\x2\x481\x482\x3\x2\x2\x2\x482\x484\x5\xFE\x80\x2\x483\x485"+ + "\x5\x1E\x10\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3"+ + "\x2\x2\x2\x486\x487\a_\x2\x2\x487o\x3\x2\x2\x2\x488\x489\x5\xF4{\x2\x489"+ + "\x48A\x5\x10E\x88\x2\x48A\x48C\x3\x2\x2\x2\x48B\x488\x3\x2\x2\x2\x48B"+ + "\x48C\x3\x2\x2\x2\x48C\x48F\x3\x2\x2\x2\x48D\x48E\a\xB6\x2\x2\x48E\x490"+ + "\x5\x10E\x88\x2\x48F\x48D\x3\x2\x2\x2\x48F\x490\x3\x2\x2\x2\x490\x491"+ + "\x3\x2\x2\x2\x491\x492\a\xA2\x2\x2\x492\x493\x5\x10E\x88\x2\x493\x498"+ + "\x5\x92J\x2\x494\x496\x5\x10E\x88\x2\x495\x494\x3\x2\x2\x2\x495\x496\x3"+ + "\x2\x2\x2\x496\x497\x3\x2\x2\x2\x497\x499\x5\xD0i\x2\x498\x495\x3\x2\x2"+ + "\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xFE\x80\x2"+ + "\x49B\x49D\x5\x1E\x10\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D"+ + "\x49E\x3\x2\x2\x2\x49E\x49F\a_\x2\x2\x49Fq\x3\x2\x2\x2\x4A0\x4A1\x5\xF4"+ + "{\x2\x4A1\x4A2\x5\x10E\x88\x2\x4A2\x4A4\x3\x2\x2\x2\x4A3\x4A0\x3\x2\x2"+ + "\x2\x4A3\x4A4\x3\x2\x2\x2\x4A4\x4A7\x3\x2\x2\x2\x4A5\x4A6\a\xB6\x2\x2"+ + "\x4A6\x4A8\x5\x10E\x88\x2\x4A7\x4A5\x3\x2\x2\x2\x4A7\x4A8\x3\x2\x2\x2"+ + "\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AA\a\xA1\x2\x2\x4AA\x4AB\x5\x10E\x88\x2"+ + "\x4AB\x4B0\x5\x92J\x2\x4AC\x4AE\x5\x10E\x88\x2\x4AD\x4AC\x3\x2\x2\x2\x4AD"+ + "\x4AE\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF\x4B1\x5\xD0i\x2\x4B0\x4AD"+ + "\x3\x2\x2\x2\x4B0\x4B1\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B4\x5"+ + "\xFE\x80\x2\x4B3\x4B5\x5\x1E\x10\x2\x4B4\x4B3\x3\x2\x2\x2\x4B4\x4B5\x3"+ + "\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6\x4B7\a_\x2\x2\x4B7s\x3\x2\x2\x2\x4B8"+ + "\x4B9\a\xA5\x2\x2\x4B9\x4BA\x5\x10E\x88\x2\x4BA\x4BC\x5\xAEX\x2\x4BB\x4BD"+ + "\x5\x10E\x88\x2\x4BC\x4BB\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2\x2\x4BD\x4BE"+ + "\x3\x2\x2\x2\x4BE\x4C0\a)\x2\x2\x4BF\x4C1\x5\x10E\x88\x2\x4C0\x4BF\x3"+ + "\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x3\x2\x2\x2\x4C2\x4C4\x5\x9A"+ + "N\x2\x4C3\x4C2\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x4C6\x3\x2\x2\x2"+ + "\x4C5\x4C7\x5\x10E\x88\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2\x2"+ + "\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\a)\x2\x2\x4C9\x4CB\x5\x10E\x88\x2\x4CA"+ + "\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CC\x3\x2\x2\x2\x4CC\x4CD"+ + "\x5\x9AN\x2\x4CDu\x3\x2\x2\x2\x4CE\x4CF\a\xA7\x2\x2\x4CF\x4D0\x5\x10E"+ + "\x88\x2\x4D0\x4DF\x5\xDCo\x2\x4D1\x4D3\x5\x10E\x88\x2\x4D2\x4D1\x3\x2"+ + "\x2\x2\x4D2\x4D3\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2\x2\x4D4\x4D6\a\xD4\x2"+ + "\x2\x4D5\x4D7\x5\x10E\x88\x2\x4D6\x4D5\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2"+ + "\x2\x4D7\x4DC\x3\x2\x2\x2\x4D8\x4DA\x5\xCA\x66\x2\x4D9\x4DB\x5\x10E\x88"+ + "\x2\x4DA\x4D9\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\x3\x2\x2\x2"+ + "\x4DC\x4D8\x3\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE"+ + "\x4E0\a\xDB\x2\x2\x4DF\x4D2\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0w\x3"+ + "\x2\x2\x2\x4E1\x4E2\a\xAA\x2\x2\x4E2\x4E5\x5\x10E\x88\x2\x4E3\x4E4\a\x9D"+ + "\x2\x2\x4E4\x4E6\x5\x10E\x88\x2\x4E5\x4E3\x3\x2\x2\x2\x4E5\x4E6\x3\x2"+ + "\x2\x2\x4E6\x4E7\x3\x2\x2\x2\x4E7\x4F2\x5z>\x2\x4E8\x4EA\x5\x10E\x88\x2"+ + "\x4E9\x4E8\x3\x2\x2\x2\x4E9\x4EA\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB"+ + "\x4ED\a)\x2\x2\x4EC\x4EE\x5\x10E\x88\x2\x4ED\x4EC\x3\x2\x2\x2\x4ED\x4EE"+ + "\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2\x2\x4EF\x4F1\x5z>\x2\x4F0\x4E9\x3\x2\x2"+ + "\x2\x4F1\x4F4\x3\x2\x2\x2\x4F2\x4F0\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2"+ + "\x4F3y\x3\x2\x2\x2\x4F4\x4F2\x3\x2\x2\x2\x4F5\x4F7\x5\xBA^\x2\x4F6\x4F8"+ + "\x5\x10E\x88\x2\x4F7\x4F6\x3\x2\x2\x2\x4F7\x4F8\x3\x2\x2\x2\x4F8\x4F9"+ + "\x3\x2\x2\x2\x4F9\x4FB\a\xD4\x2\x2\x4FA\x4FC\x5\x10E\x88\x2\x4FB\x4FA"+ + "\x3\x2\x2\x2\x4FB\x4FC\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FF\x5"+ + "\xD6l\x2\x4FE\x500\x5\x10E\x88\x2\x4FF\x4FE\x3\x2\x2\x2\x4FF\x500\x3\x2"+ + "\x2\x2\x500\x501\x3\x2\x2\x2\x501\x505\a\xDB\x2\x2\x502\x503\x5\x10E\x88"+ + "\x2\x503\x504\x5\xDEp\x2\x504\x506\x3\x2\x2\x2\x505\x502\x3\x2\x2\x2\x505"+ + "\x506\x3\x2\x2\x2\x506{\x3\x2\x2\x2\x507\x508\a\xAC\x2\x2\x508}\x3\x2"+ + "\x2\x2\x509\x50F\a\xAD\x2\x2\x50A\x50D\x5\x10E\x88\x2\x50B\x50E\a\x8C"+ + "\x2\x2\x50C\x50E\x5\x9AN\x2\x50D\x50B\x3\x2\x2\x2\x50D\x50C\x3\x2\x2\x2"+ + "\x50E\x510\x3\x2\x2\x2\x50F\x50A\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510"+ + "\x7F\x3\x2\x2\x2\x511\x512\a\xAE\x2\x2\x512\x81\x3\x2\x2\x2\x513\x514"+ + "\a\xAF\x2\x2\x514\x515\x5\x10E\x88\x2\x515\x517\x5\x9AN\x2\x516\x518\x5"+ + "\x10E\x88\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3"+ + "\x2\x2\x2\x519\x51B\a\xD0\x2\x2\x51A\x51C\x5\x10E\x88\x2\x51B\x51A\x3"+ + "\x2\x2\x2\x51B\x51C\x3\x2\x2\x2\x51C\x51D\x3\x2\x2\x2\x51D\x51E\x5\x9A"+ + "N\x2\x51E\x83\x3\x2\x2\x2\x51F\x520\a\xB0\x2\x2\x520\x521\x5\x10E\x88"+ + "\x2\x521\x523\x5\xAEX\x2\x522\x524\x5\x10E\x88\x2\x523\x522\x3\x2\x2\x2"+ + "\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x527\a)\x2\x2\x526\x528"+ + "\x5\x10E\x88\x2\x527\x526\x3\x2\x2\x2\x527\x528\x3\x2\x2\x2\x528\x529"+ + "\x3\x2\x2\x2\x529\x52A\x5\x9AN\x2\x52A\x85\x3\x2\x2\x2\x52B\x52C\a\xB1"+ + "\x2\x2\x52C\x52D\x5\x10E\x88\x2\x52D\x52E\a\x41\x2\x2\x52E\x52F\x5\x10E"+ + "\x88\x2\x52F\x530\x5\x9AN\x2\x530\x534\x5\xFE\x80\x2\x531\x533\x5\x8A"+ + "\x46\x2\x532\x531\x3\x2\x2\x2\x533\x536\x3\x2\x2\x2\x534\x532\x3\x2\x2"+ + "\x2\x534\x535\x3\x2\x2\x2\x535\x537\x3\x2\x2\x2\x536\x534\x3\x2\x2\x2"+ + "\x537\x538\a`\x2\x2\x538\x87\x3\x2\x2\x2\x539\x53B\a|\x2\x2\x53A\x53C"+ + "\x5\x10E\x88\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D"+ + "\x3\x2\x2\x2\x53D\x53F\x5\xE2r\x2\x53E\x540\x5\x10E\x88\x2\x53F\x53E\x3"+ + "\x2\x2\x2\x53F\x540\x3\x2\x2\x2\x540\x541\x3\x2\x2\x2\x541\x542\x5\x9A"+ + "N\x2\x542\x54B\x3\x2\x2\x2\x543\x544\x5\x9AN\x2\x544\x545\x5\x10E\x88"+ + "\x2\x545\x546\a\xBE\x2\x2\x546\x547\x5\x10E\x88\x2\x547\x548\x5\x9AN\x2"+ + "\x548\x54B\x3\x2\x2\x2\x549\x54B\x5\x9AN\x2\x54A\x539\x3\x2\x2\x2\x54A"+ + "\x543\x3\x2\x2\x2\x54A\x549\x3\x2\x2\x2\x54B\x89\x3\x2\x2\x2\x54C\x54D"+ + "\a\x41\x2\x2\x54D\x54E\x5\x10E\x88\x2\x54E\x54F\x5\x8CG\x2\x54F\x551\x5"+ + "\xFE\x80\x2\x550\x552\x5\x1E\x10\x2\x551\x550\x3\x2\x2\x2\x551\x552\x3"+ + "\x2\x2\x2\x552\x8B\x3\x2\x2\x2\x553\x563\aY\x2\x2\x554\x55F\x5\x88\x45"+ + "\x2\x555\x557\x5\x10E\x88\x2\x556\x555\x3\x2\x2\x2\x556\x557\x3\x2\x2"+ + "\x2\x557\x558\x3\x2\x2\x2\x558\x55A\a)\x2\x2\x559\x55B\x5\x10E\x88\x2"+ + "\x55A\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C"+ + "\x55E\x5\x88\x45\x2\x55D\x556\x3\x2\x2\x2\x55E\x561\x3\x2\x2\x2\x55F\x55D"+ + "\x3\x2\x2\x2\x55F\x560\x3\x2\x2\x2\x560\x563\x3\x2\x2\x2\x561\x55F\x3"+ + "\x2\x2\x2\x562\x553\x3\x2\x2\x2\x562\x554\x3\x2\x2\x2\x563\x8D\x3\x2\x2"+ + "\x2\x564\x565\a\xB2\x2\x2\x565\x566\x5\x10E\x88\x2\x566\x568\x5\x9AN\x2"+ + "\x567\x569\x5\x10E\x88\x2\x568\x567\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2"+ + "\x569\x56A\x3\x2\x2\x2\x56A\x56C\a\xD0\x2\x2\x56B\x56D\x5\x10E\x88\x2"+ + "\x56C\x56B\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x3\x2\x2\x2\x56E"+ + "\x56F\x5\x9AN\x2\x56F\x8F\x3\x2\x2\x2\x570\x571\x5\xF4{\x2\x571\x572\x5"+ + "\x10E\x88\x2\x572\x574\x3\x2\x2\x2\x573\x570\x3\x2\x2\x2\x573\x574\x3"+ + "\x2\x2\x2\x574\x577\x3\x2\x2\x2\x575\x576\a\xB6\x2\x2\x576\x578\x5\x10E"+ + "\x88\x2\x577\x575\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x3\x2\x2"+ + "\x2\x579\x57B\a\xBA\x2\x2\x57A\x57C\x5\x10E\x88\x2\x57B\x57A\x3\x2\x2"+ + "\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x582\x5\x92J\x2\x57E"+ + "\x580\x5\x10E\x88\x2\x57F\x57E\x3\x2\x2\x2\x57F\x580\x3\x2\x2\x2\x580"+ + "\x581\x3\x2\x2\x2\x581\x583\x5\xD0i\x2\x582\x57F\x3\x2\x2\x2\x582\x583"+ + "\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x586\x5\xFE\x80\x2\x585\x587\x5"+ + "\x1E\x10\x2\x586\x585\x3\x2\x2\x2\x586\x587\x3\x2\x2\x2\x587\x588\x3\x2"+ + "\x2\x2\x588\x589\a\x61\x2\x2\x589\x91\x3\x2\x2\x2\x58A\x58B\x5\xDCo\x2"+ + "\x58B\x93\x3\x2\x2\x2\x58C\x58D\x5\xF4{\x2\x58D\x58E\x5\x10E\x88\x2\x58E"+ + "\x590\x3\x2\x2\x2\x58F\x58C\x3\x2\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591"+ + "\x3\x2\x2\x2\x591\x592\a\xC0\x2\x2\x592\x593\x5\x10E\x88\x2\x593\x594"+ + "\x5\xDCo\x2\x594\x598\x5\xFE\x80\x2\x595\x597\x5\x96L\x2\x596\x595\x3"+ + "\x2\x2\x2\x597\x59A\x3\x2\x2\x2\x598\x596\x3\x2\x2\x2\x598\x599\x3\x2"+ + "\x2\x2\x599\x59B\x3\x2\x2\x2\x59A\x598\x3\x2\x2\x2\x59B\x59C\a\x62\x2"+ + "\x2\x59C\x95\x3\x2\x2\x2\x59D\x5AC\x5\xDCo\x2\x59E\x5A0\x5\x10E\x88\x2"+ + "\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1"+ + "\x5A6\a\xD4\x2\x2\x5A2\x5A4\x5\x10E\x88\x2\x5A3\x5A2\x3\x2\x2\x2\x5A3"+ + "\x5A4\x3\x2\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A7\x5\xD6l\x2\x5A6\x5A3"+ + "\x3\x2\x2\x2\x5A6\x5A7\x3\x2\x2\x2\x5A7\x5A9\x3\x2\x2\x2\x5A8\x5AA\x5"+ + "\x10E\x88\x2\x5A9\x5A8\x3\x2\x2\x2\x5A9\x5AA\x3\x2\x2\x2\x5AA\x5AB\x3"+ + "\x2\x2\x2\x5AB\x5AD\a\xDB\x2\x2\x5AC\x59F\x3\x2\x2\x2\x5AC\x5AD\x3\x2"+ + "\x2\x2\x5AD\x5B1\x3\x2\x2\x2\x5AE\x5AF\x5\x10E\x88\x2\x5AF\x5B0\x5\xDE"+ + "p\x2\x5B0\x5B2\x3\x2\x2\x2\x5B1\x5AE\x3\x2\x2\x2\x5B1\x5B2\x3\x2\x2\x2"+ + "\x5B2\x5B3\x3\x2\x2\x2\x5B3\x5B4\x5\xFE\x80\x2\x5B4\x97\x3\x2\x2\x2\x5B5"+ + "\x5B6\a\xC2\x2\x2\x5B6\x5B7\x5\x10E\x88\x2\x5B7\x5C7\x5\xAEX\x2\x5B8\x5BA"+ + "\x5\x10E\x88\x2\x5B9\x5B8\x3\x2\x2\x2\x5B9\x5BA\x3\x2\x2\x2\x5BA\x5BB"+ + "\x3\x2\x2\x2\x5BB\x5BD\a)\x2\x2\x5BC\x5BE\x5\x10E\x88\x2\x5BD\x5BC\x3"+ + "\x2\x2\x2\x5BD\x5BE\x3\x2\x2\x2\x5BE\x5BF\x3\x2\x2\x2\x5BF\x5C5\x5\x9A"+ + "N\x2\x5C0\x5C1\x5\x10E\x88\x2\x5C1\x5C2\a\xBE\x2\x2\x5C2\x5C3\x5\x10E"+ + "\x88\x2\x5C3\x5C4\x5\x9AN\x2\x5C4\x5C6\x3\x2\x2\x2\x5C5\x5C0\x3\x2\x2"+ + "\x2\x5C5\x5C6\x3\x2\x2\x2\x5C6\x5C8\x3\x2\x2\x2\x5C7\x5B9\x3\x2\x2\x2"+ + "\x5C7\x5C8\x3\x2\x2\x2\x5C8\x99\x3\x2\x2\x2\x5C9\x5CA\bN\x1\x2\x5CA\x5CC"+ + "\a\x8D\x2\x2\x5CB\x5CD\x5\x10E\x88\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD"+ + "\x3\x2\x2\x2\x5CD\x5CE\x3\x2\x2\x2\x5CE\x5F7\x5\x9AN\x15\x5CF\x5D1\a\x34"+ + "\x2\x2\x5D0\x5D2\x5\x10E\x88\x2\x5D1\x5D0\x3\x2\x2\x2\x5D1\x5D2\x3\x2"+ + "\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5F7\x5\x9AN\x12\x5D4\x5D6\x5\xBA^\x2"+ + "\x5D5\x5D7\x5\x10E\x88\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6\x5D7\x3\x2\x2\x2"+ + "\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5DA\a\xCD\x2\x2\x5D9\x5DB\x5\x10E\x88\x2"+ + "\x5DA\x5D9\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2\x2\x5DC"+ + "\x5DD\x5\x9AN\x11\x5DD\x5F7\x3\x2\x2\x2\x5DE\x5E0\a\xD6\x2\x2\x5DF\x5E1"+ + "\x5\x10E\x88\x2\x5E0\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2"+ + "\x3\x2\x2\x2\x5E2\x5F7\x5\x9AN\xF\x5E3\x5E5\a\x8E\x2\x2\x5E4\x5E6\x5\x10E"+ + "\x88\x2\x5E5\x5E4\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E7\x3\x2\x2"+ + "\x2\x5E7\x5F7\x5\x9AN\b\x5E8\x5F7\x5\xECw\x2\x5E9\x5F7\x5\xBA^\x2\x5EA"+ + "\x5EC\a\xD4\x2\x2\x5EB\x5ED\x5\x10E\x88\x2\x5EC\x5EB\x3\x2\x2\x2\x5EC"+ + "\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5F0\x5\x9AN\x2\x5EF\x5F1"+ + "\x5\x10E\x88\x2\x5F0\x5EF\x3\x2\x2\x2\x5F0\x5F1\x3\x2\x2\x2\x5F1\x5F2"+ + "\x3\x2\x2\x2\x5F2\x5F3\a\xDB\x2\x2\x5F3\x5F7\x3\x2\x2\x2\x5F4\x5F7\x5"+ + "\x9CO\x2\x5F5\x5F7\x5^\x30\x2\x5F6\x5C9\x3\x2\x2\x2\x5F6\x5CF\x3\x2\x2"+ + "\x2\x5F6\x5D4\x3\x2\x2\x2\x5F6\x5DE\x3\x2\x2\x2\x5F6\x5E3\x3\x2\x2\x2"+ + "\x5F6\x5E8\x3\x2\x2\x2\x5F6\x5E9\x3\x2\x2\x2\x5F6\x5EA\x3\x2\x2\x2\x5F6"+ + "\x5F4\x3\x2\x2\x2\x5F6\x5F5\x3\x2\x2\x2\x5F7\x666\x3\x2\x2\x2\x5F8\x5FA"+ + "\f\x10\x2\x2\x5F9\x5FB\x5\x10E\x88\x2\x5FA\x5F9\x3\x2\x2\x2\x5FA\x5FB"+ + "\x3\x2\x2\x2\x5FB\x5FC\x3\x2\x2\x2\x5FC\x5FE\a\xDA\x2\x2\x5FD\x5FF\x5"+ + "\x10E\x88\x2\x5FE\x5FD\x3\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x3"+ + "\x2\x2\x2\x600\x665\x5\x9AN\x11\x601\x603\f\xE\x2\x2\x602\x604\x5\x10E"+ + "\x88\x2\x603\x602\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x605\x3\x2\x2"+ + "\x2\x605\x607\t\f\x2\x2\x606\x608\x5\x10E\x88\x2\x607\x606\x3\x2\x2\x2"+ + "\x607\x608\x3\x2\x2\x2\x608\x609\x3\x2\x2\x2\x609\x665\x5\x9AN\xF\x60A"+ + "\x60C\f\r\x2\x2\x60B\x60D\x5\x10E\x88\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D"+ + "\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x610\a\xCF\x2\x2\x60F\x611\x5"+ + "\x10E\x88\x2\x610\x60F\x3\x2\x2\x2\x610\x611\x3\x2\x2\x2\x611\x612\x3"+ + "\x2\x2\x2\x612\x665\x5\x9AN\xE\x613\x615\f\f\x2\x2\x614\x616\x5\x10E\x88"+ + "\x2\x615\x614\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2"+ + "\x617\x619\a\x8B\x2\x2\x618\x61A\x5\x10E\x88\x2\x619\x618\x3\x2\x2\x2"+ + "\x619\x61A\x3\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x665\x5\x9AN\r\x61C"+ + "\x61E\f\v\x2\x2\x61D\x61F\x5\x10E\x88\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F"+ + "\x3\x2\x2\x2\x61F\x620\x3\x2\x2\x2\x620\x622\t\r\x2\x2\x621\x623\x5\x10E"+ + "\x88\x2\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\x624\x3\x2\x2"+ + "\x2\x624\x665\x5\x9AN\f\x625\x627\f\n\x2\x2\x626\x628\x5\x10E\x88\x2\x627"+ + "\x626\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B"+ + "\a\x32\x2\x2\x62A\x62C\x5\x10E\x88\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C"+ + "\x3\x2\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x665\x5\x9AN\v\x62E\x630\f\t\x2"+ + "\x2\x62F\x631\x5\x10E\x88\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2"+ + "\x2\x631\x632\x3\x2\x2\x2\x632\x634\t\xE\x2\x2\x633\x635\x5\x10E\x88\x2"+ + "\x634\x633\x3\x2\x2\x2\x634\x635\x3\x2\x2\x2\x635\x636\x3\x2\x2\x2\x636"+ + "\x665\x5\x9AN\n\x637\x639\f\a\x2\x2\x638\x63A\x5\x10E\x88\x2\x639\x638"+ + "\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a\x36"+ + "\x2\x2\x63C\x63E\x5\x10E\x88\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2"+ + "\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x665\x5\x9AN\b\x640\x642\f\x6\x2\x2"+ + "\x641\x643\x5\x10E\x88\x2\x642\x641\x3\x2\x2\x2\x642\x643\x3\x2\x2\x2"+ + "\x643\x644\x3\x2\x2\x2\x644\x646\a\x9A\x2\x2\x645\x647\x5\x10E\x88\x2"+ + "\x646\x645\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648"+ + "\x665\x5\x9AN\a\x649\x64B\f\x5\x2\x2\x64A\x64C\x5\x10E\x88\x2\x64B\x64A"+ + "\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x3\x2\x2\x2\x64D\x64F\a\xCC"+ + "\x2\x2\x64E\x650\x5\x10E\x88\x2\x64F\x64E\x3\x2\x2\x2\x64F\x650\x3\x2"+ + "\x2\x2\x650\x651\x3\x2\x2\x2\x651\x665\x5\x9AN\x6\x652\x654\f\x4\x2\x2"+ + "\x653\x655\x5\x10E\x88\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3\x2\x2\x2"+ + "\x655\x656\x3\x2\x2\x2\x656\x658\a\x66\x2\x2\x657\x659\x5\x10E\x88\x2"+ + "\x658\x657\x3\x2\x2\x2\x658\x659\x3\x2\x2\x2\x659\x65A\x3\x2\x2\x2\x65A"+ + "\x665\x5\x9AN\x5\x65B\x65D\f\x3\x2\x2\x65C\x65E\x5\x10E\x88\x2\x65D\x65C"+ + "\x3\x2\x2\x2\x65D\x65E\x3\x2\x2\x2\x65E\x65F\x3\x2\x2\x2\x65F\x661\ax"+ + "\x2\x2\x660\x662\x5\x10E\x88\x2\x661\x660\x3\x2\x2\x2\x661\x662\x3\x2"+ + "\x2\x2\x662\x663\x3\x2\x2\x2\x663\x665\x5\x9AN\x4\x664\x5F8\x3\x2\x2\x2"+ + "\x664\x601\x3\x2\x2\x2\x664\x60A\x3\x2\x2\x2\x664\x613\x3\x2\x2\x2\x664"+ + "\x61C\x3\x2\x2\x2\x664\x625\x3\x2\x2\x2\x664\x62E\x3\x2\x2\x2\x664\x637"+ + "\x3\x2\x2\x2\x664\x640\x3\x2\x2\x2\x664\x649\x3\x2\x2\x2\x664\x652\x3"+ + "\x2\x2\x2\x664\x65B\x3\x2\x2\x2\x665\x668\x3\x2\x2\x2\x666\x664\x3\x2"+ + "\x2\x2\x666\x667\x3\x2\x2\x2\x667\x9B\x3\x2\x2\x2\x668\x666\x3\x2\x2\x2"+ + "\x669\x66A\a\xC1\x2\x2\x66A\x66B\x5\x10E\x88\x2\x66B\x671\x5\x9AN\x2\x66C"+ + "\x66D\x5\x10E\x88\x2\x66D\x66E\a|\x2\x2\x66E\x66F\x5\x10E\x88\x2\x66F"+ + "\x670\x5\xF0y\x2\x670\x672\x3\x2\x2\x2\x671\x66C\x3\x2\x2\x2\x671\x672"+ + "\x3\x2\x2\x2\x672\x9D\x3\x2\x2\x2\x673\x677\aU\x2\x2\x674\x677\a\xB6\x2"+ + "\x2\x675\x677\x5\xF4{\x2\x676\x673\x3\x2\x2\x2\x676\x674\x3\x2\x2\x2\x676"+ + "\x675\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2\x678\x67B\x5\x10E\x88\x2\x679"+ + "\x67A\a\xCA\x2\x2\x67A\x67C\x5\x10E\x88\x2\x67B\x679\x3\x2\x2\x2\x67B"+ + "\x67C\x3\x2\x2\x2\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x5\xA0Q\x2\x67E\x9F"+ + "\x3\x2\x2\x2\x67F\x68A\x5\xA2R\x2\x680\x682\x5\x10E\x88\x2\x681\x680\x3"+ + "\x2\x2\x2\x681\x682\x3\x2\x2\x2\x682\x683\x3\x2\x2\x2\x683\x685\a)\x2"+ + "\x2\x684\x686\x5\x10E\x88\x2\x685\x684\x3\x2\x2\x2\x685\x686\x3\x2\x2"+ + "\x2\x686\x687\x3\x2\x2\x2\x687\x689\x5\xA2R\x2\x688\x681\x3\x2\x2\x2\x689"+ + "\x68C\x3\x2\x2\x2\x68A\x688\x3\x2\x2\x2\x68A\x68B\x3\x2\x2\x2\x68B\xA1"+ + "\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2\x68D\x69F\x5\xDCo\x2\x68E\x690\x5\x10E"+ + "\x88\x2\x68F\x68E\x3\x2\x2\x2\x68F\x690\x3\x2\x2\x2\x690\x691\x3\x2\x2"+ + "\x2\x691\x693\a\xD4\x2\x2\x692\x694\x5\x10E\x88\x2\x693\x692\x3\x2\x2"+ + "\x2\x693\x694\x3\x2\x2\x2\x694\x699\x3\x2\x2\x2\x695\x697\x5\xD6l\x2\x696"+ + "\x698\x5\x10E\x88\x2\x697\x696\x3\x2\x2\x2\x697\x698\x3\x2\x2\x2\x698"+ + "\x69A\x3\x2\x2\x2\x699\x695\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69B"+ + "\x3\x2\x2\x2\x69B\x69D\a\xDB\x2\x2\x69C\x69E\x5\x10E\x88\x2\x69D\x69C"+ + "\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2\x69E\x6A0\x3\x2\x2\x2\x69F\x68F\x3"+ + "\x2\x2\x2\x69F\x6A0\x3\x2\x2\x2\x6A0\x6A2\x3\x2\x2\x2\x6A1\x6A3\x5\xF2"+ + "z\x2\x6A2\x6A1\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3\x6A7\x3\x2\x2\x2"+ + "\x6A4\x6A5\x5\x10E\x88\x2\x6A5\x6A6\x5\xDEp\x2\x6A6\x6A8\x3\x2\x2\x2\x6A7"+ + "\x6A4\x3\x2\x2\x2\x6A7\x6A8\x3\x2\x2\x2\x6A8\xA3\x3\x2\x2\x2\x6A9\x6AA"+ + "\a\xC7\x2\x2\x6AA\x6AB\x5\x10E\x88\x2\x6AB\x6AC\x5\x9AN\x2\x6AC\x6AE\x5"+ + "\xFE\x80\x2\x6AD\x6AF\x5\x1E\x10\x2\x6AE\x6AD\x3\x2\x2\x2\x6AE\x6AF\x3"+ + "\x2\x2\x2\x6AF\x6B0\x3\x2\x2\x2\x6B0\x6B1\a\xC6\x2\x2\x6B1\xA5\x3\x2\x2"+ + "\x2\x6B2\x6B3\a\xC8\x2\x2\x6B3\x6B4\x5\x10E\x88\x2\x6B4\x6B6\x5\xAEX\x2"+ + "\x6B5\x6B7\x5\x10E\x88\x2\x6B6\x6B5\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2\x2"+ + "\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6BA\a)\x2\x2\x6B9\x6BB\x5\x10E\x88\x2\x6BA"+ + "\x6B9\x3\x2\x2\x2\x6BA\x6BB\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD"+ + "\x5\x9AN\x2\x6BD\xA7\x3\x2\x2\x2\x6BE\x6BF\a\xC9\x2\x2\x6BF\x6C0\x5\x10E"+ + "\x88\x2\x6C0\x6C1\x5\xAAV\x2\x6C1\x6C3\x5\xFE\x80\x2\x6C2\x6C4\x5\x1E"+ + "\x10\x2\x6C3\x6C2\x3\x2\x2\x2\x6C3\x6C4\x3\x2\x2\x2\x6C4\x6C5\x3\x2\x2"+ + "\x2\x6C5\x6C6\a\x63\x2\x2\x6C6\xA9\x3\x2\x2\x2\x6C7\x6C8\x5\x9AN\x2\x6C8"+ + "\xAB\x3\x2\x2\x2\x6C9\x6CA\a\xCB\x2\x2\x6CA\x6CB\x5\x10E\x88\x2\x6CB\x6CD"+ + "\x5\xAEX\x2\x6CC\x6CE\x5\x10E\x88\x2\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3"+ + "\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D4\a)\x2\x2\x6D0\x6D2\x5\x10E\x88"+ + "\x2\x6D1\x6D0\x3\x2\x2\x2\x6D1\x6D2\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ + "\x6D3\x6D5\x5h\x35\x2\x6D4\x6D1\x3\x2\x2\x2\x6D4\x6D5\x3\x2\x2\x2\x6D5"+ + "\xAD\x3\x2\x2\x2\x6D6\x6D8\a.\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3"+ + "\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x5\x9AN\x2\x6DA\xAF\x3\x2\x2"+ + "\x2\x6DB\x6DC\a@\x2\x2\x6DC\x6DD\x5\x10E\x88\x2\x6DD\x6DE\x5\xB2Z\x2\x6DE"+ + "\xB1\x3\x2\x2\x2\x6DF\x6E1\x5\xBA^\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0\x6E1"+ + "\x3\x2\x2\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E3\a-\x2\x2\x6E3\x6E5\x5\xDC"+ + "o\x2\x6E4\x6E6\x5\xF2z\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2"+ + "\x6E6\x6F4\x3\x2\x2\x2\x6E7\x6E9\x5\x10E\x88\x2\x6E8\x6E7\x3\x2\x2\x2"+ + "\x6E8\x6E9\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EC\a\xD4\x2\x2\x6EB"+ + "\x6ED\x5\x10E\x88\x2\x6EC\x6EB\x3\x2\x2\x2\x6EC\x6ED\x3\x2\x2\x2\x6ED"+ + "\x6EE\x3\x2\x2\x2\x6EE\x6F0\x5\xCA\x66\x2\x6EF\x6F1\x5\x10E\x88\x2\x6F0"+ + "\x6EF\x3\x2\x2\x2\x6F0\x6F1\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F3"+ + "\a\xDB\x2\x2\x6F3\x6F5\x3\x2\x2\x2\x6F4\x6E8\x3\x2\x2\x2\x6F4\x6F5\x3"+ + "\x2\x2\x2\x6F5\x6FF\x3\x2\x2\x2\x6F6\x6F8\x5\x10E\x88\x2\x6F7\x6F6\x3"+ + "\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x6F9\x3\x2\x2\x2\x6F9\x6FA\a\xD4"+ + "\x2\x2\x6FA\x6FB\x5\xD6l\x2\x6FB\x6FC\a\xDB\x2\x2\x6FC\x6FE\x3\x2\x2\x2"+ + "\x6FD\x6F7\x3\x2\x2\x2\x6FE\x701\x3\x2\x2\x2\x6FF\x6FD\x3\x2\x2\x2\x6FF"+ + "\x700\x3\x2\x2\x2\x700\x722\x3\x2\x2\x2\x701\x6FF\x3\x2\x2\x2\x702\x704"+ + "\x5\xDCo\x2\x703\x705\x5\xF2z\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2"+ + "\x2\x2\x705\x713\x3\x2\x2\x2\x706\x708\x5\x10E\x88\x2\x707\x706\x3\x2"+ + "\x2\x2\x707\x708\x3\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70B\a\xD4\x2"+ + "\x2\x70A\x70C\x5\x10E\x88\x2\x70B\x70A\x3\x2\x2\x2\x70B\x70C\x3\x2\x2"+ + "\x2\x70C\x70D\x3\x2\x2\x2\x70D\x70F\x5\xCA\x66\x2\x70E\x710\x5\x10E\x88"+ + "\x2\x70F\x70E\x3\x2\x2\x2\x70F\x710\x3\x2\x2\x2\x710\x711\x3\x2\x2\x2"+ + "\x711\x712\a\xDB\x2\x2\x712\x714\x3\x2\x2\x2\x713\x707\x3\x2\x2\x2\x713"+ + "\x714\x3\x2\x2\x2\x714\x71E\x3\x2\x2\x2\x715\x717\x5\x10E\x88\x2\x716"+ + "\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2\x718\x719"+ + "\a\xD4\x2\x2\x719\x71A\x5\xD6l\x2\x71A\x71B\a\xDB\x2\x2\x71B\x71D\x3\x2"+ + "\x2\x2\x71C\x716\x3\x2\x2\x2\x71D\x720\x3\x2\x2\x2\x71E\x71C\x3\x2\x2"+ + "\x2\x71E\x71F\x3\x2\x2\x2\x71F\x722\x3\x2\x2\x2\x720\x71E\x3\x2\x2\x2"+ + "\x721\x6E0\x3\x2\x2\x2\x721\x702\x3\x2\x2\x2\x722\xB3\x3\x2\x2\x2\x723"+ + "\x726\x5\xB6\\\x2\x724\x726\x5\xB8]\x2\x725\x723\x3\x2\x2\x2\x725\x724"+ + "\x3\x2\x2\x2\x726\xB5\x3\x2\x2\x2\x727\x729\x5\xBA^\x2\x728\x727\x3\x2"+ + "\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72B\x3\x2\x2\x2\x72A\x72C\x5\x10E\x88"+ + "\x2\x72B\x72A\x3\x2\x2\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2"+ + "\x72D\x72F\a-\x2\x2\x72E\x730\x5\x10E\x88\x2\x72F\x72E\x3\x2\x2\x2\x72F"+ + "\x730\x3\x2\x2\x2\x730\x731\x3\x2\x2\x2\x731\x733\x5\xDAn\x2\x732\x734"+ + "\x5\xF2z\x2\x733\x732\x3\x2\x2\x2\x733\x734\x3\x2\x2\x2\x734\x738\x3\x2"+ + "\x2\x2\x735\x736\x5\x10E\x88\x2\x736\x737\x5\xCA\x66\x2\x737\x739\x3\x2"+ + "\x2\x2\x738\x735\x3\x2\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73E\x3\x2\x2"+ + "\x2\x73A\x73C\x5\x10E\x88\x2\x73B\x73A\x3\x2\x2\x2\x73B\x73C\x3\x2\x2"+ + "\x2\x73C\x73D\x3\x2\x2\x2\x73D\x73F\x5\xCEh\x2\x73E\x73B\x3\x2\x2\x2\x73E"+ + "\x73F\x3\x2\x2\x2\x73F\x749\x3\x2\x2\x2\x740\x742\x5\x10E\x88\x2\x741"+ + "\x740\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x743\x3\x2\x2\x2\x743\x744"+ + "\a\xD4\x2\x2\x744\x745\x5\xD6l\x2\x745\x746\a\xDB\x2\x2\x746\x748\x3\x2"+ + "\x2\x2\x747\x741\x3\x2\x2\x2\x748\x74B\x3\x2\x2\x2\x749\x747\x3\x2\x2"+ + "\x2\x749\x74A\x3\x2\x2\x2\x74A\xB7\x3\x2\x2\x2\x74B\x749\x3\x2\x2\x2\x74C"+ + "\x750\x5\xDCo\x2\x74D\x74E\x5\x10E\x88\x2\x74E\x74F\x5\xCA\x66\x2\x74F"+ + "\x751\x3\x2\x2\x2\x750\x74D\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x75B"+ + "\x3\x2\x2\x2\x752\x754\x5\x10E\x88\x2\x753\x752\x3\x2\x2\x2\x753\x754"+ + "\x3\x2\x2\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xD4\x2\x2\x756\x757\x5"+ + "\xD6l\x2\x757\x758\a\xDB\x2\x2\x758\x75A\x3\x2\x2\x2\x759\x753\x3\x2\x2"+ + "\x2\x75A\x75D\x3\x2\x2\x2\x75B\x759\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2"+ + "\x75C\xB9\x3\x2\x2\x2\x75D\x75B\x3\x2\x2\x2\x75E\x763\x5\xC4\x63\x2\x75F"+ + "\x763\x5\xBC_\x2\x760\x763\x5\xBE`\x2\x761\x763\x5\xC8\x65\x2\x762\x75E"+ + "\x3\x2\x2\x2\x762\x75F\x3\x2\x2\x2\x762\x760\x3\x2\x2\x2\x762\x761\x3"+ + "\x2\x2\x2\x763\xBB\x3\x2\x2\x2\x764\x766\x5\xDCo\x2\x765\x767\x5\xF2z"+ + "\x2\x766\x765\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2\x767\x76C\x3\x2\x2\x2"+ + "\x768\x76A\x5\x10E\x88\x2\x769\x768\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2"+ + "\x76A\x76B\x3\x2\x2\x2\x76B\x76D\x5\xCEh\x2\x76C\x769\x3\x2\x2\x2\x76C"+ + "\x76D\x3\x2\x2\x2\x76D\x777\x3\x2\x2\x2\x76E\x770\x5\x10E\x88\x2\x76F"+ + "\x76E\x3\x2\x2\x2\x76F\x770\x3\x2\x2\x2\x770\x771\x3\x2\x2\x2\x771\x772"+ + "\a\xD4\x2\x2\x772\x773\x5\xD6l\x2\x773\x774\a\xDB\x2\x2\x774\x776\x3\x2"+ + "\x2\x2\x775\x76F\x3\x2\x2\x2\x776\x779\x3\x2\x2\x2\x777\x775\x3\x2\x2"+ + "\x2\x777\x778\x3\x2\x2\x2\x778\xBD\x3\x2\x2\x2\x779\x777\x3\x2\x2\x2\x77A"+ + "\x77D\x5\xDCo\x2\x77B\x77D\x5\xE0q\x2\x77C\x77A\x3\x2\x2\x2\x77C\x77B"+ + "\x3\x2\x2\x2\x77D\x77F\x3\x2\x2\x2\x77E\x780\x5\xF2z\x2\x77F\x77E\x3\x2"+ + "\x2\x2\x77F\x780\x3\x2\x2\x2\x780\x782\x3\x2\x2\x2\x781\x783\x5\x10E\x88"+ + "\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x784\x3\x2\x2\x2"+ + "\x784\x786\a\xD4\x2\x2\x785\x787\x5\x10E\x88\x2\x786\x785\x3\x2\x2\x2"+ + "\x786\x787\x3\x2\x2\x2\x787\x78C\x3\x2\x2\x2\x788\x78A\x5\xCA\x66\x2\x789"+ + "\x78B\x5\x10E\x88\x2\x78A\x789\x3\x2\x2\x2\x78A\x78B\x3\x2\x2\x2\x78B"+ + "\x78D\x3\x2\x2\x2\x78C\x788\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x78E"+ + "\x3\x2\x2\x2\x78E\x793\a\xDB\x2\x2\x78F\x791\x5\x10E\x88\x2\x790\x78F"+ + "\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x792\x3\x2\x2\x2\x792\x794\x5"+ + "\xCEh\x2\x793\x790\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x79E\x3\x2\x2"+ + "\x2\x795\x797\x5\x10E\x88\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2"+ + "\x2\x797\x798\x3\x2\x2\x2\x798\x799\a\xD4\x2\x2\x799\x79A\x5\xD6l\x2\x79A"+ + "\x79B\a\xDB\x2\x2\x79B\x79D\x3\x2\x2\x2\x79C\x796\x3\x2\x2\x2\x79D\x7A0"+ + "\x3\x2\x2\x2\x79E\x79C\x3\x2\x2\x2\x79E\x79F\x3\x2\x2\x2\x79F\xBF\x3\x2"+ + "\x2\x2\x7A0\x79E\x3\x2\x2\x2\x7A1\x7A3\x5\xDAn\x2\x7A2\x7A4\x5\xF2z\x2"+ + "\x7A3\x7A2\x3\x2\x2\x2\x7A3\x7A4\x3\x2\x2\x2\x7A4\x7A9\x3\x2\x2\x2\x7A5"+ + "\x7A7\x5\x10E\x88\x2\x7A6\x7A5\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7"+ + "\x7A8\x3\x2\x2\x2\x7A8\x7AA\x5\xCEh\x2\x7A9\x7A6\x3\x2\x2\x2\x7A9\x7AA"+ + "\x3\x2\x2\x2\x7AA\x7B4\x3\x2\x2\x2\x7AB\x7AD\x5\x10E\x88\x2\x7AC\x7AB"+ + "\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AE\x3\x2\x2\x2\x7AE\x7AF\a\xD4"+ + "\x2\x2\x7AF\x7B0\x5\xD6l\x2\x7B0\x7B1\a\xDB\x2\x2\x7B1\x7B3\x3\x2\x2\x2"+ + "\x7B2\x7AC\x3\x2\x2\x2\x7B3\x7B6\x3\x2\x2\x2\x7B4\x7B2\x3\x2\x2\x2\x7B4"+ + "\x7B5\x3\x2\x2\x2\x7B5\xC1\x3\x2\x2\x2\x7B6\x7B4\x3\x2\x2\x2\x7B7\x7BA"+ + "\x5\xDAn\x2\x7B8\x7BA\x5\xE0q\x2\x7B9\x7B7\x3\x2\x2\x2\x7B9\x7B8\x3\x2"+ + "\x2\x2\x7BA\x7BC\x3\x2\x2\x2\x7BB\x7BD\x5\xF2z\x2\x7BC\x7BB\x3\x2\x2\x2"+ + "\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BF\x3\x2\x2\x2\x7BE\x7C0\x5\x10E\x88\x2"+ + "\x7BF\x7BE\x3\x2\x2\x2\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1"+ + "\x7C3\a\xD4\x2\x2\x7C2\x7C4\x5\x10E\x88\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3"+ + "\x7C4\x3\x2\x2\x2\x7C4\x7C9\x3\x2\x2\x2\x7C5\x7C7\x5\xCA\x66\x2\x7C6\x7C8"+ + "\x5\x10E\x88\x2\x7C7\x7C6\x3\x2\x2\x2\x7C7\x7C8\x3\x2\x2\x2\x7C8\x7CA"+ + "\x3\x2\x2\x2\x7C9\x7C5\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7CB\x3"+ + "\x2\x2\x2\x7CB\x7D0\a\xDB\x2\x2\x7CC\x7CE\x5\x10E\x88\x2\x7CD\x7CC\x3"+ + "\x2\x2\x2\x7CD\x7CE\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D1\x5\xCE"+ + "h\x2\x7D0\x7CD\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7DB\x3\x2\x2\x2"+ + "\x7D2\x7D4\x5\x10E\x88\x2\x7D3\x7D2\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2"+ + "\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D6\a\xD4\x2\x2\x7D6\x7D7\x5\xD6l\x2\x7D7"+ + "\x7D8\a\xDB\x2\x2\x7D8\x7DA\x3\x2\x2\x2\x7D9\x7D3\x3\x2\x2\x2\x7DA\x7DD"+ + "\x3\x2\x2\x2\x7DB\x7D9\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\xC3\x3\x2"+ + "\x2\x2\x7DD\x7DB\x3\x2\x2\x2\x7DE\x7E1\x5\xBC_\x2\x7DF\x7E1\x5\xBE`\x2"+ + "\x7E0\x7DE\x3\x2\x2\x2\x7E0\x7DF\x3\x2\x2\x2\x7E0\x7E1\x3\x2\x2\x2\x7E1"+ + "\x7E6\x3\x2\x2\x2\x7E2\x7E4\x5\xC6\x64\x2\x7E3\x7E5\x5\x10E\x88\x2\x7E4"+ + "\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E7\x3\x2\x2\x2\x7E6\x7E2"+ + "\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\x7E6\x3\x2\x2\x2\x7E8\x7E9\x3"+ + "\x2\x2\x2\x7E9\x7EE\x3\x2\x2\x2\x7EA\x7EC\x5\x10E\x88\x2\x7EB\x7EA\x3"+ + "\x2\x2\x2\x7EB\x7EC\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED\x7EF\x5\xCE"+ + "h\x2\x7EE\x7EB\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F9\x3\x2\x2\x2"+ + "\x7F0\x7F2\x5\x10E\x88\x2\x7F1\x7F0\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2"+ + "\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\a\xD4\x2\x2\x7F4\x7F5\x5\xD6l\x2\x7F5"+ + "\x7F6\a\xDB\x2\x2\x7F6\x7F8\x3\x2\x2\x2\x7F7\x7F1\x3\x2\x2\x2\x7F8\x7FB"+ + "\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2\x7F9\x7FA\x3\x2\x2\x2\x7FA\xC5\x3\x2"+ + "\x2\x2\x7FB\x7F9\x3\x2\x2\x2\x7FC\x7FE\t\xF\x2\x2\x7FD\x7FF\x5\x10E\x88"+ + "\x2\x7FE\x7FD\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2\x7FF\x802\x3\x2\x2\x2"+ + "\x800\x803\x5\xC0\x61\x2\x801\x803\x5\xC2\x62\x2\x802\x800\x3\x2\x2\x2"+ + "\x802\x801\x3\x2\x2\x2\x803\xC7\x3\x2\x2\x2\x804\x806\x5\x10E\x88\x2\x805"+ + "\x804\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x807\x3\x2\x2\x2\x807\x808"+ + "\x5\xCEh\x2\x808\xC9\x3\x2\x2\x2\x809\x80B\x5\xCCg\x2\x80A\x809\x3\x2"+ + "\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80D\x3\x2\x2\x2\x80C\x80E\x5\x10E\x88"+ + "\x2\x80D\x80C\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2"+ + "\x80F\x811\t\n\x2\x2\x810\x812\x5\x10E\x88\x2\x811\x810\x3\x2\x2\x2\x811"+ + "\x812\x3\x2\x2\x2\x812\x814\x3\x2\x2\x2\x813\x80A\x3\x2\x2\x2\x814\x817"+ + "\x3\x2\x2\x2\x815\x813\x3\x2\x2\x2\x815\x816\x3\x2\x2\x2\x816\x818\x3"+ + "\x2\x2\x2\x817\x815\x3\x2\x2\x2\x818\x825\x5\xCCg\x2\x819\x81B\x5\x10E"+ + "\x88\x2\x81A\x819\x3\x2\x2\x2\x81A\x81B\x3\x2\x2\x2\x81B\x81C\x3\x2\x2"+ + "\x2\x81C\x81E\t\n\x2\x2\x81D\x81F\x5\x10E\x88\x2\x81E\x81D\x3\x2\x2\x2"+ + "\x81E\x81F\x3\x2\x2\x2\x81F\x821\x3\x2\x2\x2\x820\x822\x5\xCCg\x2\x821"+ + "\x820\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x824\x3\x2\x2\x2\x823\x81A"+ + "\x3\x2\x2\x2\x824\x827\x3\x2\x2\x2\x825\x823\x3\x2\x2\x2\x825\x826\x3"+ + "\x2\x2\x2\x826\xCB\x3\x2\x2\x2\x827\x825\x3\x2\x2\x2\x828\x82A\a\xD4\x2"+ + "\x2\x829\x828\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82D\x3\x2\x2\x2"+ + "\x82B\x82C\t\x10\x2\x2\x82C\x82E\x5\x10E\x88\x2\x82D\x82B\x3\x2\x2\x2"+ + "\x82D\x82E\x3\x2\x2\x2\x82E\x830\x3\x2\x2\x2\x82F\x831\a\xDB\x2\x2\x830"+ + "\x82F\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x833"+ + "\x5\x9AN\x2\x833\xCD\x3\x2\x2\x2\x834\x836\a,\x2\x2\x835\x837\x5\x10E"+ + "\x88\x2\x836\x835\x3\x2\x2\x2\x836\x837\x3\x2\x2\x2\x837\x838\x3\x2\x2"+ + "\x2\x838\x83A\x5\xDAn\x2\x839\x83B\x5\xF2z\x2\x83A\x839\x3\x2\x2\x2\x83A"+ + "\x83B\x3\x2\x2\x2\x83B\xCF\x3\x2\x2\x2\x83C\x84E\a\xD4\x2\x2\x83D\x83F"+ + "\x5\x10E\x88\x2\x83E\x83D\x3\x2\x2\x2\x83E\x83F\x3\x2\x2\x2\x83F\x840"+ + "\x3\x2\x2\x2\x840\x84B\x5\xD2j\x2\x841\x843\x5\x10E\x88\x2\x842\x841\x3"+ + "\x2\x2\x2\x842\x843\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x846\a)\x2"+ + "\x2\x845\x847\x5\x10E\x88\x2\x846\x845\x3\x2\x2\x2\x846\x847\x3\x2\x2"+ + "\x2\x847\x848\x3\x2\x2\x2\x848\x84A\x5\xD2j\x2\x849\x842\x3\x2\x2\x2\x84A"+ + "\x84D\x3\x2\x2\x2\x84B\x849\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84F"+ + "\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2\x84E\x83E\x3\x2\x2\x2\x84E\x84F\x3"+ + "\x2\x2\x2\x84F\x851\x3\x2\x2\x2\x850\x852\x5\x10E\x88\x2\x851\x850\x3"+ + "\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x853\x3\x2\x2\x2\x853\x854\a\xDB"+ + "\x2\x2\x854\xD1\x3\x2\x2\x2\x855\x856\a\x95\x2\x2\x856\x858\x5\x10E\x88"+ + "\x2\x857\x855\x3\x2\x2\x2\x857\x858\x3\x2\x2\x2\x858\x85B\x3\x2\x2\x2"+ + "\x859\x85A\t\x11\x2\x2\x85A\x85C\x5\x10E\x88\x2\x85B\x859\x3\x2\x2\x2"+ + "\x85B\x85C\x3\x2\x2\x2\x85C\x85F\x3\x2\x2\x2\x85D\x85E\a\x9C\x2\x2\x85E"+ + "\x860\x5\x10E\x88\x2\x85F\x85D\x3\x2\x2\x2\x85F\x860\x3\x2\x2\x2\x860"+ + "\x861\x3\x2\x2\x2\x861\x863\x5\xDAn\x2\x862\x864\x5\xF2z\x2\x863\x862"+ + "\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x86D\x3\x2\x2\x2\x865\x867\x5"+ + "\x10E\x88\x2\x866\x865\x3\x2\x2\x2\x866\x867\x3\x2\x2\x2\x867\x868\x3"+ + "\x2\x2\x2\x868\x86A\a\xD4\x2\x2\x869\x86B\x5\x10E\x88\x2\x86A\x869\x3"+ + "\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86E\a\xDB"+ + "\x2\x2\x86D\x866\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x873\x3\x2\x2"+ + "\x2\x86F\x871\x5\x10E\x88\x2\x870\x86F\x3\x2\x2\x2\x870\x871\x3\x2\x2"+ + "\x2\x871\x872\x3\x2\x2\x2\x872\x874\x5\xDEp\x2\x873\x870\x3\x2\x2\x2\x873"+ + "\x874\x3\x2\x2\x2\x874\x879\x3\x2\x2\x2\x875\x877\x5\x10E\x88\x2\x876"+ + "\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x878\x3\x2\x2\x2\x878\x87A"+ + "\x5\xD4k\x2\x879\x876\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2\x87A\xD3\x3\x2"+ + "\x2\x2\x87B\x87D\a\xD0\x2\x2\x87C\x87E\x5\x10E\x88\x2\x87D\x87C\x3\x2"+ + "\x2\x2\x87D\x87E\x3\x2\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x880\x5\x9AN\x2"+ + "\x880\xD5\x3\x2\x2\x2\x881\x88C\x5\xD8m\x2\x882\x884\x5\x10E\x88\x2\x883"+ + "\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887"+ + "\a)\x2\x2\x886\x888\x5\x10E\x88\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3"+ + "\x2\x2\x2\x888\x889\x3\x2\x2\x2\x889\x88B\x5\xD8m\x2\x88A\x883\x3\x2\x2"+ + "\x2\x88B\x88E\x3\x2\x2\x2\x88C\x88A\x3\x2\x2\x2\x88C\x88D\x3\x2\x2\x2"+ + "\x88D\xD7\x3\x2\x2\x2\x88E\x88C\x3\x2\x2\x2\x88F\x890\x5\x9AN\x2\x890"+ + "\x891\x5\x10E\x88\x2\x891\x892\a\xBE\x2\x2\x892\x893\x5\x10E\x88\x2\x893"+ + "\x895\x3\x2\x2\x2\x894\x88F\x3\x2\x2\x2\x894\x895\x3\x2\x2\x2\x895\x896"+ + "\x3\x2\x2\x2\x896\x897\x5\x9AN\x2\x897\xD9\x3\x2\x2\x2\x898\x89C\x5\xDC"+ + "o\x2\x899\x89C\x5\xFA~\x2\x89A\x89C\x5\xF8}\x2\x89B\x898\x3\x2\x2\x2\x89B"+ + "\x899\x3\x2\x2\x2\x89B\x89A\x3\x2\x2\x2\x89C\xDB\x3\x2\x2\x2\x89D\x8A0"+ + "\a\xEF\x2\x2\x89E\x8A0\x5\xF6|\x2\x89F\x89D\x3\x2\x2\x2\x89F\x89E\x3\x2"+ + "\x2\x2\x8A0\xDD\x3\x2\x2\x2\x8A1\x8A3\a\x39\x2\x2\x8A2\x8A4\x5\x10E\x88"+ + "\x2\x8A3\x8A2\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A7\x3\x2\x2\x2"+ + "\x8A5\x8A6\a\x8D\x2\x2\x8A6\x8A8\x5\x10E\x88\x2\x8A7\x8A5\x3\x2\x2\x2"+ + "\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AE\x5\xF0y\x2\x8AA"+ + "\x8AC\x5\x10E\x88\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ + "\x8AD\x3\x2\x2\x2\x8AD\x8AF\x5\xE6t\x2\x8AE\x8AB\x3\x2\x2\x2\x8AE\x8AF"+ + "\x3\x2\x2\x2\x8AF\xDF\x3\x2\x2\x2\x8B0\x8B1\t\x12\x2\x2\x8B1\xE1\x3\x2"+ + "\x2\x2\x8B2\x8B3\t\xE\x2\x2\x8B3\xE3\x3\x2\x2\x2\x8B4\x8B9\x5\xDCo\x2"+ + "\x8B5\x8B6\t\xF\x2\x2\x8B6\x8B8\x5\xDCo\x2\x8B7\x8B5\x3\x2\x2\x2\x8B8"+ + "\x8BB\x3\x2\x2\x2\x8B9\x8B7\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\xE5"+ + "\x3\x2\x2\x2\x8BB\x8B9\x3\x2\x2\x2\x8BC\x8BE\a\xD7\x2\x2\x8BD\x8BF\x5"+ + "\x10E\x88\x2\x8BE\x8BD\x3\x2\x2\x2\x8BE\x8BF\x3\x2\x2\x2\x8BF\x8C2\x3"+ + "\x2\x2\x2\x8C0\x8C3\x5\xEEx\x2\x8C1\x8C3\x5\xDCo\x2\x8C2\x8C0\x3\x2\x2"+ + "\x2\x8C2\x8C1\x3\x2\x2\x2\x8C3\xE7\x3\x2\x2\x2\x8C4\x8CD\x5\xDCo\x2\x8C5"+ + "\x8C7\x5\x10E\x88\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7"+ + "\x8C8\x3\x2\x2\x2\x8C8\x8CA\a\xD6\x2\x2\x8C9\x8CB\x5\x10E\x88\x2\x8CA"+ + "\x8C9\x3\x2\x2\x2\x8CA\x8CB\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2\x8CC\x8CE"+ + "\x5\xDCo\x2\x8CD\x8C6\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\xE9\x3\x2"+ + "\x2\x2\x8CF\x8D2\x5\xDCo\x2\x8D0\x8D2\x5\xEEx\x2\x8D1\x8CF\x3\x2\x2\x2"+ + "\x8D1\x8D0\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2\x8D3\x8D4\a*\x2\x2\x8D4\xEB"+ + "\x3\x2\x2\x2\x8D5\x8DE\x5\xEEx\x2\x8D6\x8DE\a\xE8\x2\x2\x8D7\x8DE\a\xE3"+ + "\x2\x2\x8D8\x8DE\a\xBF\x2\x2\x8D9\x8DE\ao\x2\x2\x8DA\x8DE\a\x8F\x2\x2"+ + "\x8DB\x8DE\a\x90\x2\x2\x8DC\x8DE\a[\x2\x2\x8DD\x8D5\x3\x2\x2\x2\x8DD\x8D6"+ + "\x3\x2\x2\x2\x8DD\x8D7\x3\x2\x2\x2\x8DD\x8D8\x3\x2\x2\x2\x8DD\x8D9\x3"+ + "\x2\x2\x2\x8DD\x8DA\x3\x2\x2\x2\x8DD\x8DB\x3\x2\x2\x2\x8DD\x8DC\x3\x2"+ + "\x2\x2\x8DE\xED\x3\x2\x2\x2\x8DF\x8E0\t\x13\x2\x2\x8E0\xEF\x3\x2\x2\x2"+ + "\x8E1\x8E4\x5\xE0q\x2\x8E2\x8E4\x5\xE4s\x2\x8E3\x8E1\x3\x2\x2\x2\x8E3"+ + "\x8E2\x3\x2\x2\x2\x8E4\x8ED\x3\x2\x2\x2\x8E5\x8E7\x5\x10E\x88\x2\x8E6"+ + "\x8E5\x3\x2\x2\x2\x8E6\x8E7\x3\x2\x2\x2\x8E7\x8E8\x3\x2\x2\x2\x8E8\x8EA"+ + "\a\xD4\x2\x2\x8E9\x8EB\x5\x10E\x88\x2\x8EA\x8E9\x3\x2\x2\x2\x8EA\x8EB"+ + "\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8EE\a\xDB\x2\x2\x8ED\x8E6\x3"+ + "\x2\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\xF1\x3\x2\x2\x2\x8EF\x8F0\t\x14\x2"+ + "\x2\x8F0\xF3\x3\x2\x2\x2\x8F1\x8F2\t\x15\x2\x2\x8F2\xF5\x3\x2\x2\x2\x8F3"+ + "\x8F4\t\x16\x2\x2\x8F4\xF7\x3\x2\x2\x2\x8F5\x8F6\a\x39\x2\x2\x8F6\xF9"+ + "\x3\x2\x2\x2\x8F7\x8F8\t\x17\x2\x2\x8F8\xFB\x3\x2\x2\x2\x8F9\x8FB\x5\x10E"+ + "\x88\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2\x8FB\x903\x3\x2\x2"+ + "\x2\x8FC\x8FE\a\xE9\x2\x2\x8FD\x8FC\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2"+ + "\x8FF\x8FD\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2\x900\x904\x3\x2\x2\x2\x901"+ + "\x904\x5\x102\x82\x2\x902\x904\x5\x100\x81\x2\x903\x8FD\x3\x2\x2\x2\x903"+ + "\x901\x3\x2\x2\x2\x903\x902\x3\x2\x2\x2\x904\x906\x3\x2\x2\x2\x905\x907"+ + "\x5\x10E\x88\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x90D"+ + "\x3\x2\x2\x2\x908\x90A\x5\x10E\x88\x2\x909\x908\x3\x2\x2\x2\x909\x90A"+ + "\x3\x2\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90D\x5\x104\x83\x2\x90C\x8FA"+ + "\x3\x2\x2\x2\x90C\x909\x3\x2\x2\x2\x90D\xFD\x3\x2\x2\x2\x90E\x917\x5\xFC"+ + "\x7F\x2\x90F\x911\x5\x10E\x88\x2\x910\x90F\x3\x2\x2\x2\x910\x911\x3\x2"+ + "\x2\x2\x911\x912\x3\x2\x2\x2\x912\x914\a*\x2\x2\x913\x915\x5\x10E\x88"+ + "\x2\x914\x913\x3\x2\x2\x2\x914\x915\x3\x2\x2\x2\x915\x917\x3\x2\x2\x2"+ + "\x916\x90E\x3\x2\x2\x2\x916\x910\x3\x2\x2\x2\x917\x91A\x3\x2\x2\x2\x918"+ + "\x916\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2\x919\xFF\x3\x2\x2\x2\x91A\x918"+ + "\x3\x2\x2\x2\x91B\x91C\a\xEA\x2\x2\x91C\x101\x3\x2\x2\x2\x91D\x91E\t\x18"+ + "\x2\x2\x91E\x103\x3\x2\x2\x2\x91F\x921\a\xEC\x2\x2\x920\x922\x5\x106\x84"+ + "\x2\x921\x920\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923\x921\x3\x2\x2\x2"+ + "\x923\x924\x3\x2\x2\x2\x924\x105\x3\x2\x2\x2\x925\x926\a/\x2\x2\x926\x928"+ + "\x5\x108\x85\x2\x927\x929\x5\x10A\x86\x2\x928\x927\x3\x2\x2\x2\x928\x929"+ + "\x3\x2\x2\x2\x929\x107\x3\x2\x2\x2\x92A\x92B\a\xEF\x2\x2\x92B\x109\x3"+ + "\x2\x2\x2\x92C\x92D\x5\x10E\x88\x2\x92D\x92F\x5\x10C\x87\x2\x92E\x930"+ + "\x5\x10E\x88\x2\x92F\x92E\x3\x2\x2\x2\x92F\x930\x3\x2\x2\x2\x930\x96A"+ + "\x3\x2\x2\x2\x931\x932\x5\x10E\x88\x2\x932\x93B\x5\x10C\x87\x2\x933\x935"+ + "\x5\x10E\x88\x2\x934\x933\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\x936"+ + "\x3\x2\x2\x2\x936\x938\a)\x2\x2\x937\x939\x5\x10E\x88\x2\x938\x937\x3"+ + "\x2\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93C\x5\x10C"+ + "\x87\x2\x93B\x934\x3\x2\x2\x2\x93C\x93D\x3\x2\x2\x2\x93D\x93B\x3\x2\x2"+ + "\x2\x93D\x93E\x3\x2\x2\x2\x93E\x940\x3\x2\x2\x2\x93F\x941\x5\x10E\x88"+ + "\x2\x940\x93F\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x96A\x3\x2\x2\x2"+ + "\x942\x944\x5\x10E\x88\x2\x943\x942\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2"+ + "\x944\x945\x3\x2\x2\x2\x945\x947\a\xD4\x2\x2\x946\x948\x5\x10E\x88\x2"+ + "\x947\x946\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\x949\x3\x2\x2\x2\x949"+ + "\x94B\x5\x10C\x87\x2\x94A\x94C\x5\x10E\x88\x2\x94B\x94A\x3\x2\x2\x2\x94B"+ + "\x94C\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D\x94F\a\xDB\x2\x2\x94E\x950"+ + "\x5\x10E\x88\x2\x94F\x94E\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x96A"+ + "\x3\x2\x2\x2\x951\x953\x5\x10E\x88\x2\x952\x951\x3\x2\x2\x2\x952\x953"+ + "\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2\x954\x955\a\xD4\x2\x2\x955\x95E\x5"+ + "\x10C\x87\x2\x956\x958\x5\x10E\x88\x2\x957\x956\x3\x2\x2\x2\x957\x958"+ + "\x3\x2\x2\x2\x958\x959\x3\x2\x2\x2\x959\x95B\a)\x2\x2\x95A\x95C\x5\x10E"+ + "\x88\x2\x95B\x95A\x3\x2\x2\x2\x95B\x95C\x3\x2\x2\x2\x95C\x95D\x3\x2\x2"+ + "\x2\x95D\x95F\x5\x10C\x87\x2\x95E\x957\x3\x2\x2\x2\x95F\x960\x3\x2\x2"+ + "\x2\x960\x95E\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x963\x3\x2\x2\x2"+ + "\x962\x964\x5\x10E\x88\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2\x2"+ + "\x964\x965\x3\x2\x2\x2\x965\x967\a\xDB\x2\x2\x966\x968\x5\x10E\x88\x2"+ + "\x967\x966\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968\x96A\x3\x2\x2\x2\x969"+ + "\x92C\x3\x2\x2\x2\x969\x931\x3\x2\x2\x2\x969\x943\x3\x2\x2\x2\x969\x952"+ + "\x3\x2\x2\x2\x96A\x10B\x3\x2\x2\x2\x96B\x96C\x5\x9AN\x2\x96C\x10D\x3\x2"+ + "\x2\x2\x96D\x96F\t\x19\x2\x2\x96E\x96D\x3\x2\x2\x2\x96F\x970\x3\x2\x2"+ + "\x2\x970\x96E\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x10F\x3\x2\x2\x2"+ + "\x1A6\x114\x11A\x11D\x121\x125\x129\x12D\x133\x136\x140\x142\x148\x150"+ + "\x157\x15D\x166\x16E\x17D\x187\x18F\x199\x19F\x1A3\x1A7\x1AB\x1B0\x1BD"+ + "\x1EF\x1F5\x1F9\x1FE\x201\x206\x20C\x210\x215\x21A\x21F\x222\x226\x22D"+ + "\x233\x237\x23A\x23F\x24A\x24D\x250\x255\x25B\x25F\x264\x26A\x275\x27C"+ + "\x284\x289\x292\x299\x29D\x2A0\x2A8\x2AC\x2B1\x2BB\x2C1\x2D2\x2D8\x2DE"+ + "\x2E2\x2EE\x2F2\x2F8\x2FD\x301\x305\x309\x30C\x30F\x312\x315\x319\x323"+ + "\x327\x32A\x32D\x331\x349\x34F\x353\x357\x360\x36B\x370\x37A\x37E\x383"+ + "\x387\x38B\x38F\x397\x39B\x3A3\x3A7\x3AF\x3B1\x3B7\x3BB\x3C1\x3C5\x3C9"+ + "\x3D7\x3E1\x3E5\x3EA\x3F5\x3F9\x3FE\x40D\x412\x41B\x41F\x423\x427\x42B"+ + "\x42E\x432\x436\x439\x43D\x440\x444\x446\x44B\x44F\x453\x457\x459\x45F"+ + "\x463\x466\x46B\x46F\x475\x478\x47B\x480\x484\x48B\x48F\x495\x498\x49C"+ + "\x4A3\x4A7\x4AD\x4B0\x4B4\x4BC\x4C0\x4C3\x4C6\x4CA\x4D2\x4D6\x4DA\x4DC"+ + "\x4DF\x4E5\x4E9\x4ED\x4F2\x4F7\x4FB\x4FF\x505\x50D\x50F\x517\x51B\x523"+ + "\x527\x534\x53B\x53F\x54A\x551\x556\x55A\x55F\x562\x568\x56C\x573\x577"+ + "\x57B\x57F\x582\x586\x58F\x598\x59F\x5A3\x5A6\x5A9\x5AC\x5B1\x5B9\x5BD"+ + "\x5C5\x5C7\x5CC\x5D1\x5D6\x5DA\x5E0\x5E5\x5EC\x5F0\x5F6\x5FA\x5FE\x603"+ + "\x607\x60C\x610\x615\x619\x61E\x622\x627\x62B\x630\x634\x639\x63D\x642"+ + "\x646\x64B\x64F\x654\x658\x65D\x661\x664\x666\x671\x676\x67B\x681\x685"+ + "\x68A\x68F\x693\x697\x699\x69D\x69F\x6A2\x6A7\x6AE\x6B6\x6BA\x6C3\x6CD"+ + "\x6D1\x6D4\x6D7\x6E0\x6E5\x6E8\x6EC\x6F0\x6F4\x6F7\x6FF\x704\x707\x70B"+ + "\x70F\x713\x716\x71E\x721\x725\x728\x72B\x72F\x733\x738\x73B\x73E\x741"+ + "\x749\x750\x753\x75B\x762\x766\x769\x76C\x76F\x777\x77C\x77F\x782\x786"+ + "\x78A\x78C\x790\x793\x796\x79E\x7A3\x7A6\x7A9\x7AC\x7B4\x7B9\x7BC\x7BF"+ + "\x7C3\x7C7\x7C9\x7CD\x7D0\x7D3\x7DB\x7E0\x7E4\x7E8\x7EB\x7EE\x7F1\x7F9"+ + "\x7FE\x802\x805\x80A\x80D\x811\x815\x81A\x81E\x821\x825\x829\x82D\x830"+ + "\x836\x83A\x83E\x842\x846\x84B\x84E\x851\x857\x85B\x85F\x863\x866\x86A"+ + "\x86D\x870\x873\x876\x879\x87D\x883\x887\x88C\x894\x89B\x89F\x8A3\x8A7"+ + "\x8AB\x8AE\x8B9\x8BE\x8C2\x8C6\x8CA\x8CD\x8D1\x8DD\x8E3\x8E6\x8EA\x8ED"+ + "\x8FA\x8FF\x903\x906\x909\x90C\x910\x914\x916\x918\x923\x928\x92F\x934"+ + "\x938\x93D\x940\x943\x947\x94B\x94F\x952\x957\x95B\x960\x963\x967\x969"+ + "\x970"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index 328602b20a..bc87bc58f5 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -43,7 +43,7 @@ moduleConfig : ; moduleConfigElement : - unrestrictedIdentifier whiteSpace* EQ whiteSpace* literal (COLON numberLiteral)? endOfStatement + unrestrictedIdentifier whiteSpace* EQ whiteSpace* valueStmt (COLON numberLiteral)? endOfStatement ; moduleAttributes : (attributeStmt endOfStatement)+; @@ -79,7 +79,9 @@ moduleBodyElement : | subStmt ; -attributeStmt : ATTRIBUTE whiteSpace implicitCallStmt_InStmt whiteSpace? EQ whiteSpace? literal (whiteSpace? COMMA whiteSpace? literal)*; +attributeStmt : ATTRIBUTE whiteSpace attributeName whiteSpace? EQ whiteSpace? attributeValue (whiteSpace? COMMA whiteSpace? attributeValue)*; +attributeName : implicitCallStmt_InStmt; +attributeValue : valueStmt; block : blockStmt (endOfStatement blockStmt)* endOfStatement; @@ -191,10 +193,11 @@ forNextStmt : ; functionStmt : - (visibility whiteSpace)? (STATIC whiteSpace)? FUNCTION whiteSpace? identifier typeHint? (whiteSpace? argList)? (whiteSpace? asTypeClause)? endOfStatement + (visibility whiteSpace)? (STATIC whiteSpace)? FUNCTION whiteSpace? functionName typeHint? (whiteSpace? argList)? (whiteSpace? asTypeClause)? endOfStatement block? END_FUNCTION ; +functionName : identifier; getStmt : GET whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt? whiteSpace? COMMA whiteSpace? valueStmt; @@ -266,19 +269,19 @@ outputList_Expression : printStmt : PRINT whiteSpace fileNumber whiteSpace? COMMA (whiteSpace? outputList)?; propertyGetStmt : - (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_GET whiteSpace identifier typeHint? (whiteSpace? argList)? (whiteSpace asTypeClause)? endOfStatement + (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_GET whiteSpace functionName typeHint? (whiteSpace? argList)? (whiteSpace asTypeClause)? endOfStatement block? END_PROPERTY ; propertySetStmt : - (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_SET whiteSpace identifier (whiteSpace? argList)? endOfStatement + (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_SET whiteSpace subroutineName (whiteSpace? argList)? endOfStatement block? END_PROPERTY ; propertyLetStmt : - (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_LET whiteSpace identifier (whiteSpace? argList)? endOfStatement + (visibility whiteSpace)? (STATIC whiteSpace)? PROPERTY_LET whiteSpace subroutineName (whiteSpace? argList)? endOfStatement block? END_PROPERTY ; @@ -326,10 +329,11 @@ sC_Cond : setStmt : SET whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt; subStmt : - (visibility whiteSpace)? (STATIC whiteSpace)? SUB whiteSpace? identifier (whiteSpace? argList)? endOfStatement + (visibility whiteSpace)? (STATIC whiteSpace)? SUB whiteSpace? subroutineName (whiteSpace? argList)? endOfStatement block? END_SUB ; +subroutineName : identifier; typeStmt : (visibility whiteSpace)? TYPE whiteSpace identifier endOfStatement @@ -445,7 +449,7 @@ subscripts : subscript (whiteSpace? COMMA whiteSpace? subscript)*; subscript : (valueStmt whiteSpace TO whiteSpace)? valueStmt; -unrestrictedIdentifier : identifier | statementKeyword; +unrestrictedIdentifier : identifier | statementKeyword | markerKeyword; identifier : IDENTIFIER | keyword; @@ -480,7 +484,6 @@ keyword : | AND | ANY | ARRAY - | AS | ATTRIBUTE | BEGIN | BOOLEAN @@ -569,6 +572,8 @@ keyword : | XOR ; +markerKeyword : AS; + statementKeyword : CALL | CASE @@ -688,6 +693,6 @@ annotationArgList : | whiteSpace? LPAREN whiteSpace? annotationArg whiteSpace? RPAREN whiteSpace? | whiteSpace? LPAREN annotationArg (whiteSpace? COMMA whiteSpace? annotationArg)+ whiteSpace? RPAREN whiteSpace?; -annotationArg : IDENTIFIER | literal; +annotationArg : valueStmt; whiteSpace : (WS | LINE_CONTINUATION)+; \ No newline at end of file diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs index 2b5e578b23..6ed11ce4b5 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs @@ -1021,6 +1021,19 @@ public virtual void EnterVsAmp([NotNull] VBAParser.VsAmpContext context) { } /// The parse tree. public virtual void ExitVsAmp([NotNull] VBAParser.VsAmpContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterSubroutineName([NotNull] VBAParser.SubroutineNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitSubroutineName([NotNull] VBAParser.SubroutineNameContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1424,6 +1437,19 @@ public virtual void EnterVisibility([NotNull] VBAParser.VisibilityContext contex /// The parse tree. public virtual void ExitVisibility([NotNull] VBAParser.VisibilityContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAttributeValue([NotNull] VBAParser.AttributeValueContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAttributeValue([NotNull] VBAParser.AttributeValueContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1723,6 +1749,32 @@ public virtual void EnterOpenStmt([NotNull] VBAParser.OpenStmtContext context) { /// The parse tree. public virtual void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context) { } + + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterAttributeName([NotNull] VBAParser.AttributeNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitAttributeName([NotNull] VBAParser.AttributeNameContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -1801,6 +1853,19 @@ public virtual void EnterSC_Case([NotNull] VBAParser.SC_CaseContext context) { } /// The parse tree. public virtual void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterFunctionName([NotNull] VBAParser.FunctionNameContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitFunctionName([NotNull] VBAParser.FunctionNameContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs index 0173a3e12a..bcfcac8a59 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs @@ -868,6 +868,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitSubroutineName([NotNull] VBAParser.SubroutineNameContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1209,6 +1220,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitVisibility([NotNull] VBAParser.VisibilityContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAttributeValue([NotNull] VBAParser.AttributeValueContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1462,6 +1484,28 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context) { return VisitChildren(context); } + + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitAttributeName([NotNull] VBAParser.AttributeNameContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// @@ -1528,6 +1572,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitFunctionName([NotNull] VBAParser.FunctionNameContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserListener.cs b/Rubberduck.Parsing/Grammar/VBAParserListener.cs index 84e1596c12..4f7421eeb1 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserListener.cs @@ -897,6 +897,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVsAmp([NotNull] VBAParser.VsAmpContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterSubroutineName([NotNull] VBAParser.SubroutineNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitSubroutineName([NotNull] VBAParser.SubroutineNameContext context); + /// /// Enter a parse tree produced by . /// @@ -1254,6 +1265,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitVisibility([NotNull] VBAParser.VisibilityContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAttributeValue([NotNull] VBAParser.AttributeValueContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAttributeValue([NotNull] VBAParser.AttributeValueContext context); + /// /// Enter a parse tree produced by the vsTypeOf /// labeled alternative in . @@ -1519,6 +1541,28 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitOpenStmt([NotNull] VBAParser.OpenStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context); + + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterAttributeName([NotNull] VBAParser.AttributeNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitAttributeName([NotNull] VBAParser.AttributeNameContext context); + /// /// Enter a parse tree produced by . /// @@ -1585,6 +1629,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitSC_Case([NotNull] VBAParser.SC_CaseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterFunctionName([NotNull] VBAParser.FunctionNameContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitFunctionName([NotNull] VBAParser.FunctionNameContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs index ea008a2e72..ebf5d65f3f 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs @@ -578,6 +578,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVsAmp([NotNull] VBAParser.VsAmpContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitSubroutineName([NotNull] VBAParser.SubroutineNameContext context); + /// /// Visit a parse tree produced by . /// @@ -803,6 +810,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitVisibility([NotNull] VBAParser.VisibilityContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAttributeValue([NotNull] VBAParser.AttributeValueContext context); + /// /// Visit a parse tree produced by the vsTypeOf /// labeled alternative in . @@ -970,6 +984,20 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitOpenStmt([NotNull] VBAParser.OpenStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitMarkerKeyword([NotNull] VBAParser.MarkerKeywordContext context); + + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitAttributeName([NotNull] VBAParser.AttributeNameContext context); + /// /// Visit a parse tree produced by . /// @@ -1012,6 +1040,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitSC_Case([NotNull] VBAParser.SC_CaseContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitFunctionName([NotNull] VBAParser.FunctionNameContext context); + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/ParserRuleContextExtensions.cs b/Rubberduck.Parsing/ParserRuleContextExtensions.cs index 40f3a0d7cd..c7d9706d9a 100644 --- a/Rubberduck.Parsing/ParserRuleContextExtensions.cs +++ b/Rubberduck.Parsing/ParserRuleContextExtensions.cs @@ -43,7 +43,7 @@ public static string Signature(this VBAParser.FunctionStmtContext context) var visibility = context.visibility(); var visibilityText = visibility == null ? string.Empty : visibility.GetText(); - var identifierText = context.identifier().GetText(); + var identifierText = context.functionName().identifier().GetText(); var argsText = context.argList().GetText(); var asType = context.asTypeClause(); @@ -57,7 +57,7 @@ public static string Signature(this VBAParser.SubStmtContext context) var visibility = context.visibility(); var visibilityText = visibility == null ? string.Empty : visibility.GetText(); - var identifierText = context.identifier().GetText(); + var identifierText = context.subroutineName().GetText(); var argsText = context.argList().GetText(); return (visibilityText + ' ' + Tokens.Sub + ' ' + identifierText + argsText).Trim(); @@ -68,7 +68,7 @@ public static string Signature(this VBAParser.PropertyGetStmtContext context) var visibility = context.visibility(); var visibilityText = visibility == null ? string.Empty : visibility.GetText(); - var identifierText = context.identifier().GetText(); + var identifierText = context.functionName().identifier().GetText(); var argsText = context.argList().GetText(); var asType = context.asTypeClause(); @@ -82,7 +82,7 @@ public static string Signature(this VBAParser.PropertyLetStmtContext context) var visibility = context.visibility(); var visibilityText = visibility == null ? string.Empty : visibility.GetText(); - var identifierText = context.identifier().GetText(); + var identifierText = context.subroutineName().GetText(); var argsText = context.argList().GetText(); return (visibilityText + ' ' + Tokens.Property + ' ' + Tokens.Let + ' ' + identifierText + argsText).Trim(); @@ -93,7 +93,7 @@ public static string Signature(this VBAParser.PropertySetStmtContext context) var visibility = context.visibility(); var visibilityText = visibility == null ? string.Empty : visibility.GetText(); - var identifierText = context.identifier().GetText(); + var identifierText = context.subroutineName().GetText(); var argsText = context.argList().GetText(); return (visibilityText + ' ' + Tokens.Property + ' ' + Tokens.Set + ' ' + identifierText + argsText).Trim(); diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index af385b1a9f..09fd003335 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -79,6 +79,8 @@ + + diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 63335b6053..5d6c37fa92 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -1,31 +1,32 @@ -using Rubberduck.Parsing.Binding; +using Antlr4.Runtime; +using Rubberduck.Parsing.Binding; using System; namespace Rubberduck.Parsing.Symbols { public sealed class BoundExpressionVisitor { - public void AddIdentifierReferences(IBoundExpression boundExpression, Func referenceCreator) + public void AddIdentifierReferences(IBoundExpression boundExpression, Func referenceCreator) { Visit((dynamic)boundExpression, referenceCreator); } - private void Visit(SimpleNameExpression expression, Func referenceCreator) + private void Visit(SimpleNameExpression expression, Func referenceCreator) { - expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.Context, expression.ReferencedDeclaration)); } - private void Visit(MemberAccessExpression expression, Func referenceCreator) + private void Visit(MemberAccessExpression expression, Func referenceCreator) { Visit((dynamic)expression.LExpression, referenceCreator); // Expressions could be unbound thus not have a referenced declaration. The lexpression might still be bindable though. if (expression.Classification != ExpressionClassification.Unbound) { - expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.Context, expression.ReferencedDeclaration)); } } - private void Visit(IndexExpression expression, Func referenceCreator) + private void Visit(IndexExpression expression, Func referenceCreator) { Visit((dynamic)expression.LExpression, referenceCreator); // Expressions could be unbound thus not have a referenced declaration. The lexpression might still be bindable though. @@ -34,7 +35,7 @@ private void Visit(IndexExpression expression, Func referenceCreator) + private void Visit(NewExpression expression, Func referenceCreator) { // We don't need to add a reference to the NewExpression's referenced declaration since that's covered // with its TypeExpression. Visit((dynamic)expression.TypeExpression, referenceCreator); } - private void Visit(ParenthesizedExpression expression, Func referenceCreator) + private void Visit(ParenthesizedExpression expression, Func referenceCreator) { Visit((dynamic)expression.Expression, referenceCreator); } - private void Visit(TypeOfIsExpression expression, Func referenceCreator) + private void Visit(TypeOfIsExpression expression, Func referenceCreator) { Visit((dynamic)expression.Expression, referenceCreator); Visit((dynamic)expression.TypeExpression, referenceCreator); } - private void Visit(BinaryOpExpression expression, Func referenceCreator) + private void Visit(BinaryOpExpression expression, Func referenceCreator) { Visit((dynamic)expression.Left, referenceCreator); Visit((dynamic)expression.Right, referenceCreator); } - private void Visit(UnaryOpExpression expression, Func referenceCreator) + private void Visit(UnaryOpExpression expression, Func referenceCreator) { Visit((dynamic)expression.Expr, referenceCreator); } - private void Visit(LiteralExpression expression, Func referenceCreator) + private void Visit(LiteralExpression expression, Func referenceCreator) { // Nothing to do here. } - private void Visit(InstanceExpression expression, Func referenceCreator) + private void Visit(InstanceExpression expression, Func referenceCreator) { - expression.ReferencedDeclaration.AddReference(referenceCreator(expression.ReferencedDeclaration)); + expression.ReferencedDeclaration.AddReference(referenceCreator(expression.Context, expression.ReferencedDeclaration)); } } } diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index 84bf166700..abcb0d307a 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -19,7 +19,7 @@ namespace Rubberduck.Parsing.Symbols [DebuggerDisplay("({DeclarationType}) {Accessibility} {IdentifierName} As {AsTypeName} | {Selection}")] public class Declaration : IEquatable { - private static readonly string[] _baseTypes = new string[] + public static readonly string[] BASE_TYPES = new string[] { "BOOLEAN", "BYTE", @@ -376,7 +376,7 @@ public bool AsTypeIsBaseType { get { - return string.IsNullOrWhiteSpace(AsTypeName) || _baseTypes.Contains(_asTypeName.ToUpperInvariant()); + return string.IsNullOrWhiteSpace(AsTypeName) || BASE_TYPES.Contains(_asTypeName.ToUpperInvariant()); } } diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index ce095698cb..f182ee2cea 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -33,6 +33,8 @@ public DeclarationFinder( : declaration.IdentifierName.ToLowerInvariant() }) .ToDictionary(grouping => grouping.Key.IdentifierName, grouping => grouping.ToArray()); + + var all = declarations.Where(d => d.IdentifierName == "ThisWorkbook").ToList(); } private readonly HashSet _projectScopePublicModifiers = diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index e5ee2783df..1080fa2e81 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -282,13 +282,13 @@ public override void ExitOptionPrivateModuleStmt(VBAParser.OptionPrivateModuleSt public override void EnterSubStmt(VBAParser.SubStmtContext context) { var accessibility = GetProcedureAccessibility(context.visibility()); - var identifier = context.identifier(); + var identifier = context.subroutineName(); if (identifier == null) { return; } - var name = context.identifier().GetText(); - var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.Procedure, context, context.identifier().GetSelection()); + var name = context.subroutineName().GetText(); + var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.Procedure, context, context.subroutineName().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); } @@ -301,7 +301,7 @@ public override void ExitSubStmt(VBAParser.SubStmtContext context) public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context) { var accessibility = GetProcedureAccessibility(context.visibility()); - var identifier = context.identifier(); + var identifier = context.functionName().identifier(); if (identifier == null) { return; @@ -312,7 +312,7 @@ public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context) var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Function, context, context.identifier().GetSelection()); + var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.Function, context, context.functionName().identifier().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); } @@ -325,7 +325,7 @@ public override void ExitFunctionStmt(VBAParser.FunctionStmtContext context) public override void EnterPropertyGetStmt(VBAParser.PropertyGetStmtContext context) { var accessibility = GetProcedureAccessibility(context.visibility()); - var identifier = context.identifier(); + var identifier = context.functionName().identifier(); if (identifier == null) { return; @@ -336,7 +336,7 @@ public override void EnterPropertyGetStmt(VBAParser.PropertyGetStmtContext conte var asTypeName = asTypeClause == null ? Tokens.Variant : asTypeClause.type().GetText(); - var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.PropertyGet, context, context.identifier().GetSelection()); + var declaration = CreateDeclaration(name, asTypeName, accessibility, DeclarationType.PropertyGet, context, context.functionName().identifier().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); @@ -350,14 +350,14 @@ public override void ExitPropertyGetStmt(VBAParser.PropertyGetStmtContext contex public override void EnterPropertyLetStmt(VBAParser.PropertyLetStmtContext context) { var accessibility = GetProcedureAccessibility(context.visibility()); - var identifier = context.identifier(); + var identifier = context.subroutineName(); if (identifier == null) { return; } var name = identifier.GetText(); - var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.PropertyLet, context, context.identifier().GetSelection()); + var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.PropertyLet, context, context.subroutineName().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); } @@ -370,14 +370,14 @@ public override void ExitPropertyLetStmt(VBAParser.PropertyLetStmtContext contex public override void EnterPropertySetStmt(VBAParser.PropertySetStmtContext context) { var accessibility = GetProcedureAccessibility(context.visibility()); - var identifier = context.identifier(); + var identifier = context.subroutineName(); if (identifier == null) { return; } var name = identifier.GetText(); - var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.PropertySet, context, context.identifier().GetSelection()); + var declaration = CreateDeclaration(name, null, accessibility, DeclarationType.PropertySet, context, context.subroutineName().GetSelection()); OnNewDeclaration(declaration); SetCurrentScope(declaration, name); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReference.cs b/Rubberduck.Parsing/Symbols/IdentifierReference.cs index 463ea6903b..69c4f19c9d 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReference.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReference.cs @@ -14,7 +14,8 @@ public IdentifierReference( Declaration parentScopingDeclaration, Declaration parentNonScopingDeclaration, string identifierName, - Selection selection, + Selection selection, + Selection bindingSelection, ParserRuleContext context, Declaration declaration, bool isAssignmentTarget = false, @@ -26,6 +27,7 @@ public IdentifierReference( _qualifiedName = qualifiedName; _identifierName = identifierName; _selection = selection; + _bindingSelection = bindingSelection; _context = context; _declaration = declaration; _hasExplicitLetStatement = hasExplicitLetStatement; @@ -42,6 +44,9 @@ public IdentifierReference( private readonly Selection _selection; public Selection Selection { get { return _selection; } } + private readonly Selection _bindingSelection; + public Selection BindingSelection { get { return _bindingSelection; } } + private readonly Declaration _parentScopingDeclaration; /// /// Gets the scoping that contains this identifier reference, diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index 43171f8df7..15760527fb 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -25,7 +25,7 @@ private void SetCurrentScope(string identifier, DeclarationType type) public override void EnterSubStmt(VBAParser.SubStmtContext context) { - SetCurrentScope(context.identifier().GetText(), DeclarationType.Procedure); + SetCurrentScope(context.subroutineName().GetText(), DeclarationType.Procedure); } public override void ExitSubStmt(VBAParser.SubStmtContext context) @@ -35,7 +35,7 @@ public override void ExitSubStmt(VBAParser.SubStmtContext context) public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context) { - SetCurrentScope(context.identifier().GetText(), DeclarationType.Function); + SetCurrentScope(context.functionName().identifier().GetText(), DeclarationType.Function); } public override void ExitFunctionStmt(VBAParser.FunctionStmtContext context) @@ -45,7 +45,7 @@ public override void ExitFunctionStmt(VBAParser.FunctionStmtContext context) public override void EnterPropertyGetStmt(VBAParser.PropertyGetStmtContext context) { - SetCurrentScope(context.identifier().GetText(), DeclarationType.PropertyGet); + SetCurrentScope(context.functionName().identifier().GetText(), DeclarationType.PropertyGet); } public override void ExitPropertyGetStmt(VBAParser.PropertyGetStmtContext context) @@ -55,7 +55,7 @@ public override void ExitPropertyGetStmt(VBAParser.PropertyGetStmtContext contex public override void EnterPropertyLetStmt(VBAParser.PropertyLetStmtContext context) { - SetCurrentScope(context.identifier().GetText(), DeclarationType.PropertyLet); + SetCurrentScope(context.subroutineName().GetText(), DeclarationType.PropertyLet); } public override void ExitPropertyLetStmt(VBAParser.PropertyLetStmtContext context) @@ -65,7 +65,7 @@ public override void ExitPropertyLetStmt(VBAParser.PropertyLetStmtContext contex public override void EnterPropertySetStmt(VBAParser.PropertySetStmtContext context) { - SetCurrentScope(context.identifier().GetText(), DeclarationType.PropertySet); + SetCurrentScope(context.subroutineName().GetText(), DeclarationType.PropertySet); } public override void ExitPropertySetStmt(VBAParser.PropertySetStmtContext context) @@ -76,6 +76,7 @@ public override void ExitPropertySetStmt(VBAParser.PropertySetStmtContext contex public override void EnterEnumerationStmt(VBAParser.EnumerationStmtContext context) { SetCurrentScope(context.identifier().GetText(), DeclarationType.Enumeration); + _resolver.Resolve(context); } public override void ExitEnumerationStmt(VBAParser.EnumerationStmtContext context) @@ -173,65 +174,21 @@ public override void EnterRsetStmt(VBAParser.RsetStmtContext context) _resolver.Resolve(context); } - public override void EnterICS_B_ProcedureCall(VBAParser.ICS_B_ProcedureCallContext context) - { - _resolver.Resolve(context); - } - - public override void EnterICS_B_MemberProcedureCall(VBAParser.ICS_B_MemberProcedureCallContext context) + public override void EnterImplicitCallStmt_InBlock(VBAParser.ImplicitCallStmt_InBlockContext context) { _resolver.Resolve(context); } - + public override void EnterWhileWendStmt(VBAParser.WhileWendStmtContext context) { _resolver.Resolve(context); } - public override void EnterICS_S_VariableOrProcedureCall(VBAParser.ICS_S_VariableOrProcedureCallContext context) - { - //if (context.Parent.GetType() != typeof(VBAParser.ICS_S_MemberCallContext)) - //{ - // _resolver.Resolve(context); - //} - } - - public override void EnterICS_S_ProcedureOrArrayCall(VBAParser.ICS_S_ProcedureOrArrayCallContext context) - { - if (context.Parent.GetType() != typeof(VBAParser.ICS_S_MemberCallContext)) - { - _resolver.Resolve(context); - } - } - - public override void EnterICS_S_MembersCall(VBAParser.ICS_S_MembersCallContext context) - { - // Implement statements are handled separately and directly through new binding expressions. - // Prevent duplicate references. - if (ParserRuleContextHelper.HasParent(context)) - { - return; - } - _resolver.Resolve(context); - } - - public override void EnterICS_S_DictionaryCall(VBAParser.ICS_S_DictionaryCallContext context) - { - if (context.Parent.GetType() != typeof(VBAParser.ICS_S_MemberCallContext)) - { - _resolver.Resolve(context); - } - } - public override void EnterOpenStmt(VBAParser.OpenStmtContext context) { _resolver.Resolve(context); } - - - - public override void EnterCloseStmt(VBAParser.CloseStmtContext context) { _resolver.Resolve(context); @@ -287,8 +244,6 @@ public override void EnterGetStmt([NotNull] VBAParser.GetStmtContext context) _resolver.Resolve(context); } - - public override void EnterOnErrorStmt(VBAParser.OnErrorStmtContext context) { _resolver.Resolve(context); @@ -348,15 +303,5 @@ public override void EnterResumeStmt(VBAParser.ResumeStmtContext context) { _resolver.Resolve(context); } - - public override void EnterFieldLength(VBAParser.FieldLengthContext context) - { - //_resolver.Resolve(context); - } - - public override void EnterVsAssign(VBAParser.VsAssignContext context) - { - _resolver.Resolve(context); - } } } \ No newline at end of file diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index c2dfb3dbd1..bd2c3f7ff2 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -9,6 +9,7 @@ using Rubberduck.VBEditor; using Rubberduck.Parsing.Annotations; using Rubberduck.Parsing.Binding; +using Rubberduck.Parsing.VBA; namespace Rubberduck.Parsing.Symbols { @@ -115,13 +116,12 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) Declaration qualifier = null; var expr = context.withStmtExpression(); var typeExpression = expr.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression, GetInnerMostWithExpression()); + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, typeExpression, GetInnerMostWithExpression(), ResolutionStatementContext.Undefined); if (boundExpression != null) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(expr, declaration)); + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(expr, declaration, RubberduckParserState.CreateBindingSelection(expr, exprCtx))); qualifier = boundExpression.ReferencedDeclaration; } - Resolve(context.block()); // note: pushes null if unresolved _withBlockQualifiers.Push(qualifier); _withBlockExpressions.Push(boundExpression); @@ -142,7 +142,7 @@ public void ExitWithBlock() _withBlockExpressions.Pop(); } - private IdentifierReference CreateReference(ParserRuleContext callSiteContext, Declaration callee, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) + private IdentifierReference CreateReference(ParserRuleContext callSiteContext, Declaration callee, Selection bindingSelection, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) { if (callSiteContext == null || _currentScope == null || _alreadyResolved.Contains(callSiteContext)) { @@ -151,7 +151,7 @@ private IdentifierReference CreateReference(ParserRuleContext callSiteContext, D var name = callSiteContext.GetText(); var selection = callSiteContext.GetSelection(); var annotations = FindAnnotations(selection.StartLine); - return new IdentifierReference(_qualifiedModuleName, _currentScope, _currentParent, name, selection, callSiteContext, callee, isAssignmentTarget, hasExplicitLetStatement, annotations); + return new IdentifierReference(_qualifiedModuleName, _currentScope, _currentParent, name, selection, bindingSelection, callSiteContext, callee, isAssignmentTarget, hasExplicitLetStatement, annotations); } private IEnumerable FindAnnotations(int line) @@ -167,723 +167,723 @@ private IEnumerable FindAnnotations(int line) return new List(); } - private void ResolveType(VBAParser.ICS_S_MembersCallContext context) - { - //var first = context.iCS_S_VariableOrProcedureCall().identifier(); - //var identifiers = new[] { first }.Concat(context.iCS_S_MemberCall() - // .Select(member => member.iCS_S_VariableOrProcedureCallUnrestricted().unrestrictedIdentifier())) - // .ToList(); - //ResolveType(identifiers); - } - - private Declaration ResolveType(VBAParser.ComplexTypeContext context) - { - if (context == null) - { - return null; - } - - var identifiers = context.identifier() - .Select(identifier => identifier) - .ToList(); - - // if there's only 1 identifier, resolve to the tightest-scope match: - if (identifiers.Count == 1) - { - var type = ResolveInScopeType(identifiers.Single().GetText(), _currentScope); - if (type != null && !_alreadyResolved.Contains(context)) - { - type.AddReference(CreateReference(context, type)); - _alreadyResolved.Add(context); - } - return type; - } - - // if there's 2 or more identifiers, resolve to the deepest path: - return ResolveType(identifiers); - } - - private Declaration ResolveType(IList identifiers) - { - var first = identifiers[0].GetText(); - var projectMatch = _declarationFinder.FindProject(first, _currentScope); - - if (projectMatch != null) - { - var projectReference = CreateReference(identifiers[0], projectMatch); - - // matches current project. 2nd identifier could be: - // - standard module (only if there's a 3rd identifier) - // - class module - // - UDT - // - Enum - if (identifiers.Count == 3) - { - var moduleMatch = _declarationFinder.FindStdModule(identifiers[1].GetText(), _currentScope); - if (moduleMatch != null) - { - var moduleReference = CreateReference(identifiers[1], moduleMatch); - - // 3rd identifier can only be a UDT - var udtMatch = _declarationFinder.FindUserDefinedType(identifiers[2].GetText(), moduleMatch); - if (udtMatch != null) - { - var udtReference = CreateReference(identifiers[2], udtMatch); - - if (!_alreadyResolved.Contains(projectReference.Context)) - { - projectMatch.AddReference(projectReference); - _alreadyResolved.Add(projectReference.Context); - } - - if (!_alreadyResolved.Contains(moduleReference.Context)) - { - moduleMatch.AddReference(moduleReference); - _alreadyResolved.Add(moduleReference.Context); - } - - if (!_alreadyResolved.Contains(udtReference.Context)) - { - udtMatch.AddReference(udtReference); - _alreadyResolved.Add(udtReference.Context); - } - - return udtMatch; - } - var enumMatch = _declarationFinder.FindEnum(identifiers[2].GetText(), moduleMatch); - if (enumMatch != null) - { - var enumReference = CreateReference(identifiers[2], enumMatch); - - if (!_alreadyResolved.Contains(projectReference.Context)) - { - projectMatch.AddReference(projectReference); - _alreadyResolved.Add(projectReference.Context); - } - - if (!_alreadyResolved.Contains(moduleReference.Context)) - { - moduleMatch.AddReference(moduleReference); - _alreadyResolved.Add(moduleReference.Context); - } - - if (!_alreadyResolved.Contains(enumReference.Context)) - { - enumMatch.AddReference(enumReference); - _alreadyResolved.Add(enumReference.Context); - } - - return enumMatch; - } - } - } - else - { - if (projectReference != null && !_alreadyResolved.Contains(projectReference.Context)) - { - projectMatch.AddReference(projectReference); - _alreadyResolved.Add(projectReference.Context); - } - - var match = _declarationFinder.FindClass(projectMatch, identifiers[1].GetText()) - ?? _declarationFinder.FindUserDefinedType(identifiers[1].GetText()) - ?? _declarationFinder.FindEnum(identifiers[1].GetText()); - if (match != null) - { - var reference = CreateReference(identifiers[1], match); - if (reference != null && !_alreadyResolved.Contains(reference.Context)) - { - match.AddReference(reference); - _alreadyResolved.Add(reference.Context); - } - return match; - } - } - } - - // first identifier didn't match current project. - // if there are 3 identifiers, type isn't in current project. - if (identifiers.Count != 3) - { - - var moduleMatch = _declarationFinder.FindStdModule(identifiers[0].GetText(), projectMatch); - if (moduleMatch != null) - { - var moduleReference = CreateReference(identifiers[0], moduleMatch); - - // 2nd identifier can only be a UDT or enum - var match = _declarationFinder.FindUserDefinedType(identifiers[1].GetText(), moduleMatch) - ?? _declarationFinder.FindEnum(identifiers[1].GetText(), moduleMatch); - if (match != null) - { - var reference = CreateReference(identifiers[1], match); - - if (!_alreadyResolved.Contains(moduleReference.Context)) - { - moduleMatch.AddReference(moduleReference); - _alreadyResolved.Add(moduleReference.Context); - } - - if (!_alreadyResolved.Contains(reference.Context)) - { - match.AddReference(reference); - _alreadyResolved.Add(reference.Context); - } - - return match; - } - } - } - - return null; - } - - private Declaration ResolveInScopeType(string identifier, Declaration scope) - { - var matches = _declarationFinder.MatchTypeName(identifier).ToList(); - if (matches.Count == 1) - { - return matches.Single(); - } - - if (matches.Count(match => match.ProjectId == scope.ProjectId) == 1) - { - return matches.Single(match => match.ProjectId == scope.ProjectId); - } - - // more than one matching identifiers found. - // if it matches a UDT or enum in the current scope, resolve to that type. - var sameScopeUdt = matches.Where(declaration => - declaration.ProjectId == scope.ProjectId - && (declaration.DeclarationType == DeclarationType.UserDefinedType - || declaration.DeclarationType == DeclarationType.Enumeration) - && declaration.ParentDeclaration.Equals(scope)) - .ToList(); - - if (sameScopeUdt.Count == 1) - { - return sameScopeUdt.Single(); - } - return null; - } - - private Declaration ResolveType(Declaration parent) - { - if (parent != null && (parent.DeclarationType == DeclarationType.UserDefinedType - || parent.DeclarationType == DeclarationType.Enumeration - || parent.DeclarationType == DeclarationType.Project - || parent.DeclarationType == DeclarationType.ProceduralModule - || (parent.DeclarationType == DeclarationType.ClassModule && (parent.IsBuiltIn || parent.HasPredeclaredId)))) - { - return parent; - } - - if (parent == null || parent.AsTypeName == null) - { - return null; - } - - var identifier = parent.AsTypeName.Contains(".") - ? parent.AsTypeName.Split('.').Last() // bug: this can't be right - : parent.AsTypeName; - - identifier = identifier.StartsWith("VT_") ? parent.IdentifierName : identifier; - - var matches = _declarationFinder.MatchTypeName(identifier).ToList(); - if (matches.Count == 1) - { - return matches.Single(); - } - - var result = matches.Where(item => - (item.DeclarationType == DeclarationType.UserDefinedType - || item.DeclarationType == DeclarationType.Enumeration) - && item.ProjectId == _currentScope.ProjectId - && item.ComponentName == _currentScope.ComponentName) - .ToList(); - - if (!result.Any()) - { - result = matches.Where(item => - _moduleTypes.Contains(item.DeclarationType) - && item.ProjectId == _currentScope.ProjectId) - .ToList(); - } - - if (!result.Any()) - { - result = matches.Where(item => - _moduleTypes.Contains(item.DeclarationType)) - .ToList(); - } - - return result.Count == 1 ? result.SingleOrDefault() : - matches.Count == 1 ? matches.First() : null; - } - - private static readonly Type[] IdentifierContexts = - { - typeof (VBAParser.IdentifierContext), - typeof (VBAParser.UnrestrictedIdentifierContext), - }; - - private Declaration ResolveInternal(ParserRuleContext callSiteContext, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, VBAParser.DictionaryCallStmtContext fieldCall = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (callSiteContext == null) - { - return null; - } - - if (!IdentifierContexts.Contains(callSiteContext.GetType())) - { - throw new ArgumentException("'" + callSiteContext.GetType().Name + "' is not an identifier context.", "callSiteContext"); - } - - if (localScope == null) - { - localScope = _currentScope; - } - - if (localScope == null) - { - return null; - } - - var parentContext = callSiteContext.Parent; - var identifierName = callSiteContext.GetText(); - if (identifierName.StartsWith("[") && identifierName.EndsWith("]")) - { - // square-bracketed identifier may contain a '!' symbol; identifier name is at the left of it. - identifierName = identifierName.Substring(1, identifierName.Length - 2)/*.Split('!').First()*/; - // problem, is that IdentifierReference should work off IDENTIFIER tokens, not AmbiguousIdentifierContext. - // not sure what the better fix is. - } - - var sibling = parentContext.ChildCount > 1 ? parentContext.GetChild(1) : null; - var hasStringQualifier = sibling is VBAParser.TypeHintContext && sibling.GetText() == "$"; - - Declaration callee = null; - if (localScope.DeclarationType == DeclarationType.UserDefinedType) - { - callee = _declarationFinder.MatchName(identifierName).SingleOrDefault(item => item.Context != null && item.Context.Parent == localScope.Context); - } - else - { - callee = Resolve(identifierName, localScope, accessorType, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget, hasStringQualifier); - } - - - if (callee == null) - { - // calls inside With block can still refer to identifiers in _currentScope - localScope = _currentScope; - identifierName = callSiteContext.GetText(); - callee = FindLocalScopeDeclaration(identifierName, localScope, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget) - ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) - ?? FindModuleScopeDeclaration(identifierName, localScope) - ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); - } - - if (callee == null) - { - return null; - } - - var reference = CreateReference(callSiteContext, callee, isAssignmentTarget, hasExplicitLetStatement); - if (reference != null && !_alreadyResolved.Contains(reference.Context)) - { - callee.AddReference(reference); - _alreadyResolved.Add(reference.Context); - _alreadyResolved.Add(callSiteContext); - } - - if (fieldCall != null) - { - return ResolveInternal(fieldCall, callee); - } - - return callee; - } - - private Declaration Resolve(string identifierName, Declaration localScope, ContextAccessorType accessorType, bool parentContextIsVariableOrProcedureCall = false, bool isAssignmentTarget = false, bool hasStringQualifier = false) - { - return FindLocalScopeDeclaration(identifierName, localScope, parentContextIsVariableOrProcedureCall, isAssignmentTarget) - ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) - ?? FindModuleScopeDeclaration(identifierName, localScope) - ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); - } - - private Declaration ResolveInternal(VBAParser.ICS_S_VariableOrProcedureCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (context == null) - { - return null; - } - if (ParserRuleContextHelper.HasParent(context)) - { - return null; - } - if (ParserRuleContextHelper.HasParent(context)) - { - return null; - } - - var identifierContext = context.identifier(); - var fieldCall = context.dictionaryCallStmt(); - - var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - if (result != null && localScope != null /*&& !localScope.DeclarationType.HasFlag(DeclarationType.Member)*/) - { - var reference = CreateReference(context.identifier(), result, isAssignmentTarget); - if (reference != null) - { - result.AddReference(reference); - //localScope.AddMemberCall(reference); - } - } - - return result; - } - - private Declaration ResolveInternal(VBAParser.DictionaryCallStmtContext fieldCall, Declaration parent, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (fieldCall == null) - { - return null; - } - - var parentType = ResolveType(parent); - if (parentType == null) - { - return null; - } - - var fieldName = fieldCall.unrestrictedIdentifier().GetText(); - var result = _declarationFinder.MatchName(fieldName).SingleOrDefault(declaration => declaration.ParentScope == parentType.Scope); - if (result == null) - { - return null; - } - - var identifierContext = fieldCall.unrestrictedIdentifier(); - var reference = CreateReference(identifierContext, result, isAssignmentTarget, hasExplicitLetStatement); - result.AddReference(reference); - _alreadyResolved.Add(reference.Context); - - return result; - } - - private Declaration ResolveInternal(VBAParser.ICS_S_ProcedureOrArrayCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (context == null) - { - return null; - } - - var identifierContext = context.identifier(); - var fieldCall = context.dictionaryCallStmt(); - // todo: understand WTF [baseType] is doing in that grammar rule... - - if (localScope == null) - { - localScope = _currentScope; - } - - var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - if (result != null && !localScope.DeclarationType.HasFlag(DeclarationType.Member)) - { - localScope.AddMemberCall(CreateReference(context.identifier(), result)); - } - - return result; - } - - private Declaration ResolveInternal(VBAParser.ICS_S_MembersCallContext context, ContextAccessorType accessorType, Declaration localScope = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (context == null) - { - return null; - } - - Declaration parent; - if (_withBlockQualifiers.Any()) - { - parent = _withBlockQualifiers.Peek(); - if (parent == null) - { - // if parent is an unknown type, continuing any further will only cause issues. - return null; - } - } - else - { - if (localScope == null) - { - localScope = _currentScope; - } - parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement) - ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement); - } - - var chainedCalls = context.iCS_S_MemberCall(); - var lastCall = chainedCalls.Last(); - foreach (var memberCall in chainedCalls) - { - //// if we're on the left side of an assignment, only the last memberCall is the assignment target. - //var isLast = memberCall.Equals(lastCall); - //var accessor = isLast - // ? accessorType - // : ContextAccessorType.GetValueOrReference; - //var isTarget = isLast && isAssignmentTarget; - - //var parentType = ResolveType(parent); - - //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) - // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); - - //if (member == null && parent != null) - //{ - // var parentComTypeName = GetParentComTypeName(parent); - - // // if the member can't be found on the parentType, maybe we're looking at a document or form module? - // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); - // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) - // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); - //} - - //if (member == null) - //{ - // // if member still can't be found, it's hopeless - // return null; - //} - - //var memberReference = CreateReference(GetMemberCallIdentifierContext(memberCall), parent); - //member.AddMemberCall(memberReference); - //parent = ResolveType(member); - } - - var fieldCall = context.dictionaryCallStmt(); - if (fieldCall == null) - { - return parent; - } - - return ResolveInternal(fieldCall, parent, hasExplicitLetStatement, isAssignmentTarget); - } - - private Declaration ResolveInternal(VBAParser.ImplicitCallStmt_InStmtContext callSiteContext, Declaration localScope, ContextAccessorType accessorType, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - { - if (callSiteContext == null) - { - return null; - } - - var dictionaryCall = callSiteContext.iCS_S_DictionaryCall(); - var fieldCall = dictionaryCall == null ? null : dictionaryCall.dictionaryCallStmt(); - - return ResolveInternal(callSiteContext.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) - ?? ResolveInternal(callSiteContext.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) - ?? ResolveInternal(callSiteContext.iCS_S_MembersCall(), accessorType, localScope, hasExplicitLetStatement, isAssignmentTarget) - ?? ResolveInternal(callSiteContext.iCS_S_DictionaryCall(), localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - } - - private Declaration ResolveInternal(VBAParser.ICS_B_ProcedureCallContext context) - { - if (context == null) - { - return null; - } - - var identifierContext = context.identifier(); - var callee = ResolveInternal(identifierContext, _currentScope); - if (callee == null) - { - return null; - } - - var reference = CreateReference(identifierContext, callee); - if (reference != null) - { - callee.AddReference(reference); - _alreadyResolved.Add(reference.Context); - } - return callee; - } - - public void Resolve(VBAParser.ICS_B_ProcedureCallContext context) - { - if (_alreadyResolved.Contains(context)) - { - return; - } - - ResolveInternal(context); - } - - public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) - { - if (_alreadyResolved.Contains(context)) - { - return; - } - - var parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), _currentScope, ContextAccessorType.GetValueOrReference); - var parentType = ResolveType(parentScope); - - if (_withBlockQualifiers.Any()) - { - parentType = ResolveType(_withBlockQualifiers.Peek()); - parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), parentType, ContextAccessorType.GetValueOrReference) - ?? ResolveInternal(context.unrestrictedIdentifier(), parentType); - parentType = ResolveType(parentScope); - } - - var identifierContext = context.unrestrictedIdentifier(); - Declaration member = null; - if (parentType != null) - { - member = _declarationFinder - .MatchName(identifierContext.GetText()) - .SingleOrDefault(item => - item.QualifiedName.QualifiedModuleName == parentType.QualifiedName.QualifiedModuleName - && item.DeclarationType != DeclarationType.Event); - } - else - { - if (parentScope != null) - { - var parentComTypeName = GetParentComTypeName(parentScope); - - // if the member can't be found on the parentType, maybe we're looking at a document or form module? - parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); - member = ResolveInternal(identifierContext, parentType); - } - } - - if (member != null) - { - var reference = CreateReference(identifierContext, member); - if (reference != null) - { - parentScope.AddMemberCall(CreateReference(context.unrestrictedIdentifier(), member)); - member.AddReference(reference); - _alreadyResolved.Add(reference.Context); - } - } - else - { - return; - } - - var fieldCall = context.dictionaryCallStmt(); - ResolveInternal(fieldCall, member); - } - - public void Resolve(VBAParser.ICS_S_VariableOrProcedureCallContext context) - { - ResolveInternal(context, _currentScope); - } - - public void Resolve(VBAParser.ICS_S_ProcedureOrArrayCallContext context) - { - ResolveInternal(context, _currentScope); - } - - public void Resolve(VBAParser.ICS_S_MembersCallContext context) - { - if (context == null || _alreadyResolved.Contains(context)) - { - return; - } - - if (context.Parent.Parent.Parent is VBAParser.VsNewContext) - { - // if we're in a ValueStatement/New context, we're actually resolving for a type: - ResolveType(context); - return; - } - - Declaration parent; - if (_withBlockQualifiers.Any()) - { - parent = ResolveType(_withBlockQualifiers.Peek()); - if (parent == null) - { - return; - } - } - else - { - parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), _currentScope) - ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), _currentScope); - parent = ResolveType(parent); - } - - if (parent != null && parent.Context != null) - { - var identifierContext = ((dynamic)parent.Context).identifier() as VBAParser.IdentifierContext; - - var parentReference = CreateReference(identifierContext, parent); - if (parentReference != null) - { - parent.AddReference(parentReference); - _alreadyResolved.Add(parentReference.Context); - } - } - - if (parent == null) - { - - - return; - } - - var expression = context.GetText(); - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); - - - var chainedCalls = context.iCS_S_MemberCall(); - foreach (var memberCall in chainedCalls) - { - //var notationToken = memberCall.children[0]; - //if (notationToken.GetText() == "!") - //{ - // // the memberCall is a shorthand reference to the type's default member. - // // since the reference isn't explicit, we don't need to care for it. - // // (and we couldn't handle it if we wanted to, since we aren't parsing member attributes) - // return; - //} - - //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parent) - // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parent); - - //if (member == null && parent != null) - //{ - // var parentComTypeName = GetParentComTypeName(parent); - // // if the member can't be found on the parentType, maybe we're looking at a document or form module? - // var parentType = _declarationFinder.FindClass(null, parentComTypeName); - // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) - // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType); - //} - - //if (member == null) - //{ - // return; - //} - - //member.AddReference(CreateReference(GetMemberCallIdentifierContext(memberCall), member)); - //parent = ResolveType(member); - } - - var fieldCall = context.dictionaryCallStmt(); - if (fieldCall == null) - { - return; - } - - ResolveInternal(fieldCall, parent); - _alreadyResolved.Add(context); - } + //private void ResolveType(VBAParser.ICS_S_MembersCallContext context) + //{ + // //var first = context.iCS_S_VariableOrProcedureCall().identifier(); + // //var identifiers = new[] { first }.Concat(context.iCS_S_MemberCall() + // // .Select(member => member.iCS_S_VariableOrProcedureCallUnrestricted().unrestrictedIdentifier())) + // // .ToList(); + // //ResolveType(identifiers); + //} + + //private Declaration ResolveType(VBAParser.ComplexTypeContext context) + //{ + // if (context == null) + // { + // return null; + // } + + // var identifiers = context.identifier() + // .Select(identifier => identifier) + // .ToList(); + + // // if there's only 1 identifier, resolve to the tightest-scope match: + // if (identifiers.Count == 1) + // { + // var type = ResolveInScopeType(identifiers.Single().GetText(), _currentScope); + // if (type != null && !_alreadyResolved.Contains(context)) + // { + // type.AddReference(CreateReference(context, type)); + // _alreadyResolved.Add(context); + // } + // return type; + // } + + // // if there's 2 or more identifiers, resolve to the deepest path: + // return ResolveType(identifiers); + //} + + //private Declaration ResolveType(IList identifiers) + //{ + // var first = identifiers[0].GetText(); + // var projectMatch = _declarationFinder.FindProject(first, _currentScope); + + // if (projectMatch != null) + // { + // var projectReference = CreateReference(identifiers[0], projectMatch); + + // // matches current project. 2nd identifier could be: + // // - standard module (only if there's a 3rd identifier) + // // - class module + // // - UDT + // // - Enum + // if (identifiers.Count == 3) + // { + // var moduleMatch = _declarationFinder.FindStdModule(identifiers[1].GetText(), _currentScope); + // if (moduleMatch != null) + // { + // var moduleReference = CreateReference(identifiers[1], moduleMatch); + + // // 3rd identifier can only be a UDT + // var udtMatch = _declarationFinder.FindUserDefinedType(identifiers[2].GetText(), moduleMatch); + // if (udtMatch != null) + // { + // var udtReference = CreateReference(identifiers[2], udtMatch); + + // if (!_alreadyResolved.Contains(projectReference.Context)) + // { + // projectMatch.AddReference(projectReference); + // _alreadyResolved.Add(projectReference.Context); + // } + + // if (!_alreadyResolved.Contains(moduleReference.Context)) + // { + // moduleMatch.AddReference(moduleReference); + // _alreadyResolved.Add(moduleReference.Context); + // } + + // if (!_alreadyResolved.Contains(udtReference.Context)) + // { + // udtMatch.AddReference(udtReference); + // _alreadyResolved.Add(udtReference.Context); + // } + + // return udtMatch; + // } + // var enumMatch = _declarationFinder.FindEnum(identifiers[2].GetText(), moduleMatch); + // if (enumMatch != null) + // { + // var enumReference = CreateReference(identifiers[2], enumMatch); + + // if (!_alreadyResolved.Contains(projectReference.Context)) + // { + // projectMatch.AddReference(projectReference); + // _alreadyResolved.Add(projectReference.Context); + // } + + // if (!_alreadyResolved.Contains(moduleReference.Context)) + // { + // moduleMatch.AddReference(moduleReference); + // _alreadyResolved.Add(moduleReference.Context); + // } + + // if (!_alreadyResolved.Contains(enumReference.Context)) + // { + // enumMatch.AddReference(enumReference); + // _alreadyResolved.Add(enumReference.Context); + // } + + // return enumMatch; + // } + // } + // } + // else + // { + // if (projectReference != null && !_alreadyResolved.Contains(projectReference.Context)) + // { + // projectMatch.AddReference(projectReference); + // _alreadyResolved.Add(projectReference.Context); + // } + + // var match = _declarationFinder.FindClass(projectMatch, identifiers[1].GetText()) + // ?? _declarationFinder.FindUserDefinedType(identifiers[1].GetText()) + // ?? _declarationFinder.FindEnum(identifiers[1].GetText()); + // if (match != null) + // { + // var reference = CreateReference(identifiers[1], match); + // if (reference != null && !_alreadyResolved.Contains(reference.Context)) + // { + // match.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + // } + // return match; + // } + // } + // } + + // // first identifier didn't match current project. + // // if there are 3 identifiers, type isn't in current project. + // if (identifiers.Count != 3) + // { + + // var moduleMatch = _declarationFinder.FindStdModule(identifiers[0].GetText(), projectMatch); + // if (moduleMatch != null) + // { + // var moduleReference = CreateReference(identifiers[0], moduleMatch); + + // // 2nd identifier can only be a UDT or enum + // var match = _declarationFinder.FindUserDefinedType(identifiers[1].GetText(), moduleMatch) + // ?? _declarationFinder.FindEnum(identifiers[1].GetText(), moduleMatch); + // if (match != null) + // { + // var reference = CreateReference(identifiers[1], match); + + // if (!_alreadyResolved.Contains(moduleReference.Context)) + // { + // moduleMatch.AddReference(moduleReference); + // _alreadyResolved.Add(moduleReference.Context); + // } + + // if (!_alreadyResolved.Contains(reference.Context)) + // { + // match.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + // } + + // return match; + // } + // } + // } + + // return null; + //} + + //private Declaration ResolveInScopeType(string identifier, Declaration scope) + //{ + // var matches = _declarationFinder.MatchTypeName(identifier).ToList(); + // if (matches.Count == 1) + // { + // return matches.Single(); + // } + + // if (matches.Count(match => match.ProjectId == scope.ProjectId) == 1) + // { + // return matches.Single(match => match.ProjectId == scope.ProjectId); + // } + + // // more than one matching identifiers found. + // // if it matches a UDT or enum in the current scope, resolve to that type. + // var sameScopeUdt = matches.Where(declaration => + // declaration.ProjectId == scope.ProjectId + // && (declaration.DeclarationType == DeclarationType.UserDefinedType + // || declaration.DeclarationType == DeclarationType.Enumeration) + // && declaration.ParentDeclaration.Equals(scope)) + // .ToList(); + + // if (sameScopeUdt.Count == 1) + // { + // return sameScopeUdt.Single(); + // } + // return null; + //} + + //private Declaration ResolveType(Declaration parent) + //{ + // if (parent != null && (parent.DeclarationType == DeclarationType.UserDefinedType + // || parent.DeclarationType == DeclarationType.Enumeration + // || parent.DeclarationType == DeclarationType.Project + // || parent.DeclarationType == DeclarationType.ProceduralModule + // || (parent.DeclarationType == DeclarationType.ClassModule && (parent.IsBuiltIn || parent.HasPredeclaredId)))) + // { + // return parent; + // } + + // if (parent == null || parent.AsTypeName == null) + // { + // return null; + // } + + // var identifier = parent.AsTypeName.Contains(".") + // ? parent.AsTypeName.Split('.').Last() // bug: this can't be right + // : parent.AsTypeName; + + // identifier = identifier.StartsWith("VT_") ? parent.IdentifierName : identifier; + + // var matches = _declarationFinder.MatchTypeName(identifier).ToList(); + // if (matches.Count == 1) + // { + // return matches.Single(); + // } + + // var result = matches.Where(item => + // (item.DeclarationType == DeclarationType.UserDefinedType + // || item.DeclarationType == DeclarationType.Enumeration) + // && item.ProjectId == _currentScope.ProjectId + // && item.ComponentName == _currentScope.ComponentName) + // .ToList(); + + // if (!result.Any()) + // { + // result = matches.Where(item => + // _moduleTypes.Contains(item.DeclarationType) + // && item.ProjectId == _currentScope.ProjectId) + // .ToList(); + // } + + // if (!result.Any()) + // { + // result = matches.Where(item => + // _moduleTypes.Contains(item.DeclarationType)) + // .ToList(); + // } + + // return result.Count == 1 ? result.SingleOrDefault() : + // matches.Count == 1 ? matches.First() : null; + //} + + //private static readonly Type[] IdentifierContexts = + //{ + // typeof (VBAParser.IdentifierContext), + // typeof (VBAParser.UnrestrictedIdentifierContext), + //}; + + //private Declaration ResolveInternal(ParserRuleContext callSiteContext, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, VBAParser.DictionaryCallStmtContext fieldCall = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (callSiteContext == null) + // { + // return null; + // } + + // if (!IdentifierContexts.Contains(callSiteContext.GetType())) + // { + // throw new ArgumentException("'" + callSiteContext.GetType().Name + "' is not an identifier context.", "callSiteContext"); + // } + + // if (localScope == null) + // { + // localScope = _currentScope; + // } + + // if (localScope == null) + // { + // return null; + // } + + // var parentContext = callSiteContext.Parent; + // var identifierName = callSiteContext.GetText(); + // if (identifierName.StartsWith("[") && identifierName.EndsWith("]")) + // { + // // square-bracketed identifier may contain a '!' symbol; identifier name is at the left of it. + // identifierName = identifierName.Substring(1, identifierName.Length - 2)/*.Split('!').First()*/; + // // problem, is that IdentifierReference should work off IDENTIFIER tokens, not AmbiguousIdentifierContext. + // // not sure what the better fix is. + // } + + // var sibling = parentContext.ChildCount > 1 ? parentContext.GetChild(1) : null; + // var hasStringQualifier = sibling is VBAParser.TypeHintContext && sibling.GetText() == "$"; + + // Declaration callee = null; + // if (localScope.DeclarationType == DeclarationType.UserDefinedType) + // { + // callee = _declarationFinder.MatchName(identifierName).SingleOrDefault(item => item.Context != null && item.Context.Parent == localScope.Context); + // } + // else + // { + // callee = Resolve(identifierName, localScope, accessorType, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget, hasStringQualifier); + // } + + + // if (callee == null) + // { + // // calls inside With block can still refer to identifiers in _currentScope + // localScope = _currentScope; + // identifierName = callSiteContext.GetText(); + // callee = FindLocalScopeDeclaration(identifierName, localScope, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget) + // ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) + // ?? FindModuleScopeDeclaration(identifierName, localScope) + // ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); + // } + + // if (callee == null) + // { + // return null; + // } + + // var reference = CreateReference(callSiteContext, callee, isAssignmentTarget, hasExplicitLetStatement); + // if (reference != null && !_alreadyResolved.Contains(reference.Context)) + // { + // callee.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + // _alreadyResolved.Add(callSiteContext); + // } + + // if (fieldCall != null) + // { + // return ResolveInternal(fieldCall, callee); + // } + + // return callee; + //} + + //private Declaration Resolve(string identifierName, Declaration localScope, ContextAccessorType accessorType, bool parentContextIsVariableOrProcedureCall = false, bool isAssignmentTarget = false, bool hasStringQualifier = false) + //{ + // return FindLocalScopeDeclaration(identifierName, localScope, parentContextIsVariableOrProcedureCall, isAssignmentTarget) + // ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) + // ?? FindModuleScopeDeclaration(identifierName, localScope) + // ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); + //} + + //private Declaration ResolveInternal(VBAParser.ICS_S_VariableOrProcedureCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (context == null) + // { + // return null; + // } + // if (ParserRuleContextHelper.HasParent(context)) + // { + // return null; + // } + // if (ParserRuleContextHelper.HasParent(context)) + // { + // return null; + // } + + // var identifierContext = context.identifier(); + // var fieldCall = context.dictionaryCallStmt(); + + // var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); + // if (result != null && localScope != null /*&& !localScope.DeclarationType.HasFlag(DeclarationType.Member)*/) + // { + // var reference = CreateReference(context.identifier(), result, isAssignmentTarget); + // if (reference != null) + // { + // result.AddReference(reference); + // //localScope.AddMemberCall(reference); + // } + // } + + // return result; + //} + + //private Declaration ResolveInternal(VBAParser.DictionaryCallStmtContext fieldCall, Declaration parent, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (fieldCall == null) + // { + // return null; + // } + + // var parentType = ResolveType(parent); + // if (parentType == null) + // { + // return null; + // } + + // var fieldName = fieldCall.unrestrictedIdentifier().GetText(); + // var result = _declarationFinder.MatchName(fieldName).SingleOrDefault(declaration => declaration.ParentScope == parentType.Scope); + // if (result == null) + // { + // return null; + // } + + // var identifierContext = fieldCall.unrestrictedIdentifier(); + // var reference = CreateReference(identifierContext, result, isAssignmentTarget, hasExplicitLetStatement); + // result.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + + // return result; + //} + + //private Declaration ResolveInternal(VBAParser.ICS_S_ProcedureOrArrayCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (context == null) + // { + // return null; + // } + + // var identifierContext = context.identifier(); + // var fieldCall = context.dictionaryCallStmt(); + // // todo: understand WTF [baseType] is doing in that grammar rule... + + // if (localScope == null) + // { + // localScope = _currentScope; + // } + + // var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); + // if (result != null && !localScope.DeclarationType.HasFlag(DeclarationType.Member)) + // { + // localScope.AddMemberCall(CreateReference(context.identifier(), result)); + // } + + // return result; + //} + + //private Declaration ResolveInternal(VBAParser.ICS_S_MembersCallContext context, ContextAccessorType accessorType, Declaration localScope = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (context == null) + // { + // return null; + // } + + // Declaration parent; + // if (_withBlockQualifiers.Any()) + // { + // parent = _withBlockQualifiers.Peek(); + // if (parent == null) + // { + // // if parent is an unknown type, continuing any further will only cause issues. + // return null; + // } + // } + // else + // { + // if (localScope == null) + // { + // localScope = _currentScope; + // } + // parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement) + // ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement); + // } + + // var chainedCalls = context.iCS_S_MemberCall(); + // var lastCall = chainedCalls.Last(); + // foreach (var memberCall in chainedCalls) + // { + // //// if we're on the left side of an assignment, only the last memberCall is the assignment target. + // //var isLast = memberCall.Equals(lastCall); + // //var accessor = isLast + // // ? accessorType + // // : ContextAccessorType.GetValueOrReference; + // //var isTarget = isLast && isAssignmentTarget; + + // //var parentType = ResolveType(parent); + + // //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) + // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); + + // //if (member == null && parent != null) + // //{ + // // var parentComTypeName = GetParentComTypeName(parent); + + // // // if the member can't be found on the parentType, maybe we're looking at a document or form module? + // // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); + // // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) + // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); + // //} + + // //if (member == null) + // //{ + // // // if member still can't be found, it's hopeless + // // return null; + // //} + + // //var memberReference = CreateReference(GetMemberCallIdentifierContext(memberCall), parent); + // //member.AddMemberCall(memberReference); + // //parent = ResolveType(member); + // } + + // var fieldCall = context.dictionaryCallStmt(); + // if (fieldCall == null) + // { + // return parent; + // } + + // return ResolveInternal(fieldCall, parent, hasExplicitLetStatement, isAssignmentTarget); + //} + + //private Declaration ResolveInternal(VBAParser.ImplicitCallStmt_InStmtContext callSiteContext, Declaration localScope, ContextAccessorType accessorType, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) + //{ + // if (callSiteContext == null) + // { + // return null; + // } + + // var dictionaryCall = callSiteContext.iCS_S_DictionaryCall(); + // var fieldCall = dictionaryCall == null ? null : dictionaryCall.dictionaryCallStmt(); + + // return ResolveInternal(callSiteContext.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) + // ?? ResolveInternal(callSiteContext.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) + // ?? ResolveInternal(callSiteContext.iCS_S_MembersCall(), accessorType, localScope, hasExplicitLetStatement, isAssignmentTarget) + // ?? ResolveInternal(callSiteContext.iCS_S_DictionaryCall(), localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); + //} + + //private Declaration ResolveInternal(VBAParser.ICS_B_ProcedureCallContext context) + //{ + // if (context == null) + // { + // return null; + // } + + // var identifierContext = context.identifier(); + // var callee = ResolveInternal(identifierContext, _currentScope); + // if (callee == null) + // { + // return null; + // } + + // var reference = CreateReference(identifierContext, callee); + // if (reference != null) + // { + // callee.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + // } + // return callee; + //} + + //public void Resolve(VBAParser.ICS_B_ProcedureCallContext context) + //{ + // if (_alreadyResolved.Contains(context)) + // { + // return; + // } + + // ResolveInternal(context); + //} + + //public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) + //{ + // if (_alreadyResolved.Contains(context)) + // { + // return; + // } + + // var parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), _currentScope, ContextAccessorType.GetValueOrReference); + // var parentType = ResolveType(parentScope); + + // if (_withBlockQualifiers.Any()) + // { + // parentType = ResolveType(_withBlockQualifiers.Peek()); + // parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), parentType, ContextAccessorType.GetValueOrReference) + // ?? ResolveInternal(context.unrestrictedIdentifier(), parentType); + // parentType = ResolveType(parentScope); + // } + + // var identifierContext = context.unrestrictedIdentifier(); + // Declaration member = null; + // if (parentType != null) + // { + // member = _declarationFinder + // .MatchName(identifierContext.GetText()) + // .SingleOrDefault(item => + // item.QualifiedName.QualifiedModuleName == parentType.QualifiedName.QualifiedModuleName + // && item.DeclarationType != DeclarationType.Event); + // } + // else + // { + // if (parentScope != null) + // { + // var parentComTypeName = GetParentComTypeName(parentScope); + + // // if the member can't be found on the parentType, maybe we're looking at a document or form module? + // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); + // member = ResolveInternal(identifierContext, parentType); + // } + // } + + // if (member != null) + // { + // var reference = CreateReference(identifierContext, member); + // if (reference != null) + // { + // parentScope.AddMemberCall(CreateReference(context.unrestrictedIdentifier(), member)); + // member.AddReference(reference); + // _alreadyResolved.Add(reference.Context); + // } + // } + // else + // { + // return; + // } + + // var fieldCall = context.dictionaryCallStmt(); + // ResolveInternal(fieldCall, member); + //} + + //public void Resolve(VBAParser.ICS_S_VariableOrProcedureCallContext context) + //{ + // ResolveInternal(context, _currentScope); + //} + + //public void Resolve(VBAParser.ICS_S_ProcedureOrArrayCallContext context) + //{ + // ResolveInternal(context, _currentScope); + //} + + //public void Resolve(VBAParser.ICS_S_MembersCallContext context) + //{ + // if (context == null || _alreadyResolved.Contains(context)) + // { + // return; + // } + + // if (context.Parent.Parent.Parent is VBAParser.VsNewContext) + // { + // // if we're in a ValueStatement/New context, we're actually resolving for a type: + // ResolveType(context); + // return; + // } + + // Declaration parent; + // if (_withBlockQualifiers.Any()) + // { + // parent = ResolveType(_withBlockQualifiers.Peek()); + // if (parent == null) + // { + // return; + // } + // } + // else + // { + // parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), _currentScope) + // ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), _currentScope); + // parent = ResolveType(parent); + // } + + // if (parent != null && parent.Context != null) + // { + // var identifierContext = ((dynamic)parent.Context).identifier() as VBAParser.IdentifierContext; + + // var parentReference = CreateReference(identifierContext, parent); + // if (parentReference != null) + // { + // parent.AddReference(parentReference); + // _alreadyResolved.Add(parentReference.Context); + // } + // } + + // if (parent == null) + // { + + + // return; + // } + + // var expression = context.GetText(); + // var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); + + + // var chainedCalls = context.iCS_S_MemberCall(); + // foreach (var memberCall in chainedCalls) + // { + // //var notationToken = memberCall.children[0]; + // //if (notationToken.GetText() == "!") + // //{ + // // // the memberCall is a shorthand reference to the type's default member. + // // // since the reference isn't explicit, we don't need to care for it. + // // // (and we couldn't handle it if we wanted to, since we aren't parsing member attributes) + // // return; + // //} + + // //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parent) + // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parent); + + // //if (member == null && parent != null) + // //{ + // // var parentComTypeName = GetParentComTypeName(parent); + // // // if the member can't be found on the parentType, maybe we're looking at a document or form module? + // // var parentType = _declarationFinder.FindClass(null, parentComTypeName); + // // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) + // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType); + // //} + + // //if (member == null) + // //{ + // // return; + // //} + + // //member.AddReference(CreateReference(GetMemberCallIdentifierContext(memberCall), member)); + // //parent = ResolveType(member); + // } + + // var fieldCall = context.dictionaryCallStmt(); + // if (fieldCall == null) + // { + // return; + // } + + // ResolveInternal(fieldCall, parent); + // _alreadyResolved.Add(context); + //} public void Resolve(VBAParser.OnErrorStmtContext context) { @@ -904,16 +904,25 @@ private void ResolveLabel(ParserRuleContext context, string label) var labelDeclaration = _bindingService.ResolveGoTo(_currentParent, label); if (labelDeclaration != null) { - labelDeclaration.AddReference(CreateReference(context, labelDeclaration)); + labelDeclaration.AddReference(CreateReference(context, labelDeclaration, context.GetSelection())); + } + } + + private void ResolveDefault(ParserRuleContext context, string expression, ResolutionStatementContext statementContext = ResolutionStatementContext.Undefined, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) + { + var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression(), statementContext); + if (boundExpression != null) + { + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(context, declaration, RubberduckParserState.CreateBindingSelection(context, exprCtx), isAssignmentTarget, hasExplicitLetStatement)); } } - private void ResolveDefault(ParserRuleContext context, string expression, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) + private void ResolveType(ParserRuleContext context, string expression) { - var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); + var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, expression); if (boundExpression != null) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context, declaration, isAssignmentTarget, hasExplicitLetStatement)); + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(context, declaration, RubberduckParserState.CreateBindingSelection(context, boundExpression.Context))); } } @@ -959,32 +968,9 @@ public void Resolve(VBAParser.RedimStmtContext context) } } - public void Resolve(VBAParser.BlockContext context) - { - if (context == null) - { - return; - } - foreach (var stmt in context.blockStmt()) - { - Resolve(stmt); - } - } - - public void Resolve(VBAParser.BlockStmtContext context) - { - //if (context == null) - //{ - // return; - //} - //dynamic ctx = context; - //Resolve(ctx); - } - public void Resolve(VBAParser.WhileWendStmtContext context) { ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); - Resolve(context.block()); } public void Resolve(VBAParser.DoLoopStmtContext context) @@ -994,34 +980,23 @@ public void Resolve(VBAParser.DoLoopStmtContext context) return; } ResolveDefault(context.valueStmt(), context.valueStmt().GetText()); - Resolve(context.block()); } public void Resolve(VBAParser.BlockIfThenElseContext context) { ResolveDefault(context.ifBlockStmt().ifConditionStmt(), context.ifBlockStmt().ifConditionStmt().GetText()); - Resolve(context.ifBlockStmt().block()); if (context.ifElseIfBlockStmt() != null) { foreach (var elseIfBlock in context.ifElseIfBlockStmt()) { ResolveDefault(elseIfBlock.ifConditionStmt(), elseIfBlock.ifConditionStmt().GetText()); - Resolve(elseIfBlock.block()); } } - if (context.ifElseBlockStmt() != null) - { - Resolve(context.ifElseBlockStmt().block()); - } } public void Resolve(VBAParser.InlineIfThenElseContext context) { ResolveDefault(context.ifConditionStmt(), context.ifConditionStmt().GetText()); - foreach (var blockStmt in context.blockStmt()) - { - Resolve(blockStmt); - } } public void Resolve(VBAParser.SelectCaseStmtContext context) @@ -1054,7 +1029,6 @@ public void Resolve(VBAParser.SelectCaseStmtContext context) } } } - Resolve(caseClauseBlock.block()); } } } @@ -1082,58 +1056,58 @@ private string GetParentComTypeName(Declaration declaration) return string.Empty; } - private ParserRuleContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) - { - if (callContext == null) - { - return null; - } - - var procedureOrArrayCall = callContext.iCS_S_ProcedureOrArrayCallUnrestricted(); - if (procedureOrArrayCall != null) - { - return procedureOrArrayCall.unrestrictedIdentifier(); - } - - var variableOrProcedureCall = callContext.iCS_S_VariableOrProcedureCallUnrestricted(); - if (variableOrProcedureCall != null) - { - return variableOrProcedureCall.unrestrictedIdentifier(); - } - - return null; - } - - public void Resolve(VBAParser.ICS_S_DictionaryCallContext context) - { - TryResolve(context); - } - - private void TryResolve(TContext context) where TContext : ParserRuleContext - { - if (context == null || _alreadyResolved.Contains(context)) - { - return; - } - ResolveInternal(context, _currentScope); - } + //private ParserRuleContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) + //{ + // if (callContext == null) + // { + // return null; + // } + + // var procedureOrArrayCall = callContext.iCS_S_ProcedureOrArrayCallUnrestricted(); + // if (procedureOrArrayCall != null) + // { + // return procedureOrArrayCall.unrestrictedIdentifier(); + // } + + // var variableOrProcedureCall = callContext.iCS_S_VariableOrProcedureCallUnrestricted(); + // if (variableOrProcedureCall != null) + // { + // return variableOrProcedureCall.unrestrictedIdentifier(); + // } + + // return null; + //} + + //public void Resolve(VBAParser.ICS_S_DictionaryCallContext context) + //{ + // TryResolve(context); + //} + + //private void TryResolve(TContext context) where TContext : ParserRuleContext + //{ + // if (context == null || _alreadyResolved.Contains(context)) + // { + // return; + // } + // ResolveInternal(context, _currentScope); + //} public void Resolve(VBAParser.LetStmtContext context) { var letStatement = context.LET(); - ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), true, letStatement != null); + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), ResolutionStatementContext.LetStatement, true, letStatement != null); ResolveDefault(context.valueStmt()[1], context.valueStmt()[1].GetText()); } public void Resolve(VBAParser.SetStmtContext context) { - ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), true, false); + ResolveDefault(context.valueStmt()[0], context.valueStmt()[0].GetText(), ResolutionStatementContext.SetStatement, true, false); ResolveDefault(context.valueStmt()[1], context.valueStmt()[1].GetText()); } public void Resolve(VBAParser.ExplicitCallStmtContext context) { - ResolveDefault(context.explicitCallStmtExpression(), context.explicitCallStmtExpression().GetText()); + ResolveDefault(context.explicitCallStmtExpression(), context.explicitCallStmtExpression().GetText(), ResolutionStatementContext.CallStatement); } public void Resolve(VBAParser.ConstStmtContext context) @@ -1287,73 +1261,49 @@ public void Resolve(VBAParser.AsTypeClauseContext context) var length = context.fieldLength(); if (context.fieldLength() != null && context.fieldLength().identifier() != null) { - var constantName = context.fieldLength().identifier(); - var constantNameExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, constantName.GetText(), GetInnerMostWithExpression()); - if (constantNameExpression != null) - { - _boundExpressionVisitor.AddIdentifierReferences(constantNameExpression, declaration => CreateReference(constantName, declaration)); - } + ResolveDefault(context.fieldLength().identifier(), context.fieldLength().identifier().GetText()); } return; } - string typeExpression = asType.complexType().GetText(); - var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, typeExpression); - if (boundExpression != null) - { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(asType.complexType(), declaration)); - } + ResolveType(asType.complexType(), asType.complexType().GetText()); } public void Resolve(VBAParser.ForNextStmtContext context) { - var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression()); + var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression(), ResolutionStatementContext.Undefined); if (firstExpression != null) { // each iteration counts as an assignment - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration, true)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, declaration) => CreateReference(context.valueStmt()[0], declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context), true)); // each iteration also counts as a plain usage - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, declaration) => CreateReference(context.valueStmt()[0], declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context))); } for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { - var expr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[exprIndex].GetText(), GetInnerMostWithExpression()); - if (expr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); - } + ResolveDefault(context.valueStmt()[exprIndex], context.valueStmt()[exprIndex].GetText()); } - Resolve(context.block()); } public void Resolve(VBAParser.ForEachStmtContext context) { - var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression()); + var firstExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[0].GetText(), GetInnerMostWithExpression(), ResolutionStatementContext.Undefined); if (firstExpression != null) { // each iteration counts as an assignment - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration, true)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, declaration) => CreateReference(context.valueStmt()[0], declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context), true)); // each iteration also counts as a plain usage - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, declaration => CreateReference(context.valueStmt()[0], declaration)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, declaration) => CreateReference(context.valueStmt()[0], declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context))); } for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { - var expr = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, context.valueStmt()[exprIndex].GetText(), GetInnerMostWithExpression()); - if (expr != null) - { - _boundExpressionVisitor.AddIdentifierReferences(expr, declaration => CreateReference(context.valueStmt()[exprIndex], declaration)); - } + ResolveDefault(context.valueStmt()[exprIndex], context.valueStmt()[exprIndex].GetText()); } - Resolve(context.block()); } public void Resolve(VBAParser.ImplementsStmtContext context) { - var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, context.valueStmt().GetText()); - if (boundExpression != null) - { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); - } + ResolveType(context.valueStmt(), context.valueStmt().GetText()); } public void Resolve(VBAParser.VsAddressOfContext context) @@ -1361,7 +1311,7 @@ public void Resolve(VBAParser.VsAddressOfContext context) var boundExpression = _bindingService.ResolveProcedurePointer(_moduleDeclaration, _currentParent, context.valueStmt().GetText()); if (boundExpression != null) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, declaration => CreateReference(context.valueStmt(), declaration)); + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(context.valueStmt(), declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt(), boundExpression.Context))); } } @@ -1370,7 +1320,7 @@ public void Resolve(VBAParser.RaiseEventStmtContext context) var eventDeclaration = _bindingService.ResolveEvent(_moduleDeclaration, context.identifier().GetText()); if (eventDeclaration != null) { - eventDeclaration.AddReference(CreateReference(context.identifier(), eventDeclaration)); + eventDeclaration.AddReference(CreateReference(context.identifier(), eventDeclaration, context.identifier().GetSelection())); } ResolveArgsCall(context.argsCall()); } @@ -1401,57 +1351,55 @@ public void Resolve(VBAParser.ResumeStmtContext context) ResolveLabel(context.valueStmt(), context.valueStmt().GetText()); } - public void Resolve(VBAParser.LineLabelContext context) - { - // Nothing to bind. - } - - public void Resolve(VBAParser.AttributeStmtContext context) - { - // Nothing to bind. - } - - public void Resolve(VBAParser.DeftypeStmtContext context) - { - // Nothing to bind. - } - - public void Resolve(VBAParser.ExitStmtContext context) - { - // Nothing to bind. - } - - public void Resolve(VBAParser.VariableStmtContext context) - { - // Nothing to bind. - } - public void Resolve(VBAParser.ImplicitCallStmt_InBlockContext context) { - // TODO: This is a call statement but arg list has to be specified separately. + string expr = context.GetText(); + // This represents a CALL statement without the CALL keyword which is slightly different than a normal expression because it does not allow parentheses around its argument list. + try + { + ResolveDefault(context, expr, ResolutionStatementContext.CallStatement); + } + catch (Exception ex) + { + // TODO: Fix wrong parse tree for array variable declarations (e.g. Dim a() As String) + } } - public void Resolve(VBAParser.FieldLengthContext context) + public void Resolve(VBAParser.EnumerationStmtContext context) { - ResolveInternal(context.identifier(), _currentScope); + if (context.enumerationStmt_Constant() == null) + { + return; + } + foreach (var enumMember in context.enumerationStmt_Constant()) + { + if (enumMember.valueStmt() != null) + { + ResolveDefault(enumMember.valueStmt(), enumMember.valueStmt().GetText()); + } + } } - public void Resolve(VBAParser.VsAssignContext context) - { - // TODO: Understand this. - // named parameter reference must be scoped to called procedure - var callee = FindParentCall(context); - ResolveInternal(context.implicitCallStmt_InStmt(), callee, ContextAccessorType.AssignValueOrReference); - } + //public void Resolve(VBAParser.FieldLengthContext context) + //{ + // ResolveInternal(context.identifier(), _currentScope); + //} - private Declaration FindParentCall(VBAParser.VsAssignContext context) - { - var calleeContext = context.Parent.Parent.Parent; - return ResolveInternal(calleeContext as VBAParser.ICS_B_ProcedureCallContext) - ?? ResolveInternal(calleeContext as VBAParser.ICS_S_VariableOrProcedureCallContext, _currentScope) - ?? ResolveInternal(calleeContext as VBAParser.ICS_S_ProcedureOrArrayCallContext, _currentScope) - ?? ResolveInternal(calleeContext as VBAParser.ICS_S_MembersCallContext, _currentScope); - } + //public void Resolve(VBAParser.VsAssignContext context) + //{ + // // named parameter reference must be scoped to called procedure + // var callee = FindParentCall(context); + // ResolveInternal(context.implicitCallStmt_InStmt(), callee, ContextAccessorType.AssignValueOrReference); + //} + + //private Declaration FindParentCall(VBAParser.VsAssignContext context) + //{ + // var calleeContext = context.Parent.Parent.Parent; + // return ResolveInternal(calleeContext as VBAParser.ICS_B_ProcedureCallContext) + // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_VariableOrProcedureCallContext, _currentScope) + // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_ProcedureOrArrayCallContext, _currentScope) + // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_MembersCallContext, _currentScope); + //} private Declaration FindFunctionOrPropertyGetter(string identifierName, Declaration localScope = null) { diff --git a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs index dd6b403beb..b322f24eca 100644 --- a/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs +++ b/Rubberduck.Parsing/Symbols/TypeAnnotationPass.cs @@ -1,5 +1,6 @@ using Rubberduck.Parsing.Binding; using System.Diagnostics; +using System.Linq; namespace Rubberduck.Parsing.Symbols { @@ -39,6 +40,7 @@ private void AnnotateType(Declaration declarationWithAsType) if (declarationWithAsType.DeclarationType == DeclarationType.ClassModule) { declarationWithAsType.AsTypeDeclaration = declarationWithAsType; + return; } string typeExpression; @@ -47,6 +49,10 @@ private void AnnotateType(Declaration declarationWithAsType) var typeContext = declarationWithAsType.GetAsTypeContext(); typeExpression = typeContext.type().complexType().GetText(); } + else if (!string.IsNullOrWhiteSpace(declarationWithAsType.AsTypeName) && !Declaration.BASE_TYPES.Contains(declarationWithAsType.AsTypeName.ToUpperInvariant())) + { + typeExpression = declarationWithAsType.AsTypeName; + } else { return; @@ -57,7 +63,6 @@ private void AnnotateType(Declaration declarationWithAsType) // TODO: Reference Collector does not add module, find workaround? return; } - var boundExpression = _bindingService.ResolveType(module, declarationWithAsType.ParentDeclaration, typeExpression); if (boundExpression != null) { diff --git a/Rubberduck.Parsing/VBA/AttributeParser.cs b/Rubberduck.Parsing/VBA/AttributeParser.cs index 8087147ca3..935603cabb 100644 --- a/Rubberduck.Parsing/VBA/AttributeParser.cs +++ b/Rubberduck.Parsing/VBA/AttributeParser.cs @@ -3,6 +3,7 @@ using System.IO; using System.Linq; using Antlr4.Runtime; +using Antlr4.Runtime.Misc; using Antlr4.Runtime.Tree; using Microsoft.Vbe.Interop; using Rubberduck.Parsing.Grammar; @@ -56,10 +57,10 @@ public IDictionary, Attributes> Parse(VBComponent private class AttributeListener : VBAParserBaseListener { - private readonly Dictionary, Attributes> _attributes = + private readonly Dictionary, Attributes> _attributes = new Dictionary, Attributes>(); - public AttributeListener(Tuple scope) + public AttributeListener(Tuple scope) { _currentScope = scope; _currentScopeAttributes = new Attributes(); @@ -70,7 +71,7 @@ public IDictionary, Attributes> Attributes get { return _attributes; } } - private Tuple _currentScope; + private Tuple _currentScope; private Attributes _currentScopeAttributes; public override void ExitModuleAttributes(VBAParser.ModuleAttributesContext context) @@ -88,21 +89,38 @@ public override void ExitModuleAttributes(VBAParser.ModuleAttributesContext cont {typeof(VBAParser.PropertySetStmtContext), DeclarationType.PropertySet} }; - public override void EnterIdentifier(VBAParser.IdentifierContext context) + public override void EnterSubroutineName(VBAParser.SubroutineNameContext context) { - DeclarationType type; - if (!ScopingContextTypes.TryGetValue(context.Parent.GetType(), out type)) + if (ParserRuleContextHelper.HasParent(context)) { - return; + _currentScope = Tuple.Create(context.GetText(), DeclarationType.Procedure); } + else if (ParserRuleContextHelper.HasParent(context)) + { + _currentScope = Tuple.Create(context.GetText(), DeclarationType.PropertyGet); + } + } - _currentScope = Tuple.Create(context.GetText(), type); + public override void EnterFunctionName(VBAParser.FunctionNameContext context) + { + if (ParserRuleContextHelper.HasParent(context)) + { + _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.Function); + } + else if (ParserRuleContextHelper.HasParent(context)) + { + _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.PropertyLet); + } + else if (ParserRuleContextHelper.HasParent(context)) + { + _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.PropertySet); + } } public override void EnterSubStmt(VBAParser.SubStmtContext context) { _currentScopeAttributes = new Attributes(); - _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.Procedure); + _currentScope = Tuple.Create(context.subroutineName().GetText(), DeclarationType.Procedure); } public override void ExitSubStmt(VBAParser.SubStmtContext context) @@ -116,7 +134,7 @@ public override void ExitSubStmt(VBAParser.SubStmtContext context) public override void EnterFunctionStmt(VBAParser.FunctionStmtContext context) { _currentScopeAttributes = new Attributes(); - _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.Function); + _currentScope = Tuple.Create(context.functionName().identifier().GetText(), DeclarationType.Function); } public override void ExitFunctionStmt(VBAParser.FunctionStmtContext context) @@ -130,7 +148,7 @@ public override void ExitFunctionStmt(VBAParser.FunctionStmtContext context) public override void EnterPropertyGetStmt(VBAParser.PropertyGetStmtContext context) { _currentScopeAttributes = new Attributes(); - _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.PropertyGet); + _currentScope = Tuple.Create(context.functionName().identifier().GetText(), DeclarationType.PropertyGet); } public override void ExitPropertyGetStmt(VBAParser.PropertyGetStmtContext context) @@ -144,7 +162,7 @@ public override void ExitPropertyGetStmt(VBAParser.PropertyGetStmtContext contex public override void EnterPropertyLetStmt(VBAParser.PropertyLetStmtContext context) { _currentScopeAttributes = new Attributes(); - _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.PropertyLet); + _currentScope = Tuple.Create(context.subroutineName().GetText(), DeclarationType.PropertyLet); } public override void ExitPropertyLetStmt(VBAParser.PropertyLetStmtContext context) @@ -158,7 +176,7 @@ public override void ExitPropertyLetStmt(VBAParser.PropertyLetStmtContext contex public override void EnterPropertySetStmt(VBAParser.PropertySetStmtContext context) { _currentScopeAttributes = new Attributes(); - _currentScope = Tuple.Create(context.identifier().GetText(), DeclarationType.PropertySet); + _currentScope = Tuple.Create(context.subroutineName().GetText(), DeclarationType.PropertySet); } public override void ExitPropertySetStmt(VBAParser.PropertySetStmtContext context) @@ -171,16 +189,16 @@ public override void ExitPropertySetStmt(VBAParser.PropertySetStmtContext contex public override void ExitAttributeStmt(VBAParser.AttributeStmtContext context) { - var name = context.implicitCallStmt_InStmt().GetText().Trim(); - var values = context.literal().Select(e => e.GetText().Replace("\"", string.Empty)).ToList(); + var name = context.attributeName().GetText().Trim(); + var values = context.attributeValue().Select(e => e.GetText().Replace("\"", string.Empty)).ToList(); _currentScopeAttributes.Add(name, values); } public override void ExitModuleConfigElement(VBAParser.ModuleConfigElementContext context) { var name = context.unrestrictedIdentifier().GetText(); - var literal = context.literal(); - var values = new[] { literal == null ? string.Empty : literal.GetText()}; + var literal = context.valueStmt(); + var values = new[] { literal == null ? string.Empty : literal.GetText() }; _currentScopeAttributes.Add(name, values); } } diff --git a/Rubberduck.Parsing/VBA/Nodes/ProcedureNode.cs b/Rubberduck.Parsing/VBA/Nodes/ProcedureNode.cs index 29ed74c5bc..e3f9b07768 100644 --- a/Rubberduck.Parsing/VBA/Nodes/ProcedureNode.cs +++ b/Rubberduck.Parsing/VBA/Nodes/ProcedureNode.cs @@ -19,7 +19,7 @@ public enum VBProcedureKind } public ProcedureNode(VBAParser.PropertySetStmtContext context, string scope, string localScope) - : this(context, scope, localScope, VBProcedureKind.PropertySet, context.visibility(), context.identifier(), null) + : this(context, scope, localScope, VBProcedureKind.PropertySet, context.visibility(), context.subroutineName().identifier(), null) { _argsListContext = context.argList(); _staticNode = context.STATIC(); @@ -27,7 +27,7 @@ public ProcedureNode(VBAParser.PropertySetStmtContext context, string scope, str } public ProcedureNode(VBAParser.PropertyLetStmtContext context, string scope, string localScope) - : this(context, scope, localScope, VBProcedureKind.PropertyLet, context.visibility(), context.identifier(), null) + : this(context, scope, localScope, VBProcedureKind.PropertyLet, context.visibility(), context.subroutineName().identifier(), null) { _argsListContext = context.argList(); _staticNode = context.STATIC(); @@ -35,7 +35,7 @@ public ProcedureNode(VBAParser.PropertyLetStmtContext context, string scope, str } public ProcedureNode(VBAParser.PropertyGetStmtContext context, string scope, string localScope) - : this(context, scope, localScope, VBProcedureKind.PropertyGet, context.visibility(), context.identifier(), () => context.asTypeClause()) + : this(context, scope, localScope, VBProcedureKind.PropertyGet, context.visibility(), context.functionName().identifier(), () => context.asTypeClause()) { _argsListContext = context.argList(); _staticNode = context.STATIC(); @@ -44,7 +44,7 @@ public ProcedureNode(VBAParser.PropertyGetStmtContext context, string scope, str } public ProcedureNode(VBAParser.FunctionStmtContext context, string scope, string localScope) - : this(context, scope, localScope, VBProcedureKind.Function, context.visibility(), context.identifier(), () => context.asTypeClause()) + : this(context, scope, localScope, VBProcedureKind.Function, context.visibility(), context.functionName().identifier(), () => context.asTypeClause()) { _argsListContext = context.argList(); _staticNode = context.STATIC(); @@ -53,7 +53,7 @@ public ProcedureNode(VBAParser.FunctionStmtContext context, string scope, string } public ProcedureNode(VBAParser.SubStmtContext context, string scope, string localScope) - : this(context, scope, localScope, VBProcedureKind.Sub, context.visibility(), context.identifier(), null) + : this(context, scope, localScope, VBProcedureKind.Sub, context.visibility(), context.subroutineName().identifier(), null) { _argsListContext = context.argList(); _staticNode = context.STATIC(); diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index f913561af8..4bb465d095 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -197,17 +197,23 @@ private void AddBuiltInDeclarations(IReadOnlyList projects) Debug.Assert(errObject != null); var qualifiedName = new QualifiedModuleName(vba.IdentifierName, vba.IdentifierName, errObject.IdentifierName); - var err = new Declaration(new QualifiedMemberName(qualifiedName, Tokens.Err), vba, "Global", errObject.IdentifierName, true, false, Accessibility.Global, DeclarationType.Variable); + var errModuleName = new QualifiedModuleName(vba.QualifiedName.QualifiedModuleName.ProjectName, vba.QualifiedName.QualifiedModuleName.ProjectPath, "DebugClass"); + var errModule = new ProceduralModuleDeclaration(new QualifiedMemberName(errModuleName, "ErrModule"), vba, "ErrModule", true, new List(), new Attributes()); + var err = new Declaration(new QualifiedMemberName(qualifiedName, Tokens.Err), errModule, "Global", errObject.IdentifierName, true, false, Accessibility.Global, DeclarationType.Variable); + var debugModuleName = new QualifiedModuleName(vba.QualifiedName.QualifiedModuleName.ProjectName, vba.QualifiedName.QualifiedModuleName.ProjectPath, "DebugClass"); + var debugModule = new ProceduralModuleDeclaration(new QualifiedMemberName(debugModuleName, "DebugModule"), vba, "DebugModule", true, new List(), new Attributes()); var debugClassName = new QualifiedModuleName(vba.QualifiedName.QualifiedModuleName.ProjectName, vba.QualifiedName.QualifiedModuleName.ProjectPath, "DebugClass"); var debugClass = new ClassModuleDeclaration(new QualifiedMemberName(debugClassName, "DebugClass"), vba, "DebugClass", true, new List(), new Attributes(), true); - var debugObject = new Declaration(new QualifiedMemberName(debugClassName, "Debug"), vba, "Global", "DebugClass", true, false, Accessibility.Global, DeclarationType.Variable); - var debugAssert = new Declaration(new QualifiedMemberName(debugClassName, "Assert"), debugObject, debugObject.Scope, null, false, false, Accessibility.Global, DeclarationType.Procedure); - var debugPrint = new Declaration(new QualifiedMemberName(debugClassName, "Print"), debugObject, debugObject.Scope, null, false, false, Accessibility.Global, DeclarationType.Procedure); + var debugObject = new Declaration(new QualifiedMemberName(debugClassName, "Debug"), debugModule, "Global", "DebugClass", true, false, Accessibility.Global, DeclarationType.Variable); + var debugAssert = new Declaration(new QualifiedMemberName(debugClassName, "Assert"), debugClass, debugObject.Scope, null, false, false, Accessibility.Global, DeclarationType.Procedure); + var debugPrint = new Declaration(new QualifiedMemberName(debugClassName, "Print"), debugClass, debugObject.Scope, null, false, false, Accessibility.Global, DeclarationType.Procedure); lock (_state) { + _state.AddDeclaration(errModule); _state.AddDeclaration(err); + _state.AddDeclaration(debugModule); _state.AddDeclaration(debugClass); _state.AddDeclaration(debugObject); _state.AddDeclaration(debugAssert); @@ -530,6 +536,7 @@ private void ResolveReferences(DeclarationFinder finder, VBComponent component, { new TypeAnnotationPass(finder).Annotate(); walker.Walk(listener, tree); + _state.RebuildSelectionCache(); state = ParserState.Ready; } catch (Exception exception) diff --git a/Rubberduck.Parsing/VBA/RubberduckParserState.cs b/Rubberduck.Parsing/VBA/RubberduckParserState.cs index 2e52caf43b..cf75dfb45f 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParserState.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParserState.cs @@ -77,7 +77,7 @@ public sealed class RubberduckParserState private readonly ConcurrentDictionary> _annotations = new ConcurrentDictionary>(); - + private readonly ConcurrentDictionary _moduleExceptions = new ConcurrentDictionary(); @@ -118,7 +118,7 @@ public void AddProject(VBProject project) foreach (var component in project.VBComponents.Cast()) { _moduleStates.TryAdd(new QualifiedModuleName(component), ParserState.Pending); - } + } } public void RemoveProject(string projectId) @@ -247,7 +247,7 @@ private ParserState EvaluateParserState() if (result == ParserState.Ready && moduleStates.Any(item => item != ParserState.Ready)) { - result = moduleStates.Except(new[] {ParserState.Ready}).Max(); + result = moduleStates.Except(new[] { ParserState.Ready }).Max(); } Debug.Assert(result != ParserState.Ready || moduleStates.All(item => item == ParserState.Ready)); @@ -263,18 +263,18 @@ public ParserState GetModuleState(VBComponent component) } private ParserState _status; - public ParserState Status - { + public ParserState Status + { get { return _status; } private set { if (_status != value) { - _status = value; + _status = value; Debug.WriteLine("ParserState changed to '{0}', raising OnStateChanged", value); OnStateChanged(_status); } - } + } } private IEnumerable _obsoleteCallContexts = new List(); @@ -371,12 +371,12 @@ public void SetModuleAnnotations(VBComponent component, IEnumerable /// /// Gets a copy of the collected declarations, including the built-in ones. /// - public IReadOnlyList AllDeclarations + public IReadOnlyList AllDeclarations { get { return _declarations.Values.SelectMany(declarations => declarations.Keys).ToList(); - } + } } /// @@ -386,7 +386,7 @@ public IReadOnlyList AllUserDeclarations { get { - return _declarations.Values.Where(declarations => + return _declarations.Values.Where(declarations => !declarations.Any(declaration => declaration.Key.IsBuiltIn)) .SelectMany(declarations => declarations.Keys) .ToList(); @@ -450,7 +450,7 @@ public bool ClearStateCache(VBComponent component) { var match = new QualifiedModuleName(component); var keys = _declarations.Keys.Where(kvp => kvp.Equals(match)) - .Union(new[]{match}).Distinct(); // make sure the key is present, even if there are no declarations left + .Union(new[] { match }).Distinct(); // make sure the key is present, even if there are no declarations left var success = true; var declarationsRemoved = 0; @@ -522,7 +522,7 @@ public bool HasAllParseTrees(IReadOnlyList expected) } return _parseTrees.Count == expected.Count; - } + } public TokenStreamRewriter GetRewriter(VBComponent component) { @@ -566,7 +566,7 @@ public bool IsNewOrModified(VBComponent component) var key = new QualifiedModuleName(component); return IsNewOrModified(key); } - + public bool IsNewOrModified(QualifiedModuleName key) { int current; @@ -582,9 +582,19 @@ public bool IsNewOrModified(QualifiedModuleName key) private QualifiedSelection _lastSelection; private Declaration _selectedDeclaration; + private List> _declarationSelections = new List>(); + + public void RebuildSelectionCache() + { + _declarationSelections.Clear(); + var declarations = AllDeclarations.Where(d => !d.IsBuiltIn).Select(d => Tuple.Create(d, d.Selection, d.QualifiedSelection.QualifiedName)); + var references = AllDeclarations.SelectMany(d => d.References.Select(r => Tuple.Create(d, r.BindingSelection, r.QualifiedModuleName))); + _declarationSelections.AddRange(declarations.Union(references)); + } public Declaration FindSelectedDeclaration(CodePane activeCodePane, bool procedureLevelOnly = false) { + var selection = activeCodePane.GetQualifiedSelection(); if (selection.Equals(_lastSelection)) { @@ -601,32 +611,48 @@ public Declaration FindSelectedDeclaration(CodePane activeCodePane, bool procedu if (!selection.Equals(default(QualifiedSelection))) { - var matches = AllDeclarations - .Where(item => item.DeclarationType != DeclarationType.Project && - item.DeclarationType != DeclarationType.ModuleOption && - item.DeclarationType != DeclarationType.ClassModule && - item.DeclarationType != DeclarationType.ProceduralModule && - (IsSelectedDeclaration(selection.Value, item) || - item.References.Any(reference => IsSelectedReference(selection.Value, reference)))) - .ToList(); + var matches = _declarationSelections.Where(t => + t.Item3.Equals(selection.Value.QualifiedName) + && (t.Item2.ContainsFirstCharacter(selection.Value.Selection))).ToList(); try { if (matches.Count == 1) { - _selectedDeclaration = matches.Single(); + _selectedDeclaration = matches.Single().Item1; } else { Declaration match = null; if (procedureLevelOnly) { - match = matches.SingleOrDefault(item => item.DeclarationType.HasFlag(DeclarationType.Member)); + match = matches.Select(p => p.Item1).SingleOrDefault(item => item.DeclarationType.HasFlag(DeclarationType.Member)); } - // ambiguous (?), or no match - make the module be the current selection - match = match ?? AllUserDeclarations.SingleOrDefault(item => - (item.DeclarationType == DeclarationType.ClassModule || item.DeclarationType == DeclarationType.ProceduralModule) - && item.QualifiedName.QualifiedModuleName.Equals(selection.Value.QualifiedName)); + // No match + if (matches.Count == 0) + { + match = match ?? AllUserDeclarations.SingleOrDefault(item => + (item.DeclarationType == DeclarationType.ClassModule || item.DeclarationType == DeclarationType.ProceduralModule) + && item.QualifiedName.QualifiedModuleName.Equals(selection.Value.QualifiedName)); + } + else + { + // Idiotic approach to find the best declaration out of a set of overlapping declarations. + // The one closest to the start of the user selection with the smallest width wins. + var userSelection = selection.Value.Selection; + var groupedByStartDistance = matches + .GroupBy(d => Tuple.Create(Math.Abs(userSelection.StartLine - d.Item2.StartLine), Math.Abs(userSelection.StartColumn - d.Item2.StartColumn))) + .OrderBy(g => g.Key.Item1) + .ThenBy(g => g.Key.Item2); + foreach (var closeMatch in groupedByStartDistance) + { + var groupedByLength = closeMatch.Select(d => Tuple.Create(d.Item1, Tuple.Create(Math.Abs(d.Item2.EndLine - d.Item2.StartLine), Math.Abs(d.Item2.EndColumn - d.Item2.StartColumn)))) + .OrderBy(d => d.Item2.Item1) + .ThenBy(d => d.Item2.Item2).ToList(); + match = groupedByLength.Select(p => p.Item1).FirstOrDefault(); + break; + } + } _selectedDeclaration = match; } @@ -654,7 +680,20 @@ private static bool IsSelectedDeclaration(QualifiedSelection selection, Declarat private static bool IsSelectedReference(QualifiedSelection selection, IdentifierReference reference) { return reference.QualifiedModuleName.Equals(selection.QualifiedName) - && reference.Selection.ContainsFirstCharacter(selection.Selection); + && reference.BindingSelection.ContainsFirstCharacter(selection.Selection); + } + + public static Selection CreateBindingSelection(ParserRuleContext vbaGrammarContext, ParserRuleContext exprContext) + { + Selection vbaGrammarSelection = vbaGrammarContext.GetSelection(); + Selection exprSelection = exprContext.GetSelection(); + int lineOffset = vbaGrammarSelection.StartLine - 1; + int columnOffset = vbaGrammarSelection.StartColumn - 1; + return new Selection( + exprSelection.StartLine + lineOffset, + exprSelection.StartColumn + columnOffset, + exprSelection.EndLine + lineOffset, + exprSelection.EndColumn + columnOffset); } public void RemoveBuiltInDeclarations(Reference reference) diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index 59c8a86cfd..f65926e3d9 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -1292,32 +1292,6 @@ End Sub Assert.AreEqual(1, usages.Count()); } - [TestMethod] - public void GivenUDTField_NamedAmbiguously_FullyQualifiedMemberAssignmentCallResolvesToUDTMember() - { - var code = @" -Private Type TestModule1 - Foo As Integer -End Type - -Private TestModule1 As TestModule1 - -Public Sub DoSomething() - TestProject1.TestModule1.TestModule1.Foo = 42 -End Sub -"; - var state = Resolve(code); - - var declaration = state.AllUserDeclarations.Single(item => - item.DeclarationType == DeclarationType.UserDefinedTypeMember - && item.IdentifierName == "Foo"); - - var usages = declaration.References.Where(item => - item.ParentScoping.IdentifierName == "DoSomething"); - - Assert.AreEqual(1, usages.Count()); - } - [TestMethod] public void GivenFullyReferencedUDTFieldMemberCall_ProjectParentMember_ResolvesToProject() { From 664989ee6ea68c8be1383e780676d55e061b63b4 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 00:30:14 +0200 Subject: [PATCH 13/72] small fixes --- .../Binding/DefaultBindingContext.cs | 5 + .../Binding/MemberAccessDefaultBinding.cs | 14 +- Rubberduck.Parsing/Grammar/VBAParser.cs | 5863 ++++++++--------- Rubberduck.Parsing/Grammar/VBAParser.g4 | 6 +- .../Grammar/VBAParserBaseListener.cs | 13 + .../Grammar/VBAParserBaseVisitor.cs | 11 + .../Grammar/VBAParserListener.cs | 11 + .../Grammar/VBAParserVisitor.cs | 7 + Rubberduck.Parsing/Rubberduck.Parsing.csproj | 1 + .../Symbols/ClassModuleDeclaration.cs | 11 +- Rubberduck.Parsing/Symbols/Declaration.cs | 4 +- .../Symbols/DeclarationFinder.cs | 6 +- .../Symbols/DeclarationSymbolsListener.cs | 4 + .../Symbols/ExternalProcedureDeclaration.cs | 55 + .../Symbols/IdentifierReferenceResolver.cs | 9 +- .../ReferencedDeclarationsCollector.cs | 2 +- .../MemberAccessDefaultBindingTests.cs | 2 +- .../SimpleNameProcedurePointerBindingTests.cs | 2 +- RubberduckTests/Grammar/ResolverTests.cs | 6 +- RubberduckTests/Grammar/VBAParserTests.cs | 13 - .../Grammar/VBAParserValidityTests.cs | 6 +- 21 files changed, 2996 insertions(+), 3055 deletions(-) create mode 100644 Rubberduck.Parsing/Symbols/ExternalProcedureDeclaration.cs diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index a724fae254..60ff542a26 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -210,6 +210,11 @@ private IExpressionBinding VisitArgumentBinding(Declaration module, Declaration } } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.AddressOfExpressionContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) + { + return _procedurePointerBindingContext.BuildTree(module, parent, expression, withBlockVariable, statementContext); + } + private IExpressionBinding Visit(Declaration module, Declaration parent, VBAExpressionParser.DictionaryAccessExprContext expression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { dynamic lExpression = expression.lExpression(); diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs index dc0e20b036..8d271f84ef 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -82,7 +82,7 @@ public IBoundExpression Resolve() IBoundExpression boundExpression = null; if (_lExpressionBinding != null) { - _lExpression = _lExpressionBinding.Resolve(); + _lExpression = _lExpressionBinding.Resolve(); } if (_lExpression == null) { @@ -156,27 +156,27 @@ expression is classified as an unbound member and has a declared type of Variant return null; } // TODO: DeclarationType UDT Member should actually be Variable? - var udtMember = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.UserDefinedTypeMember); + var udtMember = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, DeclarationType.UserDefinedTypeMember); if (udtMember != null) { return new MemberAccessExpression(udtMember, ExpressionClassification.Variable, _context, _lExpression); } - var variable = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Variable); + var variable = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, DeclarationType.Variable); if (variable != null) { return new MemberAccessExpression(variable, ExpressionClassification.Variable, _context, _lExpression); } - var property = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, _propertySearchType); + var property = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, _propertySearchType); if (property != null) { return new MemberAccessExpression(property, ExpressionClassification.Property, _context, _lExpression); } - var function = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Function); + var function = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, DeclarationType.Function); if (function != null) { return new MemberAccessExpression(function, ExpressionClassification.Function, _context, _lExpression); } - var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, referencedType, _name, DeclarationType.Procedure); + var subroutine = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, DeclarationType.Procedure); if (subroutine != null) { return new MemberAccessExpression(subroutine, ExpressionClassification.Subroutine, _context, _lExpression); @@ -424,7 +424,7 @@ as a value with the same declared type as the enum member. { return null; } - var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, _lExpression.ReferencedDeclaration, _name, DeclarationType.EnumerationMember); + var enumMember = _declarationFinder.FindMemberWithParent(_project, _module, _parent, _lExpression.ReferencedDeclaration, _name, DeclarationType.EnumerationMember); if (enumMember != null) { return new MemberAccessExpression(enumMember, ExpressionClassification.Value, _context, _lExpression); diff --git a/Rubberduck.Parsing/Grammar/VBAParser.cs b/Rubberduck.Parsing/Grammar/VBAParser.cs index 3704da5a93..374fb6a38c 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.cs +++ b/Rubberduck.Parsing/Grammar/VBAParser.cs @@ -122,29 +122,30 @@ public const int RULE_printStmt = 53, RULE_propertyGetStmt = 54, RULE_propertySetStmt = 55, RULE_propertyLetStmt = 56, RULE_putStmt = 57, RULE_raiseEventStmt = 58, RULE_redimStmt = 59, RULE_redimSubStmt = 60, RULE_resetStmt = 61, RULE_resumeStmt = 62, - RULE_returnStmt = 63, RULE_rsetStmt = 64, RULE_seekStmt = 65, RULE_selectCaseStmt = 66, - RULE_sC_Selection = 67, RULE_sC_Case = 68, RULE_sC_Cond = 69, RULE_setStmt = 70, - RULE_subStmt = 71, RULE_subroutineName = 72, RULE_typeStmt = 73, RULE_typeStmt_Element = 74, - RULE_unlockStmt = 75, RULE_valueStmt = 76, RULE_typeOfIsExpression = 77, - RULE_variableStmt = 78, RULE_variableListStmt = 79, RULE_variableSubStmt = 80, - RULE_whileWendStmt = 81, RULE_widthStmt = 82, RULE_withStmt = 83, RULE_withStmtExpression = 84, - RULE_writeStmt = 85, RULE_fileNumber = 86, RULE_explicitCallStmt = 87, - RULE_explicitCallStmtExpression = 88, RULE_implicitCallStmt_InBlock = 89, - RULE_iCS_B_MemberProcedureCall = 90, RULE_iCS_B_ProcedureCall = 91, RULE_implicitCallStmt_InStmt = 92, - RULE_iCS_S_VariableOrProcedureCall = 93, RULE_iCS_S_ProcedureOrArrayCall = 94, - RULE_iCS_S_VariableOrProcedureCallUnrestricted = 95, RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 96, - RULE_iCS_S_MembersCall = 97, RULE_iCS_S_MemberCall = 98, RULE_iCS_S_DictionaryCall = 99, - RULE_argsCall = 100, RULE_argCall = 101, RULE_dictionaryCallStmt = 102, - RULE_argList = 103, RULE_arg = 104, RULE_argDefaultValue = 105, RULE_subscripts = 106, - RULE_subscript = 107, RULE_unrestrictedIdentifier = 108, RULE_identifier = 109, - RULE_asTypeClause = 110, RULE_baseType = 111, RULE_comparisonOperator = 112, - RULE_complexType = 113, RULE_fieldLength = 114, RULE_letterrange = 115, - RULE_lineLabel = 116, RULE_literal = 117, RULE_numberLiteral = 118, RULE_type = 119, - RULE_typeHint = 120, RULE_visibility = 121, RULE_keyword = 122, RULE_markerKeyword = 123, - RULE_statementKeyword = 124, RULE_endOfLine = 125, RULE_endOfStatement = 126, - RULE_remComment = 127, RULE_comment = 128, RULE_annotationList = 129, - RULE_annotation = 130, RULE_annotationName = 131, RULE_annotationArgList = 132, - RULE_annotationArg = 133, RULE_whiteSpace = 134; + RULE_returnStmt = 63, RULE_rsetStmt = 64, RULE_stopStmt = 65, RULE_seekStmt = 66, + RULE_selectCaseStmt = 67, RULE_sC_Selection = 68, RULE_sC_Case = 69, RULE_sC_Cond = 70, + RULE_setStmt = 71, RULE_subStmt = 72, RULE_subroutineName = 73, RULE_typeStmt = 74, + RULE_typeStmt_Element = 75, RULE_unlockStmt = 76, RULE_valueStmt = 77, + RULE_typeOfIsExpression = 78, RULE_variableStmt = 79, RULE_variableListStmt = 80, + RULE_variableSubStmt = 81, RULE_whileWendStmt = 82, RULE_widthStmt = 83, + RULE_withStmt = 84, RULE_withStmtExpression = 85, RULE_writeStmt = 86, + RULE_fileNumber = 87, RULE_explicitCallStmt = 88, RULE_explicitCallStmtExpression = 89, + RULE_implicitCallStmt_InBlock = 90, RULE_iCS_B_MemberProcedureCall = 91, + RULE_iCS_B_ProcedureCall = 92, RULE_implicitCallStmt_InStmt = 93, RULE_iCS_S_VariableOrProcedureCall = 94, + RULE_iCS_S_ProcedureOrArrayCall = 95, RULE_iCS_S_VariableOrProcedureCallUnrestricted = 96, + RULE_iCS_S_ProcedureOrArrayCallUnrestricted = 97, RULE_iCS_S_MembersCall = 98, + RULE_iCS_S_MemberCall = 99, RULE_iCS_S_DictionaryCall = 100, RULE_argsCall = 101, + RULE_argCall = 102, RULE_dictionaryCallStmt = 103, RULE_argList = 104, + RULE_arg = 105, RULE_argDefaultValue = 106, RULE_subscripts = 107, RULE_subscript = 108, + RULE_unrestrictedIdentifier = 109, RULE_identifier = 110, RULE_asTypeClause = 111, + RULE_baseType = 112, RULE_comparisonOperator = 113, RULE_complexType = 114, + RULE_fieldLength = 115, RULE_letterrange = 116, RULE_lineLabel = 117, + RULE_literal = 118, RULE_numberLiteral = 119, RULE_type = 120, RULE_typeHint = 121, + RULE_visibility = 122, RULE_keyword = 123, RULE_markerKeyword = 124, RULE_statementKeyword = 125, + RULE_endOfLine = 126, RULE_endOfStatement = 127, RULE_remComment = 128, + RULE_comment = 129, RULE_annotationList = 130, RULE_annotation = 131, + RULE_annotationName = 132, RULE_annotationArgList = 133, RULE_annotationArg = 134, + RULE_whiteSpace = 135; public static readonly string[] ruleNames = { "startRule", "module", "moduleHeader", "moduleConfig", "moduleConfigElement", "moduleAttributes", "moduleDeclarations", "moduleOption", "moduleDeclarationsElement", @@ -158,23 +159,23 @@ public const int "lsetStmt", "midStmt", "onErrorStmt", "onGoToStmt", "onGoSubStmt", "openStmt", "outputList", "outputList_Expression", "printStmt", "propertyGetStmt", "propertySetStmt", "propertyLetStmt", "putStmt", "raiseEventStmt", "redimStmt", - "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rsetStmt", "seekStmt", - "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "setStmt", "subStmt", - "subroutineName", "typeStmt", "typeStmt_Element", "unlockStmt", "valueStmt", - "typeOfIsExpression", "variableStmt", "variableListStmt", "variableSubStmt", - "whileWendStmt", "widthStmt", "withStmt", "withStmtExpression", "writeStmt", - "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", "implicitCallStmt_InBlock", - "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", "implicitCallStmt_InStmt", - "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", "iCS_S_VariableOrProcedureCallUnrestricted", - "iCS_S_ProcedureOrArrayCallUnrestricted", "iCS_S_MembersCall", "iCS_S_MemberCall", - "iCS_S_DictionaryCall", "argsCall", "argCall", "dictionaryCallStmt", "argList", - "arg", "argDefaultValue", "subscripts", "subscript", "unrestrictedIdentifier", - "identifier", "asTypeClause", "baseType", "comparisonOperator", "complexType", - "fieldLength", "letterrange", "lineLabel", "literal", "numberLiteral", - "type", "typeHint", "visibility", "keyword", "markerKeyword", "statementKeyword", - "endOfLine", "endOfStatement", "remComment", "comment", "annotationList", - "annotation", "annotationName", "annotationArgList", "annotationArg", - "whiteSpace" + "redimSubStmt", "resetStmt", "resumeStmt", "returnStmt", "rsetStmt", "stopStmt", + "seekStmt", "selectCaseStmt", "sC_Selection", "sC_Case", "sC_Cond", "setStmt", + "subStmt", "subroutineName", "typeStmt", "typeStmt_Element", "unlockStmt", + "valueStmt", "typeOfIsExpression", "variableStmt", "variableListStmt", + "variableSubStmt", "whileWendStmt", "widthStmt", "withStmt", "withStmtExpression", + "writeStmt", "fileNumber", "explicitCallStmt", "explicitCallStmtExpression", + "implicitCallStmt_InBlock", "iCS_B_MemberProcedureCall", "iCS_B_ProcedureCall", + "implicitCallStmt_InStmt", "iCS_S_VariableOrProcedureCall", "iCS_S_ProcedureOrArrayCall", + "iCS_S_VariableOrProcedureCallUnrestricted", "iCS_S_ProcedureOrArrayCallUnrestricted", + "iCS_S_MembersCall", "iCS_S_MemberCall", "iCS_S_DictionaryCall", "argsCall", + "argCall", "dictionaryCallStmt", "argList", "arg", "argDefaultValue", + "subscripts", "subscript", "unrestrictedIdentifier", "identifier", "asTypeClause", + "baseType", "comparisonOperator", "complexType", "fieldLength", "letterrange", + "lineLabel", "literal", "numberLiteral", "type", "typeHint", "visibility", + "keyword", "markerKeyword", "statementKeyword", "endOfLine", "endOfStatement", + "remComment", "comment", "annotationList", "annotation", "annotationName", + "annotationArgList", "annotationArg", "whiteSpace" }; public override string GrammarFileName { get { return "VBAParser.g4"; } } @@ -222,8 +223,8 @@ public StartRuleContext startRule() { try { EnterOuterAlt(_localctx, 1); { - State = 270; module(); - State = 271; Match(Eof); + State = 272; module(); + State = 273; Match(Eof); } } catch (RecognitionException re) { @@ -293,65 +294,65 @@ public ModuleContext module() { try { EnterOuterAlt(_localctx, 1); { - State = 274; + State = 276; switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { case 1: { - State = 273; whiteSpace(); + State = 275; whiteSpace(); } break; } - State = 276; endOfStatement(); - State = 280; + State = 278; endOfStatement(); + State = 282; switch ( Interpreter.AdaptivePredict(_input,1,_ctx) ) { case 1: { - State = 277; moduleHeader(); - State = 278; endOfStatement(); + State = 279; moduleHeader(); + State = 280; endOfStatement(); } break; } - State = 283; + State = 285; switch ( Interpreter.AdaptivePredict(_input,2,_ctx) ) { case 1: { - State = 282; moduleConfig(); + State = 284; moduleConfig(); } break; } - State = 285; endOfStatement(); - State = 287; + State = 287; endOfStatement(); + State = 289; switch ( Interpreter.AdaptivePredict(_input,3,_ctx) ) { case 1: { - State = 286; moduleAttributes(); + State = 288; moduleAttributes(); } break; } - State = 289; endOfStatement(); - State = 291; + State = 291; endOfStatement(); + State = 293; switch ( Interpreter.AdaptivePredict(_input,4,_ctx) ) { case 1: { - State = 290; moduleDeclarations(); + State = 292; moduleDeclarations(); } break; } - State = 293; endOfStatement(); - State = 295; + State = 295; endOfStatement(); + State = 297; switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { case 1: { - State = 294; moduleBody(); + State = 296; moduleBody(); } break; } - State = 297; endOfStatement(); - State = 299; + State = 299; endOfStatement(); + State = 301; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 298; whiteSpace(); + State = 300; whiteSpace(); } } @@ -410,26 +411,26 @@ public ModuleHeaderContext moduleHeader() { try { EnterOuterAlt(_localctx, 1); { - State = 301; Match(VERSION); - State = 302; whiteSpace(); - State = 303; numberLiteral(); - State = 305; + State = 303; Match(VERSION); + State = 304; whiteSpace(); + State = 305; numberLiteral(); + State = 307; switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { case 1: { - State = 304; whiteSpace(); + State = 306; whiteSpace(); } break; } - State = 308; + State = 310; switch ( Interpreter.AdaptivePredict(_input,8,_ctx) ) { case 1: { - State = 307; Match(CLASS); + State = 309; Match(CLASS); } break; } - State = 310; endOfStatement(); + State = 312; endOfStatement(); } } catch (RecognitionException re) { @@ -493,28 +494,28 @@ public ModuleConfigContext moduleConfig() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 312; Match(BEGIN); - State = 320; + State = 314; Match(BEGIN); + State = 322; switch ( Interpreter.AdaptivePredict(_input,10,_ctx) ) { case 1: { - State = 313; whiteSpace(); - State = 314; Match(GUIDLITERAL); State = 315; whiteSpace(); - State = 316; unrestrictedIdentifier(); - State = 318; + State = 316; Match(GUIDLITERAL); + State = 317; whiteSpace(); + State = 318; unrestrictedIdentifier(); + State = 320; switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { case 1: { - State = 317; whiteSpace(); + State = 319; whiteSpace(); } break; } } break; } - State = 322; endOfStatement(); - State = 324; + State = 324; endOfStatement(); + State = 326; _errHandler.Sync(this); _alt = 1; do { @@ -522,18 +523,18 @@ public ModuleConfigContext moduleConfig() { case 1: { { - State = 323; moduleConfigElement(); + State = 325; moduleConfigElement(); } } break; default: throw new NoViableAltException(this); } - State = 326; + State = 328; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,11,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 328; Match(END); + State = 330; Match(END); } } catch (RecognitionException re) { @@ -597,47 +598,47 @@ public ModuleConfigElementContext moduleConfigElement() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 330; unrestrictedIdentifier(); - State = 334; + State = 332; unrestrictedIdentifier(); + State = 336; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS || _la==LINE_CONTINUATION) { { { - State = 331; whiteSpace(); + State = 333; whiteSpace(); } } - State = 336; + State = 338; _errHandler.Sync(this); _la = _input.La(1); } - State = 337; Match(EQ); - State = 341; + State = 339; Match(EQ); + State = 343; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,13,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 338; whiteSpace(); + State = 340; whiteSpace(); } } } - State = 343; + State = 345; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,13,_ctx); } - State = 344; valueStmt(0); - State = 347; + State = 346; valueStmt(0); + State = 349; switch ( Interpreter.AdaptivePredict(_input,14,_ctx) ) { case 1: { - State = 345; Match(COLON); - State = 346; numberLiteral(); + State = 347; Match(COLON); + State = 348; numberLiteral(); } break; } - State = 349; endOfStatement(); + State = 351; endOfStatement(); } } catch (RecognitionException re) { @@ -692,7 +693,7 @@ public ModuleAttributesContext moduleAttributes() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 354; + State = 356; _errHandler.Sync(this); _alt = 1; do { @@ -700,15 +701,15 @@ public ModuleAttributesContext moduleAttributes() { case 1: { { - State = 351; attributeStmt(); - State = 352; endOfStatement(); + State = 353; attributeStmt(); + State = 354; endOfStatement(); } } break; default: throw new NoViableAltException(this); } - State = 356; + State = 358; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,15,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -766,24 +767,24 @@ public ModuleDeclarationsContext moduleDeclarations() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 358; moduleDeclarationsElement(); - State = 364; + State = 360; moduleDeclarationsElement(); + State = 366; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 359; endOfStatement(); - State = 360; moduleDeclarationsElement(); + State = 361; endOfStatement(); + State = 362; moduleDeclarationsElement(); } } } - State = 366; + State = 368; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,16,_ctx); } - State = 367; endOfStatement(); + State = 369; endOfStatement(); } } catch (RecognitionException re) { @@ -896,24 +897,24 @@ public ModuleOptionContext moduleOption() { EnterRule(_localctx, 14, RULE_moduleOption); int _la; try { - State = 379; + State = 381; switch (_input.La(1)) { case OPTION_BASE: _localctx = new OptionBaseStmtContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 369; Match(OPTION_BASE); - State = 370; whiteSpace(); - State = 371; numberLiteral(); + State = 371; Match(OPTION_BASE); + State = 372; whiteSpace(); + State = 373; numberLiteral(); } break; case OPTION_COMPARE: _localctx = new OptionCompareStmtContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 373; Match(OPTION_COMPARE); - State = 374; whiteSpace(); - State = 375; + State = 375; Match(OPTION_COMPARE); + State = 376; whiteSpace(); + State = 377; _la = _input.La(1); if ( !(_la==BINARY || _la==DATABASE || _la==TEXT) ) { _errHandler.RecoverInline(this); @@ -925,14 +926,14 @@ public ModuleOptionContext moduleOption() { _localctx = new OptionExplicitStmtContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 377; Match(OPTION_EXPLICIT); + State = 379; Match(OPTION_EXPLICIT); } break; case OPTION_PRIVATE_MODULE: _localctx = new OptionPrivateModuleStmtContext(_localctx); EnterOuterAlt(_localctx, 4); { - State = 378; Match(OPTION_PRIVATE_MODULE); + State = 380; Match(OPTION_PRIVATE_MODULE); } break; default: @@ -1000,61 +1001,61 @@ public ModuleDeclarationsElementContext moduleDeclarationsElement() { ModuleDeclarationsElementContext _localctx = new ModuleDeclarationsElementContext(_ctx, State); EnterRule(_localctx, 16, RULE_moduleDeclarationsElement); try { - State = 389; + State = 391; switch ( Interpreter.AdaptivePredict(_input,18,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 381; declareStmt(); + State = 383; declareStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 382; enumerationStmt(); + State = 384; enumerationStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 383; eventStmt(); + State = 385; eventStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 384; constStmt(); + State = 386; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 385; implementsStmt(); + State = 387; implementsStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 386; variableStmt(); + State = 388; variableStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 387; moduleOption(); + State = 389; moduleOption(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 388; typeStmt(); + State = 390; typeStmt(); } break; } @@ -1111,24 +1112,24 @@ public ModuleBodyContext moduleBody() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 391; moduleBodyElement(); - State = 397; + State = 393; moduleBodyElement(); + State = 399; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 392; endOfStatement(); - State = 393; moduleBodyElement(); + State = 394; endOfStatement(); + State = 395; moduleBodyElement(); } } } - State = 399; + State = 401; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,19,_ctx); } - State = 400; endOfStatement(); + State = 402; endOfStatement(); } } catch (RecognitionException re) { @@ -1183,40 +1184,40 @@ public ModuleBodyElementContext moduleBodyElement() { ModuleBodyElementContext _localctx = new ModuleBodyElementContext(_ctx, State); EnterRule(_localctx, 20, RULE_moduleBodyElement); try { - State = 407; + State = 409; switch ( Interpreter.AdaptivePredict(_input,20,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 402; functionStmt(); + State = 404; functionStmt(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 403; propertyGetStmt(); + State = 405; propertyGetStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 404; propertySetStmt(); + State = 406; propertySetStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 405; propertyLetStmt(); + State = 407; propertyLetStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 406; subStmt(); + State = 408; subStmt(); } break; } @@ -1283,56 +1284,56 @@ public AttributeStmtContext attributeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 409; Match(ATTRIBUTE); - State = 410; whiteSpace(); - State = 411; attributeName(); - State = 413; + State = 411; Match(ATTRIBUTE); + State = 412; whiteSpace(); + State = 413; attributeName(); + State = 415; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 412; whiteSpace(); + State = 414; whiteSpace(); } } - State = 415; Match(EQ); - State = 417; + State = 417; Match(EQ); + State = 419; switch ( Interpreter.AdaptivePredict(_input,22,_ctx) ) { case 1: { - State = 416; whiteSpace(); + State = 418; whiteSpace(); } break; } - State = 419; attributeValue(); - State = 430; + State = 421; attributeValue(); + State = 432; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 421; + State = 423; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 420; whiteSpace(); + State = 422; whiteSpace(); } } - State = 423; Match(COMMA); - State = 425; + State = 425; Match(COMMA); + State = 427; switch ( Interpreter.AdaptivePredict(_input,24,_ctx) ) { case 1: { - State = 424; whiteSpace(); + State = 426; whiteSpace(); } break; } - State = 427; attributeValue(); + State = 429; attributeValue(); } } } - State = 432; + State = 434; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,25,_ctx); } @@ -1380,7 +1381,7 @@ public AttributeNameContext attributeName() { try { EnterOuterAlt(_localctx, 1); { - State = 433; implicitCallStmt_InStmt(); + State = 435; implicitCallStmt_InStmt(); } } catch (RecognitionException re) { @@ -1425,7 +1426,7 @@ public AttributeValueContext attributeValue() { try { EnterOuterAlt(_localctx, 1); { - State = 435; valueStmt(0); + State = 437; valueStmt(0); } } catch (RecognitionException re) { @@ -1480,24 +1481,24 @@ public BlockContext block() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 437; blockStmt(); - State = 443; + State = 439; blockStmt(); + State = 445; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 438; endOfStatement(); - State = 439; blockStmt(); + State = 440; endOfStatement(); + State = 441; blockStmt(); } } } - State = 445; + State = 447; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,26,_ctx); } - State = 446; endOfStatement(); + State = 448; endOfStatement(); } } catch (RecognitionException re) { @@ -1647,6 +1648,9 @@ public WhileWendStmtContext whileWendStmt() { public UnlockStmtContext unlockStmt() { return GetRuleContext(0); } + public StopStmtContext stopStmt() { + return GetRuleContext(0); + } public BlockStmtContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -1672,320 +1676,327 @@ public BlockStmtContext blockStmt() { BlockStmtContext _localctx = new BlockStmtContext(_ctx, State); EnterRule(_localctx, 30, RULE_blockStmt); try { - State = 493; + State = 496; switch ( Interpreter.AdaptivePredict(_input,27,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 448; lineLabel(); + State = 450; lineLabel(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 449; attributeStmt(); + State = 451; attributeStmt(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 450; closeStmt(); + State = 452; closeStmt(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 451; constStmt(); + State = 453; constStmt(); } break; case 5: EnterOuterAlt(_localctx, 5); { - State = 452; deftypeStmt(); + State = 454; deftypeStmt(); } break; case 6: EnterOuterAlt(_localctx, 6); { - State = 453; doLoopStmt(); + State = 455; doLoopStmt(); } break; case 7: EnterOuterAlt(_localctx, 7); { - State = 454; eraseStmt(); + State = 456; eraseStmt(); } break; case 8: EnterOuterAlt(_localctx, 8); { - State = 455; errorStmt(); + State = 457; errorStmt(); } break; case 9: EnterOuterAlt(_localctx, 9); { - State = 456; exitStmt(); + State = 458; exitStmt(); } break; case 10: EnterOuterAlt(_localctx, 10); { - State = 457; explicitCallStmt(); + State = 459; explicitCallStmt(); } break; case 11: EnterOuterAlt(_localctx, 11); { - State = 458; forEachStmt(); + State = 460; forEachStmt(); } break; case 12: EnterOuterAlt(_localctx, 12); { - State = 459; forNextStmt(); + State = 461; forNextStmt(); } break; case 13: EnterOuterAlt(_localctx, 13); { - State = 460; getStmt(); + State = 462; getStmt(); } break; case 14: EnterOuterAlt(_localctx, 14); { - State = 461; goSubStmt(); + State = 463; goSubStmt(); } break; case 15: EnterOuterAlt(_localctx, 15); { - State = 462; goToStmt(); + State = 464; goToStmt(); } break; case 16: EnterOuterAlt(_localctx, 16); { - State = 463; ifThenElseStmt(); + State = 465; ifThenElseStmt(); } break; case 17: EnterOuterAlt(_localctx, 17); { - State = 464; implementsStmt(); + State = 466; implementsStmt(); } break; case 18: EnterOuterAlt(_localctx, 18); { - State = 465; inputStmt(); + State = 467; inputStmt(); } break; case 19: EnterOuterAlt(_localctx, 19); { - State = 466; letStmt(); + State = 468; letStmt(); } break; case 20: EnterOuterAlt(_localctx, 20); { - State = 467; lineInputStmt(); + State = 469; lineInputStmt(); } break; case 21: EnterOuterAlt(_localctx, 21); { - State = 468; lockStmt(); + State = 470; lockStmt(); } break; case 22: EnterOuterAlt(_localctx, 22); { - State = 469; lsetStmt(); + State = 471; lsetStmt(); } break; case 23: EnterOuterAlt(_localctx, 23); { - State = 470; midStmt(); + State = 472; midStmt(); } break; case 24: EnterOuterAlt(_localctx, 24); { - State = 471; onErrorStmt(); + State = 473; onErrorStmt(); } break; case 25: EnterOuterAlt(_localctx, 25); { - State = 472; onGoToStmt(); + State = 474; onGoToStmt(); } break; case 26: EnterOuterAlt(_localctx, 26); { - State = 473; onGoSubStmt(); + State = 475; onGoSubStmt(); } break; case 27: EnterOuterAlt(_localctx, 27); { - State = 474; openStmt(); + State = 476; openStmt(); } break; case 28: EnterOuterAlt(_localctx, 28); { - State = 475; printStmt(); + State = 477; printStmt(); } break; case 29: EnterOuterAlt(_localctx, 29); { - State = 476; putStmt(); + State = 478; putStmt(); } break; case 30: EnterOuterAlt(_localctx, 30); { - State = 477; raiseEventStmt(); + State = 479; raiseEventStmt(); } break; case 31: EnterOuterAlt(_localctx, 31); { - State = 478; redimStmt(); + State = 480; redimStmt(); } break; case 32: EnterOuterAlt(_localctx, 32); { - State = 479; resetStmt(); + State = 481; resetStmt(); } break; case 33: EnterOuterAlt(_localctx, 33); { - State = 480; resumeStmt(); + State = 482; resumeStmt(); } break; case 34: EnterOuterAlt(_localctx, 34); { - State = 481; returnStmt(); + State = 483; returnStmt(); } break; case 35: EnterOuterAlt(_localctx, 35); { - State = 482; rsetStmt(); + State = 484; rsetStmt(); } break; case 36: EnterOuterAlt(_localctx, 36); { - State = 483; seekStmt(); + State = 485; seekStmt(); } break; case 37: EnterOuterAlt(_localctx, 37); { - State = 484; selectCaseStmt(); + State = 486; selectCaseStmt(); } break; case 38: EnterOuterAlt(_localctx, 38); { - State = 485; setStmt(); + State = 487; setStmt(); } break; case 39: EnterOuterAlt(_localctx, 39); { - State = 486; unlockStmt(); + State = 488; stopStmt(); } break; case 40: EnterOuterAlt(_localctx, 40); { - State = 487; variableStmt(); + State = 489; unlockStmt(); } break; case 41: EnterOuterAlt(_localctx, 41); { - State = 488; whileWendStmt(); + State = 490; variableStmt(); } break; case 42: EnterOuterAlt(_localctx, 42); { - State = 489; widthStmt(); + State = 491; whileWendStmt(); } break; case 43: EnterOuterAlt(_localctx, 43); { - State = 490; withStmt(); + State = 492; widthStmt(); } break; case 44: EnterOuterAlt(_localctx, 44); { - State = 491; writeStmt(); + State = 493; withStmt(); } break; case 45: EnterOuterAlt(_localctx, 45); { - State = 492; implicitCallStmt_InBlock(); + State = 494; writeStmt(); + } + break; + + case 46: + EnterOuterAlt(_localctx, 46); + { + State = 495; implicitCallStmt_InBlock(); } break; } @@ -2048,42 +2059,42 @@ public CloseStmtContext closeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 495; Match(CLOSE); - State = 511; + State = 498; Match(CLOSE); + State = 514; switch ( Interpreter.AdaptivePredict(_input,31,_ctx) ) { case 1: { - State = 496; whiteSpace(); - State = 497; fileNumber(); - State = 508; + State = 499; whiteSpace(); + State = 500; fileNumber(); + State = 511; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,30,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 499; + State = 502; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 498; whiteSpace(); + State = 501; whiteSpace(); } } - State = 501; Match(COMMA); - State = 503; + State = 504; Match(COMMA); + State = 506; switch ( Interpreter.AdaptivePredict(_input,29,_ctx) ) { case 1: { - State = 502; whiteSpace(); + State = 505; whiteSpace(); } break; } - State = 505; fileNumber(); + State = 508; fileNumber(); } } } - State = 510; + State = 513; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,30,_ctx); } @@ -2153,47 +2164,47 @@ public ConstStmtContext constStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 516; + State = 519; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 513; visibility(); - State = 514; whiteSpace(); + State = 516; visibility(); + State = 517; whiteSpace(); } } - State = 518; Match(CONST); - State = 519; whiteSpace(); - State = 520; constSubStmt(); - State = 531; + State = 521; Match(CONST); + State = 522; whiteSpace(); + State = 523; constSubStmt(); + State = 534; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,35,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 522; + State = 525; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 521; whiteSpace(); + State = 524; whiteSpace(); } } - State = 524; Match(COMMA); - State = 526; + State = 527; Match(COMMA); + State = 529; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 525; whiteSpace(); + State = 528; whiteSpace(); } } - State = 528; constSubStmt(); + State = 531; constSubStmt(); } } } - State = 533; + State = 536; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,35,_ctx); } @@ -2258,42 +2269,42 @@ public ConstSubStmtContext constSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 534; identifier(); - State = 536; + State = 537; identifier(); + State = 539; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 535; typeHint(); + State = 538; typeHint(); } } - State = 541; + State = 544; switch ( Interpreter.AdaptivePredict(_input,37,_ctx) ) { case 1: { - State = 538; whiteSpace(); - State = 539; asTypeClause(); + State = 541; whiteSpace(); + State = 542; asTypeClause(); } break; } - State = 544; + State = 547; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 543; whiteSpace(); + State = 546; whiteSpace(); } } - State = 546; Match(EQ); - State = 548; + State = 549; Match(EQ); + State = 551; switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { case 1: { - State = 547; whiteSpace(); + State = 550; whiteSpace(); } break; } - State = 550; valueStmt(0); + State = 553; valueStmt(0); } } catch (RecognitionException re) { @@ -2370,37 +2381,37 @@ public DeclareStmtContext declareStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 555; + State = 558; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 552; visibility(); - State = 553; whiteSpace(); + State = 555; visibility(); + State = 556; whiteSpace(); } } - State = 557; Match(DECLARE); - State = 558; whiteSpace(); - State = 561; + State = 560; Match(DECLARE); + State = 561; whiteSpace(); + State = 564; _la = _input.La(1); if (_la==PTRSAFE) { { - State = 559; Match(PTRSAFE); - State = 560; whiteSpace(); + State = 562; Match(PTRSAFE); + State = 563; whiteSpace(); } } - State = 568; + State = 571; switch (_input.La(1)) { case FUNCTION: { { - State = 563; Match(FUNCTION); - State = 565; + State = 566; Match(FUNCTION); + State = 568; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 564; typeHint(); + State = 567; typeHint(); } } @@ -2409,59 +2420,59 @@ public DeclareStmtContext declareStmt() { break; case SUB: { - State = 567; Match(SUB); + State = 570; Match(SUB); } break; default: throw new NoViableAltException(this); } - State = 570; whiteSpace(); - State = 571; identifier(); - State = 573; + State = 573; whiteSpace(); + State = 574; identifier(); + State = 576; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 572; typeHint(); + State = 575; typeHint(); } } - State = 575; whiteSpace(); - State = 576; Match(LIB); - State = 577; whiteSpace(); - State = 578; Match(STRINGLITERAL); - State = 584; + State = 578; whiteSpace(); + State = 579; Match(LIB); + State = 580; whiteSpace(); + State = 581; Match(STRINGLITERAL); + State = 587; switch ( Interpreter.AdaptivePredict(_input,45,_ctx) ) { case 1: { - State = 579; whiteSpace(); - State = 580; Match(ALIAS); - State = 581; whiteSpace(); - State = 582; Match(STRINGLITERAL); + State = 582; whiteSpace(); + State = 583; Match(ALIAS); + State = 584; whiteSpace(); + State = 585; Match(STRINGLITERAL); } break; } - State = 590; + State = 593; switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { case 1: { - State = 587; + State = 590; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 586; whiteSpace(); + State = 589; whiteSpace(); } } - State = 589; argList(); + State = 592; argList(); } break; } - State = 595; + State = 598; switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { case 1: { - State = 592; whiteSpace(); - State = 593; asTypeClause(); + State = 595; whiteSpace(); + State = 596; asTypeClause(); } break; } @@ -2537,43 +2548,43 @@ public DeftypeStmtContext deftypeStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 597; + State = 600; _la = _input.La(1); if ( !(((((_la - 70)) & ~0x3f) == 0 && ((1L << (_la - 70)) & ((1L << (DEFBOOL - 70)) | (1L << (DEFBYTE - 70)) | (1L << (DEFDATE - 70)) | (1L << (DEFDBL - 70)) | (1L << (DEFCUR - 70)) | (1L << (DEFINT - 70)) | (1L << (DEFLNG - 70)) | (1L << (DEFLNGLNG - 70)) | (1L << (DEFLNGPTR - 70)) | (1L << (DEFOBJ - 70)) | (1L << (DEFSNG - 70)) | (1L << (DEFSTR - 70)) | (1L << (DEFVAR - 70)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 598; whiteSpace(); - State = 599; letterrange(); - State = 610; + State = 601; whiteSpace(); + State = 602; letterrange(); + State = 613; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,51,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 601; + State = 604; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 600; whiteSpace(); + State = 603; whiteSpace(); } } - State = 603; Match(COMMA); - State = 605; + State = 606; Match(COMMA); + State = 608; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 604; whiteSpace(); + State = 607; whiteSpace(); } } - State = 607; letterrange(); + State = 610; letterrange(); } } } - State = 612; + State = 615; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,51,_ctx); } @@ -2636,74 +2647,74 @@ public DoLoopStmtContext doLoopStmt() { EnterRule(_localctx, 42, RULE_doLoopStmt); int _la; try { - State = 642; + State = 645; switch ( Interpreter.AdaptivePredict(_input,55,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 613; Match(DO); - State = 614; endOfStatement(); - State = 616; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 616; Match(DO); + State = 617; endOfStatement(); + State = 619; + switch ( Interpreter.AdaptivePredict(_input,52,_ctx) ) { + case 1: { - State = 615; block(); + State = 618; block(); } + break; } - - State = 618; Match(LOOP); + State = 621; Match(LOOP); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 620; Match(DO); - State = 621; whiteSpace(); - State = 622; + State = 623; Match(DO); + State = 624; whiteSpace(); + State = 625; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 623; whiteSpace(); - State = 624; valueStmt(0); - State = 625; endOfStatement(); - State = 627; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 626; whiteSpace(); + State = 627; valueStmt(0); + State = 628; endOfStatement(); + State = 630; + switch ( Interpreter.AdaptivePredict(_input,53,_ctx) ) { + case 1: { - State = 626; block(); + State = 629; block(); } + break; } - - State = 629; Match(LOOP); + State = 632; Match(LOOP); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 631; Match(DO); - State = 632; endOfStatement(); - State = 634; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 634; Match(DO); + State = 635; endOfStatement(); + State = 637; + switch ( Interpreter.AdaptivePredict(_input,54,_ctx) ) { + case 1: { - State = 633; block(); + State = 636; block(); } + break; } - - State = 636; Match(LOOP); - State = 637; whiteSpace(); - State = 638; + State = 639; Match(LOOP); + State = 640; whiteSpace(); + State = 641; _la = _input.La(1); if ( !(_la==UNTIL || _la==WHILE) ) { _errHandler.RecoverInline(this); } Consume(); - State = 639; whiteSpace(); - State = 640; valueStmt(0); + State = 642; whiteSpace(); + State = 643; valueStmt(0); } break; } @@ -2771,33 +2782,33 @@ public EnumerationStmtContext enumerationStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 647; + State = 650; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 644; visibility(); - State = 645; whiteSpace(); + State = 647; visibility(); + State = 648; whiteSpace(); } } - State = 649; Match(ENUM); - State = 650; whiteSpace(); - State = 651; identifier(); - State = 652; endOfStatement(); - State = 656; + State = 652; Match(ENUM); + State = 653; whiteSpace(); + State = 654; identifier(); + State = 655; endOfStatement(); + State = 659; _errHandler.Sync(this); _la = _input.La(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 653; enumerationStmt_Constant(); + State = 656; enumerationStmt_Constant(); } } - State = 658; + State = 661; _errHandler.Sync(this); _la = _input.La(1); } - State = 659; Match(END_ENUM); + State = 662; Match(END_ENUM); } } catch (RecognitionException re) { @@ -2856,33 +2867,33 @@ public EnumerationStmt_ConstantContext enumerationStmt_Constant() { try { EnterOuterAlt(_localctx, 1); { - State = 661; identifier(); - State = 670; + State = 664; identifier(); + State = 673; switch ( Interpreter.AdaptivePredict(_input,60,_ctx) ) { case 1: { - State = 663; + State = 666; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 662; whiteSpace(); + State = 665; whiteSpace(); } } - State = 665; Match(EQ); - State = 667; + State = 668; Match(EQ); + State = 670; switch ( Interpreter.AdaptivePredict(_input,59,_ctx) ) { case 1: { - State = 666; whiteSpace(); + State = 669; whiteSpace(); } break; } - State = 669; valueStmt(0); + State = 672; valueStmt(0); } break; } - State = 672; endOfStatement(); + State = 675; endOfStatement(); } } catch (RecognitionException re) { @@ -2943,38 +2954,38 @@ public EraseStmtContext eraseStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 674; Match(ERASE); - State = 675; whiteSpace(); - State = 676; valueStmt(0); - State = 687; + State = 677; Match(ERASE); + State = 678; whiteSpace(); + State = 679; valueStmt(0); + State = 690; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 678; + State = 681; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 677; whiteSpace(); + State = 680; whiteSpace(); } } - State = 680; Match(COMMA); - State = 682; + State = 683; Match(COMMA); + State = 685; switch ( Interpreter.AdaptivePredict(_input,62,_ctx) ) { case 1: { - State = 681; whiteSpace(); + State = 684; whiteSpace(); } break; } - State = 684; valueStmt(0); + State = 687; valueStmt(0); } } } - State = 689; + State = 692; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,63,_ctx); } @@ -3026,9 +3037,9 @@ public ErrorStmtContext errorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 690; Match(ERROR); - State = 691; whiteSpace(); - State = 692; valueStmt(0); + State = 693; Match(ERROR); + State = 694; whiteSpace(); + State = 695; valueStmt(0); } } catch (RecognitionException re) { @@ -3087,27 +3098,27 @@ public EventStmtContext eventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 697; + State = 700; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 694; visibility(); - State = 695; whiteSpace(); + State = 697; visibility(); + State = 698; whiteSpace(); } } - State = 699; Match(EVENT); - State = 700; whiteSpace(); - State = 701; identifier(); - State = 703; + State = 702; Match(EVENT); + State = 703; whiteSpace(); + State = 704; identifier(); + State = 706; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 702; whiteSpace(); + State = 705; whiteSpace(); } } - State = 705; argList(); + State = 708; argList(); } } catch (RecognitionException re) { @@ -3155,7 +3166,7 @@ public ExitStmtContext exitStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 707; + State = 710; _la = _input.La(1); if ( !(((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & ((1L << (EXIT_DO - 104)) | (1L << (EXIT_FOR - 104)) | (1L << (EXIT_FUNCTION - 104)) | (1L << (EXIT_PROPERTY - 104)) | (1L << (EXIT_SUB - 104)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -3221,35 +3232,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { public ForEachStmtContext forEachStmt() { ForEachStmtContext _localctx = new ForEachStmtContext(_ctx, State); EnterRule(_localctx, 56, RULE_forEachStmt); - int _la; try { EnterOuterAlt(_localctx, 1); { - State = 709; Match(FOR); - State = 710; whiteSpace(); - State = 711; Match(EACH); - State = 712; whiteSpace(); - State = 713; valueStmt(0); - State = 714; whiteSpace(); - State = 715; Match(IN); - State = 716; whiteSpace(); - State = 717; valueStmt(0); - State = 718; endOfStatement(); - State = 720; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 712; Match(FOR); + State = 713; whiteSpace(); + State = 714; Match(EACH); + State = 715; whiteSpace(); + State = 716; valueStmt(0); + State = 717; whiteSpace(); + State = 718; Match(IN); + State = 719; whiteSpace(); + State = 720; valueStmt(0); + State = 721; endOfStatement(); + State = 723; + switch ( Interpreter.AdaptivePredict(_input,66,_ctx) ) { + case 1: { - State = 719; block(); + State = 722; block(); } + break; } - - State = 722; Match(NEXT); - State = 726; + State = 725; Match(NEXT); + State = 729; switch ( Interpreter.AdaptivePredict(_input,67,_ctx) ) { case 1: { - State = 723; whiteSpace(); - State = 724; valueStmt(0); + State = 726; whiteSpace(); + State = 727; valueStmt(0); } break; } @@ -3318,58 +3328,58 @@ public ForNextStmtContext forNextStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 728; Match(FOR); - State = 729; whiteSpace(); - State = 730; valueStmt(0); - State = 732; + State = 731; Match(FOR); + State = 732; whiteSpace(); + State = 733; valueStmt(0); + State = 735; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 731; whiteSpace(); + State = 734; whiteSpace(); } } - State = 734; Match(EQ); - State = 736; + State = 737; Match(EQ); + State = 739; switch ( Interpreter.AdaptivePredict(_input,69,_ctx) ) { case 1: { - State = 735; whiteSpace(); + State = 738; whiteSpace(); } break; } - State = 738; valueStmt(0); - State = 739; whiteSpace(); - State = 740; Match(TO); - State = 741; whiteSpace(); - State = 742; valueStmt(0); - State = 748; + State = 741; valueStmt(0); + State = 742; whiteSpace(); + State = 743; Match(TO); + State = 744; whiteSpace(); + State = 745; valueStmt(0); + State = 751; switch ( Interpreter.AdaptivePredict(_input,70,_ctx) ) { case 1: { - State = 743; whiteSpace(); - State = 744; Match(STEP); - State = 745; whiteSpace(); - State = 746; valueStmt(0); + State = 746; whiteSpace(); + State = 747; Match(STEP); + State = 748; whiteSpace(); + State = 749; valueStmt(0); } break; } - State = 750; endOfStatement(); - State = 752; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 753; endOfStatement(); + State = 755; + switch ( Interpreter.AdaptivePredict(_input,71,_ctx) ) { + case 1: { - State = 751; block(); + State = 754; block(); } + break; } - - State = 754; Match(NEXT); - State = 758; + State = 757; Match(NEXT); + State = 761; switch ( Interpreter.AdaptivePredict(_input,72,_ctx) ) { case 1: { - State = 755; whiteSpace(); - State = 756; valueStmt(0); + State = 758; whiteSpace(); + State = 759; valueStmt(0); } break; } @@ -3445,84 +3455,84 @@ public FunctionStmtContext functionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 763; + State = 766; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 760; visibility(); - State = 761; whiteSpace(); + State = 763; visibility(); + State = 764; whiteSpace(); } } - State = 767; + State = 770; _la = _input.La(1); if (_la==STATIC) { { - State = 765; Match(STATIC); - State = 766; whiteSpace(); + State = 768; Match(STATIC); + State = 769; whiteSpace(); } } - State = 769; Match(FUNCTION); - State = 771; + State = 772; Match(FUNCTION); + State = 774; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 770; whiteSpace(); + State = 773; whiteSpace(); } } - State = 773; functionName(); - State = 775; + State = 776; functionName(); + State = 778; switch ( Interpreter.AdaptivePredict(_input,76,_ctx) ) { case 1: { - State = 774; typeHint(); + State = 777; typeHint(); } break; } - State = 781; + State = 784; switch ( Interpreter.AdaptivePredict(_input,78,_ctx) ) { case 1: { - State = 778; + State = 781; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 777; whiteSpace(); + State = 780; whiteSpace(); } } - State = 780; argList(); + State = 783; argList(); } break; } - State = 787; + State = 790; switch ( Interpreter.AdaptivePredict(_input,80,_ctx) ) { case 1: { - State = 784; + State = 787; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 783; whiteSpace(); + State = 786; whiteSpace(); } } - State = 786; asTypeClause(); + State = 789; asTypeClause(); } break; } - State = 789; endOfStatement(); - State = 791; + State = 792; endOfStatement(); + State = 794; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 790; block(); + State = 793; block(); } } - State = 793; Match(END_FUNCTION); + State = 796; Match(END_FUNCTION); } } catch (RecognitionException re) { @@ -3567,7 +3577,7 @@ public FunctionNameContext functionName() { try { EnterOuterAlt(_localctx, 1); { - State = 795; identifier(); + State = 798; identifier(); } } catch (RecognitionException re) { @@ -3630,52 +3640,52 @@ public GetStmtContext getStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 797; Match(GET); - State = 798; whiteSpace(); - State = 799; fileNumber(); - State = 801; + State = 800; Match(GET); + State = 801; whiteSpace(); + State = 802; fileNumber(); + State = 804; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 800; whiteSpace(); + State = 803; whiteSpace(); } } - State = 803; Match(COMMA); - State = 805; + State = 806; Match(COMMA); + State = 808; switch ( Interpreter.AdaptivePredict(_input,83,_ctx) ) { case 1: { - State = 804; whiteSpace(); + State = 807; whiteSpace(); } break; } - State = 808; + State = 811; switch ( Interpreter.AdaptivePredict(_input,84,_ctx) ) { case 1: { - State = 807; valueStmt(0); + State = 810; valueStmt(0); } break; } - State = 811; + State = 814; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 810; whiteSpace(); + State = 813; whiteSpace(); } } - State = 813; Match(COMMA); - State = 815; + State = 816; Match(COMMA); + State = 818; switch ( Interpreter.AdaptivePredict(_input,86,_ctx) ) { case 1: { - State = 814; whiteSpace(); + State = 817; whiteSpace(); } break; } - State = 817; valueStmt(0); + State = 820; valueStmt(0); } } catch (RecognitionException re) { @@ -3724,9 +3734,9 @@ public GoSubStmtContext goSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 819; Match(GOSUB); - State = 820; whiteSpace(); - State = 821; valueStmt(0); + State = 822; Match(GOSUB); + State = 823; whiteSpace(); + State = 824; valueStmt(0); } } catch (RecognitionException re) { @@ -3775,9 +3785,9 @@ public GoToStmtContext goToStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 823; Match(GOTO); - State = 824; whiteSpace(); - State = 825; valueStmt(0); + State = 826; Match(GOTO); + State = 827; whiteSpace(); + State = 828; valueStmt(0); } } catch (RecognitionException re) { @@ -3873,27 +3883,27 @@ public IfThenElseStmtContext ifThenElseStmt() { EnterRule(_localctx, 70, RULE_ifThenElseStmt); int _la; try { - State = 853; + State = 856; switch ( Interpreter.AdaptivePredict(_input,90,_ctx) ) { case 1: _localctx = new InlineIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 827; Match(IF); - State = 828; whiteSpace(); - State = 829; ifConditionStmt(); - State = 830; whiteSpace(); - State = 831; Match(THEN); - State = 832; whiteSpace(); - State = 833; blockStmt(); - State = 839; + State = 830; Match(IF); + State = 831; whiteSpace(); + State = 832; ifConditionStmt(); + State = 833; whiteSpace(); + State = 834; Match(THEN); + State = 835; whiteSpace(); + State = 836; blockStmt(); + State = 842; switch ( Interpreter.AdaptivePredict(_input,87,_ctx) ) { case 1: { - State = 834; whiteSpace(); - State = 835; Match(ELSE); - State = 836; whiteSpace(); - State = 837; blockStmt(); + State = 837; whiteSpace(); + State = 838; Match(ELSE); + State = 839; whiteSpace(); + State = 840; blockStmt(); } break; } @@ -3904,29 +3914,29 @@ public IfThenElseStmtContext ifThenElseStmt() { _localctx = new BlockIfThenElseContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 841; ifBlockStmt(); - State = 845; + State = 844; ifBlockStmt(); + State = 848; _errHandler.Sync(this); _la = _input.La(1); while (_la==ELSEIF) { { { - State = 842; ifElseIfBlockStmt(); + State = 845; ifElseIfBlockStmt(); } } - State = 847; + State = 850; _errHandler.Sync(this); _la = _input.La(1); } - State = 849; + State = 852; _la = _input.La(1); if (_la==ELSE) { { - State = 848; ifElseBlockStmt(); + State = 851; ifElseBlockStmt(); } } - State = 851; Match(END_IF); + State = 854; Match(END_IF); } break; } @@ -3987,17 +3997,17 @@ public IfBlockStmtContext ifBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 855; Match(IF); - State = 856; whiteSpace(); - State = 857; ifConditionStmt(); - State = 858; whiteSpace(); - State = 859; Match(THEN); - State = 860; endOfStatement(); - State = 862; + State = 858; Match(IF); + State = 859; whiteSpace(); + State = 860; ifConditionStmt(); + State = 861; whiteSpace(); + State = 862; Match(THEN); + State = 863; endOfStatement(); + State = 865; switch ( Interpreter.AdaptivePredict(_input,91,_ctx) ) { case 1: { - State = 861; block(); + State = 864; block(); } break; } @@ -4045,7 +4055,7 @@ public IfConditionStmtContext ifConditionStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 864; valueStmt(0); + State = 867; valueStmt(0); } } catch (RecognitionException re) { @@ -4104,17 +4114,17 @@ public IfElseIfBlockStmtContext ifElseIfBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 866; Match(ELSEIF); - State = 867; whiteSpace(); - State = 868; ifConditionStmt(); - State = 869; whiteSpace(); - State = 870; Match(THEN); - State = 871; endOfStatement(); - State = 873; + State = 869; Match(ELSEIF); + State = 870; whiteSpace(); + State = 871; ifConditionStmt(); + State = 872; whiteSpace(); + State = 873; Match(THEN); + State = 874; endOfStatement(); + State = 876; switch ( Interpreter.AdaptivePredict(_input,92,_ctx) ) { case 1: { - State = 872; block(); + State = 875; block(); } break; } @@ -4166,13 +4176,13 @@ public IfElseBlockStmtContext ifElseBlockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 875; Match(ELSE); - State = 876; endOfStatement(); - State = 878; + State = 878; Match(ELSE); + State = 879; endOfStatement(); + State = 881; switch ( Interpreter.AdaptivePredict(_input,93,_ctx) ) { case 1: { - State = 877; block(); + State = 880; block(); } break; } @@ -4224,9 +4234,9 @@ public ImplementsStmtContext implementsStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 880; Match(IMPLEMENTS); - State = 881; whiteSpace(); - State = 882; valueStmt(0); + State = 883; Match(IMPLEMENTS); + State = 884; whiteSpace(); + State = 885; valueStmt(0); } } catch (RecognitionException re) { @@ -4290,10 +4300,10 @@ public InputStmtContext inputStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 884; Match(INPUT); - State = 885; whiteSpace(); - State = 886; fileNumber(); - State = 895; + State = 887; Match(INPUT); + State = 888; whiteSpace(); + State = 889; fileNumber(); + State = 898; _errHandler.Sync(this); _alt = 1; do { @@ -4301,31 +4311,31 @@ public InputStmtContext inputStmt() { case 1: { { - State = 888; + State = 891; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 887; whiteSpace(); + State = 890; whiteSpace(); } } - State = 890; Match(COMMA); - State = 892; + State = 893; Match(COMMA); + State = 895; switch ( Interpreter.AdaptivePredict(_input,95,_ctx) ) { case 1: { - State = 891; whiteSpace(); + State = 894; whiteSpace(); } break; } - State = 894; valueStmt(0); + State = 897; valueStmt(0); } } break; default: throw new NoViableAltException(this); } - State = 897; + State = 900; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,96,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -4385,34 +4395,34 @@ public LetStmtContext letStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 901; - _la = _input.La(1); - if (_la==LET) { + State = 904; + switch ( Interpreter.AdaptivePredict(_input,97,_ctx) ) { + case 1: { - State = 899; Match(LET); - State = 900; whiteSpace(); + State = 902; Match(LET); + State = 903; whiteSpace(); } + break; } - - State = 903; valueStmt(0); - State = 905; + State = 906; valueStmt(0); + State = 908; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 904; whiteSpace(); + State = 907; whiteSpace(); } } - State = 907; Match(EQ); - State = 909; + State = 910; Match(EQ); + State = 912; switch ( Interpreter.AdaptivePredict(_input,99,_ctx) ) { case 1: { - State = 908; whiteSpace(); + State = 911; whiteSpace(); } break; } - State = 911; valueStmt(0); + State = 914; valueStmt(0); } } catch (RecognitionException re) { @@ -4469,27 +4479,27 @@ public LineInputStmtContext lineInputStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 913; Match(LINE_INPUT); - State = 914; whiteSpace(); - State = 915; fileNumber(); - State = 917; + State = 916; Match(LINE_INPUT); + State = 917; whiteSpace(); + State = 918; fileNumber(); + State = 920; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 916; whiteSpace(); + State = 919; whiteSpace(); } } - State = 919; Match(COMMA); - State = 921; + State = 922; Match(COMMA); + State = 924; switch ( Interpreter.AdaptivePredict(_input,101,_ctx) ) { case 1: { - State = 920; whiteSpace(); + State = 923; whiteSpace(); } break; } - State = 923; valueStmt(0); + State = 926; valueStmt(0); } } catch (RecognitionException re) { @@ -4547,39 +4557,39 @@ public LockStmtContext lockStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 925; Match(LOCK); - State = 926; whiteSpace(); - State = 927; valueStmt(0); - State = 943; + State = 928; Match(LOCK); + State = 929; whiteSpace(); + State = 930; valueStmt(0); + State = 946; switch ( Interpreter.AdaptivePredict(_input,105,_ctx) ) { case 1: { - State = 929; + State = 932; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 928; whiteSpace(); + State = 931; whiteSpace(); } } - State = 931; Match(COMMA); - State = 933; + State = 934; Match(COMMA); + State = 936; switch ( Interpreter.AdaptivePredict(_input,103,_ctx) ) { case 1: { - State = 932; whiteSpace(); + State = 935; whiteSpace(); } break; } - State = 935; valueStmt(0); - State = 941; + State = 938; valueStmt(0); + State = 944; switch ( Interpreter.AdaptivePredict(_input,104,_ctx) ) { case 1: { - State = 936; whiteSpace(); - State = 937; Match(TO); - State = 938; whiteSpace(); - State = 939; valueStmt(0); + State = 939; whiteSpace(); + State = 940; Match(TO); + State = 941; whiteSpace(); + State = 942; valueStmt(0); } break; } @@ -4642,27 +4652,27 @@ public LsetStmtContext lsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 945; Match(LSET); - State = 946; whiteSpace(); - State = 947; valueStmt(0); - State = 949; + State = 948; Match(LSET); + State = 949; whiteSpace(); + State = 950; valueStmt(0); + State = 952; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 948; whiteSpace(); + State = 951; whiteSpace(); } } - State = 951; Match(EQ); - State = 953; + State = 954; Match(EQ); + State = 956; switch ( Interpreter.AdaptivePredict(_input,107,_ctx) ) { case 1: { - State = 952; whiteSpace(); + State = 955; whiteSpace(); } break; } - State = 955; valueStmt(0); + State = 958; valueStmt(0); } } catch (RecognitionException re) { @@ -4717,34 +4727,34 @@ public MidStmtContext midStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 957; Match(MID); - State = 959; + State = 960; Match(MID); + State = 962; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 958; whiteSpace(); + State = 961; whiteSpace(); } } - State = 961; Match(LPAREN); - State = 963; + State = 964; Match(LPAREN); + State = 966; switch ( Interpreter.AdaptivePredict(_input,109,_ctx) ) { case 1: { - State = 962; whiteSpace(); + State = 965; whiteSpace(); } break; } - State = 965; argsCall(); - State = 967; + State = 968; argsCall(); + State = 970; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 966; whiteSpace(); + State = 969; whiteSpace(); } } - State = 969; Match(RPAREN); + State = 972; Match(RPAREN); } } catch (RecognitionException re) { @@ -4801,27 +4811,27 @@ public OnErrorStmtContext onErrorStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 971; + State = 974; _la = _input.La(1); if ( !(_la==ON_ERROR || _la==ON_LOCAL_ERROR) ) { _errHandler.RecoverInline(this); } Consume(); - State = 972; whiteSpace(); - State = 981; + State = 975; whiteSpace(); + State = 984; switch (_input.La(1)) { case GOTO: { - State = 973; Match(GOTO); - State = 974; whiteSpace(); - State = 975; valueStmt(0); + State = 976; Match(GOTO); + State = 977; whiteSpace(); + State = 978; valueStmt(0); } break; case RESUME: { - State = 977; Match(RESUME); - State = 978; whiteSpace(); - State = 979; Match(NEXT); + State = 980; Match(RESUME); + State = 981; whiteSpace(); + State = 982; Match(NEXT); } break; default: @@ -4888,42 +4898,42 @@ public OnGoToStmtContext onGoToStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 983; Match(ON); - State = 984; whiteSpace(); - State = 985; valueStmt(0); - State = 986; whiteSpace(); - State = 987; Match(GOTO); - State = 988; whiteSpace(); - State = 989; valueStmt(0); - State = 1000; + State = 986; Match(ON); + State = 987; whiteSpace(); + State = 988; valueStmt(0); + State = 989; whiteSpace(); + State = 990; Match(GOTO); + State = 991; whiteSpace(); + State = 992; valueStmt(0); + State = 1003; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,114,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 991; + State = 994; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 990; whiteSpace(); + State = 993; whiteSpace(); } } - State = 993; Match(COMMA); - State = 995; + State = 996; Match(COMMA); + State = 998; switch ( Interpreter.AdaptivePredict(_input,113,_ctx) ) { case 1: { - State = 994; whiteSpace(); + State = 997; whiteSpace(); } break; } - State = 997; valueStmt(0); + State = 1000; valueStmt(0); } } } - State = 1002; + State = 1005; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,114,_ctx); } @@ -4988,42 +4998,42 @@ public OnGoSubStmtContext onGoSubStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1003; Match(ON); - State = 1004; whiteSpace(); - State = 1005; valueStmt(0); - State = 1006; whiteSpace(); - State = 1007; Match(GOSUB); - State = 1008; whiteSpace(); - State = 1009; valueStmt(0); - State = 1020; + State = 1006; Match(ON); + State = 1007; whiteSpace(); + State = 1008; valueStmt(0); + State = 1009; whiteSpace(); + State = 1010; Match(GOSUB); + State = 1011; whiteSpace(); + State = 1012; valueStmt(0); + State = 1023; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,117,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1011; + State = 1014; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1010; whiteSpace(); + State = 1013; whiteSpace(); } } - State = 1013; Match(COMMA); - State = 1015; + State = 1016; Match(COMMA); + State = 1018; switch ( Interpreter.AdaptivePredict(_input,116,_ctx) ) { case 1: { - State = 1014; whiteSpace(); + State = 1017; whiteSpace(); } break; } - State = 1017; valueStmt(0); + State = 1020; valueStmt(0); } } } - State = 1022; + State = 1025; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,117,_ctx); } @@ -5102,26 +5112,26 @@ public OpenStmtContext openStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1023; Match(OPEN); - State = 1024; whiteSpace(); - State = 1025; valueStmt(0); - State = 1026; whiteSpace(); - State = 1027; Match(FOR); - State = 1028; whiteSpace(); - State = 1029; + State = 1026; Match(OPEN); + State = 1027; whiteSpace(); + State = 1028; valueStmt(0); + State = 1029; whiteSpace(); + State = 1030; Match(FOR); + State = 1031; whiteSpace(); + State = 1032; _la = _input.La(1); if ( !(_la==APPEND || _la==BINARY || ((((_la - 121)) & ~0x3f) == 0 && ((1L << (_la - 121)) & ((1L << (INPUT - 121)) | (1L << (OUTPUT - 121)) | (1L << (RANDOM - 121)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1035; + State = 1038; switch ( Interpreter.AdaptivePredict(_input,118,_ctx) ) { case 1: { - State = 1030; whiteSpace(); - State = 1031; Match(ACCESS); - State = 1032; whiteSpace(); - State = 1033; + State = 1033; whiteSpace(); + State = 1034; Match(ACCESS); + State = 1035; whiteSpace(); + State = 1036; _la = _input.La(1); if ( !(((((_la - 166)) & ~0x3f) == 0 && ((1L << (_la - 166)) & ((1L << (READ - 166)) | (1L << (READ_WRITE - 166)) | (1L << (WRITE - 166)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -5130,12 +5140,12 @@ public OpenStmtContext openStmt() { } break; } - State = 1040; + State = 1043; switch ( Interpreter.AdaptivePredict(_input,119,_ctx) ) { case 1: { - State = 1037; whiteSpace(); - State = 1038; + State = 1040; whiteSpace(); + State = 1041; _la = _input.La(1); if ( !(((((_la - 131)) & ~0x3f) == 0 && ((1L << (_la - 131)) & ((1L << (LOCK_READ - 131)) | (1L << (LOCK_WRITE - 131)) | (1L << (LOCK_READ_WRITE - 131)) | (1L << (SHARED - 131)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -5144,34 +5154,34 @@ public OpenStmtContext openStmt() { } break; } - State = 1042; whiteSpace(); - State = 1043; Match(AS); - State = 1044; whiteSpace(); - State = 1045; fileNumber(); - State = 1057; + State = 1045; whiteSpace(); + State = 1046; Match(AS); + State = 1047; whiteSpace(); + State = 1048; fileNumber(); + State = 1060; switch ( Interpreter.AdaptivePredict(_input,122,_ctx) ) { case 1: { - State = 1046; whiteSpace(); - State = 1047; Match(LEN); - State = 1049; + State = 1049; whiteSpace(); + State = 1050; Match(LEN); + State = 1052; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1048; whiteSpace(); + State = 1051; whiteSpace(); } } - State = 1051; Match(EQ); - State = 1053; + State = 1054; Match(EQ); + State = 1056; switch ( Interpreter.AdaptivePredict(_input,121,_ctx) ) { case 1: { - State = 1052; whiteSpace(); + State = 1055; whiteSpace(); } break; } - State = 1055; valueStmt(0); + State = 1058; valueStmt(0); } break; } @@ -5236,53 +5246,53 @@ public OutputListContext outputList() { int _la; try { int _alt; - State = 1092; + State = 1095; switch ( Interpreter.AdaptivePredict(_input,132,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1059; outputList_Expression(); - State = 1072; + State = 1062; outputList_Expression(); + State = 1075; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,126,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1061; + State = 1064; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1060; whiteSpace(); + State = 1063; whiteSpace(); } } - State = 1063; + State = 1066; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1065; + State = 1068; switch ( Interpreter.AdaptivePredict(_input,124,_ctx) ) { case 1: { - State = 1064; whiteSpace(); + State = 1067; whiteSpace(); } break; } - State = 1068; + State = 1071; switch ( Interpreter.AdaptivePredict(_input,125,_ctx) ) { case 1: { - State = 1067; outputList_Expression(); + State = 1070; outputList_Expression(); } break; } } } } - State = 1074; + State = 1077; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,126,_ctx); } @@ -5292,15 +5302,15 @@ public OutputListContext outputList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 1076; + State = 1079; switch ( Interpreter.AdaptivePredict(_input,127,_ctx) ) { case 1: { - State = 1075; outputList_Expression(); + State = 1078; outputList_Expression(); } break; } - State = 1088; + State = 1091; _errHandler.Sync(this); _alt = 1; do { @@ -5308,33 +5318,33 @@ public OutputListContext outputList() { case 1: { { - State = 1079; + State = 1082; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1078; whiteSpace(); + State = 1081; whiteSpace(); } } - State = 1081; + State = 1084; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1083; + State = 1086; switch ( Interpreter.AdaptivePredict(_input,129,_ctx) ) { case 1: { - State = 1082; whiteSpace(); + State = 1085; whiteSpace(); } break; } - State = 1086; + State = 1089; switch ( Interpreter.AdaptivePredict(_input,130,_ctx) ) { case 1: { - State = 1085; outputList_Expression(); + State = 1088; outputList_Expression(); } break; } @@ -5344,7 +5354,7 @@ public OutputListContext outputList() { default: throw new NoViableAltException(this); } - State = 1090; + State = 1093; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,131,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -5406,55 +5416,55 @@ public OutputList_ExpressionContext outputList_Expression() { EnterRule(_localctx, 104, RULE_outputList_Expression); int _la; try { - State = 1111; + State = 1114; switch ( Interpreter.AdaptivePredict(_input,137,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1094; valueStmt(0); + State = 1097; valueStmt(0); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1095; + State = 1098; _la = _input.La(1); if ( !(_la==SPC || _la==TAB) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1109; + State = 1112; switch ( Interpreter.AdaptivePredict(_input,136,_ctx) ) { case 1: { - State = 1097; + State = 1100; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1096; whiteSpace(); + State = 1099; whiteSpace(); } } - State = 1099; Match(LPAREN); - State = 1101; + State = 1102; Match(LPAREN); + State = 1104; switch ( Interpreter.AdaptivePredict(_input,134,_ctx) ) { case 1: { - State = 1100; whiteSpace(); + State = 1103; whiteSpace(); } break; } - State = 1103; argsCall(); - State = 1105; + State = 1106; argsCall(); + State = 1108; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1104; whiteSpace(); + State = 1107; whiteSpace(); } } - State = 1107; Match(RPAREN); + State = 1110; Match(RPAREN); } break; } @@ -5516,31 +5526,31 @@ public PrintStmtContext printStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1113; Match(PRINT); - State = 1114; whiteSpace(); - State = 1115; fileNumber(); - State = 1117; + State = 1116; Match(PRINT); + State = 1117; whiteSpace(); + State = 1118; fileNumber(); + State = 1120; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1116; whiteSpace(); + State = 1119; whiteSpace(); } } - State = 1119; Match(COMMA); - State = 1124; + State = 1122; Match(COMMA); + State = 1127; switch ( Interpreter.AdaptivePredict(_input,140,_ctx) ) { case 1: { - State = 1121; + State = 1124; switch ( Interpreter.AdaptivePredict(_input,139,_ctx) ) { case 1: { - State = 1120; whiteSpace(); + State = 1123; whiteSpace(); } break; } - State = 1123; outputList(); + State = 1126; outputList(); } break; } @@ -5616,70 +5626,70 @@ public PropertyGetStmtContext propertyGetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1129; + State = 1132; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1126; visibility(); - State = 1127; whiteSpace(); + State = 1129; visibility(); + State = 1130; whiteSpace(); } } - State = 1133; + State = 1136; _la = _input.La(1); if (_la==STATIC) { { - State = 1131; Match(STATIC); - State = 1132; whiteSpace(); + State = 1134; Match(STATIC); + State = 1135; whiteSpace(); } } - State = 1135; Match(PROPERTY_GET); - State = 1136; whiteSpace(); - State = 1137; functionName(); - State = 1139; + State = 1138; Match(PROPERTY_GET); + State = 1139; whiteSpace(); + State = 1140; functionName(); + State = 1142; switch ( Interpreter.AdaptivePredict(_input,143,_ctx) ) { case 1: { - State = 1138; typeHint(); + State = 1141; typeHint(); } break; } - State = 1145; + State = 1148; switch ( Interpreter.AdaptivePredict(_input,145,_ctx) ) { case 1: { - State = 1142; + State = 1145; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1141; whiteSpace(); + State = 1144; whiteSpace(); } } - State = 1144; argList(); + State = 1147; argList(); } break; } - State = 1150; + State = 1153; switch ( Interpreter.AdaptivePredict(_input,146,_ctx) ) { case 1: { - State = 1147; whiteSpace(); - State = 1148; asTypeClause(); + State = 1150; whiteSpace(); + State = 1151; asTypeClause(); } break; } - State = 1152; endOfStatement(); - State = 1154; + State = 1155; endOfStatement(); + State = 1157; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 1153; block(); + State = 1156; block(); } } - State = 1156; Match(END_PROPERTY); + State = 1159; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5746,53 +5756,53 @@ public PropertySetStmtContext propertySetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1161; + State = 1164; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1158; visibility(); - State = 1159; whiteSpace(); + State = 1161; visibility(); + State = 1162; whiteSpace(); } } - State = 1165; + State = 1168; _la = _input.La(1); if (_la==STATIC) { { - State = 1163; Match(STATIC); - State = 1164; whiteSpace(); + State = 1166; Match(STATIC); + State = 1167; whiteSpace(); } } - State = 1167; Match(PROPERTY_SET); - State = 1168; whiteSpace(); - State = 1169; subroutineName(); - State = 1174; + State = 1170; Match(PROPERTY_SET); + State = 1171; whiteSpace(); + State = 1172; subroutineName(); + State = 1177; switch ( Interpreter.AdaptivePredict(_input,151,_ctx) ) { case 1: { - State = 1171; + State = 1174; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1170; whiteSpace(); + State = 1173; whiteSpace(); } } - State = 1173; argList(); + State = 1176; argList(); } break; } - State = 1176; endOfStatement(); - State = 1178; + State = 1179; endOfStatement(); + State = 1181; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 1177; block(); + State = 1180; block(); } } - State = 1180; Match(END_PROPERTY); + State = 1183; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5859,53 +5869,53 @@ public PropertyLetStmtContext propertyLetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1185; + State = 1188; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1182; visibility(); - State = 1183; whiteSpace(); + State = 1185; visibility(); + State = 1186; whiteSpace(); } } - State = 1189; + State = 1192; _la = _input.La(1); if (_la==STATIC) { { - State = 1187; Match(STATIC); - State = 1188; whiteSpace(); + State = 1190; Match(STATIC); + State = 1191; whiteSpace(); } } - State = 1191; Match(PROPERTY_LET); - State = 1192; whiteSpace(); - State = 1193; subroutineName(); - State = 1198; + State = 1194; Match(PROPERTY_LET); + State = 1195; whiteSpace(); + State = 1196; subroutineName(); + State = 1201; switch ( Interpreter.AdaptivePredict(_input,156,_ctx) ) { case 1: { - State = 1195; + State = 1198; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1194; whiteSpace(); + State = 1197; whiteSpace(); } } - State = 1197; argList(); + State = 1200; argList(); } break; } - State = 1200; endOfStatement(); - State = 1202; + State = 1203; endOfStatement(); + State = 1205; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 1201; block(); + State = 1204; block(); } } - State = 1204; Match(END_PROPERTY); + State = 1207; Match(END_PROPERTY); } } catch (RecognitionException re) { @@ -5968,52 +5978,52 @@ public PutStmtContext putStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1206; Match(PUT); - State = 1207; whiteSpace(); - State = 1208; fileNumber(); - State = 1210; + State = 1209; Match(PUT); + State = 1210; whiteSpace(); + State = 1211; fileNumber(); + State = 1213; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1209; whiteSpace(); + State = 1212; whiteSpace(); } } - State = 1212; Match(COMMA); - State = 1214; + State = 1215; Match(COMMA); + State = 1217; switch ( Interpreter.AdaptivePredict(_input,159,_ctx) ) { case 1: { - State = 1213; whiteSpace(); + State = 1216; whiteSpace(); } break; } - State = 1217; + State = 1220; switch ( Interpreter.AdaptivePredict(_input,160,_ctx) ) { case 1: { - State = 1216; valueStmt(0); + State = 1219; valueStmt(0); } break; } - State = 1220; + State = 1223; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1219; whiteSpace(); + State = 1222; whiteSpace(); } } - State = 1222; Match(COMMA); - State = 1224; + State = 1225; Match(COMMA); + State = 1227; switch ( Interpreter.AdaptivePredict(_input,162,_ctx) ) { case 1: { - State = 1223; whiteSpace(); + State = 1226; whiteSpace(); } break; } - State = 1226; valueStmt(0); + State = 1229; valueStmt(0); } } catch (RecognitionException re) { @@ -6071,47 +6081,47 @@ public RaiseEventStmtContext raiseEventStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1228; Match(RAISEEVENT); - State = 1229; whiteSpace(); - State = 1230; identifier(); - State = 1245; + State = 1231; Match(RAISEEVENT); + State = 1232; whiteSpace(); + State = 1233; identifier(); + State = 1248; switch ( Interpreter.AdaptivePredict(_input,167,_ctx) ) { case 1: { - State = 1232; + State = 1235; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1231; whiteSpace(); + State = 1234; whiteSpace(); } } - State = 1234; Match(LPAREN); - State = 1236; + State = 1237; Match(LPAREN); + State = 1239; switch ( Interpreter.AdaptivePredict(_input,164,_ctx) ) { case 1: { - State = 1235; whiteSpace(); + State = 1238; whiteSpace(); } break; } - State = 1242; + State = 1245; switch ( Interpreter.AdaptivePredict(_input,166,_ctx) ) { case 1: { - State = 1238; argsCall(); - State = 1240; + State = 1241; argsCall(); + State = 1243; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1239; whiteSpace(); + State = 1242; whiteSpace(); } } } break; } - State = 1244; Match(RPAREN); + State = 1247; Match(RPAREN); } break; } @@ -6176,47 +6186,47 @@ public RedimStmtContext redimStmt() { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1247; Match(REDIM); - State = 1248; whiteSpace(); - State = 1251; + State = 1250; Match(REDIM); + State = 1251; whiteSpace(); + State = 1254; switch ( Interpreter.AdaptivePredict(_input,168,_ctx) ) { case 1: { - State = 1249; Match(PRESERVE); - State = 1250; whiteSpace(); + State = 1252; Match(PRESERVE); + State = 1253; whiteSpace(); } break; } - State = 1253; redimSubStmt(); - State = 1264; + State = 1256; redimSubStmt(); + State = 1267; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,171,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1255; + State = 1258; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1254; whiteSpace(); + State = 1257; whiteSpace(); } } - State = 1257; Match(COMMA); - State = 1259; + State = 1260; Match(COMMA); + State = 1262; switch ( Interpreter.AdaptivePredict(_input,170,_ctx) ) { case 1: { - State = 1258; whiteSpace(); + State = 1261; whiteSpace(); } break; } - State = 1261; redimSubStmt(); + State = 1264; redimSubStmt(); } } } - State = 1266; + State = 1269; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,171,_ctx); } @@ -6279,40 +6289,40 @@ public RedimSubStmtContext redimSubStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1267; implicitCallStmt_InStmt(); - State = 1269; + State = 1270; implicitCallStmt_InStmt(); + State = 1272; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1268; whiteSpace(); + State = 1271; whiteSpace(); } } - State = 1271; Match(LPAREN); - State = 1273; + State = 1274; Match(LPAREN); + State = 1276; switch ( Interpreter.AdaptivePredict(_input,173,_ctx) ) { case 1: { - State = 1272; whiteSpace(); + State = 1275; whiteSpace(); } break; } - State = 1275; subscripts(); - State = 1277; + State = 1278; subscripts(); + State = 1280; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1276; whiteSpace(); + State = 1279; whiteSpace(); } } - State = 1279; Match(RPAREN); - State = 1283; + State = 1282; Match(RPAREN); + State = 1286; switch ( Interpreter.AdaptivePredict(_input,175,_ctx) ) { case 1: { - State = 1280; whiteSpace(); - State = 1281; asTypeClause(); + State = 1283; whiteSpace(); + State = 1284; asTypeClause(); } break; } @@ -6358,7 +6368,7 @@ public ResetStmtContext resetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1285; Match(RESET); + State = 1288; Match(RESET); } } catch (RecognitionException re) { @@ -6408,130 +6418,25 @@ public ResumeStmtContext resumeStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1287; Match(RESUME); - State = 1293; + State = 1290; Match(RESUME); + State = 1296; switch ( Interpreter.AdaptivePredict(_input,177,_ctx) ) { case 1: { - State = 1288; whiteSpace(); - State = 1291; - switch (_input.La(1)) { - case NEXT: + State = 1291; whiteSpace(); + State = 1294; + switch ( Interpreter.AdaptivePredict(_input,176,_ctx) ) { + case 1: { - State = 1289; Match(NEXT); + State = 1292; Match(NEXT); } break; - case ABS: - case ANY: - case ARRAY: - case CBOOL: - case CBYTE: - case CCUR: - case CDATE: - case CDBL: - case CDEC: - case CINT: - case CIRCLE: - case CLNG: - case CLNGLNG: - case CLNGPTR: - case CSNG: - case CSTR: - case CURRENCY: - case CVAR: - case CVERR: - case DEBUG: - case DOEVENTS: - case FIX: - case INPUTB: - case INT: - case LBOUND: - case LEN: - case LENB: - case LONGLONG: - case LONGPTR: - case MIDB: - case MIDBTYPESUFFIX: - case MIDTYPESUFFIX: - case PSET: - case SCALE: - case SGN: - case UBOUND: - case EXCLAMATIONPOINT: - case DOT: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case BEGIN: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CLASS: - case DATABASE: - case DATE: - case DOUBLE: - case EMPTY: - case END_IF: - case EQV: - case FALSE: - case IMP: - case IN: - case IS: - case INTEGER: - case LONG: - case LIB: - case LIKE: - case ME: - case MID: - case MOD: - case NEW: - case NOT: - case NOTHING: - case NULL: - case OPTIONAL: - case OR: - case PARAMARRAY: - case PRESERVE: - case REM: - case SINGLE: - case SPC: - case STRING: - case TAB: - case TEXT: - case THEN: - case TO: - case TRUE: - case TYPEOF: - case UNTIL: - case VARIANT: - case VERSION: - case WITHEVENTS: - case XOR: - case LPAREN: - case MINUS: - case STRINGLITERAL: - case OCTLITERAL: - case HEXLITERAL: - case FLOATLITERAL: - case INTEGERLITERAL: - case DATELITERAL: - case WS: - case IDENTIFIER: - case LINE_CONTINUATION: - case COLLECTION: - case DELETESETTING: - case LOAD: - case RMDIR: - case SENDKEYS: - case SETATTR: - { - State = 1290; valueStmt(0); + + case 2: + { + State = 1293; valueStmt(0); } break; - default: - throw new NoViableAltException(this); } } break; @@ -6578,7 +6483,7 @@ public ReturnStmtContext returnStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1295; Match(RETURN); + State = 1298; Match(RETURN); } } catch (RecognitionException re) { @@ -6635,27 +6540,70 @@ public RsetStmtContext rsetStmt() { try { EnterOuterAlt(_localctx, 1); { - State = 1297; Match(RSET); - State = 1298; whiteSpace(); - State = 1299; valueStmt(0); - State = 1301; + State = 1300; Match(RSET); + State = 1301; whiteSpace(); + State = 1302; valueStmt(0); + State = 1304; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1300; whiteSpace(); + State = 1303; whiteSpace(); } } - State = 1303; Match(EQ); - State = 1305; + State = 1306; Match(EQ); + State = 1308; switch ( Interpreter.AdaptivePredict(_input,179,_ctx) ) { case 1: { - State = 1304; whiteSpace(); + State = 1307; whiteSpace(); } break; } - State = 1307; valueStmt(0); + State = 1310; valueStmt(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + + public partial class StopStmtContext : ParserRuleContext { + public ITerminalNode STOP() { return GetToken(VBAParser.STOP, 0); } + public StopStmtContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_stopStmt; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.EnterStopStmt(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAParserListener typedListener = listener as IVBAParserListener; + if (typedListener != null) typedListener.ExitStopStmt(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAParserVisitor typedVisitor = visitor as IVBAParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitStopStmt(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public StopStmtContext stopStmt() { + StopStmtContext _localctx = new StopStmtContext(_ctx, State); + EnterRule(_localctx, 130, RULE_stopStmt); + try { + EnterOuterAlt(_localctx, 1); + { + State = 1312; Match(STOP); } } catch (RecognitionException re) { @@ -6707,32 +6655,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SeekStmtContext seekStmt() { SeekStmtContext _localctx = new SeekStmtContext(_ctx, State); - EnterRule(_localctx, 130, RULE_seekStmt); + EnterRule(_localctx, 132, RULE_seekStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1309; Match(SEEK); - State = 1310; whiteSpace(); - State = 1311; fileNumber(); - State = 1313; + State = 1314; Match(SEEK); + State = 1315; whiteSpace(); + State = 1316; fileNumber(); + State = 1318; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1312; whiteSpace(); + State = 1317; whiteSpace(); } } - State = 1315; Match(COMMA); - State = 1317; + State = 1320; Match(COMMA); + State = 1322; switch ( Interpreter.AdaptivePredict(_input,181,_ctx) ) { case 1: { - State = 1316; whiteSpace(); + State = 1321; whiteSpace(); } break; } - State = 1319; valueStmt(0); + State = 1324; valueStmt(0); } } catch (RecognitionException re) { @@ -6791,31 +6739,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SelectCaseStmtContext selectCaseStmt() { SelectCaseStmtContext _localctx = new SelectCaseStmtContext(_ctx, State); - EnterRule(_localctx, 132, RULE_selectCaseStmt); + EnterRule(_localctx, 134, RULE_selectCaseStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1321; Match(SELECT); - State = 1322; whiteSpace(); - State = 1323; Match(CASE); - State = 1324; whiteSpace(); - State = 1325; valueStmt(0); - State = 1326; endOfStatement(); - State = 1330; + State = 1326; Match(SELECT); + State = 1327; whiteSpace(); + State = 1328; Match(CASE); + State = 1329; whiteSpace(); + State = 1330; valueStmt(0); + State = 1331; endOfStatement(); + State = 1335; _errHandler.Sync(this); _la = _input.La(1); while (_la==CASE) { { { - State = 1327; sC_Case(); + State = 1332; sC_Case(); } } - State = 1332; + State = 1337; _errHandler.Sync(this); _la = _input.La(1); } - State = 1333; Match(END_SELECT); + State = 1338; Match(END_SELECT); } } catch (RecognitionException re) { @@ -6922,34 +6870,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_SelectionContext sC_Selection() { SC_SelectionContext _localctx = new SC_SelectionContext(_ctx, State); - EnterRule(_localctx, 134, RULE_sC_Selection); + EnterRule(_localctx, 136, RULE_sC_Selection); int _la; try { - State = 1352; + State = 1357; switch ( Interpreter.AdaptivePredict(_input,185,_ctx) ) { case 1: _localctx = new CaseCondIsContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1335; Match(IS); - State = 1337; + State = 1340; Match(IS); + State = 1342; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1336; whiteSpace(); + State = 1341; whiteSpace(); } } - State = 1339; comparisonOperator(); - State = 1341; + State = 1344; comparisonOperator(); + State = 1346; switch ( Interpreter.AdaptivePredict(_input,184,_ctx) ) { case 1: { - State = 1340; whiteSpace(); + State = 1345; whiteSpace(); } break; } - State = 1343; valueStmt(0); + State = 1348; valueStmt(0); } break; @@ -6957,11 +6905,11 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondToContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1345; valueStmt(0); - State = 1346; whiteSpace(); - State = 1347; Match(TO); - State = 1348; whiteSpace(); - State = 1349; valueStmt(0); + State = 1350; valueStmt(0); + State = 1351; whiteSpace(); + State = 1352; Match(TO); + State = 1353; whiteSpace(); + State = 1354; valueStmt(0); } break; @@ -6969,7 +6917,7 @@ public SC_SelectionContext sC_Selection() { _localctx = new CaseCondValueContext(_localctx); EnterOuterAlt(_localctx, 3); { - State = 1351; valueStmt(0); + State = 1356; valueStmt(0); } break; } @@ -7022,23 +6970,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CaseContext sC_Case() { SC_CaseContext _localctx = new SC_CaseContext(_ctx, State); - EnterRule(_localctx, 136, RULE_sC_Case); - int _la; + EnterRule(_localctx, 138, RULE_sC_Case); try { EnterOuterAlt(_localctx, 1); { - State = 1354; Match(CASE); - State = 1355; whiteSpace(); - State = 1356; sC_Cond(); - State = 1357; endOfStatement(); - State = 1359; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 1359; Match(CASE); + State = 1360; whiteSpace(); + State = 1361; sC_Cond(); + State = 1362; endOfStatement(); + State = 1364; + switch ( Interpreter.AdaptivePredict(_input,186,_ctx) ) { + case 1: { - State = 1358; block(); + State = 1363; block(); } + break; } - } } catch (RecognitionException re) { @@ -7117,164 +7064,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SC_CondContext sC_Cond() { SC_CondContext _localctx = new SC_CondContext(_ctx, State); - EnterRule(_localctx, 138, RULE_sC_Cond); + EnterRule(_localctx, 140, RULE_sC_Cond); int _la; try { int _alt; - State = 1376; - switch (_input.La(1)) { - case ELSE: + State = 1381; + switch ( Interpreter.AdaptivePredict(_input,190,_ctx) ) { + case 1: _localctx = new CaseCondElseContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1361; Match(ELSE); + State = 1366; Match(ELSE); } break; - case ABS: - case ANY: - case ARRAY: - case CBOOL: - case CBYTE: - case CCUR: - case CDATE: - case CDBL: - case CDEC: - case CINT: - case CIRCLE: - case CLNG: - case CLNGLNG: - case CLNGPTR: - case CSNG: - case CSTR: - case CURRENCY: - case CVAR: - case CVERR: - case DEBUG: - case DOEVENTS: - case FIX: - case INPUTB: - case INT: - case LBOUND: - case LEN: - case LENB: - case LONGLONG: - case LONGPTR: - case MIDB: - case MIDBTYPESUFFIX: - case MIDTYPESUFFIX: - case PSET: - case SCALE: - case SGN: - case UBOUND: - case EXCLAMATIONPOINT: - case DOT: - case ADDRESSOF: - case ALIAS: - case AND: - case ATTRIBUTE: - case BEGIN: - case BOOLEAN: - case BYVAL: - case BYREF: - case BYTE: - case CLASS: - case DATABASE: - case DATE: - case DOUBLE: - case EMPTY: - case END_IF: - case EQV: - case FALSE: - case IMP: - case IN: - case IS: - case INTEGER: - case LONG: - case LIB: - case LIKE: - case ME: - case MID: - case MOD: - case NEW: - case NOT: - case NOTHING: - case NULL: - case OPTIONAL: - case OR: - case PARAMARRAY: - case PRESERVE: - case REM: - case SINGLE: - case SPC: - case STRING: - case TAB: - case TEXT: - case THEN: - case TO: - case TRUE: - case TYPEOF: - case UNTIL: - case VARIANT: - case VERSION: - case WITHEVENTS: - case XOR: - case LPAREN: - case MINUS: - case STRINGLITERAL: - case OCTLITERAL: - case HEXLITERAL: - case FLOATLITERAL: - case INTEGERLITERAL: - case DATELITERAL: - case WS: - case IDENTIFIER: - case LINE_CONTINUATION: - case COLLECTION: - case DELETESETTING: - case LOAD: - case RMDIR: - case SENDKEYS: - case SETATTR: + + case 2: _localctx = new CaseCondSelectionContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1362; sC_Selection(); - State = 1373; + State = 1367; sC_Selection(); + State = 1378; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,189,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1364; + State = 1369; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1363; whiteSpace(); + State = 1368; whiteSpace(); } } - State = 1366; Match(COMMA); - State = 1368; + State = 1371; Match(COMMA); + State = 1373; switch ( Interpreter.AdaptivePredict(_input,188,_ctx) ) { case 1: { - State = 1367; whiteSpace(); + State = 1372; whiteSpace(); } break; } - State = 1370; sC_Selection(); + State = 1375; sC_Selection(); } } } - State = 1375; + State = 1380; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,189,_ctx); } } break; - default: - throw new NoViableAltException(this); } } catch (RecognitionException re) { @@ -7326,32 +7168,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SetStmtContext setStmt() { SetStmtContext _localctx = new SetStmtContext(_ctx, State); - EnterRule(_localctx, 140, RULE_setStmt); + EnterRule(_localctx, 142, RULE_setStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1378; Match(SET); - State = 1379; whiteSpace(); - State = 1380; valueStmt(0); - State = 1382; + State = 1383; Match(SET); + State = 1384; whiteSpace(); + State = 1385; valueStmt(0); + State = 1387; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1381; whiteSpace(); + State = 1386; whiteSpace(); } } - State = 1384; Match(EQ); - State = 1386; + State = 1389; Match(EQ); + State = 1391; switch ( Interpreter.AdaptivePredict(_input,192,_ctx) ) { case 1: { - State = 1385; whiteSpace(); + State = 1390; whiteSpace(); } break; } - State = 1388; valueStmt(0); + State = 1393; valueStmt(0); } } catch (RecognitionException re) { @@ -7413,65 +7255,65 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubStmtContext subStmt() { SubStmtContext _localctx = new SubStmtContext(_ctx, State); - EnterRule(_localctx, 142, RULE_subStmt); + EnterRule(_localctx, 144, RULE_subStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1393; + State = 1398; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1390; visibility(); - State = 1391; whiteSpace(); + State = 1395; visibility(); + State = 1396; whiteSpace(); } } - State = 1397; + State = 1402; _la = _input.La(1); if (_la==STATIC) { { - State = 1395; Match(STATIC); - State = 1396; whiteSpace(); + State = 1400; Match(STATIC); + State = 1401; whiteSpace(); } } - State = 1399; Match(SUB); - State = 1401; + State = 1404; Match(SUB); + State = 1406; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1400; whiteSpace(); + State = 1405; whiteSpace(); } } - State = 1403; subroutineName(); - State = 1408; + State = 1408; subroutineName(); + State = 1413; switch ( Interpreter.AdaptivePredict(_input,197,_ctx) ) { case 1: { - State = 1405; + State = 1410; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1404; whiteSpace(); + State = 1409; whiteSpace(); } } - State = 1407; argList(); + State = 1412; argList(); } break; } - State = 1410; endOfStatement(); - State = 1412; + State = 1415; endOfStatement(); + State = 1417; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 1411; block(); + State = 1416; block(); } } - State = 1414; Match(END_SUB); + State = 1419; Match(END_SUB); } } catch (RecognitionException re) { @@ -7512,11 +7354,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubroutineNameContext subroutineName() { SubroutineNameContext _localctx = new SubroutineNameContext(_ctx, State); - EnterRule(_localctx, 144, RULE_subroutineName); + EnterRule(_localctx, 146, RULE_subroutineName); try { EnterOuterAlt(_localctx, 1); { - State = 1416; identifier(); + State = 1421; identifier(); } } catch (RecognitionException re) { @@ -7577,38 +7419,38 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmtContext typeStmt() { TypeStmtContext _localctx = new TypeStmtContext(_ctx, State); - EnterRule(_localctx, 146, RULE_typeStmt); + EnterRule(_localctx, 148, RULE_typeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1421; + State = 1426; _la = _input.La(1); if (((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) { { - State = 1418; visibility(); - State = 1419; whiteSpace(); + State = 1423; visibility(); + State = 1424; whiteSpace(); } } - State = 1423; Match(TYPE); - State = 1424; whiteSpace(); - State = 1425; identifier(); - State = 1426; endOfStatement(); - State = 1430; + State = 1428; Match(TYPE); + State = 1429; whiteSpace(); + State = 1430; identifier(); + State = 1431; endOfStatement(); + State = 1435; _errHandler.Sync(this); _la = _input.La(1); while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { { { - State = 1427; typeStmt_Element(); + State = 1432; typeStmt_Element(); } } - State = 1432; + State = 1437; _errHandler.Sync(this); _la = _input.La(1); } - State = 1433; Match(END_TYPE); + State = 1438; Match(END_TYPE); } } catch (RecognitionException re) { @@ -7666,63 +7508,63 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeStmt_ElementContext typeStmt_Element() { TypeStmt_ElementContext _localctx = new TypeStmt_ElementContext(_ctx, State); - EnterRule(_localctx, 148, RULE_typeStmt_Element); + EnterRule(_localctx, 150, RULE_typeStmt_Element); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1435; identifier(); - State = 1450; + State = 1440; identifier(); + State = 1455; switch ( Interpreter.AdaptivePredict(_input,205,_ctx) ) { case 1: { - State = 1437; + State = 1442; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1436; whiteSpace(); + State = 1441; whiteSpace(); } } - State = 1439; Match(LPAREN); - State = 1444; + State = 1444; Match(LPAREN); + State = 1449; switch ( Interpreter.AdaptivePredict(_input,203,_ctx) ) { case 1: { - State = 1441; + State = 1446; switch ( Interpreter.AdaptivePredict(_input,202,_ctx) ) { case 1: { - State = 1440; whiteSpace(); + State = 1445; whiteSpace(); } break; } - State = 1443; subscripts(); + State = 1448; subscripts(); } break; } - State = 1447; + State = 1452; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1446; whiteSpace(); + State = 1451; whiteSpace(); } } - State = 1449; Match(RPAREN); + State = 1454; Match(RPAREN); } break; } - State = 1455; + State = 1460; switch ( Interpreter.AdaptivePredict(_input,206,_ctx) ) { case 1: { - State = 1452; whiteSpace(); - State = 1453; asTypeClause(); + State = 1457; whiteSpace(); + State = 1458; asTypeClause(); } break; } - State = 1457; endOfStatement(); + State = 1462; endOfStatement(); } } catch (RecognitionException re) { @@ -7778,44 +7620,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnlockStmtContext unlockStmt() { UnlockStmtContext _localctx = new UnlockStmtContext(_ctx, State); - EnterRule(_localctx, 150, RULE_unlockStmt); + EnterRule(_localctx, 152, RULE_unlockStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1459; Match(UNLOCK); - State = 1460; whiteSpace(); - State = 1461; fileNumber(); - State = 1477; + State = 1464; Match(UNLOCK); + State = 1465; whiteSpace(); + State = 1466; fileNumber(); + State = 1482; switch ( Interpreter.AdaptivePredict(_input,210,_ctx) ) { case 1: { - State = 1463; + State = 1468; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1462; whiteSpace(); + State = 1467; whiteSpace(); } } - State = 1465; Match(COMMA); - State = 1467; + State = 1470; Match(COMMA); + State = 1472; switch ( Interpreter.AdaptivePredict(_input,208,_ctx) ) { case 1: { - State = 1466; whiteSpace(); + State = 1471; whiteSpace(); } break; } - State = 1469; valueStmt(0); - State = 1475; + State = 1474; valueStmt(0); + State = 1480; switch ( Interpreter.AdaptivePredict(_input,209,_ctx) ) { case 1: { - State = 1470; whiteSpace(); - State = 1471; Match(TO); - State = 1472; whiteSpace(); - State = 1473; valueStmt(0); + State = 1475; whiteSpace(); + State = 1476; Match(TO); + State = 1477; whiteSpace(); + State = 1478; valueStmt(0); } break; } @@ -7855,12 +7697,12 @@ public WhiteSpaceContext whiteSpace(int i) { public ValueStmtContext valueStmt() { return GetRuleContext(0); } + public UnrestrictedIdentifierContext unrestrictedIdentifier() { + return GetRuleContext(0); + } public IReadOnlyList whiteSpace() { return GetRuleContexts(); } - public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { - return GetRuleContext(0); - } public VsAssignContext(ValueStmtContext context) { CopyFrom(context); } public override void EnterRule(IParseTreeListener listener) { IVBAParserListener typedListener = listener as IVBAParserListener; @@ -8439,14 +8281,14 @@ private ValueStmtContext valueStmt(int _p) { int _parentState = State; ValueStmtContext _localctx = new ValueStmtContext(_ctx, _parentState); ValueStmtContext _prevctx = _localctx; - int _startState = 152; - EnterRecursionRule(_localctx, 152, RULE_valueStmt, _p); + int _startState = 154; + EnterRecursionRule(_localctx, 154, RULE_valueStmt, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1524; + State = 1529; switch ( Interpreter.AdaptivePredict(_input,219,_ctx) ) { case 1: { @@ -8454,16 +8296,16 @@ private ValueStmtContext valueStmt(int _p) { _ctx = _localctx; _prevctx = _localctx; - State = 1480; Match(NEW); - State = 1482; + State = 1485; Match(NEW); + State = 1487; switch ( Interpreter.AdaptivePredict(_input,211,_ctx) ) { case 1: { - State = 1481; whiteSpace(); + State = 1486; whiteSpace(); } break; } - State = 1484; valueStmt(19); + State = 1489; valueStmt(19); } break; @@ -8472,16 +8314,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAddressOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1485; Match(ADDRESSOF); - State = 1487; + State = 1490; Match(ADDRESSOF); + State = 1492; switch ( Interpreter.AdaptivePredict(_input,212,_ctx) ) { case 1: { - State = 1486; whiteSpace(); + State = 1491; whiteSpace(); } break; } - State = 1489; valueStmt(16); + State = 1494; valueStmt(16); } break; @@ -8490,25 +8332,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsAssignContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1490; implicitCallStmt_InStmt(); - State = 1492; + State = 1495; unrestrictedIdentifier(); + State = 1497; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1491; whiteSpace(); + State = 1496; whiteSpace(); } } - State = 1494; Match(ASSIGN); - State = 1496; + State = 1499; Match(ASSIGN); + State = 1501; switch ( Interpreter.AdaptivePredict(_input,214,_ctx) ) { case 1: { - State = 1495; whiteSpace(); + State = 1500; whiteSpace(); } break; } - State = 1498; valueStmt(15); + State = 1503; valueStmt(15); } break; @@ -8517,16 +8359,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNegationContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1500; Match(MINUS); - State = 1502; + State = 1505; Match(MINUS); + State = 1507; switch ( Interpreter.AdaptivePredict(_input,215,_ctx) ) { case 1: { - State = 1501; whiteSpace(); + State = 1506; whiteSpace(); } break; } - State = 1504; valueStmt(13); + State = 1509; valueStmt(13); } break; @@ -8535,16 +8377,16 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsNotContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1505; Match(NOT); - State = 1507; + State = 1510; Match(NOT); + State = 1512; switch ( Interpreter.AdaptivePredict(_input,216,_ctx) ) { case 1: { - State = 1506; whiteSpace(); + State = 1511; whiteSpace(); } break; } - State = 1509; valueStmt(6); + State = 1514; valueStmt(6); } break; @@ -8553,7 +8395,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsLiteralContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1510; literal(); + State = 1515; literal(); } break; @@ -8562,7 +8404,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsICSContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1511; implicitCallStmt_InStmt(); + State = 1516; implicitCallStmt_InStmt(); } break; @@ -8571,25 +8413,25 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsStructContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1512; Match(LPAREN); - State = 1514; + State = 1517; Match(LPAREN); + State = 1519; switch ( Interpreter.AdaptivePredict(_input,217,_ctx) ) { case 1: { - State = 1513; whiteSpace(); + State = 1518; whiteSpace(); } break; } - State = 1516; valueStmt(0); - State = 1518; + State = 1521; valueStmt(0); + State = 1523; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1517; whiteSpace(); + State = 1522; whiteSpace(); } } - State = 1520; Match(RPAREN); + State = 1525; Match(RPAREN); } break; @@ -8598,7 +8440,7 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsTypeOfContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1522; typeOfIsExpression(); + State = 1527; typeOfIsExpression(); } break; @@ -8607,12 +8449,12 @@ private ValueStmtContext valueStmt(int _p) { _localctx = new VsMidContext(_localctx); _ctx = _localctx; _prevctx = _localctx; - State = 1523; midStmt(); + State = 1528; midStmt(); } break; } _ctx.stop = _input.Lt(-1); - State = 1636; + State = 1641; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,245,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { @@ -8620,32 +8462,32 @@ private ValueStmtContext valueStmt(int _p) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 1634; + State = 1639; switch ( Interpreter.AdaptivePredict(_input,244,_ctx) ) { case 1: { _localctx = new VsPowContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1526; + State = 1531; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 1528; + State = 1533; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1527; whiteSpace(); + State = 1532; whiteSpace(); } } - State = 1530; Match(POW); - State = 1532; + State = 1535; Match(POW); + State = 1537; switch ( Interpreter.AdaptivePredict(_input,221,_ctx) ) { case 1: { - State = 1531; whiteSpace(); + State = 1536; whiteSpace(); } break; } - State = 1534; valueStmt(15); + State = 1539; valueStmt(15); } break; @@ -8653,31 +8495,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsMultContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1535; + State = 1540; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 1537; + State = 1542; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1536; whiteSpace(); + State = 1541; whiteSpace(); } } - State = 1539; + State = 1544; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1541; + State = 1546; switch ( Interpreter.AdaptivePredict(_input,223,_ctx) ) { case 1: { - State = 1540; whiteSpace(); + State = 1545; whiteSpace(); } break; } - State = 1543; valueStmt(13); + State = 1548; valueStmt(13); } break; @@ -8685,26 +8527,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsIntDivContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1544; + State = 1549; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 1546; + State = 1551; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1545; whiteSpace(); + State = 1550; whiteSpace(); } } - State = 1548; Match(INTDIV); - State = 1550; + State = 1553; Match(INTDIV); + State = 1555; switch ( Interpreter.AdaptivePredict(_input,225,_ctx) ) { case 1: { - State = 1549; whiteSpace(); + State = 1554; whiteSpace(); } break; } - State = 1552; valueStmt(12); + State = 1557; valueStmt(12); } break; @@ -8712,26 +8554,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsModContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1553; + State = 1558; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 1555; + State = 1560; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1554; whiteSpace(); + State = 1559; whiteSpace(); } } - State = 1557; Match(MOD); - State = 1559; + State = 1562; Match(MOD); + State = 1564; switch ( Interpreter.AdaptivePredict(_input,227,_ctx) ) { case 1: { - State = 1558; whiteSpace(); + State = 1563; whiteSpace(); } break; } - State = 1561; valueStmt(11); + State = 1566; valueStmt(11); } break; @@ -8739,31 +8581,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAddContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1562; + State = 1567; if (!(Precpred(_ctx, 9))) throw new FailedPredicateException(this, "Precpred(_ctx, 9)"); - State = 1564; + State = 1569; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1563; whiteSpace(); + State = 1568; whiteSpace(); } } - State = 1566; + State = 1571; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1568; + State = 1573; switch ( Interpreter.AdaptivePredict(_input,229,_ctx) ) { case 1: { - State = 1567; whiteSpace(); + State = 1572; whiteSpace(); } break; } - State = 1570; valueStmt(10); + State = 1575; valueStmt(10); } break; @@ -8771,26 +8613,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAmpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1571; + State = 1576; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 1573; + State = 1578; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1572; whiteSpace(); + State = 1577; whiteSpace(); } } - State = 1575; Match(AMPERSAND); - State = 1577; + State = 1580; Match(AMPERSAND); + State = 1582; switch ( Interpreter.AdaptivePredict(_input,231,_ctx) ) { case 1: { - State = 1576; whiteSpace(); + State = 1581; whiteSpace(); } break; } - State = 1579; valueStmt(9); + State = 1584; valueStmt(9); } break; @@ -8798,31 +8640,31 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsRelationalContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1580; + State = 1585; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 1582; + State = 1587; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1581; whiteSpace(); + State = 1586; whiteSpace(); } } - State = 1584; + State = 1589; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 1586; + State = 1591; switch ( Interpreter.AdaptivePredict(_input,233,_ctx) ) { case 1: { - State = 1585; whiteSpace(); + State = 1590; whiteSpace(); } break; } - State = 1588; valueStmt(8); + State = 1593; valueStmt(8); } break; @@ -8830,26 +8672,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsAndContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1589; + State = 1594; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 1591; + State = 1596; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1590; whiteSpace(); + State = 1595; whiteSpace(); } } - State = 1593; Match(AND); - State = 1595; + State = 1598; Match(AND); + State = 1600; switch ( Interpreter.AdaptivePredict(_input,235,_ctx) ) { case 1: { - State = 1594; whiteSpace(); + State = 1599; whiteSpace(); } break; } - State = 1597; valueStmt(6); + State = 1602; valueStmt(6); } break; @@ -8857,26 +8699,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsOrContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1598; + State = 1603; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 1600; + State = 1605; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1599; whiteSpace(); + State = 1604; whiteSpace(); } } - State = 1602; Match(OR); - State = 1604; + State = 1607; Match(OR); + State = 1609; switch ( Interpreter.AdaptivePredict(_input,237,_ctx) ) { case 1: { - State = 1603; whiteSpace(); + State = 1608; whiteSpace(); } break; } - State = 1606; valueStmt(5); + State = 1611; valueStmt(5); } break; @@ -8884,26 +8726,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsXorContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1607; + State = 1612; if (!(Precpred(_ctx, 3))) throw new FailedPredicateException(this, "Precpred(_ctx, 3)"); - State = 1609; + State = 1614; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1608; whiteSpace(); + State = 1613; whiteSpace(); } } - State = 1611; Match(XOR); - State = 1613; + State = 1616; Match(XOR); + State = 1618; switch ( Interpreter.AdaptivePredict(_input,239,_ctx) ) { case 1: { - State = 1612; whiteSpace(); + State = 1617; whiteSpace(); } break; } - State = 1615; valueStmt(4); + State = 1620; valueStmt(4); } break; @@ -8911,26 +8753,26 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsEqvContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1616; + State = 1621; if (!(Precpred(_ctx, 2))) throw new FailedPredicateException(this, "Precpred(_ctx, 2)"); - State = 1618; + State = 1623; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1617; whiteSpace(); + State = 1622; whiteSpace(); } } - State = 1620; Match(EQV); - State = 1622; + State = 1625; Match(EQV); + State = 1627; switch ( Interpreter.AdaptivePredict(_input,241,_ctx) ) { case 1: { - State = 1621; whiteSpace(); + State = 1626; whiteSpace(); } break; } - State = 1624; valueStmt(3); + State = 1629; valueStmt(3); } break; @@ -8938,32 +8780,32 @@ private ValueStmtContext valueStmt(int _p) { { _localctx = new VsImpContext(new ValueStmtContext(_parentctx, _parentState)); PushNewRecursionContext(_localctx, _startState, RULE_valueStmt); - State = 1625; + State = 1630; if (!(Precpred(_ctx, 1))) throw new FailedPredicateException(this, "Precpred(_ctx, 1)"); - State = 1627; + State = 1632; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1626; whiteSpace(); + State = 1631; whiteSpace(); } } - State = 1629; Match(IMP); - State = 1631; + State = 1634; Match(IMP); + State = 1636; switch ( Interpreter.AdaptivePredict(_input,243,_ctx) ) { case 1: { - State = 1630; whiteSpace(); + State = 1635; whiteSpace(); } break; } - State = 1633; valueStmt(2); + State = 1638; valueStmt(2); } break; } } } - State = 1638; + State = 1643; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,245,_ctx); } @@ -9018,21 +8860,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeOfIsExpressionContext typeOfIsExpression() { TypeOfIsExpressionContext _localctx = new TypeOfIsExpressionContext(_ctx, State); - EnterRule(_localctx, 154, RULE_typeOfIsExpression); + EnterRule(_localctx, 156, RULE_typeOfIsExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1639; Match(TYPEOF); - State = 1640; whiteSpace(); - State = 1641; valueStmt(0); - State = 1647; + State = 1644; Match(TYPEOF); + State = 1645; whiteSpace(); + State = 1646; valueStmt(0); + State = 1652; switch ( Interpreter.AdaptivePredict(_input,246,_ctx) ) { case 1: { - State = 1642; whiteSpace(); - State = 1643; Match(IS); - State = 1644; whiteSpace(); - State = 1645; type(); + State = 1647; whiteSpace(); + State = 1648; Match(IS); + State = 1649; whiteSpace(); + State = 1650; type(); } break; } @@ -9088,20 +8930,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableStmtContext variableStmt() { VariableStmtContext _localctx = new VariableStmtContext(_ctx, State); - EnterRule(_localctx, 156, RULE_variableStmt); + EnterRule(_localctx, 158, RULE_variableStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1652; + State = 1657; switch (_input.La(1)) { case DIM: { - State = 1649; Match(DIM); + State = 1654; Match(DIM); } break; case STATIC: { - State = 1650; Match(STATIC); + State = 1655; Match(STATIC); } break; case FRIEND: @@ -9109,23 +8951,23 @@ public VariableStmtContext variableStmt() { case PRIVATE: case PUBLIC: { - State = 1651; visibility(); + State = 1656; visibility(); } break; default: throw new NoViableAltException(this); } - State = 1654; whiteSpace(); - State = 1657; + State = 1659; whiteSpace(); + State = 1662; switch ( Interpreter.AdaptivePredict(_input,248,_ctx) ) { case 1: { - State = 1655; Match(WITHEVENTS); - State = 1656; whiteSpace(); + State = 1660; Match(WITHEVENTS); + State = 1661; whiteSpace(); } break; } - State = 1659; variableListStmt(); + State = 1664; variableListStmt(); } } catch (RecognitionException re) { @@ -9179,42 +9021,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableListStmtContext variableListStmt() { VariableListStmtContext _localctx = new VariableListStmtContext(_ctx, State); - EnterRule(_localctx, 158, RULE_variableListStmt); + EnterRule(_localctx, 160, RULE_variableListStmt); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1661; variableSubStmt(); - State = 1672; + State = 1666; variableSubStmt(); + State = 1677; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,251,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1663; + State = 1668; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1662; whiteSpace(); + State = 1667; whiteSpace(); } } - State = 1665; Match(COMMA); - State = 1667; + State = 1670; Match(COMMA); + State = 1672; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1666; whiteSpace(); + State = 1671; whiteSpace(); } } - State = 1669; variableSubStmt(); + State = 1674; variableSubStmt(); } } } - State = 1674; + State = 1679; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,251,_ctx); } @@ -9275,75 +9117,75 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VariableSubStmtContext variableSubStmt() { VariableSubStmtContext _localctx = new VariableSubStmtContext(_ctx, State); - EnterRule(_localctx, 160, RULE_variableSubStmt); + EnterRule(_localctx, 162, RULE_variableSubStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1675; identifier(); - State = 1693; + State = 1680; identifier(); + State = 1698; switch ( Interpreter.AdaptivePredict(_input,257,_ctx) ) { case 1: { - State = 1677; + State = 1682; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1676; whiteSpace(); + State = 1681; whiteSpace(); } } - State = 1679; Match(LPAREN); - State = 1681; + State = 1684; Match(LPAREN); + State = 1686; switch ( Interpreter.AdaptivePredict(_input,253,_ctx) ) { case 1: { - State = 1680; whiteSpace(); + State = 1685; whiteSpace(); } break; } - State = 1687; + State = 1692; _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (LPAREN - 193)) | (1L << (MINUS - 193)) | (1L << (STRINGLITERAL - 193)) | (1L << (OCTLITERAL - 193)) | (1L << (HEXLITERAL - 193)) | (1L << (FLOATLITERAL - 193)) | (1L << (INTEGERLITERAL - 193)) | (1L << (DATELITERAL - 193)) | (1L << (WS - 193)) | (1L << (IDENTIFIER - 193)) | (1L << (LINE_CONTINUATION - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) { + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)) | (1L << (ENDIF - 192)) | (1L << (RESUME_NEXT - 192)))) != 0)) { { - State = 1683; subscripts(); - State = 1685; + State = 1688; subscripts(); + State = 1690; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1684; whiteSpace(); + State = 1689; whiteSpace(); } } } } - State = 1689; Match(RPAREN); - State = 1691; + State = 1694; Match(RPAREN); + State = 1696; switch ( Interpreter.AdaptivePredict(_input,256,_ctx) ) { case 1: { - State = 1690; whiteSpace(); + State = 1695; whiteSpace(); } break; } } break; } - State = 1696; + State = 1701; switch ( Interpreter.AdaptivePredict(_input,258,_ctx) ) { case 1: { - State = 1695; typeHint(); + State = 1700; typeHint(); } break; } - State = 1701; + State = 1706; switch ( Interpreter.AdaptivePredict(_input,259,_ctx) ) { case 1: { - State = 1698; whiteSpace(); - State = 1699; asTypeClause(); + State = 1703; whiteSpace(); + State = 1704; asTypeClause(); } break; } @@ -9398,24 +9240,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhileWendStmtContext whileWendStmt() { WhileWendStmtContext _localctx = new WhileWendStmtContext(_ctx, State); - EnterRule(_localctx, 162, RULE_whileWendStmt); - int _la; + EnterRule(_localctx, 164, RULE_whileWendStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1703; Match(WHILE); - State = 1704; whiteSpace(); - State = 1705; valueStmt(0); - State = 1706; endOfStatement(); - State = 1708; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 1708; Match(WHILE); + State = 1709; whiteSpace(); + State = 1710; valueStmt(0); + State = 1711; endOfStatement(); + State = 1713; + switch ( Interpreter.AdaptivePredict(_input,260,_ctx) ) { + case 1: { - State = 1707; block(); + State = 1712; block(); } + break; } - - State = 1710; Match(WEND); + State = 1715; Match(WEND); } } catch (RecognitionException re) { @@ -9467,32 +9308,32 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WidthStmtContext widthStmt() { WidthStmtContext _localctx = new WidthStmtContext(_ctx, State); - EnterRule(_localctx, 164, RULE_widthStmt); + EnterRule(_localctx, 166, RULE_widthStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1712; Match(WIDTH); - State = 1713; whiteSpace(); - State = 1714; fileNumber(); - State = 1716; + State = 1717; Match(WIDTH); + State = 1718; whiteSpace(); + State = 1719; fileNumber(); + State = 1721; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1715; whiteSpace(); + State = 1720; whiteSpace(); } } - State = 1718; Match(COMMA); - State = 1720; + State = 1723; Match(COMMA); + State = 1725; switch ( Interpreter.AdaptivePredict(_input,262,_ctx) ) { case 1: { - State = 1719; whiteSpace(); + State = 1724; whiteSpace(); } break; } - State = 1722; valueStmt(0); + State = 1727; valueStmt(0); } } catch (RecognitionException re) { @@ -9544,24 +9385,23 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtContext withStmt() { WithStmtContext _localctx = new WithStmtContext(_ctx, State); - EnterRule(_localctx, 166, RULE_withStmt); - int _la; + EnterRule(_localctx, 168, RULE_withStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1724; Match(WITH); - State = 1725; whiteSpace(); - State = 1726; withStmtExpression(); - State = 1727; endOfStatement(); - State = 1729; - _la = _input.La(1); - if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EMPTY - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (LPAREN - 192)) | (1L << (MINUS - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (COLLECTION - 192)) | (1L << (DELETESETTING - 192)) | (1L << (LOAD - 192)) | (1L << (RMDIR - 192)) | (1L << (SENDKEYS - 192)) | (1L << (SETATTR - 192)))) != 0)) { + State = 1729; Match(WITH); + State = 1730; whiteSpace(); + State = 1731; withStmtExpression(); + State = 1732; endOfStatement(); + State = 1734; + switch ( Interpreter.AdaptivePredict(_input,263,_ctx) ) { + case 1: { - State = 1728; block(); + State = 1733; block(); } + break; } - - State = 1731; Match(END_WITH); + State = 1736; Match(END_WITH); } } catch (RecognitionException re) { @@ -9602,11 +9442,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WithStmtExpressionContext withStmtExpression() { WithStmtExpressionContext _localctx = new WithStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 168, RULE_withStmtExpression); + EnterRule(_localctx, 170, RULE_withStmtExpression); try { EnterOuterAlt(_localctx, 1); { - State = 1733; valueStmt(0); + State = 1738; valueStmt(0); } } catch (RecognitionException re) { @@ -9658,36 +9498,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WriteStmtContext writeStmt() { WriteStmtContext _localctx = new WriteStmtContext(_ctx, State); - EnterRule(_localctx, 170, RULE_writeStmt); + EnterRule(_localctx, 172, RULE_writeStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1735; Match(WRITE); - State = 1736; whiteSpace(); - State = 1737; fileNumber(); - State = 1739; + State = 1740; Match(WRITE); + State = 1741; whiteSpace(); + State = 1742; fileNumber(); + State = 1744; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1738; whiteSpace(); + State = 1743; whiteSpace(); } } - State = 1741; Match(COMMA); - State = 1746; + State = 1746; Match(COMMA); + State = 1751; switch ( Interpreter.AdaptivePredict(_input,266,_ctx) ) { case 1: { - State = 1743; + State = 1748; switch ( Interpreter.AdaptivePredict(_input,265,_ctx) ) { case 1: { - State = 1742; whiteSpace(); + State = 1747; whiteSpace(); } break; } - State = 1745; outputList(); + State = 1750; outputList(); } break; } @@ -9732,20 +9572,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FileNumberContext fileNumber() { FileNumberContext _localctx = new FileNumberContext(_ctx, State); - EnterRule(_localctx, 172, RULE_fileNumber); + EnterRule(_localctx, 174, RULE_fileNumber); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 1749; + State = 1754; _la = _input.La(1); if (_la==HASH) { { - State = 1748; Match(HASH); + State = 1753; Match(HASH); } } - State = 1751; valueStmt(0); + State = 1756; valueStmt(0); } } catch (RecognitionException re) { @@ -9790,13 +9630,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtContext explicitCallStmt() { ExplicitCallStmtContext _localctx = new ExplicitCallStmtContext(_ctx, State); - EnterRule(_localctx, 174, RULE_explicitCallStmt); + EnterRule(_localctx, 176, RULE_explicitCallStmt); try { EnterOuterAlt(_localctx, 1); { - State = 1753; Match(CALL); - State = 1754; whiteSpace(); - State = 1755; explicitCallStmtExpression(); + State = 1758; Match(CALL); + State = 1759; whiteSpace(); + State = 1760; explicitCallStmtExpression(); } } catch (RecognitionException re) { @@ -9920,90 +9760,90 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { ExplicitCallStmtExpressionContext _localctx = new ExplicitCallStmtExpressionContext(_ctx, State); - EnterRule(_localctx, 176, RULE_explicitCallStmtExpression); + EnterRule(_localctx, 178, RULE_explicitCallStmtExpression); int _la; try { int _alt; - State = 1823; + State = 1828; switch ( Interpreter.AdaptivePredict(_input,283,_ctx) ) { case 1: _localctx = new ECS_MemberCallContext(_localctx); EnterOuterAlt(_localctx, 1); { - State = 1758; + State = 1763; switch ( Interpreter.AdaptivePredict(_input,268,_ctx) ) { case 1: { - State = 1757; implicitCallStmt_InStmt(); + State = 1762; implicitCallStmt_InStmt(); } break; } - State = 1760; Match(DOT); - State = 1761; identifier(); - State = 1763; + State = 1765; Match(DOT); + State = 1766; identifier(); + State = 1768; switch ( Interpreter.AdaptivePredict(_input,269,_ctx) ) { case 1: { - State = 1762; typeHint(); + State = 1767; typeHint(); } break; } - State = 1778; + State = 1783; switch ( Interpreter.AdaptivePredict(_input,273,_ctx) ) { case 1: { - State = 1766; + State = 1771; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1765; whiteSpace(); + State = 1770; whiteSpace(); } } - State = 1768; Match(LPAREN); - State = 1770; + State = 1773; Match(LPAREN); + State = 1775; switch ( Interpreter.AdaptivePredict(_input,271,_ctx) ) { case 1: { - State = 1769; whiteSpace(); + State = 1774; whiteSpace(); } break; } - State = 1772; argsCall(); - State = 1774; + State = 1777; argsCall(); + State = 1779; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1773; whiteSpace(); + State = 1778; whiteSpace(); } } - State = 1776; Match(RPAREN); + State = 1781; Match(RPAREN); } break; } - State = 1789; + State = 1794; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,275,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1781; + State = 1786; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1780; whiteSpace(); + State = 1785; whiteSpace(); } } - State = 1783; Match(LPAREN); - State = 1784; subscripts(); - State = 1785; Match(RPAREN); + State = 1788; Match(LPAREN); + State = 1789; subscripts(); + State = 1790; Match(RPAREN); } } } - State = 1791; + State = 1796; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,275,_ctx); } @@ -10014,71 +9854,71 @@ public ExplicitCallStmtExpressionContext explicitCallStmtExpression() { _localctx = new ECS_ProcedureCallContext(_localctx); EnterOuterAlt(_localctx, 2); { - State = 1792; identifier(); - State = 1794; + State = 1797; identifier(); + State = 1799; switch ( Interpreter.AdaptivePredict(_input,276,_ctx) ) { case 1: { - State = 1793; typeHint(); + State = 1798; typeHint(); } break; } - State = 1809; + State = 1814; switch ( Interpreter.AdaptivePredict(_input,280,_ctx) ) { case 1: { - State = 1797; + State = 1802; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1796; whiteSpace(); + State = 1801; whiteSpace(); } } - State = 1799; Match(LPAREN); - State = 1801; + State = 1804; Match(LPAREN); + State = 1806; switch ( Interpreter.AdaptivePredict(_input,278,_ctx) ) { case 1: { - State = 1800; whiteSpace(); + State = 1805; whiteSpace(); } break; } - State = 1803; argsCall(); - State = 1805; + State = 1808; argsCall(); + State = 1810; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1804; whiteSpace(); + State = 1809; whiteSpace(); } } - State = 1807; Match(RPAREN); + State = 1812; Match(RPAREN); } break; } - State = 1820; + State = 1825; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1812; + State = 1817; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1811; whiteSpace(); + State = 1816; whiteSpace(); } } - State = 1814; Match(LPAREN); - State = 1815; subscripts(); - State = 1816; Match(RPAREN); + State = 1819; Match(LPAREN); + State = 1820; subscripts(); + State = 1821; Match(RPAREN); } } } - State = 1822; + State = 1827; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,282,_ctx); } @@ -10127,21 +9967,21 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InBlockContext implicitCallStmt_InBlock() { ImplicitCallStmt_InBlockContext _localctx = new ImplicitCallStmt_InBlockContext(_ctx, State); - EnterRule(_localctx, 178, RULE_implicitCallStmt_InBlock); + EnterRule(_localctx, 180, RULE_implicitCallStmt_InBlock); try { - State = 1827; + State = 1832; switch ( Interpreter.AdaptivePredict(_input,284,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1825; iCS_B_MemberProcedureCall(); + State = 1830; iCS_B_MemberProcedureCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1826; iCS_B_ProcedureCall(); + State = 1831; iCS_B_ProcedureCall(); } break; } @@ -10217,93 +10057,93 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_MemberProcedureCallContext iCS_B_MemberProcedureCall() { ICS_B_MemberProcedureCallContext _localctx = new ICS_B_MemberProcedureCallContext(_ctx, State); - EnterRule(_localctx, 180, RULE_iCS_B_MemberProcedureCall); + EnterRule(_localctx, 182, RULE_iCS_B_MemberProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1830; + State = 1835; switch ( Interpreter.AdaptivePredict(_input,285,_ctx) ) { case 1: { - State = 1829; implicitCallStmt_InStmt(); + State = 1834; implicitCallStmt_InStmt(); } break; } - State = 1833; + State = 1838; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1832; whiteSpace(); + State = 1837; whiteSpace(); } } - State = 1835; Match(DOT); - State = 1837; + State = 1840; Match(DOT); + State = 1842; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1836; whiteSpace(); + State = 1841; whiteSpace(); } } - State = 1839; unrestrictedIdentifier(); - State = 1841; + State = 1844; unrestrictedIdentifier(); + State = 1846; switch ( Interpreter.AdaptivePredict(_input,288,_ctx) ) { case 1: { - State = 1840; typeHint(); + State = 1845; typeHint(); } break; } - State = 1846; + State = 1851; switch ( Interpreter.AdaptivePredict(_input,289,_ctx) ) { case 1: { - State = 1843; whiteSpace(); - State = 1844; argsCall(); + State = 1848; whiteSpace(); + State = 1849; argsCall(); } break; } - State = 1852; + State = 1857; switch ( Interpreter.AdaptivePredict(_input,291,_ctx) ) { case 1: { - State = 1849; + State = 1854; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1848; whiteSpace(); + State = 1853; whiteSpace(); } } - State = 1851; dictionaryCallStmt(); + State = 1856; dictionaryCallStmt(); } break; } - State = 1863; + State = 1868; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,293,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1855; + State = 1860; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1854; whiteSpace(); + State = 1859; whiteSpace(); } } - State = 1857; Match(LPAREN); - State = 1858; subscripts(); - State = 1859; Match(RPAREN); + State = 1862; Match(LPAREN); + State = 1863; subscripts(); + State = 1864; Match(RPAREN); } } } - State = 1865; + State = 1870; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,293,_ctx); } @@ -10370,44 +10210,44 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_B_ProcedureCallContext iCS_B_ProcedureCall() { ICS_B_ProcedureCallContext _localctx = new ICS_B_ProcedureCallContext(_ctx, State); - EnterRule(_localctx, 182, RULE_iCS_B_ProcedureCall); + EnterRule(_localctx, 184, RULE_iCS_B_ProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1866; identifier(); - State = 1870; + State = 1871; identifier(); + State = 1875; switch ( Interpreter.AdaptivePredict(_input,294,_ctx) ) { case 1: { - State = 1867; whiteSpace(); - State = 1868; argsCall(); + State = 1872; whiteSpace(); + State = 1873; argsCall(); } break; } - State = 1881; + State = 1886; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,296,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1873; + State = 1878; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1872; whiteSpace(); + State = 1877; whiteSpace(); } } - State = 1875; Match(LPAREN); - State = 1876; subscripts(); - State = 1877; Match(RPAREN); + State = 1880; Match(LPAREN); + State = 1881; subscripts(); + State = 1882; Match(RPAREN); } } } - State = 1883; + State = 1888; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,296,_ctx); } @@ -10460,35 +10300,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ImplicitCallStmt_InStmtContext implicitCallStmt_InStmt() { ImplicitCallStmt_InStmtContext _localctx = new ImplicitCallStmt_InStmtContext(_ctx, State); - EnterRule(_localctx, 184, RULE_implicitCallStmt_InStmt); + EnterRule(_localctx, 186, RULE_implicitCallStmt_InStmt); try { - State = 1888; + State = 1893; switch ( Interpreter.AdaptivePredict(_input,297,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 1884; iCS_S_MembersCall(); + State = 1889; iCS_S_MembersCall(); } break; case 2: EnterOuterAlt(_localctx, 2); { - State = 1885; iCS_S_VariableOrProcedureCall(); + State = 1890; iCS_S_VariableOrProcedureCall(); } break; case 3: EnterOuterAlt(_localctx, 3); { - State = 1886; iCS_S_ProcedureOrArrayCall(); + State = 1891; iCS_S_ProcedureOrArrayCall(); } break; case 4: EnterOuterAlt(_localctx, 4); { - State = 1887; iCS_S_DictionaryCall(); + State = 1892; iCS_S_DictionaryCall(); } break; } @@ -10557,59 +10397,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallContext iCS_S_VariableOrProcedureCall() { ICS_S_VariableOrProcedureCallContext _localctx = new ICS_S_VariableOrProcedureCallContext(_ctx, State); - EnterRule(_localctx, 186, RULE_iCS_S_VariableOrProcedureCall); + EnterRule(_localctx, 188, RULE_iCS_S_VariableOrProcedureCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1890; identifier(); - State = 1892; + State = 1895; identifier(); + State = 1897; switch ( Interpreter.AdaptivePredict(_input,298,_ctx) ) { case 1: { - State = 1891; typeHint(); + State = 1896; typeHint(); } break; } - State = 1898; + State = 1903; switch ( Interpreter.AdaptivePredict(_input,300,_ctx) ) { case 1: { - State = 1895; + State = 1900; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1894; whiteSpace(); + State = 1899; whiteSpace(); } } - State = 1897; dictionaryCallStmt(); + State = 1902; dictionaryCallStmt(); } break; } - State = 1909; + State = 1914; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,302,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1901; + State = 1906; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1900; whiteSpace(); + State = 1905; whiteSpace(); } } - State = 1903; Match(LPAREN); - State = 1904; subscripts(); - State = 1905; Match(RPAREN); + State = 1908; Match(LPAREN); + State = 1909; subscripts(); + State = 1910; Match(RPAREN); } } } - State = 1911; + State = 1916; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,302,_ctx); } @@ -10685,106 +10525,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallContext iCS_S_ProcedureOrArrayCall() { ICS_S_ProcedureOrArrayCallContext _localctx = new ICS_S_ProcedureOrArrayCallContext(_ctx, State); - EnterRule(_localctx, 188, RULE_iCS_S_ProcedureOrArrayCall); + EnterRule(_localctx, 190, RULE_iCS_S_ProcedureOrArrayCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1914; + State = 1919; switch ( Interpreter.AdaptivePredict(_input,303,_ctx) ) { case 1: { - State = 1912; identifier(); + State = 1917; identifier(); } break; case 2: { - State = 1913; baseType(); + State = 1918; baseType(); } break; } - State = 1917; + State = 1922; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 1916; typeHint(); + State = 1921; typeHint(); } } - State = 1920; + State = 1925; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1919; whiteSpace(); + State = 1924; whiteSpace(); } } - State = 1922; Match(LPAREN); - State = 1924; + State = 1927; Match(LPAREN); + State = 1929; switch ( Interpreter.AdaptivePredict(_input,306,_ctx) ) { case 1: { - State = 1923; whiteSpace(); + State = 1928; whiteSpace(); } break; } - State = 1930; + State = 1935; switch ( Interpreter.AdaptivePredict(_input,308,_ctx) ) { case 1: { - State = 1926; argsCall(); - State = 1928; + State = 1931; argsCall(); + State = 1933; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1927; whiteSpace(); + State = 1932; whiteSpace(); } } } break; } - State = 1932; Match(RPAREN); - State = 1937; + State = 1937; Match(RPAREN); + State = 1942; switch ( Interpreter.AdaptivePredict(_input,310,_ctx) ) { case 1: { - State = 1934; + State = 1939; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1933; whiteSpace(); + State = 1938; whiteSpace(); } } - State = 1936; dictionaryCallStmt(); + State = 1941; dictionaryCallStmt(); } break; } - State = 1948; + State = 1953; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,312,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1940; + State = 1945; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1939; whiteSpace(); + State = 1944; whiteSpace(); } } - State = 1942; Match(LPAREN); - State = 1943; subscripts(); - State = 1944; Match(RPAREN); + State = 1947; Match(LPAREN); + State = 1948; subscripts(); + State = 1949; Match(RPAREN); } } } - State = 1950; + State = 1955; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,312,_ctx); } @@ -10854,59 +10694,59 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_VariableOrProcedureCallUnrestrictedContext iCS_S_VariableOrProcedureCallUnrestricted() { ICS_S_VariableOrProcedureCallUnrestrictedContext _localctx = new ICS_S_VariableOrProcedureCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 190, RULE_iCS_S_VariableOrProcedureCallUnrestricted); + EnterRule(_localctx, 192, RULE_iCS_S_VariableOrProcedureCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1951; unrestrictedIdentifier(); - State = 1953; + State = 1956; unrestrictedIdentifier(); + State = 1958; switch ( Interpreter.AdaptivePredict(_input,313,_ctx) ) { case 1: { - State = 1952; typeHint(); + State = 1957; typeHint(); } break; } - State = 1959; + State = 1964; switch ( Interpreter.AdaptivePredict(_input,315,_ctx) ) { case 1: { - State = 1956; + State = 1961; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1955; whiteSpace(); + State = 1960; whiteSpace(); } } - State = 1958; dictionaryCallStmt(); + State = 1963; dictionaryCallStmt(); } break; } - State = 1970; + State = 1975; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,317,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 1962; + State = 1967; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1961; whiteSpace(); + State = 1966; whiteSpace(); } } - State = 1964; Match(LPAREN); - State = 1965; subscripts(); - State = 1966; Match(RPAREN); + State = 1969; Match(LPAREN); + State = 1970; subscripts(); + State = 1971; Match(RPAREN); } } } - State = 1972; + State = 1977; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,317,_ctx); } @@ -10982,106 +10822,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_ProcedureOrArrayCallUnrestrictedContext iCS_S_ProcedureOrArrayCallUnrestricted() { ICS_S_ProcedureOrArrayCallUnrestrictedContext _localctx = new ICS_S_ProcedureOrArrayCallUnrestrictedContext(_ctx, State); - EnterRule(_localctx, 192, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); + EnterRule(_localctx, 194, RULE_iCS_S_ProcedureOrArrayCallUnrestricted); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 1975; + State = 1980; switch ( Interpreter.AdaptivePredict(_input,318,_ctx) ) { case 1: { - State = 1973; unrestrictedIdentifier(); + State = 1978; unrestrictedIdentifier(); } break; case 2: { - State = 1974; baseType(); + State = 1979; baseType(); } break; } - State = 1978; + State = 1983; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 1977; typeHint(); + State = 1982; typeHint(); } } - State = 1981; + State = 1986; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1980; whiteSpace(); + State = 1985; whiteSpace(); } } - State = 1983; Match(LPAREN); - State = 1985; + State = 1988; Match(LPAREN); + State = 1990; switch ( Interpreter.AdaptivePredict(_input,321,_ctx) ) { case 1: { - State = 1984; whiteSpace(); + State = 1989; whiteSpace(); } break; } - State = 1991; + State = 1996; switch ( Interpreter.AdaptivePredict(_input,323,_ctx) ) { case 1: { - State = 1987; argsCall(); - State = 1989; + State = 1992; argsCall(); + State = 1994; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1988; whiteSpace(); + State = 1993; whiteSpace(); } } } break; } - State = 1993; Match(RPAREN); - State = 1998; + State = 1998; Match(RPAREN); + State = 2003; switch ( Interpreter.AdaptivePredict(_input,325,_ctx) ) { case 1: { - State = 1995; + State = 2000; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 1994; whiteSpace(); + State = 1999; whiteSpace(); } } - State = 1997; dictionaryCallStmt(); + State = 2002; dictionaryCallStmt(); } break; } - State = 2009; + State = 2014; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2001; + State = 2006; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2000; whiteSpace(); + State = 2005; whiteSpace(); } } - State = 2003; Match(LPAREN); - State = 2004; subscripts(); - State = 2005; Match(RPAREN); + State = 2008; Match(LPAREN); + State = 2009; subscripts(); + State = 2010; Match(RPAREN); } } } - State = 2011; + State = 2016; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,327,_ctx); } @@ -11157,27 +10997,27 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MembersCallContext iCS_S_MembersCall() { ICS_S_MembersCallContext _localctx = new ICS_S_MembersCallContext(_ctx, State); - EnterRule(_localctx, 194, RULE_iCS_S_MembersCall); + EnterRule(_localctx, 196, RULE_iCS_S_MembersCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2014; + State = 2019; switch ( Interpreter.AdaptivePredict(_input,328,_ctx) ) { case 1: { - State = 2012; iCS_S_VariableOrProcedureCall(); + State = 2017; iCS_S_VariableOrProcedureCall(); } break; case 2: { - State = 2013; iCS_S_ProcedureOrArrayCall(); + State = 2018; iCS_S_ProcedureOrArrayCall(); } break; } - State = 2020; + State = 2025; _errHandler.Sync(this); _alt = 1; do { @@ -11185,12 +11025,12 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { case 1: { { - State = 2016; iCS_S_MemberCall(); - State = 2018; + State = 2021; iCS_S_MemberCall(); + State = 2023; switch ( Interpreter.AdaptivePredict(_input,329,_ctx) ) { case 1: { - State = 2017; whiteSpace(); + State = 2022; whiteSpace(); } break; } @@ -11200,48 +11040,48 @@ public ICS_S_MembersCallContext iCS_S_MembersCall() { default: throw new NoViableAltException(this); } - State = 2022; + State = 2027; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,330,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2028; + State = 2033; switch ( Interpreter.AdaptivePredict(_input,332,_ctx) ) { case 1: { - State = 2025; + State = 2030; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2024; whiteSpace(); + State = 2029; whiteSpace(); } } - State = 2027; dictionaryCallStmt(); + State = 2032; dictionaryCallStmt(); } break; } - State = 2039; + State = 2044; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,334,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2031; + State = 2036; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2030; whiteSpace(); + State = 2035; whiteSpace(); } } - State = 2033; Match(LPAREN); - State = 2034; subscripts(); - State = 2035; Match(RPAREN); + State = 2038; Match(LPAREN); + State = 2039; subscripts(); + State = 2040; Match(RPAREN); } } } - State = 2041; + State = 2046; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,334,_ctx); } @@ -11293,36 +11133,36 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_MemberCallContext iCS_S_MemberCall() { ICS_S_MemberCallContext _localctx = new ICS_S_MemberCallContext(_ctx, State); - EnterRule(_localctx, 196, RULE_iCS_S_MemberCall); + EnterRule(_localctx, 198, RULE_iCS_S_MemberCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2042; + State = 2047; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2044; + State = 2049; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2043; whiteSpace(); + State = 2048; whiteSpace(); } } - State = 2048; + State = 2053; switch ( Interpreter.AdaptivePredict(_input,336,_ctx) ) { case 1: { - State = 2046; iCS_S_VariableOrProcedureCallUnrestricted(); + State = 2051; iCS_S_VariableOrProcedureCallUnrestricted(); } break; case 2: { - State = 2047; iCS_S_ProcedureOrArrayCallUnrestricted(); + State = 2052; iCS_S_ProcedureOrArrayCallUnrestricted(); } break; } @@ -11369,20 +11209,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ICS_S_DictionaryCallContext iCS_S_DictionaryCall() { ICS_S_DictionaryCallContext _localctx = new ICS_S_DictionaryCallContext(_ctx, State); - EnterRule(_localctx, 198, RULE_iCS_S_DictionaryCall); + EnterRule(_localctx, 200, RULE_iCS_S_DictionaryCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2051; + State = 2056; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2050; whiteSpace(); + State = 2055; whiteSpace(); } } - State = 2053; dictionaryCallStmt(); + State = 2058; dictionaryCallStmt(); } } catch (RecognitionException re) { @@ -11440,98 +11280,98 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgsCallContext argsCall() { ArgsCallContext _localctx = new ArgsCallContext(_ctx, State); - EnterRule(_localctx, 200, RULE_argsCall); + EnterRule(_localctx, 202, RULE_argsCall); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2067; + State = 2072; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,341,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2056; + State = 2061; switch ( Interpreter.AdaptivePredict(_input,338,_ctx) ) { case 1: { - State = 2055; argCall(); + State = 2060; argCall(); } break; } - State = 2059; + State = 2064; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2058; whiteSpace(); + State = 2063; whiteSpace(); } } - State = 2061; + State = 2066; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2063; + State = 2068; switch ( Interpreter.AdaptivePredict(_input,340,_ctx) ) { case 1: { - State = 2062; whiteSpace(); + State = 2067; whiteSpace(); } break; } } } } - State = 2069; + State = 2074; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,341,_ctx); } - State = 2070; argCall(); - State = 2083; + State = 2075; argCall(); + State = 2088; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,345,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2072; + State = 2077; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2071; whiteSpace(); + State = 2076; whiteSpace(); } } - State = 2074; + State = 2079; _la = _input.La(1); if ( !(_la==COMMA || _la==SEMICOLON) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2076; + State = 2081; switch ( Interpreter.AdaptivePredict(_input,343,_ctx) ) { case 1: { - State = 2075; whiteSpace(); + State = 2080; whiteSpace(); } break; } - State = 2079; + State = 2084; switch ( Interpreter.AdaptivePredict(_input,344,_ctx) ) { case 1: { - State = 2078; argCall(); + State = 2083; argCall(); } break; } } } } - State = 2085; + State = 2090; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,345,_ctx); } @@ -11583,42 +11423,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgCallContext argCall() { ArgCallContext _localctx = new ArgCallContext(_ctx, State); - EnterRule(_localctx, 202, RULE_argCall); + EnterRule(_localctx, 204, RULE_argCall); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2087; + State = 2092; switch ( Interpreter.AdaptivePredict(_input,346,_ctx) ) { case 1: { - State = 2086; Match(LPAREN); + State = 2091; Match(LPAREN); } break; } - State = 2091; + State = 2096; switch ( Interpreter.AdaptivePredict(_input,347,_ctx) ) { case 1: { - State = 2089; + State = 2094; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF || _la==PARAMARRAY) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2090; whiteSpace(); + State = 2095; whiteSpace(); } break; } - State = 2094; + State = 2099; _la = _input.La(1); if (_la==RPAREN) { { - State = 2093; Match(RPAREN); + State = 2098; Match(RPAREN); } } - State = 2096; valueStmt(0); + State = 2101; valueStmt(0); } } catch (RecognitionException re) { @@ -11666,26 +11506,26 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public DictionaryCallStmtContext dictionaryCallStmt() { DictionaryCallStmtContext _localctx = new DictionaryCallStmtContext(_ctx, State); - EnterRule(_localctx, 204, RULE_dictionaryCallStmt); + EnterRule(_localctx, 206, RULE_dictionaryCallStmt); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2098; Match(EXCLAMATIONPOINT); - State = 2100; + State = 2103; Match(EXCLAMATIONPOINT); + State = 2105; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2099; whiteSpace(); + State = 2104; whiteSpace(); } } - State = 2102; unrestrictedIdentifier(); - State = 2104; + State = 2107; unrestrictedIdentifier(); + State = 2109; switch ( Interpreter.AdaptivePredict(_input,350,_ctx) ) { case 1: { - State = 2103; typeHint(); + State = 2108; typeHint(); } break; } @@ -11744,70 +11584,70 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgListContext argList() { ArgListContext _localctx = new ArgListContext(_ctx, State); - EnterRule(_localctx, 206, RULE_argList); + EnterRule(_localctx, 208, RULE_argList); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2106; Match(LPAREN); - State = 2124; + State = 2111; Match(LPAREN); + State = 2129; switch ( Interpreter.AdaptivePredict(_input,355,_ctx) ) { case 1: { - State = 2108; + State = 2113; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2107; whiteSpace(); + State = 2112; whiteSpace(); } } - State = 2110; arg(); - State = 2121; + State = 2115; arg(); + State = 2126; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,354,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2112; + State = 2117; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2111; whiteSpace(); + State = 2116; whiteSpace(); } } - State = 2114; Match(COMMA); - State = 2116; + State = 2119; Match(COMMA); + State = 2121; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2115; whiteSpace(); + State = 2120; whiteSpace(); } } - State = 2118; arg(); + State = 2123; arg(); } } } - State = 2123; + State = 2128; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,354,_ctx); } } break; } - State = 2127; + State = 2132; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2126; whiteSpace(); + State = 2131; whiteSpace(); } } - State = 2129; Match(RPAREN); + State = 2134; Match(RPAREN); } } catch (RecognitionException re) { @@ -11869,106 +11709,106 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgContext arg() { ArgContext _localctx = new ArgContext(_ctx, State); - EnterRule(_localctx, 208, RULE_arg); + EnterRule(_localctx, 210, RULE_arg); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2133; + State = 2138; switch ( Interpreter.AdaptivePredict(_input,357,_ctx) ) { case 1: { - State = 2131; Match(OPTIONAL); - State = 2132; whiteSpace(); + State = 2136; Match(OPTIONAL); + State = 2137; whiteSpace(); } break; } - State = 2137; + State = 2142; switch ( Interpreter.AdaptivePredict(_input,358,_ctx) ) { case 1: { - State = 2135; + State = 2140; _la = _input.La(1); if ( !(_la==BYVAL || _la==BYREF) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2136; whiteSpace(); + State = 2141; whiteSpace(); } break; } - State = 2141; + State = 2146; switch ( Interpreter.AdaptivePredict(_input,359,_ctx) ) { case 1: { - State = 2139; Match(PARAMARRAY); - State = 2140; whiteSpace(); + State = 2144; Match(PARAMARRAY); + State = 2145; whiteSpace(); } break; } - State = 2143; unrestrictedIdentifier(); - State = 2145; + State = 2148; unrestrictedIdentifier(); + State = 2150; _la = _input.La(1); if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) { { - State = 2144; typeHint(); + State = 2149; typeHint(); } } - State = 2155; + State = 2160; switch ( Interpreter.AdaptivePredict(_input,363,_ctx) ) { case 1: { - State = 2148; + State = 2153; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2147; whiteSpace(); + State = 2152; whiteSpace(); } } - State = 2150; Match(LPAREN); - State = 2152; + State = 2155; Match(LPAREN); + State = 2157; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2151; whiteSpace(); + State = 2156; whiteSpace(); } } - State = 2154; Match(RPAREN); + State = 2159; Match(RPAREN); } break; } - State = 2161; + State = 2166; switch ( Interpreter.AdaptivePredict(_input,365,_ctx) ) { case 1: { - State = 2158; + State = 2163; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2157; whiteSpace(); + State = 2162; whiteSpace(); } } - State = 2160; asTypeClause(); + State = 2165; asTypeClause(); } break; } - State = 2167; + State = 2172; switch ( Interpreter.AdaptivePredict(_input,367,_ctx) ) { case 1: { - State = 2164; + State = 2169; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2163; whiteSpace(); + State = 2168; whiteSpace(); } } - State = 2166; argDefaultValue(); + State = 2171; argDefaultValue(); } break; } @@ -12016,20 +11856,20 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ArgDefaultValueContext argDefaultValue() { ArgDefaultValueContext _localctx = new ArgDefaultValueContext(_ctx, State); - EnterRule(_localctx, 210, RULE_argDefaultValue); + EnterRule(_localctx, 212, RULE_argDefaultValue); try { EnterOuterAlt(_localctx, 1); { - State = 2169; Match(EQ); - State = 2171; + State = 2174; Match(EQ); + State = 2176; switch ( Interpreter.AdaptivePredict(_input,368,_ctx) ) { case 1: { - State = 2170; whiteSpace(); + State = 2175; whiteSpace(); } break; } - State = 2173; valueStmt(0); + State = 2178; valueStmt(0); } } catch (RecognitionException re) { @@ -12083,42 +11923,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptsContext subscripts() { SubscriptsContext _localctx = new SubscriptsContext(_ctx, State); - EnterRule(_localctx, 212, RULE_subscripts); + EnterRule(_localctx, 214, RULE_subscripts); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2175; subscript(); - State = 2186; + State = 2180; subscript(); + State = 2191; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,371,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2177; + State = 2182; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2176; whiteSpace(); + State = 2181; whiteSpace(); } } - State = 2179; Match(COMMA); - State = 2181; + State = 2184; Match(COMMA); + State = 2186; switch ( Interpreter.AdaptivePredict(_input,370,_ctx) ) { case 1: { - State = 2180; whiteSpace(); + State = 2185; whiteSpace(); } break; } - State = 2183; subscript(); + State = 2188; subscript(); } } } - State = 2188; + State = 2193; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,371,_ctx); } @@ -12172,22 +12012,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public SubscriptContext subscript() { SubscriptContext _localctx = new SubscriptContext(_ctx, State); - EnterRule(_localctx, 214, RULE_subscript); + EnterRule(_localctx, 216, RULE_subscript); try { EnterOuterAlt(_localctx, 1); { - State = 2194; + State = 2199; switch ( Interpreter.AdaptivePredict(_input,372,_ctx) ) { case 1: { - State = 2189; valueStmt(0); - State = 2190; whiteSpace(); - State = 2191; Match(TO); - State = 2192; whiteSpace(); + State = 2194; valueStmt(0); + State = 2195; whiteSpace(); + State = 2196; Match(TO); + State = 2197; whiteSpace(); } break; } - State = 2196; valueStmt(0); + State = 2201; valueStmt(0); } } catch (RecognitionException re) { @@ -12234,9 +12074,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public UnrestrictedIdentifierContext unrestrictedIdentifier() { UnrestrictedIdentifierContext _localctx = new UnrestrictedIdentifierContext(_ctx, State); - EnterRule(_localctx, 216, RULE_unrestrictedIdentifier); + EnterRule(_localctx, 218, RULE_unrestrictedIdentifier); try { - State = 2201; + State = 2206; switch (_input.La(1)) { case ABS: case ANY: @@ -12332,7 +12172,7 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case SETATTR: EnterOuterAlt(_localctx, 1); { - State = 2198; identifier(); + State = 2203; identifier(); } break; case EXIT: @@ -12429,13 +12269,13 @@ public UnrestrictedIdentifierContext unrestrictedIdentifier() { case RESUME_NEXT: EnterOuterAlt(_localctx, 2); { - State = 2199; statementKeyword(); + State = 2204; statementKeyword(); } break; case AS: EnterOuterAlt(_localctx, 3); { - State = 2200; markerKeyword(); + State = 2205; markerKeyword(); } break; default: @@ -12481,14 +12321,14 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IdentifierContext identifier() { IdentifierContext _localctx = new IdentifierContext(_ctx, State); - EnterRule(_localctx, 218, RULE_identifier); + EnterRule(_localctx, 220, RULE_identifier); try { - State = 2205; + State = 2210; switch (_input.La(1)) { case IDENTIFIER: EnterOuterAlt(_localctx, 1); { - State = 2203; Match(IDENTIFIER); + State = 2208; Match(IDENTIFIER); } break; case ABS: @@ -12584,7 +12424,7 @@ public IdentifierContext identifier() { case SETATTR: EnterOuterAlt(_localctx, 2); { - State = 2204; keyword(); + State = 2209; keyword(); } break; default: @@ -12640,43 +12480,43 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AsTypeClauseContext asTypeClause() { AsTypeClauseContext _localctx = new AsTypeClauseContext(_ctx, State); - EnterRule(_localctx, 220, RULE_asTypeClause); + EnterRule(_localctx, 222, RULE_asTypeClause); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2207; Match(AS); - State = 2209; + State = 2212; Match(AS); + State = 2214; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2208; whiteSpace(); + State = 2213; whiteSpace(); } } - State = 2213; + State = 2218; switch ( Interpreter.AdaptivePredict(_input,376,_ctx) ) { case 1: { - State = 2211; Match(NEW); - State = 2212; whiteSpace(); + State = 2216; Match(NEW); + State = 2217; whiteSpace(); } break; } - State = 2215; type(); - State = 2220; + State = 2220; type(); + State = 2225; switch ( Interpreter.AdaptivePredict(_input,378,_ctx) ) { case 1: { - State = 2217; + State = 2222; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2216; whiteSpace(); + State = 2221; whiteSpace(); } } - State = 2219; fieldLength(); + State = 2224; fieldLength(); } break; } @@ -12729,12 +12569,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public BaseTypeContext baseType() { BaseTypeContext _localctx = new BaseTypeContext(_ctx, State); - EnterRule(_localctx, 222, RULE_baseType); + EnterRule(_localctx, 224, RULE_baseType); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2222; + State = 2227; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << CURRENCY) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << BOOLEAN) | (1L << BYTE))) != 0) || ((((_la - 68)) & ~0x3f) == 0 && ((1L << (_la - 68)) & ((1L << (DATE - 68)) | (1L << (DOUBLE - 68)) | (1L << (INTEGER - 68)) | (1L << (LONG - 68)))) != 0) || ((((_la - 178)) & ~0x3f) == 0 && ((1L << (_la - 178)) & ((1L << (SINGLE - 178)) | (1L << (STRING - 178)) | (1L << (VARIANT - 178)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -12785,12 +12625,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComparisonOperatorContext comparisonOperator() { ComparisonOperatorContext _localctx = new ComparisonOperatorContext(_ctx, State); - EnterRule(_localctx, 224, RULE_comparisonOperator); + EnterRule(_localctx, 226, RULE_comparisonOperator); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2224; + State = 2229; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -12847,31 +12687,31 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public ComplexTypeContext complexType() { ComplexTypeContext _localctx = new ComplexTypeContext(_ctx, State); - EnterRule(_localctx, 226, RULE_complexType); + EnterRule(_localctx, 228, RULE_complexType); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2226; identifier(); - State = 2231; + State = 2231; identifier(); + State = 2236; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,379,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { { - State = 2227; + State = 2232; _la = _input.La(1); if ( !(_la==EXCLAMATIONPOINT || _la==DOT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 2228; identifier(); + State = 2233; identifier(); } } } - State = 2233; + State = 2238; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,379,_ctx); } @@ -12922,28 +12762,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public FieldLengthContext fieldLength() { FieldLengthContext _localctx = new FieldLengthContext(_ctx, State); - EnterRule(_localctx, 228, RULE_fieldLength); + EnterRule(_localctx, 230, RULE_fieldLength); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2234; Match(MULT); - State = 2236; + State = 2239; Match(MULT); + State = 2241; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2235; whiteSpace(); + State = 2240; whiteSpace(); } } - State = 2240; + State = 2245; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: case FLOATLITERAL: case INTEGERLITERAL: { - State = 2238; numberLiteral(); + State = 2243; numberLiteral(); } break; case ABS: @@ -13039,7 +12879,7 @@ public FieldLengthContext fieldLength() { case SENDKEYS: case SETATTR: { - State = 2239; identifier(); + State = 2244; identifier(); } break; default: @@ -13095,34 +12935,34 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LetterrangeContext letterrange() { LetterrangeContext _localctx = new LetterrangeContext(_ctx, State); - EnterRule(_localctx, 230, RULE_letterrange); + EnterRule(_localctx, 232, RULE_letterrange); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2242; identifier(); - State = 2251; + State = 2247; identifier(); + State = 2256; switch ( Interpreter.AdaptivePredict(_input,384,_ctx) ) { case 1: { - State = 2244; + State = 2249; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2243; whiteSpace(); + State = 2248; whiteSpace(); } } - State = 2246; Match(MINUS); - State = 2248; + State = 2251; Match(MINUS); + State = 2253; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2247; whiteSpace(); + State = 2252; whiteSpace(); } } - State = 2250; identifier(); + State = 2255; identifier(); } break; } @@ -13170,11 +13010,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LineLabelContext lineLabel() { LineLabelContext _localctx = new LineLabelContext(_ctx, State); - EnterRule(_localctx, 232, RULE_lineLabel); + EnterRule(_localctx, 234, RULE_lineLabel); try { EnterOuterAlt(_localctx, 1); { - State = 2255; + State = 2260; switch (_input.La(1)) { case ABS: case ANY: @@ -13269,7 +13109,7 @@ public LineLabelContext lineLabel() { case SENDKEYS: case SETATTR: { - State = 2253; identifier(); + State = 2258; identifier(); } break; case OCTLITERAL: @@ -13277,13 +13117,13 @@ public LineLabelContext lineLabel() { case FLOATLITERAL: case INTEGERLITERAL: { - State = 2254; numberLiteral(); + State = 2259; numberLiteral(); } break; default: throw new NoViableAltException(this); } - State = 2257; Match(COLON); + State = 2262; Match(COLON); } } catch (RecognitionException re) { @@ -13331,9 +13171,9 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 234, RULE_literal); + EnterRule(_localctx, 236, RULE_literal); try { - State = 2267; + State = 2272; switch (_input.La(1)) { case OCTLITERAL: case HEXLITERAL: @@ -13341,49 +13181,49 @@ public LiteralContext literal() { case INTEGERLITERAL: EnterOuterAlt(_localctx, 1); { - State = 2259; numberLiteral(); + State = 2264; numberLiteral(); } break; case DATELITERAL: EnterOuterAlt(_localctx, 2); { - State = 2260; Match(DATELITERAL); + State = 2265; Match(DATELITERAL); } break; case STRINGLITERAL: EnterOuterAlt(_localctx, 3); { - State = 2261; Match(STRINGLITERAL); + State = 2266; Match(STRINGLITERAL); } break; case TRUE: EnterOuterAlt(_localctx, 4); { - State = 2262; Match(TRUE); + State = 2267; Match(TRUE); } break; case FALSE: EnterOuterAlt(_localctx, 5); { - State = 2263; Match(FALSE); + State = 2268; Match(FALSE); } break; case NOTHING: EnterOuterAlt(_localctx, 6); { - State = 2264; Match(NOTHING); + State = 2269; Match(NOTHING); } break; case NULL: EnterOuterAlt(_localctx, 7); { - State = 2265; Match(NULL); + State = 2270; Match(NULL); } break; case EMPTY: EnterOuterAlt(_localctx, 8); { - State = 2266; Match(EMPTY); + State = 2271; Match(EMPTY); } break; default: @@ -13429,12 +13269,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NumberLiteralContext numberLiteral() { NumberLiteralContext _localctx = new NumberLiteralContext(_ctx, State); - EnterRule(_localctx, 236, RULE_numberLiteral); + EnterRule(_localctx, 238, RULE_numberLiteral); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2269; + State = 2274; _la = _input.La(1); if ( !(((((_la - 226)) & ~0x3f) == 0 && ((1L << (_la - 226)) & ((1L << (OCTLITERAL - 226)) | (1L << (HEXLITERAL - 226)) | (1L << (FLOATLITERAL - 226)) | (1L << (INTEGERLITERAL - 226)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13491,47 +13331,47 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeContext type() { TypeContext _localctx = new TypeContext(_ctx, State); - EnterRule(_localctx, 238, RULE_type); + EnterRule(_localctx, 240, RULE_type); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2273; + State = 2278; switch ( Interpreter.AdaptivePredict(_input,387,_ctx) ) { case 1: { - State = 2271; baseType(); + State = 2276; baseType(); } break; case 2: { - State = 2272; complexType(); + State = 2277; complexType(); } break; } - State = 2283; + State = 2288; switch ( Interpreter.AdaptivePredict(_input,390,_ctx) ) { case 1: { - State = 2276; + State = 2281; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2275; whiteSpace(); + State = 2280; whiteSpace(); } } - State = 2278; Match(LPAREN); - State = 2280; + State = 2283; Match(LPAREN); + State = 2285; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2279; whiteSpace(); + State = 2284; whiteSpace(); } } - State = 2282; Match(RPAREN); + State = 2287; Match(RPAREN); } break; } @@ -13579,12 +13419,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 240, RULE_typeHint); + EnterRule(_localctx, 242, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2285; + State = 2290; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -13631,12 +13471,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public VisibilityContext visibility() { VisibilityContext _localctx = new VisibilityContext(_ctx, State); - EnterRule(_localctx, 242, RULE_visibility); + EnterRule(_localctx, 244, RULE_visibility); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2287; + State = 2292; _la = _input.La(1); if ( !(((((_la - 110)) & ~0x3f) == 0 && ((1L << (_la - 110)) & ((1L << (FRIEND - 110)) | (1L << (GLOBAL - 110)) | (1L << (PRIVATE - 110)) | (1L << (PUBLIC - 110)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13773,12 +13613,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public KeywordContext keyword() { KeywordContext _localctx = new KeywordContext(_ctx, State); - EnterRule(_localctx, 244, RULE_keyword); + EnterRule(_localctx, 246, RULE_keyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2289; + State = 2294; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << BEGIN) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DOUBLE - 64)) | (1L << (END_IF - 64)) | (1L << (EQV - 64)) | (1L << (FALSE - 64)) | (1L << (IMP - 64)) | (1L << (IN - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LONG - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OR - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (REM - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STRING - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 193)) & ~0x3f) == 0 && ((1L << (_la - 193)) & ((1L << (UNTIL - 193)) | (1L << (VARIANT - 193)) | (1L << (VERSION - 193)) | (1L << (WITHEVENTS - 193)) | (1L << (XOR - 193)) | (1L << (COLLECTION - 193)) | (1L << (DELETESETTING - 193)) | (1L << (LOAD - 193)) | (1L << (RMDIR - 193)) | (1L << (SENDKEYS - 193)) | (1L << (SETATTR - 193)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -13822,11 +13662,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public MarkerKeywordContext markerKeyword() { MarkerKeywordContext _localctx = new MarkerKeywordContext(_ctx, State); - EnterRule(_localctx, 246, RULE_markerKeyword); + EnterRule(_localctx, 248, RULE_markerKeyword); try { EnterOuterAlt(_localctx, 1); { - State = 2291; Match(AS); + State = 2296; Match(AS); } } catch (RecognitionException re) { @@ -13959,12 +13799,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public StatementKeywordContext statementKeyword() { StatementKeywordContext _localctx = new StatementKeywordContext(_ctx, State); - EnterRule(_localctx, 248, RULE_statementKeyword); + EnterRule(_localctx, 250, RULE_statementKeyword); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2293; + State = 2298; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXIT) | (1L << OPTION) | (1L << ACCESS) | (1L << APPEND) | (1L << BINARY) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (CLOSE - 65)) | (1L << (CONST - 65)) | (1L << (DECLARE - 65)) | (1L << (DEFBOOL - 65)) | (1L << (DEFBYTE - 65)) | (1L << (DEFDATE - 65)) | (1L << (DEFDBL - 65)) | (1L << (DEFCUR - 65)) | (1L << (DEFINT - 65)) | (1L << (DEFLNG - 65)) | (1L << (DEFLNGLNG - 65)) | (1L << (DEFLNGPTR - 65)) | (1L << (DEFOBJ - 65)) | (1L << (DEFSNG - 65)) | (1L << (DEFSTR - 65)) | (1L << (DEFVAR - 65)) | (1L << (DIM - 65)) | (1L << (DO - 65)) | (1L << (ELSE - 65)) | (1L << (ELSEIF - 65)) | (1L << (END_SELECT - 65)) | (1L << (END_WITH - 65)) | (1L << (END - 65)) | (1L << (ENUM - 65)) | (1L << (ERASE - 65)) | (1L << (ERROR - 65)) | (1L << (EVENT - 65)) | (1L << (EXIT_DO - 65)) | (1L << (EXIT_FOR - 65)) | (1L << (EXIT_FUNCTION - 65)) | (1L << (EXIT_PROPERTY - 65)) | (1L << (EXIT_SUB - 65)) | (1L << (FRIEND - 65)) | (1L << (FOR - 65)) | (1L << (FUNCTION - 65)) | (1L << (GET - 65)) | (1L << (GLOBAL - 65)) | (1L << (GOSUB - 65)) | (1L << (GOTO - 65)) | (1L << (IF - 65)) | (1L << (IMPLEMENTS - 65)) | (1L << (INPUT - 65)) | (1L << (LOCK - 65)) | (1L << (LOOP - 65)) | (1L << (LET - 65)))) != 0) || ((((_la - 130)) & ~0x3f) == 0 && ((1L << (_la - 130)) & ((1L << (LINE_INPUT - 130)) | (1L << (LOCK_READ - 130)) | (1L << (LOCK_WRITE - 130)) | (1L << (LOCK_READ_WRITE - 130)) | (1L << (LSET - 130)) | (1L << (NEXT - 130)) | (1L << (ON - 130)) | (1L << (ON_ERROR - 130)) | (1L << (OPEN - 130)) | (1L << (OUTPUT - 130)) | (1L << (PRINT - 130)) | (1L << (PRIVATE - 130)) | (1L << (PUBLIC - 130)) | (1L << (PUT - 130)) | (1L << (RANDOM - 130)) | (1L << (RAISEEVENT - 130)) | (1L << (READ - 130)) | (1L << (READ_WRITE - 130)) | (1L << (REDIM - 130)) | (1L << (RESET - 130)) | (1L << (RESUME - 130)) | (1L << (RETURN - 130)) | (1L << (RSET - 130)) | (1L << (SEEK - 130)) | (1L << (SELECT - 130)) | (1L << (SET - 130)) | (1L << (SHARED - 130)) | (1L << (STATIC - 130)) | (1L << (STEP - 130)) | (1L << (STOP - 130)) | (1L << (SUB - 130)) | (1L << (TYPE - 130)) | (1L << (UNLOCK - 130)))) != 0) || ((((_la - 196)) & ~0x3f) == 0 && ((1L << (_la - 196)) & ((1L << (WEND - 196)) | (1L << (WHILE - 196)) | (1L << (WIDTH - 196)) | (1L << (WITH - 196)) | (1L << (WRITE - 196)) | (1L << (ENDIF - 196)) | (1L << (RESUME_NEXT - 196)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -14026,28 +13866,28 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfLineContext endOfLine() { EndOfLineContext _localctx = new EndOfLineContext(_ctx, State); - EnterRule(_localctx, 250, RULE_endOfLine); + EnterRule(_localctx, 252, RULE_endOfLine); int _la; try { int _alt; - State = 2314; + State = 2319; switch ( Interpreter.AdaptivePredict(_input,396,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2296; + State = 2301; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2295; whiteSpace(); + State = 2300; whiteSpace(); } } - State = 2305; + State = 2310; switch (_input.La(1)) { case NEWLINE: { - State = 2299; + State = 2304; _errHandler.Sync(this); _alt = 1; do { @@ -14055,14 +13895,14 @@ public EndOfLineContext endOfLine() { case 1: { { - State = 2298; Match(NEWLINE); + State = 2303; Match(NEWLINE); } } break; default: throw new NoViableAltException(this); } - State = 2301; + State = 2306; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,392,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -14071,22 +13911,22 @@ public EndOfLineContext endOfLine() { case COMMENT: case SINGLEQUOTE: { - State = 2303; comment(); + State = 2308; comment(); } break; case REMCOMMENT: { - State = 2304; remComment(); + State = 2309; remComment(); } break; default: throw new NoViableAltException(this); } - State = 2308; + State = 2313; switch ( Interpreter.AdaptivePredict(_input,394,_ctx) ) { case 1: { - State = 2307; whiteSpace(); + State = 2312; whiteSpace(); } break; } @@ -14096,15 +13936,15 @@ public EndOfLineContext endOfLine() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2311; + State = 2316; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2310; whiteSpace(); + State = 2315; whiteSpace(); } } - State = 2313; annotationList(); + State = 2318; annotationList(); } break; } @@ -14160,42 +14000,42 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public EndOfStatementContext endOfStatement() { EndOfStatementContext _localctx = new EndOfStatementContext(_ctx, State); - EnterRule(_localctx, 252, RULE_endOfStatement); + EnterRule(_localctx, 254, RULE_endOfStatement); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2326; + State = 2331; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,400,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { { - State = 2324; + State = 2329; switch ( Interpreter.AdaptivePredict(_input,399,_ctx) ) { case 1: { - State = 2316; endOfLine(); + State = 2321; endOfLine(); } break; case 2: { - State = 2318; + State = 2323; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2317; whiteSpace(); + State = 2322; whiteSpace(); } } - State = 2320; Match(COLON); - State = 2322; + State = 2325; Match(COLON); + State = 2327; switch ( Interpreter.AdaptivePredict(_input,398,_ctx) ) { case 1: { - State = 2321; whiteSpace(); + State = 2326; whiteSpace(); } break; } @@ -14204,7 +14044,7 @@ public EndOfStatementContext endOfStatement() { } } } - State = 2328; + State = 2333; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,400,_ctx); } @@ -14246,11 +14086,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public RemCommentContext remComment() { RemCommentContext _localctx = new RemCommentContext(_ctx, State); - EnterRule(_localctx, 254, RULE_remComment); + EnterRule(_localctx, 256, RULE_remComment); try { EnterOuterAlt(_localctx, 1); { - State = 2329; Match(REMCOMMENT); + State = 2334; Match(REMCOMMENT); } } catch (RecognitionException re) { @@ -14290,12 +14130,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CommentContext comment() { CommentContext _localctx = new CommentContext(_ctx, State); - EnterRule(_localctx, 256, RULE_comment); + EnterRule(_localctx, 258, RULE_comment); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2331; + State = 2336; _la = _input.La(1); if ( !(_la==COMMENT || _la==SINGLEQUOTE) ) { _errHandler.RecoverInline(this); @@ -14345,22 +14185,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationListContext annotationList() { AnnotationListContext _localctx = new AnnotationListContext(_ctx, State); - EnterRule(_localctx, 258, RULE_annotationList); + EnterRule(_localctx, 260, RULE_annotationList); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 2333; Match(SINGLEQUOTE); - State = 2335; + State = 2338; Match(SINGLEQUOTE); + State = 2340; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 2334; annotation(); + State = 2339; annotation(); } } - State = 2337; + State = 2342; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==AT ); @@ -14408,17 +14248,17 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationContext annotation() { AnnotationContext _localctx = new AnnotationContext(_ctx, State); - EnterRule(_localctx, 260, RULE_annotation); + EnterRule(_localctx, 262, RULE_annotation); try { EnterOuterAlt(_localctx, 1); { - State = 2339; Match(AT); - State = 2340; annotationName(); - State = 2342; + State = 2344; Match(AT); + State = 2345; annotationName(); + State = 2347; switch ( Interpreter.AdaptivePredict(_input,402,_ctx) ) { case 1: { - State = 2341; annotationArgList(); + State = 2346; annotationArgList(); } break; } @@ -14460,11 +14300,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationNameContext annotationName() { AnnotationNameContext _localctx = new AnnotationNameContext(_ctx, State); - EnterRule(_localctx, 262, RULE_annotationName); + EnterRule(_localctx, 264, RULE_annotationName); try { EnterOuterAlt(_localctx, 1); { - State = 2344; Match(IDENTIFIER); + State = 2349; Match(IDENTIFIER); } } catch (RecognitionException re) { @@ -14520,22 +14360,22 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgListContext annotationArgList() { AnnotationArgListContext _localctx = new AnnotationArgListContext(_ctx, State); - EnterRule(_localctx, 264, RULE_annotationArgList); + EnterRule(_localctx, 266, RULE_annotationArgList); int _la; try { int _alt; - State = 2407; + State = 2412; switch ( Interpreter.AdaptivePredict(_input,418,_ctx) ) { case 1: EnterOuterAlt(_localctx, 1); { - State = 2346; whiteSpace(); - State = 2347; annotationArg(); - State = 2349; + State = 2351; whiteSpace(); + State = 2352; annotationArg(); + State = 2354; switch ( Interpreter.AdaptivePredict(_input,403,_ctx) ) { case 1: { - State = 2348; whiteSpace(); + State = 2353; whiteSpace(); } break; } @@ -14545,9 +14385,9 @@ public AnnotationArgListContext annotationArgList() { case 2: EnterOuterAlt(_localctx, 2); { - State = 2351; whiteSpace(); - State = 2352; annotationArg(); - State = 2361; + State = 2356; whiteSpace(); + State = 2357; annotationArg(); + State = 2366; _errHandler.Sync(this); _alt = 1; do { @@ -14555,39 +14395,39 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2354; + State = 2359; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2353; whiteSpace(); + State = 2358; whiteSpace(); } } - State = 2356; Match(COMMA); - State = 2358; + State = 2361; Match(COMMA); + State = 2363; switch ( Interpreter.AdaptivePredict(_input,405,_ctx) ) { case 1: { - State = 2357; whiteSpace(); + State = 2362; whiteSpace(); } break; } - State = 2360; annotationArg(); + State = 2365; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2363; + State = 2368; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,406,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2366; + State = 2371; switch ( Interpreter.AdaptivePredict(_input,407,_ctx) ) { case 1: { - State = 2365; whiteSpace(); + State = 2370; whiteSpace(); } break; } @@ -14597,38 +14437,38 @@ public AnnotationArgListContext annotationArgList() { case 3: EnterOuterAlt(_localctx, 3); { - State = 2369; + State = 2374; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2368; whiteSpace(); + State = 2373; whiteSpace(); } } - State = 2371; Match(LPAREN); - State = 2373; + State = 2376; Match(LPAREN); + State = 2378; switch ( Interpreter.AdaptivePredict(_input,409,_ctx) ) { case 1: { - State = 2372; whiteSpace(); + State = 2377; whiteSpace(); } break; } - State = 2375; annotationArg(); - State = 2377; + State = 2380; annotationArg(); + State = 2382; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2376; whiteSpace(); + State = 2381; whiteSpace(); } } - State = 2379; Match(RPAREN); - State = 2381; + State = 2384; Match(RPAREN); + State = 2386; switch ( Interpreter.AdaptivePredict(_input,411,_ctx) ) { case 1: { - State = 2380; whiteSpace(); + State = 2385; whiteSpace(); } break; } @@ -14638,17 +14478,17 @@ public AnnotationArgListContext annotationArgList() { case 4: EnterOuterAlt(_localctx, 4); { - State = 2384; + State = 2389; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2383; whiteSpace(); + State = 2388; whiteSpace(); } } - State = 2386; Match(LPAREN); - State = 2387; annotationArg(); - State = 2396; + State = 2391; Match(LPAREN); + State = 2392; annotationArg(); + State = 2401; _errHandler.Sync(this); _alt = 1; do { @@ -14656,48 +14496,48 @@ public AnnotationArgListContext annotationArgList() { case 1: { { - State = 2389; + State = 2394; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2388; whiteSpace(); + State = 2393; whiteSpace(); } } - State = 2391; Match(COMMA); - State = 2393; + State = 2396; Match(COMMA); + State = 2398; switch ( Interpreter.AdaptivePredict(_input,414,_ctx) ) { case 1: { - State = 2392; whiteSpace(); + State = 2397; whiteSpace(); } break; } - State = 2395; annotationArg(); + State = 2400; annotationArg(); } } break; default: throw new NoViableAltException(this); } - State = 2398; + State = 2403; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,415,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 2401; + State = 2406; _la = _input.La(1); if (_la==WS || _la==LINE_CONTINUATION) { { - State = 2400; whiteSpace(); + State = 2405; whiteSpace(); } } - State = 2403; Match(RPAREN); - State = 2405; + State = 2408; Match(RPAREN); + State = 2410; switch ( Interpreter.AdaptivePredict(_input,417,_ctx) ) { case 1: { - State = 2404; whiteSpace(); + State = 2409; whiteSpace(); } break; } @@ -14743,11 +14583,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public AnnotationArgContext annotationArg() { AnnotationArgContext _localctx = new AnnotationArgContext(_ctx, State); - EnterRule(_localctx, 266, RULE_annotationArg); + EnterRule(_localctx, 268, RULE_annotationArg); try { EnterOuterAlt(_localctx, 1); { - State = 2409; valueStmt(0); + State = 2414; valueStmt(0); } } catch (RecognitionException re) { @@ -14793,13 +14633,13 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public WhiteSpaceContext whiteSpace() { WhiteSpaceContext _localctx = new WhiteSpaceContext(_ctx, State); - EnterRule(_localctx, 268, RULE_whiteSpace); + EnterRule(_localctx, 270, RULE_whiteSpace); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 2412; + State = 2417; _errHandler.Sync(this); _alt = 1; do { @@ -14807,7 +14647,7 @@ public WhiteSpaceContext whiteSpace() { case 1: { { - State = 2411; + State = 2416; _la = _input.La(1); if ( !(_la==WS || _la==LINE_CONTINUATION) ) { _errHandler.RecoverInline(this); @@ -14819,7 +14659,7 @@ public WhiteSpaceContext whiteSpace() { default: throw new NoViableAltException(this); } - State = 2414; + State = 2419; _errHandler.Sync(this); _alt = Interpreter.AdaptivePredict(_input,419,_ctx); } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); @@ -14838,7 +14678,7 @@ public WhiteSpaceContext whiteSpace() { public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 76: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); + case 77: return valueStmt_sempred((ValueStmtContext)_localctx, predIndex); } return true; } @@ -14872,7 +14712,7 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xFA\x973\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xFA\x978\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ @@ -14891,1126 +14731,1127 @@ private bool valueStmt_sempred(ValueStmtContext _localctx, int predIndex) { "q\tq\x4r\tr\x4s\ts\x4t\tt\x4u\tu\x4v\tv\x4w\tw\x4x\tx\x4y\ty\x4z\tz\x4"+ "{\t{\x4|\t|\x4}\t}\x4~\t~\x4\x7F\t\x7F\x4\x80\t\x80\x4\x81\t\x81\x4\x82"+ "\t\x82\x4\x83\t\x83\x4\x84\t\x84\x4\x85\t\x85\x4\x86\t\x86\x4\x87\t\x87"+ - "\x4\x88\t\x88\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x115\n\x3\x3\x3\x3\x3\x3\x3"+ - "\x3\x3\x5\x3\x11B\n\x3\x3\x3\x5\x3\x11E\n\x3\x3\x3\x3\x3\x5\x3\x122\n"+ - "\x3\x3\x3\x3\x3\x5\x3\x126\n\x3\x3\x3\x3\x3\x5\x3\x12A\n\x3\x3\x3\x3\x3"+ - "\x5\x3\x12E\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x134\n\x4\x3\x4\x5\x4\x137"+ - "\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x5\x5\x141\n\x5"+ - "\x5\x5\x143\n\x5\x3\x5\x3\x5\x6\x5\x147\n\x5\r\x5\xE\x5\x148\x3\x5\x3"+ - "\x5\x3\x6\x3\x6\a\x6\x14F\n\x6\f\x6\xE\x6\x152\v\x6\x3\x6\x3\x6\a\x6\x156"+ - "\n\x6\f\x6\xE\x6\x159\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x15E\n\x6\x3\x6\x3"+ - "\x6\x3\a\x3\a\x3\a\x6\a\x165\n\a\r\a\xE\a\x166\x3\b\x3\b\x3\b\x3\b\a\b"+ - "\x16D\n\b\f\b\xE\b\x170\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3"+ - "\t\x3\t\x3\t\x3\t\x5\t\x17E\n\t\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3\n\x3"+ - "\n\x5\n\x188\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x18E\n\v\f\v\xE\v\x191\v\v\x3"+ - "\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x19A\n\f\x3\r\x3\r\x3\r\x3\r\x5"+ - "\r\x1A0\n\r\x3\r\x3\r\x5\r\x1A4\n\r\x3\r\x3\r\x5\r\x1A8\n\r\x3\r\x3\r"+ - "\x5\r\x1AC\n\r\x3\r\a\r\x1AF\n\r\f\r\xE\r\x1B2\v\r\x3\xE\x3\xE\x3\xF\x3"+ - "\xF\x3\x10\x3\x10\x3\x10\x3\x10\a\x10\x1BC\n\x10\f\x10\xE\x10\x1BF\v\x10"+ - "\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x4\x88\t\x88\x4\x89\t\x89\x3\x2\x3\x2\x3\x2\x3\x3\x5\x3\x117\n\x3\x3"+ + "\x3\x3\x3\x3\x3\x3\x3\x5\x3\x11D\n\x3\x3\x3\x5\x3\x120\n\x3\x3\x3\x3\x3"+ + "\x5\x3\x124\n\x3\x3\x3\x3\x3\x5\x3\x128\n\x3\x3\x3\x3\x3\x5\x3\x12C\n"+ + "\x3\x3\x3\x3\x3\x5\x3\x130\n\x3\x3\x4\x3\x4\x3\x4\x3\x4\x5\x4\x136\n\x4"+ + "\x3\x4\x5\x4\x139\n\x4\x3\x4\x3\x4\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5\x3\x5"+ + "\x5\x5\x143\n\x5\x5\x5\x145\n\x5\x3\x5\x3\x5\x6\x5\x149\n\x5\r\x5\xE\x5"+ + "\x14A\x3\x5\x3\x5\x3\x6\x3\x6\a\x6\x151\n\x6\f\x6\xE\x6\x154\v\x6\x3\x6"+ + "\x3\x6\a\x6\x158\n\x6\f\x6\xE\x6\x15B\v\x6\x3\x6\x3\x6\x3\x6\x5\x6\x160"+ + "\n\x6\x3\x6\x3\x6\x3\a\x3\a\x3\a\x6\a\x167\n\a\r\a\xE\a\x168\x3\b\x3\b"+ + "\x3\b\x3\b\a\b\x16F\n\b\f\b\xE\b\x172\v\b\x3\b\x3\b\x3\t\x3\t\x3\t\x3"+ + "\t\x3\t\x3\t\x3\t\x3\t\x3\t\x3\t\x5\t\x180\n\t\x3\n\x3\n\x3\n\x3\n\x3"+ + "\n\x3\n\x3\n\x3\n\x5\n\x18A\n\n\x3\v\x3\v\x3\v\x3\v\a\v\x190\n\v\f\v\xE"+ + "\v\x193\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3\f\x3\f\x5\f\x19C\n\f\x3\r\x3\r"+ + "\x3\r\x3\r\x5\r\x1A2\n\r\x3\r\x3\r\x5\r\x1A6\n\r\x3\r\x3\r\x5\r\x1AA\n"+ + "\r\x3\r\x3\r\x5\r\x1AE\n\r\x3\r\a\r\x1B1\n\r\f\r\xE\r\x1B4\v\r\x3\xE\x3"+ + "\xE\x3\xF\x3\xF\x3\x10\x3\x10\x3\x10\x3\x10\a\x10\x1BE\n\x10\f\x10\xE"+ + "\x10\x1C1\v\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ + "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11"+ - "\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x3\x11\x5\x11\x1F0\n\x11\x3"+ - "\x12\x3\x12\x3\x12\x3\x12\x5\x12\x1F6\n\x12\x3\x12\x3\x12\x5\x12\x1FA"+ - "\n\x12\x3\x12\a\x12\x1FD\n\x12\f\x12\xE\x12\x200\v\x12\x5\x12\x202\n\x12"+ - "\x3\x13\x3\x13\x3\x13\x5\x13\x207\n\x13\x3\x13\x3\x13\x3\x13\x3\x13\x5"+ - "\x13\x20D\n\x13\x3\x13\x3\x13\x5\x13\x211\n\x13\x3\x13\a\x13\x214\n\x13"+ - "\f\x13\xE\x13\x217\v\x13\x3\x14\x3\x14\x5\x14\x21B\n\x14\x3\x14\x3\x14"+ - "\x3\x14\x5\x14\x220\n\x14\x3\x14\x5\x14\x223\n\x14\x3\x14\x3\x14\x5\x14"+ - "\x227\n\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x5\x15\x22E\n\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x15\x5\x15\x234\n\x15\x3\x15\x3\x15\x5\x15\x238\n\x15"+ - "\x3\x15\x5\x15\x23B\n\x15\x3\x15\x3\x15\x3\x15\x5\x15\x240\n\x15\x3\x15"+ - "\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x24B\n"+ - "\x15\x3\x15\x5\x15\x24E\n\x15\x3\x15\x5\x15\x251\n\x15\x3\x15\x3\x15\x3"+ - "\x15\x5\x15\x256\n\x15\x3\x16\x3\x16\x3\x16\x3\x16\x5\x16\x25C\n\x16\x3"+ - "\x16\x3\x16\x5\x16\x260\n\x16\x3\x16\a\x16\x263\n\x16\f\x16\xE\x16\x266"+ - "\v\x16\x3\x17\x3\x17\x3\x17\x5\x17\x26B\n\x17\x3\x17\x3\x17\x3\x17\x3"+ - "\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x276\n\x17\x3\x17\x3\x17"+ - "\x3\x17\x3\x17\x3\x17\x5\x17\x27D\n\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3"+ - "\x17\x3\x17\x5\x17\x285\n\x17\x3\x18\x3\x18\x3\x18\x5\x18\x28A\n\x18\x3"+ - "\x18\x3\x18\x3\x18\x3\x18\x3\x18\a\x18\x291\n\x18\f\x18\xE\x18\x294\v"+ - "\x18\x3\x18\x3\x18\x3\x19\x3\x19\x5\x19\x29A\n\x19\x3\x19\x3\x19\x5\x19"+ - "\x29E\n\x19\x3\x19\x5\x19\x2A1\n\x19\x3\x19\x3\x19\x3\x1A\x3\x1A\x3\x1A"+ - "\x3\x1A\x5\x1A\x2A9\n\x1A\x3\x1A\x3\x1A\x5\x1A\x2AD\n\x1A\x3\x1A\a\x1A"+ - "\x2B0\n\x1A\f\x1A\xE\x1A\x2B3\v\x1A\x3\x1B\x3\x1B\x3\x1B\x3\x1B\x3\x1C"+ - "\x3\x1C\x3\x1C\x5\x1C\x2BC\n\x1C\x3\x1C\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2C2"+ - "\n\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E"+ - "\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2D3\n\x1E\x3\x1E\x3"+ - "\x1E\x3\x1E\x3\x1E\x5\x1E\x2D9\n\x1E\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F"+ - "\x2DF\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E3\n\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F"+ - "\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x2EF\n\x1F\x3\x1F\x3"+ - "\x1F\x5\x1F\x2F3\n\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5\x1F\x2F9\n\x1F\x3"+ - " \x3 \x3 \x5 \x2FE\n \x3 \x3 \x5 \x302\n \x3 \x3 \x5 \x306\n \x3 \x3 "+ - "\x5 \x30A\n \x3 \x5 \x30D\n \x3 \x5 \x310\n \x3 \x5 \x313\n \x3 \x5 \x316"+ - "\n \x3 \x3 \x5 \x31A\n \x3 \x3 \x3!\x3!\x3\"\x3\"\x3\"\x3\"\x5\"\x324"+ - "\n\"\x3\"\x3\"\x5\"\x328\n\"\x3\"\x5\"\x32B\n\"\x3\"\x5\"\x32E\n\"\x3"+ - "\"\x3\"\x5\"\x332\n\"\x3\"\x3\"\x3#\x3#\x3#\x3#\x3$\x3$\x3$\x3$\x3%\x3"+ - "%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5%\x34A\n%\x3%\x3%\a%\x34E"+ - "\n%\f%\xE%\x351\v%\x3%\x5%\x354\n%\x3%\x3%\x5%\x358\n%\x3&\x3&\x3&\x3"+ - "&\x3&\x3&\x3&\x5&\x361\n&\x3\'\x3\'\x3(\x3(\x3(\x3(\x3(\x3(\x3(\x5(\x36C"+ - "\n(\x3)\x3)\x3)\x5)\x371\n)\x3*\x3*\x3*\x3*\x3+\x3+\x3+\x3+\x5+\x37B\n"+ - "+\x3+\x3+\x5+\x37F\n+\x3+\x6+\x382\n+\r+\xE+\x383\x3,\x3,\x5,\x388\n,"+ - "\x3,\x3,\x5,\x38C\n,\x3,\x3,\x5,\x390\n,\x3,\x3,\x3-\x3-\x3-\x3-\x5-\x398"+ - "\n-\x3-\x3-\x5-\x39C\n-\x3-\x3-\x3.\x3.\x3.\x3.\x5.\x3A4\n.\x3.\x3.\x5"+ - ".\x3A8\n.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3B0\n.\x5.\x3B2\n.\x3/\x3/\x3/"+ - "\x3/\x5/\x3B8\n/\x3/\x3/\x5/\x3BC\n/\x3/\x3/\x3\x30\x3\x30\x5\x30\x3C2"+ - "\n\x30\x3\x30\x3\x30\x5\x30\x3C6\n\x30\x3\x30\x3\x30\x5\x30\x3CA\n\x30"+ - "\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31"+ - "\x3\x31\x3\x31\x5\x31\x3D8\n\x31\x3\x32\x3\x32\x3\x32\x3\x32\x3\x32\x3"+ - "\x32\x3\x32\x3\x32\x5\x32\x3E2\n\x32\x3\x32\x3\x32\x5\x32\x3E6\n\x32\x3"+ - "\x32\a\x32\x3E9\n\x32\f\x32\xE\x32\x3EC\v\x32\x3\x33\x3\x33\x3\x33\x3"+ - "\x33\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3F6\n\x33\x3\x33\x3\x33\x5\x33"+ - "\x3FA\n\x33\x3\x33\a\x33\x3FD\n\x33\f\x33\xE\x33\x400\v\x33\x3\x34\x3"+ - "\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3"+ - "\x34\x5\x34\x40E\n\x34\x3\x34\x3\x34\x3\x34\x5\x34\x413\n\x34\x3\x34\x3"+ - "\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x41C\n\x34\x3\x34\x3\x34"+ - "\x5\x34\x420\n\x34\x3\x34\x3\x34\x5\x34\x424\n\x34\x3\x35\x3\x35\x5\x35"+ - "\x428\n\x35\x3\x35\x3\x35\x5\x35\x42C\n\x35\x3\x35\x5\x35\x42F\n\x35\a"+ - "\x35\x431\n\x35\f\x35\xE\x35\x434\v\x35\x3\x35\x5\x35\x437\n\x35\x3\x35"+ - "\x5\x35\x43A\n\x35\x3\x35\x3\x35\x5\x35\x43E\n\x35\x3\x35\x5\x35\x441"+ - "\n\x35\x6\x35\x443\n\x35\r\x35\xE\x35\x444\x5\x35\x447\n\x35\x3\x36\x3"+ - "\x36\x3\x36\x5\x36\x44C\n\x36\x3\x36\x3\x36\x5\x36\x450\n\x36\x3\x36\x3"+ - "\x36\x5\x36\x454\n\x36\x3\x36\x3\x36\x5\x36\x458\n\x36\x5\x36\x45A\n\x36"+ - "\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x460\n\x37\x3\x37\x3\x37\x5\x37\x464"+ - "\n\x37\x3\x37\x5\x37\x467\n\x37\x3\x38\x3\x38\x3\x38\x5\x38\x46C\n\x38"+ - "\x3\x38\x3\x38\x5\x38\x470\n\x38\x3\x38\x3\x38\x3\x38\x3\x38\x5\x38\x476"+ - "\n\x38\x3\x38\x5\x38\x479\n\x38\x3\x38\x5\x38\x47C\n\x38\x3\x38\x3\x38"+ - "\x3\x38\x5\x38\x481\n\x38\x3\x38\x3\x38\x5\x38\x485\n\x38\x3\x38\x3\x38"+ - "\x3\x39\x3\x39\x3\x39\x5\x39\x48C\n\x39\x3\x39\x3\x39\x5\x39\x490\n\x39"+ - "\x3\x39\x3\x39\x3\x39\x3\x39\x5\x39\x496\n\x39\x3\x39\x5\x39\x499\n\x39"+ - "\x3\x39\x3\x39\x5\x39\x49D\n\x39\x3\x39\x3\x39\x3:\x3:\x3:\x5:\x4A4\n"+ - ":\x3:\x3:\x5:\x4A8\n:\x3:\x3:\x3:\x3:\x5:\x4AE\n:\x3:\x5:\x4B1\n:\x3:"+ - "\x3:\x5:\x4B5\n:\x3:\x3:\x3;\x3;\x3;\x3;\x5;\x4BD\n;\x3;\x3;\x5;\x4C1"+ - "\n;\x3;\x5;\x4C4\n;\x3;\x5;\x4C7\n;\x3;\x3;\x5;\x4CB\n;\x3;\x3;\x3<\x3"+ - "<\x3<\x3<\x5<\x4D3\n<\x3<\x3<\x5<\x4D7\n<\x3<\x3<\x5<\x4DB\n<\x5<\x4DD"+ - "\n<\x3<\x5<\x4E0\n<\x3=\x3=\x3=\x3=\x5=\x4E6\n=\x3=\x3=\x5=\x4EA\n=\x3"+ - "=\x3=\x5=\x4EE\n=\x3=\a=\x4F1\n=\f=\xE=\x4F4\v=\x3>\x3>\x5>\x4F8\n>\x3"+ - ">\x3>\x5>\x4FC\n>\x3>\x3>\x5>\x500\n>\x3>\x3>\x3>\x3>\x5>\x506\n>\x3?"+ - "\x3?\x3@\x3@\x3@\x3@\x5@\x50E\n@\x5@\x510\n@\x3\x41\x3\x41\x3\x42\x3\x42"+ - "\x3\x42\x3\x42\x5\x42\x518\n\x42\x3\x42\x3\x42\x5\x42\x51C\n\x42\x3\x42"+ - "\x3\x42\x3\x43\x3\x43\x3\x43\x3\x43\x5\x43\x524\n\x43\x3\x43\x3\x43\x5"+ - "\x43\x528\n\x43\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44\x3\x44"+ - "\x3\x44\a\x44\x533\n\x44\f\x44\xE\x44\x536\v\x44\x3\x44\x3\x44\x3\x45"+ - "\x3\x45\x5\x45\x53C\n\x45\x3\x45\x3\x45\x5\x45\x540\n\x45\x3\x45\x3\x45"+ - "\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x5\x45\x54B\n\x45\x3"+ - "\x46\x3\x46\x3\x46\x3\x46\x3\x46\x5\x46\x552\n\x46\x3G\x3G\x3G\x5G\x557"+ - "\nG\x3G\x3G\x5G\x55B\nG\x3G\aG\x55E\nG\fG\xEG\x561\vG\x5G\x563\nG\x3H"+ - "\x3H\x3H\x3H\x5H\x569\nH\x3H\x3H\x5H\x56D\nH\x3H\x3H\x3I\x3I\x3I\x5I\x574"+ - "\nI\x3I\x3I\x5I\x578\nI\x3I\x3I\x5I\x57C\nI\x3I\x3I\x5I\x580\nI\x3I\x5"+ - "I\x583\nI\x3I\x3I\x5I\x587\nI\x3I\x3I\x3J\x3J\x3K\x3K\x3K\x5K\x590\nK"+ - "\x3K\x3K\x3K\x3K\x3K\aK\x597\nK\fK\xEK\x59A\vK\x3K\x3K\x3L\x3L\x5L\x5A0"+ - "\nL\x3L\x3L\x5L\x5A4\nL\x3L\x5L\x5A7\nL\x3L\x5L\x5AA\nL\x3L\x5L\x5AD\n"+ - "L\x3L\x3L\x3L\x5L\x5B2\nL\x3L\x3L\x3M\x3M\x3M\x3M\x5M\x5BA\nM\x3M\x3M"+ - "\x5M\x5BE\nM\x3M\x3M\x3M\x3M\x3M\x3M\x5M\x5C6\nM\x5M\x5C8\nM\x3N\x3N\x3"+ - "N\x5N\x5CD\nN\x3N\x3N\x3N\x5N\x5D2\nN\x3N\x3N\x3N\x5N\x5D7\nN\x3N\x3N"+ - "\x5N\x5DB\nN\x3N\x3N\x3N\x3N\x5N\x5E1\nN\x3N\x3N\x3N\x5N\x5E6\nN\x3N\x3"+ - "N\x3N\x3N\x3N\x5N\x5ED\nN\x3N\x3N\x5N\x5F1\nN\x3N\x3N\x3N\x3N\x5N\x5F7"+ - "\nN\x3N\x3N\x5N\x5FB\nN\x3N\x3N\x5N\x5FF\nN\x3N\x3N\x3N\x5N\x604\nN\x3"+ - "N\x3N\x5N\x608\nN\x3N\x3N\x3N\x5N\x60D\nN\x3N\x3N\x5N\x611\nN\x3N\x3N"+ - "\x3N\x5N\x616\nN\x3N\x3N\x5N\x61A\nN\x3N\x3N\x3N\x5N\x61F\nN\x3N\x3N\x5"+ - "N\x623\nN\x3N\x3N\x3N\x5N\x628\nN\x3N\x3N\x5N\x62C\nN\x3N\x3N\x3N\x5N"+ - "\x631\nN\x3N\x3N\x5N\x635\nN\x3N\x3N\x3N\x5N\x63A\nN\x3N\x3N\x5N\x63E"+ - "\nN\x3N\x3N\x3N\x5N\x643\nN\x3N\x3N\x5N\x647\nN\x3N\x3N\x3N\x5N\x64C\n"+ - "N\x3N\x3N\x5N\x650\nN\x3N\x3N\x3N\x5N\x655\nN\x3N\x3N\x5N\x659\nN\x3N"+ - "\x3N\x3N\x5N\x65E\nN\x3N\x3N\x5N\x662\nN\x3N\aN\x665\nN\fN\xEN\x668\v"+ - "N\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x3O\x5O\x672\nO\x3P\x3P\x3P\x5P\x677\nP"+ - "\x3P\x3P\x3P\x5P\x67C\nP\x3P\x3P\x3Q\x3Q\x5Q\x682\nQ\x3Q\x3Q\x5Q\x686"+ - "\nQ\x3Q\aQ\x689\nQ\fQ\xEQ\x68C\vQ\x3R\x3R\x5R\x690\nR\x3R\x3R\x5R\x694"+ - "\nR\x3R\x3R\x5R\x698\nR\x5R\x69A\nR\x3R\x3R\x5R\x69E\nR\x5R\x6A0\nR\x3"+ - "R\x5R\x6A3\nR\x3R\x3R\x3R\x5R\x6A8\nR\x3S\x3S\x3S\x3S\x3S\x5S\x6AF\nS"+ - "\x3S\x3S\x3T\x3T\x3T\x3T\x5T\x6B7\nT\x3T\x3T\x5T\x6BB\nT\x3T\x3T\x3U\x3"+ - "U\x3U\x3U\x3U\x5U\x6C4\nU\x3U\x3U\x3V\x3V\x3W\x3W\x3W\x3W\x5W\x6CE\nW"+ - "\x3W\x3W\x5W\x6D2\nW\x3W\x5W\x6D5\nW\x3X\x5X\x6D8\nX\x3X\x3X\x3Y\x3Y\x3"+ - "Y\x3Y\x3Z\x5Z\x6E1\nZ\x3Z\x3Z\x3Z\x5Z\x6E6\nZ\x3Z\x5Z\x6E9\nZ\x3Z\x3Z"+ - "\x5Z\x6ED\nZ\x3Z\x3Z\x5Z\x6F1\nZ\x3Z\x3Z\x5Z\x6F5\nZ\x3Z\x5Z\x6F8\nZ\x3"+ - "Z\x3Z\x3Z\x3Z\aZ\x6FE\nZ\fZ\xEZ\x701\vZ\x3Z\x3Z\x5Z\x705\nZ\x3Z\x5Z\x708"+ - "\nZ\x3Z\x3Z\x5Z\x70C\nZ\x3Z\x3Z\x5Z\x710\nZ\x3Z\x3Z\x5Z\x714\nZ\x3Z\x5"+ - "Z\x717\nZ\x3Z\x3Z\x3Z\x3Z\aZ\x71D\nZ\fZ\xEZ\x720\vZ\x5Z\x722\nZ\x3[\x3"+ - "[\x5[\x726\n[\x3\\\x5\\\x729\n\\\x3\\\x5\\\x72C\n\\\x3\\\x3\\\x5\\\x730"+ - "\n\\\x3\\\x3\\\x5\\\x734\n\\\x3\\\x3\\\x3\\\x5\\\x739\n\\\x3\\\x5\\\x73C"+ - "\n\\\x3\\\x5\\\x73F\n\\\x3\\\x5\\\x742\n\\\x3\\\x3\\\x3\\\x3\\\a\\\x748"+ - "\n\\\f\\\xE\\\x74B\v\\\x3]\x3]\x3]\x3]\x5]\x751\n]\x3]\x5]\x754\n]\x3"+ - "]\x3]\x3]\x3]\a]\x75A\n]\f]\xE]\x75D\v]\x3^\x3^\x3^\x3^\x5^\x763\n^\x3"+ - "_\x3_\x5_\x767\n_\x3_\x5_\x76A\n_\x3_\x5_\x76D\n_\x3_\x5_\x770\n_\x3_"+ - "\x3_\x3_\x3_\a_\x776\n_\f_\xE_\x779\v_\x3`\x3`\x5`\x77D\n`\x3`\x5`\x780"+ - "\n`\x3`\x5`\x783\n`\x3`\x3`\x5`\x787\n`\x3`\x3`\x5`\x78B\n`\x5`\x78D\n"+ - "`\x3`\x3`\x5`\x791\n`\x3`\x5`\x794\n`\x3`\x5`\x797\n`\x3`\x3`\x3`\x3`"+ - "\a`\x79D\n`\f`\xE`\x7A0\v`\x3\x61\x3\x61\x5\x61\x7A4\n\x61\x3\x61\x5\x61"+ - "\x7A7\n\x61\x3\x61\x5\x61\x7AA\n\x61\x3\x61\x5\x61\x7AD\n\x61\x3\x61\x3"+ - "\x61\x3\x61\x3\x61\a\x61\x7B3\n\x61\f\x61\xE\x61\x7B6\v\x61\x3\x62\x3"+ - "\x62\x5\x62\x7BA\n\x62\x3\x62\x5\x62\x7BD\n\x62\x3\x62\x5\x62\x7C0\n\x62"+ - "\x3\x62\x3\x62\x5\x62\x7C4\n\x62\x3\x62\x3\x62\x5\x62\x7C8\n\x62\x5\x62"+ - "\x7CA\n\x62\x3\x62\x3\x62\x5\x62\x7CE\n\x62\x3\x62\x5\x62\x7D1\n\x62\x3"+ - "\x62\x5\x62\x7D4\n\x62\x3\x62\x3\x62\x3\x62\x3\x62\a\x62\x7DA\n\x62\f"+ - "\x62\xE\x62\x7DD\v\x62\x3\x63\x3\x63\x5\x63\x7E1\n\x63\x3\x63\x3\x63\x5"+ - "\x63\x7E5\n\x63\x6\x63\x7E7\n\x63\r\x63\xE\x63\x7E8\x3\x63\x5\x63\x7EC"+ - "\n\x63\x3\x63\x5\x63\x7EF\n\x63\x3\x63\x5\x63\x7F2\n\x63\x3\x63\x3\x63"+ - "\x3\x63\x3\x63\a\x63\x7F8\n\x63\f\x63\xE\x63\x7FB\v\x63\x3\x64\x3\x64"+ - "\x5\x64\x7FF\n\x64\x3\x64\x3\x64\x5\x64\x803\n\x64\x3\x65\x5\x65\x806"+ - "\n\x65\x3\x65\x3\x65\x3\x66\x5\x66\x80B\n\x66\x3\x66\x5\x66\x80E\n\x66"+ - "\x3\x66\x3\x66\x5\x66\x812\n\x66\a\x66\x814\n\x66\f\x66\xE\x66\x817\v"+ - "\x66\x3\x66\x3\x66\x5\x66\x81B\n\x66\x3\x66\x3\x66\x5\x66\x81F\n\x66\x3"+ - "\x66\x5\x66\x822\n\x66\a\x66\x824\n\x66\f\x66\xE\x66\x827\v\x66\x3g\x5"+ - "g\x82A\ng\x3g\x3g\x5g\x82E\ng\x3g\x5g\x831\ng\x3g\x3g\x3h\x3h\x5h\x837"+ - "\nh\x3h\x3h\x5h\x83B\nh\x3i\x3i\x5i\x83F\ni\x3i\x3i\x5i\x843\ni\x3i\x3"+ - "i\x5i\x847\ni\x3i\ai\x84A\ni\fi\xEi\x84D\vi\x5i\x84F\ni\x3i\x5i\x852\n"+ - "i\x3i\x3i\x3j\x3j\x5j\x858\nj\x3j\x3j\x5j\x85C\nj\x3j\x3j\x5j\x860\nj"+ - "\x3j\x3j\x5j\x864\nj\x3j\x5j\x867\nj\x3j\x3j\x5j\x86B\nj\x3j\x5j\x86E"+ - "\nj\x3j\x5j\x871\nj\x3j\x5j\x874\nj\x3j\x5j\x877\nj\x3j\x5j\x87A\nj\x3"+ - "k\x3k\x5k\x87E\nk\x3k\x3k\x3l\x3l\x5l\x884\nl\x3l\x3l\x5l\x888\nl\x3l"+ - "\al\x88B\nl\fl\xEl\x88E\vl\x3m\x3m\x3m\x3m\x3m\x5m\x895\nm\x3m\x3m\x3"+ - "n\x3n\x3n\x5n\x89C\nn\x3o\x3o\x5o\x8A0\no\x3p\x3p\x5p\x8A4\np\x3p\x3p"+ - "\x5p\x8A8\np\x3p\x3p\x5p\x8AC\np\x3p\x5p\x8AF\np\x3q\x3q\x3r\x3r\x3s\x3"+ - "s\x3s\as\x8B8\ns\fs\xEs\x8BB\vs\x3t\x3t\x5t\x8BF\nt\x3t\x3t\x5t\x8C3\n"+ - "t\x3u\x3u\x5u\x8C7\nu\x3u\x3u\x5u\x8CB\nu\x3u\x5u\x8CE\nu\x3v\x3v\x5v"+ - "\x8D2\nv\x3v\x3v\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x3w\x5w\x8DE\nw\x3x\x3x\x3"+ - "y\x3y\x5y\x8E4\ny\x3y\x5y\x8E7\ny\x3y\x3y\x5y\x8EB\ny\x3y\x5y\x8EE\ny"+ - "\x3z\x3z\x3{\x3{\x3|\x3|\x3}\x3}\x3~\x3~\x3\x7F\x5\x7F\x8FB\n\x7F\x3\x7F"+ - "\x6\x7F\x8FE\n\x7F\r\x7F\xE\x7F\x8FF\x3\x7F\x3\x7F\x5\x7F\x904\n\x7F\x3"+ - "\x7F\x5\x7F\x907\n\x7F\x3\x7F\x5\x7F\x90A\n\x7F\x3\x7F\x5\x7F\x90D\n\x7F"+ - "\x3\x80\x3\x80\x5\x80\x911\n\x80\x3\x80\x3\x80\x5\x80\x915\n\x80\a\x80"+ - "\x917\n\x80\f\x80\xE\x80\x91A\v\x80\x3\x81\x3\x81\x3\x82\x3\x82\x3\x83"+ - "\x3\x83\x6\x83\x922\n\x83\r\x83\xE\x83\x923\x3\x84\x3\x84\x3\x84\x5\x84"+ - "\x929\n\x84\x3\x85\x3\x85\x3\x86\x3\x86\x3\x86\x5\x86\x930\n\x86\x3\x86"+ - "\x3\x86\x3\x86\x5\x86\x935\n\x86\x3\x86\x3\x86\x5\x86\x939\n\x86\x3\x86"+ - "\x6\x86\x93C\n\x86\r\x86\xE\x86\x93D\x3\x86\x5\x86\x941\n\x86\x3\x86\x5"+ - "\x86\x944\n\x86\x3\x86\x3\x86\x5\x86\x948\n\x86\x3\x86\x3\x86\x5\x86\x94C"+ - "\n\x86\x3\x86\x3\x86\x5\x86\x950\n\x86\x3\x86\x5\x86\x953\n\x86\x3\x86"+ - "\x3\x86\x3\x86\x5\x86\x958\n\x86\x3\x86\x3\x86\x5\x86\x95C\n\x86\x3\x86"+ - "\x6\x86\x95F\n\x86\r\x86\xE\x86\x960\x3\x86\x5\x86\x964\n\x86\x3\x86\x3"+ - "\x86\x5\x86\x968\n\x86\x5\x86\x96A\n\x86\x3\x87\x3\x87\x3\x88\x6\x88\x96F"+ - "\n\x88\r\x88\xE\x88\x970\x3\x88\x2\x2\x3\x9A\x89\x2\x2\x4\x2\x6\x2\b\x2"+ - "\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E"+ - "\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2\x34\x2\x36\x2\x38\x2"+ - ":\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2N\x2P\x2R\x2T\x2V\x2"+ - "X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2l\x2n\x2p\x2r\x2t\x2"+ - "v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88\x2\x8A\x2\x8C\x2"+ - "\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C\x2\x9E\x2\xA0\x2"+ - "\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0\x2\xB2\x2\xB4\x2"+ - "\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4\x2\xC6\x2\xC8\x2"+ - "\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8\x2\xDA\x2\xDC\x2"+ - "\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC\x2\xEE\x2\xF0\x2"+ - "\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100\x2\x102\x2\x104"+ - "\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x2\x1A\x5\x2;;\x45\x45\xBC"+ - "\xBC\x3\x2HT\x4\x2\xC3\xC3\xC7\xC7\x3\x2jn\x3\x2\x92\x93\a\x2\x38\x38"+ - ";;{{\x9B\x9B\xA6\xA6\x4\x2\xA8\xA9\xCB\xCB\x4\x2\x85\x87\xB3\xB3\x4\x2"+ - "))++\x4\x2\xB5\xB5\xBB\xBB\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9"+ - "\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2,-\x4\x2=>\x9C\x9C\x3\x2"+ - "=>\r\x2\x13\x13\x1F <\x2FD\x3\x2\x2\x2@\x31D\x3\x2\x2\x2\x42\x31F"+ - "\x3\x2\x2\x2\x44\x335\x3\x2\x2\x2\x46\x339\x3\x2\x2\x2H\x357\x3\x2\x2"+ - "\x2J\x359\x3\x2\x2\x2L\x362\x3\x2\x2\x2N\x364\x3\x2\x2\x2P\x36D\x3\x2"+ - "\x2\x2R\x372\x3\x2\x2\x2T\x376\x3\x2\x2\x2V\x387\x3\x2\x2\x2X\x393\x3"+ - "\x2\x2\x2Z\x39F\x3\x2\x2\x2\\\x3B3\x3\x2\x2\x2^\x3BF\x3\x2\x2\x2`\x3CD"+ - "\x3\x2\x2\x2\x62\x3D9\x3\x2\x2\x2\x64\x3ED\x3\x2\x2\x2\x66\x401\x3\x2"+ - "\x2\x2h\x446\x3\x2\x2\x2j\x459\x3\x2\x2\x2l\x45B\x3\x2\x2\x2n\x46B\x3"+ - "\x2\x2\x2p\x48B\x3\x2\x2\x2r\x4A3\x3\x2\x2\x2t\x4B8\x3\x2\x2\x2v\x4CE"+ - "\x3\x2\x2\x2x\x4E1\x3\x2\x2\x2z\x4F5\x3\x2\x2\x2|\x507\x3\x2\x2\x2~\x509"+ - "\x3\x2\x2\x2\x80\x511\x3\x2\x2\x2\x82\x513\x3\x2\x2\x2\x84\x51F\x3\x2"+ - "\x2\x2\x86\x52B\x3\x2\x2\x2\x88\x54A\x3\x2\x2\x2\x8A\x54C\x3\x2\x2\x2"+ - "\x8C\x562\x3\x2\x2\x2\x8E\x564\x3\x2\x2\x2\x90\x573\x3\x2\x2\x2\x92\x58A"+ - "\x3\x2\x2\x2\x94\x58F\x3\x2\x2\x2\x96\x59D\x3\x2\x2\x2\x98\x5B5\x3\x2"+ - "\x2\x2\x9A\x5F6\x3\x2\x2\x2\x9C\x669\x3\x2\x2\x2\x9E\x676\x3\x2\x2\x2"+ - "\xA0\x67F\x3\x2\x2\x2\xA2\x68D\x3\x2\x2\x2\xA4\x6A9\x3\x2\x2\x2\xA6\x6B2"+ - "\x3\x2\x2\x2\xA8\x6BE\x3\x2\x2\x2\xAA\x6C7\x3\x2\x2\x2\xAC\x6C9\x3\x2"+ - "\x2\x2\xAE\x6D7\x3\x2\x2\x2\xB0\x6DB\x3\x2\x2\x2\xB2\x721\x3\x2\x2\x2"+ - "\xB4\x725\x3\x2\x2\x2\xB6\x728\x3\x2\x2\x2\xB8\x74C\x3\x2\x2\x2\xBA\x762"+ - "\x3\x2\x2\x2\xBC\x764\x3\x2\x2\x2\xBE\x77C\x3\x2\x2\x2\xC0\x7A1\x3\x2"+ - "\x2\x2\xC2\x7B9\x3\x2\x2\x2\xC4\x7E0\x3\x2\x2\x2\xC6\x7FC\x3\x2\x2\x2"+ - "\xC8\x805\x3\x2\x2\x2\xCA\x815\x3\x2\x2\x2\xCC\x829\x3\x2\x2\x2\xCE\x834"+ - "\x3\x2\x2\x2\xD0\x83C\x3\x2\x2\x2\xD2\x857\x3\x2\x2\x2\xD4\x87B\x3\x2"+ - "\x2\x2\xD6\x881\x3\x2\x2\x2\xD8\x894\x3\x2\x2\x2\xDA\x89B\x3\x2\x2\x2"+ - "\xDC\x89F\x3\x2\x2\x2\xDE\x8A1\x3\x2\x2\x2\xE0\x8B0\x3\x2\x2\x2\xE2\x8B2"+ - "\x3\x2\x2\x2\xE4\x8B4\x3\x2\x2\x2\xE6\x8BC\x3\x2\x2\x2\xE8\x8C4\x3\x2"+ - "\x2\x2\xEA\x8D1\x3\x2\x2\x2\xEC\x8DD\x3\x2\x2\x2\xEE\x8DF\x3\x2\x2\x2"+ - "\xF0\x8E3\x3\x2\x2\x2\xF2\x8EF\x3\x2\x2\x2\xF4\x8F1\x3\x2\x2\x2\xF6\x8F3"+ - "\x3\x2\x2\x2\xF8\x8F5\x3\x2\x2\x2\xFA\x8F7\x3\x2\x2\x2\xFC\x90C\x3\x2"+ - "\x2\x2\xFE\x918\x3\x2\x2\x2\x100\x91B\x3\x2\x2\x2\x102\x91D\x3\x2\x2\x2"+ - "\x104\x91F\x3\x2\x2\x2\x106\x925\x3\x2\x2\x2\x108\x92A\x3\x2\x2\x2\x10A"+ - "\x969\x3\x2\x2\x2\x10C\x96B\x3\x2\x2\x2\x10E\x96E\x3\x2\x2\x2\x110\x111"+ - "\x5\x4\x3\x2\x111\x112\a\x2\x2\x3\x112\x3\x3\x2\x2\x2\x113\x115\x5\x10E"+ - "\x88\x2\x114\x113\x3\x2\x2\x2\x114\x115\x3\x2\x2\x2\x115\x116\x3\x2\x2"+ - "\x2\x116\x11A\x5\xFE\x80\x2\x117\x118\x5\x6\x4\x2\x118\x119\x5\xFE\x80"+ - "\x2\x119\x11B\x3\x2\x2\x2\x11A\x117\x3\x2\x2\x2\x11A\x11B\x3\x2\x2\x2"+ - "\x11B\x11D\x3\x2\x2\x2\x11C\x11E\x5\b\x5\x2\x11D\x11C\x3\x2\x2\x2\x11D"+ - "\x11E\x3\x2\x2\x2\x11E\x11F\x3\x2\x2\x2\x11F\x121\x5\xFE\x80\x2\x120\x122"+ - "\x5\f\a\x2\x121\x120\x3\x2\x2\x2\x121\x122\x3\x2\x2\x2\x122\x123\x3\x2"+ - "\x2\x2\x123\x125\x5\xFE\x80\x2\x124\x126\x5\xE\b\x2\x125\x124\x3\x2\x2"+ - "\x2\x125\x126\x3\x2\x2\x2\x126\x127\x3\x2\x2\x2\x127\x129\x5\xFE\x80\x2"+ - "\x128\x12A\x5\x14\v\x2\x129\x128\x3\x2\x2\x2\x129\x12A\x3\x2\x2\x2\x12A"+ - "\x12B\x3\x2\x2\x2\x12B\x12D\x5\xFE\x80\x2\x12C\x12E\x5\x10E\x88\x2\x12D"+ - "\x12C\x3\x2\x2\x2\x12D\x12E\x3\x2\x2\x2\x12E\x5\x3\x2\x2\x2\x12F\x130"+ - "\a\xC5\x2\x2\x130\x131\x5\x10E\x88\x2\x131\x133\x5\xEEx\x2\x132\x134\x5"+ - "\x10E\x88\x2\x133\x132\x3\x2\x2\x2\x133\x134\x3\x2\x2\x2\x134\x136\x3"+ - "\x2\x2\x2\x135\x137\a\x42\x2\x2\x136\x135\x3\x2\x2\x2\x136\x137\x3\x2"+ - "\x2\x2\x137\x138\x3\x2\x2\x2\x138\x139\x5\xFE\x80\x2\x139\a\x3\x2\x2\x2"+ - "\x13A\x142\a:\x2\x2\x13B\x13C\x5\x10E\x88\x2\x13C\x13D\a\xF1\x2\x2\x13D"+ - "\x13E\x5\x10E\x88\x2\x13E\x140\x5\xDAn\x2\x13F\x141\x5\x10E\x88\x2\x140"+ - "\x13F\x3\x2\x2\x2\x140\x141\x3\x2\x2\x2\x141\x143\x3\x2\x2\x2\x142\x13B"+ - "\x3\x2\x2\x2\x142\x143\x3\x2\x2\x2\x143\x144\x3\x2\x2\x2\x144\x146\x5"+ - "\xFE\x80\x2\x145\x147\x5\n\x6\x2\x146\x145\x3\x2\x2\x2\x147\x148\x3\x2"+ - "\x2\x2\x148\x146\x3\x2\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14A\x3\x2\x2"+ - "\x2\x14A\x14B\a\x64\x2\x2\x14B\t\x3\x2\x2\x2\x14C\x150\x5\xDAn\x2\x14D"+ - "\x14F\x5\x10E\x88\x2\x14E\x14D\x3\x2\x2\x2\x14F\x152\x3\x2\x2\x2\x150"+ - "\x14E\x3\x2\x2\x2\x150\x151\x3\x2\x2\x2\x151\x153\x3\x2\x2\x2\x152\x150"+ - "\x3\x2\x2\x2\x153\x157\a\xD0\x2\x2\x154\x156\x5\x10E\x88\x2\x155\x154"+ - "\x3\x2\x2\x2\x156\x159\x3\x2\x2\x2\x157\x155\x3\x2\x2\x2\x157\x158\x3"+ - "\x2\x2\x2\x158\x15A\x3\x2\x2\x2\x159\x157\x3\x2\x2\x2\x15A\x15D\x5\x9A"+ - "N\x2\x15B\x15C\a*\x2\x2\x15C\x15E\x5\xEEx\x2\x15D\x15B\x3\x2\x2\x2\x15D"+ - "\x15E\x3\x2\x2\x2\x15E\x15F\x3\x2\x2\x2\x15F\x160\x5\xFE\x80\x2\x160\v"+ - "\x3\x2\x2\x2\x161\x162\x5\x18\r\x2\x162\x163\x5\xFE\x80\x2\x163\x165\x3"+ - "\x2\x2\x2\x164\x161\x3\x2\x2\x2\x165\x166\x3\x2\x2\x2\x166\x164\x3\x2"+ - "\x2\x2\x166\x167\x3\x2\x2\x2\x167\r\x3\x2\x2\x2\x168\x16E\x5\x12\n\x2"+ - "\x169\x16A\x5\xFE\x80\x2\x16A\x16B\x5\x12\n\x2\x16B\x16D\x3\x2\x2\x2\x16C"+ - "\x169\x3\x2\x2\x2\x16D\x170\x3\x2\x2\x2\x16E\x16C\x3\x2\x2\x2\x16E\x16F"+ - "\x3\x2\x2\x2\x16F\x171\x3\x2\x2\x2\x170\x16E\x3\x2\x2\x2\x171\x172\x5"+ - "\xFE\x80\x2\x172\xF\x3\x2\x2\x2\x173\x174\a\x96\x2\x2\x174\x175\x5\x10E"+ - "\x88\x2\x175\x176\x5\xEEx\x2\x176\x17E\x3\x2\x2\x2\x177\x178\a\x98\x2"+ - "\x2\x178\x179\x5\x10E\x88\x2\x179\x17A\t\x2\x2\x2\x17A\x17E\x3\x2\x2\x2"+ - "\x17B\x17E\a\x97\x2\x2\x17C\x17E\a\x99\x2\x2\x17D\x173\x3\x2\x2\x2\x17D"+ - "\x177\x3\x2\x2\x2\x17D\x17B\x3\x2\x2\x2\x17D\x17C\x3\x2\x2\x2\x17E\x11"+ - "\x3\x2\x2\x2\x17F\x188\x5(\x15\x2\x180\x188\x5.\x18\x2\x181\x188\x5\x36"+ - "\x1C\x2\x182\x188\x5$\x13\x2\x183\x188\x5R*\x2\x184\x188\x5\x9EP\x2\x185"+ - "\x188\x5\x10\t\x2\x186\x188\x5\x94K\x2\x187\x17F\x3\x2\x2\x2\x187\x180"+ - "\x3\x2\x2\x2\x187\x181\x3\x2\x2\x2\x187\x182\x3\x2\x2\x2\x187\x183\x3"+ - "\x2\x2\x2\x187\x184\x3\x2\x2\x2\x187\x185\x3\x2\x2\x2\x187\x186\x3\x2"+ - "\x2\x2\x188\x13\x3\x2\x2\x2\x189\x18F\x5\x16\f\x2\x18A\x18B\x5\xFE\x80"+ - "\x2\x18B\x18C\x5\x16\f\x2\x18C\x18E\x3\x2\x2\x2\x18D\x18A\x3\x2\x2\x2"+ - "\x18E\x191\x3\x2\x2\x2\x18F\x18D\x3\x2\x2\x2\x18F\x190\x3\x2\x2\x2\x190"+ - "\x192\x3\x2\x2\x2\x191\x18F\x3\x2\x2\x2\x192\x193\x5\xFE\x80\x2\x193\x15"+ - "\x3\x2\x2\x2\x194\x19A\x5> \x2\x195\x19A\x5n\x38\x2\x196\x19A\x5p\x39"+ - "\x2\x197\x19A\x5r:\x2\x198\x19A\x5\x90I\x2\x199\x194\x3\x2\x2\x2\x199"+ - "\x195\x3\x2\x2\x2\x199\x196\x3\x2\x2\x2\x199\x197\x3\x2\x2\x2\x199\x198"+ - "\x3\x2\x2\x2\x19A\x17\x3\x2\x2\x2\x19B\x19C\a\x37\x2\x2\x19C\x19D\x5\x10E"+ - "\x88\x2\x19D\x19F\x5\x1A\xE\x2\x19E\x1A0\x5\x10E\x88\x2\x19F\x19E\x3\x2"+ - "\x2\x2\x19F\x1A0\x3\x2\x2\x2\x1A0\x1A1\x3\x2\x2\x2\x1A1\x1A3\a\xD0\x2"+ - "\x2\x1A2\x1A4\x5\x10E\x88\x2\x1A3\x1A2\x3\x2\x2\x2\x1A3\x1A4\x3\x2\x2"+ - "\x2\x1A4\x1A5\x3\x2\x2\x2\x1A5\x1B0\x5\x1C\xF\x2\x1A6\x1A8\x5\x10E\x88"+ - "\x2\x1A7\x1A6\x3\x2\x2\x2\x1A7\x1A8\x3\x2\x2\x2\x1A8\x1A9\x3\x2\x2\x2"+ - "\x1A9\x1AB\a)\x2\x2\x1AA\x1AC\x5\x10E\x88\x2\x1AB\x1AA\x3\x2\x2\x2\x1AB"+ - "\x1AC\x3\x2\x2\x2\x1AC\x1AD\x3\x2\x2\x2\x1AD\x1AF\x5\x1C\xF\x2\x1AE\x1A7"+ - "\x3\x2\x2\x2\x1AF\x1B2\x3\x2\x2\x2\x1B0\x1AE\x3\x2\x2\x2\x1B0\x1B1\x3"+ - "\x2\x2\x2\x1B1\x19\x3\x2\x2\x2\x1B2\x1B0\x3\x2\x2\x2\x1B3\x1B4\x5\xBA"+ - "^\x2\x1B4\x1B\x3\x2\x2\x2\x1B5\x1B6\x5\x9AN\x2\x1B6\x1D\x3\x2\x2\x2\x1B7"+ - "\x1BD\x5 \x11\x2\x1B8\x1B9\x5\xFE\x80\x2\x1B9\x1BA\x5 \x11\x2\x1BA\x1BC"+ - "\x3\x2\x2\x2\x1BB\x1B8\x3\x2\x2\x2\x1BC\x1BF\x3\x2\x2\x2\x1BD\x1BB\x3"+ - "\x2\x2\x2\x1BD\x1BE\x3\x2\x2\x2\x1BE\x1C0\x3\x2\x2\x2\x1BF\x1BD\x3\x2"+ - "\x2\x2\x1C0\x1C1\x5\xFE\x80\x2\x1C1\x1F\x3\x2\x2\x2\x1C2\x1F0\x5\xEAv"+ - "\x2\x1C3\x1F0\x5\x18\r\x2\x1C4\x1F0\x5\"\x12\x2\x1C5\x1F0\x5$\x13\x2\x1C6"+ - "\x1F0\x5*\x16\x2\x1C7\x1F0\x5,\x17\x2\x1C8\x1F0\x5\x32\x1A\x2\x1C9\x1F0"+ - "\x5\x34\x1B\x2\x1CA\x1F0\x5\x38\x1D\x2\x1CB\x1F0\x5\xB0Y\x2\x1CC\x1F0"+ - "\x5:\x1E\x2\x1CD\x1F0\x5<\x1F\x2\x1CE\x1F0\x5\x42\"\x2\x1CF\x1F0\x5\x44"+ - "#\x2\x1D0\x1F0\x5\x46$\x2\x1D1\x1F0\x5H%\x2\x1D2\x1F0\x5R*\x2\x1D3\x1F0"+ - "\x5T+\x2\x1D4\x1F0\x5V,\x2\x1D5\x1F0\x5X-\x2\x1D6\x1F0\x5Z.\x2\x1D7\x1F0"+ - "\x5\\/\x2\x1D8\x1F0\x5^\x30\x2\x1D9\x1F0\x5`\x31\x2\x1DA\x1F0\x5\x62\x32"+ - "\x2\x1DB\x1F0\x5\x64\x33\x2\x1DC\x1F0\x5\x66\x34\x2\x1DD\x1F0\x5l\x37"+ - "\x2\x1DE\x1F0\x5t;\x2\x1DF\x1F0\x5v<\x2\x1E0\x1F0\x5x=\x2\x1E1\x1F0\x5"+ - "|?\x2\x1E2\x1F0\x5~@\x2\x1E3\x1F0\x5\x80\x41\x2\x1E4\x1F0\x5\x82\x42\x2"+ - "\x1E5\x1F0\x5\x84\x43\x2\x1E6\x1F0\x5\x86\x44\x2\x1E7\x1F0\x5\x8EH\x2"+ - "\x1E8\x1F0\x5\x98M\x2\x1E9\x1F0\x5\x9EP\x2\x1EA\x1F0\x5\xA4S\x2\x1EB\x1F0"+ - "\x5\xA6T\x2\x1EC\x1F0\x5\xA8U\x2\x1ED\x1F0\x5\xACW\x2\x1EE\x1F0\x5\xB4"+ - "[\x2\x1EF\x1C2\x3\x2\x2\x2\x1EF\x1C3\x3\x2\x2\x2\x1EF\x1C4\x3\x2\x2\x2"+ - "\x1EF\x1C5\x3\x2\x2\x2\x1EF\x1C6\x3\x2\x2\x2\x1EF\x1C7\x3\x2\x2\x2\x1EF"+ - "\x1C8\x3\x2\x2\x2\x1EF\x1C9\x3\x2\x2\x2\x1EF\x1CA\x3\x2\x2\x2\x1EF\x1CB"+ - "\x3\x2\x2\x2\x1EF\x1CC\x3\x2\x2\x2\x1EF\x1CD\x3\x2\x2\x2\x1EF\x1CE\x3"+ - "\x2\x2\x2\x1EF\x1CF\x3\x2\x2\x2\x1EF\x1D0\x3\x2\x2\x2\x1EF\x1D1\x3\x2"+ - "\x2\x2\x1EF\x1D2\x3\x2\x2\x2\x1EF\x1D3\x3\x2\x2\x2\x1EF\x1D4\x3\x2\x2"+ - "\x2\x1EF\x1D5\x3\x2\x2\x2\x1EF\x1D6\x3\x2\x2\x2\x1EF\x1D7\x3\x2\x2\x2"+ - "\x1EF\x1D8\x3\x2\x2\x2\x1EF\x1D9\x3\x2\x2\x2\x1EF\x1DA\x3\x2\x2\x2\x1EF"+ - "\x1DB\x3\x2\x2\x2\x1EF\x1DC\x3\x2\x2\x2\x1EF\x1DD\x3\x2\x2\x2\x1EF\x1DE"+ - "\x3\x2\x2\x2\x1EF\x1DF\x3\x2\x2\x2\x1EF\x1E0\x3\x2\x2\x2\x1EF\x1E1\x3"+ - "\x2\x2\x2\x1EF\x1E2\x3\x2\x2\x2\x1EF\x1E3\x3\x2\x2\x2\x1EF\x1E4\x3\x2"+ - "\x2\x2\x1EF\x1E5\x3\x2\x2\x2\x1EF\x1E6\x3\x2\x2\x2\x1EF\x1E7\x3\x2\x2"+ - "\x2\x1EF\x1E8\x3\x2\x2\x2\x1EF\x1E9\x3\x2\x2\x2\x1EF\x1EA\x3\x2\x2\x2"+ - "\x1EF\x1EB\x3\x2\x2\x2\x1EF\x1EC\x3\x2\x2\x2\x1EF\x1ED\x3\x2\x2\x2\x1EF"+ - "\x1EE\x3\x2\x2\x2\x1F0!\x3\x2\x2\x2\x1F1\x201\a\x43\x2\x2\x1F2\x1F3\x5"+ - "\x10E\x88\x2\x1F3\x1FE\x5\xAEX\x2\x1F4\x1F6\x5\x10E\x88\x2\x1F5\x1F4\x3"+ - "\x2\x2\x2\x1F5\x1F6\x3\x2\x2\x2\x1F6\x1F7\x3\x2\x2\x2\x1F7\x1F9\a)\x2"+ - "\x2\x1F8\x1FA\x5\x10E\x88\x2\x1F9\x1F8\x3\x2\x2\x2\x1F9\x1FA\x3\x2\x2"+ - "\x2\x1FA\x1FB\x3\x2\x2\x2\x1FB\x1FD\x5\xAEX\x2\x1FC\x1F5\x3\x2\x2\x2\x1FD"+ - "\x200\x3\x2\x2\x2\x1FE\x1FC\x3\x2\x2\x2\x1FE\x1FF\x3\x2\x2\x2\x1FF\x202"+ - "\x3\x2\x2\x2\x200\x1FE\x3\x2\x2\x2\x201\x1F2\x3\x2\x2\x2\x201\x202\x3"+ - "\x2\x2\x2\x202#\x3\x2\x2\x2\x203\x204\x5\xF4{\x2\x204\x205\x5\x10E\x88"+ - "\x2\x205\x207\x3\x2\x2\x2\x206\x203\x3\x2\x2\x2\x206\x207\x3\x2\x2\x2"+ - "\x207\x208\x3\x2\x2\x2\x208\x209\a\x44\x2\x2\x209\x20A\x5\x10E\x88\x2"+ - "\x20A\x215\x5&\x14\x2\x20B\x20D\x5\x10E\x88\x2\x20C\x20B\x3\x2\x2\x2\x20C"+ - "\x20D\x3\x2\x2\x2\x20D\x20E\x3\x2\x2\x2\x20E\x210\a)\x2\x2\x20F\x211\x5"+ - "\x10E\x88\x2\x210\x20F\x3\x2\x2\x2\x210\x211\x3\x2\x2\x2\x211\x212\x3"+ - "\x2\x2\x2\x212\x214\x5&\x14\x2\x213\x20C\x3\x2\x2\x2\x214\x217\x3\x2\x2"+ - "\x2\x215\x213\x3\x2\x2\x2\x215\x216\x3\x2\x2\x2\x216%\x3\x2\x2\x2\x217"+ - "\x215\x3\x2\x2\x2\x218\x21A\x5\xDCo\x2\x219\x21B\x5\xF2z\x2\x21A\x219"+ - "\x3\x2\x2\x2\x21A\x21B\x3\x2\x2\x2\x21B\x21F\x3\x2\x2\x2\x21C\x21D\x5"+ - "\x10E\x88\x2\x21D\x21E\x5\xDEp\x2\x21E\x220\x3\x2\x2\x2\x21F\x21C\x3\x2"+ - "\x2\x2\x21F\x220\x3\x2\x2\x2\x220\x222\x3\x2\x2\x2\x221\x223\x5\x10E\x88"+ - "\x2\x222\x221\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x224\x3\x2\x2\x2"+ - "\x224\x226\a\xD0\x2\x2\x225\x227\x5\x10E\x88\x2\x226\x225\x3\x2\x2\x2"+ - "\x226\x227\x3\x2\x2\x2\x227\x228\x3\x2\x2\x2\x228\x229\x5\x9AN\x2\x229"+ - "\'\x3\x2\x2\x2\x22A\x22B\x5\xF4{\x2\x22B\x22C\x5\x10E\x88\x2\x22C\x22E"+ - "\x3\x2\x2\x2\x22D\x22A\x3\x2\x2\x2\x22D\x22E\x3\x2\x2\x2\x22E\x22F\x3"+ - "\x2\x2\x2\x22F\x230\aG\x2\x2\x230\x233\x5\x10E\x88\x2\x231\x232\a\xA3"+ - "\x2\x2\x232\x234\x5\x10E\x88\x2\x233\x231\x3\x2\x2\x2\x233\x234\x3\x2"+ - "\x2\x2\x234\x23A\x3\x2\x2\x2\x235\x237\ar\x2\x2\x236\x238\x5\xF2z\x2\x237"+ - "\x236\x3\x2\x2\x2\x237\x238\x3\x2\x2\x2\x238\x23B\x3\x2\x2\x2\x239\x23B"+ - "\a\xBA\x2\x2\x23A\x235\x3\x2\x2\x2\x23A\x239\x3\x2\x2\x2\x23B\x23C\x3"+ - "\x2\x2\x2\x23C\x23D\x5\x10E\x88\x2\x23D\x23F\x5\xDCo\x2\x23E\x240\x5\xF2"+ - "z\x2\x23F\x23E\x3\x2\x2\x2\x23F\x240\x3\x2\x2\x2\x240\x241\x3\x2\x2\x2"+ - "\x241\x242\x5\x10E\x88\x2\x242\x243\a\x82\x2\x2\x243\x244\x5\x10E\x88"+ - "\x2\x244\x24A\a\xE3\x2\x2\x245\x246\x5\x10E\x88\x2\x246\x247\a\x35\x2"+ - "\x2\x247\x248\x5\x10E\x88\x2\x248\x249\a\xE3\x2\x2\x249\x24B\x3\x2\x2"+ - "\x2\x24A\x245\x3\x2\x2\x2\x24A\x24B\x3\x2\x2\x2\x24B\x250\x3\x2\x2\x2"+ - "\x24C\x24E\x5\x10E\x88\x2\x24D\x24C\x3\x2\x2\x2\x24D\x24E\x3\x2\x2\x2"+ - "\x24E\x24F\x3\x2\x2\x2\x24F\x251\x5\xD0i\x2\x250\x24D\x3\x2\x2\x2\x250"+ - "\x251\x3\x2\x2\x2\x251\x255\x3\x2\x2\x2\x252\x253\x5\x10E\x88\x2\x253"+ - "\x254\x5\xDEp\x2\x254\x256\x3\x2\x2\x2\x255\x252\x3\x2\x2\x2\x255\x256"+ - "\x3\x2\x2\x2\x256)\x3\x2\x2\x2\x257\x258\t\x3\x2\x2\x258\x259\x5\x10E"+ - "\x88\x2\x259\x264\x5\xE8u\x2\x25A\x25C\x5\x10E\x88\x2\x25B\x25A\x3\x2"+ - "\x2\x2\x25B\x25C\x3\x2\x2\x2\x25C\x25D\x3\x2\x2\x2\x25D\x25F\a)\x2\x2"+ - "\x25E\x260\x5\x10E\x88\x2\x25F\x25E\x3\x2\x2\x2\x25F\x260\x3\x2\x2\x2"+ - "\x260\x261\x3\x2\x2\x2\x261\x263\x5\xE8u\x2\x262\x25B\x3\x2\x2\x2\x263"+ - "\x266\x3\x2\x2\x2\x264\x262\x3\x2\x2\x2\x264\x265\x3\x2\x2\x2\x265+\x3"+ - "\x2\x2\x2\x266\x264\x3\x2\x2\x2\x267\x268\aV\x2\x2\x268\x26A\x5\xFE\x80"+ - "\x2\x269\x26B\x5\x1E\x10\x2\x26A\x269\x3\x2\x2\x2\x26A\x26B\x3\x2\x2\x2"+ - "\x26B\x26C\x3\x2\x2\x2\x26C\x26D\a\x80\x2\x2\x26D\x285\x3\x2\x2\x2\x26E"+ - "\x26F\aV\x2\x2\x26F\x270\x5\x10E\x88\x2\x270\x271\t\x4\x2\x2\x271\x272"+ - "\x5\x10E\x88\x2\x272\x273\x5\x9AN\x2\x273\x275\x5\xFE\x80\x2\x274\x276"+ - "\x5\x1E\x10\x2\x275\x274\x3\x2\x2\x2\x275\x276\x3\x2\x2\x2\x276\x277\x3"+ - "\x2\x2\x2\x277\x278\a\x80\x2\x2\x278\x285\x3\x2\x2\x2\x279\x27A\aV\x2"+ - "\x2\x27A\x27C\x5\xFE\x80\x2\x27B\x27D\x5\x1E\x10\x2\x27C\x27B\x3\x2\x2"+ - "\x2\x27C\x27D\x3\x2\x2\x2\x27D\x27E\x3\x2\x2\x2\x27E\x27F\a\x80\x2\x2"+ - "\x27F\x280\x5\x10E\x88\x2\x280\x281\t\x4\x2\x2\x281\x282\x5\x10E\x88\x2"+ - "\x282\x283\x5\x9AN\x2\x283\x285\x3\x2\x2\x2\x284\x267\x3\x2\x2\x2\x284"+ - "\x26E\x3\x2\x2\x2\x284\x279\x3\x2\x2\x2\x285-\x3\x2\x2\x2\x286\x287\x5"+ - "\xF4{\x2\x287\x288\x5\x10E\x88\x2\x288\x28A\x3\x2\x2\x2\x289\x286\x3\x2"+ - "\x2\x2\x289\x28A\x3\x2\x2\x2\x28A\x28B\x3\x2\x2\x2\x28B\x28C\a\x65\x2"+ - "\x2\x28C\x28D\x5\x10E\x88\x2\x28D\x28E\x5\xDCo\x2\x28E\x292\x5\xFE\x80"+ - "\x2\x28F\x291\x5\x30\x19\x2\x290\x28F\x3\x2\x2\x2\x291\x294\x3\x2\x2\x2"+ - "\x292\x290\x3\x2\x2\x2\x292\x293\x3\x2\x2\x2\x293\x295\x3\x2\x2\x2\x294"+ - "\x292\x3\x2\x2\x2\x295\x296\a\\\x2\x2\x296/\x3\x2\x2\x2\x297\x2A0\x5\xDC"+ - "o\x2\x298\x29A\x5\x10E\x88\x2\x299\x298\x3\x2\x2\x2\x299\x29A\x3\x2\x2"+ - "\x2\x29A\x29B\x3\x2\x2\x2\x29B\x29D\a\xD0\x2\x2\x29C\x29E\x5\x10E\x88"+ - "\x2\x29D\x29C\x3\x2\x2\x2\x29D\x29E\x3\x2\x2\x2\x29E\x29F\x3\x2\x2\x2"+ - "\x29F\x2A1\x5\x9AN\x2\x2A0\x299\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1"+ - "\x2A2\x3\x2\x2\x2\x2A2\x2A3\x5\xFE\x80\x2\x2A3\x31\x3\x2\x2\x2\x2A4\x2A5"+ - "\ag\x2\x2\x2A5\x2A6\x5\x10E\x88\x2\x2A6\x2B1\x5\x9AN\x2\x2A7\x2A9\x5\x10E"+ - "\x88\x2\x2A8\x2A7\x3\x2\x2\x2\x2A8\x2A9\x3\x2\x2\x2\x2A9\x2AA\x3\x2\x2"+ - "\x2\x2AA\x2AC\a)\x2\x2\x2AB\x2AD\x5\x10E\x88\x2\x2AC\x2AB\x3\x2\x2\x2"+ - "\x2AC\x2AD\x3\x2\x2\x2\x2AD\x2AE\x3\x2\x2\x2\x2AE\x2B0\x5\x9AN\x2\x2AF"+ - "\x2A8\x3\x2\x2\x2\x2B0\x2B3\x3\x2\x2\x2\x2B1\x2AF\x3\x2\x2\x2\x2B1\x2B2"+ - "\x3\x2\x2\x2\x2B2\x33\x3\x2\x2\x2\x2B3\x2B1\x3\x2\x2\x2\x2B4\x2B5\ah\x2"+ - "\x2\x2B5\x2B6\x5\x10E\x88\x2\x2B6\x2B7\x5\x9AN\x2\x2B7\x35\x3\x2\x2\x2"+ - "\x2B8\x2B9\x5\xF4{\x2\x2B9\x2BA\x5\x10E\x88\x2\x2BA\x2BC\x3\x2\x2\x2\x2BB"+ - "\x2B8\x3\x2\x2\x2\x2BB\x2BC\x3\x2\x2\x2\x2BC\x2BD\x3\x2\x2\x2\x2BD\x2BE"+ - "\ai\x2\x2\x2BE\x2BF\x5\x10E\x88\x2\x2BF\x2C1\x5\xDCo\x2\x2C0\x2C2\x5\x10E"+ - "\x88\x2\x2C1\x2C0\x3\x2\x2\x2\x2C1\x2C2\x3\x2\x2\x2\x2C2\x2C3\x3\x2\x2"+ - "\x2\x2C3\x2C4\x5\xD0i\x2\x2C4\x37\x3\x2\x2\x2\x2C5\x2C6\t\x5\x2\x2\x2C6"+ - "\x39\x3\x2\x2\x2\x2C7\x2C8\aq\x2\x2\x2C8\x2C9\x5\x10E\x88\x2\x2C9\x2CA"+ - "\aX\x2\x2\x2CA\x2CB\x5\x10E\x88\x2\x2CB\x2CC\x5\x9AN\x2\x2CC\x2CD\x5\x10E"+ - "\x88\x2\x2CD\x2CE\az\x2\x2\x2CE\x2CF\x5\x10E\x88\x2\x2CF\x2D0\x5\x9AN"+ - "\x2\x2D0\x2D2\x5\xFE\x80\x2\x2D1\x2D3\x5\x1E\x10\x2\x2D2\x2D1\x3\x2\x2"+ - "\x2\x2D2\x2D3\x3\x2\x2\x2\x2D3\x2D4\x3\x2\x2\x2\x2D4\x2D8\a\x8C\x2\x2"+ - "\x2D5\x2D6\x5\x10E\x88\x2\x2D6\x2D7\x5\x9AN\x2\x2D7\x2D9\x3\x2\x2\x2\x2D8"+ - "\x2D5\x3\x2\x2\x2\x2D8\x2D9\x3\x2\x2\x2\x2D9;\x3\x2\x2\x2\x2DA\x2DB\a"+ - "q\x2\x2\x2DB\x2DC\x5\x10E\x88\x2\x2DC\x2DE\x5\x9AN\x2\x2DD\x2DF\x5\x10E"+ - "\x88\x2\x2DE\x2DD\x3\x2\x2\x2\x2DE\x2DF\x3\x2\x2\x2\x2DF\x2E0\x3\x2\x2"+ - "\x2\x2E0\x2E2\a\xD0\x2\x2\x2E1\x2E3\x5\x10E\x88\x2\x2E2\x2E1\x3\x2\x2"+ - "\x2\x2E2\x2E3\x3\x2\x2\x2\x2E3\x2E4\x3\x2\x2\x2\x2E4\x2E5\x5\x9AN\x2\x2E5"+ - "\x2E6\x5\x10E\x88\x2\x2E6\x2E7\a\xBE\x2\x2\x2E7\x2E8\x5\x10E\x88\x2\x2E8"+ - "\x2EE\x5\x9AN\x2\x2E9\x2EA\x5\x10E\x88\x2\x2EA\x2EB\a\xB7\x2\x2\x2EB\x2EC"+ - "\x5\x10E\x88\x2\x2EC\x2ED\x5\x9AN\x2\x2ED\x2EF\x3\x2\x2\x2\x2EE\x2E9\x3"+ - "\x2\x2\x2\x2EE\x2EF\x3\x2\x2\x2\x2EF\x2F0\x3\x2\x2\x2\x2F0\x2F2\x5\xFE"+ - "\x80\x2\x2F1\x2F3\x5\x1E\x10\x2\x2F2\x2F1\x3\x2\x2\x2\x2F2\x2F3\x3\x2"+ - "\x2\x2\x2F3\x2F4\x3\x2\x2\x2\x2F4\x2F8\a\x8C\x2\x2\x2F5\x2F6\x5\x10E\x88"+ - "\x2\x2F6\x2F7\x5\x9AN\x2\x2F7\x2F9\x3\x2\x2\x2\x2F8\x2F5\x3\x2\x2\x2\x2F8"+ - "\x2F9\x3\x2\x2\x2\x2F9=\x3\x2\x2\x2\x2FA\x2FB\x5\xF4{\x2\x2FB\x2FC\x5"+ - "\x10E\x88\x2\x2FC\x2FE\x3\x2\x2\x2\x2FD\x2FA\x3\x2\x2\x2\x2FD\x2FE\x3"+ - "\x2\x2\x2\x2FE\x301\x3\x2\x2\x2\x2FF\x300\a\xB6\x2\x2\x300\x302\x5\x10E"+ - "\x88\x2\x301\x2FF\x3\x2\x2\x2\x301\x302\x3\x2\x2\x2\x302\x303\x3\x2\x2"+ - "\x2\x303\x305\ar\x2\x2\x304\x306\x5\x10E\x88\x2\x305\x304\x3\x2\x2\x2"+ - "\x305\x306\x3\x2\x2\x2\x306\x307\x3\x2\x2\x2\x307\x309\x5@!\x2\x308\x30A"+ - "\x5\xF2z\x2\x309\x308\x3\x2\x2\x2\x309\x30A\x3\x2\x2\x2\x30A\x30F\x3\x2"+ - "\x2\x2\x30B\x30D\x5\x10E\x88\x2\x30C\x30B\x3\x2\x2\x2\x30C\x30D\x3\x2"+ - "\x2\x2\x30D\x30E\x3\x2\x2\x2\x30E\x310\x5\xD0i\x2\x30F\x30C\x3\x2\x2\x2"+ - "\x30F\x310\x3\x2\x2\x2\x310\x315\x3\x2\x2\x2\x311\x313\x5\x10E\x88\x2"+ - "\x312\x311\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x314\x3\x2\x2\x2\x314"+ - "\x316\x5\xDEp\x2\x315\x312\x3\x2\x2\x2\x315\x316\x3\x2\x2\x2\x316\x317"+ - "\x3\x2\x2\x2\x317\x319\x5\xFE\x80\x2\x318\x31A\x5\x1E\x10\x2\x319\x318"+ - "\x3\x2\x2\x2\x319\x31A\x3\x2\x2\x2\x31A\x31B\x3\x2\x2\x2\x31B\x31C\a]"+ - "\x2\x2\x31C?\x3\x2\x2\x2\x31D\x31E\x5\xDCo\x2\x31E\x41\x3\x2\x2\x2\x31F"+ - "\x320\as\x2\x2\x320\x321\x5\x10E\x88\x2\x321\x323\x5\xAEX\x2\x322\x324"+ - "\x5\x10E\x88\x2\x323\x322\x3\x2\x2\x2\x323\x324\x3\x2\x2\x2\x324\x325"+ - "\x3\x2\x2\x2\x325\x327\a)\x2\x2\x326\x328\x5\x10E\x88\x2\x327\x326\x3"+ - "\x2\x2\x2\x327\x328\x3\x2\x2\x2\x328\x32A\x3\x2\x2\x2\x329\x32B\x5\x9A"+ - "N\x2\x32A\x329\x3\x2\x2\x2\x32A\x32B\x3\x2\x2\x2\x32B\x32D\x3\x2\x2\x2"+ - "\x32C\x32E\x5\x10E\x88\x2\x32D\x32C\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2"+ - "\x32E\x32F\x3\x2\x2\x2\x32F\x331\a)\x2\x2\x330\x332\x5\x10E\x88\x2\x331"+ - "\x330\x3\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x333\x3\x2\x2\x2\x333\x334"+ - "\x5\x9AN\x2\x334\x43\x3\x2\x2\x2\x335\x336\au\x2\x2\x336\x337\x5\x10E"+ - "\x88\x2\x337\x338\x5\x9AN\x2\x338\x45\x3\x2\x2\x2\x339\x33A\av\x2\x2\x33A"+ - "\x33B\x5\x10E\x88\x2\x33B\x33C\x5\x9AN\x2\x33CG\x3\x2\x2\x2\x33D\x33E"+ - "\aw\x2\x2\x33E\x33F\x5\x10E\x88\x2\x33F\x340\x5L\'\x2\x340\x341\x5\x10E"+ - "\x88\x2\x341\x342\a\xBD\x2\x2\x342\x343\x5\x10E\x88\x2\x343\x349\x5 \x11"+ - "\x2\x344\x345\x5\x10E\x88\x2\x345\x346\aY\x2\x2\x346\x347\x5\x10E\x88"+ - "\x2\x347\x348\x5 \x11\x2\x348\x34A\x3\x2\x2\x2\x349\x344\x3\x2\x2\x2\x349"+ - "\x34A\x3\x2\x2\x2\x34A\x358\x3\x2\x2\x2\x34B\x34F\x5J&\x2\x34C\x34E\x5"+ - "N(\x2\x34D\x34C\x3\x2\x2\x2\x34E\x351\x3\x2\x2\x2\x34F\x34D\x3\x2\x2\x2"+ - "\x34F\x350\x3\x2\x2\x2\x350\x353\x3\x2\x2\x2\x351\x34F\x3\x2\x2\x2\x352"+ - "\x354\x5P)\x2\x353\x352\x3\x2\x2\x2\x353\x354\x3\x2\x2\x2\x354\x355\x3"+ - "\x2\x2\x2\x355\x356\a^\x2\x2\x356\x358\x3\x2\x2\x2\x357\x33D\x3\x2\x2"+ - "\x2\x357\x34B\x3\x2\x2\x2\x358I\x3\x2\x2\x2\x359\x35A\aw\x2\x2\x35A\x35B"+ - "\x5\x10E\x88\x2\x35B\x35C\x5L\'\x2\x35C\x35D\x5\x10E\x88\x2\x35D\x35E"+ - "\a\xBD\x2\x2\x35E\x360\x5\xFE\x80\x2\x35F\x361\x5\x1E\x10\x2\x360\x35F"+ - "\x3\x2\x2\x2\x360\x361\x3\x2\x2\x2\x361K\x3\x2\x2\x2\x362\x363\x5\x9A"+ - "N\x2\x363M\x3\x2\x2\x2\x364\x365\aZ\x2\x2\x365\x366\x5\x10E\x88\x2\x366"+ - "\x367\x5L\'\x2\x367\x368\x5\x10E\x88\x2\x368\x369\a\xBD\x2\x2\x369\x36B"+ - "\x5\xFE\x80\x2\x36A\x36C\x5\x1E\x10\x2\x36B\x36A\x3\x2\x2\x2\x36B\x36C"+ - "\x3\x2\x2\x2\x36CO\x3\x2\x2\x2\x36D\x36E\aY\x2\x2\x36E\x370\x5\xFE\x80"+ - "\x2\x36F\x371\x5\x1E\x10\x2\x370\x36F\x3\x2\x2\x2\x370\x371\x3\x2\x2\x2"+ - "\x371Q\x3\x2\x2\x2\x372\x373\ay\x2\x2\x373\x374\x5\x10E\x88\x2\x374\x375"+ - "\x5\x9AN\x2\x375S\x3\x2\x2\x2\x376\x377\a{\x2\x2\x377\x378\x5\x10E\x88"+ - "\x2\x378\x381\x5\xAEX\x2\x379\x37B\x5\x10E\x88\x2\x37A\x379\x3\x2\x2\x2"+ - "\x37A\x37B\x3\x2\x2\x2\x37B\x37C\x3\x2\x2\x2\x37C\x37E\a)\x2\x2\x37D\x37F"+ - "\x5\x10E\x88\x2\x37E\x37D\x3\x2\x2\x2\x37E\x37F\x3\x2\x2\x2\x37F\x380"+ - "\x3\x2\x2\x2\x380\x382\x5\x9AN\x2\x381\x37A\x3\x2\x2\x2\x382\x383\x3\x2"+ - "\x2\x2\x383\x381\x3\x2\x2\x2\x383\x384\x3\x2\x2\x2\x384U\x3\x2\x2\x2\x385"+ - "\x386\a\x81\x2\x2\x386\x388\x5\x10E\x88\x2\x387\x385\x3\x2\x2\x2\x387"+ - "\x388\x3\x2\x2\x2\x388\x389\x3\x2\x2\x2\x389\x38B\x5\x9AN\x2\x38A\x38C"+ - "\x5\x10E\x88\x2\x38B\x38A\x3\x2\x2\x2\x38B\x38C\x3\x2\x2\x2\x38C\x38D"+ - "\x3\x2\x2\x2\x38D\x38F\a\xD0\x2\x2\x38E\x390\x5\x10E\x88\x2\x38F\x38E"+ - "\x3\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x391\x3\x2\x2\x2\x391\x392\x5"+ - "\x9AN\x2\x392W\x3\x2\x2\x2\x393\x394\a\x84\x2\x2\x394\x395\x5\x10E\x88"+ - "\x2\x395\x397\x5\xAEX\x2\x396\x398\x5\x10E\x88\x2\x397\x396\x3\x2\x2\x2"+ - "\x397\x398\x3\x2\x2\x2\x398\x399\x3\x2\x2\x2\x399\x39B\a)\x2\x2\x39A\x39C"+ - "\x5\x10E\x88\x2\x39B\x39A\x3\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39C\x39D"+ - "\x3\x2\x2\x2\x39D\x39E\x5\x9AN\x2\x39EY\x3\x2\x2\x2\x39F\x3A0\a~\x2\x2"+ - "\x3A0\x3A1\x5\x10E\x88\x2\x3A1\x3B1\x5\x9AN\x2\x3A2\x3A4\x5\x10E\x88\x2"+ - "\x3A3\x3A2\x3\x2\x2\x2\x3A3\x3A4\x3\x2\x2\x2\x3A4\x3A5\x3\x2\x2\x2\x3A5"+ - "\x3A7\a)\x2\x2\x3A6\x3A8\x5\x10E\x88\x2\x3A7\x3A6\x3\x2\x2\x2\x3A7\x3A8"+ - "\x3\x2\x2\x2\x3A8\x3A9\x3\x2\x2\x2\x3A9\x3AF\x5\x9AN\x2\x3AA\x3AB\x5\x10E"+ - "\x88\x2\x3AB\x3AC\a\xBE\x2\x2\x3AC\x3AD\x5\x10E\x88\x2\x3AD\x3AE\x5\x9A"+ - "N\x2\x3AE\x3B0\x3\x2\x2\x2\x3AF\x3AA\x3\x2\x2\x2\x3AF\x3B0\x3\x2\x2\x2"+ - "\x3B0\x3B2\x3\x2\x2\x2\x3B1\x3A3\x3\x2\x2\x2\x3B1\x3B2\x3\x2\x2\x2\x3B2"+ - "[\x3\x2\x2\x2\x3B3\x3B4\a\x88\x2\x2\x3B4\x3B5\x5\x10E\x88\x2\x3B5\x3B7"+ - "\x5\x9AN\x2\x3B6\x3B8\x5\x10E\x88\x2\x3B7\x3B6\x3\x2\x2\x2\x3B7\x3B8\x3"+ - "\x2\x2\x2\x3B8\x3B9\x3\x2\x2\x2\x3B9\x3BB\a\xD0\x2\x2\x3BA\x3BC\x5\x10E"+ - "\x88\x2\x3BB\x3BA\x3\x2\x2\x2\x3BB\x3BC\x3\x2\x2\x2\x3BC\x3BD\x3\x2\x2"+ - "\x2\x3BD\x3BE\x5\x9AN\x2\x3BE]\x3\x2\x2\x2\x3BF\x3C1\a\x8A\x2\x2\x3C0"+ - "\x3C2\x5\x10E\x88\x2\x3C1\x3C0\x3\x2\x2\x2\x3C1\x3C2\x3\x2\x2\x2\x3C2"+ - "\x3C3\x3\x2\x2\x2\x3C3\x3C5\a\xD4\x2\x2\x3C4\x3C6\x5\x10E\x88\x2\x3C5"+ - "\x3C4\x3\x2\x2\x2\x3C5\x3C6\x3\x2\x2\x2\x3C6\x3C7\x3\x2\x2\x2\x3C7\x3C9"+ - "\x5\xCA\x66\x2\x3C8\x3CA\x5\x10E\x88\x2\x3C9\x3C8\x3\x2\x2\x2\x3C9\x3CA"+ - "\x3\x2\x2\x2\x3CA\x3CB\x3\x2\x2\x2\x3CB\x3CC\a\xDB\x2\x2\x3CC_\x3\x2\x2"+ - "\x2\x3CD\x3CE\t\x6\x2\x2\x3CE\x3D7\x5\x10E\x88\x2\x3CF\x3D0\av\x2\x2\x3D0"+ - "\x3D1\x5\x10E\x88\x2\x3D1\x3D2\x5\x9AN\x2\x3D2\x3D8\x3\x2\x2\x2\x3D3\x3D4"+ - "\a\xAD\x2\x2\x3D4\x3D5\x5\x10E\x88\x2\x3D5\x3D6\a\x8C\x2\x2\x3D6\x3D8"+ - "\x3\x2\x2\x2\x3D7\x3CF\x3\x2\x2\x2\x3D7\x3D3\x3\x2\x2\x2\x3D8\x61\x3\x2"+ - "\x2\x2\x3D9\x3DA\a\x91\x2\x2\x3DA\x3DB\x5\x10E\x88\x2\x3DB\x3DC\x5\x9A"+ - "N\x2\x3DC\x3DD\x5\x10E\x88\x2\x3DD\x3DE\av\x2\x2\x3DE\x3DF\x5\x10E\x88"+ - "\x2\x3DF\x3EA\x5\x9AN\x2\x3E0\x3E2\x5\x10E\x88\x2\x3E1\x3E0\x3\x2\x2\x2"+ - "\x3E1\x3E2\x3\x2\x2\x2\x3E2\x3E3\x3\x2\x2\x2\x3E3\x3E5\a)\x2\x2\x3E4\x3E6"+ - "\x5\x10E\x88\x2\x3E5\x3E4\x3\x2\x2\x2\x3E5\x3E6\x3\x2\x2\x2\x3E6\x3E7"+ - "\x3\x2\x2\x2\x3E7\x3E9\x5\x9AN\x2\x3E8\x3E1\x3\x2\x2\x2\x3E9\x3EC\x3\x2"+ - "\x2\x2\x3EA\x3E8\x3\x2\x2\x2\x3EA\x3EB\x3\x2\x2\x2\x3EB\x63\x3\x2\x2\x2"+ - "\x3EC\x3EA\x3\x2\x2\x2\x3ED\x3EE\a\x91\x2\x2\x3EE\x3EF\x5\x10E\x88\x2"+ - "\x3EF\x3F0\x5\x9AN\x2\x3F0\x3F1\x5\x10E\x88\x2\x3F1\x3F2\au\x2\x2\x3F2"+ - "\x3F3\x5\x10E\x88\x2\x3F3\x3FE\x5\x9AN\x2\x3F4\x3F6\x5\x10E\x88\x2\x3F5"+ - "\x3F4\x3\x2\x2\x2\x3F5\x3F6\x3\x2\x2\x2\x3F6\x3F7\x3\x2\x2\x2\x3F7\x3F9"+ - "\a)\x2\x2\x3F8\x3FA\x5\x10E\x88\x2\x3F9\x3F8\x3\x2\x2\x2\x3F9\x3FA\x3"+ - "\x2\x2\x2\x3FA\x3FB\x3\x2\x2\x2\x3FB\x3FD\x5\x9AN\x2\x3FC\x3F5\x3\x2\x2"+ - "\x2\x3FD\x400\x3\x2\x2\x2\x3FE\x3FC\x3\x2\x2\x2\x3FE\x3FF\x3\x2\x2\x2"+ - "\x3FF\x65\x3\x2\x2\x2\x400\x3FE\x3\x2\x2\x2\x401\x402\a\x94\x2\x2\x402"+ - "\x403\x5\x10E\x88\x2\x403\x404\x5\x9AN\x2\x404\x405\x5\x10E\x88\x2\x405"+ - "\x406\aq\x2\x2\x406\x407\x5\x10E\x88\x2\x407\x40D\t\a\x2\x2\x408\x409"+ - "\x5\x10E\x88\x2\x409\x40A\a\x33\x2\x2\x40A\x40B\x5\x10E\x88\x2\x40B\x40C"+ - "\t\b\x2\x2\x40C\x40E\x3\x2\x2\x2\x40D\x408\x3\x2\x2\x2\x40D\x40E\x3\x2"+ - "\x2\x2\x40E\x412\x3\x2\x2\x2\x40F\x410\x5\x10E\x88\x2\x410\x411\t\t\x2"+ - "\x2\x411\x413\x3\x2\x2\x2\x412\x40F\x3\x2\x2\x2\x412\x413\x3\x2\x2\x2"+ - "\x413\x414\x3\x2\x2\x2\x414\x415\x5\x10E\x88\x2\x415\x416\a\x39\x2\x2"+ - "\x416\x417\x5\x10E\x88\x2\x417\x423\x5\xAEX\x2\x418\x419\x5\x10E\x88\x2"+ - "\x419\x41B\a\x1D\x2\x2\x41A\x41C\x5\x10E\x88\x2\x41B\x41A\x3\x2\x2\x2"+ - "\x41B\x41C\x3\x2\x2\x2\x41C\x41D\x3\x2\x2\x2\x41D\x41F\a\xD0\x2\x2\x41E"+ - "\x420\x5\x10E\x88\x2\x41F\x41E\x3\x2\x2\x2\x41F\x420\x3\x2\x2\x2\x420"+ - "\x421\x3\x2\x2\x2\x421\x422\x5\x9AN\x2\x422\x424\x3\x2\x2\x2\x423\x418"+ - "\x3\x2\x2\x2\x423\x424\x3\x2\x2\x2\x424g\x3\x2\x2\x2\x425\x432\x5j\x36"+ - "\x2\x426\x428\x5\x10E\x88\x2\x427\x426\x3\x2\x2\x2\x427\x428\x3\x2\x2"+ - "\x2\x428\x429\x3\x2\x2\x2\x429\x42B\t\n\x2\x2\x42A\x42C\x5\x10E\x88\x2"+ - "\x42B\x42A\x3\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C\x42E\x3\x2\x2\x2\x42D"+ - "\x42F\x5j\x36\x2\x42E\x42D\x3\x2\x2\x2\x42E\x42F\x3\x2\x2\x2\x42F\x431"+ - "\x3\x2\x2\x2\x430\x427\x3\x2\x2\x2\x431\x434\x3\x2\x2\x2\x432\x430\x3"+ - "\x2\x2\x2\x432\x433\x3\x2\x2\x2\x433\x447\x3\x2\x2\x2\x434\x432\x3\x2"+ - "\x2\x2\x435\x437\x5j\x36\x2\x436\x435\x3\x2\x2\x2\x436\x437\x3\x2\x2\x2"+ - "\x437\x442\x3\x2\x2\x2\x438\x43A\x5\x10E\x88\x2\x439\x438\x3\x2\x2\x2"+ - "\x439\x43A\x3\x2\x2\x2\x43A\x43B\x3\x2\x2\x2\x43B\x43D\t\n\x2\x2\x43C"+ - "\x43E\x5\x10E\x88\x2\x43D\x43C\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E"+ - "\x440\x3\x2\x2\x2\x43F\x441\x5j\x36\x2\x440\x43F\x3\x2\x2\x2\x440\x441"+ - "\x3\x2\x2\x2\x441\x443\x3\x2\x2\x2\x442\x439\x3\x2\x2\x2\x443\x444\x3"+ - "\x2\x2\x2\x444\x442\x3\x2\x2\x2\x444\x445\x3\x2\x2\x2\x445\x447\x3\x2"+ - "\x2\x2\x446\x425\x3\x2\x2\x2\x446\x436\x3\x2\x2\x2\x447i\x3\x2\x2\x2\x448"+ - "\x45A\x5\x9AN\x2\x449\x457\t\v\x2\x2\x44A\x44C\x5\x10E\x88\x2\x44B\x44A"+ - "\x3\x2\x2\x2\x44B\x44C\x3\x2\x2\x2\x44C\x44D\x3\x2\x2\x2\x44D\x44F\a\xD4"+ - "\x2\x2\x44E\x450\x5\x10E\x88\x2\x44F\x44E\x3\x2\x2\x2\x44F\x450\x3\x2"+ - "\x2\x2\x450\x451\x3\x2\x2\x2\x451\x453\x5\xCA\x66\x2\x452\x454\x5\x10E"+ - "\x88\x2\x453\x452\x3\x2\x2\x2\x453\x454\x3\x2\x2\x2\x454\x455\x3\x2\x2"+ - "\x2\x455\x456\a\xDB\x2\x2\x456\x458\x3\x2\x2\x2\x457\x44B\x3\x2\x2\x2"+ - "\x457\x458\x3\x2\x2\x2\x458\x45A\x3\x2\x2\x2\x459\x448\x3\x2\x2\x2\x459"+ - "\x449\x3\x2\x2\x2\x45Ak\x3\x2\x2\x2\x45B\x45C\a\x9E\x2\x2\x45C\x45D\x5"+ - "\x10E\x88\x2\x45D\x45F\x5\xAEX\x2\x45E\x460\x5\x10E\x88\x2\x45F\x45E\x3"+ - "\x2\x2\x2\x45F\x460\x3\x2\x2\x2\x460\x461\x3\x2\x2\x2\x461\x466\a)\x2"+ - "\x2\x462\x464\x5\x10E\x88\x2\x463\x462\x3\x2\x2\x2\x463\x464\x3\x2\x2"+ - "\x2\x464\x465\x3\x2\x2\x2\x465\x467\x5h\x35\x2\x466\x463\x3\x2\x2\x2\x466"+ - "\x467\x3\x2\x2\x2\x467m\x3\x2\x2\x2\x468\x469\x5\xF4{\x2\x469\x46A\x5"+ - "\x10E\x88\x2\x46A\x46C\x3\x2\x2\x2\x46B\x468\x3\x2\x2\x2\x46B\x46C\x3"+ - "\x2\x2\x2\x46C\x46F\x3\x2\x2\x2\x46D\x46E\a\xB6\x2\x2\x46E\x470\x5\x10E"+ - "\x88\x2\x46F\x46D\x3\x2\x2\x2\x46F\x470\x3\x2\x2\x2\x470\x471\x3\x2\x2"+ - "\x2\x471\x472\a\xA0\x2\x2\x472\x473\x5\x10E\x88\x2\x473\x475\x5@!\x2\x474"+ - "\x476\x5\xF2z\x2\x475\x474\x3\x2\x2\x2\x475\x476\x3\x2\x2\x2\x476\x47B"+ - "\x3\x2\x2\x2\x477\x479\x5\x10E\x88\x2\x478\x477\x3\x2\x2\x2\x478\x479"+ - "\x3\x2\x2\x2\x479\x47A\x3\x2\x2\x2\x47A\x47C\x5\xD0i\x2\x47B\x478\x3\x2"+ - "\x2\x2\x47B\x47C\x3\x2\x2\x2\x47C\x480\x3\x2\x2\x2\x47D\x47E\x5\x10E\x88"+ - "\x2\x47E\x47F\x5\xDEp\x2\x47F\x481\x3\x2\x2\x2\x480\x47D\x3\x2\x2\x2\x480"+ - "\x481\x3\x2\x2\x2\x481\x482\x3\x2\x2\x2\x482\x484\x5\xFE\x80\x2\x483\x485"+ - "\x5\x1E\x10\x2\x484\x483\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x486\x3"+ - "\x2\x2\x2\x486\x487\a_\x2\x2\x487o\x3\x2\x2\x2\x488\x489\x5\xF4{\x2\x489"+ - "\x48A\x5\x10E\x88\x2\x48A\x48C\x3\x2\x2\x2\x48B\x488\x3\x2\x2\x2\x48B"+ - "\x48C\x3\x2\x2\x2\x48C\x48F\x3\x2\x2\x2\x48D\x48E\a\xB6\x2\x2\x48E\x490"+ - "\x5\x10E\x88\x2\x48F\x48D\x3\x2\x2\x2\x48F\x490\x3\x2\x2\x2\x490\x491"+ - "\x3\x2\x2\x2\x491\x492\a\xA2\x2\x2\x492\x493\x5\x10E\x88\x2\x493\x498"+ - "\x5\x92J\x2\x494\x496\x5\x10E\x88\x2\x495\x494\x3\x2\x2\x2\x495\x496\x3"+ - "\x2\x2\x2\x496\x497\x3\x2\x2\x2\x497\x499\x5\xD0i\x2\x498\x495\x3\x2\x2"+ - "\x2\x498\x499\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xFE\x80\x2"+ - "\x49B\x49D\x5\x1E\x10\x2\x49C\x49B\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D"+ - "\x49E\x3\x2\x2\x2\x49E\x49F\a_\x2\x2\x49Fq\x3\x2\x2\x2\x4A0\x4A1\x5\xF4"+ - "{\x2\x4A1\x4A2\x5\x10E\x88\x2\x4A2\x4A4\x3\x2\x2\x2\x4A3\x4A0\x3\x2\x2"+ - "\x2\x4A3\x4A4\x3\x2\x2\x2\x4A4\x4A7\x3\x2\x2\x2\x4A5\x4A6\a\xB6\x2\x2"+ - "\x4A6\x4A8\x5\x10E\x88\x2\x4A7\x4A5\x3\x2\x2\x2\x4A7\x4A8\x3\x2\x2\x2"+ - "\x4A8\x4A9\x3\x2\x2\x2\x4A9\x4AA\a\xA1\x2\x2\x4AA\x4AB\x5\x10E\x88\x2"+ - "\x4AB\x4B0\x5\x92J\x2\x4AC\x4AE\x5\x10E\x88\x2\x4AD\x4AC\x3\x2\x2\x2\x4AD"+ - "\x4AE\x3\x2\x2\x2\x4AE\x4AF\x3\x2\x2\x2\x4AF\x4B1\x5\xD0i\x2\x4B0\x4AD"+ - "\x3\x2\x2\x2\x4B0\x4B1\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B4\x5"+ - "\xFE\x80\x2\x4B3\x4B5\x5\x1E\x10\x2\x4B4\x4B3\x3\x2\x2\x2\x4B4\x4B5\x3"+ - "\x2\x2\x2\x4B5\x4B6\x3\x2\x2\x2\x4B6\x4B7\a_\x2\x2\x4B7s\x3\x2\x2\x2\x4B8"+ - "\x4B9\a\xA5\x2\x2\x4B9\x4BA\x5\x10E\x88\x2\x4BA\x4BC\x5\xAEX\x2\x4BB\x4BD"+ - "\x5\x10E\x88\x2\x4BC\x4BB\x3\x2\x2\x2\x4BC\x4BD\x3\x2\x2\x2\x4BD\x4BE"+ - "\x3\x2\x2\x2\x4BE\x4C0\a)\x2\x2\x4BF\x4C1\x5\x10E\x88\x2\x4C0\x4BF\x3"+ - "\x2\x2\x2\x4C0\x4C1\x3\x2\x2\x2\x4C1\x4C3\x3\x2\x2\x2\x4C2\x4C4\x5\x9A"+ - "N\x2\x4C3\x4C2\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x4C6\x3\x2\x2\x2"+ - "\x4C5\x4C7\x5\x10E\x88\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2\x2"+ - "\x4C7\x4C8\x3\x2\x2\x2\x4C8\x4CA\a)\x2\x2\x4C9\x4CB\x5\x10E\x88\x2\x4CA"+ - "\x4C9\x3\x2\x2\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CC\x3\x2\x2\x2\x4CC\x4CD"+ - "\x5\x9AN\x2\x4CDu\x3\x2\x2\x2\x4CE\x4CF\a\xA7\x2\x2\x4CF\x4D0\x5\x10E"+ - "\x88\x2\x4D0\x4DF\x5\xDCo\x2\x4D1\x4D3\x5\x10E\x88\x2\x4D2\x4D1\x3\x2"+ - "\x2\x2\x4D2\x4D3\x3\x2\x2\x2\x4D3\x4D4\x3\x2\x2\x2\x4D4\x4D6\a\xD4\x2"+ - "\x2\x4D5\x4D7\x5\x10E\x88\x2\x4D6\x4D5\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2"+ - "\x2\x4D7\x4DC\x3\x2\x2\x2\x4D8\x4DA\x5\xCA\x66\x2\x4D9\x4DB\x5\x10E\x88"+ - "\x2\x4DA\x4D9\x3\x2\x2\x2\x4DA\x4DB\x3\x2\x2\x2\x4DB\x4DD\x3\x2\x2\x2"+ - "\x4DC\x4D8\x3\x2\x2\x2\x4DC\x4DD\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE"+ - "\x4E0\a\xDB\x2\x2\x4DF\x4D2\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0w\x3"+ - "\x2\x2\x2\x4E1\x4E2\a\xAA\x2\x2\x4E2\x4E5\x5\x10E\x88\x2\x4E3\x4E4\a\x9D"+ - "\x2\x2\x4E4\x4E6\x5\x10E\x88\x2\x4E5\x4E3\x3\x2\x2\x2\x4E5\x4E6\x3\x2"+ - "\x2\x2\x4E6\x4E7\x3\x2\x2\x2\x4E7\x4F2\x5z>\x2\x4E8\x4EA\x5\x10E\x88\x2"+ - "\x4E9\x4E8\x3\x2\x2\x2\x4E9\x4EA\x3\x2\x2\x2\x4EA\x4EB\x3\x2\x2\x2\x4EB"+ - "\x4ED\a)\x2\x2\x4EC\x4EE\x5\x10E\x88\x2\x4ED\x4EC\x3\x2\x2\x2\x4ED\x4EE"+ - "\x3\x2\x2\x2\x4EE\x4EF\x3\x2\x2\x2\x4EF\x4F1\x5z>\x2\x4F0\x4E9\x3\x2\x2"+ - "\x2\x4F1\x4F4\x3\x2\x2\x2\x4F2\x4F0\x3\x2\x2\x2\x4F2\x4F3\x3\x2\x2\x2"+ - "\x4F3y\x3\x2\x2\x2\x4F4\x4F2\x3\x2\x2\x2\x4F5\x4F7\x5\xBA^\x2\x4F6\x4F8"+ - "\x5\x10E\x88\x2\x4F7\x4F6\x3\x2\x2\x2\x4F7\x4F8\x3\x2\x2\x2\x4F8\x4F9"+ - "\x3\x2\x2\x2\x4F9\x4FB\a\xD4\x2\x2\x4FA\x4FC\x5\x10E\x88\x2\x4FB\x4FA"+ - "\x3\x2\x2\x2\x4FB\x4FC\x3\x2\x2\x2\x4FC\x4FD\x3\x2\x2\x2\x4FD\x4FF\x5"+ - "\xD6l\x2\x4FE\x500\x5\x10E\x88\x2\x4FF\x4FE\x3\x2\x2\x2\x4FF\x500\x3\x2"+ - "\x2\x2\x500\x501\x3\x2\x2\x2\x501\x505\a\xDB\x2\x2\x502\x503\x5\x10E\x88"+ - "\x2\x503\x504\x5\xDEp\x2\x504\x506\x3\x2\x2\x2\x505\x502\x3\x2\x2\x2\x505"+ - "\x506\x3\x2\x2\x2\x506{\x3\x2\x2\x2\x507\x508\a\xAC\x2\x2\x508}\x3\x2"+ - "\x2\x2\x509\x50F\a\xAD\x2\x2\x50A\x50D\x5\x10E\x88\x2\x50B\x50E\a\x8C"+ - "\x2\x2\x50C\x50E\x5\x9AN\x2\x50D\x50B\x3\x2\x2\x2\x50D\x50C\x3\x2\x2\x2"+ - "\x50E\x510\x3\x2\x2\x2\x50F\x50A\x3\x2\x2\x2\x50F\x510\x3\x2\x2\x2\x510"+ - "\x7F\x3\x2\x2\x2\x511\x512\a\xAE\x2\x2\x512\x81\x3\x2\x2\x2\x513\x514"+ - "\a\xAF\x2\x2\x514\x515\x5\x10E\x88\x2\x515\x517\x5\x9AN\x2\x516\x518\x5"+ - "\x10E\x88\x2\x517\x516\x3\x2\x2\x2\x517\x518\x3\x2\x2\x2\x518\x519\x3"+ - "\x2\x2\x2\x519\x51B\a\xD0\x2\x2\x51A\x51C\x5\x10E\x88\x2\x51B\x51A\x3"+ - "\x2\x2\x2\x51B\x51C\x3\x2\x2\x2\x51C\x51D\x3\x2\x2\x2\x51D\x51E\x5\x9A"+ - "N\x2\x51E\x83\x3\x2\x2\x2\x51F\x520\a\xB0\x2\x2\x520\x521\x5\x10E\x88"+ - "\x2\x521\x523\x5\xAEX\x2\x522\x524\x5\x10E\x88\x2\x523\x522\x3\x2\x2\x2"+ - "\x523\x524\x3\x2\x2\x2\x524\x525\x3\x2\x2\x2\x525\x527\a)\x2\x2\x526\x528"+ - "\x5\x10E\x88\x2\x527\x526\x3\x2\x2\x2\x527\x528\x3\x2\x2\x2\x528\x529"+ - "\x3\x2\x2\x2\x529\x52A\x5\x9AN\x2\x52A\x85\x3\x2\x2\x2\x52B\x52C\a\xB1"+ - "\x2\x2\x52C\x52D\x5\x10E\x88\x2\x52D\x52E\a\x41\x2\x2\x52E\x52F\x5\x10E"+ - "\x88\x2\x52F\x530\x5\x9AN\x2\x530\x534\x5\xFE\x80\x2\x531\x533\x5\x8A"+ - "\x46\x2\x532\x531\x3\x2\x2\x2\x533\x536\x3\x2\x2\x2\x534\x532\x3\x2\x2"+ - "\x2\x534\x535\x3\x2\x2\x2\x535\x537\x3\x2\x2\x2\x536\x534\x3\x2\x2\x2"+ - "\x537\x538\a`\x2\x2\x538\x87\x3\x2\x2\x2\x539\x53B\a|\x2\x2\x53A\x53C"+ - "\x5\x10E\x88\x2\x53B\x53A\x3\x2\x2\x2\x53B\x53C\x3\x2\x2\x2\x53C\x53D"+ - "\x3\x2\x2\x2\x53D\x53F\x5\xE2r\x2\x53E\x540\x5\x10E\x88\x2\x53F\x53E\x3"+ - "\x2\x2\x2\x53F\x540\x3\x2\x2\x2\x540\x541\x3\x2\x2\x2\x541\x542\x5\x9A"+ - "N\x2\x542\x54B\x3\x2\x2\x2\x543\x544\x5\x9AN\x2\x544\x545\x5\x10E\x88"+ - "\x2\x545\x546\a\xBE\x2\x2\x546\x547\x5\x10E\x88\x2\x547\x548\x5\x9AN\x2"+ - "\x548\x54B\x3\x2\x2\x2\x549\x54B\x5\x9AN\x2\x54A\x539\x3\x2\x2\x2\x54A"+ - "\x543\x3\x2\x2\x2\x54A\x549\x3\x2\x2\x2\x54B\x89\x3\x2\x2\x2\x54C\x54D"+ - "\a\x41\x2\x2\x54D\x54E\x5\x10E\x88\x2\x54E\x54F\x5\x8CG\x2\x54F\x551\x5"+ - "\xFE\x80\x2\x550\x552\x5\x1E\x10\x2\x551\x550\x3\x2\x2\x2\x551\x552\x3"+ - "\x2\x2\x2\x552\x8B\x3\x2\x2\x2\x553\x563\aY\x2\x2\x554\x55F\x5\x88\x45"+ - "\x2\x555\x557\x5\x10E\x88\x2\x556\x555\x3\x2\x2\x2\x556\x557\x3\x2\x2"+ - "\x2\x557\x558\x3\x2\x2\x2\x558\x55A\a)\x2\x2\x559\x55B\x5\x10E\x88\x2"+ - "\x55A\x559\x3\x2\x2\x2\x55A\x55B\x3\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C"+ - "\x55E\x5\x88\x45\x2\x55D\x556\x3\x2\x2\x2\x55E\x561\x3\x2\x2\x2\x55F\x55D"+ - "\x3\x2\x2\x2\x55F\x560\x3\x2\x2\x2\x560\x563\x3\x2\x2\x2\x561\x55F\x3"+ - "\x2\x2\x2\x562\x553\x3\x2\x2\x2\x562\x554\x3\x2\x2\x2\x563\x8D\x3\x2\x2"+ - "\x2\x564\x565\a\xB2\x2\x2\x565\x566\x5\x10E\x88\x2\x566\x568\x5\x9AN\x2"+ - "\x567\x569\x5\x10E\x88\x2\x568\x567\x3\x2\x2\x2\x568\x569\x3\x2\x2\x2"+ - "\x569\x56A\x3\x2\x2\x2\x56A\x56C\a\xD0\x2\x2\x56B\x56D\x5\x10E\x88\x2"+ - "\x56C\x56B\x3\x2\x2\x2\x56C\x56D\x3\x2\x2\x2\x56D\x56E\x3\x2\x2\x2\x56E"+ - "\x56F\x5\x9AN\x2\x56F\x8F\x3\x2\x2\x2\x570\x571\x5\xF4{\x2\x571\x572\x5"+ - "\x10E\x88\x2\x572\x574\x3\x2\x2\x2\x573\x570\x3\x2\x2\x2\x573\x574\x3"+ - "\x2\x2\x2\x574\x577\x3\x2\x2\x2\x575\x576\a\xB6\x2\x2\x576\x578\x5\x10E"+ - "\x88\x2\x577\x575\x3\x2\x2\x2\x577\x578\x3\x2\x2\x2\x578\x579\x3\x2\x2"+ - "\x2\x579\x57B\a\xBA\x2\x2\x57A\x57C\x5\x10E\x88\x2\x57B\x57A\x3\x2\x2"+ - "\x2\x57B\x57C\x3\x2\x2\x2\x57C\x57D\x3\x2\x2\x2\x57D\x582\x5\x92J\x2\x57E"+ - "\x580\x5\x10E\x88\x2\x57F\x57E\x3\x2\x2\x2\x57F\x580\x3\x2\x2\x2\x580"+ - "\x581\x3\x2\x2\x2\x581\x583\x5\xD0i\x2\x582\x57F\x3\x2\x2\x2\x582\x583"+ - "\x3\x2\x2\x2\x583\x584\x3\x2\x2\x2\x584\x586\x5\xFE\x80\x2\x585\x587\x5"+ - "\x1E\x10\x2\x586\x585\x3\x2\x2\x2\x586\x587\x3\x2\x2\x2\x587\x588\x3\x2"+ - "\x2\x2\x588\x589\a\x61\x2\x2\x589\x91\x3\x2\x2\x2\x58A\x58B\x5\xDCo\x2"+ - "\x58B\x93\x3\x2\x2\x2\x58C\x58D\x5\xF4{\x2\x58D\x58E\x5\x10E\x88\x2\x58E"+ - "\x590\x3\x2\x2\x2\x58F\x58C\x3\x2\x2\x2\x58F\x590\x3\x2\x2\x2\x590\x591"+ - "\x3\x2\x2\x2\x591\x592\a\xC0\x2\x2\x592\x593\x5\x10E\x88\x2\x593\x594"+ - "\x5\xDCo\x2\x594\x598\x5\xFE\x80\x2\x595\x597\x5\x96L\x2\x596\x595\x3"+ - "\x2\x2\x2\x597\x59A\x3\x2\x2\x2\x598\x596\x3\x2\x2\x2\x598\x599\x3\x2"+ - "\x2\x2\x599\x59B\x3\x2\x2\x2\x59A\x598\x3\x2\x2\x2\x59B\x59C\a\x62\x2"+ - "\x2\x59C\x95\x3\x2\x2\x2\x59D\x5AC\x5\xDCo\x2\x59E\x5A0\x5\x10E\x88\x2"+ - "\x59F\x59E\x3\x2\x2\x2\x59F\x5A0\x3\x2\x2\x2\x5A0\x5A1\x3\x2\x2\x2\x5A1"+ - "\x5A6\a\xD4\x2\x2\x5A2\x5A4\x5\x10E\x88\x2\x5A3\x5A2\x3\x2\x2\x2\x5A3"+ - "\x5A4\x3\x2\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5\x5A7\x5\xD6l\x2\x5A6\x5A3"+ - "\x3\x2\x2\x2\x5A6\x5A7\x3\x2\x2\x2\x5A7\x5A9\x3\x2\x2\x2\x5A8\x5AA\x5"+ - "\x10E\x88\x2\x5A9\x5A8\x3\x2\x2\x2\x5A9\x5AA\x3\x2\x2\x2\x5AA\x5AB\x3"+ - "\x2\x2\x2\x5AB\x5AD\a\xDB\x2\x2\x5AC\x59F\x3\x2\x2\x2\x5AC\x5AD\x3\x2"+ - "\x2\x2\x5AD\x5B1\x3\x2\x2\x2\x5AE\x5AF\x5\x10E\x88\x2\x5AF\x5B0\x5\xDE"+ - "p\x2\x5B0\x5B2\x3\x2\x2\x2\x5B1\x5AE\x3\x2\x2\x2\x5B1\x5B2\x3\x2\x2\x2"+ - "\x5B2\x5B3\x3\x2\x2\x2\x5B3\x5B4\x5\xFE\x80\x2\x5B4\x97\x3\x2\x2\x2\x5B5"+ - "\x5B6\a\xC2\x2\x2\x5B6\x5B7\x5\x10E\x88\x2\x5B7\x5C7\x5\xAEX\x2\x5B8\x5BA"+ - "\x5\x10E\x88\x2\x5B9\x5B8\x3\x2\x2\x2\x5B9\x5BA\x3\x2\x2\x2\x5BA\x5BB"+ - "\x3\x2\x2\x2\x5BB\x5BD\a)\x2\x2\x5BC\x5BE\x5\x10E\x88\x2\x5BD\x5BC\x3"+ - "\x2\x2\x2\x5BD\x5BE\x3\x2\x2\x2\x5BE\x5BF\x3\x2\x2\x2\x5BF\x5C5\x5\x9A"+ - "N\x2\x5C0\x5C1\x5\x10E\x88\x2\x5C1\x5C2\a\xBE\x2\x2\x5C2\x5C3\x5\x10E"+ - "\x88\x2\x5C3\x5C4\x5\x9AN\x2\x5C4\x5C6\x3\x2\x2\x2\x5C5\x5C0\x3\x2\x2"+ - "\x2\x5C5\x5C6\x3\x2\x2\x2\x5C6\x5C8\x3\x2\x2\x2\x5C7\x5B9\x3\x2\x2\x2"+ - "\x5C7\x5C8\x3\x2\x2\x2\x5C8\x99\x3\x2\x2\x2\x5C9\x5CA\bN\x1\x2\x5CA\x5CC"+ - "\a\x8D\x2\x2\x5CB\x5CD\x5\x10E\x88\x2\x5CC\x5CB\x3\x2\x2\x2\x5CC\x5CD"+ - "\x3\x2\x2\x2\x5CD\x5CE\x3\x2\x2\x2\x5CE\x5F7\x5\x9AN\x15\x5CF\x5D1\a\x34"+ - "\x2\x2\x5D0\x5D2\x5\x10E\x88\x2\x5D1\x5D0\x3\x2\x2\x2\x5D1\x5D2\x3\x2"+ - "\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5F7\x5\x9AN\x12\x5D4\x5D6\x5\xBA^\x2"+ - "\x5D5\x5D7\x5\x10E\x88\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6\x5D7\x3\x2\x2\x2"+ - "\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5DA\a\xCD\x2\x2\x5D9\x5DB\x5\x10E\x88\x2"+ - "\x5DA\x5D9\x3\x2\x2\x2\x5DA\x5DB\x3\x2\x2\x2\x5DB\x5DC\x3\x2\x2\x2\x5DC"+ - "\x5DD\x5\x9AN\x11\x5DD\x5F7\x3\x2\x2\x2\x5DE\x5E0\a\xD6\x2\x2\x5DF\x5E1"+ - "\x5\x10E\x88\x2\x5E0\x5DF\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2\x2\x5E1\x5E2"+ - "\x3\x2\x2\x2\x5E2\x5F7\x5\x9AN\xF\x5E3\x5E5\a\x8E\x2\x2\x5E4\x5E6\x5\x10E"+ - "\x88\x2\x5E5\x5E4\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2\x5E6\x5E7\x3\x2\x2"+ - "\x2\x5E7\x5F7\x5\x9AN\b\x5E8\x5F7\x5\xECw\x2\x5E9\x5F7\x5\xBA^\x2\x5EA"+ - "\x5EC\a\xD4\x2\x2\x5EB\x5ED\x5\x10E\x88\x2\x5EC\x5EB\x3\x2\x2\x2\x5EC"+ - "\x5ED\x3\x2\x2\x2\x5ED\x5EE\x3\x2\x2\x2\x5EE\x5F0\x5\x9AN\x2\x5EF\x5F1"+ - "\x5\x10E\x88\x2\x5F0\x5EF\x3\x2\x2\x2\x5F0\x5F1\x3\x2\x2\x2\x5F1\x5F2"+ - "\x3\x2\x2\x2\x5F2\x5F3\a\xDB\x2\x2\x5F3\x5F7\x3\x2\x2\x2\x5F4\x5F7\x5"+ - "\x9CO\x2\x5F5\x5F7\x5^\x30\x2\x5F6\x5C9\x3\x2\x2\x2\x5F6\x5CF\x3\x2\x2"+ - "\x2\x5F6\x5D4\x3\x2\x2\x2\x5F6\x5DE\x3\x2\x2\x2\x5F6\x5E3\x3\x2\x2\x2"+ - "\x5F6\x5E8\x3\x2\x2\x2\x5F6\x5E9\x3\x2\x2\x2\x5F6\x5EA\x3\x2\x2\x2\x5F6"+ - "\x5F4\x3\x2\x2\x2\x5F6\x5F5\x3\x2\x2\x2\x5F7\x666\x3\x2\x2\x2\x5F8\x5FA"+ - "\f\x10\x2\x2\x5F9\x5FB\x5\x10E\x88\x2\x5FA\x5F9\x3\x2\x2\x2\x5FA\x5FB"+ - "\x3\x2\x2\x2\x5FB\x5FC\x3\x2\x2\x2\x5FC\x5FE\a\xDA\x2\x2\x5FD\x5FF\x5"+ - "\x10E\x88\x2\x5FE\x5FD\x3\x2\x2\x2\x5FE\x5FF\x3\x2\x2\x2\x5FF\x600\x3"+ - "\x2\x2\x2\x600\x665\x5\x9AN\x11\x601\x603\f\xE\x2\x2\x602\x604\x5\x10E"+ - "\x88\x2\x603\x602\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2\x604\x605\x3\x2\x2"+ - "\x2\x605\x607\t\f\x2\x2\x606\x608\x5\x10E\x88\x2\x607\x606\x3\x2\x2\x2"+ - "\x607\x608\x3\x2\x2\x2\x608\x609\x3\x2\x2\x2\x609\x665\x5\x9AN\xF\x60A"+ - "\x60C\f\r\x2\x2\x60B\x60D\x5\x10E\x88\x2\x60C\x60B\x3\x2\x2\x2\x60C\x60D"+ - "\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x610\a\xCF\x2\x2\x60F\x611\x5"+ - "\x10E\x88\x2\x610\x60F\x3\x2\x2\x2\x610\x611\x3\x2\x2\x2\x611\x612\x3"+ - "\x2\x2\x2\x612\x665\x5\x9AN\xE\x613\x615\f\f\x2\x2\x614\x616\x5\x10E\x88"+ - "\x2\x615\x614\x3\x2\x2\x2\x615\x616\x3\x2\x2\x2\x616\x617\x3\x2\x2\x2"+ - "\x617\x619\a\x8B\x2\x2\x618\x61A\x5\x10E\x88\x2\x619\x618\x3\x2\x2\x2"+ - "\x619\x61A\x3\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B\x665\x5\x9AN\r\x61C"+ - "\x61E\f\v\x2\x2\x61D\x61F\x5\x10E\x88\x2\x61E\x61D\x3\x2\x2\x2\x61E\x61F"+ - "\x3\x2\x2\x2\x61F\x620\x3\x2\x2\x2\x620\x622\t\r\x2\x2\x621\x623\x5\x10E"+ - "\x88\x2\x622\x621\x3\x2\x2\x2\x622\x623\x3\x2\x2\x2\x623\x624\x3\x2\x2"+ - "\x2\x624\x665\x5\x9AN\f\x625\x627\f\n\x2\x2\x626\x628\x5\x10E\x88\x2\x627"+ - "\x626\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2\x628\x629\x3\x2\x2\x2\x629\x62B"+ - "\a\x32\x2\x2\x62A\x62C\x5\x10E\x88\x2\x62B\x62A\x3\x2\x2\x2\x62B\x62C"+ - "\x3\x2\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x665\x5\x9AN\v\x62E\x630\f\t\x2"+ - "\x2\x62F\x631\x5\x10E\x88\x2\x630\x62F\x3\x2\x2\x2\x630\x631\x3\x2\x2"+ - "\x2\x631\x632\x3\x2\x2\x2\x632\x634\t\xE\x2\x2\x633\x635\x5\x10E\x88\x2"+ - "\x634\x633\x3\x2\x2\x2\x634\x635\x3\x2\x2\x2\x635\x636\x3\x2\x2\x2\x636"+ - "\x665\x5\x9AN\n\x637\x639\f\a\x2\x2\x638\x63A\x5\x10E\x88\x2\x639\x638"+ - "\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A\x63B\x3\x2\x2\x2\x63B\x63D\a\x36"+ - "\x2\x2\x63C\x63E\x5\x10E\x88\x2\x63D\x63C\x3\x2\x2\x2\x63D\x63E\x3\x2"+ - "\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x665\x5\x9AN\b\x640\x642\f\x6\x2\x2"+ - "\x641\x643\x5\x10E\x88\x2\x642\x641\x3\x2\x2\x2\x642\x643\x3\x2\x2\x2"+ - "\x643\x644\x3\x2\x2\x2\x644\x646\a\x9A\x2\x2\x645\x647\x5\x10E\x88\x2"+ - "\x646\x645\x3\x2\x2\x2\x646\x647\x3\x2\x2\x2\x647\x648\x3\x2\x2\x2\x648"+ - "\x665\x5\x9AN\a\x649\x64B\f\x5\x2\x2\x64A\x64C\x5\x10E\x88\x2\x64B\x64A"+ - "\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C\x64D\x3\x2\x2\x2\x64D\x64F\a\xCC"+ - "\x2\x2\x64E\x650\x5\x10E\x88\x2\x64F\x64E\x3\x2\x2\x2\x64F\x650\x3\x2"+ - "\x2\x2\x650\x651\x3\x2\x2\x2\x651\x665\x5\x9AN\x6\x652\x654\f\x4\x2\x2"+ - "\x653\x655\x5\x10E\x88\x2\x654\x653\x3\x2\x2\x2\x654\x655\x3\x2\x2\x2"+ - "\x655\x656\x3\x2\x2\x2\x656\x658\a\x66\x2\x2\x657\x659\x5\x10E\x88\x2"+ - "\x658\x657\x3\x2\x2\x2\x658\x659\x3\x2\x2\x2\x659\x65A\x3\x2\x2\x2\x65A"+ - "\x665\x5\x9AN\x5\x65B\x65D\f\x3\x2\x2\x65C\x65E\x5\x10E\x88\x2\x65D\x65C"+ - "\x3\x2\x2\x2\x65D\x65E\x3\x2\x2\x2\x65E\x65F\x3\x2\x2\x2\x65F\x661\ax"+ - "\x2\x2\x660\x662\x5\x10E\x88\x2\x661\x660\x3\x2\x2\x2\x661\x662\x3\x2"+ - "\x2\x2\x662\x663\x3\x2\x2\x2\x663\x665\x5\x9AN\x4\x664\x5F8\x3\x2\x2\x2"+ - "\x664\x601\x3\x2\x2\x2\x664\x60A\x3\x2\x2\x2\x664\x613\x3\x2\x2\x2\x664"+ - "\x61C\x3\x2\x2\x2\x664\x625\x3\x2\x2\x2\x664\x62E\x3\x2\x2\x2\x664\x637"+ - "\x3\x2\x2\x2\x664\x640\x3\x2\x2\x2\x664\x649\x3\x2\x2\x2\x664\x652\x3"+ - "\x2\x2\x2\x664\x65B\x3\x2\x2\x2\x665\x668\x3\x2\x2\x2\x666\x664\x3\x2"+ - "\x2\x2\x666\x667\x3\x2\x2\x2\x667\x9B\x3\x2\x2\x2\x668\x666\x3\x2\x2\x2"+ - "\x669\x66A\a\xC1\x2\x2\x66A\x66B\x5\x10E\x88\x2\x66B\x671\x5\x9AN\x2\x66C"+ - "\x66D\x5\x10E\x88\x2\x66D\x66E\a|\x2\x2\x66E\x66F\x5\x10E\x88\x2\x66F"+ - "\x670\x5\xF0y\x2\x670\x672\x3\x2\x2\x2\x671\x66C\x3\x2\x2\x2\x671\x672"+ - "\x3\x2\x2\x2\x672\x9D\x3\x2\x2\x2\x673\x677\aU\x2\x2\x674\x677\a\xB6\x2"+ - "\x2\x675\x677\x5\xF4{\x2\x676\x673\x3\x2\x2\x2\x676\x674\x3\x2\x2\x2\x676"+ - "\x675\x3\x2\x2\x2\x677\x678\x3\x2\x2\x2\x678\x67B\x5\x10E\x88\x2\x679"+ - "\x67A\a\xCA\x2\x2\x67A\x67C\x5\x10E\x88\x2\x67B\x679\x3\x2\x2\x2\x67B"+ - "\x67C\x3\x2\x2\x2\x67C\x67D\x3\x2\x2\x2\x67D\x67E\x5\xA0Q\x2\x67E\x9F"+ - "\x3\x2\x2\x2\x67F\x68A\x5\xA2R\x2\x680\x682\x5\x10E\x88\x2\x681\x680\x3"+ - "\x2\x2\x2\x681\x682\x3\x2\x2\x2\x682\x683\x3\x2\x2\x2\x683\x685\a)\x2"+ - "\x2\x684\x686\x5\x10E\x88\x2\x685\x684\x3\x2\x2\x2\x685\x686\x3\x2\x2"+ - "\x2\x686\x687\x3\x2\x2\x2\x687\x689\x5\xA2R\x2\x688\x681\x3\x2\x2\x2\x689"+ - "\x68C\x3\x2\x2\x2\x68A\x688\x3\x2\x2\x2\x68A\x68B\x3\x2\x2\x2\x68B\xA1"+ - "\x3\x2\x2\x2\x68C\x68A\x3\x2\x2\x2\x68D\x69F\x5\xDCo\x2\x68E\x690\x5\x10E"+ - "\x88\x2\x68F\x68E\x3\x2\x2\x2\x68F\x690\x3\x2\x2\x2\x690\x691\x3\x2\x2"+ - "\x2\x691\x693\a\xD4\x2\x2\x692\x694\x5\x10E\x88\x2\x693\x692\x3\x2\x2"+ - "\x2\x693\x694\x3\x2\x2\x2\x694\x699\x3\x2\x2\x2\x695\x697\x5\xD6l\x2\x696"+ - "\x698\x5\x10E\x88\x2\x697\x696\x3\x2\x2\x2\x697\x698\x3\x2\x2\x2\x698"+ - "\x69A\x3\x2\x2\x2\x699\x695\x3\x2\x2\x2\x699\x69A\x3\x2\x2\x2\x69A\x69B"+ - "\x3\x2\x2\x2\x69B\x69D\a\xDB\x2\x2\x69C\x69E\x5\x10E\x88\x2\x69D\x69C"+ - "\x3\x2\x2\x2\x69D\x69E\x3\x2\x2\x2\x69E\x6A0\x3\x2\x2\x2\x69F\x68F\x3"+ - "\x2\x2\x2\x69F\x6A0\x3\x2\x2\x2\x6A0\x6A2\x3\x2\x2\x2\x6A1\x6A3\x5\xF2"+ - "z\x2\x6A2\x6A1\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3\x6A7\x3\x2\x2\x2"+ - "\x6A4\x6A5\x5\x10E\x88\x2\x6A5\x6A6\x5\xDEp\x2\x6A6\x6A8\x3\x2\x2\x2\x6A7"+ - "\x6A4\x3\x2\x2\x2\x6A7\x6A8\x3\x2\x2\x2\x6A8\xA3\x3\x2\x2\x2\x6A9\x6AA"+ - "\a\xC7\x2\x2\x6AA\x6AB\x5\x10E\x88\x2\x6AB\x6AC\x5\x9AN\x2\x6AC\x6AE\x5"+ - "\xFE\x80\x2\x6AD\x6AF\x5\x1E\x10\x2\x6AE\x6AD\x3\x2\x2\x2\x6AE\x6AF\x3"+ - "\x2\x2\x2\x6AF\x6B0\x3\x2\x2\x2\x6B0\x6B1\a\xC6\x2\x2\x6B1\xA5\x3\x2\x2"+ - "\x2\x6B2\x6B3\a\xC8\x2\x2\x6B3\x6B4\x5\x10E\x88\x2\x6B4\x6B6\x5\xAEX\x2"+ - "\x6B5\x6B7\x5\x10E\x88\x2\x6B6\x6B5\x3\x2\x2\x2\x6B6\x6B7\x3\x2\x2\x2"+ - "\x6B7\x6B8\x3\x2\x2\x2\x6B8\x6BA\a)\x2\x2\x6B9\x6BB\x5\x10E\x88\x2\x6BA"+ - "\x6B9\x3\x2\x2\x2\x6BA\x6BB\x3\x2\x2\x2\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD"+ - "\x5\x9AN\x2\x6BD\xA7\x3\x2\x2\x2\x6BE\x6BF\a\xC9\x2\x2\x6BF\x6C0\x5\x10E"+ - "\x88\x2\x6C0\x6C1\x5\xAAV\x2\x6C1\x6C3\x5\xFE\x80\x2\x6C2\x6C4\x5\x1E"+ - "\x10\x2\x6C3\x6C2\x3\x2\x2\x2\x6C3\x6C4\x3\x2\x2\x2\x6C4\x6C5\x3\x2\x2"+ - "\x2\x6C5\x6C6\a\x63\x2\x2\x6C6\xA9\x3\x2\x2\x2\x6C7\x6C8\x5\x9AN\x2\x6C8"+ - "\xAB\x3\x2\x2\x2\x6C9\x6CA\a\xCB\x2\x2\x6CA\x6CB\x5\x10E\x88\x2\x6CB\x6CD"+ - "\x5\xAEX\x2\x6CC\x6CE\x5\x10E\x88\x2\x6CD\x6CC\x3\x2\x2\x2\x6CD\x6CE\x3"+ - "\x2\x2\x2\x6CE\x6CF\x3\x2\x2\x2\x6CF\x6D4\a)\x2\x2\x6D0\x6D2\x5\x10E\x88"+ - "\x2\x6D1\x6D0\x3\x2\x2\x2\x6D1\x6D2\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2"+ - "\x6D3\x6D5\x5h\x35\x2\x6D4\x6D1\x3\x2\x2\x2\x6D4\x6D5\x3\x2\x2\x2\x6D5"+ - "\xAD\x3\x2\x2\x2\x6D6\x6D8\a.\x2\x2\x6D7\x6D6\x3\x2\x2\x2\x6D7\x6D8\x3"+ - "\x2\x2\x2\x6D8\x6D9\x3\x2\x2\x2\x6D9\x6DA\x5\x9AN\x2\x6DA\xAF\x3\x2\x2"+ - "\x2\x6DB\x6DC\a@\x2\x2\x6DC\x6DD\x5\x10E\x88\x2\x6DD\x6DE\x5\xB2Z\x2\x6DE"+ - "\xB1\x3\x2\x2\x2\x6DF\x6E1\x5\xBA^\x2\x6E0\x6DF\x3\x2\x2\x2\x6E0\x6E1"+ - "\x3\x2\x2\x2\x6E1\x6E2\x3\x2\x2\x2\x6E2\x6E3\a-\x2\x2\x6E3\x6E5\x5\xDC"+ - "o\x2\x6E4\x6E6\x5\xF2z\x2\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2"+ - "\x6E6\x6F4\x3\x2\x2\x2\x6E7\x6E9\x5\x10E\x88\x2\x6E8\x6E7\x3\x2\x2\x2"+ - "\x6E8\x6E9\x3\x2\x2\x2\x6E9\x6EA\x3\x2\x2\x2\x6EA\x6EC\a\xD4\x2\x2\x6EB"+ - "\x6ED\x5\x10E\x88\x2\x6EC\x6EB\x3\x2\x2\x2\x6EC\x6ED\x3\x2\x2\x2\x6ED"+ - "\x6EE\x3\x2\x2\x2\x6EE\x6F0\x5\xCA\x66\x2\x6EF\x6F1\x5\x10E\x88\x2\x6F0"+ - "\x6EF\x3\x2\x2\x2\x6F0\x6F1\x3\x2\x2\x2\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F3"+ - "\a\xDB\x2\x2\x6F3\x6F5\x3\x2\x2\x2\x6F4\x6E8\x3\x2\x2\x2\x6F4\x6F5\x3"+ - "\x2\x2\x2\x6F5\x6FF\x3\x2\x2\x2\x6F6\x6F8\x5\x10E\x88\x2\x6F7\x6F6\x3"+ - "\x2\x2\x2\x6F7\x6F8\x3\x2\x2\x2\x6F8\x6F9\x3\x2\x2\x2\x6F9\x6FA\a\xD4"+ - "\x2\x2\x6FA\x6FB\x5\xD6l\x2\x6FB\x6FC\a\xDB\x2\x2\x6FC\x6FE\x3\x2\x2\x2"+ - "\x6FD\x6F7\x3\x2\x2\x2\x6FE\x701\x3\x2\x2\x2\x6FF\x6FD\x3\x2\x2\x2\x6FF"+ - "\x700\x3\x2\x2\x2\x700\x722\x3\x2\x2\x2\x701\x6FF\x3\x2\x2\x2\x702\x704"+ - "\x5\xDCo\x2\x703\x705\x5\xF2z\x2\x704\x703\x3\x2\x2\x2\x704\x705\x3\x2"+ - "\x2\x2\x705\x713\x3\x2\x2\x2\x706\x708\x5\x10E\x88\x2\x707\x706\x3\x2"+ - "\x2\x2\x707\x708\x3\x2\x2\x2\x708\x709\x3\x2\x2\x2\x709\x70B\a\xD4\x2"+ - "\x2\x70A\x70C\x5\x10E\x88\x2\x70B\x70A\x3\x2\x2\x2\x70B\x70C\x3\x2\x2"+ - "\x2\x70C\x70D\x3\x2\x2\x2\x70D\x70F\x5\xCA\x66\x2\x70E\x710\x5\x10E\x88"+ - "\x2\x70F\x70E\x3\x2\x2\x2\x70F\x710\x3\x2\x2\x2\x710\x711\x3\x2\x2\x2"+ - "\x711\x712\a\xDB\x2\x2\x712\x714\x3\x2\x2\x2\x713\x707\x3\x2\x2\x2\x713"+ - "\x714\x3\x2\x2\x2\x714\x71E\x3\x2\x2\x2\x715\x717\x5\x10E\x88\x2\x716"+ - "\x715\x3\x2\x2\x2\x716\x717\x3\x2\x2\x2\x717\x718\x3\x2\x2\x2\x718\x719"+ - "\a\xD4\x2\x2\x719\x71A\x5\xD6l\x2\x71A\x71B\a\xDB\x2\x2\x71B\x71D\x3\x2"+ - "\x2\x2\x71C\x716\x3\x2\x2\x2\x71D\x720\x3\x2\x2\x2\x71E\x71C\x3\x2\x2"+ - "\x2\x71E\x71F\x3\x2\x2\x2\x71F\x722\x3\x2\x2\x2\x720\x71E\x3\x2\x2\x2"+ - "\x721\x6E0\x3\x2\x2\x2\x721\x702\x3\x2\x2\x2\x722\xB3\x3\x2\x2\x2\x723"+ - "\x726\x5\xB6\\\x2\x724\x726\x5\xB8]\x2\x725\x723\x3\x2\x2\x2\x725\x724"+ - "\x3\x2\x2\x2\x726\xB5\x3\x2\x2\x2\x727\x729\x5\xBA^\x2\x728\x727\x3\x2"+ - "\x2\x2\x728\x729\x3\x2\x2\x2\x729\x72B\x3\x2\x2\x2\x72A\x72C\x5\x10E\x88"+ - "\x2\x72B\x72A\x3\x2\x2\x2\x72B\x72C\x3\x2\x2\x2\x72C\x72D\x3\x2\x2\x2"+ - "\x72D\x72F\a-\x2\x2\x72E\x730\x5\x10E\x88\x2\x72F\x72E\x3\x2\x2\x2\x72F"+ - "\x730\x3\x2\x2\x2\x730\x731\x3\x2\x2\x2\x731\x733\x5\xDAn\x2\x732\x734"+ - "\x5\xF2z\x2\x733\x732\x3\x2\x2\x2\x733\x734\x3\x2\x2\x2\x734\x738\x3\x2"+ - "\x2\x2\x735\x736\x5\x10E\x88\x2\x736\x737\x5\xCA\x66\x2\x737\x739\x3\x2"+ - "\x2\x2\x738\x735\x3\x2\x2\x2\x738\x739\x3\x2\x2\x2\x739\x73E\x3\x2\x2"+ - "\x2\x73A\x73C\x5\x10E\x88\x2\x73B\x73A\x3\x2\x2\x2\x73B\x73C\x3\x2\x2"+ - "\x2\x73C\x73D\x3\x2\x2\x2\x73D\x73F\x5\xCEh\x2\x73E\x73B\x3\x2\x2\x2\x73E"+ - "\x73F\x3\x2\x2\x2\x73F\x749\x3\x2\x2\x2\x740\x742\x5\x10E\x88\x2\x741"+ - "\x740\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x743\x3\x2\x2\x2\x743\x744"+ - "\a\xD4\x2\x2\x744\x745\x5\xD6l\x2\x745\x746\a\xDB\x2\x2\x746\x748\x3\x2"+ - "\x2\x2\x747\x741\x3\x2\x2\x2\x748\x74B\x3\x2\x2\x2\x749\x747\x3\x2\x2"+ - "\x2\x749\x74A\x3\x2\x2\x2\x74A\xB7\x3\x2\x2\x2\x74B\x749\x3\x2\x2\x2\x74C"+ - "\x750\x5\xDCo\x2\x74D\x74E\x5\x10E\x88\x2\x74E\x74F\x5\xCA\x66\x2\x74F"+ - "\x751\x3\x2\x2\x2\x750\x74D\x3\x2\x2\x2\x750\x751\x3\x2\x2\x2\x751\x75B"+ - "\x3\x2\x2\x2\x752\x754\x5\x10E\x88\x2\x753\x752\x3\x2\x2\x2\x753\x754"+ - "\x3\x2\x2\x2\x754\x755\x3\x2\x2\x2\x755\x756\a\xD4\x2\x2\x756\x757\x5"+ - "\xD6l\x2\x757\x758\a\xDB\x2\x2\x758\x75A\x3\x2\x2\x2\x759\x753\x3\x2\x2"+ - "\x2\x75A\x75D\x3\x2\x2\x2\x75B\x759\x3\x2\x2\x2\x75B\x75C\x3\x2\x2\x2"+ - "\x75C\xB9\x3\x2\x2\x2\x75D\x75B\x3\x2\x2\x2\x75E\x763\x5\xC4\x63\x2\x75F"+ - "\x763\x5\xBC_\x2\x760\x763\x5\xBE`\x2\x761\x763\x5\xC8\x65\x2\x762\x75E"+ - "\x3\x2\x2\x2\x762\x75F\x3\x2\x2\x2\x762\x760\x3\x2\x2\x2\x762\x761\x3"+ - "\x2\x2\x2\x763\xBB\x3\x2\x2\x2\x764\x766\x5\xDCo\x2\x765\x767\x5\xF2z"+ - "\x2\x766\x765\x3\x2\x2\x2\x766\x767\x3\x2\x2\x2\x767\x76C\x3\x2\x2\x2"+ - "\x768\x76A\x5\x10E\x88\x2\x769\x768\x3\x2\x2\x2\x769\x76A\x3\x2\x2\x2"+ - "\x76A\x76B\x3\x2\x2\x2\x76B\x76D\x5\xCEh\x2\x76C\x769\x3\x2\x2\x2\x76C"+ - "\x76D\x3\x2\x2\x2\x76D\x777\x3\x2\x2\x2\x76E\x770\x5\x10E\x88\x2\x76F"+ - "\x76E\x3\x2\x2\x2\x76F\x770\x3\x2\x2\x2\x770\x771\x3\x2\x2\x2\x771\x772"+ - "\a\xD4\x2\x2\x772\x773\x5\xD6l\x2\x773\x774\a\xDB\x2\x2\x774\x776\x3\x2"+ - "\x2\x2\x775\x76F\x3\x2\x2\x2\x776\x779\x3\x2\x2\x2\x777\x775\x3\x2\x2"+ - "\x2\x777\x778\x3\x2\x2\x2\x778\xBD\x3\x2\x2\x2\x779\x777\x3\x2\x2\x2\x77A"+ - "\x77D\x5\xDCo\x2\x77B\x77D\x5\xE0q\x2\x77C\x77A\x3\x2\x2\x2\x77C\x77B"+ - "\x3\x2\x2\x2\x77D\x77F\x3\x2\x2\x2\x77E\x780\x5\xF2z\x2\x77F\x77E\x3\x2"+ - "\x2\x2\x77F\x780\x3\x2\x2\x2\x780\x782\x3\x2\x2\x2\x781\x783\x5\x10E\x88"+ - "\x2\x782\x781\x3\x2\x2\x2\x782\x783\x3\x2\x2\x2\x783\x784\x3\x2\x2\x2"+ - "\x784\x786\a\xD4\x2\x2\x785\x787\x5\x10E\x88\x2\x786\x785\x3\x2\x2\x2"+ - "\x786\x787\x3\x2\x2\x2\x787\x78C\x3\x2\x2\x2\x788\x78A\x5\xCA\x66\x2\x789"+ - "\x78B\x5\x10E\x88\x2\x78A\x789\x3\x2\x2\x2\x78A\x78B\x3\x2\x2\x2\x78B"+ - "\x78D\x3\x2\x2\x2\x78C\x788\x3\x2\x2\x2\x78C\x78D\x3\x2\x2\x2\x78D\x78E"+ - "\x3\x2\x2\x2\x78E\x793\a\xDB\x2\x2\x78F\x791\x5\x10E\x88\x2\x790\x78F"+ - "\x3\x2\x2\x2\x790\x791\x3\x2\x2\x2\x791\x792\x3\x2\x2\x2\x792\x794\x5"+ - "\xCEh\x2\x793\x790\x3\x2\x2\x2\x793\x794\x3\x2\x2\x2\x794\x79E\x3\x2\x2"+ - "\x2\x795\x797\x5\x10E\x88\x2\x796\x795\x3\x2\x2\x2\x796\x797\x3\x2\x2"+ - "\x2\x797\x798\x3\x2\x2\x2\x798\x799\a\xD4\x2\x2\x799\x79A\x5\xD6l\x2\x79A"+ - "\x79B\a\xDB\x2\x2\x79B\x79D\x3\x2\x2\x2\x79C\x796\x3\x2\x2\x2\x79D\x7A0"+ - "\x3\x2\x2\x2\x79E\x79C\x3\x2\x2\x2\x79E\x79F\x3\x2\x2\x2\x79F\xBF\x3\x2"+ - "\x2\x2\x7A0\x79E\x3\x2\x2\x2\x7A1\x7A3\x5\xDAn\x2\x7A2\x7A4\x5\xF2z\x2"+ - "\x7A3\x7A2\x3\x2\x2\x2\x7A3\x7A4\x3\x2\x2\x2\x7A4\x7A9\x3\x2\x2\x2\x7A5"+ - "\x7A7\x5\x10E\x88\x2\x7A6\x7A5\x3\x2\x2\x2\x7A6\x7A7\x3\x2\x2\x2\x7A7"+ - "\x7A8\x3\x2\x2\x2\x7A8\x7AA\x5\xCEh\x2\x7A9\x7A6\x3\x2\x2\x2\x7A9\x7AA"+ - "\x3\x2\x2\x2\x7AA\x7B4\x3\x2\x2\x2\x7AB\x7AD\x5\x10E\x88\x2\x7AC\x7AB"+ - "\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AE\x3\x2\x2\x2\x7AE\x7AF\a\xD4"+ - "\x2\x2\x7AF\x7B0\x5\xD6l\x2\x7B0\x7B1\a\xDB\x2\x2\x7B1\x7B3\x3\x2\x2\x2"+ - "\x7B2\x7AC\x3\x2\x2\x2\x7B3\x7B6\x3\x2\x2\x2\x7B4\x7B2\x3\x2\x2\x2\x7B4"+ - "\x7B5\x3\x2\x2\x2\x7B5\xC1\x3\x2\x2\x2\x7B6\x7B4\x3\x2\x2\x2\x7B7\x7BA"+ - "\x5\xDAn\x2\x7B8\x7BA\x5\xE0q\x2\x7B9\x7B7\x3\x2\x2\x2\x7B9\x7B8\x3\x2"+ - "\x2\x2\x7BA\x7BC\x3\x2\x2\x2\x7BB\x7BD\x5\xF2z\x2\x7BC\x7BB\x3\x2\x2\x2"+ - "\x7BC\x7BD\x3\x2\x2\x2\x7BD\x7BF\x3\x2\x2\x2\x7BE\x7C0\x5\x10E\x88\x2"+ - "\x7BF\x7BE\x3\x2\x2\x2\x7BF\x7C0\x3\x2\x2\x2\x7C0\x7C1\x3\x2\x2\x2\x7C1"+ - "\x7C3\a\xD4\x2\x2\x7C2\x7C4\x5\x10E\x88\x2\x7C3\x7C2\x3\x2\x2\x2\x7C3"+ - "\x7C4\x3\x2\x2\x2\x7C4\x7C9\x3\x2\x2\x2\x7C5\x7C7\x5\xCA\x66\x2\x7C6\x7C8"+ - "\x5\x10E\x88\x2\x7C7\x7C6\x3\x2\x2\x2\x7C7\x7C8\x3\x2\x2\x2\x7C8\x7CA"+ - "\x3\x2\x2\x2\x7C9\x7C5\x3\x2\x2\x2\x7C9\x7CA\x3\x2\x2\x2\x7CA\x7CB\x3"+ - "\x2\x2\x2\x7CB\x7D0\a\xDB\x2\x2\x7CC\x7CE\x5\x10E\x88\x2\x7CD\x7CC\x3"+ - "\x2\x2\x2\x7CD\x7CE\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7D1\x5\xCE"+ - "h\x2\x7D0\x7CD\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7DB\x3\x2\x2\x2"+ - "\x7D2\x7D4\x5\x10E\x88\x2\x7D3\x7D2\x3\x2\x2\x2\x7D3\x7D4\x3\x2\x2\x2"+ - "\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D6\a\xD4\x2\x2\x7D6\x7D7\x5\xD6l\x2\x7D7"+ - "\x7D8\a\xDB\x2\x2\x7D8\x7DA\x3\x2\x2\x2\x7D9\x7D3\x3\x2\x2\x2\x7DA\x7DD"+ - "\x3\x2\x2\x2\x7DB\x7D9\x3\x2\x2\x2\x7DB\x7DC\x3\x2\x2\x2\x7DC\xC3\x3\x2"+ - "\x2\x2\x7DD\x7DB\x3\x2\x2\x2\x7DE\x7E1\x5\xBC_\x2\x7DF\x7E1\x5\xBE`\x2"+ - "\x7E0\x7DE\x3\x2\x2\x2\x7E0\x7DF\x3\x2\x2\x2\x7E0\x7E1\x3\x2\x2\x2\x7E1"+ - "\x7E6\x3\x2\x2\x2\x7E2\x7E4\x5\xC6\x64\x2\x7E3\x7E5\x5\x10E\x88\x2\x7E4"+ - "\x7E3\x3\x2\x2\x2\x7E4\x7E5\x3\x2\x2\x2\x7E5\x7E7\x3\x2\x2\x2\x7E6\x7E2"+ - "\x3\x2\x2\x2\x7E7\x7E8\x3\x2\x2\x2\x7E8\x7E6\x3\x2\x2\x2\x7E8\x7E9\x3"+ - "\x2\x2\x2\x7E9\x7EE\x3\x2\x2\x2\x7EA\x7EC\x5\x10E\x88\x2\x7EB\x7EA\x3"+ - "\x2\x2\x2\x7EB\x7EC\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED\x7EF\x5\xCE"+ - "h\x2\x7EE\x7EB\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7F9\x3\x2\x2\x2"+ - "\x7F0\x7F2\x5\x10E\x88\x2\x7F1\x7F0\x3\x2\x2\x2\x7F1\x7F2\x3\x2\x2\x2"+ - "\x7F2\x7F3\x3\x2\x2\x2\x7F3\x7F4\a\xD4\x2\x2\x7F4\x7F5\x5\xD6l\x2\x7F5"+ - "\x7F6\a\xDB\x2\x2\x7F6\x7F8\x3\x2\x2\x2\x7F7\x7F1\x3\x2\x2\x2\x7F8\x7FB"+ - "\x3\x2\x2\x2\x7F9\x7F7\x3\x2\x2\x2\x7F9\x7FA\x3\x2\x2\x2\x7FA\xC5\x3\x2"+ - "\x2\x2\x7FB\x7F9\x3\x2\x2\x2\x7FC\x7FE\t\xF\x2\x2\x7FD\x7FF\x5\x10E\x88"+ - "\x2\x7FE\x7FD\x3\x2\x2\x2\x7FE\x7FF\x3\x2\x2\x2\x7FF\x802\x3\x2\x2\x2"+ - "\x800\x803\x5\xC0\x61\x2\x801\x803\x5\xC2\x62\x2\x802\x800\x3\x2\x2\x2"+ - "\x802\x801\x3\x2\x2\x2\x803\xC7\x3\x2\x2\x2\x804\x806\x5\x10E\x88\x2\x805"+ - "\x804\x3\x2\x2\x2\x805\x806\x3\x2\x2\x2\x806\x807\x3\x2\x2\x2\x807\x808"+ - "\x5\xCEh\x2\x808\xC9\x3\x2\x2\x2\x809\x80B\x5\xCCg\x2\x80A\x809\x3\x2"+ - "\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80D\x3\x2\x2\x2\x80C\x80E\x5\x10E\x88"+ - "\x2\x80D\x80C\x3\x2\x2\x2\x80D\x80E\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2"+ - "\x80F\x811\t\n\x2\x2\x810\x812\x5\x10E\x88\x2\x811\x810\x3\x2\x2\x2\x811"+ - "\x812\x3\x2\x2\x2\x812\x814\x3\x2\x2\x2\x813\x80A\x3\x2\x2\x2\x814\x817"+ - "\x3\x2\x2\x2\x815\x813\x3\x2\x2\x2\x815\x816\x3\x2\x2\x2\x816\x818\x3"+ - "\x2\x2\x2\x817\x815\x3\x2\x2\x2\x818\x825\x5\xCCg\x2\x819\x81B\x5\x10E"+ - "\x88\x2\x81A\x819\x3\x2\x2\x2\x81A\x81B\x3\x2\x2\x2\x81B\x81C\x3\x2\x2"+ - "\x2\x81C\x81E\t\n\x2\x2\x81D\x81F\x5\x10E\x88\x2\x81E\x81D\x3\x2\x2\x2"+ - "\x81E\x81F\x3\x2\x2\x2\x81F\x821\x3\x2\x2\x2\x820\x822\x5\xCCg\x2\x821"+ - "\x820\x3\x2\x2\x2\x821\x822\x3\x2\x2\x2\x822\x824\x3\x2\x2\x2\x823\x81A"+ - "\x3\x2\x2\x2\x824\x827\x3\x2\x2\x2\x825\x823\x3\x2\x2\x2\x825\x826\x3"+ - "\x2\x2\x2\x826\xCB\x3\x2\x2\x2\x827\x825\x3\x2\x2\x2\x828\x82A\a\xD4\x2"+ - "\x2\x829\x828\x3\x2\x2\x2\x829\x82A\x3\x2\x2\x2\x82A\x82D\x3\x2\x2\x2"+ - "\x82B\x82C\t\x10\x2\x2\x82C\x82E\x5\x10E\x88\x2\x82D\x82B\x3\x2\x2\x2"+ - "\x82D\x82E\x3\x2\x2\x2\x82E\x830\x3\x2\x2\x2\x82F\x831\a\xDB\x2\x2\x830"+ - "\x82F\x3\x2\x2\x2\x830\x831\x3\x2\x2\x2\x831\x832\x3\x2\x2\x2\x832\x833"+ - "\x5\x9AN\x2\x833\xCD\x3\x2\x2\x2\x834\x836\a,\x2\x2\x835\x837\x5\x10E"+ - "\x88\x2\x836\x835\x3\x2\x2\x2\x836\x837\x3\x2\x2\x2\x837\x838\x3\x2\x2"+ - "\x2\x838\x83A\x5\xDAn\x2\x839\x83B\x5\xF2z\x2\x83A\x839\x3\x2\x2\x2\x83A"+ - "\x83B\x3\x2\x2\x2\x83B\xCF\x3\x2\x2\x2\x83C\x84E\a\xD4\x2\x2\x83D\x83F"+ - "\x5\x10E\x88\x2\x83E\x83D\x3\x2\x2\x2\x83E\x83F\x3\x2\x2\x2\x83F\x840"+ - "\x3\x2\x2\x2\x840\x84B\x5\xD2j\x2\x841\x843\x5\x10E\x88\x2\x842\x841\x3"+ - "\x2\x2\x2\x842\x843\x3\x2\x2\x2\x843\x844\x3\x2\x2\x2\x844\x846\a)\x2"+ - "\x2\x845\x847\x5\x10E\x88\x2\x846\x845\x3\x2\x2\x2\x846\x847\x3\x2\x2"+ - "\x2\x847\x848\x3\x2\x2\x2\x848\x84A\x5\xD2j\x2\x849\x842\x3\x2\x2\x2\x84A"+ - "\x84D\x3\x2\x2\x2\x84B\x849\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84F"+ - "\x3\x2\x2\x2\x84D\x84B\x3\x2\x2\x2\x84E\x83E\x3\x2\x2\x2\x84E\x84F\x3"+ - "\x2\x2\x2\x84F\x851\x3\x2\x2\x2\x850\x852\x5\x10E\x88\x2\x851\x850\x3"+ - "\x2\x2\x2\x851\x852\x3\x2\x2\x2\x852\x853\x3\x2\x2\x2\x853\x854\a\xDB"+ - "\x2\x2\x854\xD1\x3\x2\x2\x2\x855\x856\a\x95\x2\x2\x856\x858\x5\x10E\x88"+ - "\x2\x857\x855\x3\x2\x2\x2\x857\x858\x3\x2\x2\x2\x858\x85B\x3\x2\x2\x2"+ - "\x859\x85A\t\x11\x2\x2\x85A\x85C\x5\x10E\x88\x2\x85B\x859\x3\x2\x2\x2"+ - "\x85B\x85C\x3\x2\x2\x2\x85C\x85F\x3\x2\x2\x2\x85D\x85E\a\x9C\x2\x2\x85E"+ - "\x860\x5\x10E\x88\x2\x85F\x85D\x3\x2\x2\x2\x85F\x860\x3\x2\x2\x2\x860"+ - "\x861\x3\x2\x2\x2\x861\x863\x5\xDAn\x2\x862\x864\x5\xF2z\x2\x863\x862"+ - "\x3\x2\x2\x2\x863\x864\x3\x2\x2\x2\x864\x86D\x3\x2\x2\x2\x865\x867\x5"+ - "\x10E\x88\x2\x866\x865\x3\x2\x2\x2\x866\x867\x3\x2\x2\x2\x867\x868\x3"+ - "\x2\x2\x2\x868\x86A\a\xD4\x2\x2\x869\x86B\x5\x10E\x88\x2\x86A\x869\x3"+ - "\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86C\x3\x2\x2\x2\x86C\x86E\a\xDB"+ - "\x2\x2\x86D\x866\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2\x86E\x873\x3\x2\x2"+ - "\x2\x86F\x871\x5\x10E\x88\x2\x870\x86F\x3\x2\x2\x2\x870\x871\x3\x2\x2"+ - "\x2\x871\x872\x3\x2\x2\x2\x872\x874\x5\xDEp\x2\x873\x870\x3\x2\x2\x2\x873"+ - "\x874\x3\x2\x2\x2\x874\x879\x3\x2\x2\x2\x875\x877\x5\x10E\x88\x2\x876"+ - "\x875\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x878\x3\x2\x2\x2\x878\x87A"+ - "\x5\xD4k\x2\x879\x876\x3\x2\x2\x2\x879\x87A\x3\x2\x2\x2\x87A\xD3\x3\x2"+ - "\x2\x2\x87B\x87D\a\xD0\x2\x2\x87C\x87E\x5\x10E\x88\x2\x87D\x87C\x3\x2"+ - "\x2\x2\x87D\x87E\x3\x2\x2\x2\x87E\x87F\x3\x2\x2\x2\x87F\x880\x5\x9AN\x2"+ - "\x880\xD5\x3\x2\x2\x2\x881\x88C\x5\xD8m\x2\x882\x884\x5\x10E\x88\x2\x883"+ - "\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2\x884\x885\x3\x2\x2\x2\x885\x887"+ - "\a)\x2\x2\x886\x888\x5\x10E\x88\x2\x887\x886\x3\x2\x2\x2\x887\x888\x3"+ - "\x2\x2\x2\x888\x889\x3\x2\x2\x2\x889\x88B\x5\xD8m\x2\x88A\x883\x3\x2\x2"+ - "\x2\x88B\x88E\x3\x2\x2\x2\x88C\x88A\x3\x2\x2\x2\x88C\x88D\x3\x2\x2\x2"+ - "\x88D\xD7\x3\x2\x2\x2\x88E\x88C\x3\x2\x2\x2\x88F\x890\x5\x9AN\x2\x890"+ - "\x891\x5\x10E\x88\x2\x891\x892\a\xBE\x2\x2\x892\x893\x5\x10E\x88\x2\x893"+ - "\x895\x3\x2\x2\x2\x894\x88F\x3\x2\x2\x2\x894\x895\x3\x2\x2\x2\x895\x896"+ - "\x3\x2\x2\x2\x896\x897\x5\x9AN\x2\x897\xD9\x3\x2\x2\x2\x898\x89C\x5\xDC"+ - "o\x2\x899\x89C\x5\xFA~\x2\x89A\x89C\x5\xF8}\x2\x89B\x898\x3\x2\x2\x2\x89B"+ - "\x899\x3\x2\x2\x2\x89B\x89A\x3\x2\x2\x2\x89C\xDB\x3\x2\x2\x2\x89D\x8A0"+ - "\a\xEF\x2\x2\x89E\x8A0\x5\xF6|\x2\x89F\x89D\x3\x2\x2\x2\x89F\x89E\x3\x2"+ - "\x2\x2\x8A0\xDD\x3\x2\x2\x2\x8A1\x8A3\a\x39\x2\x2\x8A2\x8A4\x5\x10E\x88"+ - "\x2\x8A3\x8A2\x3\x2\x2\x2\x8A3\x8A4\x3\x2\x2\x2\x8A4\x8A7\x3\x2\x2\x2"+ - "\x8A5\x8A6\a\x8D\x2\x2\x8A6\x8A8\x5\x10E\x88\x2\x8A7\x8A5\x3\x2\x2\x2"+ - "\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8AE\x5\xF0y\x2\x8AA"+ - "\x8AC\x5\x10E\x88\x2\x8AB\x8AA\x3\x2\x2\x2\x8AB\x8AC\x3\x2\x2\x2\x8AC"+ - "\x8AD\x3\x2\x2\x2\x8AD\x8AF\x5\xE6t\x2\x8AE\x8AB\x3\x2\x2\x2\x8AE\x8AF"+ - "\x3\x2\x2\x2\x8AF\xDF\x3\x2\x2\x2\x8B0\x8B1\t\x12\x2\x2\x8B1\xE1\x3\x2"+ - "\x2\x2\x8B2\x8B3\t\xE\x2\x2\x8B3\xE3\x3\x2\x2\x2\x8B4\x8B9\x5\xDCo\x2"+ - "\x8B5\x8B6\t\xF\x2\x2\x8B6\x8B8\x5\xDCo\x2\x8B7\x8B5\x3\x2\x2\x2\x8B8"+ - "\x8BB\x3\x2\x2\x2\x8B9\x8B7\x3\x2\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\xE5"+ - "\x3\x2\x2\x2\x8BB\x8B9\x3\x2\x2\x2\x8BC\x8BE\a\xD7\x2\x2\x8BD\x8BF\x5"+ - "\x10E\x88\x2\x8BE\x8BD\x3\x2\x2\x2\x8BE\x8BF\x3\x2\x2\x2\x8BF\x8C2\x3"+ - "\x2\x2\x2\x8C0\x8C3\x5\xEEx\x2\x8C1\x8C3\x5\xDCo\x2\x8C2\x8C0\x3\x2\x2"+ - "\x2\x8C2\x8C1\x3\x2\x2\x2\x8C3\xE7\x3\x2\x2\x2\x8C4\x8CD\x5\xDCo\x2\x8C5"+ - "\x8C7\x5\x10E\x88\x2\x8C6\x8C5\x3\x2\x2\x2\x8C6\x8C7\x3\x2\x2\x2\x8C7"+ - "\x8C8\x3\x2\x2\x2\x8C8\x8CA\a\xD6\x2\x2\x8C9\x8CB\x5\x10E\x88\x2\x8CA"+ - "\x8C9\x3\x2\x2\x2\x8CA\x8CB\x3\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2\x8CC\x8CE"+ - "\x5\xDCo\x2\x8CD\x8C6\x3\x2\x2\x2\x8CD\x8CE\x3\x2\x2\x2\x8CE\xE9\x3\x2"+ - "\x2\x2\x8CF\x8D2\x5\xDCo\x2\x8D0\x8D2\x5\xEEx\x2\x8D1\x8CF\x3\x2\x2\x2"+ - "\x8D1\x8D0\x3\x2\x2\x2\x8D2\x8D3\x3\x2\x2\x2\x8D3\x8D4\a*\x2\x2\x8D4\xEB"+ - "\x3\x2\x2\x2\x8D5\x8DE\x5\xEEx\x2\x8D6\x8DE\a\xE8\x2\x2\x8D7\x8DE\a\xE3"+ - "\x2\x2\x8D8\x8DE\a\xBF\x2\x2\x8D9\x8DE\ao\x2\x2\x8DA\x8DE\a\x8F\x2\x2"+ - "\x8DB\x8DE\a\x90\x2\x2\x8DC\x8DE\a[\x2\x2\x8DD\x8D5\x3\x2\x2\x2\x8DD\x8D6"+ - "\x3\x2\x2\x2\x8DD\x8D7\x3\x2\x2\x2\x8DD\x8D8\x3\x2\x2\x2\x8DD\x8D9\x3"+ - "\x2\x2\x2\x8DD\x8DA\x3\x2\x2\x2\x8DD\x8DB\x3\x2\x2\x2\x8DD\x8DC\x3\x2"+ - "\x2\x2\x8DE\xED\x3\x2\x2\x2\x8DF\x8E0\t\x13\x2\x2\x8E0\xEF\x3\x2\x2\x2"+ - "\x8E1\x8E4\x5\xE0q\x2\x8E2\x8E4\x5\xE4s\x2\x8E3\x8E1\x3\x2\x2\x2\x8E3"+ - "\x8E2\x3\x2\x2\x2\x8E4\x8ED\x3\x2\x2\x2\x8E5\x8E7\x5\x10E\x88\x2\x8E6"+ - "\x8E5\x3\x2\x2\x2\x8E6\x8E7\x3\x2\x2\x2\x8E7\x8E8\x3\x2\x2\x2\x8E8\x8EA"+ - "\a\xD4\x2\x2\x8E9\x8EB\x5\x10E\x88\x2\x8EA\x8E9\x3\x2\x2\x2\x8EA\x8EB"+ - "\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2\x8EC\x8EE\a\xDB\x2\x2\x8ED\x8E6\x3"+ - "\x2\x2\x2\x8ED\x8EE\x3\x2\x2\x2\x8EE\xF1\x3\x2\x2\x2\x8EF\x8F0\t\x14\x2"+ - "\x2\x8F0\xF3\x3\x2\x2\x2\x8F1\x8F2\t\x15\x2\x2\x8F2\xF5\x3\x2\x2\x2\x8F3"+ - "\x8F4\t\x16\x2\x2\x8F4\xF7\x3\x2\x2\x2\x8F5\x8F6\a\x39\x2\x2\x8F6\xF9"+ - "\x3\x2\x2\x2\x8F7\x8F8\t\x17\x2\x2\x8F8\xFB\x3\x2\x2\x2\x8F9\x8FB\x5\x10E"+ - "\x88\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2\x8FB\x903\x3\x2\x2"+ - "\x2\x8FC\x8FE\a\xE9\x2\x2\x8FD\x8FC\x3\x2\x2\x2\x8FE\x8FF\x3\x2\x2\x2"+ - "\x8FF\x8FD\x3\x2\x2\x2\x8FF\x900\x3\x2\x2\x2\x900\x904\x3\x2\x2\x2\x901"+ - "\x904\x5\x102\x82\x2\x902\x904\x5\x100\x81\x2\x903\x8FD\x3\x2\x2\x2\x903"+ - "\x901\x3\x2\x2\x2\x903\x902\x3\x2\x2\x2\x904\x906\x3\x2\x2\x2\x905\x907"+ - "\x5\x10E\x88\x2\x906\x905\x3\x2\x2\x2\x906\x907\x3\x2\x2\x2\x907\x90D"+ - "\x3\x2\x2\x2\x908\x90A\x5\x10E\x88\x2\x909\x908\x3\x2\x2\x2\x909\x90A"+ - "\x3\x2\x2\x2\x90A\x90B\x3\x2\x2\x2\x90B\x90D\x5\x104\x83\x2\x90C\x8FA"+ - "\x3\x2\x2\x2\x90C\x909\x3\x2\x2\x2\x90D\xFD\x3\x2\x2\x2\x90E\x917\x5\xFC"+ - "\x7F\x2\x90F\x911\x5\x10E\x88\x2\x910\x90F\x3\x2\x2\x2\x910\x911\x3\x2"+ - "\x2\x2\x911\x912\x3\x2\x2\x2\x912\x914\a*\x2\x2\x913\x915\x5\x10E\x88"+ - "\x2\x914\x913\x3\x2\x2\x2\x914\x915\x3\x2\x2\x2\x915\x917\x3\x2\x2\x2"+ - "\x916\x90E\x3\x2\x2\x2\x916\x910\x3\x2\x2\x2\x917\x91A\x3\x2\x2\x2\x918"+ - "\x916\x3\x2\x2\x2\x918\x919\x3\x2\x2\x2\x919\xFF\x3\x2\x2\x2\x91A\x918"+ - "\x3\x2\x2\x2\x91B\x91C\a\xEA\x2\x2\x91C\x101\x3\x2\x2\x2\x91D\x91E\t\x18"+ - "\x2\x2\x91E\x103\x3\x2\x2\x2\x91F\x921\a\xEC\x2\x2\x920\x922\x5\x106\x84"+ - "\x2\x921\x920\x3\x2\x2\x2\x922\x923\x3\x2\x2\x2\x923\x921\x3\x2\x2\x2"+ - "\x923\x924\x3\x2\x2\x2\x924\x105\x3\x2\x2\x2\x925\x926\a/\x2\x2\x926\x928"+ - "\x5\x108\x85\x2\x927\x929\x5\x10A\x86\x2\x928\x927\x3\x2\x2\x2\x928\x929"+ - "\x3\x2\x2\x2\x929\x107\x3\x2\x2\x2\x92A\x92B\a\xEF\x2\x2\x92B\x109\x3"+ - "\x2\x2\x2\x92C\x92D\x5\x10E\x88\x2\x92D\x92F\x5\x10C\x87\x2\x92E\x930"+ - "\x5\x10E\x88\x2\x92F\x92E\x3\x2\x2\x2\x92F\x930\x3\x2\x2\x2\x930\x96A"+ - "\x3\x2\x2\x2\x931\x932\x5\x10E\x88\x2\x932\x93B\x5\x10C\x87\x2\x933\x935"+ - "\x5\x10E\x88\x2\x934\x933\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\x936"+ - "\x3\x2\x2\x2\x936\x938\a)\x2\x2\x937\x939\x5\x10E\x88\x2\x938\x937\x3"+ - "\x2\x2\x2\x938\x939\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93C\x5\x10C"+ - "\x87\x2\x93B\x934\x3\x2\x2\x2\x93C\x93D\x3\x2\x2\x2\x93D\x93B\x3\x2\x2"+ - "\x2\x93D\x93E\x3\x2\x2\x2\x93E\x940\x3\x2\x2\x2\x93F\x941\x5\x10E\x88"+ - "\x2\x940\x93F\x3\x2\x2\x2\x940\x941\x3\x2\x2\x2\x941\x96A\x3\x2\x2\x2"+ - "\x942\x944\x5\x10E\x88\x2\x943\x942\x3\x2\x2\x2\x943\x944\x3\x2\x2\x2"+ - "\x944\x945\x3\x2\x2\x2\x945\x947\a\xD4\x2\x2\x946\x948\x5\x10E\x88\x2"+ - "\x947\x946\x3\x2\x2\x2\x947\x948\x3\x2\x2\x2\x948\x949\x3\x2\x2\x2\x949"+ - "\x94B\x5\x10C\x87\x2\x94A\x94C\x5\x10E\x88\x2\x94B\x94A\x3\x2\x2\x2\x94B"+ - "\x94C\x3\x2\x2\x2\x94C\x94D\x3\x2\x2\x2\x94D\x94F\a\xDB\x2\x2\x94E\x950"+ - "\x5\x10E\x88\x2\x94F\x94E\x3\x2\x2\x2\x94F\x950\x3\x2\x2\x2\x950\x96A"+ - "\x3\x2\x2\x2\x951\x953\x5\x10E\x88\x2\x952\x951\x3\x2\x2\x2\x952\x953"+ - "\x3\x2\x2\x2\x953\x954\x3\x2\x2\x2\x954\x955\a\xD4\x2\x2\x955\x95E\x5"+ - "\x10C\x87\x2\x956\x958\x5\x10E\x88\x2\x957\x956\x3\x2\x2\x2\x957\x958"+ - "\x3\x2\x2\x2\x958\x959\x3\x2\x2\x2\x959\x95B\a)\x2\x2\x95A\x95C\x5\x10E"+ - "\x88\x2\x95B\x95A\x3\x2\x2\x2\x95B\x95C\x3\x2\x2\x2\x95C\x95D\x3\x2\x2"+ - "\x2\x95D\x95F\x5\x10C\x87\x2\x95E\x957\x3\x2\x2\x2\x95F\x960\x3\x2\x2"+ - "\x2\x960\x95E\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x963\x3\x2\x2\x2"+ - "\x962\x964\x5\x10E\x88\x2\x963\x962\x3\x2\x2\x2\x963\x964\x3\x2\x2\x2"+ - "\x964\x965\x3\x2\x2\x2\x965\x967\a\xDB\x2\x2\x966\x968\x5\x10E\x88\x2"+ - "\x967\x966\x3\x2\x2\x2\x967\x968\x3\x2\x2\x2\x968\x96A\x3\x2\x2\x2\x969"+ - "\x92C\x3\x2\x2\x2\x969\x931\x3\x2\x2\x2\x969\x943\x3\x2\x2\x2\x969\x952"+ - "\x3\x2\x2\x2\x96A\x10B\x3\x2\x2\x2\x96B\x96C\x5\x9AN\x2\x96C\x10D\x3\x2"+ - "\x2\x2\x96D\x96F\t\x19\x2\x2\x96E\x96D\x3\x2\x2\x2\x96F\x970\x3\x2\x2"+ - "\x2\x970\x96E\x3\x2\x2\x2\x970\x971\x3\x2\x2\x2\x971\x10F\x3\x2\x2\x2"+ - "\x1A6\x114\x11A\x11D\x121\x125\x129\x12D\x133\x136\x140\x142\x148\x150"+ - "\x157\x15D\x166\x16E\x17D\x187\x18F\x199\x19F\x1A3\x1A7\x1AB\x1B0\x1BD"+ - "\x1EF\x1F5\x1F9\x1FE\x201\x206\x20C\x210\x215\x21A\x21F\x222\x226\x22D"+ - "\x233\x237\x23A\x23F\x24A\x24D\x250\x255\x25B\x25F\x264\x26A\x275\x27C"+ - "\x284\x289\x292\x299\x29D\x2A0\x2A8\x2AC\x2B1\x2BB\x2C1\x2D2\x2D8\x2DE"+ - "\x2E2\x2EE\x2F2\x2F8\x2FD\x301\x305\x309\x30C\x30F\x312\x315\x319\x323"+ - "\x327\x32A\x32D\x331\x349\x34F\x353\x357\x360\x36B\x370\x37A\x37E\x383"+ - "\x387\x38B\x38F\x397\x39B\x3A3\x3A7\x3AF\x3B1\x3B7\x3BB\x3C1\x3C5\x3C9"+ - "\x3D7\x3E1\x3E5\x3EA\x3F5\x3F9\x3FE\x40D\x412\x41B\x41F\x423\x427\x42B"+ - "\x42E\x432\x436\x439\x43D\x440\x444\x446\x44B\x44F\x453\x457\x459\x45F"+ - "\x463\x466\x46B\x46F\x475\x478\x47B\x480\x484\x48B\x48F\x495\x498\x49C"+ - "\x4A3\x4A7\x4AD\x4B0\x4B4\x4BC\x4C0\x4C3\x4C6\x4CA\x4D2\x4D6\x4DA\x4DC"+ - "\x4DF\x4E5\x4E9\x4ED\x4F2\x4F7\x4FB\x4FF\x505\x50D\x50F\x517\x51B\x523"+ - "\x527\x534\x53B\x53F\x54A\x551\x556\x55A\x55F\x562\x568\x56C\x573\x577"+ - "\x57B\x57F\x582\x586\x58F\x598\x59F\x5A3\x5A6\x5A9\x5AC\x5B1\x5B9\x5BD"+ - "\x5C5\x5C7\x5CC\x5D1\x5D6\x5DA\x5E0\x5E5\x5EC\x5F0\x5F6\x5FA\x5FE\x603"+ - "\x607\x60C\x610\x615\x619\x61E\x622\x627\x62B\x630\x634\x639\x63D\x642"+ - "\x646\x64B\x64F\x654\x658\x65D\x661\x664\x666\x671\x676\x67B\x681\x685"+ - "\x68A\x68F\x693\x697\x699\x69D\x69F\x6A2\x6A7\x6AE\x6B6\x6BA\x6C3\x6CD"+ - "\x6D1\x6D4\x6D7\x6E0\x6E5\x6E8\x6EC\x6F0\x6F4\x6F7\x6FF\x704\x707\x70B"+ - "\x70F\x713\x716\x71E\x721\x725\x728\x72B\x72F\x733\x738\x73B\x73E\x741"+ - "\x749\x750\x753\x75B\x762\x766\x769\x76C\x76F\x777\x77C\x77F\x782\x786"+ - "\x78A\x78C\x790\x793\x796\x79E\x7A3\x7A6\x7A9\x7AC\x7B4\x7B9\x7BC\x7BF"+ - "\x7C3\x7C7\x7C9\x7CD\x7D0\x7D3\x7DB\x7E0\x7E4\x7E8\x7EB\x7EE\x7F1\x7F9"+ - "\x7FE\x802\x805\x80A\x80D\x811\x815\x81A\x81E\x821\x825\x829\x82D\x830"+ - "\x836\x83A\x83E\x842\x846\x84B\x84E\x851\x857\x85B\x85F\x863\x866\x86A"+ - "\x86D\x870\x873\x876\x879\x87D\x883\x887\x88C\x894\x89B\x89F\x8A3\x8A7"+ - "\x8AB\x8AE\x8B9\x8BE\x8C2\x8C6\x8CA\x8CD\x8D1\x8DD\x8E3\x8E6\x8EA\x8ED"+ - "\x8FA\x8FF\x903\x906\x909\x90C\x910\x914\x916\x918\x923\x928\x92F\x934"+ - "\x938\x93D\x940\x943\x947\x94B\x94F\x952\x957\x95B\x960\x963\x967\x969"+ - "\x970"; + "\x5\x11\x1F3\n\x11\x3\x12\x3\x12\x3\x12\x3\x12\x5\x12\x1F9\n\x12\x3\x12"+ + "\x3\x12\x5\x12\x1FD\n\x12\x3\x12\a\x12\x200\n\x12\f\x12\xE\x12\x203\v"+ + "\x12\x5\x12\x205\n\x12\x3\x13\x3\x13\x3\x13\x5\x13\x20A\n\x13\x3\x13\x3"+ + "\x13\x3\x13\x3\x13\x5\x13\x210\n\x13\x3\x13\x3\x13\x5\x13\x214\n\x13\x3"+ + "\x13\a\x13\x217\n\x13\f\x13\xE\x13\x21A\v\x13\x3\x14\x3\x14\x5\x14\x21E"+ + "\n\x14\x3\x14\x3\x14\x3\x14\x5\x14\x223\n\x14\x3\x14\x5\x14\x226\n\x14"+ + "\x3\x14\x3\x14\x5\x14\x22A\n\x14\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\x5"+ + "\x15\x231\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x5\x15\x237\n\x15\x3\x15\x3"+ + "\x15\x5\x15\x23B\n\x15\x3\x15\x5\x15\x23E\n\x15\x3\x15\x3\x15\x3\x15\x5"+ + "\x15\x243\n\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15\x3\x15"+ + "\x3\x15\x5\x15\x24E\n\x15\x3\x15\x5\x15\x251\n\x15\x3\x15\x5\x15\x254"+ + "\n\x15\x3\x15\x3\x15\x3\x15\x5\x15\x259\n\x15\x3\x16\x3\x16\x3\x16\x3"+ + "\x16\x5\x16\x25F\n\x16\x3\x16\x3\x16\x5\x16\x263\n\x16\x3\x16\a\x16\x266"+ + "\n\x16\f\x16\xE\x16\x269\v\x16\x3\x17\x3\x17\x3\x17\x5\x17\x26E\n\x17"+ + "\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17"+ + "\x279\n\x17\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x280\n\x17\x3\x17"+ + "\x3\x17\x3\x17\x3\x17\x3\x17\x3\x17\x5\x17\x288\n\x17\x3\x18\x3\x18\x3"+ + "\x18\x5\x18\x28D\n\x18\x3\x18\x3\x18\x3\x18\x3\x18\x3\x18\a\x18\x294\n"+ + "\x18\f\x18\xE\x18\x297\v\x18\x3\x18\x3\x18\x3\x19\x3\x19\x5\x19\x29D\n"+ + "\x19\x3\x19\x3\x19\x5\x19\x2A1\n\x19\x3\x19\x5\x19\x2A4\n\x19\x3\x19\x3"+ + "\x19\x3\x1A\x3\x1A\x3\x1A\x3\x1A\x5\x1A\x2AC\n\x1A\x3\x1A\x3\x1A\x5\x1A"+ + "\x2B0\n\x1A\x3\x1A\a\x1A\x2B3\n\x1A\f\x1A\xE\x1A\x2B6\v\x1A\x3\x1B\x3"+ + "\x1B\x3\x1B\x3\x1B\x3\x1C\x3\x1C\x3\x1C\x5\x1C\x2BF\n\x1C\x3\x1C\x3\x1C"+ + "\x3\x1C\x3\x1C\x5\x1C\x2C5\n\x1C\x3\x1C\x3\x1C\x3\x1D\x3\x1D\x3\x1E\x3"+ + "\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x5"+ + "\x1E\x2D6\n\x1E\x3\x1E\x3\x1E\x3\x1E\x3\x1E\x5\x1E\x2DC\n\x1E\x3\x1F\x3"+ + "\x1F\x3\x1F\x3\x1F\x5\x1F\x2E2\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2E6\n\x1F\x3"+ + "\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x3\x1F\x5"+ + "\x1F\x2F2\n\x1F\x3\x1F\x3\x1F\x5\x1F\x2F6\n\x1F\x3\x1F\x3\x1F\x3\x1F\x3"+ + "\x1F\x5\x1F\x2FC\n\x1F\x3 \x3 \x3 \x5 \x301\n \x3 \x3 \x5 \x305\n \x3"+ + " \x3 \x5 \x309\n \x3 \x3 \x5 \x30D\n \x3 \x5 \x310\n \x3 \x5 \x313\n "+ + "\x3 \x5 \x316\n \x3 \x5 \x319\n \x3 \x3 \x5 \x31D\n \x3 \x3 \x3!\x3!\x3"+ + "\"\x3\"\x3\"\x3\"\x5\"\x327\n\"\x3\"\x3\"\x5\"\x32B\n\"\x3\"\x5\"\x32E"+ + "\n\"\x3\"\x5\"\x331\n\"\x3\"\x3\"\x5\"\x335\n\"\x3\"\x3\"\x3#\x3#\x3#"+ + "\x3#\x3$\x3$\x3$\x3$\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x3%\x5"+ + "%\x34D\n%\x3%\x3%\a%\x351\n%\f%\xE%\x354\v%\x3%\x5%\x357\n%\x3%\x3%\x5"+ + "%\x35B\n%\x3&\x3&\x3&\x3&\x3&\x3&\x3&\x5&\x364\n&\x3\'\x3\'\x3(\x3(\x3"+ + "(\x3(\x3(\x3(\x3(\x5(\x36F\n(\x3)\x3)\x3)\x5)\x374\n)\x3*\x3*\x3*\x3*"+ + "\x3+\x3+\x3+\x3+\x5+\x37E\n+\x3+\x3+\x5+\x382\n+\x3+\x6+\x385\n+\r+\xE"+ + "+\x386\x3,\x3,\x5,\x38B\n,\x3,\x3,\x5,\x38F\n,\x3,\x3,\x5,\x393\n,\x3"+ + ",\x3,\x3-\x3-\x3-\x3-\x5-\x39B\n-\x3-\x3-\x5-\x39F\n-\x3-\x3-\x3.\x3."+ + "\x3.\x3.\x5.\x3A7\n.\x3.\x3.\x5.\x3AB\n.\x3.\x3.\x3.\x3.\x3.\x3.\x5.\x3B3"+ + "\n.\x5.\x3B5\n.\x3/\x3/\x3/\x3/\x5/\x3BB\n/\x3/\x3/\x5/\x3BF\n/\x3/\x3"+ + "/\x3\x30\x3\x30\x5\x30\x3C5\n\x30\x3\x30\x3\x30\x5\x30\x3C9\n\x30\x3\x30"+ + "\x3\x30\x5\x30\x3CD\n\x30\x3\x30\x3\x30\x3\x31\x3\x31\x3\x31\x3\x31\x3"+ + "\x31\x3\x31\x3\x31\x3\x31\x3\x31\x3\x31\x5\x31\x3DB\n\x31\x3\x32\x3\x32"+ + "\x3\x32\x3\x32\x3\x32\x3\x32\x3\x32\x3\x32\x5\x32\x3E5\n\x32\x3\x32\x3"+ + "\x32\x5\x32\x3E9\n\x32\x3\x32\a\x32\x3EC\n\x32\f\x32\xE\x32\x3EF\v\x32"+ + "\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x3\x33\x5\x33\x3F9\n"+ + "\x33\x3\x33\x3\x33\x5\x33\x3FD\n\x33\x3\x33\a\x33\x400\n\x33\f\x33\xE"+ + "\x33\x403\v\x33\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34"+ + "\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34\x411\n\x34\x3\x34\x3\x34\x3\x34\x5"+ + "\x34\x416\n\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x3\x34\x5\x34"+ + "\x41F\n\x34\x3\x34\x3\x34\x5\x34\x423\n\x34\x3\x34\x3\x34\x5\x34\x427"+ + "\n\x34\x3\x35\x3\x35\x5\x35\x42B\n\x35\x3\x35\x3\x35\x5\x35\x42F\n\x35"+ + "\x3\x35\x5\x35\x432\n\x35\a\x35\x434\n\x35\f\x35\xE\x35\x437\v\x35\x3"+ + "\x35\x5\x35\x43A\n\x35\x3\x35\x5\x35\x43D\n\x35\x3\x35\x3\x35\x5\x35\x441"+ + "\n\x35\x3\x35\x5\x35\x444\n\x35\x6\x35\x446\n\x35\r\x35\xE\x35\x447\x5"+ + "\x35\x44A\n\x35\x3\x36\x3\x36\x3\x36\x5\x36\x44F\n\x36\x3\x36\x3\x36\x5"+ + "\x36\x453\n\x36\x3\x36\x3\x36\x5\x36\x457\n\x36\x3\x36\x3\x36\x5\x36\x45B"+ + "\n\x36\x5\x36\x45D\n\x36\x3\x37\x3\x37\x3\x37\x3\x37\x5\x37\x463\n\x37"+ + "\x3\x37\x3\x37\x5\x37\x467\n\x37\x3\x37\x5\x37\x46A\n\x37\x3\x38\x3\x38"+ + "\x3\x38\x5\x38\x46F\n\x38\x3\x38\x3\x38\x5\x38\x473\n\x38\x3\x38\x3\x38"+ + "\x3\x38\x3\x38\x5\x38\x479\n\x38\x3\x38\x5\x38\x47C\n\x38\x3\x38\x5\x38"+ + "\x47F\n\x38\x3\x38\x3\x38\x3\x38\x5\x38\x484\n\x38\x3\x38\x3\x38\x5\x38"+ + "\x488\n\x38\x3\x38\x3\x38\x3\x39\x3\x39\x3\x39\x5\x39\x48F\n\x39\x3\x39"+ + "\x3\x39\x5\x39\x493\n\x39\x3\x39\x3\x39\x3\x39\x3\x39\x5\x39\x499\n\x39"+ + "\x3\x39\x5\x39\x49C\n\x39\x3\x39\x3\x39\x5\x39\x4A0\n\x39\x3\x39\x3\x39"+ + "\x3:\x3:\x3:\x5:\x4A7\n:\x3:\x3:\x5:\x4AB\n:\x3:\x3:\x3:\x3:\x5:\x4B1"+ + "\n:\x3:\x5:\x4B4\n:\x3:\x3:\x5:\x4B8\n:\x3:\x3:\x3;\x3;\x3;\x3;\x5;\x4C0"+ + "\n;\x3;\x3;\x5;\x4C4\n;\x3;\x5;\x4C7\n;\x3;\x5;\x4CA\n;\x3;\x3;\x5;\x4CE"+ + "\n;\x3;\x3;\x3<\x3<\x3<\x3<\x5<\x4D6\n<\x3<\x3<\x5<\x4DA\n<\x3<\x3<\x5"+ + "<\x4DE\n<\x5<\x4E0\n<\x3<\x5<\x4E3\n<\x3=\x3=\x3=\x3=\x5=\x4E9\n=\x3="+ + "\x3=\x5=\x4ED\n=\x3=\x3=\x5=\x4F1\n=\x3=\a=\x4F4\n=\f=\xE=\x4F7\v=\x3"+ + ">\x3>\x5>\x4FB\n>\x3>\x3>\x5>\x4FF\n>\x3>\x3>\x5>\x503\n>\x3>\x3>\x3>"+ + "\x3>\x5>\x509\n>\x3?\x3?\x3@\x3@\x3@\x3@\x5@\x511\n@\x5@\x513\n@\x3\x41"+ + "\x3\x41\x3\x42\x3\x42\x3\x42\x3\x42\x5\x42\x51B\n\x42\x3\x42\x3\x42\x5"+ + "\x42\x51F\n\x42\x3\x42\x3\x42\x3\x43\x3\x43\x3\x44\x3\x44\x3\x44\x3\x44"+ + "\x5\x44\x529\n\x44\x3\x44\x3\x44\x5\x44\x52D\n\x44\x3\x44\x3\x44\x3\x45"+ + "\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\x3\x45\a\x45\x538\n\x45\f\x45\xE\x45"+ + "\x53B\v\x45\x3\x45\x3\x45\x3\x46\x3\x46\x5\x46\x541\n\x46\x3\x46\x3\x46"+ + "\x5\x46\x545\n\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3\x46\x3"+ + "\x46\x3\x46\x5\x46\x550\n\x46\x3G\x3G\x3G\x3G\x3G\x5G\x557\nG\x3H\x3H"+ + "\x3H\x5H\x55C\nH\x3H\x3H\x5H\x560\nH\x3H\aH\x563\nH\fH\xEH\x566\vH\x5"+ + "H\x568\nH\x3I\x3I\x3I\x3I\x5I\x56E\nI\x3I\x3I\x5I\x572\nI\x3I\x3I\x3J"+ + "\x3J\x3J\x5J\x579\nJ\x3J\x3J\x5J\x57D\nJ\x3J\x3J\x5J\x581\nJ\x3J\x3J\x5"+ + "J\x585\nJ\x3J\x5J\x588\nJ\x3J\x3J\x5J\x58C\nJ\x3J\x3J\x3K\x3K\x3L\x3L"+ + "\x3L\x5L\x595\nL\x3L\x3L\x3L\x3L\x3L\aL\x59C\nL\fL\xEL\x59F\vL\x3L\x3"+ + "L\x3M\x3M\x5M\x5A5\nM\x3M\x3M\x5M\x5A9\nM\x3M\x5M\x5AC\nM\x3M\x5M\x5AF"+ + "\nM\x3M\x5M\x5B2\nM\x3M\x3M\x3M\x5M\x5B7\nM\x3M\x3M\x3N\x3N\x3N\x3N\x5"+ + "N\x5BF\nN\x3N\x3N\x5N\x5C3\nN\x3N\x3N\x3N\x3N\x3N\x3N\x5N\x5CB\nN\x5N"+ + "\x5CD\nN\x3O\x3O\x3O\x5O\x5D2\nO\x3O\x3O\x3O\x5O\x5D7\nO\x3O\x3O\x3O\x5"+ + "O\x5DC\nO\x3O\x3O\x5O\x5E0\nO\x3O\x3O\x3O\x3O\x5O\x5E6\nO\x3O\x3O\x3O"+ + "\x5O\x5EB\nO\x3O\x3O\x3O\x3O\x3O\x5O\x5F2\nO\x3O\x3O\x5O\x5F6\nO\x3O\x3"+ + "O\x3O\x3O\x5O\x5FC\nO\x3O\x3O\x5O\x600\nO\x3O\x3O\x5O\x604\nO\x3O\x3O"+ + "\x3O\x5O\x609\nO\x3O\x3O\x5O\x60D\nO\x3O\x3O\x3O\x5O\x612\nO\x3O\x3O\x5"+ + "O\x616\nO\x3O\x3O\x3O\x5O\x61B\nO\x3O\x3O\x5O\x61F\nO\x3O\x3O\x3O\x5O"+ + "\x624\nO\x3O\x3O\x5O\x628\nO\x3O\x3O\x3O\x5O\x62D\nO\x3O\x3O\x5O\x631"+ + "\nO\x3O\x3O\x3O\x5O\x636\nO\x3O\x3O\x5O\x63A\nO\x3O\x3O\x3O\x5O\x63F\n"+ + "O\x3O\x3O\x5O\x643\nO\x3O\x3O\x3O\x5O\x648\nO\x3O\x3O\x5O\x64C\nO\x3O"+ + "\x3O\x3O\x5O\x651\nO\x3O\x3O\x5O\x655\nO\x3O\x3O\x3O\x5O\x65A\nO\x3O\x3"+ + "O\x5O\x65E\nO\x3O\x3O\x3O\x5O\x663\nO\x3O\x3O\x5O\x667\nO\x3O\aO\x66A"+ + "\nO\fO\xEO\x66D\vO\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x3P\x5P\x677\nP\x3Q\x3"+ + "Q\x3Q\x5Q\x67C\nQ\x3Q\x3Q\x3Q\x5Q\x681\nQ\x3Q\x3Q\x3R\x3R\x5R\x687\nR"+ + "\x3R\x3R\x5R\x68B\nR\x3R\aR\x68E\nR\fR\xER\x691\vR\x3S\x3S\x5S\x695\n"+ + "S\x3S\x3S\x5S\x699\nS\x3S\x3S\x5S\x69D\nS\x5S\x69F\nS\x3S\x3S\x5S\x6A3"+ + "\nS\x5S\x6A5\nS\x3S\x5S\x6A8\nS\x3S\x3S\x3S\x5S\x6AD\nS\x3T\x3T\x3T\x3"+ + "T\x3T\x5T\x6B4\nT\x3T\x3T\x3U\x3U\x3U\x3U\x5U\x6BC\nU\x3U\x3U\x5U\x6C0"+ + "\nU\x3U\x3U\x3V\x3V\x3V\x3V\x3V\x5V\x6C9\nV\x3V\x3V\x3W\x3W\x3X\x3X\x3"+ + "X\x3X\x5X\x6D3\nX\x3X\x3X\x5X\x6D7\nX\x3X\x5X\x6DA\nX\x3Y\x5Y\x6DD\nY"+ + "\x3Y\x3Y\x3Z\x3Z\x3Z\x3Z\x3[\x5[\x6E6\n[\x3[\x3[\x3[\x5[\x6EB\n[\x3[\x5"+ + "[\x6EE\n[\x3[\x3[\x5[\x6F2\n[\x3[\x3[\x5[\x6F6\n[\x3[\x3[\x5[\x6FA\n["+ + "\x3[\x5[\x6FD\n[\x3[\x3[\x3[\x3[\a[\x703\n[\f[\xE[\x706\v[\x3[\x3[\x5"+ + "[\x70A\n[\x3[\x5[\x70D\n[\x3[\x3[\x5[\x711\n[\x3[\x3[\x5[\x715\n[\x3["+ + "\x3[\x5[\x719\n[\x3[\x5[\x71C\n[\x3[\x3[\x3[\x3[\a[\x722\n[\f[\xE[\x725"+ + "\v[\x5[\x727\n[\x3\\\x3\\\x5\\\x72B\n\\\x3]\x5]\x72E\n]\x3]\x5]\x731\n"+ + "]\x3]\x3]\x5]\x735\n]\x3]\x3]\x5]\x739\n]\x3]\x3]\x3]\x5]\x73E\n]\x3]"+ + "\x5]\x741\n]\x3]\x5]\x744\n]\x3]\x5]\x747\n]\x3]\x3]\x3]\x3]\a]\x74D\n"+ + "]\f]\xE]\x750\v]\x3^\x3^\x3^\x3^\x5^\x756\n^\x3^\x5^\x759\n^\x3^\x3^\x3"+ + "^\x3^\a^\x75F\n^\f^\xE^\x762\v^\x3_\x3_\x3_\x3_\x5_\x768\n_\x3`\x3`\x5"+ + "`\x76C\n`\x3`\x5`\x76F\n`\x3`\x5`\x772\n`\x3`\x5`\x775\n`\x3`\x3`\x3`"+ + "\x3`\a`\x77B\n`\f`\xE`\x77E\v`\x3\x61\x3\x61\x5\x61\x782\n\x61\x3\x61"+ + "\x5\x61\x785\n\x61\x3\x61\x5\x61\x788\n\x61\x3\x61\x3\x61\x5\x61\x78C"+ + "\n\x61\x3\x61\x3\x61\x5\x61\x790\n\x61\x5\x61\x792\n\x61\x3\x61\x3\x61"+ + "\x5\x61\x796\n\x61\x3\x61\x5\x61\x799\n\x61\x3\x61\x5\x61\x79C\n\x61\x3"+ + "\x61\x3\x61\x3\x61\x3\x61\a\x61\x7A2\n\x61\f\x61\xE\x61\x7A5\v\x61\x3"+ + "\x62\x3\x62\x5\x62\x7A9\n\x62\x3\x62\x5\x62\x7AC\n\x62\x3\x62\x5\x62\x7AF"+ + "\n\x62\x3\x62\x5\x62\x7B2\n\x62\x3\x62\x3\x62\x3\x62\x3\x62\a\x62\x7B8"+ + "\n\x62\f\x62\xE\x62\x7BB\v\x62\x3\x63\x3\x63\x5\x63\x7BF\n\x63\x3\x63"+ + "\x5\x63\x7C2\n\x63\x3\x63\x5\x63\x7C5\n\x63\x3\x63\x3\x63\x5\x63\x7C9"+ + "\n\x63\x3\x63\x3\x63\x5\x63\x7CD\n\x63\x5\x63\x7CF\n\x63\x3\x63\x3\x63"+ + "\x5\x63\x7D3\n\x63\x3\x63\x5\x63\x7D6\n\x63\x3\x63\x5\x63\x7D9\n\x63\x3"+ + "\x63\x3\x63\x3\x63\x3\x63\a\x63\x7DF\n\x63\f\x63\xE\x63\x7E2\v\x63\x3"+ + "\x64\x3\x64\x5\x64\x7E6\n\x64\x3\x64\x3\x64\x5\x64\x7EA\n\x64\x6\x64\x7EC"+ + "\n\x64\r\x64\xE\x64\x7ED\x3\x64\x5\x64\x7F1\n\x64\x3\x64\x5\x64\x7F4\n"+ + "\x64\x3\x64\x5\x64\x7F7\n\x64\x3\x64\x3\x64\x3\x64\x3\x64\a\x64\x7FD\n"+ + "\x64\f\x64\xE\x64\x800\v\x64\x3\x65\x3\x65\x5\x65\x804\n\x65\x3\x65\x3"+ + "\x65\x5\x65\x808\n\x65\x3\x66\x5\x66\x80B\n\x66\x3\x66\x3\x66\x3g\x5g"+ + "\x810\ng\x3g\x5g\x813\ng\x3g\x3g\x5g\x817\ng\ag\x819\ng\fg\xEg\x81C\v"+ + "g\x3g\x3g\x5g\x820\ng\x3g\x3g\x5g\x824\ng\x3g\x5g\x827\ng\ag\x829\ng\f"+ + "g\xEg\x82C\vg\x3h\x5h\x82F\nh\x3h\x3h\x5h\x833\nh\x3h\x5h\x836\nh\x3h"+ + "\x3h\x3i\x3i\x5i\x83C\ni\x3i\x3i\x5i\x840\ni\x3j\x3j\x5j\x844\nj\x3j\x3"+ + "j\x5j\x848\nj\x3j\x3j\x5j\x84C\nj\x3j\aj\x84F\nj\fj\xEj\x852\vj\x5j\x854"+ + "\nj\x3j\x5j\x857\nj\x3j\x3j\x3k\x3k\x5k\x85D\nk\x3k\x3k\x5k\x861\nk\x3"+ + "k\x3k\x5k\x865\nk\x3k\x3k\x5k\x869\nk\x3k\x5k\x86C\nk\x3k\x3k\x5k\x870"+ + "\nk\x3k\x5k\x873\nk\x3k\x5k\x876\nk\x3k\x5k\x879\nk\x3k\x5k\x87C\nk\x3"+ + "k\x5k\x87F\nk\x3l\x3l\x5l\x883\nl\x3l\x3l\x3m\x3m\x5m\x889\nm\x3m\x3m"+ + "\x5m\x88D\nm\x3m\am\x890\nm\fm\xEm\x893\vm\x3n\x3n\x3n\x3n\x3n\x5n\x89A"+ + "\nn\x3n\x3n\x3o\x3o\x3o\x5o\x8A1\no\x3p\x3p\x5p\x8A5\np\x3q\x3q\x5q\x8A9"+ + "\nq\x3q\x3q\x5q\x8AD\nq\x3q\x3q\x5q\x8B1\nq\x3q\x5q\x8B4\nq\x3r\x3r\x3"+ + "s\x3s\x3t\x3t\x3t\at\x8BD\nt\ft\xEt\x8C0\vt\x3u\x3u\x5u\x8C4\nu\x3u\x3"+ + "u\x5u\x8C8\nu\x3v\x3v\x5v\x8CC\nv\x3v\x3v\x5v\x8D0\nv\x3v\x5v\x8D3\nv"+ + "\x3w\x3w\x5w\x8D7\nw\x3w\x3w\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x3x\x5x\x8E3"+ + "\nx\x3y\x3y\x3z\x3z\x5z\x8E9\nz\x3z\x5z\x8EC\nz\x3z\x3z\x5z\x8F0\nz\x3"+ + "z\x5z\x8F3\nz\x3{\x3{\x3|\x3|\x3}\x3}\x3~\x3~\x3\x7F\x3\x7F\x3\x80\x5"+ + "\x80\x900\n\x80\x3\x80\x6\x80\x903\n\x80\r\x80\xE\x80\x904\x3\x80\x3\x80"+ + "\x5\x80\x909\n\x80\x3\x80\x5\x80\x90C\n\x80\x3\x80\x5\x80\x90F\n\x80\x3"+ + "\x80\x5\x80\x912\n\x80\x3\x81\x3\x81\x5\x81\x916\n\x81\x3\x81\x3\x81\x5"+ + "\x81\x91A\n\x81\a\x81\x91C\n\x81\f\x81\xE\x81\x91F\v\x81\x3\x82\x3\x82"+ + "\x3\x83\x3\x83\x3\x84\x3\x84\x6\x84\x927\n\x84\r\x84\xE\x84\x928\x3\x85"+ + "\x3\x85\x3\x85\x5\x85\x92E\n\x85\x3\x86\x3\x86\x3\x87\x3\x87\x3\x87\x5"+ + "\x87\x935\n\x87\x3\x87\x3\x87\x3\x87\x5\x87\x93A\n\x87\x3\x87\x3\x87\x5"+ + "\x87\x93E\n\x87\x3\x87\x6\x87\x941\n\x87\r\x87\xE\x87\x942\x3\x87\x5\x87"+ + "\x946\n\x87\x3\x87\x5\x87\x949\n\x87\x3\x87\x3\x87\x5\x87\x94D\n\x87\x3"+ + "\x87\x3\x87\x5\x87\x951\n\x87\x3\x87\x3\x87\x5\x87\x955\n\x87\x3\x87\x5"+ + "\x87\x958\n\x87\x3\x87\x3\x87\x3\x87\x5\x87\x95D\n\x87\x3\x87\x3\x87\x5"+ + "\x87\x961\n\x87\x3\x87\x6\x87\x964\n\x87\r\x87\xE\x87\x965\x3\x87\x5\x87"+ + "\x969\n\x87\x3\x87\x3\x87\x5\x87\x96D\n\x87\x5\x87\x96F\n\x87\x3\x88\x3"+ + "\x88\x3\x89\x6\x89\x974\n\x89\r\x89\xE\x89\x975\x3\x89\x2\x2\x3\x9C\x8A"+ + "\x2\x2\x4\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18"+ + "\x2\x1A\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2*\x2,\x2.\x2\x30\x2\x32\x2"+ + "\x34\x2\x36\x2\x38\x2:\x2<\x2>\x2@\x2\x42\x2\x44\x2\x46\x2H\x2J\x2L\x2"+ + "N\x2P\x2R\x2T\x2V\x2X\x2Z\x2\\\x2^\x2`\x2\x62\x2\x64\x2\x66\x2h\x2j\x2"+ + "l\x2n\x2p\x2r\x2t\x2v\x2x\x2z\x2|\x2~\x2\x80\x2\x82\x2\x84\x2\x86\x2\x88"+ + "\x2\x8A\x2\x8C\x2\x8E\x2\x90\x2\x92\x2\x94\x2\x96\x2\x98\x2\x9A\x2\x9C"+ + "\x2\x9E\x2\xA0\x2\xA2\x2\xA4\x2\xA6\x2\xA8\x2\xAA\x2\xAC\x2\xAE\x2\xB0"+ + "\x2\xB2\x2\xB4\x2\xB6\x2\xB8\x2\xBA\x2\xBC\x2\xBE\x2\xC0\x2\xC2\x2\xC4"+ + "\x2\xC6\x2\xC8\x2\xCA\x2\xCC\x2\xCE\x2\xD0\x2\xD2\x2\xD4\x2\xD6\x2\xD8"+ + "\x2\xDA\x2\xDC\x2\xDE\x2\xE0\x2\xE2\x2\xE4\x2\xE6\x2\xE8\x2\xEA\x2\xEC"+ + "\x2\xEE\x2\xF0\x2\xF2\x2\xF4\x2\xF6\x2\xF8\x2\xFA\x2\xFC\x2\xFE\x2\x100"+ + "\x2\x102\x2\x104\x2\x106\x2\x108\x2\x10A\x2\x10C\x2\x10E\x2\x110\x2\x2"+ + "\x1A\x5\x2;;\x45\x45\xBC\xBC\x3\x2HT\x4\x2\xC3\xC3\xC7\xC7\x3\x2jn\x3"+ + "\x2\x92\x93\a\x2\x38\x38;;{{\x9B\x9B\xA6\xA6\x4\x2\xA8\xA9\xCB\xCB\x4"+ + "\x2\x85\x87\xB3\xB3\x4\x2))++\x4\x2\xB5\xB5\xBB\xBB\x4\x2\xCE\xCE\xD7"+ + "\xD7\x4\x2\xD6\xD6\xD9\xD9\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2"+ + ",-\x4\x2=>\x9C\x9C\x3\x2=>\r\x2\x13\x13\x1F <\x300\x3\x2\x2\x2@\x320"+ + "\x3\x2\x2\x2\x42\x322\x3\x2\x2\x2\x44\x338\x3\x2\x2\x2\x46\x33C\x3\x2"+ + "\x2\x2H\x35A\x3\x2\x2\x2J\x35C\x3\x2\x2\x2L\x365\x3\x2\x2\x2N\x367\x3"+ + "\x2\x2\x2P\x370\x3\x2\x2\x2R\x375\x3\x2\x2\x2T\x379\x3\x2\x2\x2V\x38A"+ + "\x3\x2\x2\x2X\x396\x3\x2\x2\x2Z\x3A2\x3\x2\x2\x2\\\x3B6\x3\x2\x2\x2^\x3C2"+ + "\x3\x2\x2\x2`\x3D0\x3\x2\x2\x2\x62\x3DC\x3\x2\x2\x2\x64\x3F0\x3\x2\x2"+ + "\x2\x66\x404\x3\x2\x2\x2h\x449\x3\x2\x2\x2j\x45C\x3\x2\x2\x2l\x45E\x3"+ + "\x2\x2\x2n\x46E\x3\x2\x2\x2p\x48E\x3\x2\x2\x2r\x4A6\x3\x2\x2\x2t\x4BB"+ + "\x3\x2\x2\x2v\x4D1\x3\x2\x2\x2x\x4E4\x3\x2\x2\x2z\x4F8\x3\x2\x2\x2|\x50A"+ + "\x3\x2\x2\x2~\x50C\x3\x2\x2\x2\x80\x514\x3\x2\x2\x2\x82\x516\x3\x2\x2"+ + "\x2\x84\x522\x3\x2\x2\x2\x86\x524\x3\x2\x2\x2\x88\x530\x3\x2\x2\x2\x8A"+ + "\x54F\x3\x2\x2\x2\x8C\x551\x3\x2\x2\x2\x8E\x567\x3\x2\x2\x2\x90\x569\x3"+ + "\x2\x2\x2\x92\x578\x3\x2\x2\x2\x94\x58F\x3\x2\x2\x2\x96\x594\x3\x2\x2"+ + "\x2\x98\x5A2\x3\x2\x2\x2\x9A\x5BA\x3\x2\x2\x2\x9C\x5FB\x3\x2\x2\x2\x9E"+ + "\x66E\x3\x2\x2\x2\xA0\x67B\x3\x2\x2\x2\xA2\x684\x3\x2\x2\x2\xA4\x692\x3"+ + "\x2\x2\x2\xA6\x6AE\x3\x2\x2\x2\xA8\x6B7\x3\x2\x2\x2\xAA\x6C3\x3\x2\x2"+ + "\x2\xAC\x6CC\x3\x2\x2\x2\xAE\x6CE\x3\x2\x2\x2\xB0\x6DC\x3\x2\x2\x2\xB2"+ + "\x6E0\x3\x2\x2\x2\xB4\x726\x3\x2\x2\x2\xB6\x72A\x3\x2\x2\x2\xB8\x72D\x3"+ + "\x2\x2\x2\xBA\x751\x3\x2\x2\x2\xBC\x767\x3\x2\x2\x2\xBE\x769\x3\x2\x2"+ + "\x2\xC0\x781\x3\x2\x2\x2\xC2\x7A6\x3\x2\x2\x2\xC4\x7BE\x3\x2\x2\x2\xC6"+ + "\x7E5\x3\x2\x2\x2\xC8\x801\x3\x2\x2\x2\xCA\x80A\x3\x2\x2\x2\xCC\x81A\x3"+ + "\x2\x2\x2\xCE\x82E\x3\x2\x2\x2\xD0\x839\x3\x2\x2\x2\xD2\x841\x3\x2\x2"+ + "\x2\xD4\x85C\x3\x2\x2\x2\xD6\x880\x3\x2\x2\x2\xD8\x886\x3\x2\x2\x2\xDA"+ + "\x899\x3\x2\x2\x2\xDC\x8A0\x3\x2\x2\x2\xDE\x8A4\x3\x2\x2\x2\xE0\x8A6\x3"+ + "\x2\x2\x2\xE2\x8B5\x3\x2\x2\x2\xE4\x8B7\x3\x2\x2\x2\xE6\x8B9\x3\x2\x2"+ + "\x2\xE8\x8C1\x3\x2\x2\x2\xEA\x8C9\x3\x2\x2\x2\xEC\x8D6\x3\x2\x2\x2\xEE"+ + "\x8E2\x3\x2\x2\x2\xF0\x8E4\x3\x2\x2\x2\xF2\x8E8\x3\x2\x2\x2\xF4\x8F4\x3"+ + "\x2\x2\x2\xF6\x8F6\x3\x2\x2\x2\xF8\x8F8\x3\x2\x2\x2\xFA\x8FA\x3\x2\x2"+ + "\x2\xFC\x8FC\x3\x2\x2\x2\xFE\x911\x3\x2\x2\x2\x100\x91D\x3\x2\x2\x2\x102"+ + "\x920\x3\x2\x2\x2\x104\x922\x3\x2\x2\x2\x106\x924\x3\x2\x2\x2\x108\x92A"+ + "\x3\x2\x2\x2\x10A\x92F\x3\x2\x2\x2\x10C\x96E\x3\x2\x2\x2\x10E\x970\x3"+ + "\x2\x2\x2\x110\x973\x3\x2\x2\x2\x112\x113\x5\x4\x3\x2\x113\x114\a\x2\x2"+ + "\x3\x114\x3\x3\x2\x2\x2\x115\x117\x5\x110\x89\x2\x116\x115\x3\x2\x2\x2"+ + "\x116\x117\x3\x2\x2\x2\x117\x118\x3\x2\x2\x2\x118\x11C\x5\x100\x81\x2"+ + "\x119\x11A\x5\x6\x4\x2\x11A\x11B\x5\x100\x81\x2\x11B\x11D\x3\x2\x2\x2"+ + "\x11C\x119\x3\x2\x2\x2\x11C\x11D\x3\x2\x2\x2\x11D\x11F\x3\x2\x2\x2\x11E"+ + "\x120\x5\b\x5\x2\x11F\x11E\x3\x2\x2\x2\x11F\x120\x3\x2\x2\x2\x120\x121"+ + "\x3\x2\x2\x2\x121\x123\x5\x100\x81\x2\x122\x124\x5\f\a\x2\x123\x122\x3"+ + "\x2\x2\x2\x123\x124\x3\x2\x2\x2\x124\x125\x3\x2\x2\x2\x125\x127\x5\x100"+ + "\x81\x2\x126\x128\x5\xE\b\x2\x127\x126\x3\x2\x2\x2\x127\x128\x3\x2\x2"+ + "\x2\x128\x129\x3\x2\x2\x2\x129\x12B\x5\x100\x81\x2\x12A\x12C\x5\x14\v"+ + "\x2\x12B\x12A\x3\x2\x2\x2\x12B\x12C\x3\x2\x2\x2\x12C\x12D\x3\x2\x2\x2"+ + "\x12D\x12F\x5\x100\x81\x2\x12E\x130\x5\x110\x89\x2\x12F\x12E\x3\x2\x2"+ + "\x2\x12F\x130\x3\x2\x2\x2\x130\x5\x3\x2\x2\x2\x131\x132\a\xC5\x2\x2\x132"+ + "\x133\x5\x110\x89\x2\x133\x135\x5\xF0y\x2\x134\x136\x5\x110\x89\x2\x135"+ + "\x134\x3\x2\x2\x2\x135\x136\x3\x2\x2\x2\x136\x138\x3\x2\x2\x2\x137\x139"+ + "\a\x42\x2\x2\x138\x137\x3\x2\x2\x2\x138\x139\x3\x2\x2\x2\x139\x13A\x3"+ + "\x2\x2\x2\x13A\x13B\x5\x100\x81\x2\x13B\a\x3\x2\x2\x2\x13C\x144\a:\x2"+ + "\x2\x13D\x13E\x5\x110\x89\x2\x13E\x13F\a\xF1\x2\x2\x13F\x140\x5\x110\x89"+ + "\x2\x140\x142\x5\xDCo\x2\x141\x143\x5\x110\x89\x2\x142\x141\x3\x2\x2\x2"+ + "\x142\x143\x3\x2\x2\x2\x143\x145\x3\x2\x2\x2\x144\x13D\x3\x2\x2\x2\x144"+ + "\x145\x3\x2\x2\x2\x145\x146\x3\x2\x2\x2\x146\x148\x5\x100\x81\x2\x147"+ + "\x149\x5\n\x6\x2\x148\x147\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2\x14A\x148"+ + "\x3\x2\x2\x2\x14A\x14B\x3\x2\x2\x2\x14B\x14C\x3\x2\x2\x2\x14C\x14D\a\x64"+ + "\x2\x2\x14D\t\x3\x2\x2\x2\x14E\x152\x5\xDCo\x2\x14F\x151\x5\x110\x89\x2"+ + "\x150\x14F\x3\x2\x2\x2\x151\x154\x3\x2\x2\x2\x152\x150\x3\x2\x2\x2\x152"+ + "\x153\x3\x2\x2\x2\x153\x155\x3\x2\x2\x2\x154\x152\x3\x2\x2\x2\x155\x159"+ + "\a\xD0\x2\x2\x156\x158\x5\x110\x89\x2\x157\x156\x3\x2\x2\x2\x158\x15B"+ + "\x3\x2\x2\x2\x159\x157\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2\x15A\x15C\x3"+ + "\x2\x2\x2\x15B\x159\x3\x2\x2\x2\x15C\x15F\x5\x9CO\x2\x15D\x15E\a*\x2\x2"+ + "\x15E\x160\x5\xF0y\x2\x15F\x15D\x3\x2\x2\x2\x15F\x160\x3\x2\x2\x2\x160"+ + "\x161\x3\x2\x2\x2\x161\x162\x5\x100\x81\x2\x162\v\x3\x2\x2\x2\x163\x164"+ + "\x5\x18\r\x2\x164\x165\x5\x100\x81\x2\x165\x167\x3\x2\x2\x2\x166\x163"+ + "\x3\x2\x2\x2\x167\x168\x3\x2\x2\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3"+ + "\x2\x2\x2\x169\r\x3\x2\x2\x2\x16A\x170\x5\x12\n\x2\x16B\x16C\x5\x100\x81"+ + "\x2\x16C\x16D\x5\x12\n\x2\x16D\x16F\x3\x2\x2\x2\x16E\x16B\x3\x2\x2\x2"+ + "\x16F\x172\x3\x2\x2\x2\x170\x16E\x3\x2\x2\x2\x170\x171\x3\x2\x2\x2\x171"+ + "\x173\x3\x2\x2\x2\x172\x170\x3\x2\x2\x2\x173\x174\x5\x100\x81\x2\x174"+ + "\xF\x3\x2\x2\x2\x175\x176\a\x96\x2\x2\x176\x177\x5\x110\x89\x2\x177\x178"+ + "\x5\xF0y\x2\x178\x180\x3\x2\x2\x2\x179\x17A\a\x98\x2\x2\x17A\x17B\x5\x110"+ + "\x89\x2\x17B\x17C\t\x2\x2\x2\x17C\x180\x3\x2\x2\x2\x17D\x180\a\x97\x2"+ + "\x2\x17E\x180\a\x99\x2\x2\x17F\x175\x3\x2\x2\x2\x17F\x179\x3\x2\x2\x2"+ + "\x17F\x17D\x3\x2\x2\x2\x17F\x17E\x3\x2\x2\x2\x180\x11\x3\x2\x2\x2\x181"+ + "\x18A\x5(\x15\x2\x182\x18A\x5.\x18\x2\x183\x18A\x5\x36\x1C\x2\x184\x18A"+ + "\x5$\x13\x2\x185\x18A\x5R*\x2\x186\x18A\x5\xA0Q\x2\x187\x18A\x5\x10\t"+ + "\x2\x188\x18A\x5\x96L\x2\x189\x181\x3\x2\x2\x2\x189\x182\x3\x2\x2\x2\x189"+ + "\x183\x3\x2\x2\x2\x189\x184\x3\x2\x2\x2\x189\x185\x3\x2\x2\x2\x189\x186"+ + "\x3\x2\x2\x2\x189\x187\x3\x2\x2\x2\x189\x188\x3\x2\x2\x2\x18A\x13\x3\x2"+ + "\x2\x2\x18B\x191\x5\x16\f\x2\x18C\x18D\x5\x100\x81\x2\x18D\x18E\x5\x16"+ + "\f\x2\x18E\x190\x3\x2\x2\x2\x18F\x18C\x3\x2\x2\x2\x190\x193\x3\x2\x2\x2"+ + "\x191\x18F\x3\x2\x2\x2\x191\x192\x3\x2\x2\x2\x192\x194\x3\x2\x2\x2\x193"+ + "\x191\x3\x2\x2\x2\x194\x195\x5\x100\x81\x2\x195\x15\x3\x2\x2\x2\x196\x19C"+ + "\x5> \x2\x197\x19C\x5n\x38\x2\x198\x19C\x5p\x39\x2\x199\x19C\x5r:\x2\x19A"+ + "\x19C\x5\x92J\x2\x19B\x196\x3\x2\x2\x2\x19B\x197\x3\x2\x2\x2\x19B\x198"+ + "\x3\x2\x2\x2\x19B\x199\x3\x2\x2\x2\x19B\x19A\x3\x2\x2\x2\x19C\x17\x3\x2"+ + "\x2\x2\x19D\x19E\a\x37\x2\x2\x19E\x19F\x5\x110\x89\x2\x19F\x1A1\x5\x1A"+ + "\xE\x2\x1A0\x1A2\x5\x110\x89\x2\x1A1\x1A0\x3\x2\x2\x2\x1A1\x1A2\x3\x2"+ + "\x2\x2\x1A2\x1A3\x3\x2\x2\x2\x1A3\x1A5\a\xD0\x2\x2\x1A4\x1A6\x5\x110\x89"+ + "\x2\x1A5\x1A4\x3\x2\x2\x2\x1A5\x1A6\x3\x2\x2\x2\x1A6\x1A7\x3\x2\x2\x2"+ + "\x1A7\x1B2\x5\x1C\xF\x2\x1A8\x1AA\x5\x110\x89\x2\x1A9\x1A8\x3\x2\x2\x2"+ + "\x1A9\x1AA\x3\x2\x2\x2\x1AA\x1AB\x3\x2\x2\x2\x1AB\x1AD\a)\x2\x2\x1AC\x1AE"+ + "\x5\x110\x89\x2\x1AD\x1AC\x3\x2\x2\x2\x1AD\x1AE\x3\x2\x2\x2\x1AE\x1AF"+ + "\x3\x2\x2\x2\x1AF\x1B1\x5\x1C\xF\x2\x1B0\x1A9\x3\x2\x2\x2\x1B1\x1B4\x3"+ + "\x2\x2\x2\x1B2\x1B0\x3\x2\x2\x2\x1B2\x1B3\x3\x2\x2\x2\x1B3\x19\x3\x2\x2"+ + "\x2\x1B4\x1B2\x3\x2\x2\x2\x1B5\x1B6\x5\xBC_\x2\x1B6\x1B\x3\x2\x2\x2\x1B7"+ + "\x1B8\x5\x9CO\x2\x1B8\x1D\x3\x2\x2\x2\x1B9\x1BF\x5 \x11\x2\x1BA\x1BB\x5"+ + "\x100\x81\x2\x1BB\x1BC\x5 \x11\x2\x1BC\x1BE\x3\x2\x2\x2\x1BD\x1BA\x3\x2"+ + "\x2\x2\x1BE\x1C1\x3\x2\x2\x2\x1BF\x1BD\x3\x2\x2\x2\x1BF\x1C0\x3\x2\x2"+ + "\x2\x1C0\x1C2\x3\x2\x2\x2\x1C1\x1BF\x3\x2\x2\x2\x1C2\x1C3\x5\x100\x81"+ + "\x2\x1C3\x1F\x3\x2\x2\x2\x1C4\x1F3\x5\xECw\x2\x1C5\x1F3\x5\x18\r\x2\x1C6"+ + "\x1F3\x5\"\x12\x2\x1C7\x1F3\x5$\x13\x2\x1C8\x1F3\x5*\x16\x2\x1C9\x1F3"+ + "\x5,\x17\x2\x1CA\x1F3\x5\x32\x1A\x2\x1CB\x1F3\x5\x34\x1B\x2\x1CC\x1F3"+ + "\x5\x38\x1D\x2\x1CD\x1F3\x5\xB2Z\x2\x1CE\x1F3\x5:\x1E\x2\x1CF\x1F3\x5"+ + "<\x1F\x2\x1D0\x1F3\x5\x42\"\x2\x1D1\x1F3\x5\x44#\x2\x1D2\x1F3\x5\x46$"+ + "\x2\x1D3\x1F3\x5H%\x2\x1D4\x1F3\x5R*\x2\x1D5\x1F3\x5T+\x2\x1D6\x1F3\x5"+ + "V,\x2\x1D7\x1F3\x5X-\x2\x1D8\x1F3\x5Z.\x2\x1D9\x1F3\x5\\/\x2\x1DA\x1F3"+ + "\x5^\x30\x2\x1DB\x1F3\x5`\x31\x2\x1DC\x1F3\x5\x62\x32\x2\x1DD\x1F3\x5"+ + "\x64\x33\x2\x1DE\x1F3\x5\x66\x34\x2\x1DF\x1F3\x5l\x37\x2\x1E0\x1F3\x5"+ + "t;\x2\x1E1\x1F3\x5v<\x2\x1E2\x1F3\x5x=\x2\x1E3\x1F3\x5|?\x2\x1E4\x1F3"+ + "\x5~@\x2\x1E5\x1F3\x5\x80\x41\x2\x1E6\x1F3\x5\x82\x42\x2\x1E7\x1F3\x5"+ + "\x86\x44\x2\x1E8\x1F3\x5\x88\x45\x2\x1E9\x1F3\x5\x90I\x2\x1EA\x1F3\x5"+ + "\x84\x43\x2\x1EB\x1F3\x5\x9AN\x2\x1EC\x1F3\x5\xA0Q\x2\x1ED\x1F3\x5\xA6"+ + "T\x2\x1EE\x1F3\x5\xA8U\x2\x1EF\x1F3\x5\xAAV\x2\x1F0\x1F3\x5\xAEX\x2\x1F1"+ + "\x1F3\x5\xB6\\\x2\x1F2\x1C4\x3\x2\x2\x2\x1F2\x1C5\x3\x2\x2\x2\x1F2\x1C6"+ + "\x3\x2\x2\x2\x1F2\x1C7\x3\x2\x2\x2\x1F2\x1C8\x3\x2\x2\x2\x1F2\x1C9\x3"+ + "\x2\x2\x2\x1F2\x1CA\x3\x2\x2\x2\x1F2\x1CB\x3\x2\x2\x2\x1F2\x1CC\x3\x2"+ + "\x2\x2\x1F2\x1CD\x3\x2\x2\x2\x1F2\x1CE\x3\x2\x2\x2\x1F2\x1CF\x3\x2\x2"+ + "\x2\x1F2\x1D0\x3\x2\x2\x2\x1F2\x1D1\x3\x2\x2\x2\x1F2\x1D2\x3\x2\x2\x2"+ + "\x1F2\x1D3\x3\x2\x2\x2\x1F2\x1D4\x3\x2\x2\x2\x1F2\x1D5\x3\x2\x2\x2\x1F2"+ + "\x1D6\x3\x2\x2\x2\x1F2\x1D7\x3\x2\x2\x2\x1F2\x1D8\x3\x2\x2\x2\x1F2\x1D9"+ + "\x3\x2\x2\x2\x1F2\x1DA\x3\x2\x2\x2\x1F2\x1DB\x3\x2\x2\x2\x1F2\x1DC\x3"+ + "\x2\x2\x2\x1F2\x1DD\x3\x2\x2\x2\x1F2\x1DE\x3\x2\x2\x2\x1F2\x1DF\x3\x2"+ + "\x2\x2\x1F2\x1E0\x3\x2\x2\x2\x1F2\x1E1\x3\x2\x2\x2\x1F2\x1E2\x3\x2\x2"+ + "\x2\x1F2\x1E3\x3\x2\x2\x2\x1F2\x1E4\x3\x2\x2\x2\x1F2\x1E5\x3\x2\x2\x2"+ + "\x1F2\x1E6\x3\x2\x2\x2\x1F2\x1E7\x3\x2\x2\x2\x1F2\x1E8\x3\x2\x2\x2\x1F2"+ + "\x1E9\x3\x2\x2\x2\x1F2\x1EA\x3\x2\x2\x2\x1F2\x1EB\x3\x2\x2\x2\x1F2\x1EC"+ + "\x3\x2\x2\x2\x1F2\x1ED\x3\x2\x2\x2\x1F2\x1EE\x3\x2\x2\x2\x1F2\x1EF\x3"+ + "\x2\x2\x2\x1F2\x1F0\x3\x2\x2\x2\x1F2\x1F1\x3\x2\x2\x2\x1F3!\x3\x2\x2\x2"+ + "\x1F4\x204\a\x43\x2\x2\x1F5\x1F6\x5\x110\x89\x2\x1F6\x201\x5\xB0Y\x2\x1F7"+ + "\x1F9\x5\x110\x89\x2\x1F8\x1F7\x3\x2\x2\x2\x1F8\x1F9\x3\x2\x2\x2\x1F9"+ + "\x1FA\x3\x2\x2\x2\x1FA\x1FC\a)\x2\x2\x1FB\x1FD\x5\x110\x89\x2\x1FC\x1FB"+ + "\x3\x2\x2\x2\x1FC\x1FD\x3\x2\x2\x2\x1FD\x1FE\x3\x2\x2\x2\x1FE\x200\x5"+ + "\xB0Y\x2\x1FF\x1F8\x3\x2\x2\x2\x200\x203\x3\x2\x2\x2\x201\x1FF\x3\x2\x2"+ + "\x2\x201\x202\x3\x2\x2\x2\x202\x205\x3\x2\x2\x2\x203\x201\x3\x2\x2\x2"+ + "\x204\x1F5\x3\x2\x2\x2\x204\x205\x3\x2\x2\x2\x205#\x3\x2\x2\x2\x206\x207"+ + "\x5\xF6|\x2\x207\x208\x5\x110\x89\x2\x208\x20A\x3\x2\x2\x2\x209\x206\x3"+ + "\x2\x2\x2\x209\x20A\x3\x2\x2\x2\x20A\x20B\x3\x2\x2\x2\x20B\x20C\a\x44"+ + "\x2\x2\x20C\x20D\x5\x110\x89\x2\x20D\x218\x5&\x14\x2\x20E\x210\x5\x110"+ + "\x89\x2\x20F\x20E\x3\x2\x2\x2\x20F\x210\x3\x2\x2\x2\x210\x211\x3\x2\x2"+ + "\x2\x211\x213\a)\x2\x2\x212\x214\x5\x110\x89\x2\x213\x212\x3\x2\x2\x2"+ + "\x213\x214\x3\x2\x2\x2\x214\x215\x3\x2\x2\x2\x215\x217\x5&\x14\x2\x216"+ + "\x20F\x3\x2\x2\x2\x217\x21A\x3\x2\x2\x2\x218\x216\x3\x2\x2\x2\x218\x219"+ + "\x3\x2\x2\x2\x219%\x3\x2\x2\x2\x21A\x218\x3\x2\x2\x2\x21B\x21D\x5\xDE"+ + "p\x2\x21C\x21E\x5\xF4{\x2\x21D\x21C\x3\x2\x2\x2\x21D\x21E\x3\x2\x2\x2"+ + "\x21E\x222\x3\x2\x2\x2\x21F\x220\x5\x110\x89\x2\x220\x221\x5\xE0q\x2\x221"+ + "\x223\x3\x2\x2\x2\x222\x21F\x3\x2\x2\x2\x222\x223\x3\x2\x2\x2\x223\x225"+ + "\x3\x2\x2\x2\x224\x226\x5\x110\x89\x2\x225\x224\x3\x2\x2\x2\x225\x226"+ + "\x3\x2\x2\x2\x226\x227\x3\x2\x2\x2\x227\x229\a\xD0\x2\x2\x228\x22A\x5"+ + "\x110\x89\x2\x229\x228\x3\x2\x2\x2\x229\x22A\x3\x2\x2\x2\x22A\x22B\x3"+ + "\x2\x2\x2\x22B\x22C\x5\x9CO\x2\x22C\'\x3\x2\x2\x2\x22D\x22E\x5\xF6|\x2"+ + "\x22E\x22F\x5\x110\x89\x2\x22F\x231\x3\x2\x2\x2\x230\x22D\x3\x2\x2\x2"+ + "\x230\x231\x3\x2\x2\x2\x231\x232\x3\x2\x2\x2\x232\x233\aG\x2\x2\x233\x236"+ + "\x5\x110\x89\x2\x234\x235\a\xA3\x2\x2\x235\x237\x5\x110\x89\x2\x236\x234"+ + "\x3\x2\x2\x2\x236\x237\x3\x2\x2\x2\x237\x23D\x3\x2\x2\x2\x238\x23A\ar"+ + "\x2\x2\x239\x23B\x5\xF4{\x2\x23A\x239\x3\x2\x2\x2\x23A\x23B\x3\x2\x2\x2"+ + "\x23B\x23E\x3\x2\x2\x2\x23C\x23E\a\xBA\x2\x2\x23D\x238\x3\x2\x2\x2\x23D"+ + "\x23C\x3\x2\x2\x2\x23E\x23F\x3\x2\x2\x2\x23F\x240\x5\x110\x89\x2\x240"+ + "\x242\x5\xDEp\x2\x241\x243\x5\xF4{\x2\x242\x241\x3\x2\x2\x2\x242\x243"+ + "\x3\x2\x2\x2\x243\x244\x3\x2\x2\x2\x244\x245\x5\x110\x89\x2\x245\x246"+ + "\a\x82\x2\x2\x246\x247\x5\x110\x89\x2\x247\x24D\a\xE3\x2\x2\x248\x249"+ + "\x5\x110\x89\x2\x249\x24A\a\x35\x2\x2\x24A\x24B\x5\x110\x89\x2\x24B\x24C"+ + "\a\xE3\x2\x2\x24C\x24E\x3\x2\x2\x2\x24D\x248\x3\x2\x2\x2\x24D\x24E\x3"+ + "\x2\x2\x2\x24E\x253\x3\x2\x2\x2\x24F\x251\x5\x110\x89\x2\x250\x24F\x3"+ + "\x2\x2\x2\x250\x251\x3\x2\x2\x2\x251\x252\x3\x2\x2\x2\x252\x254\x5\xD2"+ + "j\x2\x253\x250\x3\x2\x2\x2\x253\x254\x3\x2\x2\x2\x254\x258\x3\x2\x2\x2"+ + "\x255\x256\x5\x110\x89\x2\x256\x257\x5\xE0q\x2\x257\x259\x3\x2\x2\x2\x258"+ + "\x255\x3\x2\x2\x2\x258\x259\x3\x2\x2\x2\x259)\x3\x2\x2\x2\x25A\x25B\t"+ + "\x3\x2\x2\x25B\x25C\x5\x110\x89\x2\x25C\x267\x5\xEAv\x2\x25D\x25F\x5\x110"+ + "\x89\x2\x25E\x25D\x3\x2\x2\x2\x25E\x25F\x3\x2\x2\x2\x25F\x260\x3\x2\x2"+ + "\x2\x260\x262\a)\x2\x2\x261\x263\x5\x110\x89\x2\x262\x261\x3\x2\x2\x2"+ + "\x262\x263\x3\x2\x2\x2\x263\x264\x3\x2\x2\x2\x264\x266\x5\xEAv\x2\x265"+ + "\x25E\x3\x2\x2\x2\x266\x269\x3\x2\x2\x2\x267\x265\x3\x2\x2\x2\x267\x268"+ + "\x3\x2\x2\x2\x268+\x3\x2\x2\x2\x269\x267\x3\x2\x2\x2\x26A\x26B\aV\x2\x2"+ + "\x26B\x26D\x5\x100\x81\x2\x26C\x26E\x5\x1E\x10\x2\x26D\x26C\x3\x2\x2\x2"+ + "\x26D\x26E\x3\x2\x2\x2\x26E\x26F\x3\x2\x2\x2\x26F\x270\a\x80\x2\x2\x270"+ + "\x288\x3\x2\x2\x2\x271\x272\aV\x2\x2\x272\x273\x5\x110\x89\x2\x273\x274"+ + "\t\x4\x2\x2\x274\x275\x5\x110\x89\x2\x275\x276\x5\x9CO\x2\x276\x278\x5"+ + "\x100\x81\x2\x277\x279\x5\x1E\x10\x2\x278\x277\x3\x2\x2\x2\x278\x279\x3"+ + "\x2\x2\x2\x279\x27A\x3\x2\x2\x2\x27A\x27B\a\x80\x2\x2\x27B\x288\x3\x2"+ + "\x2\x2\x27C\x27D\aV\x2\x2\x27D\x27F\x5\x100\x81\x2\x27E\x280\x5\x1E\x10"+ + "\x2\x27F\x27E\x3\x2\x2\x2\x27F\x280\x3\x2\x2\x2\x280\x281\x3\x2\x2\x2"+ + "\x281\x282\a\x80\x2\x2\x282\x283\x5\x110\x89\x2\x283\x284\t\x4\x2\x2\x284"+ + "\x285\x5\x110\x89\x2\x285\x286\x5\x9CO\x2\x286\x288\x3\x2\x2\x2\x287\x26A"+ + "\x3\x2\x2\x2\x287\x271\x3\x2\x2\x2\x287\x27C\x3\x2\x2\x2\x288-\x3\x2\x2"+ + "\x2\x289\x28A\x5\xF6|\x2\x28A\x28B\x5\x110\x89\x2\x28B\x28D\x3\x2\x2\x2"+ + "\x28C\x289\x3\x2\x2\x2\x28C\x28D\x3\x2\x2\x2\x28D\x28E\x3\x2\x2\x2\x28E"+ + "\x28F\a\x65\x2\x2\x28F\x290\x5\x110\x89\x2\x290\x291\x5\xDEp\x2\x291\x295"+ + "\x5\x100\x81\x2\x292\x294\x5\x30\x19\x2\x293\x292\x3\x2\x2\x2\x294\x297"+ + "\x3\x2\x2\x2\x295\x293\x3\x2\x2\x2\x295\x296\x3\x2\x2\x2\x296\x298\x3"+ + "\x2\x2\x2\x297\x295\x3\x2\x2\x2\x298\x299\a\\\x2\x2\x299/\x3\x2\x2\x2"+ + "\x29A\x2A3\x5\xDEp\x2\x29B\x29D\x5\x110\x89\x2\x29C\x29B\x3\x2\x2\x2\x29C"+ + "\x29D\x3\x2\x2\x2\x29D\x29E\x3\x2\x2\x2\x29E\x2A0\a\xD0\x2\x2\x29F\x2A1"+ + "\x5\x110\x89\x2\x2A0\x29F\x3\x2\x2\x2\x2A0\x2A1\x3\x2\x2\x2\x2A1\x2A2"+ + "\x3\x2\x2\x2\x2A2\x2A4\x5\x9CO\x2\x2A3\x29C\x3\x2\x2\x2\x2A3\x2A4\x3\x2"+ + "\x2\x2\x2A4\x2A5\x3\x2\x2\x2\x2A5\x2A6\x5\x100\x81\x2\x2A6\x31\x3\x2\x2"+ + "\x2\x2A7\x2A8\ag\x2\x2\x2A8\x2A9\x5\x110\x89\x2\x2A9\x2B4\x5\x9CO\x2\x2AA"+ + "\x2AC\x5\x110\x89\x2\x2AB\x2AA\x3\x2\x2\x2\x2AB\x2AC\x3\x2\x2\x2\x2AC"+ + "\x2AD\x3\x2\x2\x2\x2AD\x2AF\a)\x2\x2\x2AE\x2B0\x5\x110\x89\x2\x2AF\x2AE"+ + "\x3\x2\x2\x2\x2AF\x2B0\x3\x2\x2\x2\x2B0\x2B1\x3\x2\x2\x2\x2B1\x2B3\x5"+ + "\x9CO\x2\x2B2\x2AB\x3\x2\x2\x2\x2B3\x2B6\x3\x2\x2\x2\x2B4\x2B2\x3\x2\x2"+ + "\x2\x2B4\x2B5\x3\x2\x2\x2\x2B5\x33\x3\x2\x2\x2\x2B6\x2B4\x3\x2\x2\x2\x2B7"+ + "\x2B8\ah\x2\x2\x2B8\x2B9\x5\x110\x89\x2\x2B9\x2BA\x5\x9CO\x2\x2BA\x35"+ + "\x3\x2\x2\x2\x2BB\x2BC\x5\xF6|\x2\x2BC\x2BD\x5\x110\x89\x2\x2BD\x2BF\x3"+ + "\x2\x2\x2\x2BE\x2BB\x3\x2\x2\x2\x2BE\x2BF\x3\x2\x2\x2\x2BF\x2C0\x3\x2"+ + "\x2\x2\x2C0\x2C1\ai\x2\x2\x2C1\x2C2\x5\x110\x89\x2\x2C2\x2C4\x5\xDEp\x2"+ + "\x2C3\x2C5\x5\x110\x89\x2\x2C4\x2C3\x3\x2\x2\x2\x2C4\x2C5\x3\x2\x2\x2"+ + "\x2C5\x2C6\x3\x2\x2\x2\x2C6\x2C7\x5\xD2j\x2\x2C7\x37\x3\x2\x2\x2\x2C8"+ + "\x2C9\t\x5\x2\x2\x2C9\x39\x3\x2\x2\x2\x2CA\x2CB\aq\x2\x2\x2CB\x2CC\x5"+ + "\x110\x89\x2\x2CC\x2CD\aX\x2\x2\x2CD\x2CE\x5\x110\x89\x2\x2CE\x2CF\x5"+ + "\x9CO\x2\x2CF\x2D0\x5\x110\x89\x2\x2D0\x2D1\az\x2\x2\x2D1\x2D2\x5\x110"+ + "\x89\x2\x2D2\x2D3\x5\x9CO\x2\x2D3\x2D5\x5\x100\x81\x2\x2D4\x2D6\x5\x1E"+ + "\x10\x2\x2D5\x2D4\x3\x2\x2\x2\x2D5\x2D6\x3\x2\x2\x2\x2D6\x2D7\x3\x2\x2"+ + "\x2\x2D7\x2DB\a\x8C\x2\x2\x2D8\x2D9\x5\x110\x89\x2\x2D9\x2DA\x5\x9CO\x2"+ + "\x2DA\x2DC\x3\x2\x2\x2\x2DB\x2D8\x3\x2\x2\x2\x2DB\x2DC\x3\x2\x2\x2\x2DC"+ + ";\x3\x2\x2\x2\x2DD\x2DE\aq\x2\x2\x2DE\x2DF\x5\x110\x89\x2\x2DF\x2E1\x5"+ + "\x9CO\x2\x2E0\x2E2\x5\x110\x89\x2\x2E1\x2E0\x3\x2\x2\x2\x2E1\x2E2\x3\x2"+ + "\x2\x2\x2E2\x2E3\x3\x2\x2\x2\x2E3\x2E5\a\xD0\x2\x2\x2E4\x2E6\x5\x110\x89"+ + "\x2\x2E5\x2E4\x3\x2\x2\x2\x2E5\x2E6\x3\x2\x2\x2\x2E6\x2E7\x3\x2\x2\x2"+ + "\x2E7\x2E8\x5\x9CO\x2\x2E8\x2E9\x5\x110\x89\x2\x2E9\x2EA\a\xBE\x2\x2\x2EA"+ + "\x2EB\x5\x110\x89\x2\x2EB\x2F1\x5\x9CO\x2\x2EC\x2ED\x5\x110\x89\x2\x2ED"+ + "\x2EE\a\xB7\x2\x2\x2EE\x2EF\x5\x110\x89\x2\x2EF\x2F0\x5\x9CO\x2\x2F0\x2F2"+ + "\x3\x2\x2\x2\x2F1\x2EC\x3\x2\x2\x2\x2F1\x2F2\x3\x2\x2\x2\x2F2\x2F3\x3"+ + "\x2\x2\x2\x2F3\x2F5\x5\x100\x81\x2\x2F4\x2F6\x5\x1E\x10\x2\x2F5\x2F4\x3"+ + "\x2\x2\x2\x2F5\x2F6\x3\x2\x2\x2\x2F6\x2F7\x3\x2\x2\x2\x2F7\x2FB\a\x8C"+ + "\x2\x2\x2F8\x2F9\x5\x110\x89\x2\x2F9\x2FA\x5\x9CO\x2\x2FA\x2FC\x3\x2\x2"+ + "\x2\x2FB\x2F8\x3\x2\x2\x2\x2FB\x2FC\x3\x2\x2\x2\x2FC=\x3\x2\x2\x2\x2FD"+ + "\x2FE\x5\xF6|\x2\x2FE\x2FF\x5\x110\x89\x2\x2FF\x301\x3\x2\x2\x2\x300\x2FD"+ + "\x3\x2\x2\x2\x300\x301\x3\x2\x2\x2\x301\x304\x3\x2\x2\x2\x302\x303\a\xB6"+ + "\x2\x2\x303\x305\x5\x110\x89\x2\x304\x302\x3\x2\x2\x2\x304\x305\x3\x2"+ + "\x2\x2\x305\x306\x3\x2\x2\x2\x306\x308\ar\x2\x2\x307\x309\x5\x110\x89"+ + "\x2\x308\x307\x3\x2\x2\x2\x308\x309\x3\x2\x2\x2\x309\x30A\x3\x2\x2\x2"+ + "\x30A\x30C\x5@!\x2\x30B\x30D\x5\xF4{\x2\x30C\x30B\x3\x2\x2\x2\x30C\x30D"+ + "\x3\x2\x2\x2\x30D\x312\x3\x2\x2\x2\x30E\x310\x5\x110\x89\x2\x30F\x30E"+ + "\x3\x2\x2\x2\x30F\x310\x3\x2\x2\x2\x310\x311\x3\x2\x2\x2\x311\x313\x5"+ + "\xD2j\x2\x312\x30F\x3\x2\x2\x2\x312\x313\x3\x2\x2\x2\x313\x318\x3\x2\x2"+ + "\x2\x314\x316\x5\x110\x89\x2\x315\x314\x3\x2\x2\x2\x315\x316\x3\x2\x2"+ + "\x2\x316\x317\x3\x2\x2\x2\x317\x319\x5\xE0q\x2\x318\x315\x3\x2\x2\x2\x318"+ + "\x319\x3\x2\x2\x2\x319\x31A\x3\x2\x2\x2\x31A\x31C\x5\x100\x81\x2\x31B"+ + "\x31D\x5\x1E\x10\x2\x31C\x31B\x3\x2\x2\x2\x31C\x31D\x3\x2\x2\x2\x31D\x31E"+ + "\x3\x2\x2\x2\x31E\x31F\a]\x2\x2\x31F?\x3\x2\x2\x2\x320\x321\x5\xDEp\x2"+ + "\x321\x41\x3\x2\x2\x2\x322\x323\as\x2\x2\x323\x324\x5\x110\x89\x2\x324"+ + "\x326\x5\xB0Y\x2\x325\x327\x5\x110\x89\x2\x326\x325\x3\x2\x2\x2\x326\x327"+ + "\x3\x2\x2\x2\x327\x328\x3\x2\x2\x2\x328\x32A\a)\x2\x2\x329\x32B\x5\x110"+ + "\x89\x2\x32A\x329\x3\x2\x2\x2\x32A\x32B\x3\x2\x2\x2\x32B\x32D\x3\x2\x2"+ + "\x2\x32C\x32E\x5\x9CO\x2\x32D\x32C\x3\x2\x2\x2\x32D\x32E\x3\x2\x2\x2\x32E"+ + "\x330\x3\x2\x2\x2\x32F\x331\x5\x110\x89\x2\x330\x32F\x3\x2\x2\x2\x330"+ + "\x331\x3\x2\x2\x2\x331\x332\x3\x2\x2\x2\x332\x334\a)\x2\x2\x333\x335\x5"+ + "\x110\x89\x2\x334\x333\x3\x2\x2\x2\x334\x335\x3\x2\x2\x2\x335\x336\x3"+ + "\x2\x2\x2\x336\x337\x5\x9CO\x2\x337\x43\x3\x2\x2\x2\x338\x339\au\x2\x2"+ + "\x339\x33A\x5\x110\x89\x2\x33A\x33B\x5\x9CO\x2\x33B\x45\x3\x2\x2\x2\x33C"+ + "\x33D\av\x2\x2\x33D\x33E\x5\x110\x89\x2\x33E\x33F\x5\x9CO\x2\x33FG\x3"+ + "\x2\x2\x2\x340\x341\aw\x2\x2\x341\x342\x5\x110\x89\x2\x342\x343\x5L\'"+ + "\x2\x343\x344\x5\x110\x89\x2\x344\x345\a\xBD\x2\x2\x345\x346\x5\x110\x89"+ + "\x2\x346\x34C\x5 \x11\x2\x347\x348\x5\x110\x89\x2\x348\x349\aY\x2\x2\x349"+ + "\x34A\x5\x110\x89\x2\x34A\x34B\x5 \x11\x2\x34B\x34D\x3\x2\x2\x2\x34C\x347"+ + "\x3\x2\x2\x2\x34C\x34D\x3\x2\x2\x2\x34D\x35B\x3\x2\x2\x2\x34E\x352\x5"+ + "J&\x2\x34F\x351\x5N(\x2\x350\x34F\x3\x2\x2\x2\x351\x354\x3\x2\x2\x2\x352"+ + "\x350\x3\x2\x2\x2\x352\x353\x3\x2\x2\x2\x353\x356\x3\x2\x2\x2\x354\x352"+ + "\x3\x2\x2\x2\x355\x357\x5P)\x2\x356\x355\x3\x2\x2\x2\x356\x357\x3\x2\x2"+ + "\x2\x357\x358\x3\x2\x2\x2\x358\x359\a^\x2\x2\x359\x35B\x3\x2\x2\x2\x35A"+ + "\x340\x3\x2\x2\x2\x35A\x34E\x3\x2\x2\x2\x35BI\x3\x2\x2\x2\x35C\x35D\a"+ + "w\x2\x2\x35D\x35E\x5\x110\x89\x2\x35E\x35F\x5L\'\x2\x35F\x360\x5\x110"+ + "\x89\x2\x360\x361\a\xBD\x2\x2\x361\x363\x5\x100\x81\x2\x362\x364\x5\x1E"+ + "\x10\x2\x363\x362\x3\x2\x2\x2\x363\x364\x3\x2\x2\x2\x364K\x3\x2\x2\x2"+ + "\x365\x366\x5\x9CO\x2\x366M\x3\x2\x2\x2\x367\x368\aZ\x2\x2\x368\x369\x5"+ + "\x110\x89\x2\x369\x36A\x5L\'\x2\x36A\x36B\x5\x110\x89\x2\x36B\x36C\a\xBD"+ + "\x2\x2\x36C\x36E\x5\x100\x81\x2\x36D\x36F\x5\x1E\x10\x2\x36E\x36D\x3\x2"+ + "\x2\x2\x36E\x36F\x3\x2\x2\x2\x36FO\x3\x2\x2\x2\x370\x371\aY\x2\x2\x371"+ + "\x373\x5\x100\x81\x2\x372\x374\x5\x1E\x10\x2\x373\x372\x3\x2\x2\x2\x373"+ + "\x374\x3\x2\x2\x2\x374Q\x3\x2\x2\x2\x375\x376\ay\x2\x2\x376\x377\x5\x110"+ + "\x89\x2\x377\x378\x5\x9CO\x2\x378S\x3\x2\x2\x2\x379\x37A\a{\x2\x2\x37A"+ + "\x37B\x5\x110\x89\x2\x37B\x384\x5\xB0Y\x2\x37C\x37E\x5\x110\x89\x2\x37D"+ + "\x37C\x3\x2\x2\x2\x37D\x37E\x3\x2\x2\x2\x37E\x37F\x3\x2\x2\x2\x37F\x381"+ + "\a)\x2\x2\x380\x382\x5\x110\x89\x2\x381\x380\x3\x2\x2\x2\x381\x382\x3"+ + "\x2\x2\x2\x382\x383\x3\x2\x2\x2\x383\x385\x5\x9CO\x2\x384\x37D\x3\x2\x2"+ + "\x2\x385\x386\x3\x2\x2\x2\x386\x384\x3\x2\x2\x2\x386\x387\x3\x2\x2\x2"+ + "\x387U\x3\x2\x2\x2\x388\x389\a\x81\x2\x2\x389\x38B\x5\x110\x89\x2\x38A"+ + "\x388\x3\x2\x2\x2\x38A\x38B\x3\x2\x2\x2\x38B\x38C\x3\x2\x2\x2\x38C\x38E"+ + "\x5\x9CO\x2\x38D\x38F\x5\x110\x89\x2\x38E\x38D\x3\x2\x2\x2\x38E\x38F\x3"+ + "\x2\x2\x2\x38F\x390\x3\x2\x2\x2\x390\x392\a\xD0\x2\x2\x391\x393\x5\x110"+ + "\x89\x2\x392\x391\x3\x2\x2\x2\x392\x393\x3\x2\x2\x2\x393\x394\x3\x2\x2"+ + "\x2\x394\x395\x5\x9CO\x2\x395W\x3\x2\x2\x2\x396\x397\a\x84\x2\x2\x397"+ + "\x398\x5\x110\x89\x2\x398\x39A\x5\xB0Y\x2\x399\x39B\x5\x110\x89\x2\x39A"+ + "\x399\x3\x2\x2\x2\x39A\x39B\x3\x2\x2\x2\x39B\x39C\x3\x2\x2\x2\x39C\x39E"+ + "\a)\x2\x2\x39D\x39F\x5\x110\x89\x2\x39E\x39D\x3\x2\x2\x2\x39E\x39F\x3"+ + "\x2\x2\x2\x39F\x3A0\x3\x2\x2\x2\x3A0\x3A1\x5\x9CO\x2\x3A1Y\x3\x2\x2\x2"+ + "\x3A2\x3A3\a~\x2\x2\x3A3\x3A4\x5\x110\x89\x2\x3A4\x3B4\x5\x9CO\x2\x3A5"+ + "\x3A7\x5\x110\x89\x2\x3A6\x3A5\x3\x2\x2\x2\x3A6\x3A7\x3\x2\x2\x2\x3A7"+ + "\x3A8\x3\x2\x2\x2\x3A8\x3AA\a)\x2\x2\x3A9\x3AB\x5\x110\x89\x2\x3AA\x3A9"+ + "\x3\x2\x2\x2\x3AA\x3AB\x3\x2\x2\x2\x3AB\x3AC\x3\x2\x2\x2\x3AC\x3B2\x5"+ + "\x9CO\x2\x3AD\x3AE\x5\x110\x89\x2\x3AE\x3AF\a\xBE\x2\x2\x3AF\x3B0\x5\x110"+ + "\x89\x2\x3B0\x3B1\x5\x9CO\x2\x3B1\x3B3\x3\x2\x2\x2\x3B2\x3AD\x3\x2\x2"+ + "\x2\x3B2\x3B3\x3\x2\x2\x2\x3B3\x3B5\x3\x2\x2\x2\x3B4\x3A6\x3\x2\x2\x2"+ + "\x3B4\x3B5\x3\x2\x2\x2\x3B5[\x3\x2\x2\x2\x3B6\x3B7\a\x88\x2\x2\x3B7\x3B8"+ + "\x5\x110\x89\x2\x3B8\x3BA\x5\x9CO\x2\x3B9\x3BB\x5\x110\x89\x2\x3BA\x3B9"+ + "\x3\x2\x2\x2\x3BA\x3BB\x3\x2\x2\x2\x3BB\x3BC\x3\x2\x2\x2\x3BC\x3BE\a\xD0"+ + "\x2\x2\x3BD\x3BF\x5\x110\x89\x2\x3BE\x3BD\x3\x2\x2\x2\x3BE\x3BF\x3\x2"+ + "\x2\x2\x3BF\x3C0\x3\x2\x2\x2\x3C0\x3C1\x5\x9CO\x2\x3C1]\x3\x2\x2\x2\x3C2"+ + "\x3C4\a\x8A\x2\x2\x3C3\x3C5\x5\x110\x89\x2\x3C4\x3C3\x3\x2\x2\x2\x3C4"+ + "\x3C5\x3\x2\x2\x2\x3C5\x3C6\x3\x2\x2\x2\x3C6\x3C8\a\xD4\x2\x2\x3C7\x3C9"+ + "\x5\x110\x89\x2\x3C8\x3C7\x3\x2\x2\x2\x3C8\x3C9\x3\x2\x2\x2\x3C9\x3CA"+ + "\x3\x2\x2\x2\x3CA\x3CC\x5\xCCg\x2\x3CB\x3CD\x5\x110\x89\x2\x3CC\x3CB\x3"+ + "\x2\x2\x2\x3CC\x3CD\x3\x2\x2\x2\x3CD\x3CE\x3\x2\x2\x2\x3CE\x3CF\a\xDB"+ + "\x2\x2\x3CF_\x3\x2\x2\x2\x3D0\x3D1\t\x6\x2\x2\x3D1\x3DA\x5\x110\x89\x2"+ + "\x3D2\x3D3\av\x2\x2\x3D3\x3D4\x5\x110\x89\x2\x3D4\x3D5\x5\x9CO\x2\x3D5"+ + "\x3DB\x3\x2\x2\x2\x3D6\x3D7\a\xAD\x2\x2\x3D7\x3D8\x5\x110\x89\x2\x3D8"+ + "\x3D9\a\x8C\x2\x2\x3D9\x3DB\x3\x2\x2\x2\x3DA\x3D2\x3\x2\x2\x2\x3DA\x3D6"+ + "\x3\x2\x2\x2\x3DB\x61\x3\x2\x2\x2\x3DC\x3DD\a\x91\x2\x2\x3DD\x3DE\x5\x110"+ + "\x89\x2\x3DE\x3DF\x5\x9CO\x2\x3DF\x3E0\x5\x110\x89\x2\x3E0\x3E1\av\x2"+ + "\x2\x3E1\x3E2\x5\x110\x89\x2\x3E2\x3ED\x5\x9CO\x2\x3E3\x3E5\x5\x110\x89"+ + "\x2\x3E4\x3E3\x3\x2\x2\x2\x3E4\x3E5\x3\x2\x2\x2\x3E5\x3E6\x3\x2\x2\x2"+ + "\x3E6\x3E8\a)\x2\x2\x3E7\x3E9\x5\x110\x89\x2\x3E8\x3E7\x3\x2\x2\x2\x3E8"+ + "\x3E9\x3\x2\x2\x2\x3E9\x3EA\x3\x2\x2\x2\x3EA\x3EC\x5\x9CO\x2\x3EB\x3E4"+ + "\x3\x2\x2\x2\x3EC\x3EF\x3\x2\x2\x2\x3ED\x3EB\x3\x2\x2\x2\x3ED\x3EE\x3"+ + "\x2\x2\x2\x3EE\x63\x3\x2\x2\x2\x3EF\x3ED\x3\x2\x2\x2\x3F0\x3F1\a\x91\x2"+ + "\x2\x3F1\x3F2\x5\x110\x89\x2\x3F2\x3F3\x5\x9CO\x2\x3F3\x3F4\x5\x110\x89"+ + "\x2\x3F4\x3F5\au\x2\x2\x3F5\x3F6\x5\x110\x89\x2\x3F6\x401\x5\x9CO\x2\x3F7"+ + "\x3F9\x5\x110\x89\x2\x3F8\x3F7\x3\x2\x2\x2\x3F8\x3F9\x3\x2\x2\x2\x3F9"+ + "\x3FA\x3\x2\x2\x2\x3FA\x3FC\a)\x2\x2\x3FB\x3FD\x5\x110\x89\x2\x3FC\x3FB"+ + "\x3\x2\x2\x2\x3FC\x3FD\x3\x2\x2\x2\x3FD\x3FE\x3\x2\x2\x2\x3FE\x400\x5"+ + "\x9CO\x2\x3FF\x3F8\x3\x2\x2\x2\x400\x403\x3\x2\x2\x2\x401\x3FF\x3\x2\x2"+ + "\x2\x401\x402\x3\x2\x2\x2\x402\x65\x3\x2\x2\x2\x403\x401\x3\x2\x2\x2\x404"+ + "\x405\a\x94\x2\x2\x405\x406\x5\x110\x89\x2\x406\x407\x5\x9CO\x2\x407\x408"+ + "\x5\x110\x89\x2\x408\x409\aq\x2\x2\x409\x40A\x5\x110\x89\x2\x40A\x410"+ + "\t\a\x2\x2\x40B\x40C\x5\x110\x89\x2\x40C\x40D\a\x33\x2\x2\x40D\x40E\x5"+ + "\x110\x89\x2\x40E\x40F\t\b\x2\x2\x40F\x411\x3\x2\x2\x2\x410\x40B\x3\x2"+ + "\x2\x2\x410\x411\x3\x2\x2\x2\x411\x415\x3\x2\x2\x2\x412\x413\x5\x110\x89"+ + "\x2\x413\x414\t\t\x2\x2\x414\x416\x3\x2\x2\x2\x415\x412\x3\x2\x2\x2\x415"+ + "\x416\x3\x2\x2\x2\x416\x417\x3\x2\x2\x2\x417\x418\x5\x110\x89\x2\x418"+ + "\x419\a\x39\x2\x2\x419\x41A\x5\x110\x89\x2\x41A\x426\x5\xB0Y\x2\x41B\x41C"+ + "\x5\x110\x89\x2\x41C\x41E\a\x1D\x2\x2\x41D\x41F\x5\x110\x89\x2\x41E\x41D"+ + "\x3\x2\x2\x2\x41E\x41F\x3\x2\x2\x2\x41F\x420\x3\x2\x2\x2\x420\x422\a\xD0"+ + "\x2\x2\x421\x423\x5\x110\x89\x2\x422\x421\x3\x2\x2\x2\x422\x423\x3\x2"+ + "\x2\x2\x423\x424\x3\x2\x2\x2\x424\x425\x5\x9CO\x2\x425\x427\x3\x2\x2\x2"+ + "\x426\x41B\x3\x2\x2\x2\x426\x427\x3\x2\x2\x2\x427g\x3\x2\x2\x2\x428\x435"+ + "\x5j\x36\x2\x429\x42B\x5\x110\x89\x2\x42A\x429\x3\x2\x2\x2\x42A\x42B\x3"+ + "\x2\x2\x2\x42B\x42C\x3\x2\x2\x2\x42C\x42E\t\n\x2\x2\x42D\x42F\x5\x110"+ + "\x89\x2\x42E\x42D\x3\x2\x2\x2\x42E\x42F\x3\x2\x2\x2\x42F\x431\x3\x2\x2"+ + "\x2\x430\x432\x5j\x36\x2\x431\x430\x3\x2\x2\x2\x431\x432\x3\x2\x2\x2\x432"+ + "\x434\x3\x2\x2\x2\x433\x42A\x3\x2\x2\x2\x434\x437\x3\x2\x2\x2\x435\x433"+ + "\x3\x2\x2\x2\x435\x436\x3\x2\x2\x2\x436\x44A\x3\x2\x2\x2\x437\x435\x3"+ + "\x2\x2\x2\x438\x43A\x5j\x36\x2\x439\x438\x3\x2\x2\x2\x439\x43A\x3\x2\x2"+ + "\x2\x43A\x445\x3\x2\x2\x2\x43B\x43D\x5\x110\x89\x2\x43C\x43B\x3\x2\x2"+ + "\x2\x43C\x43D\x3\x2\x2\x2\x43D\x43E\x3\x2\x2\x2\x43E\x440\t\n\x2\x2\x43F"+ + "\x441\x5\x110\x89\x2\x440\x43F\x3\x2\x2\x2\x440\x441\x3\x2\x2\x2\x441"+ + "\x443\x3\x2\x2\x2\x442\x444\x5j\x36\x2\x443\x442\x3\x2\x2\x2\x443\x444"+ + "\x3\x2\x2\x2\x444\x446\x3\x2\x2\x2\x445\x43C\x3\x2\x2\x2\x446\x447\x3"+ + "\x2\x2\x2\x447\x445\x3\x2\x2\x2\x447\x448\x3\x2\x2\x2\x448\x44A\x3\x2"+ + "\x2\x2\x449\x428\x3\x2\x2\x2\x449\x439\x3\x2\x2\x2\x44Ai\x3\x2\x2\x2\x44B"+ + "\x45D\x5\x9CO\x2\x44C\x45A\t\v\x2\x2\x44D\x44F\x5\x110\x89\x2\x44E\x44D"+ + "\x3\x2\x2\x2\x44E\x44F\x3\x2\x2\x2\x44F\x450\x3\x2\x2\x2\x450\x452\a\xD4"+ + "\x2\x2\x451\x453\x5\x110\x89\x2\x452\x451\x3\x2\x2\x2\x452\x453\x3\x2"+ + "\x2\x2\x453\x454\x3\x2\x2\x2\x454\x456\x5\xCCg\x2\x455\x457\x5\x110\x89"+ + "\x2\x456\x455\x3\x2\x2\x2\x456\x457\x3\x2\x2\x2\x457\x458\x3\x2\x2\x2"+ + "\x458\x459\a\xDB\x2\x2\x459\x45B\x3\x2\x2\x2\x45A\x44E\x3\x2\x2\x2\x45A"+ + "\x45B\x3\x2\x2\x2\x45B\x45D\x3\x2\x2\x2\x45C\x44B\x3\x2\x2\x2\x45C\x44C"+ + "\x3\x2\x2\x2\x45Dk\x3\x2\x2\x2\x45E\x45F\a\x9E\x2\x2\x45F\x460\x5\x110"+ + "\x89\x2\x460\x462\x5\xB0Y\x2\x461\x463\x5\x110\x89\x2\x462\x461\x3\x2"+ + "\x2\x2\x462\x463\x3\x2\x2\x2\x463\x464\x3\x2\x2\x2\x464\x469\a)\x2\x2"+ + "\x465\x467\x5\x110\x89\x2\x466\x465\x3\x2\x2\x2\x466\x467\x3\x2\x2\x2"+ + "\x467\x468\x3\x2\x2\x2\x468\x46A\x5h\x35\x2\x469\x466\x3\x2\x2\x2\x469"+ + "\x46A\x3\x2\x2\x2\x46Am\x3\x2\x2\x2\x46B\x46C\x5\xF6|\x2\x46C\x46D\x5"+ + "\x110\x89\x2\x46D\x46F\x3\x2\x2\x2\x46E\x46B\x3\x2\x2\x2\x46E\x46F\x3"+ + "\x2\x2\x2\x46F\x472\x3\x2\x2\x2\x470\x471\a\xB6\x2\x2\x471\x473\x5\x110"+ + "\x89\x2\x472\x470\x3\x2\x2\x2\x472\x473\x3\x2\x2\x2\x473\x474\x3\x2\x2"+ + "\x2\x474\x475\a\xA0\x2\x2\x475\x476\x5\x110\x89\x2\x476\x478\x5@!\x2\x477"+ + "\x479\x5\xF4{\x2\x478\x477\x3\x2\x2\x2\x478\x479\x3\x2\x2\x2\x479\x47E"+ + "\x3\x2\x2\x2\x47A\x47C\x5\x110\x89\x2\x47B\x47A\x3\x2\x2\x2\x47B\x47C"+ + "\x3\x2\x2\x2\x47C\x47D\x3\x2\x2\x2\x47D\x47F\x5\xD2j\x2\x47E\x47B\x3\x2"+ + "\x2\x2\x47E\x47F\x3\x2\x2\x2\x47F\x483\x3\x2\x2\x2\x480\x481\x5\x110\x89"+ + "\x2\x481\x482\x5\xE0q\x2\x482\x484\x3\x2\x2\x2\x483\x480\x3\x2\x2\x2\x483"+ + "\x484\x3\x2\x2\x2\x484\x485\x3\x2\x2\x2\x485\x487\x5\x100\x81\x2\x486"+ + "\x488\x5\x1E\x10\x2\x487\x486\x3\x2\x2\x2\x487\x488\x3\x2\x2\x2\x488\x489"+ + "\x3\x2\x2\x2\x489\x48A\a_\x2\x2\x48Ao\x3\x2\x2\x2\x48B\x48C\x5\xF6|\x2"+ + "\x48C\x48D\x5\x110\x89\x2\x48D\x48F\x3\x2\x2\x2\x48E\x48B\x3\x2\x2\x2"+ + "\x48E\x48F\x3\x2\x2\x2\x48F\x492\x3\x2\x2\x2\x490\x491\a\xB6\x2\x2\x491"+ + "\x493\x5\x110\x89\x2\x492\x490\x3\x2\x2\x2\x492\x493\x3\x2\x2\x2\x493"+ + "\x494\x3\x2\x2\x2\x494\x495\a\xA2\x2\x2\x495\x496\x5\x110\x89\x2\x496"+ + "\x49B\x5\x94K\x2\x497\x499\x5\x110\x89\x2\x498\x497\x3\x2\x2\x2\x498\x499"+ + "\x3\x2\x2\x2\x499\x49A\x3\x2\x2\x2\x49A\x49C\x5\xD2j\x2\x49B\x498\x3\x2"+ + "\x2\x2\x49B\x49C\x3\x2\x2\x2\x49C\x49D\x3\x2\x2\x2\x49D\x49F\x5\x100\x81"+ + "\x2\x49E\x4A0\x5\x1E\x10\x2\x49F\x49E\x3\x2\x2\x2\x49F\x4A0\x3\x2\x2\x2"+ + "\x4A0\x4A1\x3\x2\x2\x2\x4A1\x4A2\a_\x2\x2\x4A2q\x3\x2\x2\x2\x4A3\x4A4"+ + "\x5\xF6|\x2\x4A4\x4A5\x5\x110\x89\x2\x4A5\x4A7\x3\x2\x2\x2\x4A6\x4A3\x3"+ + "\x2\x2\x2\x4A6\x4A7\x3\x2\x2\x2\x4A7\x4AA\x3\x2\x2\x2\x4A8\x4A9\a\xB6"+ + "\x2\x2\x4A9\x4AB\x5\x110\x89\x2\x4AA\x4A8\x3\x2\x2\x2\x4AA\x4AB\x3\x2"+ + "\x2\x2\x4AB\x4AC\x3\x2\x2\x2\x4AC\x4AD\a\xA1\x2\x2\x4AD\x4AE\x5\x110\x89"+ + "\x2\x4AE\x4B3\x5\x94K\x2\x4AF\x4B1\x5\x110\x89\x2\x4B0\x4AF\x3\x2\x2\x2"+ + "\x4B0\x4B1\x3\x2\x2\x2\x4B1\x4B2\x3\x2\x2\x2\x4B2\x4B4\x5\xD2j\x2\x4B3"+ + "\x4B0\x3\x2\x2\x2\x4B3\x4B4\x3\x2\x2\x2\x4B4\x4B5\x3\x2\x2\x2\x4B5\x4B7"+ + "\x5\x100\x81\x2\x4B6\x4B8\x5\x1E\x10\x2\x4B7\x4B6\x3\x2\x2\x2\x4B7\x4B8"+ + "\x3\x2\x2\x2\x4B8\x4B9\x3\x2\x2\x2\x4B9\x4BA\a_\x2\x2\x4BAs\x3\x2\x2\x2"+ + "\x4BB\x4BC\a\xA5\x2\x2\x4BC\x4BD\x5\x110\x89\x2\x4BD\x4BF\x5\xB0Y\x2\x4BE"+ + "\x4C0\x5\x110\x89\x2\x4BF\x4BE\x3\x2\x2\x2\x4BF\x4C0\x3\x2\x2\x2\x4C0"+ + "\x4C1\x3\x2\x2\x2\x4C1\x4C3\a)\x2\x2\x4C2\x4C4\x5\x110\x89\x2\x4C3\x4C2"+ + "\x3\x2\x2\x2\x4C3\x4C4\x3\x2\x2\x2\x4C4\x4C6\x3\x2\x2\x2\x4C5\x4C7\x5"+ + "\x9CO\x2\x4C6\x4C5\x3\x2\x2\x2\x4C6\x4C7\x3\x2\x2\x2\x4C7\x4C9\x3\x2\x2"+ + "\x2\x4C8\x4CA\x5\x110\x89\x2\x4C9\x4C8\x3\x2\x2\x2\x4C9\x4CA\x3\x2\x2"+ + "\x2\x4CA\x4CB\x3\x2\x2\x2\x4CB\x4CD\a)\x2\x2\x4CC\x4CE\x5\x110\x89\x2"+ + "\x4CD\x4CC\x3\x2\x2\x2\x4CD\x4CE\x3\x2\x2\x2\x4CE\x4CF\x3\x2\x2\x2\x4CF"+ + "\x4D0\x5\x9CO\x2\x4D0u\x3\x2\x2\x2\x4D1\x4D2\a\xA7\x2\x2\x4D2\x4D3\x5"+ + "\x110\x89\x2\x4D3\x4E2\x5\xDEp\x2\x4D4\x4D6\x5\x110\x89\x2\x4D5\x4D4\x3"+ + "\x2\x2\x2\x4D5\x4D6\x3\x2\x2\x2\x4D6\x4D7\x3\x2\x2\x2\x4D7\x4D9\a\xD4"+ + "\x2\x2\x4D8\x4DA\x5\x110\x89\x2\x4D9\x4D8\x3\x2\x2\x2\x4D9\x4DA\x3\x2"+ + "\x2\x2\x4DA\x4DF\x3\x2\x2\x2\x4DB\x4DD\x5\xCCg\x2\x4DC\x4DE\x5\x110\x89"+ + "\x2\x4DD\x4DC\x3\x2\x2\x2\x4DD\x4DE\x3\x2\x2\x2\x4DE\x4E0\x3\x2\x2\x2"+ + "\x4DF\x4DB\x3\x2\x2\x2\x4DF\x4E0\x3\x2\x2\x2\x4E0\x4E1\x3\x2\x2\x2\x4E1"+ + "\x4E3\a\xDB\x2\x2\x4E2\x4D5\x3\x2\x2\x2\x4E2\x4E3\x3\x2\x2\x2\x4E3w\x3"+ + "\x2\x2\x2\x4E4\x4E5\a\xAA\x2\x2\x4E5\x4E8\x5\x110\x89\x2\x4E6\x4E7\a\x9D"+ + "\x2\x2\x4E7\x4E9\x5\x110\x89\x2\x4E8\x4E6\x3\x2\x2\x2\x4E8\x4E9\x3\x2"+ + "\x2\x2\x4E9\x4EA\x3\x2\x2\x2\x4EA\x4F5\x5z>\x2\x4EB\x4ED\x5\x110\x89\x2"+ + "\x4EC\x4EB\x3\x2\x2\x2\x4EC\x4ED\x3\x2\x2\x2\x4ED\x4EE\x3\x2\x2\x2\x4EE"+ + "\x4F0\a)\x2\x2\x4EF\x4F1\x5\x110\x89\x2\x4F0\x4EF\x3\x2\x2\x2\x4F0\x4F1"+ + "\x3\x2\x2\x2\x4F1\x4F2\x3\x2\x2\x2\x4F2\x4F4\x5z>\x2\x4F3\x4EC\x3\x2\x2"+ + "\x2\x4F4\x4F7\x3\x2\x2\x2\x4F5\x4F3\x3\x2\x2\x2\x4F5\x4F6\x3\x2\x2\x2"+ + "\x4F6y\x3\x2\x2\x2\x4F7\x4F5\x3\x2\x2\x2\x4F8\x4FA\x5\xBC_\x2\x4F9\x4FB"+ + "\x5\x110\x89\x2\x4FA\x4F9\x3\x2\x2\x2\x4FA\x4FB\x3\x2\x2\x2\x4FB\x4FC"+ + "\x3\x2\x2\x2\x4FC\x4FE\a\xD4\x2\x2\x4FD\x4FF\x5\x110\x89\x2\x4FE\x4FD"+ + "\x3\x2\x2\x2\x4FE\x4FF\x3\x2\x2\x2\x4FF\x500\x3\x2\x2\x2\x500\x502\x5"+ + "\xD8m\x2\x501\x503\x5\x110\x89\x2\x502\x501\x3\x2\x2\x2\x502\x503\x3\x2"+ + "\x2\x2\x503\x504\x3\x2\x2\x2\x504\x508\a\xDB\x2\x2\x505\x506\x5\x110\x89"+ + "\x2\x506\x507\x5\xE0q\x2\x507\x509\x3\x2\x2\x2\x508\x505\x3\x2\x2\x2\x508"+ + "\x509\x3\x2\x2\x2\x509{\x3\x2\x2\x2\x50A\x50B\a\xAC\x2\x2\x50B}\x3\x2"+ + "\x2\x2\x50C\x512\a\xAD\x2\x2\x50D\x510\x5\x110\x89\x2\x50E\x511\a\x8C"+ + "\x2\x2\x50F\x511\x5\x9CO\x2\x510\x50E\x3\x2\x2\x2\x510\x50F\x3\x2\x2\x2"+ + "\x511\x513\x3\x2\x2\x2\x512\x50D\x3\x2\x2\x2\x512\x513\x3\x2\x2\x2\x513"+ + "\x7F\x3\x2\x2\x2\x514\x515\a\xAE\x2\x2\x515\x81\x3\x2\x2\x2\x516\x517"+ + "\a\xAF\x2\x2\x517\x518\x5\x110\x89\x2\x518\x51A\x5\x9CO\x2\x519\x51B\x5"+ + "\x110\x89\x2\x51A\x519\x3\x2\x2\x2\x51A\x51B\x3\x2\x2\x2\x51B\x51C\x3"+ + "\x2\x2\x2\x51C\x51E\a\xD0\x2\x2\x51D\x51F\x5\x110\x89\x2\x51E\x51D\x3"+ + "\x2\x2\x2\x51E\x51F\x3\x2\x2\x2\x51F\x520\x3\x2\x2\x2\x520\x521\x5\x9C"+ + "O\x2\x521\x83\x3\x2\x2\x2\x522\x523\a\xB8\x2\x2\x523\x85\x3\x2\x2\x2\x524"+ + "\x525\a\xB0\x2\x2\x525\x526\x5\x110\x89\x2\x526\x528\x5\xB0Y\x2\x527\x529"+ + "\x5\x110\x89\x2\x528\x527\x3\x2\x2\x2\x528\x529\x3\x2\x2\x2\x529\x52A"+ + "\x3\x2\x2\x2\x52A\x52C\a)\x2\x2\x52B\x52D\x5\x110\x89\x2\x52C\x52B\x3"+ + "\x2\x2\x2\x52C\x52D\x3\x2\x2\x2\x52D\x52E\x3\x2\x2\x2\x52E\x52F\x5\x9C"+ + "O\x2\x52F\x87\x3\x2\x2\x2\x530\x531\a\xB1\x2\x2\x531\x532\x5\x110\x89"+ + "\x2\x532\x533\a\x41\x2\x2\x533\x534\x5\x110\x89\x2\x534\x535\x5\x9CO\x2"+ + "\x535\x539\x5\x100\x81\x2\x536\x538\x5\x8CG\x2\x537\x536\x3\x2\x2\x2\x538"+ + "\x53B\x3\x2\x2\x2\x539\x537\x3\x2\x2\x2\x539\x53A\x3\x2\x2\x2\x53A\x53C"+ + "\x3\x2\x2\x2\x53B\x539\x3\x2\x2\x2\x53C\x53D\a`\x2\x2\x53D\x89\x3\x2\x2"+ + "\x2\x53E\x540\a|\x2\x2\x53F\x541\x5\x110\x89\x2\x540\x53F\x3\x2\x2\x2"+ + "\x540\x541\x3\x2\x2\x2\x541\x542\x3\x2\x2\x2\x542\x544\x5\xE4s\x2\x543"+ + "\x545\x5\x110\x89\x2\x544\x543\x3\x2\x2\x2\x544\x545\x3\x2\x2\x2\x545"+ + "\x546\x3\x2\x2\x2\x546\x547\x5\x9CO\x2\x547\x550\x3\x2\x2\x2\x548\x549"+ + "\x5\x9CO\x2\x549\x54A\x5\x110\x89\x2\x54A\x54B\a\xBE\x2\x2\x54B\x54C\x5"+ + "\x110\x89\x2\x54C\x54D\x5\x9CO\x2\x54D\x550\x3\x2\x2\x2\x54E\x550\x5\x9C"+ + "O\x2\x54F\x53E\x3\x2\x2\x2\x54F\x548\x3\x2\x2\x2\x54F\x54E\x3\x2\x2\x2"+ + "\x550\x8B\x3\x2\x2\x2\x551\x552\a\x41\x2\x2\x552\x553\x5\x110\x89\x2\x553"+ + "\x554\x5\x8EH\x2\x554\x556\x5\x100\x81\x2\x555\x557\x5\x1E\x10\x2\x556"+ + "\x555\x3\x2\x2\x2\x556\x557\x3\x2\x2\x2\x557\x8D\x3\x2\x2\x2\x558\x568"+ + "\aY\x2\x2\x559\x564\x5\x8A\x46\x2\x55A\x55C\x5\x110\x89\x2\x55B\x55A\x3"+ + "\x2\x2\x2\x55B\x55C\x3\x2\x2\x2\x55C\x55D\x3\x2\x2\x2\x55D\x55F\a)\x2"+ + "\x2\x55E\x560\x5\x110\x89\x2\x55F\x55E\x3\x2\x2\x2\x55F\x560\x3\x2\x2"+ + "\x2\x560\x561\x3\x2\x2\x2\x561\x563\x5\x8A\x46\x2\x562\x55B\x3\x2\x2\x2"+ + "\x563\x566\x3\x2\x2\x2\x564\x562\x3\x2\x2\x2\x564\x565\x3\x2\x2\x2\x565"+ + "\x568\x3\x2\x2\x2\x566\x564\x3\x2\x2\x2\x567\x558\x3\x2\x2\x2\x567\x559"+ + "\x3\x2\x2\x2\x568\x8F\x3\x2\x2\x2\x569\x56A\a\xB2\x2\x2\x56A\x56B\x5\x110"+ + "\x89\x2\x56B\x56D\x5\x9CO\x2\x56C\x56E\x5\x110\x89\x2\x56D\x56C\x3\x2"+ + "\x2\x2\x56D\x56E\x3\x2\x2\x2\x56E\x56F\x3\x2\x2\x2\x56F\x571\a\xD0\x2"+ + "\x2\x570\x572\x5\x110\x89\x2\x571\x570\x3\x2\x2\x2\x571\x572\x3\x2\x2"+ + "\x2\x572\x573\x3\x2\x2\x2\x573\x574\x5\x9CO\x2\x574\x91\x3\x2\x2\x2\x575"+ + "\x576\x5\xF6|\x2\x576\x577\x5\x110\x89\x2\x577\x579\x3\x2\x2\x2\x578\x575"+ + "\x3\x2\x2\x2\x578\x579\x3\x2\x2\x2\x579\x57C\x3\x2\x2\x2\x57A\x57B\a\xB6"+ + "\x2\x2\x57B\x57D\x5\x110\x89\x2\x57C\x57A\x3\x2\x2\x2\x57C\x57D\x3\x2"+ + "\x2\x2\x57D\x57E\x3\x2\x2\x2\x57E\x580\a\xBA\x2\x2\x57F\x581\x5\x110\x89"+ + "\x2\x580\x57F\x3\x2\x2\x2\x580\x581\x3\x2\x2\x2\x581\x582\x3\x2\x2\x2"+ + "\x582\x587\x5\x94K\x2\x583\x585\x5\x110\x89\x2\x584\x583\x3\x2\x2\x2\x584"+ + "\x585\x3\x2\x2\x2\x585\x586\x3\x2\x2\x2\x586\x588\x5\xD2j\x2\x587\x584"+ + "\x3\x2\x2\x2\x587\x588\x3\x2\x2\x2\x588\x589\x3\x2\x2\x2\x589\x58B\x5"+ + "\x100\x81\x2\x58A\x58C\x5\x1E\x10\x2\x58B\x58A\x3\x2\x2\x2\x58B\x58C\x3"+ + "\x2\x2\x2\x58C\x58D\x3\x2\x2\x2\x58D\x58E\a\x61\x2\x2\x58E\x93\x3\x2\x2"+ + "\x2\x58F\x590\x5\xDEp\x2\x590\x95\x3\x2\x2\x2\x591\x592\x5\xF6|\x2\x592"+ + "\x593\x5\x110\x89\x2\x593\x595\x3\x2\x2\x2\x594\x591\x3\x2\x2\x2\x594"+ + "\x595\x3\x2\x2\x2\x595\x596\x3\x2\x2\x2\x596\x597\a\xC0\x2\x2\x597\x598"+ + "\x5\x110\x89\x2\x598\x599\x5\xDEp\x2\x599\x59D\x5\x100\x81\x2\x59A\x59C"+ + "\x5\x98M\x2\x59B\x59A\x3\x2\x2\x2\x59C\x59F\x3\x2\x2\x2\x59D\x59B\x3\x2"+ + "\x2\x2\x59D\x59E\x3\x2\x2\x2\x59E\x5A0\x3\x2\x2\x2\x59F\x59D\x3\x2\x2"+ + "\x2\x5A0\x5A1\a\x62\x2\x2\x5A1\x97\x3\x2\x2\x2\x5A2\x5B1\x5\xDEp\x2\x5A3"+ + "\x5A5\x5\x110\x89\x2\x5A4\x5A3\x3\x2\x2\x2\x5A4\x5A5\x3\x2\x2\x2\x5A5"+ + "\x5A6\x3\x2\x2\x2\x5A6\x5AB\a\xD4\x2\x2\x5A7\x5A9\x5\x110\x89\x2\x5A8"+ + "\x5A7\x3\x2\x2\x2\x5A8\x5A9\x3\x2\x2\x2\x5A9\x5AA\x3\x2\x2\x2\x5AA\x5AC"+ + "\x5\xD8m\x2\x5AB\x5A8\x3\x2\x2\x2\x5AB\x5AC\x3\x2\x2\x2\x5AC\x5AE\x3\x2"+ + "\x2\x2\x5AD\x5AF\x5\x110\x89\x2\x5AE\x5AD\x3\x2\x2\x2\x5AE\x5AF\x3\x2"+ + "\x2\x2\x5AF\x5B0\x3\x2\x2\x2\x5B0\x5B2\a\xDB\x2\x2\x5B1\x5A4\x3\x2\x2"+ + "\x2\x5B1\x5B2\x3\x2\x2\x2\x5B2\x5B6\x3\x2\x2\x2\x5B3\x5B4\x5\x110\x89"+ + "\x2\x5B4\x5B5\x5\xE0q\x2\x5B5\x5B7\x3\x2\x2\x2\x5B6\x5B3\x3\x2\x2\x2\x5B6"+ + "\x5B7\x3\x2\x2\x2\x5B7\x5B8\x3\x2\x2\x2\x5B8\x5B9\x5\x100\x81\x2\x5B9"+ + "\x99\x3\x2\x2\x2\x5BA\x5BB\a\xC2\x2\x2\x5BB\x5BC\x5\x110\x89\x2\x5BC\x5CC"+ + "\x5\xB0Y\x2\x5BD\x5BF\x5\x110\x89\x2\x5BE\x5BD\x3\x2\x2\x2\x5BE\x5BF\x3"+ + "\x2\x2\x2\x5BF\x5C0\x3\x2\x2\x2\x5C0\x5C2\a)\x2\x2\x5C1\x5C3\x5\x110\x89"+ + "\x2\x5C2\x5C1\x3\x2\x2\x2\x5C2\x5C3\x3\x2\x2\x2\x5C3\x5C4\x3\x2\x2\x2"+ + "\x5C4\x5CA\x5\x9CO\x2\x5C5\x5C6\x5\x110\x89\x2\x5C6\x5C7\a\xBE\x2\x2\x5C7"+ + "\x5C8\x5\x110\x89\x2\x5C8\x5C9\x5\x9CO\x2\x5C9\x5CB\x3\x2\x2\x2\x5CA\x5C5"+ + "\x3\x2\x2\x2\x5CA\x5CB\x3\x2\x2\x2\x5CB\x5CD\x3\x2\x2\x2\x5CC\x5BE\x3"+ + "\x2\x2\x2\x5CC\x5CD\x3\x2\x2\x2\x5CD\x9B\x3\x2\x2\x2\x5CE\x5CF\bO\x1\x2"+ + "\x5CF\x5D1\a\x8D\x2\x2\x5D0\x5D2\x5\x110\x89\x2\x5D1\x5D0\x3\x2\x2\x2"+ + "\x5D1\x5D2\x3\x2\x2\x2\x5D2\x5D3\x3\x2\x2\x2\x5D3\x5FC\x5\x9CO\x15\x5D4"+ + "\x5D6\a\x34\x2\x2\x5D5\x5D7\x5\x110\x89\x2\x5D6\x5D5\x3\x2\x2\x2\x5D6"+ + "\x5D7\x3\x2\x2\x2\x5D7\x5D8\x3\x2\x2\x2\x5D8\x5FC\x5\x9CO\x12\x5D9\x5DB"+ + "\x5\xDCo\x2\x5DA\x5DC\x5\x110\x89\x2\x5DB\x5DA\x3\x2\x2\x2\x5DB\x5DC\x3"+ + "\x2\x2\x2\x5DC\x5DD\x3\x2\x2\x2\x5DD\x5DF\a\xCD\x2\x2\x5DE\x5E0\x5\x110"+ + "\x89\x2\x5DF\x5DE\x3\x2\x2\x2\x5DF\x5E0\x3\x2\x2\x2\x5E0\x5E1\x3\x2\x2"+ + "\x2\x5E1\x5E2\x5\x9CO\x11\x5E2\x5FC\x3\x2\x2\x2\x5E3\x5E5\a\xD6\x2\x2"+ + "\x5E4\x5E6\x5\x110\x89\x2\x5E5\x5E4\x3\x2\x2\x2\x5E5\x5E6\x3\x2\x2\x2"+ + "\x5E6\x5E7\x3\x2\x2\x2\x5E7\x5FC\x5\x9CO\xF\x5E8\x5EA\a\x8E\x2\x2\x5E9"+ + "\x5EB\x5\x110\x89\x2\x5EA\x5E9\x3\x2\x2\x2\x5EA\x5EB\x3\x2\x2\x2\x5EB"+ + "\x5EC\x3\x2\x2\x2\x5EC\x5FC\x5\x9CO\b\x5ED\x5FC\x5\xEEx\x2\x5EE\x5FC\x5"+ + "\xBC_\x2\x5EF\x5F1\a\xD4\x2\x2\x5F0\x5F2\x5\x110\x89\x2\x5F1\x5F0\x3\x2"+ + "\x2\x2\x5F1\x5F2\x3\x2\x2\x2\x5F2\x5F3\x3\x2\x2\x2\x5F3\x5F5\x5\x9CO\x2"+ + "\x5F4\x5F6\x5\x110\x89\x2\x5F5\x5F4\x3\x2\x2\x2\x5F5\x5F6\x3\x2\x2\x2"+ + "\x5F6\x5F7\x3\x2\x2\x2\x5F7\x5F8\a\xDB\x2\x2\x5F8\x5FC\x3\x2\x2\x2\x5F9"+ + "\x5FC\x5\x9EP\x2\x5FA\x5FC\x5^\x30\x2\x5FB\x5CE\x3\x2\x2\x2\x5FB\x5D4"+ + "\x3\x2\x2\x2\x5FB\x5D9\x3\x2\x2\x2\x5FB\x5E3\x3\x2\x2\x2\x5FB\x5E8\x3"+ + "\x2\x2\x2\x5FB\x5ED\x3\x2\x2\x2\x5FB\x5EE\x3\x2\x2\x2\x5FB\x5EF\x3\x2"+ + "\x2\x2\x5FB\x5F9\x3\x2\x2\x2\x5FB\x5FA\x3\x2\x2\x2\x5FC\x66B\x3\x2\x2"+ + "\x2\x5FD\x5FF\f\x10\x2\x2\x5FE\x600\x5\x110\x89\x2\x5FF\x5FE\x3\x2\x2"+ + "\x2\x5FF\x600\x3\x2\x2\x2\x600\x601\x3\x2\x2\x2\x601\x603\a\xDA\x2\x2"+ + "\x602\x604\x5\x110\x89\x2\x603\x602\x3\x2\x2\x2\x603\x604\x3\x2\x2\x2"+ + "\x604\x605\x3\x2\x2\x2\x605\x66A\x5\x9CO\x11\x606\x608\f\xE\x2\x2\x607"+ + "\x609\x5\x110\x89\x2\x608\x607\x3\x2\x2\x2\x608\x609\x3\x2\x2\x2\x609"+ + "\x60A\x3\x2\x2\x2\x60A\x60C\t\f\x2\x2\x60B\x60D\x5\x110\x89\x2\x60C\x60B"+ + "\x3\x2\x2\x2\x60C\x60D\x3\x2\x2\x2\x60D\x60E\x3\x2\x2\x2\x60E\x66A\x5"+ + "\x9CO\xF\x60F\x611\f\r\x2\x2\x610\x612\x5\x110\x89\x2\x611\x610\x3\x2"+ + "\x2\x2\x611\x612\x3\x2\x2\x2\x612\x613\x3\x2\x2\x2\x613\x615\a\xCF\x2"+ + "\x2\x614\x616\x5\x110\x89\x2\x615\x614\x3\x2\x2\x2\x615\x616\x3\x2\x2"+ + "\x2\x616\x617\x3\x2\x2\x2\x617\x66A\x5\x9CO\xE\x618\x61A\f\f\x2\x2\x619"+ + "\x61B\x5\x110\x89\x2\x61A\x619\x3\x2\x2\x2\x61A\x61B\x3\x2\x2\x2\x61B"+ + "\x61C\x3\x2\x2\x2\x61C\x61E\a\x8B\x2\x2\x61D\x61F\x5\x110\x89\x2\x61E"+ + "\x61D\x3\x2\x2\x2\x61E\x61F\x3\x2\x2\x2\x61F\x620\x3\x2\x2\x2\x620\x66A"+ + "\x5\x9CO\r\x621\x623\f\v\x2\x2\x622\x624\x5\x110\x89\x2\x623\x622\x3\x2"+ + "\x2\x2\x623\x624\x3\x2\x2\x2\x624\x625\x3\x2\x2\x2\x625\x627\t\r\x2\x2"+ + "\x626\x628\x5\x110\x89\x2\x627\x626\x3\x2\x2\x2\x627\x628\x3\x2\x2\x2"+ + "\x628\x629\x3\x2\x2\x2\x629\x66A\x5\x9CO\f\x62A\x62C\f\n\x2\x2\x62B\x62D"+ + "\x5\x110\x89\x2\x62C\x62B\x3\x2\x2\x2\x62C\x62D\x3\x2\x2\x2\x62D\x62E"+ + "\x3\x2\x2\x2\x62E\x630\a\x32\x2\x2\x62F\x631\x5\x110\x89\x2\x630\x62F"+ + "\x3\x2\x2\x2\x630\x631\x3\x2\x2\x2\x631\x632\x3\x2\x2\x2\x632\x66A\x5"+ + "\x9CO\v\x633\x635\f\t\x2\x2\x634\x636\x5\x110\x89\x2\x635\x634\x3\x2\x2"+ + "\x2\x635\x636\x3\x2\x2\x2\x636\x637\x3\x2\x2\x2\x637\x639\t\xE\x2\x2\x638"+ + "\x63A\x5\x110\x89\x2\x639\x638\x3\x2\x2\x2\x639\x63A\x3\x2\x2\x2\x63A"+ + "\x63B\x3\x2\x2\x2\x63B\x66A\x5\x9CO\n\x63C\x63E\f\a\x2\x2\x63D\x63F\x5"+ + "\x110\x89\x2\x63E\x63D\x3\x2\x2\x2\x63E\x63F\x3\x2\x2\x2\x63F\x640\x3"+ + "\x2\x2\x2\x640\x642\a\x36\x2\x2\x641\x643\x5\x110\x89\x2\x642\x641\x3"+ + "\x2\x2\x2\x642\x643\x3\x2\x2\x2\x643\x644\x3\x2\x2\x2\x644\x66A\x5\x9C"+ + "O\b\x645\x647\f\x6\x2\x2\x646\x648\x5\x110\x89\x2\x647\x646\x3\x2\x2\x2"+ + "\x647\x648\x3\x2\x2\x2\x648\x649\x3\x2\x2\x2\x649\x64B\a\x9A\x2\x2\x64A"+ + "\x64C\x5\x110\x89\x2\x64B\x64A\x3\x2\x2\x2\x64B\x64C\x3\x2\x2\x2\x64C"+ + "\x64D\x3\x2\x2\x2\x64D\x66A\x5\x9CO\a\x64E\x650\f\x5\x2\x2\x64F\x651\x5"+ + "\x110\x89\x2\x650\x64F\x3\x2\x2\x2\x650\x651\x3\x2\x2\x2\x651\x652\x3"+ + "\x2\x2\x2\x652\x654\a\xCC\x2\x2\x653\x655\x5\x110\x89\x2\x654\x653\x3"+ + "\x2\x2\x2\x654\x655\x3\x2\x2\x2\x655\x656\x3\x2\x2\x2\x656\x66A\x5\x9C"+ + "O\x6\x657\x659\f\x4\x2\x2\x658\x65A\x5\x110\x89\x2\x659\x658\x3\x2\x2"+ + "\x2\x659\x65A\x3\x2\x2\x2\x65A\x65B\x3\x2\x2\x2\x65B\x65D\a\x66\x2\x2"+ + "\x65C\x65E\x5\x110\x89\x2\x65D\x65C\x3\x2\x2\x2\x65D\x65E\x3\x2\x2\x2"+ + "\x65E\x65F\x3\x2\x2\x2\x65F\x66A\x5\x9CO\x5\x660\x662\f\x3\x2\x2\x661"+ + "\x663\x5\x110\x89\x2\x662\x661\x3\x2\x2\x2\x662\x663\x3\x2\x2\x2\x663"+ + "\x664\x3\x2\x2\x2\x664\x666\ax\x2\x2\x665\x667\x5\x110\x89\x2\x666\x665"+ + "\x3\x2\x2\x2\x666\x667\x3\x2\x2\x2\x667\x668\x3\x2\x2\x2\x668\x66A\x5"+ + "\x9CO\x4\x669\x5FD\x3\x2\x2\x2\x669\x606\x3\x2\x2\x2\x669\x60F\x3\x2\x2"+ + "\x2\x669\x618\x3\x2\x2\x2\x669\x621\x3\x2\x2\x2\x669\x62A\x3\x2\x2\x2"+ + "\x669\x633\x3\x2\x2\x2\x669\x63C\x3\x2\x2\x2\x669\x645\x3\x2\x2\x2\x669"+ + "\x64E\x3\x2\x2\x2\x669\x657\x3\x2\x2\x2\x669\x660\x3\x2\x2\x2\x66A\x66D"+ + "\x3\x2\x2\x2\x66B\x669\x3\x2\x2\x2\x66B\x66C\x3\x2\x2\x2\x66C\x9D\x3\x2"+ + "\x2\x2\x66D\x66B\x3\x2\x2\x2\x66E\x66F\a\xC1\x2\x2\x66F\x670\x5\x110\x89"+ + "\x2\x670\x676\x5\x9CO\x2\x671\x672\x5\x110\x89\x2\x672\x673\a|\x2\x2\x673"+ + "\x674\x5\x110\x89\x2\x674\x675\x5\xF2z\x2\x675\x677\x3\x2\x2\x2\x676\x671"+ + "\x3\x2\x2\x2\x676\x677\x3\x2\x2\x2\x677\x9F\x3\x2\x2\x2\x678\x67C\aU\x2"+ + "\x2\x679\x67C\a\xB6\x2\x2\x67A\x67C\x5\xF6|\x2\x67B\x678\x3\x2\x2\x2\x67B"+ + "\x679\x3\x2\x2\x2\x67B\x67A\x3\x2\x2\x2\x67C\x67D\x3\x2\x2\x2\x67D\x680"+ + "\x5\x110\x89\x2\x67E\x67F\a\xCA\x2\x2\x67F\x681\x5\x110\x89\x2\x680\x67E"+ + "\x3\x2\x2\x2\x680\x681\x3\x2\x2\x2\x681\x682\x3\x2\x2\x2\x682\x683\x5"+ + "\xA2R\x2\x683\xA1\x3\x2\x2\x2\x684\x68F\x5\xA4S\x2\x685\x687\x5\x110\x89"+ + "\x2\x686\x685\x3\x2\x2\x2\x686\x687\x3\x2\x2\x2\x687\x688\x3\x2\x2\x2"+ + "\x688\x68A\a)\x2\x2\x689\x68B\x5\x110\x89\x2\x68A\x689\x3\x2\x2\x2\x68A"+ + "\x68B\x3\x2\x2\x2\x68B\x68C\x3\x2\x2\x2\x68C\x68E\x5\xA4S\x2\x68D\x686"+ + "\x3\x2\x2\x2\x68E\x691\x3\x2\x2\x2\x68F\x68D\x3\x2\x2\x2\x68F\x690\x3"+ + "\x2\x2\x2\x690\xA3\x3\x2\x2\x2\x691\x68F\x3\x2\x2\x2\x692\x6A4\x5\xDE"+ + "p\x2\x693\x695\x5\x110\x89\x2\x694\x693\x3\x2\x2\x2\x694\x695\x3\x2\x2"+ + "\x2\x695\x696\x3\x2\x2\x2\x696\x698\a\xD4\x2\x2\x697\x699\x5\x110\x89"+ + "\x2\x698\x697\x3\x2\x2\x2\x698\x699\x3\x2\x2\x2\x699\x69E\x3\x2\x2\x2"+ + "\x69A\x69C\x5\xD8m\x2\x69B\x69D\x5\x110\x89\x2\x69C\x69B\x3\x2\x2\x2\x69C"+ + "\x69D\x3\x2\x2\x2\x69D\x69F\x3\x2\x2\x2\x69E\x69A\x3\x2\x2\x2\x69E\x69F"+ + "\x3\x2\x2\x2\x69F\x6A0\x3\x2\x2\x2\x6A0\x6A2\a\xDB\x2\x2\x6A1\x6A3\x5"+ + "\x110\x89\x2\x6A2\x6A1\x3\x2\x2\x2\x6A2\x6A3\x3\x2\x2\x2\x6A3\x6A5\x3"+ + "\x2\x2\x2\x6A4\x694\x3\x2\x2\x2\x6A4\x6A5\x3\x2\x2\x2\x6A5\x6A7\x3\x2"+ + "\x2\x2\x6A6\x6A8\x5\xF4{\x2\x6A7\x6A6\x3\x2\x2\x2\x6A7\x6A8\x3\x2\x2\x2"+ + "\x6A8\x6AC\x3\x2\x2\x2\x6A9\x6AA\x5\x110\x89\x2\x6AA\x6AB\x5\xE0q\x2\x6AB"+ + "\x6AD\x3\x2\x2\x2\x6AC\x6A9\x3\x2\x2\x2\x6AC\x6AD\x3\x2\x2\x2\x6AD\xA5"+ + "\x3\x2\x2\x2\x6AE\x6AF\a\xC7\x2\x2\x6AF\x6B0\x5\x110\x89\x2\x6B0\x6B1"+ + "\x5\x9CO\x2\x6B1\x6B3\x5\x100\x81\x2\x6B2\x6B4\x5\x1E\x10\x2\x6B3\x6B2"+ + "\x3\x2\x2\x2\x6B3\x6B4\x3\x2\x2\x2\x6B4\x6B5\x3\x2\x2\x2\x6B5\x6B6\a\xC6"+ + "\x2\x2\x6B6\xA7\x3\x2\x2\x2\x6B7\x6B8\a\xC8\x2\x2\x6B8\x6B9\x5\x110\x89"+ + "\x2\x6B9\x6BB\x5\xB0Y\x2\x6BA\x6BC\x5\x110\x89\x2\x6BB\x6BA\x3\x2\x2\x2"+ + "\x6BB\x6BC\x3\x2\x2\x2\x6BC\x6BD\x3\x2\x2\x2\x6BD\x6BF\a)\x2\x2\x6BE\x6C0"+ + "\x5\x110\x89\x2\x6BF\x6BE\x3\x2\x2\x2\x6BF\x6C0\x3\x2\x2\x2\x6C0\x6C1"+ + "\x3\x2\x2\x2\x6C1\x6C2\x5\x9CO\x2\x6C2\xA9\x3\x2\x2\x2\x6C3\x6C4\a\xC9"+ + "\x2\x2\x6C4\x6C5\x5\x110\x89\x2\x6C5\x6C6\x5\xACW\x2\x6C6\x6C8\x5\x100"+ + "\x81\x2\x6C7\x6C9\x5\x1E\x10\x2\x6C8\x6C7\x3\x2\x2\x2\x6C8\x6C9\x3\x2"+ + "\x2\x2\x6C9\x6CA\x3\x2\x2\x2\x6CA\x6CB\a\x63\x2\x2\x6CB\xAB\x3\x2\x2\x2"+ + "\x6CC\x6CD\x5\x9CO\x2\x6CD\xAD\x3\x2\x2\x2\x6CE\x6CF\a\xCB\x2\x2\x6CF"+ + "\x6D0\x5\x110\x89\x2\x6D0\x6D2\x5\xB0Y\x2\x6D1\x6D3\x5\x110\x89\x2\x6D2"+ + "\x6D1\x3\x2\x2\x2\x6D2\x6D3\x3\x2\x2\x2\x6D3\x6D4\x3\x2\x2\x2\x6D4\x6D9"+ + "\a)\x2\x2\x6D5\x6D7\x5\x110\x89\x2\x6D6\x6D5\x3\x2\x2\x2\x6D6\x6D7\x3"+ + "\x2\x2\x2\x6D7\x6D8\x3\x2\x2\x2\x6D8\x6DA\x5h\x35\x2\x6D9\x6D6\x3\x2\x2"+ + "\x2\x6D9\x6DA\x3\x2\x2\x2\x6DA\xAF\x3\x2\x2\x2\x6DB\x6DD\a.\x2\x2\x6DC"+ + "\x6DB\x3\x2\x2\x2\x6DC\x6DD\x3\x2\x2\x2\x6DD\x6DE\x3\x2\x2\x2\x6DE\x6DF"+ + "\x5\x9CO\x2\x6DF\xB1\x3\x2\x2\x2\x6E0\x6E1\a@\x2\x2\x6E1\x6E2\x5\x110"+ + "\x89\x2\x6E2\x6E3\x5\xB4[\x2\x6E3\xB3\x3\x2\x2\x2\x6E4\x6E6\x5\xBC_\x2"+ + "\x6E5\x6E4\x3\x2\x2\x2\x6E5\x6E6\x3\x2\x2\x2\x6E6\x6E7\x3\x2\x2\x2\x6E7"+ + "\x6E8\a-\x2\x2\x6E8\x6EA\x5\xDEp\x2\x6E9\x6EB\x5\xF4{\x2\x6EA\x6E9\x3"+ + "\x2\x2\x2\x6EA\x6EB\x3\x2\x2\x2\x6EB\x6F9\x3\x2\x2\x2\x6EC\x6EE\x5\x110"+ + "\x89\x2\x6ED\x6EC\x3\x2\x2\x2\x6ED\x6EE\x3\x2\x2\x2\x6EE\x6EF\x3\x2\x2"+ + "\x2\x6EF\x6F1\a\xD4\x2\x2\x6F0\x6F2\x5\x110\x89\x2\x6F1\x6F0\x3\x2\x2"+ + "\x2\x6F1\x6F2\x3\x2\x2\x2\x6F2\x6F3\x3\x2\x2\x2\x6F3\x6F5\x5\xCCg\x2\x6F4"+ + "\x6F6\x5\x110\x89\x2\x6F5\x6F4\x3\x2\x2\x2\x6F5\x6F6\x3\x2\x2\x2\x6F6"+ + "\x6F7\x3\x2\x2\x2\x6F7\x6F8\a\xDB\x2\x2\x6F8\x6FA\x3\x2\x2\x2\x6F9\x6ED"+ + "\x3\x2\x2\x2\x6F9\x6FA\x3\x2\x2\x2\x6FA\x704\x3\x2\x2\x2\x6FB\x6FD\x5"+ + "\x110\x89\x2\x6FC\x6FB\x3\x2\x2\x2\x6FC\x6FD\x3\x2\x2\x2\x6FD\x6FE\x3"+ + "\x2\x2\x2\x6FE\x6FF\a\xD4\x2\x2\x6FF\x700\x5\xD8m\x2\x700\x701\a\xDB\x2"+ + "\x2\x701\x703\x3\x2\x2\x2\x702\x6FC\x3\x2\x2\x2\x703\x706\x3\x2\x2\x2"+ + "\x704\x702\x3\x2\x2\x2\x704\x705\x3\x2\x2\x2\x705\x727\x3\x2\x2\x2\x706"+ + "\x704\x3\x2\x2\x2\x707\x709\x5\xDEp\x2\x708\x70A\x5\xF4{\x2\x709\x708"+ + "\x3\x2\x2\x2\x709\x70A\x3\x2\x2\x2\x70A\x718\x3\x2\x2\x2\x70B\x70D\x5"+ + "\x110\x89\x2\x70C\x70B\x3\x2\x2\x2\x70C\x70D\x3\x2\x2\x2\x70D\x70E\x3"+ + "\x2\x2\x2\x70E\x710\a\xD4\x2\x2\x70F\x711\x5\x110\x89\x2\x710\x70F\x3"+ + "\x2\x2\x2\x710\x711\x3\x2\x2\x2\x711\x712\x3\x2\x2\x2\x712\x714\x5\xCC"+ + "g\x2\x713\x715\x5\x110\x89\x2\x714\x713\x3\x2\x2\x2\x714\x715\x3\x2\x2"+ + "\x2\x715\x716\x3\x2\x2\x2\x716\x717\a\xDB\x2\x2\x717\x719\x3\x2\x2\x2"+ + "\x718\x70C\x3\x2\x2\x2\x718\x719\x3\x2\x2\x2\x719\x723\x3\x2\x2\x2\x71A"+ + "\x71C\x5\x110\x89\x2\x71B\x71A\x3\x2\x2\x2\x71B\x71C\x3\x2\x2\x2\x71C"+ + "\x71D\x3\x2\x2\x2\x71D\x71E\a\xD4\x2\x2\x71E\x71F\x5\xD8m\x2\x71F\x720"+ + "\a\xDB\x2\x2\x720\x722\x3\x2\x2\x2\x721\x71B\x3\x2\x2\x2\x722\x725\x3"+ + "\x2\x2\x2\x723\x721\x3\x2\x2\x2\x723\x724\x3\x2\x2\x2\x724\x727\x3\x2"+ + "\x2\x2\x725\x723\x3\x2\x2\x2\x726\x6E5\x3\x2\x2\x2\x726\x707\x3\x2\x2"+ + "\x2\x727\xB5\x3\x2\x2\x2\x728\x72B\x5\xB8]\x2\x729\x72B\x5\xBA^\x2\x72A"+ + "\x728\x3\x2\x2\x2\x72A\x729\x3\x2\x2\x2\x72B\xB7\x3\x2\x2\x2\x72C\x72E"+ + "\x5\xBC_\x2\x72D\x72C\x3\x2\x2\x2\x72D\x72E\x3\x2\x2\x2\x72E\x730\x3\x2"+ + "\x2\x2\x72F\x731\x5\x110\x89\x2\x730\x72F\x3\x2\x2\x2\x730\x731\x3\x2"+ + "\x2\x2\x731\x732\x3\x2\x2\x2\x732\x734\a-\x2\x2\x733\x735\x5\x110\x89"+ + "\x2\x734\x733\x3\x2\x2\x2\x734\x735\x3\x2\x2\x2\x735\x736\x3\x2\x2\x2"+ + "\x736\x738\x5\xDCo\x2\x737\x739\x5\xF4{\x2\x738\x737\x3\x2\x2\x2\x738"+ + "\x739\x3\x2\x2\x2\x739\x73D\x3\x2\x2\x2\x73A\x73B\x5\x110\x89\x2\x73B"+ + "\x73C\x5\xCCg\x2\x73C\x73E\x3\x2\x2\x2\x73D\x73A\x3\x2\x2\x2\x73D\x73E"+ + "\x3\x2\x2\x2\x73E\x743\x3\x2\x2\x2\x73F\x741\x5\x110\x89\x2\x740\x73F"+ + "\x3\x2\x2\x2\x740\x741\x3\x2\x2\x2\x741\x742\x3\x2\x2\x2\x742\x744\x5"+ + "\xD0i\x2\x743\x740\x3\x2\x2\x2\x743\x744\x3\x2\x2\x2\x744\x74E\x3\x2\x2"+ + "\x2\x745\x747\x5\x110\x89\x2\x746\x745\x3\x2\x2\x2\x746\x747\x3\x2\x2"+ + "\x2\x747\x748\x3\x2\x2\x2\x748\x749\a\xD4\x2\x2\x749\x74A\x5\xD8m\x2\x74A"+ + "\x74B\a\xDB\x2\x2\x74B\x74D\x3\x2\x2\x2\x74C\x746\x3\x2\x2\x2\x74D\x750"+ + "\x3\x2\x2\x2\x74E\x74C\x3\x2\x2\x2\x74E\x74F\x3\x2\x2\x2\x74F\xB9\x3\x2"+ + "\x2\x2\x750\x74E\x3\x2\x2\x2\x751\x755\x5\xDEp\x2\x752\x753\x5\x110\x89"+ + "\x2\x753\x754\x5\xCCg\x2\x754\x756\x3\x2\x2\x2\x755\x752\x3\x2\x2\x2\x755"+ + "\x756\x3\x2\x2\x2\x756\x760\x3\x2\x2\x2\x757\x759\x5\x110\x89\x2\x758"+ + "\x757\x3\x2\x2\x2\x758\x759\x3\x2\x2\x2\x759\x75A\x3\x2\x2\x2\x75A\x75B"+ + "\a\xD4\x2\x2\x75B\x75C\x5\xD8m\x2\x75C\x75D\a\xDB\x2\x2\x75D\x75F\x3\x2"+ + "\x2\x2\x75E\x758\x3\x2\x2\x2\x75F\x762\x3\x2\x2\x2\x760\x75E\x3\x2\x2"+ + "\x2\x760\x761\x3\x2\x2\x2\x761\xBB\x3\x2\x2\x2\x762\x760\x3\x2\x2\x2\x763"+ + "\x768\x5\xC6\x64\x2\x764\x768\x5\xBE`\x2\x765\x768\x5\xC0\x61\x2\x766"+ + "\x768\x5\xCA\x66\x2\x767\x763\x3\x2\x2\x2\x767\x764\x3\x2\x2\x2\x767\x765"+ + "\x3\x2\x2\x2\x767\x766\x3\x2\x2\x2\x768\xBD\x3\x2\x2\x2\x769\x76B\x5\xDE"+ + "p\x2\x76A\x76C\x5\xF4{\x2\x76B\x76A\x3\x2\x2\x2\x76B\x76C\x3\x2\x2\x2"+ + "\x76C\x771\x3\x2\x2\x2\x76D\x76F\x5\x110\x89\x2\x76E\x76D\x3\x2\x2\x2"+ + "\x76E\x76F\x3\x2\x2\x2\x76F\x770\x3\x2\x2\x2\x770\x772\x5\xD0i\x2\x771"+ + "\x76E\x3\x2\x2\x2\x771\x772\x3\x2\x2\x2\x772\x77C\x3\x2\x2\x2\x773\x775"+ + "\x5\x110\x89\x2\x774\x773\x3\x2\x2\x2\x774\x775\x3\x2\x2\x2\x775\x776"+ + "\x3\x2\x2\x2\x776\x777\a\xD4\x2\x2\x777\x778\x5\xD8m\x2\x778\x779\a\xDB"+ + "\x2\x2\x779\x77B\x3\x2\x2\x2\x77A\x774\x3\x2\x2\x2\x77B\x77E\x3\x2\x2"+ + "\x2\x77C\x77A\x3\x2\x2\x2\x77C\x77D\x3\x2\x2\x2\x77D\xBF\x3\x2\x2\x2\x77E"+ + "\x77C\x3\x2\x2\x2\x77F\x782\x5\xDEp\x2\x780\x782\x5\xE2r\x2\x781\x77F"+ + "\x3\x2\x2\x2\x781\x780\x3\x2\x2\x2\x782\x784\x3\x2\x2\x2\x783\x785\x5"+ + "\xF4{\x2\x784\x783\x3\x2\x2\x2\x784\x785\x3\x2\x2\x2\x785\x787\x3\x2\x2"+ + "\x2\x786\x788\x5\x110\x89\x2\x787\x786\x3\x2\x2\x2\x787\x788\x3\x2\x2"+ + "\x2\x788\x789\x3\x2\x2\x2\x789\x78B\a\xD4\x2\x2\x78A\x78C\x5\x110\x89"+ + "\x2\x78B\x78A\x3\x2\x2\x2\x78B\x78C\x3\x2\x2\x2\x78C\x791\x3\x2\x2\x2"+ + "\x78D\x78F\x5\xCCg\x2\x78E\x790\x5\x110\x89\x2\x78F\x78E\x3\x2\x2\x2\x78F"+ + "\x790\x3\x2\x2\x2\x790\x792\x3\x2\x2\x2\x791\x78D\x3\x2\x2\x2\x791\x792"+ + "\x3\x2\x2\x2\x792\x793\x3\x2\x2\x2\x793\x798\a\xDB\x2\x2\x794\x796\x5"+ + "\x110\x89\x2\x795\x794\x3\x2\x2\x2\x795\x796\x3\x2\x2\x2\x796\x797\x3"+ + "\x2\x2\x2\x797\x799\x5\xD0i\x2\x798\x795\x3\x2\x2\x2\x798\x799\x3\x2\x2"+ + "\x2\x799\x7A3\x3\x2\x2\x2\x79A\x79C\x5\x110\x89\x2\x79B\x79A\x3\x2\x2"+ + "\x2\x79B\x79C\x3\x2\x2\x2\x79C\x79D\x3\x2\x2\x2\x79D\x79E\a\xD4\x2\x2"+ + "\x79E\x79F\x5\xD8m\x2\x79F\x7A0\a\xDB\x2\x2\x7A0\x7A2\x3\x2\x2\x2\x7A1"+ + "\x79B\x3\x2\x2\x2\x7A2\x7A5\x3\x2\x2\x2\x7A3\x7A1\x3\x2\x2\x2\x7A3\x7A4"+ + "\x3\x2\x2\x2\x7A4\xC1\x3\x2\x2\x2\x7A5\x7A3\x3\x2\x2\x2\x7A6\x7A8\x5\xDC"+ + "o\x2\x7A7\x7A9\x5\xF4{\x2\x7A8\x7A7\x3\x2\x2\x2\x7A8\x7A9\x3\x2\x2\x2"+ + "\x7A9\x7AE\x3\x2\x2\x2\x7AA\x7AC\x5\x110\x89\x2\x7AB\x7AA\x3\x2\x2\x2"+ + "\x7AB\x7AC\x3\x2\x2\x2\x7AC\x7AD\x3\x2\x2\x2\x7AD\x7AF\x5\xD0i\x2\x7AE"+ + "\x7AB\x3\x2\x2\x2\x7AE\x7AF\x3\x2\x2\x2\x7AF\x7B9\x3\x2\x2\x2\x7B0\x7B2"+ + "\x5\x110\x89\x2\x7B1\x7B0\x3\x2\x2\x2\x7B1\x7B2\x3\x2\x2\x2\x7B2\x7B3"+ + "\x3\x2\x2\x2\x7B3\x7B4\a\xD4\x2\x2\x7B4\x7B5\x5\xD8m\x2\x7B5\x7B6\a\xDB"+ + "\x2\x2\x7B6\x7B8\x3\x2\x2\x2\x7B7\x7B1\x3\x2\x2\x2\x7B8\x7BB\x3\x2\x2"+ + "\x2\x7B9\x7B7\x3\x2\x2\x2\x7B9\x7BA\x3\x2\x2\x2\x7BA\xC3\x3\x2\x2\x2\x7BB"+ + "\x7B9\x3\x2\x2\x2\x7BC\x7BF\x5\xDCo\x2\x7BD\x7BF\x5\xE2r\x2\x7BE\x7BC"+ + "\x3\x2\x2\x2\x7BE\x7BD\x3\x2\x2\x2\x7BF\x7C1\x3\x2\x2\x2\x7C0\x7C2\x5"+ + "\xF4{\x2\x7C1\x7C0\x3\x2\x2\x2\x7C1\x7C2\x3\x2\x2\x2\x7C2\x7C4\x3\x2\x2"+ + "\x2\x7C3\x7C5\x5\x110\x89\x2\x7C4\x7C3\x3\x2\x2\x2\x7C4\x7C5\x3\x2\x2"+ + "\x2\x7C5\x7C6\x3\x2\x2\x2\x7C6\x7C8\a\xD4\x2\x2\x7C7\x7C9\x5\x110\x89"+ + "\x2\x7C8\x7C7\x3\x2\x2\x2\x7C8\x7C9\x3\x2\x2\x2\x7C9\x7CE\x3\x2\x2\x2"+ + "\x7CA\x7CC\x5\xCCg\x2\x7CB\x7CD\x5\x110\x89\x2\x7CC\x7CB\x3\x2\x2\x2\x7CC"+ + "\x7CD\x3\x2\x2\x2\x7CD\x7CF\x3\x2\x2\x2\x7CE\x7CA\x3\x2\x2\x2\x7CE\x7CF"+ + "\x3\x2\x2\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0\x7D5\a\xDB\x2\x2\x7D1\x7D3\x5"+ + "\x110\x89\x2\x7D2\x7D1\x3\x2\x2\x2\x7D2\x7D3\x3\x2\x2\x2\x7D3\x7D4\x3"+ + "\x2\x2\x2\x7D4\x7D6\x5\xD0i\x2\x7D5\x7D2\x3\x2\x2\x2\x7D5\x7D6\x3\x2\x2"+ + "\x2\x7D6\x7E0\x3\x2\x2\x2\x7D7\x7D9\x5\x110\x89\x2\x7D8\x7D7\x3\x2\x2"+ + "\x2\x7D8\x7D9\x3\x2\x2\x2\x7D9\x7DA\x3\x2\x2\x2\x7DA\x7DB\a\xD4\x2\x2"+ + "\x7DB\x7DC\x5\xD8m\x2\x7DC\x7DD\a\xDB\x2\x2\x7DD\x7DF\x3\x2\x2\x2\x7DE"+ + "\x7D8\x3\x2\x2\x2\x7DF\x7E2\x3\x2\x2\x2\x7E0\x7DE\x3\x2\x2\x2\x7E0\x7E1"+ + "\x3\x2\x2\x2\x7E1\xC5\x3\x2\x2\x2\x7E2\x7E0\x3\x2\x2\x2\x7E3\x7E6\x5\xBE"+ + "`\x2\x7E4\x7E6\x5\xC0\x61\x2\x7E5\x7E3\x3\x2\x2\x2\x7E5\x7E4\x3\x2\x2"+ + "\x2\x7E5\x7E6\x3\x2\x2\x2\x7E6\x7EB\x3\x2\x2\x2\x7E7\x7E9\x5\xC8\x65\x2"+ + "\x7E8\x7EA\x5\x110\x89\x2\x7E9\x7E8\x3\x2\x2\x2\x7E9\x7EA\x3\x2\x2\x2"+ + "\x7EA\x7EC\x3\x2\x2\x2\x7EB\x7E7\x3\x2\x2\x2\x7EC\x7ED\x3\x2\x2\x2\x7ED"+ + "\x7EB\x3\x2\x2\x2\x7ED\x7EE\x3\x2\x2\x2\x7EE\x7F3\x3\x2\x2\x2\x7EF\x7F1"+ + "\x5\x110\x89\x2\x7F0\x7EF\x3\x2\x2\x2\x7F0\x7F1\x3\x2\x2\x2\x7F1\x7F2"+ + "\x3\x2\x2\x2\x7F2\x7F4\x5\xD0i\x2\x7F3\x7F0\x3\x2\x2\x2\x7F3\x7F4\x3\x2"+ + "\x2\x2\x7F4\x7FE\x3\x2\x2\x2\x7F5\x7F7\x5\x110\x89\x2\x7F6\x7F5\x3\x2"+ + "\x2\x2\x7F6\x7F7\x3\x2\x2\x2\x7F7\x7F8\x3\x2\x2\x2\x7F8\x7F9\a\xD4\x2"+ + "\x2\x7F9\x7FA\x5\xD8m\x2\x7FA\x7FB\a\xDB\x2\x2\x7FB\x7FD\x3\x2\x2\x2\x7FC"+ + "\x7F6\x3\x2\x2\x2\x7FD\x800\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2\x7FE\x7FF"+ + "\x3\x2\x2\x2\x7FF\xC7\x3\x2\x2\x2\x800\x7FE\x3\x2\x2\x2\x801\x803\t\xF"+ + "\x2\x2\x802\x804\x5\x110\x89\x2\x803\x802\x3\x2\x2\x2\x803\x804\x3\x2"+ + "\x2\x2\x804\x807\x3\x2\x2\x2\x805\x808\x5\xC2\x62\x2\x806\x808\x5\xC4"+ + "\x63\x2\x807\x805\x3\x2\x2\x2\x807\x806\x3\x2\x2\x2\x808\xC9\x3\x2\x2"+ + "\x2\x809\x80B\x5\x110\x89\x2\x80A\x809\x3\x2\x2\x2\x80A\x80B\x3\x2\x2"+ + "\x2\x80B\x80C\x3\x2\x2\x2\x80C\x80D\x5\xD0i\x2\x80D\xCB\x3\x2\x2\x2\x80E"+ + "\x810\x5\xCEh\x2\x80F\x80E\x3\x2\x2\x2\x80F\x810\x3\x2\x2\x2\x810\x812"+ + "\x3\x2\x2\x2\x811\x813\x5\x110\x89\x2\x812\x811\x3\x2\x2\x2\x812\x813"+ + "\x3\x2\x2\x2\x813\x814\x3\x2\x2\x2\x814\x816\t\n\x2\x2\x815\x817\x5\x110"+ + "\x89\x2\x816\x815\x3\x2\x2\x2\x816\x817\x3\x2\x2\x2\x817\x819\x3\x2\x2"+ + "\x2\x818\x80F\x3\x2\x2\x2\x819\x81C\x3\x2\x2\x2\x81A\x818\x3\x2\x2\x2"+ + "\x81A\x81B\x3\x2\x2\x2\x81B\x81D\x3\x2\x2\x2\x81C\x81A\x3\x2\x2\x2\x81D"+ + "\x82A\x5\xCEh\x2\x81E\x820\x5\x110\x89\x2\x81F\x81E\x3\x2\x2\x2\x81F\x820"+ + "\x3\x2\x2\x2\x820\x821\x3\x2\x2\x2\x821\x823\t\n\x2\x2\x822\x824\x5\x110"+ + "\x89\x2\x823\x822\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x826\x3\x2\x2"+ + "\x2\x825\x827\x5\xCEh\x2\x826\x825\x3\x2\x2\x2\x826\x827\x3\x2\x2\x2\x827"+ + "\x829\x3\x2\x2\x2\x828\x81F\x3\x2\x2\x2\x829\x82C\x3\x2\x2\x2\x82A\x828"+ + "\x3\x2\x2\x2\x82A\x82B\x3\x2\x2\x2\x82B\xCD\x3\x2\x2\x2\x82C\x82A\x3\x2"+ + "\x2\x2\x82D\x82F\a\xD4\x2\x2\x82E\x82D\x3\x2\x2\x2\x82E\x82F\x3\x2\x2"+ + "\x2\x82F\x832\x3\x2\x2\x2\x830\x831\t\x10\x2\x2\x831\x833\x5\x110\x89"+ + "\x2\x832\x830\x3\x2\x2\x2\x832\x833\x3\x2\x2\x2\x833\x835\x3\x2\x2\x2"+ + "\x834\x836\a\xDB\x2\x2\x835\x834\x3\x2\x2\x2\x835\x836\x3\x2\x2\x2\x836"+ + "\x837\x3\x2\x2\x2\x837\x838\x5\x9CO\x2\x838\xCF\x3\x2\x2\x2\x839\x83B"+ + "\a,\x2\x2\x83A\x83C\x5\x110\x89\x2\x83B\x83A\x3\x2\x2\x2\x83B\x83C\x3"+ + "\x2\x2\x2\x83C\x83D\x3\x2\x2\x2\x83D\x83F\x5\xDCo\x2\x83E\x840\x5\xF4"+ + "{\x2\x83F\x83E\x3\x2\x2\x2\x83F\x840\x3\x2\x2\x2\x840\xD1\x3\x2\x2\x2"+ + "\x841\x853\a\xD4\x2\x2\x842\x844\x5\x110\x89\x2\x843\x842\x3\x2\x2\x2"+ + "\x843\x844\x3\x2\x2\x2\x844\x845\x3\x2\x2\x2\x845\x850\x5\xD4k\x2\x846"+ + "\x848\x5\x110\x89\x2\x847\x846\x3\x2\x2\x2\x847\x848\x3\x2\x2\x2\x848"+ + "\x849\x3\x2\x2\x2\x849\x84B\a)\x2\x2\x84A\x84C\x5\x110\x89\x2\x84B\x84A"+ + "\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84D\x3\x2\x2\x2\x84D\x84F\x5"+ + "\xD4k\x2\x84E\x847\x3\x2\x2\x2\x84F\x852\x3\x2\x2\x2\x850\x84E\x3\x2\x2"+ + "\x2\x850\x851\x3\x2\x2\x2\x851\x854\x3\x2\x2\x2\x852\x850\x3\x2\x2\x2"+ + "\x853\x843\x3\x2\x2\x2\x853\x854\x3\x2\x2\x2\x854\x856\x3\x2\x2\x2\x855"+ + "\x857\x5\x110\x89\x2\x856\x855\x3\x2\x2\x2\x856\x857\x3\x2\x2\x2\x857"+ + "\x858\x3\x2\x2\x2\x858\x859\a\xDB\x2\x2\x859\xD3\x3\x2\x2\x2\x85A\x85B"+ + "\a\x95\x2\x2\x85B\x85D\x5\x110\x89\x2\x85C\x85A\x3\x2\x2\x2\x85C\x85D"+ + "\x3\x2\x2\x2\x85D\x860\x3\x2\x2\x2\x85E\x85F\t\x11\x2\x2\x85F\x861\x5"+ + "\x110\x89\x2\x860\x85E\x3\x2\x2\x2\x860\x861\x3\x2\x2\x2\x861\x864\x3"+ + "\x2\x2\x2\x862\x863\a\x9C\x2\x2\x863\x865\x5\x110\x89\x2\x864\x862\x3"+ + "\x2\x2\x2\x864\x865\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x868\x5\xDC"+ + "o\x2\x867\x869\x5\xF4{\x2\x868\x867\x3\x2\x2\x2\x868\x869\x3\x2\x2\x2"+ + "\x869\x872\x3\x2\x2\x2\x86A\x86C\x5\x110\x89\x2\x86B\x86A\x3\x2\x2\x2"+ + "\x86B\x86C\x3\x2\x2\x2\x86C\x86D\x3\x2\x2\x2\x86D\x86F\a\xD4\x2\x2\x86E"+ + "\x870\x5\x110\x89\x2\x86F\x86E\x3\x2\x2\x2\x86F\x870\x3\x2\x2\x2\x870"+ + "\x871\x3\x2\x2\x2\x871\x873\a\xDB\x2\x2\x872\x86B\x3\x2\x2\x2\x872\x873"+ + "\x3\x2\x2\x2\x873\x878\x3\x2\x2\x2\x874\x876\x5\x110\x89\x2\x875\x874"+ + "\x3\x2\x2\x2\x875\x876\x3\x2\x2\x2\x876\x877\x3\x2\x2\x2\x877\x879\x5"+ + "\xE0q\x2\x878\x875\x3\x2\x2\x2\x878\x879\x3\x2\x2\x2\x879\x87E\x3\x2\x2"+ + "\x2\x87A\x87C\x5\x110\x89\x2\x87B\x87A\x3\x2\x2\x2\x87B\x87C\x3\x2\x2"+ + "\x2\x87C\x87D\x3\x2\x2\x2\x87D\x87F\x5\xD6l\x2\x87E\x87B\x3\x2\x2\x2\x87E"+ + "\x87F\x3\x2\x2\x2\x87F\xD5\x3\x2\x2\x2\x880\x882\a\xD0\x2\x2\x881\x883"+ + "\x5\x110\x89\x2\x882\x881\x3\x2\x2\x2\x882\x883\x3\x2\x2\x2\x883\x884"+ + "\x3\x2\x2\x2\x884\x885\x5\x9CO\x2\x885\xD7\x3\x2\x2\x2\x886\x891\x5\xDA"+ + "n\x2\x887\x889\x5\x110\x89\x2\x888\x887\x3\x2\x2\x2\x888\x889\x3\x2\x2"+ + "\x2\x889\x88A\x3\x2\x2\x2\x88A\x88C\a)\x2\x2\x88B\x88D\x5\x110\x89\x2"+ + "\x88C\x88B\x3\x2\x2\x2\x88C\x88D\x3\x2\x2\x2\x88D\x88E\x3\x2\x2\x2\x88E"+ + "\x890\x5\xDAn\x2\x88F\x888\x3\x2\x2\x2\x890\x893\x3\x2\x2\x2\x891\x88F"+ + "\x3\x2\x2\x2\x891\x892\x3\x2\x2\x2\x892\xD9\x3\x2\x2\x2\x893\x891\x3\x2"+ + "\x2\x2\x894\x895\x5\x9CO\x2\x895\x896\x5\x110\x89\x2\x896\x897\a\xBE\x2"+ + "\x2\x897\x898\x5\x110\x89\x2\x898\x89A\x3\x2\x2\x2\x899\x894\x3\x2\x2"+ + "\x2\x899\x89A\x3\x2\x2\x2\x89A\x89B\x3\x2\x2\x2\x89B\x89C\x5\x9CO\x2\x89C"+ + "\xDB\x3\x2\x2\x2\x89D\x8A1\x5\xDEp\x2\x89E\x8A1\x5\xFC\x7F\x2\x89F\x8A1"+ + "\x5\xFA~\x2\x8A0\x89D\x3\x2\x2\x2\x8A0\x89E\x3\x2\x2\x2\x8A0\x89F\x3\x2"+ + "\x2\x2\x8A1\xDD\x3\x2\x2\x2\x8A2\x8A5\a\xEF\x2\x2\x8A3\x8A5\x5\xF8}\x2"+ + "\x8A4\x8A2\x3\x2\x2\x2\x8A4\x8A3\x3\x2\x2\x2\x8A5\xDF\x3\x2\x2\x2\x8A6"+ + "\x8A8\a\x39\x2\x2\x8A7\x8A9\x5\x110\x89\x2\x8A8\x8A7\x3\x2\x2\x2\x8A8"+ + "\x8A9\x3\x2\x2\x2\x8A9\x8AC\x3\x2\x2\x2\x8AA\x8AB\a\x8D\x2\x2\x8AB\x8AD"+ + "\x5\x110\x89\x2\x8AC\x8AA\x3\x2\x2\x2\x8AC\x8AD\x3\x2\x2\x2\x8AD\x8AE"+ + "\x3\x2\x2\x2\x8AE\x8B3\x5\xF2z\x2\x8AF\x8B1\x5\x110\x89\x2\x8B0\x8AF\x3"+ + "\x2\x2\x2\x8B0\x8B1\x3\x2\x2\x2\x8B1\x8B2\x3\x2\x2\x2\x8B2\x8B4\x5\xE8"+ + "u\x2\x8B3\x8B0\x3\x2\x2\x2\x8B3\x8B4\x3\x2\x2\x2\x8B4\xE1\x3\x2\x2\x2"+ + "\x8B5\x8B6\t\x12\x2\x2\x8B6\xE3\x3\x2\x2\x2\x8B7\x8B8\t\xE\x2\x2\x8B8"+ + "\xE5\x3\x2\x2\x2\x8B9\x8BE\x5\xDEp\x2\x8BA\x8BB\t\xF\x2\x2\x8BB\x8BD\x5"+ + "\xDEp\x2\x8BC\x8BA\x3\x2\x2\x2\x8BD\x8C0\x3\x2\x2\x2\x8BE\x8BC\x3\x2\x2"+ + "\x2\x8BE\x8BF\x3\x2\x2\x2\x8BF\xE7\x3\x2\x2\x2\x8C0\x8BE\x3\x2\x2\x2\x8C1"+ + "\x8C3\a\xD7\x2\x2\x8C2\x8C4\x5\x110\x89\x2\x8C3\x8C2\x3\x2\x2\x2\x8C3"+ + "\x8C4\x3\x2\x2\x2\x8C4\x8C7\x3\x2\x2\x2\x8C5\x8C8\x5\xF0y\x2\x8C6\x8C8"+ + "\x5\xDEp\x2\x8C7\x8C5\x3\x2\x2\x2\x8C7\x8C6\x3\x2\x2\x2\x8C8\xE9\x3\x2"+ + "\x2\x2\x8C9\x8D2\x5\xDEp\x2\x8CA\x8CC\x5\x110\x89\x2\x8CB\x8CA\x3\x2\x2"+ + "\x2\x8CB\x8CC\x3\x2\x2\x2\x8CC\x8CD\x3\x2\x2\x2\x8CD\x8CF\a\xD6\x2\x2"+ + "\x8CE\x8D0\x5\x110\x89\x2\x8CF\x8CE\x3\x2\x2\x2\x8CF\x8D0\x3\x2\x2\x2"+ + "\x8D0\x8D1\x3\x2\x2\x2\x8D1\x8D3\x5\xDEp\x2\x8D2\x8CB\x3\x2\x2\x2\x8D2"+ + "\x8D3\x3\x2\x2\x2\x8D3\xEB\x3\x2\x2\x2\x8D4\x8D7\x5\xDEp\x2\x8D5\x8D7"+ + "\x5\xF0y\x2\x8D6\x8D4\x3\x2\x2\x2\x8D6\x8D5\x3\x2\x2\x2\x8D7\x8D8\x3\x2"+ + "\x2\x2\x8D8\x8D9\a*\x2\x2\x8D9\xED\x3\x2\x2\x2\x8DA\x8E3\x5\xF0y\x2\x8DB"+ + "\x8E3\a\xE8\x2\x2\x8DC\x8E3\a\xE3\x2\x2\x8DD\x8E3\a\xBF\x2\x2\x8DE\x8E3"+ + "\ao\x2\x2\x8DF\x8E3\a\x8F\x2\x2\x8E0\x8E3\a\x90\x2\x2\x8E1\x8E3\a[\x2"+ + "\x2\x8E2\x8DA\x3\x2\x2\x2\x8E2\x8DB\x3\x2\x2\x2\x8E2\x8DC\x3\x2\x2\x2"+ + "\x8E2\x8DD\x3\x2\x2\x2\x8E2\x8DE\x3\x2\x2\x2\x8E2\x8DF\x3\x2\x2\x2\x8E2"+ + "\x8E0\x3\x2\x2\x2\x8E2\x8E1\x3\x2\x2\x2\x8E3\xEF\x3\x2\x2\x2\x8E4\x8E5"+ + "\t\x13\x2\x2\x8E5\xF1\x3\x2\x2\x2\x8E6\x8E9\x5\xE2r\x2\x8E7\x8E9\x5\xE6"+ + "t\x2\x8E8\x8E6\x3\x2\x2\x2\x8E8\x8E7\x3\x2\x2\x2\x8E9\x8F2\x3\x2\x2\x2"+ + "\x8EA\x8EC\x5\x110\x89\x2\x8EB\x8EA\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2"+ + "\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EF\a\xD4\x2\x2\x8EE\x8F0\x5\x110\x89\x2"+ + "\x8EF\x8EE\x3\x2\x2\x2\x8EF\x8F0\x3\x2\x2\x2\x8F0\x8F1\x3\x2\x2\x2\x8F1"+ + "\x8F3\a\xDB\x2\x2\x8F2\x8EB\x3\x2\x2\x2\x8F2\x8F3\x3\x2\x2\x2\x8F3\xF3"+ + "\x3\x2\x2\x2\x8F4\x8F5\t\x14\x2\x2\x8F5\xF5\x3\x2\x2\x2\x8F6\x8F7\t\x15"+ + "\x2\x2\x8F7\xF7\x3\x2\x2\x2\x8F8\x8F9\t\x16\x2\x2\x8F9\xF9\x3\x2\x2\x2"+ + "\x8FA\x8FB\a\x39\x2\x2\x8FB\xFB\x3\x2\x2\x2\x8FC\x8FD\t\x17\x2\x2\x8FD"+ + "\xFD\x3\x2\x2\x2\x8FE\x900\x5\x110\x89\x2\x8FF\x8FE\x3\x2\x2\x2\x8FF\x900"+ + "\x3\x2\x2\x2\x900\x908\x3\x2\x2\x2\x901\x903\a\xE9\x2\x2\x902\x901\x3"+ + "\x2\x2\x2\x903\x904\x3\x2\x2\x2\x904\x902\x3\x2\x2\x2\x904\x905\x3\x2"+ + "\x2\x2\x905\x909\x3\x2\x2\x2\x906\x909\x5\x104\x83\x2\x907\x909\x5\x102"+ + "\x82\x2\x908\x902\x3\x2\x2\x2\x908\x906\x3\x2\x2\x2\x908\x907\x3\x2\x2"+ + "\x2\x909\x90B\x3\x2\x2\x2\x90A\x90C\x5\x110\x89\x2\x90B\x90A\x3\x2\x2"+ + "\x2\x90B\x90C\x3\x2\x2\x2\x90C\x912\x3\x2\x2\x2\x90D\x90F\x5\x110\x89"+ + "\x2\x90E\x90D\x3\x2\x2\x2\x90E\x90F\x3\x2\x2\x2\x90F\x910\x3\x2\x2\x2"+ + "\x910\x912\x5\x106\x84\x2\x911\x8FF\x3\x2\x2\x2\x911\x90E\x3\x2\x2\x2"+ + "\x912\xFF\x3\x2\x2\x2\x913\x91C\x5\xFE\x80\x2\x914\x916\x5\x110\x89\x2"+ + "\x915\x914\x3\x2\x2\x2\x915\x916\x3\x2\x2\x2\x916\x917\x3\x2\x2\x2\x917"+ + "\x919\a*\x2\x2\x918\x91A\x5\x110\x89\x2\x919\x918\x3\x2\x2\x2\x919\x91A"+ + "\x3\x2\x2\x2\x91A\x91C\x3\x2\x2\x2\x91B\x913\x3\x2\x2\x2\x91B\x915\x3"+ + "\x2\x2\x2\x91C\x91F\x3\x2\x2\x2\x91D\x91B\x3\x2\x2\x2\x91D\x91E\x3\x2"+ + "\x2\x2\x91E\x101\x3\x2\x2\x2\x91F\x91D\x3\x2\x2\x2\x920\x921\a\xEA\x2"+ + "\x2\x921\x103\x3\x2\x2\x2\x922\x923\t\x18\x2\x2\x923\x105\x3\x2\x2\x2"+ + "\x924\x926\a\xEC\x2\x2\x925\x927\x5\x108\x85\x2\x926\x925\x3\x2\x2\x2"+ + "\x927\x928\x3\x2\x2\x2\x928\x926\x3\x2\x2\x2\x928\x929\x3\x2\x2\x2\x929"+ + "\x107\x3\x2\x2\x2\x92A\x92B\a/\x2\x2\x92B\x92D\x5\x10A\x86\x2\x92C\x92E"+ + "\x5\x10C\x87\x2\x92D\x92C\x3\x2\x2\x2\x92D\x92E\x3\x2\x2\x2\x92E\x109"+ + "\x3\x2\x2\x2\x92F\x930\a\xEF\x2\x2\x930\x10B\x3\x2\x2\x2\x931\x932\x5"+ + "\x110\x89\x2\x932\x934\x5\x10E\x88\x2\x933\x935\x5\x110\x89\x2\x934\x933"+ + "\x3\x2\x2\x2\x934\x935\x3\x2\x2\x2\x935\x96F\x3\x2\x2\x2\x936\x937\x5"+ + "\x110\x89\x2\x937\x940\x5\x10E\x88\x2\x938\x93A\x5\x110\x89\x2\x939\x938"+ + "\x3\x2\x2\x2\x939\x93A\x3\x2\x2\x2\x93A\x93B\x3\x2\x2\x2\x93B\x93D\a)"+ + "\x2\x2\x93C\x93E\x5\x110\x89\x2\x93D\x93C\x3\x2\x2\x2\x93D\x93E\x3\x2"+ + "\x2\x2\x93E\x93F\x3\x2\x2\x2\x93F\x941\x5\x10E\x88\x2\x940\x939\x3\x2"+ + "\x2\x2\x941\x942\x3\x2\x2\x2\x942\x940\x3\x2\x2\x2\x942\x943\x3\x2\x2"+ + "\x2\x943\x945\x3\x2\x2\x2\x944\x946\x5\x110\x89\x2\x945\x944\x3\x2\x2"+ + "\x2\x945\x946\x3\x2\x2\x2\x946\x96F\x3\x2\x2\x2\x947\x949\x5\x110\x89"+ + "\x2\x948\x947\x3\x2\x2\x2\x948\x949\x3\x2\x2\x2\x949\x94A\x3\x2\x2\x2"+ + "\x94A\x94C\a\xD4\x2\x2\x94B\x94D\x5\x110\x89\x2\x94C\x94B\x3\x2\x2\x2"+ + "\x94C\x94D\x3\x2\x2\x2\x94D\x94E\x3\x2\x2\x2\x94E\x950\x5\x10E\x88\x2"+ + "\x94F\x951\x5\x110\x89\x2\x950\x94F\x3\x2\x2\x2\x950\x951\x3\x2\x2\x2"+ + "\x951\x952\x3\x2\x2\x2\x952\x954\a\xDB\x2\x2\x953\x955\x5\x110\x89\x2"+ + "\x954\x953\x3\x2\x2\x2\x954\x955\x3\x2\x2\x2\x955\x96F\x3\x2\x2\x2\x956"+ + "\x958\x5\x110\x89\x2\x957\x956\x3\x2\x2\x2\x957\x958\x3\x2\x2\x2\x958"+ + "\x959\x3\x2\x2\x2\x959\x95A\a\xD4\x2\x2\x95A\x963\x5\x10E\x88\x2\x95B"+ + "\x95D\x5\x110\x89\x2\x95C\x95B\x3\x2\x2\x2\x95C\x95D\x3\x2\x2\x2\x95D"+ + "\x95E\x3\x2\x2\x2\x95E\x960\a)\x2\x2\x95F\x961\x5\x110\x89\x2\x960\x95F"+ + "\x3\x2\x2\x2\x960\x961\x3\x2\x2\x2\x961\x962\x3\x2\x2\x2\x962\x964\x5"+ + "\x10E\x88\x2\x963\x95C\x3\x2\x2\x2\x964\x965\x3\x2\x2\x2\x965\x963\x3"+ + "\x2\x2\x2\x965\x966\x3\x2\x2\x2\x966\x968\x3\x2\x2\x2\x967\x969\x5\x110"+ + "\x89\x2\x968\x967\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969\x96A\x3\x2\x2"+ + "\x2\x96A\x96C\a\xDB\x2\x2\x96B\x96D\x5\x110\x89\x2\x96C\x96B\x3\x2\x2"+ + "\x2\x96C\x96D\x3\x2\x2\x2\x96D\x96F\x3\x2\x2\x2\x96E\x931\x3\x2\x2\x2"+ + "\x96E\x936\x3\x2\x2\x2\x96E\x948\x3\x2\x2\x2\x96E\x957\x3\x2\x2\x2\x96F"+ + "\x10D\x3\x2\x2\x2\x970\x971\x5\x9CO\x2\x971\x10F\x3\x2\x2\x2\x972\x974"+ + "\t\x19\x2\x2\x973\x972\x3\x2\x2\x2\x974\x975\x3\x2\x2\x2\x975\x973\x3"+ + "\x2\x2\x2\x975\x976\x3\x2\x2\x2\x976\x111\x3\x2\x2\x2\x1A6\x116\x11C\x11F"+ + "\x123\x127\x12B\x12F\x135\x138\x142\x144\x14A\x152\x159\x15F\x168\x170"+ + "\x17F\x189\x191\x19B\x1A1\x1A5\x1A9\x1AD\x1B2\x1BF\x1F2\x1F8\x1FC\x201"+ + "\x204\x209\x20F\x213\x218\x21D\x222\x225\x229\x230\x236\x23A\x23D\x242"+ + "\x24D\x250\x253\x258\x25E\x262\x267\x26D\x278\x27F\x287\x28C\x295\x29C"+ + "\x2A0\x2A3\x2AB\x2AF\x2B4\x2BE\x2C4\x2D5\x2DB\x2E1\x2E5\x2F1\x2F5\x2FB"+ + "\x300\x304\x308\x30C\x30F\x312\x315\x318\x31C\x326\x32A\x32D\x330\x334"+ + "\x34C\x352\x356\x35A\x363\x36E\x373\x37D\x381\x386\x38A\x38E\x392\x39A"+ + "\x39E\x3A6\x3AA\x3B2\x3B4\x3BA\x3BE\x3C4\x3C8\x3CC\x3DA\x3E4\x3E8\x3ED"+ + "\x3F8\x3FC\x401\x410\x415\x41E\x422\x426\x42A\x42E\x431\x435\x439\x43C"+ + "\x440\x443\x447\x449\x44E\x452\x456\x45A\x45C\x462\x466\x469\x46E\x472"+ + "\x478\x47B\x47E\x483\x487\x48E\x492\x498\x49B\x49F\x4A6\x4AA\x4B0\x4B3"+ + "\x4B7\x4BF\x4C3\x4C6\x4C9\x4CD\x4D5\x4D9\x4DD\x4DF\x4E2\x4E8\x4EC\x4F0"+ + "\x4F5\x4FA\x4FE\x502\x508\x510\x512\x51A\x51E\x528\x52C\x539\x540\x544"+ + "\x54F\x556\x55B\x55F\x564\x567\x56D\x571\x578\x57C\x580\x584\x587\x58B"+ + "\x594\x59D\x5A4\x5A8\x5AB\x5AE\x5B1\x5B6\x5BE\x5C2\x5CA\x5CC\x5D1\x5D6"+ + "\x5DB\x5DF\x5E5\x5EA\x5F1\x5F5\x5FB\x5FF\x603\x608\x60C\x611\x615\x61A"+ + "\x61E\x623\x627\x62C\x630\x635\x639\x63E\x642\x647\x64B\x650\x654\x659"+ + "\x65D\x662\x666\x669\x66B\x676\x67B\x680\x686\x68A\x68F\x694\x698\x69C"+ + "\x69E\x6A2\x6A4\x6A7\x6AC\x6B3\x6BB\x6BF\x6C8\x6D2\x6D6\x6D9\x6DC\x6E5"+ + "\x6EA\x6ED\x6F1\x6F5\x6F9\x6FC\x704\x709\x70C\x710\x714\x718\x71B\x723"+ + "\x726\x72A\x72D\x730\x734\x738\x73D\x740\x743\x746\x74E\x755\x758\x760"+ + "\x767\x76B\x76E\x771\x774\x77C\x781\x784\x787\x78B\x78F\x791\x795\x798"+ + "\x79B\x7A3\x7A8\x7AB\x7AE\x7B1\x7B9\x7BE\x7C1\x7C4\x7C8\x7CC\x7CE\x7D2"+ + "\x7D5\x7D8\x7E0\x7E5\x7E9\x7ED\x7F0\x7F3\x7F6\x7FE\x803\x807\x80A\x80F"+ + "\x812\x816\x81A\x81F\x823\x826\x82A\x82E\x832\x835\x83B\x83F\x843\x847"+ + "\x84B\x850\x853\x856\x85C\x860\x864\x868\x86B\x86F\x872\x875\x878\x87B"+ + "\x87E\x882\x888\x88C\x891\x899\x8A0\x8A4\x8A8\x8AC\x8B0\x8B3\x8BE\x8C3"+ + "\x8C7\x8CB\x8CF\x8D2\x8D6\x8E2\x8E8\x8EB\x8EF\x8F2\x8FF\x904\x908\x90B"+ + "\x90E\x911\x915\x919\x91B\x91D\x928\x92D\x934\x939\x93D\x942\x945\x948"+ + "\x94C\x950\x954\x957\x95C\x960\x965\x968\x96C\x96E\x975"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index bc87bc58f5..fde861fd3b 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -124,6 +124,7 @@ blockStmt : | seekStmt | selectCaseStmt | setStmt + | stopStmt | unlockStmt | variableStmt | whileWendStmt @@ -302,6 +303,9 @@ returnStmt : RETURN; rsetStmt : RSET whiteSpace valueStmt whiteSpace? EQ whiteSpace? valueStmt; +// 5.4.2.11 Stop Statement +stopStmt : STOP; + seekStmt : SEEK whiteSpace fileNumber whiteSpace? COMMA whiteSpace? valueStmt; selectCaseStmt : @@ -353,7 +357,7 @@ valueStmt : | typeOfIsExpression # vsTypeOf | midStmt # vsMid | ADDRESSOF whiteSpace? valueStmt # vsAddressOf - | implicitCallStmt_InStmt whiteSpace? ASSIGN whiteSpace? valueStmt # vsAssign + | unrestrictedIdentifier whiteSpace? ASSIGN whiteSpace? valueStmt # vsAssign | valueStmt whiteSpace? POW whiteSpace? valueStmt # vsPow | MINUS whiteSpace? valueStmt # vsNegation | valueStmt whiteSpace? (MULT | DIV) whiteSpace? valueStmt # vsMult diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs index 6ed11ce4b5..744a13f161 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseListener.cs @@ -1827,6 +1827,19 @@ public virtual void EnterIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmt /// The parse tree. public virtual void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterStopStmt([NotNull] VBAParser.StopStmtContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitStopStmt([NotNull] VBAParser.StopStmtContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs index bcfcac8a59..bc4c200133 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserBaseVisitor.cs @@ -1550,6 +1550,17 @@ public partial class VBAParserBaseVisitor : AbstractParseTreeVisitorThe visitor result. public virtual Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserListener.cs b/Rubberduck.Parsing/Grammar/VBAParserListener.cs index 4f7421eeb1..534de2cbfb 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserListener.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserListener.cs @@ -1607,6 +1607,17 @@ public interface IVBAParserListener : IParseTreeListener { /// The parse tree. void ExitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterStopStmt([NotNull] VBAParser.StopStmtContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitStopStmt([NotNull] VBAParser.StopStmtContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs index ebf5d65f3f..a506ac6608 100644 --- a/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs +++ b/Rubberduck.Parsing/Grammar/VBAParserVisitor.cs @@ -1026,6 +1026,13 @@ public interface IVBAParserVisitor : IParseTreeVisitor { /// The visitor result. Result VisitIfElseIfBlockStmt([NotNull] VBAParser.IfElseIfBlockStmtContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitStopStmt([NotNull] VBAParser.StopStmtContext context); + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Rubberduck.Parsing.csproj b/Rubberduck.Parsing/Rubberduck.Parsing.csproj index 09fd003335..2fdc5546c8 100644 --- a/Rubberduck.Parsing/Rubberduck.Parsing.csproj +++ b/Rubberduck.Parsing/Rubberduck.Parsing.csproj @@ -222,6 +222,7 @@ + diff --git a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs index 32cdb39914..07314387f6 100644 --- a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs @@ -9,6 +9,8 @@ namespace Rubberduck.Parsing.Symbols public sealed class ClassModuleDeclaration : Declaration { private readonly bool _isExposed; + private readonly bool _isGlobalClassModule; + public ClassModuleDeclaration( QualifiedMemberName qualifiedName, @@ -17,7 +19,8 @@ public ClassModuleDeclaration( bool isBuiltIn, IEnumerable annotations, Attributes attributes, - bool isExposed = false) + bool isExposed = false, + bool isGlobalClassModule = false) : base( qualifiedName, projectDeclaration, @@ -34,6 +37,7 @@ public ClassModuleDeclaration( attributes) { _isExposed = isExposed; + _isGlobalClassModule = isGlobalClassModule; } /// @@ -58,12 +62,13 @@ public bool IsGlobalClassModule { get { + bool attributeIsGlobalClassModule = false; IEnumerable value; if (Attributes.TryGetValue("VB_GlobalNamespace", out value)) { - return value.Single() == "True"; + attributeIsGlobalClassModule = value.Single() == "True"; } - return false; + return _isGlobalClassModule || attributeIsGlobalClassModule; } } diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index abcb0d307a..968bd014ac 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -127,7 +127,9 @@ public static bool HasParameter(DeclarationType declarationType) return declarationType.HasFlag(DeclarationType.Property) || declarationType == DeclarationType.Function - || declarationType == DeclarationType.Procedure; + || declarationType == DeclarationType.Procedure + || declarationType == DeclarationType.LibraryFunction + || declarationType == DeclarationType.LibraryProcedure; } public static Declaration GetModuleParent(Declaration declaration) diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index f182ee2cea..b83fda2559 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -35,6 +35,8 @@ public DeclarationFinder( .ToDictionary(grouping => grouping.Key.IdentifierName, grouping => grouping.ToArray()); var all = declarations.Where(d => d.IdentifierName == "ThisWorkbook").ToList(); + //var workbook = all.AsTypeDeclaration; + //var kkk = declarations.Where(d => d.ParentDeclaration.Equals(workbook)).ToList(); } private readonly HashSet _projectScopePublicModifiers = @@ -247,12 +249,12 @@ public Declaration FindModuleReferencedProject(Declaration callingProject, Decla return match; } - public Declaration FindMemberWithParent(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) + public Declaration FindMemberWithParent(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration parent, string memberName, DeclarationType memberType) { var allMatches = MatchName(memberName); var memberMatches = allMatches.Where(m => m.DeclarationType.HasFlag(memberType) - && callingParent.Equals(m.ParentDeclaration)); + && parent.Equals(m.ParentDeclaration)); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index 1080fa2e81..8e16e8a388 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -183,6 +183,10 @@ private Declaration CreateDeclaration(string identifierName, string asTypeName, { result = new FunctionDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); } + else if (declarationType == DeclarationType.LibraryProcedure || declarationType == DeclarationType.LibraryFunction) + { + result = new ExternalProcedureDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, declarationType, asTypeName, accessibility, context, selection, false, annotations); + } else if (declarationType == DeclarationType.PropertyGet) { result = new PropertyGetDeclaration(new QualifiedMemberName(_qualifiedName, identifierName), _parentDeclaration, _currentScopeDeclaration, asTypeName, accessibility, context, selection, false, annotations, attributes); diff --git a/Rubberduck.Parsing/Symbols/ExternalProcedureDeclaration.cs b/Rubberduck.Parsing/Symbols/ExternalProcedureDeclaration.cs new file mode 100644 index 0000000000..d39b72c9ff --- /dev/null +++ b/Rubberduck.Parsing/Symbols/ExternalProcedureDeclaration.cs @@ -0,0 +1,55 @@ +using Antlr4.Runtime; +using Rubberduck.Parsing.Annotations; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System.Linq; + +namespace Rubberduck.Parsing.Symbols +{ + public sealed class ExternalProcedureDeclaration : Declaration, IDeclarationWithParameter + { + private readonly List _parameters; + + public ExternalProcedureDeclaration( + QualifiedMemberName name, + Declaration parent, + Declaration parentScope, + DeclarationType declarationType, + string asTypeName, + Accessibility accessibility, + ParserRuleContext context, + Selection selection, + bool isBuiltIn, + IEnumerable annotations) + : base( + name, + parent, + parentScope, + asTypeName, + false, + false, + accessibility, + declarationType, + context, + selection, + isBuiltIn, + annotations, + null) + { + _parameters = new List(); + } + + public IEnumerable Parameters + { + get + { + return _parameters.ToList(); + } + } + + public void Add(Declaration parameter) + { + _parameters.Add(parameter); + } + } +} diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index bd2c3f7ff2..ba45a26867 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -1355,14 +1355,7 @@ public void Resolve(VBAParser.ImplicitCallStmt_InBlockContext context) { string expr = context.GetText(); // This represents a CALL statement without the CALL keyword which is slightly different than a normal expression because it does not allow parentheses around its argument list. - try - { - ResolveDefault(context, expr, ResolutionStatementContext.CallStatement); - } - catch (Exception ex) - { - // TODO: Fix wrong parse tree for array variable declarations (e.g. Dim a() As String) - } + ResolveDefault(context, expr, ResolutionStatementContext.CallStatement); } public void Resolve(VBAParser.EnumerationStmtContext context) diff --git a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs index 3507047e52..049c8978f1 100644 --- a/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs +++ b/Rubberduck.Parsing/Symbols/ReferencedDeclarationsCollector.cs @@ -189,7 +189,7 @@ public IEnumerable GetDeclarationsForReference(Reference reference) } else if (typeDeclarationType == DeclarationType.ClassModule) { - moduleDeclaration = new ClassModuleDeclaration(typeQualifiedMemberName, projectDeclaration, typeName, true, new List(), attributes, isExposed: true); + moduleDeclaration = new ClassModuleDeclaration(typeQualifiedMemberName, projectDeclaration, typeName, true, new List(), attributes, isExposed: true, isGlobalClassModule: true); } else { diff --git a/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs b/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs index f9f4f7eac6..b3fb12209a 100644 --- a/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs +++ b/RubberduckTests/Binding/MemberAccessDefaultBindingTests.cs @@ -81,7 +81,7 @@ public void LExpressionIsEnum() const string PROJECT_NAME = "AnyProject"; var builder = new MockVbeBuilder(); var enclosingProjectBuilder = builder.ProjectBuilder(PROJECT_NAME, vbext_ProjectProtection.vbext_pp_none); - string code = string.Format("Public Sub Test() {0} Call {1}.{2} {0}End Sub", Environment.NewLine, BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME); + string code = string.Format("Public Sub Test() {0} a = {1}.{2} {0}End Sub", Environment.NewLine, BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME); enclosingProjectBuilder.AddComponent(TEST_CLASS_NAME, vbext_ComponentType.vbext_ct_ClassModule, code); enclosingProjectBuilder.AddComponent("AnyModule", vbext_ComponentType.vbext_ct_StdModule, CreateEnumType(BINDING_TARGET_LEXPRESSION, BINDING_TARGET_UNRESTRICTEDNAME)); var enclosingProject = enclosingProjectBuilder.Build(); diff --git a/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs b/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs index 44c8c071bd..4e74007795 100644 --- a/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs +++ b/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs @@ -65,7 +65,7 @@ public void OtherProceduralModule() var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_NAME); - Assert.AreEqual(1, declaration.References.Count()); + Assert.AreEqual(2, declaration.References.Count()); } private static RubberduckParserState Parse(Moq.Mock vbe) diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index f65926e3d9..2c15c1a569 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -101,7 +101,7 @@ public void FunctionCall_IsReferenceToFunctionDeclaration() // arrange var code = @" Public Sub DoSomething() - Debug.Print Foo + Foo End Sub Private Function Foo() As String @@ -414,7 +414,7 @@ End Property var code_class2 = @" Public Sub DoSomething() With New Class1 - Debug.Print .Foo + a = .Foo End With End Sub "; @@ -716,7 +716,7 @@ End Property var code_class2 = @" Public Sub DoSomething() Dim bar As New Class1 - Debug.Print bar.Foo + a = bar.Foo End Sub "; diff --git a/RubberduckTests/Grammar/VBAParserTests.cs b/RubberduckTests/Grammar/VBAParserTests.cs index 1b9bc64d99..e49b70aedd 100644 --- a/RubberduckTests/Grammar/VBAParserTests.cs +++ b/RubberduckTests/Grammar/VBAParserTests.cs @@ -188,19 +188,6 @@ Dim someString As String * 255 AssertTree(parseResult.Item1, parseResult.Item2, "//fieldLength"); } - [TestMethod] - public void TestDeleteSettingsStatement() - { - string code = @" -Sub Test() - DELETESETTING ""a"" - DELETESETTING ""a"", ""b"" - DELETESETTING ""a"", ""b"", ""c"" -End Sub"; - var parseResult = Parse(code); - AssertTree(parseResult.Item1, parseResult.Item2, "//deleteSettingStmt"); - } - [TestMethod] public void TestDoLoopStatement() { diff --git a/RubberduckTests/Grammar/VBAParserValidityTests.cs b/RubberduckTests/Grammar/VBAParserValidityTests.cs index a488a82d1c..f197c2fd98 100644 --- a/RubberduckTests/Grammar/VBAParserValidityTests.cs +++ b/RubberduckTests/Grammar/VBAParserValidityTests.cs @@ -22,7 +22,7 @@ public void TestParser() { var filename = testfile.Item1; var code = testfile.Item2; - AssertParseResult(filename, code, Parse(code)); + AssertParseResult(filename, code, Parse(code, filename)); } } @@ -36,7 +36,7 @@ private IEnumerable> GetTestFiles() return Directory.EnumerateFiles("Grammar").Select(file => Tuple.Create(file, File.ReadAllText(file))).ToList(); } - private string Parse(string code) + private string Parse(string code, string filename) { var builder = new MockVbeBuilder(); VBComponent component; @@ -46,7 +46,7 @@ private string Parse(string code) var state = new RubberduckParserState(); var parser = MockParser.Create(vbe.Object, state); parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } + if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error: " + filename); } var tree = state.GetParseTree(component); var parsed = tree.GetText(); var withoutEOF = parsed.Substring(0, parsed.Length - 5); From 66aced548ba6122d0ae361f2e96b208876cf90d4 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 01:57:59 +0200 Subject: [PATCH 14/72] implement named argument resolution --- Rubberduck.Parsing/Binding/ArgumentList.cs | 8 +- .../Binding/ArgumentListArgument.cs | 27 +- .../Binding/DefaultBindingContext.cs | 42 +- .../Binding/IndexDefaultBinding.cs | 6 +- .../Symbols/BoundExpressionVisitor.cs | 4 + .../Symbols/DeclarationFinder.cs | 6 + .../Symbols/IdentifierReferenceResolver.cs | 1148 +---------------- .../MoveFieldCloserToUsageInspectionTests.cs | 2 +- 8 files changed, 91 insertions(+), 1152 deletions(-) diff --git a/Rubberduck.Parsing/Binding/ArgumentList.cs b/Rubberduck.Parsing/Binding/ArgumentList.cs index 8320040e07..d1a16c40ce 100644 --- a/Rubberduck.Parsing/Binding/ArgumentList.cs +++ b/Rubberduck.Parsing/Binding/ArgumentList.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using Rubberduck.Parsing.Symbols; +using System; +using System.Collections.Generic; using System.Linq; namespace Rubberduck.Parsing.Binding @@ -12,9 +14,9 @@ public ArgumentList() _arguments = new List(); } - public void AddArgument(IExpressionBinding binding, ArgumentListArgumentType argumentType) + public void AddArgument(ArgumentListArgument argument) { - _arguments.Add(new ArgumentListArgument(binding, argumentType)); + _arguments.Add(argument); } public bool HasArguments diff --git a/Rubberduck.Parsing/Binding/ArgumentListArgument.cs b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs index 1aac92f106..f75bbc6329 100644 --- a/Rubberduck.Parsing/Binding/ArgumentListArgument.cs +++ b/Rubberduck.Parsing/Binding/ArgumentListArgument.cs @@ -1,15 +1,26 @@ -namespace Rubberduck.Parsing.Binding +using Rubberduck.Parsing.Symbols; +using System; + +namespace Rubberduck.Parsing.Binding { public sealed class ArgumentListArgument { private readonly IExpressionBinding _binding; private IBoundExpression _expression; + private IBoundExpression _namedArgumentExpression; private readonly ArgumentListArgumentType _argumentType; + private readonly Func _namedArgumentExpressionCreator; public ArgumentListArgument(IExpressionBinding binding, ArgumentListArgumentType argumentType) + : this (binding, argumentType, calledProcedure => null) + { + } + + public ArgumentListArgument(IExpressionBinding binding, ArgumentListArgumentType argumentType, Func namedArgumentExpressionCreator) { _binding = binding; _argumentType = argumentType; + _namedArgumentExpressionCreator = namedArgumentExpressionCreator; } public ArgumentListArgumentType ArgumentType @@ -20,6 +31,14 @@ public ArgumentListArgumentType ArgumentType } } + public IBoundExpression NamedArgumentExpression + { + get + { + return _namedArgumentExpression; + } + } + public IBoundExpression Expression { get @@ -28,9 +47,13 @@ public IBoundExpression Expression } } - public void Resolve() + public void Resolve(Declaration calledProcedure) { _expression = _binding.Resolve(); + if (calledProcedure != null) + { + _namedArgumentExpression = _namedArgumentExpressionCreator(calledProcedure); + } } } } diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 60ff542a26..31f6865634 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -1,5 +1,6 @@ using Antlr4.Runtime; using Rubberduck.Parsing.Symbols; +using System; namespace Rubberduck.Parsing.Binding { @@ -179,23 +180,54 @@ private ArgumentList VisitArgumentList(Declaration module, Declaration parent, V { foreach (var expr in list.positionalArgument()) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Positional); + convertedList.AddArgument(new ArgumentListArgument( + VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable, + ResolutionStatementContext.Undefined), ArgumentListArgumentType.Positional)); } } if (list.requiredPositionalArgument() != null) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, list.requiredPositionalArgument().argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Positional); + convertedList.AddArgument(new ArgumentListArgument( + VisitArgumentBinding(module, parent, list.requiredPositionalArgument().argumentExpression(), + withBlockVariable, ResolutionStatementContext.Undefined), + ArgumentListArgumentType.Positional)); } if (list.namedArgumentList() != null) { foreach (var expr in list.namedArgumentList().namedArgument()) { - convertedList.AddArgument(VisitArgumentBinding(module, parent, expr.argumentExpression(), withBlockVariable, ResolutionStatementContext.Undefined), ArgumentListArgumentType.Named); + convertedList.AddArgument(new ArgumentListArgument( + VisitArgumentBinding(module, parent, expr.argumentExpression(), + withBlockVariable, + ResolutionStatementContext.Undefined), + ArgumentListArgumentType.Named, + CreateNamedArgumentExpressionCreator(expr.unrestrictedName().GetText(), expr.unrestrictedName()))); } } return convertedList; } + private Func CreateNamedArgumentExpressionCreator(string parameterName, ParserRuleContext context) + { + return calledProcedure => + { + ExpressionClassification classification; + if (calledProcedure.DeclarationType == DeclarationType.Procedure) + { + classification = ExpressionClassification.Subroutine; + } + else if (calledProcedure.DeclarationType == DeclarationType.Function || calledProcedure.DeclarationType == DeclarationType.LibraryFunction || calledProcedure.DeclarationType == DeclarationType.LibraryProcedure) + { + classification = ExpressionClassification.Function; + } + else + { + classification = ExpressionClassification.Property; + } + return new SimpleNameExpression(_declarationFinder.FindParameter(calledProcedure, parameterName), classification, context); + }; + } + private IExpressionBinding VisitArgumentBinding(Declaration module, Declaration parent, VBAExpressionParser.ArgumentExpressionContext argumentExpression, IBoundExpression withBlockVariable, ResolutionStatementContext statementContext) { if (argumentExpression.expression() != null) @@ -237,7 +269,7 @@ A dictionary access expression is syntactically translated into an index express declared type of String and a value equal to the name value of . */ var fakeArgList = new ArgumentList(); - fakeArgList.AddArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional); + fakeArgList.AddArgument(new ArgumentListArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional)); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpressionBinding, fakeArgList); } @@ -249,7 +281,7 @@ A dictionary access expression is syntactically translated into an index express declared type of String and a value equal to the name value of . */ var fakeArgList = new ArgumentList(); - fakeArgList.AddArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional); + fakeArgList.AddArgument(new ArgumentListArgument(new LiteralDefaultBinding(nameContext), ArgumentListArgumentType.Positional)); return new IndexDefaultBinding(_declarationFinder, Declaration.GetProjectParent(parent), module, parent, expression, lExpression, fakeArgList); } diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index e25108c9ad..6edd351ed2 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -56,11 +56,11 @@ public IndexDefaultBinding( _argumentList = argumentList; } - private void ResolveArgumentList() + private void ResolveArgumentList(Declaration calledProcedure) { foreach (var argument in _argumentList.Arguments) { - argument.Resolve(); + argument.Resolve(calledProcedure); } } @@ -70,7 +70,7 @@ public IBoundExpression Resolve() { _lExpression = _lExpressionBinding.Resolve(); } - ResolveArgumentList(); + ResolveArgumentList(_lExpression.ReferencedDeclaration); return Resolve(_lExpression); } diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 5d6c37fa92..72eb764693 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -45,6 +45,10 @@ private void Visit(IndexExpression expression, Func ModuleComments(QualifiedModuleName module) return new List(); } + public Declaration FindParameter(Declaration procedure, string parameterName) + { + var matches = MatchName(parameterName); + return matches.Where(m => procedure.Equals(m.ParentDeclaration) && m.DeclarationType == DeclarationType.Parameter).FirstOrDefault(); + } + public IEnumerable ModuleAnnotations(QualifiedModuleName module) { IAnnotation[] result; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index ba45a26867..aa4b0bbc32 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -1,15 +1,14 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading; using Antlr4.Runtime; using Microsoft.Vbe.Interop; -using Rubberduck.Parsing.Grammar; -using Rubberduck.VBEditor; using Rubberduck.Parsing.Annotations; using Rubberduck.Parsing.Binding; +using Rubberduck.Parsing.Grammar; using Rubberduck.Parsing.VBA; +using Rubberduck.VBEditor; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Threading; namespace Rubberduck.Parsing.Symbols { @@ -167,724 +166,6 @@ private IEnumerable FindAnnotations(int line) return new List(); } - //private void ResolveType(VBAParser.ICS_S_MembersCallContext context) - //{ - // //var first = context.iCS_S_VariableOrProcedureCall().identifier(); - // //var identifiers = new[] { first }.Concat(context.iCS_S_MemberCall() - // // .Select(member => member.iCS_S_VariableOrProcedureCallUnrestricted().unrestrictedIdentifier())) - // // .ToList(); - // //ResolveType(identifiers); - //} - - //private Declaration ResolveType(VBAParser.ComplexTypeContext context) - //{ - // if (context == null) - // { - // return null; - // } - - // var identifiers = context.identifier() - // .Select(identifier => identifier) - // .ToList(); - - // // if there's only 1 identifier, resolve to the tightest-scope match: - // if (identifiers.Count == 1) - // { - // var type = ResolveInScopeType(identifiers.Single().GetText(), _currentScope); - // if (type != null && !_alreadyResolved.Contains(context)) - // { - // type.AddReference(CreateReference(context, type)); - // _alreadyResolved.Add(context); - // } - // return type; - // } - - // // if there's 2 or more identifiers, resolve to the deepest path: - // return ResolveType(identifiers); - //} - - //private Declaration ResolveType(IList identifiers) - //{ - // var first = identifiers[0].GetText(); - // var projectMatch = _declarationFinder.FindProject(first, _currentScope); - - // if (projectMatch != null) - // { - // var projectReference = CreateReference(identifiers[0], projectMatch); - - // // matches current project. 2nd identifier could be: - // // - standard module (only if there's a 3rd identifier) - // // - class module - // // - UDT - // // - Enum - // if (identifiers.Count == 3) - // { - // var moduleMatch = _declarationFinder.FindStdModule(identifiers[1].GetText(), _currentScope); - // if (moduleMatch != null) - // { - // var moduleReference = CreateReference(identifiers[1], moduleMatch); - - // // 3rd identifier can only be a UDT - // var udtMatch = _declarationFinder.FindUserDefinedType(identifiers[2].GetText(), moduleMatch); - // if (udtMatch != null) - // { - // var udtReference = CreateReference(identifiers[2], udtMatch); - - // if (!_alreadyResolved.Contains(projectReference.Context)) - // { - // projectMatch.AddReference(projectReference); - // _alreadyResolved.Add(projectReference.Context); - // } - - // if (!_alreadyResolved.Contains(moduleReference.Context)) - // { - // moduleMatch.AddReference(moduleReference); - // _alreadyResolved.Add(moduleReference.Context); - // } - - // if (!_alreadyResolved.Contains(udtReference.Context)) - // { - // udtMatch.AddReference(udtReference); - // _alreadyResolved.Add(udtReference.Context); - // } - - // return udtMatch; - // } - // var enumMatch = _declarationFinder.FindEnum(identifiers[2].GetText(), moduleMatch); - // if (enumMatch != null) - // { - // var enumReference = CreateReference(identifiers[2], enumMatch); - - // if (!_alreadyResolved.Contains(projectReference.Context)) - // { - // projectMatch.AddReference(projectReference); - // _alreadyResolved.Add(projectReference.Context); - // } - - // if (!_alreadyResolved.Contains(moduleReference.Context)) - // { - // moduleMatch.AddReference(moduleReference); - // _alreadyResolved.Add(moduleReference.Context); - // } - - // if (!_alreadyResolved.Contains(enumReference.Context)) - // { - // enumMatch.AddReference(enumReference); - // _alreadyResolved.Add(enumReference.Context); - // } - - // return enumMatch; - // } - // } - // } - // else - // { - // if (projectReference != null && !_alreadyResolved.Contains(projectReference.Context)) - // { - // projectMatch.AddReference(projectReference); - // _alreadyResolved.Add(projectReference.Context); - // } - - // var match = _declarationFinder.FindClass(projectMatch, identifiers[1].GetText()) - // ?? _declarationFinder.FindUserDefinedType(identifiers[1].GetText()) - // ?? _declarationFinder.FindEnum(identifiers[1].GetText()); - // if (match != null) - // { - // var reference = CreateReference(identifiers[1], match); - // if (reference != null && !_alreadyResolved.Contains(reference.Context)) - // { - // match.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - // } - // return match; - // } - // } - // } - - // // first identifier didn't match current project. - // // if there are 3 identifiers, type isn't in current project. - // if (identifiers.Count != 3) - // { - - // var moduleMatch = _declarationFinder.FindStdModule(identifiers[0].GetText(), projectMatch); - // if (moduleMatch != null) - // { - // var moduleReference = CreateReference(identifiers[0], moduleMatch); - - // // 2nd identifier can only be a UDT or enum - // var match = _declarationFinder.FindUserDefinedType(identifiers[1].GetText(), moduleMatch) - // ?? _declarationFinder.FindEnum(identifiers[1].GetText(), moduleMatch); - // if (match != null) - // { - // var reference = CreateReference(identifiers[1], match); - - // if (!_alreadyResolved.Contains(moduleReference.Context)) - // { - // moduleMatch.AddReference(moduleReference); - // _alreadyResolved.Add(moduleReference.Context); - // } - - // if (!_alreadyResolved.Contains(reference.Context)) - // { - // match.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - // } - - // return match; - // } - // } - // } - - // return null; - //} - - //private Declaration ResolveInScopeType(string identifier, Declaration scope) - //{ - // var matches = _declarationFinder.MatchTypeName(identifier).ToList(); - // if (matches.Count == 1) - // { - // return matches.Single(); - // } - - // if (matches.Count(match => match.ProjectId == scope.ProjectId) == 1) - // { - // return matches.Single(match => match.ProjectId == scope.ProjectId); - // } - - // // more than one matching identifiers found. - // // if it matches a UDT or enum in the current scope, resolve to that type. - // var sameScopeUdt = matches.Where(declaration => - // declaration.ProjectId == scope.ProjectId - // && (declaration.DeclarationType == DeclarationType.UserDefinedType - // || declaration.DeclarationType == DeclarationType.Enumeration) - // && declaration.ParentDeclaration.Equals(scope)) - // .ToList(); - - // if (sameScopeUdt.Count == 1) - // { - // return sameScopeUdt.Single(); - // } - // return null; - //} - - //private Declaration ResolveType(Declaration parent) - //{ - // if (parent != null && (parent.DeclarationType == DeclarationType.UserDefinedType - // || parent.DeclarationType == DeclarationType.Enumeration - // || parent.DeclarationType == DeclarationType.Project - // || parent.DeclarationType == DeclarationType.ProceduralModule - // || (parent.DeclarationType == DeclarationType.ClassModule && (parent.IsBuiltIn || parent.HasPredeclaredId)))) - // { - // return parent; - // } - - // if (parent == null || parent.AsTypeName == null) - // { - // return null; - // } - - // var identifier = parent.AsTypeName.Contains(".") - // ? parent.AsTypeName.Split('.').Last() // bug: this can't be right - // : parent.AsTypeName; - - // identifier = identifier.StartsWith("VT_") ? parent.IdentifierName : identifier; - - // var matches = _declarationFinder.MatchTypeName(identifier).ToList(); - // if (matches.Count == 1) - // { - // return matches.Single(); - // } - - // var result = matches.Where(item => - // (item.DeclarationType == DeclarationType.UserDefinedType - // || item.DeclarationType == DeclarationType.Enumeration) - // && item.ProjectId == _currentScope.ProjectId - // && item.ComponentName == _currentScope.ComponentName) - // .ToList(); - - // if (!result.Any()) - // { - // result = matches.Where(item => - // _moduleTypes.Contains(item.DeclarationType) - // && item.ProjectId == _currentScope.ProjectId) - // .ToList(); - // } - - // if (!result.Any()) - // { - // result = matches.Where(item => - // _moduleTypes.Contains(item.DeclarationType)) - // .ToList(); - // } - - // return result.Count == 1 ? result.SingleOrDefault() : - // matches.Count == 1 ? matches.First() : null; - //} - - //private static readonly Type[] IdentifierContexts = - //{ - // typeof (VBAParser.IdentifierContext), - // typeof (VBAParser.UnrestrictedIdentifierContext), - //}; - - //private Declaration ResolveInternal(ParserRuleContext callSiteContext, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, VBAParser.DictionaryCallStmtContext fieldCall = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (callSiteContext == null) - // { - // return null; - // } - - // if (!IdentifierContexts.Contains(callSiteContext.GetType())) - // { - // throw new ArgumentException("'" + callSiteContext.GetType().Name + "' is not an identifier context.", "callSiteContext"); - // } - - // if (localScope == null) - // { - // localScope = _currentScope; - // } - - // if (localScope == null) - // { - // return null; - // } - - // var parentContext = callSiteContext.Parent; - // var identifierName = callSiteContext.GetText(); - // if (identifierName.StartsWith("[") && identifierName.EndsWith("]")) - // { - // // square-bracketed identifier may contain a '!' symbol; identifier name is at the left of it. - // identifierName = identifierName.Substring(1, identifierName.Length - 2)/*.Split('!').First()*/; - // // problem, is that IdentifierReference should work off IDENTIFIER tokens, not AmbiguousIdentifierContext. - // // not sure what the better fix is. - // } - - // var sibling = parentContext.ChildCount > 1 ? parentContext.GetChild(1) : null; - // var hasStringQualifier = sibling is VBAParser.TypeHintContext && sibling.GetText() == "$"; - - // Declaration callee = null; - // if (localScope.DeclarationType == DeclarationType.UserDefinedType) - // { - // callee = _declarationFinder.MatchName(identifierName).SingleOrDefault(item => item.Context != null && item.Context.Parent == localScope.Context); - // } - // else - // { - // callee = Resolve(identifierName, localScope, accessorType, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget, hasStringQualifier); - // } - - - // if (callee == null) - // { - // // calls inside With block can still refer to identifiers in _currentScope - // localScope = _currentScope; - // identifierName = callSiteContext.GetText(); - // callee = FindLocalScopeDeclaration(identifierName, localScope, parentContext is VBAParser.ICS_S_VariableOrProcedureCallContext, isAssignmentTarget) - // ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) - // ?? FindModuleScopeDeclaration(identifierName, localScope) - // ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); - // } - - // if (callee == null) - // { - // return null; - // } - - // var reference = CreateReference(callSiteContext, callee, isAssignmentTarget, hasExplicitLetStatement); - // if (reference != null && !_alreadyResolved.Contains(reference.Context)) - // { - // callee.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - // _alreadyResolved.Add(callSiteContext); - // } - - // if (fieldCall != null) - // { - // return ResolveInternal(fieldCall, callee); - // } - - // return callee; - //} - - //private Declaration Resolve(string identifierName, Declaration localScope, ContextAccessorType accessorType, bool parentContextIsVariableOrProcedureCall = false, bool isAssignmentTarget = false, bool hasStringQualifier = false) - //{ - // return FindLocalScopeDeclaration(identifierName, localScope, parentContextIsVariableOrProcedureCall, isAssignmentTarget) - // ?? FindModuleScopeProcedure(identifierName, localScope, accessorType, isAssignmentTarget) - // ?? FindModuleScopeDeclaration(identifierName, localScope) - // ?? FindProjectScopeDeclaration(identifierName, Equals(localScope, _currentScope) ? null : localScope, accessorType, hasStringQualifier); - //} - - //private Declaration ResolveInternal(VBAParser.ICS_S_VariableOrProcedureCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (context == null) - // { - // return null; - // } - // if (ParserRuleContextHelper.HasParent(context)) - // { - // return null; - // } - // if (ParserRuleContextHelper.HasParent(context)) - // { - // return null; - // } - - // var identifierContext = context.identifier(); - // var fieldCall = context.dictionaryCallStmt(); - - // var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - // if (result != null && localScope != null /*&& !localScope.DeclarationType.HasFlag(DeclarationType.Member)*/) - // { - // var reference = CreateReference(context.identifier(), result, isAssignmentTarget); - // if (reference != null) - // { - // result.AddReference(reference); - // //localScope.AddMemberCall(reference); - // } - // } - - // return result; - //} - - //private Declaration ResolveInternal(VBAParser.DictionaryCallStmtContext fieldCall, Declaration parent, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (fieldCall == null) - // { - // return null; - // } - - // var parentType = ResolveType(parent); - // if (parentType == null) - // { - // return null; - // } - - // var fieldName = fieldCall.unrestrictedIdentifier().GetText(); - // var result = _declarationFinder.MatchName(fieldName).SingleOrDefault(declaration => declaration.ParentScope == parentType.Scope); - // if (result == null) - // { - // return null; - // } - - // var identifierContext = fieldCall.unrestrictedIdentifier(); - // var reference = CreateReference(identifierContext, result, isAssignmentTarget, hasExplicitLetStatement); - // result.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - - // return result; - //} - - //private Declaration ResolveInternal(VBAParser.ICS_S_ProcedureOrArrayCallContext context, Declaration localScope, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (context == null) - // { - // return null; - // } - - // var identifierContext = context.identifier(); - // var fieldCall = context.dictionaryCallStmt(); - // // todo: understand WTF [baseType] is doing in that grammar rule... - - // if (localScope == null) - // { - // localScope = _currentScope; - // } - - // var result = ResolveInternal(identifierContext, localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - // if (result != null && !localScope.DeclarationType.HasFlag(DeclarationType.Member)) - // { - // localScope.AddMemberCall(CreateReference(context.identifier(), result)); - // } - - // return result; - //} - - //private Declaration ResolveInternal(VBAParser.ICS_S_MembersCallContext context, ContextAccessorType accessorType, Declaration localScope = null, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (context == null) - // { - // return null; - // } - - // Declaration parent; - // if (_withBlockQualifiers.Any()) - // { - // parent = _withBlockQualifiers.Peek(); - // if (parent == null) - // { - // // if parent is an unknown type, continuing any further will only cause issues. - // return null; - // } - // } - // else - // { - // if (localScope == null) - // { - // localScope = _currentScope; - // } - // parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement) - // ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement); - // } - - // var chainedCalls = context.iCS_S_MemberCall(); - // var lastCall = chainedCalls.Last(); - // foreach (var memberCall in chainedCalls) - // { - // //// if we're on the left side of an assignment, only the last memberCall is the assignment target. - // //var isLast = memberCall.Equals(lastCall); - // //var accessor = isLast - // // ? accessorType - // // : ContextAccessorType.GetValueOrReference; - // //var isTarget = isLast && isAssignmentTarget; - - // //var parentType = ResolveType(parent); - - // //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) - // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); - - // //if (member == null && parent != null) - // //{ - // // var parentComTypeName = GetParentComTypeName(parent); - - // // // if the member can't be found on the parentType, maybe we're looking at a document or form module? - // // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); - // // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget) - // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCallUnrestricted(), parentType, accessor, hasExplicitLetStatement, isTarget); - // //} - - // //if (member == null) - // //{ - // // // if member still can't be found, it's hopeless - // // return null; - // //} - - // //var memberReference = CreateReference(GetMemberCallIdentifierContext(memberCall), parent); - // //member.AddMemberCall(memberReference); - // //parent = ResolveType(member); - // } - - // var fieldCall = context.dictionaryCallStmt(); - // if (fieldCall == null) - // { - // return parent; - // } - - // return ResolveInternal(fieldCall, parent, hasExplicitLetStatement, isAssignmentTarget); - //} - - //private Declaration ResolveInternal(VBAParser.ImplicitCallStmt_InStmtContext callSiteContext, Declaration localScope, ContextAccessorType accessorType, bool hasExplicitLetStatement = false, bool isAssignmentTarget = false) - //{ - // if (callSiteContext == null) - // { - // return null; - // } - - // var dictionaryCall = callSiteContext.iCS_S_DictionaryCall(); - // var fieldCall = dictionaryCall == null ? null : dictionaryCall.dictionaryCallStmt(); - - // return ResolveInternal(callSiteContext.iCS_S_VariableOrProcedureCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) - // ?? ResolveInternal(callSiteContext.iCS_S_ProcedureOrArrayCall(), localScope, accessorType, hasExplicitLetStatement, isAssignmentTarget) - // ?? ResolveInternal(callSiteContext.iCS_S_MembersCall(), accessorType, localScope, hasExplicitLetStatement, isAssignmentTarget) - // ?? ResolveInternal(callSiteContext.iCS_S_DictionaryCall(), localScope, accessorType, fieldCall, hasExplicitLetStatement, isAssignmentTarget); - //} - - //private Declaration ResolveInternal(VBAParser.ICS_B_ProcedureCallContext context) - //{ - // if (context == null) - // { - // return null; - // } - - // var identifierContext = context.identifier(); - // var callee = ResolveInternal(identifierContext, _currentScope); - // if (callee == null) - // { - // return null; - // } - - // var reference = CreateReference(identifierContext, callee); - // if (reference != null) - // { - // callee.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - // } - // return callee; - //} - - //public void Resolve(VBAParser.ICS_B_ProcedureCallContext context) - //{ - // if (_alreadyResolved.Contains(context)) - // { - // return; - // } - - // ResolveInternal(context); - //} - - //public void Resolve(VBAParser.ICS_B_MemberProcedureCallContext context) - //{ - // if (_alreadyResolved.Contains(context)) - // { - // return; - // } - - // var parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), _currentScope, ContextAccessorType.GetValueOrReference); - // var parentType = ResolveType(parentScope); - - // if (_withBlockQualifiers.Any()) - // { - // parentType = ResolveType(_withBlockQualifiers.Peek()); - // parentScope = ResolveInternal(context.implicitCallStmt_InStmt(), parentType, ContextAccessorType.GetValueOrReference) - // ?? ResolveInternal(context.unrestrictedIdentifier(), parentType); - // parentType = ResolveType(parentScope); - // } - - // var identifierContext = context.unrestrictedIdentifier(); - // Declaration member = null; - // if (parentType != null) - // { - // member = _declarationFinder - // .MatchName(identifierContext.GetText()) - // .SingleOrDefault(item => - // item.QualifiedName.QualifiedModuleName == parentType.QualifiedName.QualifiedModuleName - // && item.DeclarationType != DeclarationType.Event); - // } - // else - // { - // if (parentScope != null) - // { - // var parentComTypeName = GetParentComTypeName(parentScope); - - // // if the member can't be found on the parentType, maybe we're looking at a document or form module? - // parentType = _declarationFinder.FindClass(_moduleDeclaration.ParentDeclaration, parentComTypeName); - // member = ResolveInternal(identifierContext, parentType); - // } - // } - - // if (member != null) - // { - // var reference = CreateReference(identifierContext, member); - // if (reference != null) - // { - // parentScope.AddMemberCall(CreateReference(context.unrestrictedIdentifier(), member)); - // member.AddReference(reference); - // _alreadyResolved.Add(reference.Context); - // } - // } - // else - // { - // return; - // } - - // var fieldCall = context.dictionaryCallStmt(); - // ResolveInternal(fieldCall, member); - //} - - //public void Resolve(VBAParser.ICS_S_VariableOrProcedureCallContext context) - //{ - // ResolveInternal(context, _currentScope); - //} - - //public void Resolve(VBAParser.ICS_S_ProcedureOrArrayCallContext context) - //{ - // ResolveInternal(context, _currentScope); - //} - - //public void Resolve(VBAParser.ICS_S_MembersCallContext context) - //{ - // if (context == null || _alreadyResolved.Contains(context)) - // { - // return; - // } - - // if (context.Parent.Parent.Parent is VBAParser.VsNewContext) - // { - // // if we're in a ValueStatement/New context, we're actually resolving for a type: - // ResolveType(context); - // return; - // } - - // Declaration parent; - // if (_withBlockQualifiers.Any()) - // { - // parent = ResolveType(_withBlockQualifiers.Peek()); - // if (parent == null) - // { - // return; - // } - // } - // else - // { - // parent = ResolveInternal(context.iCS_S_ProcedureOrArrayCall(), _currentScope) - // ?? ResolveInternal(context.iCS_S_VariableOrProcedureCall(), _currentScope); - // parent = ResolveType(parent); - // } - - // if (parent != null && parent.Context != null) - // { - // var identifierContext = ((dynamic)parent.Context).identifier() as VBAParser.IdentifierContext; - - // var parentReference = CreateReference(identifierContext, parent); - // if (parentReference != null) - // { - // parent.AddReference(parentReference); - // _alreadyResolved.Add(parentReference.Context); - // } - // } - - // if (parent == null) - // { - - - // return; - // } - - // var expression = context.GetText(); - // var boundExpression = _bindingService.ResolveDefault(_moduleDeclaration, _currentParent, expression, GetInnerMostWithExpression()); - - - // var chainedCalls = context.iCS_S_MemberCall(); - // foreach (var memberCall in chainedCalls) - // { - // //var notationToken = memberCall.children[0]; - // //if (notationToken.GetText() == "!") - // //{ - // // // the memberCall is a shorthand reference to the type's default member. - // // // since the reference isn't explicit, we don't need to care for it. - // // // (and we couldn't handle it if we wanted to, since we aren't parsing member attributes) - // // return; - // //} - - // //var member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parent) - // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parent); - - // //if (member == null && parent != null) - // //{ - // // var parentComTypeName = GetParentComTypeName(parent); - // // // if the member can't be found on the parentType, maybe we're looking at a document or form module? - // // var parentType = _declarationFinder.FindClass(null, parentComTypeName); - // // member = ResolveInternal(memberCall.iCS_S_ProcedureOrArrayCall(), parentType) - // // ?? ResolveInternal(memberCall.iCS_S_VariableOrProcedureCall(), parentType); - // //} - - // //if (member == null) - // //{ - // // return; - // //} - - // //member.AddReference(CreateReference(GetMemberCallIdentifierContext(memberCall), member)); - // //parent = ResolveType(member); - // } - - // var fieldCall = context.dictionaryCallStmt(); - // if (fieldCall == null) - // { - // return; - // } - - // ResolveInternal(fieldCall, parent); - // _alreadyResolved.Add(context); - //} - public void Resolve(VBAParser.OnErrorStmtContext context) { if (context.valueStmt() == null) @@ -1033,65 +314,6 @@ public void Resolve(VBAParser.SelectCaseStmtContext context) } } - private string GetParentComTypeName(Declaration declaration) - { - if (declaration.QualifiedName.QualifiedModuleName.Component == null) - { - return string.Empty; - } - Property property; - try - { - property = declaration.QualifiedName.QualifiedModuleName.Component.Properties.OfType().Where(p => p.Name == "Parent").FirstOrDefault(); - } - catch - { - // TODO: Doesn't work in MS Access. - return string.Empty; - } - if (property != null) - { - return ComHelper.GetTypeName(property.Object); - } - return string.Empty; - } - - //private ParserRuleContext GetMemberCallIdentifierContext(VBAParser.ICS_S_MemberCallContext callContext) - //{ - // if (callContext == null) - // { - // return null; - // } - - // var procedureOrArrayCall = callContext.iCS_S_ProcedureOrArrayCallUnrestricted(); - // if (procedureOrArrayCall != null) - // { - // return procedureOrArrayCall.unrestrictedIdentifier(); - // } - - // var variableOrProcedureCall = callContext.iCS_S_VariableOrProcedureCallUnrestricted(); - // if (variableOrProcedureCall != null) - // { - // return variableOrProcedureCall.unrestrictedIdentifier(); - // } - - // return null; - //} - - //public void Resolve(VBAParser.ICS_S_DictionaryCallContext context) - //{ - // TryResolve(context); - //} - - //private void TryResolve(TContext context) where TContext : ParserRuleContext - //{ - // if (context == null || _alreadyResolved.Contains(context)) - // { - // return; - // } - // ResolveInternal(context, _currentScope); - //} - public void Resolve(VBAParser.LetStmtContext context) { var letStatement = context.LET(); @@ -1338,6 +560,10 @@ private void ResolveArgsCall(VBAParser.ArgsCallContext argsCall) } foreach (var argCall in argsCall.argCall()) { + if (argCall.valueStmt() is VBAParser.VsAssignContext) + { + + } ResolveDefault(argCall.valueStmt(), argCall.valueStmt().GetText()); } } @@ -1373,365 +599,11 @@ public void Resolve(VBAParser.EnumerationStmtContext context) } } - //public void Resolve(VBAParser.FieldLengthContext context) - //{ - // ResolveInternal(context.identifier(), _currentScope); - //} - //public void Resolve(VBAParser.VsAssignContext context) //{ // // named parameter reference must be scoped to called procedure // var callee = FindParentCall(context); // ResolveInternal(context.implicitCallStmt_InStmt(), callee, ContextAccessorType.AssignValueOrReference); //} - - //private Declaration FindParentCall(VBAParser.VsAssignContext context) - //{ - // var calleeContext = context.Parent.Parent.Parent; - // return ResolveInternal(calleeContext as VBAParser.ICS_B_ProcedureCallContext) - // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_VariableOrProcedureCallContext, _currentScope) - // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_ProcedureOrArrayCallContext, _currentScope) - // ?? ResolveInternal(calleeContext as VBAParser.ICS_S_MembersCallContext, _currentScope); - //} - - private Declaration FindFunctionOrPropertyGetter(string identifierName, Declaration localScope = null) - { - if (localScope == null) - { - localScope = _currentScope; - } - - var matches = _declarationFinder.MatchName(identifierName); - var parent = matches.SingleOrDefault(item => - (item.DeclarationType.HasFlag(DeclarationType.Function) || item.DeclarationType.HasFlag(DeclarationType.PropertyGet)) - && item.Equals(localScope)); - - return parent; - } - - private Declaration FindLocalScopeDeclaration(string identifierName, Declaration localScope = null, bool parentContextIsVariableOrProcedureCall = false, bool isAssignmentTarget = false) - { - if (localScope == null) - { - localScope = _currentScope; - } - - if (_moduleTypes.Contains(localScope.DeclarationType) || localScope.DeclarationType.HasFlag(DeclarationType.Project)) - { - // "local scope" is not intended to be module level. - return null; - } - - var matches = _declarationFinder.MatchName(identifierName); - - var results = matches.Where(item => - ((localScope.Equals(item.ParentDeclaration) - || (item.DeclarationType.HasFlag(DeclarationType.Parameter) && localScope.Equals(item.ParentScopeDeclaration))) - || (isAssignmentTarget && item.Scope == localScope.Scope)) - && localScope.Context.GetSelection().Contains(item.Selection) - && !_moduleTypes.Contains(item.DeclarationType)) - .ToList(); - - if (results.Count >= 1 && isAssignmentTarget - && _returningMemberTypes.Contains(localScope.DeclarationType) - && localScope.IdentifierName == identifierName - && parentContextIsVariableOrProcedureCall) - { - // if we have multiple matches and we're in a returning member, - // in an in-statement variable or procedure call context that's - // the target of an assignment, then we have to assume we're looking - // at the assignment of the member's return value, i.e.: - /* - * Property Get Foo() As Integer - * Foo = 42 '<~ this Foo here - * End Sub - */ - return FindFunctionOrPropertyGetter(identifierName, localScope); - } - - // if we're not returning a function/getter value, then there can be only one: - var result = results.Where(item => !item.Equals(localScope)).ToList(); - return result.Count == 1 ? result.SingleOrDefault() : null; - } - - private Declaration FindModuleScopeDeclaration(string identifierName, Declaration localScope = null) - { - if (localScope == null) - { - localScope = _currentScope; - } - - if (localScope.DeclarationType.HasFlag(DeclarationType.Project)) - { - return null; - } - - if (identifierName == "Me" && _moduleDeclaration.DeclarationType.HasFlag(DeclarationType.ClassModule)) - { - return _moduleDeclaration; - } - - var scope = localScope; // avoid implicitly capturing 'this' - var matches = _declarationFinder.MatchName(identifierName).Where(item => !item.Equals(scope)).ToList(); - - var result = matches.Where(item => - (localScope.ParentScopeDeclaration == null || localScope.ParentScopeDeclaration.Equals(item.ParentScopeDeclaration)) - && !item.DeclarationType.HasFlag(DeclarationType.Member) - && !_moduleTypes.Contains(item.DeclarationType) - && item.DeclarationType != DeclarationType.UserDefinedType && item.DeclarationType != DeclarationType.Enumeration - && (item.DeclarationType != DeclarationType.Event || IsLocalEvent(item, localScope))) - .ToList(); - - if (matches.Any() && !result.Any()) - { - result = matches.Where(item => - (localScope != null && localScope.Equals(item.ParentScopeDeclaration)) - && !item.DeclarationType.HasFlag(DeclarationType.Member) - && !_moduleTypes.Contains(item.DeclarationType) - && item.DeclarationType != DeclarationType.UserDefinedType && item.DeclarationType != DeclarationType.Enumeration - && (item.DeclarationType != DeclarationType.Event || IsLocalEvent(item, localScope))) - .ToList(); - } - - return result.Count == 1 ? result.SingleOrDefault() : null; // return null for multiple matches - } - - private bool IsLocalEvent(Declaration item, Declaration localScope) - { - return item.DeclarationType == DeclarationType.Event - && localScope.ProjectId == _currentScope.ProjectId - && localScope.ComponentName == _currentScope.ComponentName; - } - - private Declaration FindModuleScopeProcedure(string identifierName, Declaration localScope, ContextAccessorType accessorType, bool isAssignmentTarget = false) - { - if (localScope == null) - { - localScope = _currentScope; - } - - if (localScope.DeclarationType == DeclarationType.Project) - { - return null; - } - - var matches = _declarationFinder.MatchName(identifierName); - var result = matches.Where(item => - _memberTypes.Contains(item.DeclarationType) - && localScope.ProjectId == item.ProjectId - && (localScope.ComponentName.Replace("_", string.Empty) == item.ComponentName.Replace("_", string.Empty)) - && (IsProcedure(item, localScope) || IsPropertyAccessor(item, accessorType, localScope, isAssignmentTarget))) - .ToList(); - - return result.Count == 1 ? result.SingleOrDefault() : null; - } - - private bool IsStdModuleMember(Declaration declaration) - { - return declaration.ParentDeclaration != null - && declaration.ParentDeclaration.DeclarationType == DeclarationType.ProceduralModule; - } - - private bool IsPublicEnum(Declaration declaration) - { - return (IsPublicOrGlobal(declaration) || declaration.Accessibility == Accessibility.Implicit) - && (declaration.DeclarationType == DeclarationType.Enumeration - || declaration.DeclarationType == DeclarationType.EnumerationMember); - } - - private bool IsStaticClass(Declaration declaration) - { - var isDocumentOrForm = !declaration.IsBuiltIn && - (declaration.QualifiedName.QualifiedModuleName.Component.Type == vbext_ComponentType.vbext_ct_Document - || - declaration.QualifiedName.QualifiedModuleName.Component.Type == vbext_ComponentType.vbext_ct_MSForm); - - return isDocumentOrForm || (declaration.ParentDeclaration != null - && declaration.ParentDeclaration.DeclarationType == DeclarationType.ClassModule - && declaration.ParentDeclaration.HasPredeclaredId); - - } - - private readonly IReadOnlyList SpecialCasedTokens = new[]{ - Tokens.Error, - Tokens.Hex, - Tokens.Oct, - Tokens.Str, - Tokens.CurDir, - Tokens.Command, - Tokens.Environ, - Tokens.Chr, - Tokens.ChrW, - Tokens.Format, - Tokens.LCase, - Tokens.Left, - Tokens.LeftB, - Tokens.LTrim, - Tokens.Mid, - Tokens.MidB, - Tokens.Trim, - Tokens.Right, - Tokens.RightB, - Tokens.RTrim, - Tokens.UCase - }; - - private Declaration FindProjectScopeDeclaration(string identifierName, Declaration localScope = null, ContextAccessorType accessorType = ContextAccessorType.GetValueOrReference, bool hasStringQualifier = false) - { - var matches = _declarationFinder.MatchName(identifierName).Where(item => - item.DeclarationType == DeclarationType.Project - || item.DeclarationType == DeclarationType.ProceduralModule - || IsPublicEnum(item) - || IsStaticClass(item) - || IsStdModuleMember(item) - || (item.ParentScopeDeclaration != null && item.ParentScopeDeclaration.Equals(localScope))).ToList(); - - if (matches.Count == 1 && !SpecialCasedTokens.Contains(matches.Single().IdentifierName)) - { - return matches.Single(); - } - - if (localScope == null && _withBlockQualifiers.Any()) - { - localScope = _withBlockQualifiers.Peek(); - } - - var result = matches.Where(IsUserDeclarationInProjectScope).ToList(); - if (result.Count == 1) - { - return result.SingleOrDefault(); - } - - result = matches.Where(item => IsBuiltInDeclarationInScope(item, localScope)).ToList(); - if (result.Count == 1 && !SpecialCasedTokens.Contains(result.Single().IdentifierName)) - { - return result.SingleOrDefault(); - } - else - { - var nonModules = matches.Where(item => !_moduleTypes.Contains(item.DeclarationType)).ToList(); - var temp = nonModules.Where(item => item.DeclarationType == - (accessorType == ContextAccessorType.GetValueOrReference - ? DeclarationType.PropertyGet - : item.DeclarationType)) - .ToList(); - if (temp.Count > 1) - { - if (localScope == null) - { - var names = new[] { "Global", "_Global" }; - var appGlobals = temp.Where(item => names.Contains(item.ParentDeclaration.IdentifierName)).ToList(); - if (appGlobals.Count == 1) - { - return appGlobals.Single(); - } - } - else - { - var names = new[] { localScope.IdentifierName, "I" + localScope.IdentifierName }; - var members = temp.Where(item => names.Contains(item.ParentScopeDeclaration.IdentifierName) - && item.DeclarationType == (accessorType == ContextAccessorType.GetValueOrReference - ? DeclarationType.PropertyGet - : item.DeclarationType)).ToList(); - if (members.Count == 1) - { - return members.Single(); - } - } - - Debug.WriteLine("Ambiguous match in '{0}': '{1}'", localScope == null ? "(unknown)" : localScope.IdentifierName, identifierName); - } - } - - // VBA.Strings.Left function is actually called _B_var_Left; - // VBA.Strings.Left$ is _B_str_Left. - // same for all $-terminated functions. - var surrogateName = hasStringQualifier - ? "_B_str_" + identifierName - : "_B_var_" + identifierName; - - matches = _declarationFinder.MatchName(surrogateName).ToList(); - if (matches.Count == 1) - { - return matches.Single(); - } - - Debug.WriteLine("Unknown identifier in '{0}': '{1}'", localScope == null ? "(unknown)" : localScope.IdentifierName, identifierName); - return null; - } - - private static bool IsPublicOrGlobal(Declaration item) - { - return item.Accessibility == Accessibility.Global - || item.Accessibility == Accessibility.Public; - } - - private bool IsUserDeclarationInProjectScope(Declaration item) - { - var isNonMemberUserDeclaration = !item.IsBuiltIn - && !item.DeclarationType.HasFlag(DeclarationType.Member) - // events can't be called outside the class they're declared in, exclude them as well: - && item.DeclarationType != DeclarationType.Event; - - // declaration is in-scope if it's public/global, or if it's a module/class: - return isNonMemberUserDeclaration && (IsPublicOrGlobal(item) || _moduleTypes.Contains(item.DeclarationType)); - } - - private static bool IsBuiltInDeclarationInScope(Declaration item, Declaration localScope) - { - var isBuiltInNonEvent = item.IsBuiltIn && item.DeclarationType != DeclarationType.Event; - - // if localScope is null, we can only resolve to a global: - // note: built-in declarations are designed that way - var isBuiltInGlobal = localScope == null && item.Accessibility == Accessibility.Global; - - // if localScope is not null, we can resolve to any public or global in that scope: - var isInLocalScope = (localScope != null && item.Accessibility == Accessibility.Global - && localScope.IdentifierName == item.ParentDeclaration.IdentifierName) - || (localScope != null && localScope.QualifiedName.QualifiedModuleName.Component != null - && localScope.QualifiedName.QualifiedModuleName.Component.Type == Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_Document - && item.Accessibility == Accessibility.Public && item.ParentDeclaration.DeclarationType == localScope.DeclarationType); - - return isBuiltInNonEvent && (isBuiltInGlobal || isInLocalScope); - } - - private static bool IsProcedure(Declaration item, Declaration localScope) - { - var isProcedure = item.DeclarationType == DeclarationType.Procedure - || item.DeclarationType == DeclarationType.Function; - var isSameModule = item.ProjectId == localScope.ProjectId - && item.ComponentName == localScope.ComponentName; - return isProcedure && isSameModule; - } - - private bool IsPropertyAccessor(Declaration item, ContextAccessorType accessorType, Declaration localScope, bool isAssignmentTarget = false) - { - var isProperty = item.DeclarationType.HasFlag(DeclarationType.Property); - if (!isProperty) - { - return false; - } - - if (item.Equals(localScope) && item.DeclarationType == DeclarationType.PropertyGet) - { - // we're resolving the getter's return value assignment - return true; - } - if (item.Equals(localScope)) - { - // getter can't reference setter.. right? - return false; - } - - return (accessorType == ContextAccessorType.AssignValue && - item.DeclarationType == DeclarationType.PropertyLet) - || - (accessorType == ContextAccessorType.AssignReference && - item.DeclarationType == DeclarationType.PropertySet) - || - (accessorType == ContextAccessorType.GetValueOrReference && - item.DeclarationType == DeclarationType.PropertyGet && - !isAssignmentTarget); - } } } \ No newline at end of file diff --git a/RubberduckTests/Inspections/MoveFieldCloserToUsageInspectionTests.cs b/RubberduckTests/Inspections/MoveFieldCloserToUsageInspectionTests.cs index 0ff01c388b..6b49233259 100644 --- a/RubberduckTests/Inspections/MoveFieldCloserToUsageInspectionTests.cs +++ b/RubberduckTests/Inspections/MoveFieldCloserToUsageInspectionTests.cs @@ -47,7 +47,7 @@ public void MoveFieldCloserToUsage_DoesNotReturnsResult_MultipleReferenceInDiffe Public Sub Foo() Let bar = ""test"" End Sub -Public Sub For() +Public Sub For2() Let bar = ""test"" End Sub"; From a75d6b862ef6575588c997238d34c37f39a7eefe Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Wed, 4 May 2016 20:10:56 -0500 Subject: [PATCH 15/72] Code Explorer prints. --- .../CodeExplorer/CodeExplorerViewModel.cs | 44 +++++++++++++++++++ RetailCoder.VBE/Rubberduck.csproj | 2 + .../UI/CodeExplorer/CodeExplorerControl.xaml | 2 + RetailCoder.VBE/UI/RubberduckUI.Designer.cs | 9 ++++ RetailCoder.VBE/UI/RubberduckUI.resx | 3 ++ 5 files changed, 60 insertions(+) diff --git a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs index 663a12ea6a..f1364d0a1a 100644 --- a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs +++ b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs @@ -1,7 +1,11 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Drawing; +using System.Drawing.Printing; +using System.IO; using System.Linq; +using System.Windows.Forms; using System.Windows.Input; using System.Windows.Threading; using Microsoft.Vbe.Interop; @@ -14,6 +18,8 @@ using Rubberduck.UI.Refactorings; using Rubberduck.UnitTesting; using Rubberduck.VBEditor.VBEInterfaces.RubberduckCodePane; +using MessageBox = Rubberduck.UI.MessageBox; + // ReSharper disable CanBeReplacedWithTryCastAndCheckForNull namespace Rubberduck.Navigation.CodeExplorer @@ -63,6 +69,7 @@ public CodeExplorerViewModel(VBE vbe, _renameCommand = new DelegateCommand(ExecuteRenameCommand, _ => CanExecuteRenameCommand); _findAllReferencesCommand = new DelegateCommand(ExecuteFindAllReferencesCommand, _ => CanExecuteFindAllReferencesCommand); _findAllImplementationsCommand = new DelegateCommand(ExecuteFindAllImplementationsCommand, _ => CanExecuteFindAllImplementationsCommand); + _printCommand = new DelegateCommand(ExecutePrintCommand, CanExecutePrintCommand); } private readonly ICommand _refreshCommand; @@ -98,6 +105,9 @@ public CodeExplorerViewModel(VBE vbe, private readonly INavigateCommand _navigateCommand; public ICommand NavigateCommand { get { return _navigateCommand; } } + private readonly ICommand _printCommand; + public ICommand PrintCommand { get { return _printCommand; } } + private readonly ICommand _contextMenuNavigateCommand; public ICommand ContextMenuNavigateCommand { get { return _contextMenuNavigateCommand; } } @@ -217,6 +227,11 @@ private bool CanExecuteContextMenuNavigateCommand(object param) return SelectedItem != null && SelectedItem.QualifiedSelection.HasValue; } + private bool CanExecutePrintCommand(object param) + { + return SelectedItem is CodeExplorerComponentViewModel; + } + private bool CanExecuteShowDesignerCommand { get @@ -486,6 +501,35 @@ private void ExecuteContextMenuNavigateCommand(object obj) NavigateCommand.Execute(arg); } + private void ExecutePrintCommand(object obj) + { + var node = (CodeExplorerComponentViewModel)SelectedItem; + var component = node.Declaration.QualifiedName.QualifiedModuleName.Component; + + var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Rubberduck", + component.Name + ".txt"); + + var text = component.CodeModule.Lines[1, component.CodeModule.CountOfLines]; + + var printDoc = new PrintDocument { DocumentName = path }; + var pd = new PrintDialog + { + Document = printDoc, + AllowSelection = true, + AllowSomePages = true + }; + + if (pd.ShowDialog() == DialogResult.OK) + { + printDoc.PrintPage += (sender, printPageArgs) => + { + var font = new Font(new FontFamily("Consolas"), 10, FontStyle.Regular); + printPageArgs.Graphics.DrawString(text, font, Brushes.Black, 0, 0, new StringFormat()); + }; + printDoc.Print(); + } + } + private Declaration GetSelectedDeclaration() { if (SelectedItem is CodeExplorerProjectViewModel) diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index ad50988ac3..000706d01a 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -247,6 +247,7 @@ + False @@ -254,6 +255,7 @@ + diff --git a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml index 3f599f5381..2695f3c452 100644 --- a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml +++ b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml @@ -94,6 +94,8 @@ + diff --git a/RetailCoder.VBE/UI/RubberduckUI.Designer.cs b/RetailCoder.VBE/UI/RubberduckUI.Designer.cs index c963ac34db..f3b3e96a90 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.Designer.cs +++ b/RetailCoder.VBE/UI/RubberduckUI.Designer.cs @@ -325,6 +325,15 @@ public static string CodeExplorer_NewToolTip { } } + /// + /// Looks up a localized string similar to Print.... + /// + public static string CodeExplorer_Print { + get { + return ResourceManager.GetString("CodeExplorer_Print", resourceCulture); + } + } + /// /// Looks up a localized string similar to R&efresh. /// diff --git a/RetailCoder.VBE/UI/RubberduckUI.resx b/RetailCoder.VBE/UI/RubberduckUI.resx index 0f09015c62..0b6aef83d4 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.resx +++ b/RetailCoder.VBE/UI/RubberduckUI.resx @@ -1506,4 +1506,7 @@ All our stargazers, likers & followers, for the warm fuzzies Toggle signatures + + Print... + \ No newline at end of file From 5d77fc3331c82f58afc288e655d9f2a61b7e3208 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Wed, 4 May 2016 21:24:45 -0500 Subject: [PATCH 16/72] Import works --- .../CodeExplorer/CodeExplorerViewModel.cs | 255 +++++++++++++++--- .../UI/CodeExplorer/CodeExplorerControl.xaml | 7 + RetailCoder.VBE/UI/RubberduckUI.Designer.cs | 27 ++ RetailCoder.VBE/UI/RubberduckUI.resx | 9 + 4 files changed, 261 insertions(+), 37 deletions(-) diff --git a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs index f1364d0a1a..def420d8d4 100644 --- a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs +++ b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs @@ -24,7 +24,7 @@ namespace Rubberduck.Navigation.CodeExplorer { - public class CodeExplorerViewModel : ViewModelBase + public class CodeExplorerViewModel : ViewModelBase, IDisposable { private readonly VBE _vbe; private readonly RubberduckParserState _state; @@ -33,6 +33,8 @@ public class CodeExplorerViewModel : ViewModelBase private readonly ICodePaneWrapperFactory _wrapperFactory; private readonly FindAllReferencesCommand _findAllReferences; private readonly FindAllImplementationsCommand _findAllImplementations; + private readonly SaveFileDialog _saveFileDialog; + private readonly OpenFileDialog _openFileDialog; private readonly Dispatcher _dispatcher; public CodeExplorerViewModel(VBE vbe, @@ -42,7 +44,9 @@ public CodeExplorerViewModel(VBE vbe, Indenter indenter, ICodePaneWrapperFactory wrapperFactory, FindAllReferencesCommand findAllReferences, - FindAllImplementationsCommand findAllImplementations) + FindAllImplementationsCommand findAllImplementations, + SaveFileDialog saveFileDialog, + OpenFileDialog openFileDialog) { _dispatcher = Dispatcher.CurrentDispatcher; @@ -53,11 +57,22 @@ public CodeExplorerViewModel(VBE vbe, _wrapperFactory = wrapperFactory; _findAllReferences = findAllReferences; _findAllImplementations = findAllImplementations; + _saveFileDialog = saveFileDialog; + _openFileDialog = openFileDialog; _state.StateChanged += ParserState_StateChanged; _state.ModuleStateChanged += ParserState_ModuleStateChanged; + _openFileDialog.AddExtension = true; + _openFileDialog.AutoUpgradeEnabled = true; + _openFileDialog.CheckFileExists = true; + _openFileDialog.Multiselect = false; + _openFileDialog.ShowHelp = false; // we don't want 1996's file picker. + _openFileDialog.Filter = @"VB Files|*.cls;*.bas;*.frm"; + _openFileDialog.CheckFileExists = true; + _navigateCommand = navigateCommand; - _contextMenuNavigateCommand = new DelegateCommand(ExecuteContextMenuNavigateCommand, CanExecuteContextMenuNavigateCommand); + _contextMenuNavigateCommand = new DelegateCommand(ExecuteContextMenuNavigateCommand, + CanExecuteContextMenuNavigateCommand); _refreshCommand = new DelegateCommand(ExecuteRefreshCommand, _ => CanRefresh); _addTestModuleCommand = new DelegateCommand(ExecuteAddTestModuleCommand); _addStdModuleCommand = new DelegateCommand(ExecuteAddStdModuleCommand, CanAddModule); @@ -69,47 +84,124 @@ public CodeExplorerViewModel(VBE vbe, _renameCommand = new DelegateCommand(ExecuteRenameCommand, _ => CanExecuteRenameCommand); _findAllReferencesCommand = new DelegateCommand(ExecuteFindAllReferencesCommand, _ => CanExecuteFindAllReferencesCommand); _findAllImplementationsCommand = new DelegateCommand(ExecuteFindAllImplementationsCommand, _ => CanExecuteFindAllImplementationsCommand); + _printCommand = new DelegateCommand(ExecutePrintCommand, CanExecutePrintCommand); + _importCommand = new DelegateCommand(ExecuteImportCommand, CanExecuteImportCommand); + _exportCommand = new DelegateCommand(ExecuteExportCommand, CanExecuteExportCommand); + _removeCommand = new DelegateCommand(ExecuteRemoveCommand, CanExecuteRemoveCommand); } private readonly ICommand _refreshCommand; - public ICommand RefreshCommand { get { return _refreshCommand; } } + + public ICommand RefreshCommand + { + get { return _refreshCommand; } + } private readonly ICommand _addTestModuleCommand; - public ICommand AddTestModuleCommand { get { return _addTestModuleCommand; } } + + public ICommand AddTestModuleCommand + { + get { return _addTestModuleCommand; } + } private readonly ICommand _addStdModuleCommand; - public ICommand AddStdModuleCommand { get { return _addStdModuleCommand; } } + + public ICommand AddStdModuleCommand + { + get { return _addStdModuleCommand; } + } private readonly ICommand _addClsModuleCommand; - public ICommand AddClsModuleCommand { get { return _addClsModuleCommand; } } + + public ICommand AddClsModuleCommand + { + get { return _addClsModuleCommand; } + } private readonly ICommand _addFormCommand; - public ICommand AddFormCommand { get { return _addFormCommand; } } + + public ICommand AddFormCommand + { + get { return _addFormCommand; } + } private readonly ICommand _openDesignerCommand; - public ICommand OpenDesignerCommand { get { return _openDesignerCommand; } } + + public ICommand OpenDesignerCommand + { + get { return _openDesignerCommand; } + } private readonly ICommand _indenterCommand; - public ICommand IndenterCommand { get { return _indenterCommand; } } + + public ICommand IndenterCommand + { + get { return _indenterCommand; } + } private readonly ICommand _renameCommand; - public ICommand RenameCommand { get { return _renameCommand; } } + + public ICommand RenameCommand + { + get { return _renameCommand; } + } private readonly ICommand _findAllReferencesCommand; - public ICommand FindAllReferencesCommand { get { return _findAllReferencesCommand; } } + + public ICommand FindAllReferencesCommand + { + get { return _findAllReferencesCommand; } + } private readonly ICommand _findAllImplementationsCommand; - public ICommand FindAllImplementationsCommand { get { return _findAllImplementationsCommand; } } + + public ICommand FindAllImplementationsCommand + { + get { return _findAllImplementationsCommand; } + } private readonly INavigateCommand _navigateCommand; - public ICommand NavigateCommand { get { return _navigateCommand; } } + + public ICommand NavigateCommand + { + get { return _navigateCommand; } + } private readonly ICommand _printCommand; - public ICommand PrintCommand { get { return _printCommand; } } + + public ICommand PrintCommand + { + get { return _printCommand; } + } + + private readonly ICommand _importCommand; + + public ICommand ImportCommand + { + get { return _importCommand; } + } + + private readonly ICommand _exportCommand; + + public ICommand ExportCommand + { + get { return _exportCommand; } + } + + private readonly ICommand _removeCommand; + + public ICommand RemoveCommand + { + get { return _removeCommand; } + } private readonly ICommand _contextMenuNavigateCommand; - public ICommand ContextMenuNavigateCommand { get { return _contextMenuNavigateCommand; } } + + public ICommand ContextMenuNavigateCommand + { + get { return _contextMenuNavigateCommand; } + } public string Description { @@ -117,27 +209,27 @@ public string Description { if (SelectedItem is CodeExplorerProjectViewModel) { - return ((CodeExplorerProjectViewModel)SelectedItem).Declaration.DescriptionString; + return ((CodeExplorerProjectViewModel) SelectedItem).Declaration.DescriptionString; } if (SelectedItem is CodeExplorerComponentViewModel) { - return ((CodeExplorerComponentViewModel)SelectedItem).Declaration.DescriptionString; + return ((CodeExplorerComponentViewModel) SelectedItem).Declaration.DescriptionString; } if (SelectedItem is CodeExplorerMemberViewModel) { - return ((CodeExplorerMemberViewModel)SelectedItem).Declaration.DescriptionString; + return ((CodeExplorerMemberViewModel) SelectedItem).Declaration.DescriptionString; } if (SelectedItem is CodeExplorerCustomFolderViewModel) { - return ((CodeExplorerCustomFolderViewModel)SelectedItem).FolderAttribute; + return ((CodeExplorerCustomFolderViewModel) SelectedItem).FolderAttribute; } if (SelectedItem is CodeExplorerErrorNodeViewModel) { - return ((CodeExplorerErrorNodeViewModel)SelectedItem).Name; + return ((CodeExplorerErrorNodeViewModel) SelectedItem).Name; } return string.Empty; @@ -145,18 +237,22 @@ public string Description } private CodeExplorerItemViewModel _selectedItem; + public CodeExplorerItemViewModel SelectedItem { get { return _selectedItem; } set { - _selectedItem = value; + _selectedItem = value; OnPropertyChanged(); // ReSharper disable ExplicitCallerInfoArgument OnPropertyChanged("CanExecuteIndenterCommand"); OnPropertyChanged("CanExecuteRenameCommand"); OnPropertyChanged("CanExecuteFindAllReferencesCommand"); OnPropertyChanged("CanExecuteShowDesignerCommand"); + OnPropertyChanged("CanExecutePrintCommand"); + OnPropertyChanged("CanExecuteExportCommand"); + OnPropertyChanged("CanExecuteRemoveCommand"); OnPropertyChanged("PanelTitle"); OnPropertyChanged("Description"); // ReSharper restore ExplicitCallerInfoArgument @@ -164,18 +260,20 @@ public CodeExplorerItemViewModel SelectedItem } private bool _isBusy; + public bool IsBusy { get { return _isBusy; } set { - _isBusy = value; + _isBusy = value; OnPropertyChanged(); CanRefresh = !_isBusy; } } private bool _canRefresh = true; + public bool CanRefresh { get { return _canRefresh; } @@ -197,19 +295,19 @@ public string PanelTitle if (SelectedItem is CodeExplorerProjectViewModel) { - var node = (CodeExplorerProjectViewModel)SelectedItem; + var node = (CodeExplorerProjectViewModel) SelectedItem; return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType); } if (SelectedItem is CodeExplorerComponentViewModel) { - var node = (CodeExplorerComponentViewModel)SelectedItem; + var node = (CodeExplorerComponentViewModel) SelectedItem; return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType); } if (SelectedItem is CodeExplorerMemberViewModel) { - var node = (CodeExplorerMemberViewModel)SelectedItem; + var node = (CodeExplorerMemberViewModel) SelectedItem; return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType); } @@ -232,6 +330,30 @@ private bool CanExecutePrintCommand(object param) return SelectedItem is CodeExplorerComponentViewModel; } + private bool CanExecuteImportCommand(object param) + { + return SelectedItem is CodeExplorerProjectViewModel || + SelectedItem is CodeExplorerComponentViewModel || + SelectedItem is CodeExplorerMemberViewModel; + } + + private bool CanExecuteExportCommand(object param) + { + if (!(SelectedItem is CodeExplorerComponentViewModel)) + { + return false; + } + + var node = (CodeExplorerComponentViewModel) SelectedItem; + var componentType = node.Declaration.QualifiedName.QualifiedModuleName.Component.Type; + return _exportableFileExtensions.Select(s => s.Key).Contains(componentType); + } + + private bool CanExecuteRemoveCommand(object param) + { + return SelectedItem is CodeExplorerComponentViewModel; + } + private bool CanExecuteShowDesignerCommand { get @@ -275,17 +397,18 @@ private bool CanExecuteFindAllImplementationsCommand { return _state.Status == ParserState.Ready && (SelectedItem is CodeExplorerComponentViewModel || - SelectedItem is CodeExplorerMemberViewModel); + SelectedItem is CodeExplorerMemberViewModel); } } private ObservableCollection _projects; + public ObservableCollection Projects { get { return _projects; } set { - _projects = value; + _projects = value; OnPropertyChanged(); } } @@ -308,13 +431,17 @@ private void ParserState_StateChanged(object sender, EventArgs e) .Where(grouping => grouping.Key != null) .ToList(); - if (userDeclarations.Any(grouping => grouping.All(declaration => declaration.DeclarationType != DeclarationType.Project))) + if ( + userDeclarations.Any( + grouping => grouping.All(declaration => declaration.DeclarationType != DeclarationType.Project))) { return; } var newProjects = new ObservableCollection(userDeclarations.Select(grouping => - new CodeExplorerProjectViewModel(grouping.SingleOrDefault(declaration => declaration.DeclarationType == DeclarationType.Project), grouping))); + new CodeExplorerProjectViewModel( + grouping.SingleOrDefault(declaration => declaration.DeclarationType == DeclarationType.Project), + grouping))); UpdateNodes(Projects, newProjects); Projects = newProjects; @@ -363,7 +490,7 @@ private void ParserState_ModuleStateChanged(object sender, Parsing.ParseProgress var componentProject = e.Component.Collection.Parent; var node = Projects.OfType() - .FirstOrDefault(p => p.Declaration.Project == componentProject); + .FirstOrDefault(p => p.Declaration.Project == componentProject); if (node == null) { @@ -376,17 +503,21 @@ private void ParserState_ModuleStateChanged(object sender, Parsing.ParseProgress _dispatcher.BeginInvoke(addNode, node, folderNode, e.Component.Name); } - private delegate void AddErrorNode(CodeExplorerItemViewModel projectNode, CodeExplorerItemViewModel folderNode, string componentName); - private void AddComponentErrorNode(CodeExplorerItemViewModel projectNode, CodeExplorerItemViewModel folderNode, string componentName) + private delegate void AddErrorNode( + CodeExplorerItemViewModel projectNode, CodeExplorerItemViewModel folderNode, string componentName); + + private void AddComponentErrorNode(CodeExplorerItemViewModel projectNode, CodeExplorerItemViewModel folderNode, + string componentName) { Projects.Remove(projectNode); RemoveFailingComponent(projectNode, componentName); - + folderNode.AddChild(new CodeExplorerErrorNodeViewModel(componentName)); Projects.Add(projectNode); } private bool _removedNode; + private void RemoveFailingComponent(CodeExplorerItemViewModel itemNode, string componentName) { foreach (var node in itemNode.Items) @@ -403,7 +534,7 @@ private void RemoveFailingComponent(CodeExplorerItemViewModel itemNode, string c if (node is CodeExplorerComponentViewModel) { - var component = (CodeExplorerComponentViewModel)node; + var component = (CodeExplorerComponentViewModel) node; if (component.Name == componentName) { itemNode.Items.Remove(node); @@ -503,7 +634,7 @@ private void ExecuteContextMenuNavigateCommand(object obj) private void ExecutePrintCommand(object obj) { - var node = (CodeExplorerComponentViewModel)SelectedItem; + var node = (CodeExplorerComponentViewModel) SelectedItem; var component = node.Declaration.QualifiedName.QualifiedModuleName.Component; var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Rubberduck", @@ -511,7 +642,7 @@ private void ExecutePrintCommand(object obj) var text = component.CodeModule.Lines[1, component.CodeModule.CountOfLines]; - var printDoc = new PrintDocument { DocumentName = path }; + var printDoc = new PrintDocument {DocumentName = path}; var pd = new PrintDialog { Document = printDoc, @@ -530,6 +661,50 @@ private void ExecutePrintCommand(object obj) } } + private void ExecuteImportCommand(object param) + { + // I know this will never be null because of the CanExecute + var project = GetSelectedDeclaration().QualifiedName.QualifiedModuleName.Project; + + if (_openFileDialog.ShowDialog() == DialogResult.OK) + { + var fileExt = '.' + _openFileDialog.FileName.Split('.').Last(); + if (!_exportableFileExtensions.Select(s => s.Value).Contains(fileExt)) + { + return; + } + + project.VBComponents.Import(_openFileDialog.FileName); + } + } + + private readonly Dictionary _exportableFileExtensions = new Dictionary + { + { vbext_ComponentType.vbext_ct_StdModule, ".bas" }, + { vbext_ComponentType.vbext_ct_ClassModule, ".cls" }, + { vbext_ComponentType.vbext_ct_Document, ".cls" }, + { vbext_ComponentType.vbext_ct_MSForm, ".frm" } + }; + + private void ExecuteExportCommand(object param) + { + var node = (CodeExplorerComponentViewModel)SelectedItem; + var component = node.Declaration.QualifiedName.QualifiedModuleName.Component; + + string ext; + _exportableFileExtensions.TryGetValue(component.Type, out ext); + + _saveFileDialog.FileName = component.Name + ext; + if (_saveFileDialog.ShowDialog() == DialogResult.OK) + { + component.Export(_saveFileDialog.FileName); + } + } + + private void ExecuteRemoveCommand(object param) + { + } + private Declaration GetSelectedDeclaration() { if (SelectedItem is CodeExplorerProjectViewModel) @@ -549,5 +724,11 @@ private Declaration GetSelectedDeclaration() return null; } + + public void Dispose() + { + _saveFileDialog.Dispose(); + _openFileDialog.Dispose(); + } } } diff --git a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml index 2695f3c452..5143cab2e3 100644 --- a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml +++ b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml @@ -94,6 +94,13 @@ + + + + diff --git a/RetailCoder.VBE/UI/RubberduckUI.Designer.cs b/RetailCoder.VBE/UI/RubberduckUI.Designer.cs index f3b3e96a90..eeed8ab177 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.Designer.cs +++ b/RetailCoder.VBE/UI/RubberduckUI.Designer.cs @@ -271,6 +271,15 @@ public static string CodeExplorer_DisplaySignaturesText { } } + /// + /// Looks up a localized string similar to Export.... + /// + public static string CodeExplorer_Export { + get { + return ResourceManager.GetString("CodeExplorer_Export", resourceCulture); + } + } + /// /// Looks up a localized string similar to Find All Implementations.... /// @@ -289,6 +298,15 @@ public static string CodeExplorer_FindAllReferencesText { } } + /// + /// Looks up a localized string similar to Import.... + /// + public static string CodeExplorer_Import { + get { + return ResourceManager.GetString("CodeExplorer_Import", resourceCulture); + } + } + /// /// Looks up a localized string similar to &Inspect. /// @@ -343,6 +361,15 @@ public static string CodeExplorer_Refresh { } } + /// + /// Looks up a localized string similar to Remove.... + /// + public static string CodeExplorer_Remove { + get { + return ResourceManager.GetString("CodeExplorer_Remove", resourceCulture); + } + } + /// /// Looks up a localized string similar to Run All &Tests. /// diff --git a/RetailCoder.VBE/UI/RubberduckUI.resx b/RetailCoder.VBE/UI/RubberduckUI.resx index 0b6aef83d4..408c384e67 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.resx +++ b/RetailCoder.VBE/UI/RubberduckUI.resx @@ -1506,7 +1506,16 @@ All our stargazers, likers & followers, for the warm fuzzies Toggle signatures + + Export... + + + Import... + Print... + + Remove... + \ No newline at end of file From eba9fb9b7642c1331dda7b80b476708cf30dfee4 Mon Sep 17 00:00:00 2001 From: INOPIAE Date: Thu, 5 May 2016 06:54:38 +0200 Subject: [PATCH 17/72] translation: added one new German phrase --- RetailCoder.VBE/UI/RubberduckUI.de.resx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RetailCoder.VBE/UI/RubberduckUI.de.resx b/RetailCoder.VBE/UI/RubberduckUI.de.resx index 1d2b1637c6..4921f9432c 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.de.resx +++ b/RetailCoder.VBE/UI/RubberduckUI.de.resx @@ -1489,4 +1489,7 @@ Allen Sternguckern, Likern & Followern, für das warme Kribbeln Wechsele Signatur + + Suchen + \ No newline at end of file From 856d3266c09f5ac314c6571ec82bde19989bd18c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 12:56:28 +0200 Subject: [PATCH 18/72] fix NRE --- Rubberduck.Parsing/Binding/IndexDefaultBinding.cs | 9 ++++++++- .../Symbols/IdentifierReferenceResolver.cs | 8 -------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs index 6edd351ed2..e32f826fd4 100644 --- a/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/IndexDefaultBinding.cs @@ -70,7 +70,14 @@ public IBoundExpression Resolve() { _lExpression = _lExpressionBinding.Resolve(); } - ResolveArgumentList(_lExpression.ReferencedDeclaration); + if (_lExpression != null) + { + ResolveArgumentList(_lExpression.ReferencedDeclaration); + } + else + { + ResolveArgumentList(null); + } return Resolve(_lExpression); } diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index aa4b0bbc32..684f6e232f 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -1,5 +1,4 @@ using Antlr4.Runtime; -using Microsoft.Vbe.Interop; using Rubberduck.Parsing.Annotations; using Rubberduck.Parsing.Binding; using Rubberduck.Parsing.Grammar; @@ -598,12 +597,5 @@ public void Resolve(VBAParser.EnumerationStmtContext context) } } } - - //public void Resolve(VBAParser.VsAssignContext context) - //{ - // // named parameter reference must be scoped to called procedure - // var callee = FindParentCall(context); - // ResolveInternal(context.implicitCallStmt_InStmt(), callee, ContextAccessorType.AssignValueOrReference); - //} } } \ No newline at end of file From 48a721c8cbc0127e99347a762c9acf69aea91d57 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 13:02:18 +0200 Subject: [PATCH 19/72] remove test, that should actually resolve successfully --- RubberduckTests/Grammar/ResolverTests.cs | 27 ------------------------ 1 file changed, 27 deletions(-) diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index 9bbdffdc4c..f54cbdb368 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -231,33 +231,6 @@ Public foo As Integer Assert.AreEqual("DoSomething", reference.ParentScoping.IdentifierName); } - [TestMethod] - public void EncapsulatedVariableAssignment_DoesNotResolve() - { - // arrange - var code_class1 = @" -Public Sub DoSomething() - foo = 42 -End Sub -"; - var code_class2 = @" -Option Explicit -Public foo As Integer -"; - var class1 = Tuple.Create(code_class1, vbext_ComponentType.vbext_ct_ClassModule); - var class2 = Tuple.Create(code_class2, vbext_ComponentType.vbext_ct_ClassModule); - - // act - var state = Resolve(class1, class2); - - // assert - var declaration = state.AllUserDeclarations.Single(item => - item.DeclarationType == DeclarationType.Variable && item.IdentifierName == "foo"); - - var reference = declaration.References.SingleOrDefault(item => item.IsAssignment); - Assert.IsNull(reference); - } - [TestMethod] public void UserDefinedTypeVariableAsTypeClause_IsReferenceToUserDefinedTypeDeclaration() { From b6d3725a4e89a5012262bd711dc14ff0b269714c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 13:42:23 +0200 Subject: [PATCH 20/72] add support for default instance variable class modules --- .../Binding/MemberAccessDefaultBinding.cs | 23 +++++++++++++++-- .../Binding/SimpleNameDefaultBinding.cs | 5 ++++ .../Symbols/ClassModuleDeclaration.cs | 25 +++++++++++++++++++ Rubberduck.Parsing/Symbols/Declaration.cs | 18 ------------- .../Symbols/DeclarationFinder.cs | 11 ++++++++ 5 files changed, 62 insertions(+), 20 deletions(-) diff --git a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs index 8d271f84ef..1780695496 100644 --- a/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/MemberAccessDefaultBinding.cs @@ -155,7 +155,6 @@ expression is classified as an unbound member and has a declared type of Variant { return null; } - // TODO: DeclarationType UDT Member should actually be Variable? var udtMember = _declarationFinder.FindMemberWithParent(_project, _module, _parent, referencedType, _name, DeclarationType.UserDefinedTypeMember); if (udtMember != null) { @@ -236,6 +235,11 @@ with the same declared type as the member. { return boundExpression; } + boundExpression = ResolveDefaultInstanceVariableClass(lExpressionIsEnclosingProject, referencedProject); + if (boundExpression != null) + { + return boundExpression; + } boundExpression = ResolveMemberInReferencedProject(lExpressionIsEnclosingProject, referencedProject, DeclarationType.Variable, ExpressionClassification.Variable); if (boundExpression != null) { @@ -313,6 +317,20 @@ private IBoundExpression ResolveProceduralModule(bool lExpressionIsEnclosingProj return null; } + private IBoundExpression ResolveDefaultInstanceVariableClass(bool lExpressionIsEnclosingProject, Declaration referencedProject) + { + if (!lExpressionIsEnclosingProject) + { + return null; + } + var defaultInstanceVariableClass = _declarationFinder.FindDefaultInstanceVariableClassEnclosingProject(_project, _module, _name); + if (defaultInstanceVariableClass != null) + { + return new MemberAccessExpression(defaultInstanceVariableClass, ExpressionClassification.Type, _context, _lExpression); + } + return null; + } + private IBoundExpression ResolveMemberInReferencedProject(bool lExpressionIsEnclosingProject, Declaration referencedProject, DeclarationType memberType, ExpressionClassification classification) { if (lExpressionIsEnclosingProject) @@ -354,7 +372,8 @@ the member. - The member is a value. In this case, the member access expression is classified as a value with the same declared type as the member. */ - if (_lExpression.Classification != ExpressionClassification.ProceduralModule) + bool isDefaultInstanceVariableClass = _lExpression.Classification == ExpressionClassification.Type && _lExpression.ReferencedDeclaration.DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)_lExpression.ReferencedDeclaration).HasDefaultInstanceVariable; + if (_lExpression.Classification != ExpressionClassification.ProceduralModule && !isDefaultInstanceVariableClass) { return null; } diff --git a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs index 1005cfb38a..9642210948 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameDefaultBinding.cs @@ -157,6 +157,11 @@ procedural module contained in the enclosing project. { return new SimpleNameExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _expression); } + var defaultInstanceVariableClass = _declarationFinder.FindDefaultInstanceVariableClassEnclosingProject(_project, _module, name); + if (defaultInstanceVariableClass != null) + { + return new SimpleNameExpression(defaultInstanceVariableClass, ExpressionClassification.Type, _expression); + } return null; } diff --git a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs index 07314387f6..e8845db9cc 100644 --- a/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs +++ b/Rubberduck.Parsing/Symbols/ClassModuleDeclaration.cs @@ -72,6 +72,31 @@ public bool IsGlobalClassModule } } + /// + /// Gets an attribute value indicating whether a class has a predeclared ID. + /// Such classes can be treated as "static classes", or as far as resolving is concerned, as standard modules. + /// + public bool HasPredeclaredId + { + get + { + IEnumerable value; + if (Attributes.TryGetValue("VB_PredeclaredId", out value)) + { + return value.Single() == "True"; + } + return false; + } + } + + public bool HasDefaultInstanceVariable + { + get + { + return HasPredeclaredId || IsGlobalClassModule; + } + } + public Declaration DefaultMember { get; internal set; } } } diff --git a/Rubberduck.Parsing/Symbols/Declaration.cs b/Rubberduck.Parsing/Symbols/Declaration.cs index f93869041b..023a7d4519 100644 --- a/Rubberduck.Parsing/Symbols/Declaration.cs +++ b/Rubberduck.Parsing/Symbols/Declaration.cs @@ -215,24 +215,6 @@ public IEnumerable MemberCalls private readonly Attributes _attributes; public IReadOnlyDictionary> Attributes { get { return _attributes; } } - /// - /// Gets an attribute value indicating whether a class has a predeclared ID. - /// Such classes can be treated as "static classes", or as far as resolving is concerned, as standard modules. - /// - public bool HasPredeclaredId - { - get - { - IEnumerable value; - if (_attributes.TryGetValue("VB_PredeclaredId", out value)) - { - return value.Single() == "True"; - } - - return false; - } - } - /// /// Gets an attribute value that contains the docstring for a member. /// diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index aac8125510..8289c91bda 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -240,6 +240,17 @@ public Declaration FindModuleEnclosingProjectWithoutEnclosingModule(Declaration return match; } + public Declaration FindDefaultInstanceVariableClassEnclosingProject(Declaration callingProject, Declaration callingModule, string defaultInstanceVariableClassName) + { + var nameMatches = MatchName(defaultInstanceVariableClassName); + var moduleMatches = nameMatches.Where(m => + m.DeclarationType == DeclarationType.ClassModule && ((ClassModuleDeclaration)m).HasDefaultInstanceVariable + && Declaration.GetProjectParent(m).Equals(callingProject)); + var accessibleModules = moduleMatches.Where(calledModule => AccessibilityCheck.IsModuleAccessible(callingProject, callingModule, calledModule)); + var match = accessibleModules.FirstOrDefault(); + return match; + } + public Declaration FindModuleReferencedProject(Declaration callingProject, Declaration callingModule, string calleeModuleName, DeclarationType moduleType) { var moduleMatches = FindAllInReferencedProjectByPriority(callingProject, calleeModuleName, p => p.DeclarationType.HasFlag(moduleType)); From e57532e83cdd9147bf2f62826b398bc1d182f648 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 14:10:24 +0200 Subject: [PATCH 21/72] fix NRE --- Rubberduck.Parsing/Binding/DefaultBindingContext.cs | 10 +++++++++- Rubberduck.sln | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs index 31f6865634..605a2c48a2 100644 --- a/Rubberduck.Parsing/Binding/DefaultBindingContext.cs +++ b/Rubberduck.Parsing/Binding/DefaultBindingContext.cs @@ -224,7 +224,15 @@ private Func CreateNamedArgumentExpressionCreator { classification = ExpressionClassification.Property; } - return new SimpleNameExpression(_declarationFinder.FindParameter(calledProcedure, parameterName), classification, context); + var parameter = _declarationFinder.FindParameter(calledProcedure, parameterName); + if (parameter != null) + { + return new SimpleNameExpression(parameter, classification, context); + } + else + { + return null; + } }; } diff --git a/Rubberduck.sln b/Rubberduck.sln index 2291970fdb..4cfa6c7946 100644 --- a/Rubberduck.sln +++ b/Rubberduck.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.24720.0 +VisualStudioVersion = 14.0.25123.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rubberduck", "RetailCoder.VBE\Rubberduck.csproj", "{20589DE8-432E-4359-9232-69EB070B7185}" ProjectSection(ProjectDependencies) = postProject @@ -40,6 +40,9 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RubberduckTests", "RubberduckTests\RubberduckTests.csproj", "{ADADE971-75E3-40C4-8C19-AB7409372F2E}" EndProject Global + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 From c4ad646640e9fb89490ed0ec56727b723c51fb2e Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 14:57:30 +0200 Subject: [PATCH 22/72] fix resolver performance issues --- Rubberduck.Parsing/VBA/RubberduckParser.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Rubberduck.Parsing/VBA/RubberduckParser.cs b/Rubberduck.Parsing/VBA/RubberduckParser.cs index 4bb465d095..156f4f1a18 100644 --- a/Rubberduck.Parsing/VBA/RubberduckParser.cs +++ b/Rubberduck.Parsing/VBA/RubberduckParser.cs @@ -316,15 +316,14 @@ public Task ParseAsync(VBComponent component, CancellationToken token, TokenStre } var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(_central.Token, token); - - //var taskFactory = new TaskFactory(new StaTaskScheduler()); + var task = new Task(() => ParseAsyncInternal(component, linkedTokenSource.Token, rewriter)); _currentTasks.TryAdd(component, Tuple.Create(task, linkedTokenSource)); Tuple removedTask; task.ContinueWith(t => _currentTasks.TryRemove(component, out removedTask)); // default also executes on cancel - - task.Start(/*taskFactory.Scheduler*/); + // See http://stackoverflow.com/questions/6800705/why-is-taskscheduler-current-the-default-taskscheduler + task.Start(TaskScheduler.Default); return task; } @@ -439,6 +438,7 @@ private void ResolveInternal(CancellationToken token) // walk all parse trees (modified or not) for identifier references var finder = new DeclarationFinder(_state.AllDeclarations, _state.AllComments, _state.AllAnnotations); + new TypeAnnotationPass(finder).Annotate(); foreach (var kvp in _state.ParseTrees) { if (token.IsCancellationRequested) return; @@ -534,7 +534,6 @@ private void ResolveReferences(DeclarationFinder finder, VBComponent component, var walker = new ParseTreeWalker(); try { - new TypeAnnotationPass(finder).Annotate(); walker.Walk(listener, tree); _state.RebuildSelectionCache(); state = ParserState.Ready; From 7c60e622b1a6d919c7ec7033d765834b032258a7 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Thu, 5 May 2016 09:30:25 -0500 Subject: [PATCH 23/72] Fix refactoring tests. --- .../ImplementInterfaceRefactoring.cs | 26 +++--------- .../RefactorImplementInterfaceCommand.cs | 42 +++++++++++++++---- .../Refactoring/ImplementInterfaceTests.cs | 41 +----------------- 3 files changed, 39 insertions(+), 70 deletions(-) diff --git a/RetailCoder.VBE/Refactorings/ImplementInterface/ImplementInterfaceRefactoring.cs b/RetailCoder.VBE/Refactorings/ImplementInterface/ImplementInterfaceRefactoring.cs index 763b3e8a4e..f71bafd1b9 100644 --- a/RetailCoder.VBE/Refactorings/ImplementInterface/ImplementInterfaceRefactoring.cs +++ b/RetailCoder.VBE/Refactorings/ImplementInterface/ImplementInterfaceRefactoring.cs @@ -14,7 +14,6 @@ namespace Rubberduck.Refactorings.ImplementInterface public class ImplementInterfaceRefactoring : IRefactoring { private readonly VBE _vbe; - private readonly RubberduckParserState _state; private readonly IMessageBox _messageBox; private List _declarations; @@ -26,18 +25,10 @@ public class ImplementInterfaceRefactoring : IRefactoring public ImplementInterfaceRefactoring(VBE vbe, RubberduckParserState state, IMessageBox messageBox) { _vbe = vbe; - _state = state; _declarations = state.AllUserDeclarations.ToList(); _messageBox = messageBox; } - public bool CanExecute(QualifiedSelection selection) - { - CalculateTargets(selection); - - return _targetClass != null && _targetInterface != null; - } - public void Refactor() { if (_vbe.ActiveCodePane == null) @@ -60,7 +51,11 @@ public void Refactor() public void Refactor(QualifiedSelection selection) { - CalculateTargets(selection); + _targetInterface = _declarations.FindInterface(selection); + + _targetClass = _declarations.SingleOrDefault(d => + !d.IsBuiltIn && d.DeclarationType == DeclarationType.ClassModule && + d.QualifiedSelection.QualifiedName.Equals(selection.QualifiedName)); if (_targetClass == null || _targetInterface == null) { @@ -77,17 +72,6 @@ public void Refactor(Declaration target) throw new NotImplementedException(); } - private void CalculateTargets(QualifiedSelection selection) - { - _declarations = _state.AllUserDeclarations.ToList(); - - _targetInterface = _declarations.FindInterface(selection); - - _targetClass = _declarations.SingleOrDefault(d => - !d.IsBuiltIn && d.DeclarationType == DeclarationType.ClassModule && - d.QualifiedSelection.QualifiedName.Equals(selection.QualifiedName)); - } - private void ImplementMissingMembers() { var interfaceMembers = GetInterfaceMembers(); diff --git a/RetailCoder.VBE/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs b/RetailCoder.VBE/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs index 59688dccbb..cdc4ed9d60 100644 --- a/RetailCoder.VBE/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs +++ b/RetailCoder.VBE/UI/Command/Refactorings/RefactorImplementInterfaceCommand.cs @@ -1,9 +1,11 @@ +using System.Diagnostics; +using System.Linq; using Microsoft.Vbe.Interop; using System.Runtime.InteropServices; +using Rubberduck.Common; +using Rubberduck.Parsing.Symbols; using Rubberduck.Parsing.VBA; using Rubberduck.Refactorings.ImplementInterface; -using Rubberduck.VBEditor; -using Rubberduck.VBEditor.Extensions; namespace Rubberduck.UI.Command.Refactorings { @@ -11,25 +13,47 @@ namespace Rubberduck.UI.Command.Refactorings public class RefactorImplementInterfaceCommand : RefactorCommandBase { private readonly RubberduckParserState _state; - private readonly ImplementInterfaceRefactoring _refactoring; - private QualifiedSelection? _selection; public RefactorImplementInterfaceCommand(VBE vbe, RubberduckParserState state) - :base(vbe) + : base(vbe) { _state = state; - _refactoring = new ImplementInterfaceRefactoring(Vbe, state, new MessageBox()); } public override bool CanExecute(object parameter) { - return Vbe.ActiveCodePane != null && _state.Status == ParserState.Ready && _selection.HasValue && _refactoring.CanExecute(_selection.Value); + if (Vbe.ActiveCodePane == null || _state.Status != ParserState.Ready) + { + return false; + } + + var selection = Vbe.ActiveCodePane.GetQualifiedSelection(); + if (!selection.HasValue) + { + return false; + } + + var targetInterface = _state.AllUserDeclarations.FindInterface(selection.Value); + + var targetClass = _state.AllUserDeclarations.SingleOrDefault(d => + !d.IsBuiltIn && d.DeclarationType == DeclarationType.ClassModule && + d.QualifiedSelection.QualifiedName.Equals(selection.Value.QualifiedName)); + + var canExecute = targetInterface != null && targetClass != null; + + Debug.WriteLine("{0}.CanExecute evaluates to {1}", GetType().Name, canExecute); + return canExecute; } public override void Execute(object parameter) { - // ReSharper disable once PossibleInvalidOperationException - _refactoring.Refactor(_selection.Value); + if (Vbe.ActiveCodePane == null) + { + return; + } + + var refactoring = new ImplementInterfaceRefactoring(Vbe, _state, new MessageBox()); + refactoring.Refactor(); } } } \ No newline at end of file diff --git a/RubberduckTests/Refactoring/ImplementInterfaceTests.cs b/RubberduckTests/Refactoring/ImplementInterfaceTests.cs index 0f8f6a2025..6ff35ae2f6 100644 --- a/RubberduckTests/Refactoring/ImplementInterfaceTests.cs +++ b/RubberduckTests/Refactoring/ImplementInterfaceTests.cs @@ -39,7 +39,7 @@ End Sub var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none) .AddComponent("Class1", vbext_ComponentType.vbext_ct_ClassModule, inputCode1) - .AddComponent("Class2", vbext_ComponentType.vbext_ct_ClassModule, inputCode2) + .AddComponent("Class2", vbext_ComponentType.vbext_ct_ClassModule, inputCode2, selection) .Build(); var vbe = builder.AddProject(project).Build(); var component = project.Object.VBComponents.Item(1); @@ -54,9 +54,6 @@ End Sub var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -106,9 +103,6 @@ End Sub var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -158,9 +152,6 @@ End Function var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -210,9 +201,6 @@ End Function var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -262,9 +250,6 @@ End Function var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -314,9 +299,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -366,9 +348,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -418,9 +397,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -470,9 +446,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -522,9 +495,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -574,9 +544,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -626,9 +593,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); @@ -699,9 +663,6 @@ End Property var qualifiedSelection = new QualifiedSelection(new QualifiedModuleName(component), selection); var module = project.Object.VBComponents.Item(1).CodeModule; - parser.Parse(); - if (parser.State.Status == ParserState.Error) { Assert.Inconclusive("Parser Error"); } - //Act var refactoring = new ImplementInterfaceRefactoring(vbe.Object, parser.State, null); refactoring.Refactor(qualifiedSelection); From 622921ff0a1aa43855a7dac552efa974e7af4039 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Thu, 5 May 2016 09:47:21 -0500 Subject: [PATCH 24/72] Fix inspection test. --- ...ocedureCanBeWrittenAsFunctionInspection.cs | 22 +++++++++---------- .../Refactoring/ImplementInterfaceTests.cs | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs b/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs index 75cf72db59..49bbe175ab 100644 --- a/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs +++ b/RetailCoder.VBE/Inspections/ProcedureCanBeWrittenAsFunctionInspection.cs @@ -34,11 +34,19 @@ public override IEnumerable GetInspectionResults() d.IdentifierName == c.identifier().GetText() && d.Context.GetSelection().Equals(c.GetSelection())); - var interfaceImplementation = UserDeclarations.FindInterfaceImplementationMembers().SingleOrDefault(m => m.Equals(declaration)); + if (UserDeclarations.FindInterfaceMembers().Contains(declaration)) + { + return false; + } - if (interfaceImplementation == null) { return true; } + var interfaceImplementation = UserDeclarations.FindInterfaceImplementationMembers().SingleOrDefault(m => m.Equals(declaration)); + if (interfaceImplementation == null) + { + return true; + } var interfaceMember = UserDeclarations.FindInterfaceMember(interfaceImplementation); + return interfaceMember == null; }); @@ -66,15 +74,5 @@ public override IEnumerable GetInspectionResults() new QualifiedContext(context.ModuleName, context.Context.Parent as VBAParser.SubStmtContext))); } - - private bool IsInterfaceImplementation(Declaration target) - { - var interfaceImplementation = State.AllUserDeclarations.FindInterfaceImplementationMembers().SingleOrDefault(m => m.Equals(target)); - - if (interfaceImplementation == null) { return false; } - - var interfaceMember = State.AllUserDeclarations.FindInterfaceMember(interfaceImplementation); - return interfaceMember != null; - } } } diff --git a/RubberduckTests/Refactoring/ImplementInterfaceTests.cs b/RubberduckTests/Refactoring/ImplementInterfaceTests.cs index 6ff35ae2f6..0fbff1a7a8 100644 --- a/RubberduckTests/Refactoring/ImplementInterfaceTests.cs +++ b/RubberduckTests/Refactoring/ImplementInterfaceTests.cs @@ -39,7 +39,7 @@ End Sub var builder = new MockVbeBuilder(); var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none) .AddComponent("Class1", vbext_ComponentType.vbext_ct_ClassModule, inputCode1) - .AddComponent("Class2", vbext_ComponentType.vbext_ct_ClassModule, inputCode2, selection) + .AddComponent("Class2", vbext_ComponentType.vbext_ct_ClassModule, inputCode2) .Build(); var vbe = builder.AddProject(project).Build(); var component = project.Object.VBComponents.Item(1); From 38fc5e910592eb994db7e7fa1fb7eba6406fb60f Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 17:34:13 +0200 Subject: [PATCH 25/72] actually fix problem instead of simply deleting test --- .../SimpleNameProcedurePointerBinding.cs | 6 +- .../Symbols/BoundExpressionVisitor.cs | 5 +- .../Symbols/DeclarationFinder.cs | 15 +++-- .../Symbols/IdentifierReferenceListener.cs | 5 -- .../Symbols/IdentifierReferenceResolver.cs | 67 ++----------------- .../SimpleNameProcedurePointerBindingTests.cs | 2 +- RubberduckTests/Grammar/ResolverTests.cs | 38 +++++++++-- 7 files changed, 53 insertions(+), 85 deletions(-) diff --git a/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs b/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs index 18c9e8c9be..71951f971c 100644 --- a/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs +++ b/Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs @@ -95,17 +95,17 @@ private IBoundExpression ResolveOtherModuleInEnclosingProject(string name) subroutine or property with a Property Get defined in a procedural module within the enclosing project other than the enclosing module. */ - var function = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Function, DeclarationType.ProceduralModule); + var function = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Function); if (function != null) { return new SimpleNameExpression(function, ExpressionClassification.Function, _expression); } - var subroutine = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Procedure, DeclarationType.ProceduralModule); + var subroutine = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.Procedure); if (subroutine != null) { return new SimpleNameExpression(subroutine, ExpressionClassification.Subroutine, _expression); } - var propertyGet = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.PropertyGet, DeclarationType.ProceduralModule); + var propertyGet = _declarationFinder.FindMemberEnclosedProjectWithoutEnclosingModule(_project, _module, _parent, name, DeclarationType.PropertyGet); if (propertyGet != null) { return new SimpleNameExpression(propertyGet, ExpressionClassification.Property, _expression); diff --git a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs index 72eb764693..8f84ba9fcc 100644 --- a/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs +++ b/Rubberduck.Parsing/Symbols/BoundExpressionVisitor.cs @@ -29,8 +29,9 @@ private void Visit(MemberAccessExpression expression, Func referenceCreator) { Visit((dynamic)expression.LExpression, referenceCreator); - // Expressions could be unbound thus not have a referenced declaration. The lexpression might still be bindable though. - if (expression.Classification != ExpressionClassification.Unbound) + if (expression.Classification != ExpressionClassification.Unbound + && expression.ReferencedDeclaration != null + && expression.LExpression.ReferencedDeclaration != expression.ReferencedDeclaration) { // Referenced declaration could also be null if e.g. it's an array and the array is a "base type" such as String. if (expression.ReferencedDeclaration != null) diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 8289c91bda..48d60e5973 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -301,18 +301,13 @@ public Declaration FindMemberEnclosingProcedure(Declaration enclosingProcedure, } public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) - { - return FindMemberEnclosedProjectWithoutEnclosingModule(callingProject, callingModule, callingParent, memberName, memberType, DeclarationType.Module); - } - - public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType, DeclarationType moduleType) { var allMatches = MatchName(memberName); var memberMatches = allMatches.Where(m => m.DeclarationType.HasFlag(memberType) // TODO: Fix this? // Assume no module = built-in, not checkable thus we conservatively include it in the matches. - && (Declaration.GetModuleParent(m) == null || Declaration.GetModuleParent(m).DeclarationType.HasFlag(moduleType)) + && (Declaration.GetModuleParent(m) == null || Declaration.GetModuleParent(m).DeclarationType == DeclarationType.ProceduralModule) && Declaration.GetProjectParent(m).Equals(callingProject) && !callingModule.Equals(Declaration.GetModuleParent(m))); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); @@ -320,6 +315,11 @@ public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration c return match; } + private static bool IsInstanceSensitive(DeclarationType memberType) + { + return memberType == DeclarationType.Variable || memberType == DeclarationType.Constant || memberType.HasFlag(DeclarationType.Procedure) || memberType.HasFlag(DeclarationType.Function); + } + public Declaration FindMemberEnclosedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration memberModule, string memberName, DeclarationType memberType) { var allMatches = MatchName(memberName); @@ -334,7 +334,8 @@ public Declaration FindMemberEnclosedProjectInModule(Declaration callingProject, public Declaration FindMemberReferencedProject(Declaration callingProject, Declaration callingModule, Declaration callingParent, string memberName, DeclarationType memberType) { - var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => p.DeclarationType.HasFlag(memberType)); + bool isInstanceSensitive = IsInstanceSensitive(memberType); + var memberMatches = FindAllInReferencedProjectByPriority(callingProject, memberName, p => (!isInstanceSensitive || Declaration.GetModuleParent(p) == null || Declaration.GetModuleParent(p).DeclarationType != DeclarationType.ClassModule) && p.DeclarationType.HasFlag(memberType)); var accessibleMembers = memberMatches.Where(m => AccessibilityCheck.IsMemberAccessible(callingProject, callingModule, callingParent, m)); var match = accessibleMembers.FirstOrDefault(); return match; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs index 15760527fb..296f8626b4 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs @@ -289,11 +289,6 @@ public override void EnterImplementsStmt(VBAParser.ImplementsStmtContext context _resolver.Resolve(context); } - public override void EnterVsAddressOf(VBAParser.VsAddressOfContext context) - { - _resolver.Resolve(context); - } - public override void EnterRaiseEventStmt(VBAParser.RaiseEventStmtContext context) { _resolver.Resolve(context); diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 684f6e232f..00ba982acc 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -11,74 +11,27 @@ namespace Rubberduck.Parsing.Symbols { - public class IdentifierReferenceResolver + public sealed class IdentifierReferenceResolver { private readonly DeclarationFinder _declarationFinder; - - private enum ContextAccessorType - { - GetValueOrReference, - AssignValue, - AssignReference, - AssignValueOrReference = AssignValue | AssignReference - } - private readonly QualifiedModuleName _qualifiedModuleName; - - private readonly IReadOnlyList _moduleTypes; - private readonly IReadOnlyList _memberTypes; - private readonly IReadOnlyList _returningMemberTypes; - - private readonly Stack _withBlockQualifiers; private readonly Stack _withBlockExpressions; - private readonly HashSet _alreadyResolved; - private readonly Declaration _moduleDeclaration; - private Declaration _currentScope; private Declaration _currentParent; - private readonly BindingService _bindingService; private readonly BoundExpressionVisitor _boundExpressionVisitor; public IdentifierReferenceResolver(QualifiedModuleName qualifiedModuleName, DeclarationFinder finder) { _declarationFinder = finder; - _qualifiedModuleName = qualifiedModuleName; - - _withBlockQualifiers = new Stack(); _withBlockExpressions = new Stack(); - _alreadyResolved = new HashSet(); - - _moduleTypes = new[] - { - DeclarationType.ProceduralModule, - DeclarationType.ClassModule, - }; - - _memberTypes = new[] - { - DeclarationType.Procedure, - DeclarationType.Function, - DeclarationType.PropertyGet, - DeclarationType.PropertyLet, - DeclarationType.PropertySet, - }; - - _returningMemberTypes = new[] - { - DeclarationType.Function, - DeclarationType.PropertyGet, - }; - _moduleDeclaration = finder.MatchName(_qualifiedModuleName.ComponentName) .SingleOrDefault(item => (item.DeclarationType == DeclarationType.ClassModule || item.DeclarationType == DeclarationType.ProceduralModule) && item.QualifiedName.QualifiedModuleName.Equals(_qualifiedModuleName)); - SetCurrentScope(); - var typeBindingContext = new TypeBindingContext(_declarationFinder); var procedurePointerBindingContext = new ProcedurePointerBindingContext(_declarationFinder); _bindingService = new BindingService( @@ -93,7 +46,6 @@ public void SetCurrentScope() { _currentScope = _moduleDeclaration; _currentParent = _moduleDeclaration; - _alreadyResolved.Clear(); } public void SetCurrentScope(string memberName, DeclarationType type) @@ -121,7 +73,6 @@ public void EnterWithBlock(VBAParser.WithStmtContext context) qualifier = boundExpression.ReferencedDeclaration; } // note: pushes null if unresolved - _withBlockQualifiers.Push(qualifier); _withBlockExpressions.Push(boundExpression); } @@ -136,13 +87,12 @@ private IBoundExpression GetInnerMostWithExpression() public void ExitWithBlock() { - _withBlockQualifiers.Pop(); _withBlockExpressions.Pop(); } private IdentifierReference CreateReference(ParserRuleContext callSiteContext, Declaration callee, Selection bindingSelection, bool isAssignmentTarget = false, bool hasExplicitLetStatement = false) { - if (callSiteContext == null || _currentScope == null || _alreadyResolved.Contains(callSiteContext)) + if (callSiteContext == null || _currentScope == null) { return null; } @@ -195,6 +145,10 @@ private void ResolveDefault(ParserRuleContext context, string expression, Resolu { _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(context, declaration, RubberduckParserState.CreateBindingSelection(context, exprCtx), isAssignmentTarget, hasExplicitLetStatement)); } + else + { + Debug.WriteLine("Failed to resolve {0}. Possible causes include: COM Coclass/Interface mixup / Alias / Bug in the resolver.", expression); + } } private void ResolveType(ParserRuleContext context, string expression) @@ -527,15 +481,6 @@ public void Resolve(VBAParser.ImplementsStmtContext context) ResolveType(context.valueStmt(), context.valueStmt().GetText()); } - public void Resolve(VBAParser.VsAddressOfContext context) - { - var boundExpression = _bindingService.ResolveProcedurePointer(_moduleDeclaration, _currentParent, context.valueStmt().GetText()); - if (boundExpression != null) - { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, declaration) => CreateReference(context.valueStmt(), declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt(), boundExpression.Context))); - } - } - public void Resolve(VBAParser.RaiseEventStmtContext context) { var eventDeclaration = _bindingService.ResolveEvent(_moduleDeclaration, context.identifier().GetText()); diff --git a/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs b/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs index 4e74007795..44c8c071bd 100644 --- a/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs +++ b/RubberduckTests/Binding/SimpleNameProcedurePointerBindingTests.cs @@ -65,7 +65,7 @@ public void OtherProceduralModule() var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Function && d.IdentifierName == BINDING_TARGET_NAME); - Assert.AreEqual(2, declaration.References.Count()); + Assert.AreEqual(1, declaration.References.Count()); } private static RubberduckParserState Parse(Moq.Mock vbe) diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index f54cbdb368..a21c73cc75 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -175,14 +175,40 @@ End Sub Assert.IsNotNull(reference); Assert.AreEqual("DoSomething", reference.ParentScoping.IdentifierName); } - + [TestMethod] + public void EncapsulatedVariableAssignment_DoesNotResolve() + { + // arrange + var code_class1 = @" +Public Sub DoSomething() + foo = 42 +End Sub +"; + var code_class2 = @" +Option Explicit +Public foo As Integer +"; + var class1 = Tuple.Create(code_class1, vbext_ComponentType.vbext_ct_ClassModule); + var class2 = Tuple.Create(code_class2, vbext_ComponentType.vbext_ct_ClassModule); + + // act + var state = Resolve(class1, class2); + + // assert + var declaration = state.AllUserDeclarations.Single(item => item.DeclarationType == DeclarationType.Variable && item.IdentifierName == "foo"); + + var reference = declaration.References.SingleOrDefault(item => item.IsAssignment); + Assert.IsNull(reference); + } + + [TestMethod] public void PublicVariableCall_IsReferenceToVariableDeclaration() { // arrange var code_class1 = @" Public Sub DoSomething() - Debug.Print foo + a = foo End Sub "; var code_class2 = @" @@ -280,7 +306,7 @@ public void ParameterCall_IsReferenceToParameterDeclaration() // arrange var code = @" Public Sub DoSomething(ByVal foo As Integer) - Debug.Print foo + a = foo End Sub "; // act @@ -639,7 +665,7 @@ public void ArraySubscriptAccess_IsReferenceToArrayDeclaration() Public Sub DoSomething(ParamArray values()) Dim i As Integer For i = 0 To 9 - Debug.Print values(i) + a = values(i) Next End Sub "; @@ -924,7 +950,7 @@ public void AnnotatedReference_LineAbove_HasAnnotations() Public Sub DoSomething() Dim foo As Integer '@Ignore UnassignedVariableUsage - Debug.Print foo + a = foo End Sub "; var state = Resolve(code); @@ -947,7 +973,7 @@ public void AnnotatedReference_SameLine_HasNoAnnotations() var code = @" Public Sub DoSomething() Dim foo As Integer - Debug.Print foo '@Ignore UnassignedVariableUsage + a = foo '@Ignore UnassignedVariableUsage End Sub "; var state = Resolve(code); From a9118b697c6ff3df93782f650652b6804d408929 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 17:44:23 +0200 Subject: [PATCH 26/72] fix resolver tests --- RubberduckTests/Grammar/ResolverTests.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index a21c73cc75..cfa7f1e319 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -139,7 +139,7 @@ public void LocalVariableCall_IsReferenceToVariableDeclaration() var code = @" Public Sub DoSomething() Dim foo As Integer - Debug.Print foo + a = foo End Sub "; // act @@ -459,7 +459,7 @@ End Property Public Sub DoSomething() With New Class1 With .Foo - Debug.Print .Bar + a = .Bar End With End With End Sub @@ -547,7 +547,7 @@ End Property "; var code_class3 = @" Public Sub DoSomething(ByVal a As Class1) - Debug.Print a.Foo.Bar + a = a.Foo.Bar End Sub "; // act @@ -573,7 +573,7 @@ End Property "; var code_class2 = @" Public Sub DoSomething(ByVal a As Class1) - Debug.Print a.Foo + b = a.Foo End Sub "; // act @@ -926,7 +926,7 @@ public void LocalArrayOrFunctionCall_ResolvesToSmallestScopedDeclaration() 'note: Dim Foo() As Integer on this line would not compile in VBA Public Sub DoSomething() Dim Foo() As Integer - Debug.Print Foo(0) 'VBA raises index out of bounds error, i.e. VBA resolves to local Foo() + a = Foo(0) 'VBA raises index out of bounds error, i.e. VBA resolves to local Foo() End Sub Private Function Foo(ByVal bar As Integer) @@ -1236,7 +1236,7 @@ End Type Private Bar As TestModule1 Public Sub DoSomething() - Debug.Print Bar.Foo + a = Bar.Foo End Sub "; var state = Resolve(code); @@ -1427,7 +1427,7 @@ Public Something As TSomething var code_module2 = @" Sub DoSomething() - Debug.Print Component1.Something.Bar + a = Component1.Something.Bar End Sub "; From 5a7d13e7cc89863c5bd02d81d1d8627571913509 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Thu, 5 May 2016 12:01:37 -0500 Subject: [PATCH 27/72] Remove works, except for the Help button. --- .../CodeExplorer/CodeExplorerViewModel.cs | 71 +++++++++++++++++-- .../UI/CodeExplorer/CodeExplorerControl.xaml | 1 - 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs index def420d8d4..ddc6aac571 100644 --- a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs +++ b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using System.Diagnostics; using System.Drawing; using System.Drawing.Printing; using System.IO; @@ -19,7 +20,6 @@ using Rubberduck.UnitTesting; using Rubberduck.VBEditor.VBEInterfaces.RubberduckCodePane; using MessageBox = Rubberduck.UI.MessageBox; - // ReSharper disable CanBeReplacedWithTryCastAndCheckForNull namespace Rubberduck.Navigation.CodeExplorer @@ -35,6 +35,7 @@ public class CodeExplorerViewModel : ViewModelBase, IDisposable private readonly FindAllImplementationsCommand _findAllImplementations; private readonly SaveFileDialog _saveFileDialog; private readonly OpenFileDialog _openFileDialog; + private readonly IMessageBox _messageBox; private readonly Dispatcher _dispatcher; public CodeExplorerViewModel(VBE vbe, @@ -46,7 +47,8 @@ public CodeExplorerViewModel(VBE vbe, FindAllReferencesCommand findAllReferences, FindAllImplementationsCommand findAllImplementations, SaveFileDialog saveFileDialog, - OpenFileDialog openFileDialog) + OpenFileDialog openFileDialog, + IMessageBox messageBox) { _dispatcher = Dispatcher.CurrentDispatcher; @@ -59,6 +61,7 @@ public CodeExplorerViewModel(VBE vbe, _findAllImplementations = findAllImplementations; _saveFileDialog = saveFileDialog; _openFileDialog = openFileDialog; + _messageBox = messageBox; _state.StateChanged += ParserState_StateChanged; _state.ModuleStateChanged += ParserState_ModuleStateChanged; @@ -327,7 +330,13 @@ private bool CanExecuteContextMenuNavigateCommand(object param) private bool CanExecutePrintCommand(object param) { - return SelectedItem is CodeExplorerComponentViewModel; + var node = SelectedItem as CodeExplorerComponentViewModel; + if (node == null) + { + return false; + } + + return node.Declaration.QualifiedName.QualifiedModuleName.Component.CodeModule.CountOfLines != 0; } private bool CanExecuteImportCommand(object param) @@ -351,7 +360,14 @@ private bool CanExecuteExportCommand(object param) private bool CanExecuteRemoveCommand(object param) { - return SelectedItem is CodeExplorerComponentViewModel; + if (!(SelectedItem is CodeExplorerComponentViewModel)) + { + return false; + } + + var node = (CodeExplorerComponentViewModel)SelectedItem; + return node.Declaration.QualifiedName.QualifiedModuleName.Component.Type != + vbext_ComponentType.vbext_ct_Document; } private bool CanExecuteShowDesignerCommand @@ -360,7 +376,7 @@ private bool CanExecuteShowDesignerCommand { var declaration = GetSelectedDeclaration(); return declaration != null && declaration.DeclarationType == DeclarationType.ClassModule && - declaration.QualifiedName.QualifiedModuleName.Component.Designer != null; + declaration.QualifiedName.QualifiedModuleName.Component.Designer != null; } } @@ -686,7 +702,7 @@ private void ExecuteImportCommand(object param) { vbext_ComponentType.vbext_ct_MSForm, ".frm" } }; - private void ExecuteExportCommand(object param) + private bool ExportFile() { var node = (CodeExplorerComponentViewModel)SelectedItem; var component = node.Declaration.QualifiedName.QualifiedModuleName.Component; @@ -695,14 +711,55 @@ private void ExecuteExportCommand(object param) _exportableFileExtensions.TryGetValue(component.Type, out ext); _saveFileDialog.FileName = component.Name + ext; - if (_saveFileDialog.ShowDialog() == DialogResult.OK) + var result = _saveFileDialog.ShowDialog(); + + if (result == DialogResult.OK) { component.Export(_saveFileDialog.FileName); } + + return result == DialogResult.OK; + } + + private void ExecuteExportCommand(object param) + { + ExportFile(); } private void ExecuteRemoveCommand(object param) { + // todo display popup + var message = string.Format("Do you want to export '{0}' before removing?", SelectedItem.Name); + + /*_messageBox.MessageBoxHelpRequested += (sender, e) => + { + var uri = new Uri("http://msdn.microsoft.com/en-us/library/office/gg264533.aspx"); + Process.Start(new ProcessStartInfo(uri.AbsoluteUri)); + };*/ + + var result = _messageBox.Show(message, "Rubberduck Export Prompt", MessageBoxButtons.YesNoCancel, + MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, 0, true); + + if (result == DialogResult.Cancel) + { + return; + } + + if (result == DialogResult.Yes && !ExportFile()) + { + return; + } + + // No file export or file successfully exported--now remove it + + // I know this will never be null because of the CanExecute + var declaration = GetSelectedDeclaration(); + + var project = declaration.QualifiedName.QualifiedModuleName.Project; + + SelectedItem = + Projects.Cast().FirstOrDefault(f => f.Declaration.Project == project); + project.VBComponents.Remove(declaration.QualifiedName.QualifiedModuleName.Component); } private Declaration GetSelectedDeclaration() diff --git a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml index 5143cab2e3..25ae2bd5b2 100644 --- a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml +++ b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml @@ -470,6 +470,5 @@ - From dca1d07b5afd3761742e2cc723699bfdca1f6e9d Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Thu, 5 May 2016 19:15:29 +0200 Subject: [PATCH 28/72] fixed a few tests --- .../Inspections/ConvertToProcedureQuickFix.cs | 2 +- .../EncapsulateFieldRefactoring.cs | 8 ++++---- .../ReorderParametersRefactoring.cs | 2 +- .../Symbols/IdentifierReferenceResolver.cs | 13 +++++++++++-- .../FunctionReturnValueNotUsedInspectionTests.cs | 16 ---------------- 5 files changed, 17 insertions(+), 24 deletions(-) diff --git a/RetailCoder.VBE/Inspections/ConvertToProcedureQuickFix.cs b/RetailCoder.VBE/Inspections/ConvertToProcedureQuickFix.cs index b678094b2a..c8daac6da7 100644 --- a/RetailCoder.VBE/Inspections/ConvertToProcedureQuickFix.cs +++ b/RetailCoder.VBE/Inspections/ConvertToProcedureQuickFix.cs @@ -44,7 +44,7 @@ public override void Fix() : Tokens.Property; string visibility = context.visibility() == null ? string.Empty : context.visibility().GetText() + ' '; - string name = ' ' + context.identifier().GetText(); + string name = ' ' + context.functionName().GetText(); bool hasTypeHint = context.typeHint() != null; string args = context.argList().GetText(); diff --git a/RetailCoder.VBE/Refactorings/EncapsulateField/EncapsulateFieldRefactoring.cs b/RetailCoder.VBE/Refactorings/EncapsulateField/EncapsulateFieldRefactoring.cs index 805f85d6fd..28c2f10732 100644 --- a/RetailCoder.VBE/Refactorings/EncapsulateField/EncapsulateFieldRefactoring.cs +++ b/RetailCoder.VBE/Refactorings/EncapsulateField/EncapsulateFieldRefactoring.cs @@ -61,11 +61,11 @@ private void UpdateReferences() { var module = reference.QualifiedModuleName.Component.CodeModule; - var oldLine = module.Lines[reference.Selection.StartLine, 1]; - oldLine = oldLine.Remove(reference.Selection.StartColumn - 1, reference.Selection.EndColumn - reference.Selection.StartColumn); - var newLine = oldLine.Insert(reference.Selection.StartColumn - 1, _model.PropertyName); + var oldLine = module.Lines[reference.BindingSelection.StartLine, 1]; + oldLine = oldLine.Remove(reference.BindingSelection.StartColumn - 1, reference.BindingSelection.EndColumn - reference.BindingSelection.StartColumn); + var newLine = oldLine.Insert(reference.BindingSelection.StartColumn - 1, _model.PropertyName); - module.ReplaceLine(reference.Selection.StartLine, newLine); + module.ReplaceLine(reference.BindingSelection.StartLine, newLine); } } diff --git a/RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersRefactoring.cs b/RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersRefactoring.cs index 0161a7efe3..591db95e69 100644 --- a/RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersRefactoring.cs +++ b/RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersRefactoring.cs @@ -92,7 +92,7 @@ private void AdjustReferences(IEnumerable references) { foreach (var reference in references.Where(item => item.Context != _model.TargetDeclaration.Context)) { - var proc = (dynamic)reference.Context.Parent; + dynamic proc = reference.Context; var module = reference.QualifiedModuleName.Component.CodeModule; VBAParser.ArgsCallContext paramList; diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index 00ba982acc..274f059ca5 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -523,9 +523,18 @@ public void Resolve(VBAParser.ResumeStmtContext context) public void Resolve(VBAParser.ImplicitCallStmt_InBlockContext context) { - string expr = context.GetText(); + ParserRuleContext subContext; + if (context.iCS_B_MemberProcedureCall() != null) + { + subContext = context.iCS_B_MemberProcedureCall(); + } + else + { + subContext = context.iCS_B_ProcedureCall(); + } + string expr = subContext.GetText(); // This represents a CALL statement without the CALL keyword which is slightly different than a normal expression because it does not allow parentheses around its argument list. - ResolveDefault(context, expr, ResolutionStatementContext.CallStatement); + ResolveDefault(subContext, expr, ResolutionStatementContext.CallStatement); } public void Resolve(VBAParser.EnumerationStmtContext context) diff --git a/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs b/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs index 385bb56e00..fb0724ffc1 100644 --- a/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs +++ b/RubberduckTests/Inspections/FunctionReturnValueNotUsedInspectionTests.cs @@ -496,22 +496,12 @@ Public Function IFoo_Test() As Integer IFoo_Test = 42 End Function"; - const string expectedImplementationCode1 = -@"Implements IFoo -Public Sub IFoo_Test() -End Sub"; - const string inputImplementationCode2 = @"Implements IFoo Public Function IFoo_Test() As Integer IFoo_Test = 42 End Function"; - const string expectedImplementationCode2 = -@"Implements IFoo -Public Sub IFoo_Test() -End Sub"; - const string callSiteCode = @" Public Function Baz() @@ -544,12 +534,6 @@ Dim testObj As IFoo var interfaceModule = project.VBComponents.Item(0).CodeModule; string actualInterface = interfaceModule.Lines(); Assert.AreEqual(expectedInterfaceCode, actualInterface, "Interface"); - var implementationModule1 = project.VBComponents.Item(1).CodeModule; - string actualImplementation1 = implementationModule1.Lines(); - //Assert.AreEqual(expectedImplementationCode1, actualImplementation1, "Implementation1"); - var implementationModule2 = project.VBComponents.Item(2).CodeModule; - string actualImplementation2 = implementationModule2.Lines(); - //Assert.AreEqual(expectedImplementationCode2, actualImplementation2, "Implementation2"); } [TestMethod] From cf00c0eba49dc1eba3cbfd2a8056c782a1170d79 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Thu, 5 May 2016 12:24:46 -0500 Subject: [PATCH 29/72] Remove help button. --- .../Navigation/CodeExplorer/CodeExplorerViewModel.cs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs index ddc6aac571..92c458110d 100644 --- a/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs +++ b/RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; -using System.Diagnostics; using System.Drawing; using System.Drawing.Printing; using System.IO; @@ -728,17 +727,9 @@ private void ExecuteExportCommand(object param) private void ExecuteRemoveCommand(object param) { - // todo display popup var message = string.Format("Do you want to export '{0}' before removing?", SelectedItem.Name); - - /*_messageBox.MessageBoxHelpRequested += (sender, e) => - { - var uri = new Uri("http://msdn.microsoft.com/en-us/library/office/gg264533.aspx"); - Process.Start(new ProcessStartInfo(uri.AbsoluteUri)); - };*/ - var result = _messageBox.Show(message, "Rubberduck Export Prompt", MessageBoxButtons.YesNoCancel, - MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, 0, true); + MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); if (result == DialogResult.Cancel) { From 8d27cd942670e64b0b2ce03cc5849b910b0ac010 Mon Sep 17 00:00:00 2001 From: Abraham Hosch Date: Thu, 5 May 2016 14:04:27 -0500 Subject: [PATCH 30/72] Partial implementation of the commands. --- RetailCoder.VBE/Rubberduck.csproj | 11 ++- .../UI/CodeExplorer/CodeExplorerControl.xaml | 4 +- .../CodeExplorerAddClassModuleCommand.cs | 25 ++++++ .../CodeExplorerAddStdModuleCommand.cs | 25 ++++++ .../CodeExplorerAddTestModuleCommand.cs | 28 +++++++ .../CodeExplorerAddUserFormCommand.cs | 25 ++++++ .../Commands/CodeExplorerExportCommand.cs | 55 ++++++++++++ .../Commands/CodeExplorerImportCommand.cs | 70 ++++++++++++++++ .../CodeExplorerOpenDesignerCommand.cs | 43 ++++++++++ .../Commands/CodeExplorerPrintCommand.cs | 53 ++++++++++++ .../Commands/CodeExplorerRemoveCommand.cs | 84 +++++++++++++++++++ .../BoolToHiddenVisibility.cs | 2 +- 12 files changed, 421 insertions(+), 4 deletions(-) create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerAddClassModuleCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerAddStdModuleCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerAddTestModuleCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerAddUserFormCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerExportCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerImportCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerOpenDesignerCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerPrintCommand.cs create mode 100644 RetailCoder.VBE/UI/CodeExplorer/Commands/CodeExplorerRemoveCommand.cs rename RetailCoder.VBE/UI/CodeExplorer/{ => Converters}/BoolToHiddenVisibility.cs (92%) diff --git a/RetailCoder.VBE/Rubberduck.csproj b/RetailCoder.VBE/Rubberduck.csproj index 000706d01a..bea01ecfcd 100644 --- a/RetailCoder.VBE/Rubberduck.csproj +++ b/RetailCoder.VBE/Rubberduck.csproj @@ -381,7 +381,16 @@ AboutDialog.cs - + + + + + + + + + + diff --git a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml index 25ae2bd5b2..8737be12e6 100644 --- a/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml +++ b/RetailCoder.VBE/UI/CodeExplorer/CodeExplorerControl.xaml @@ -6,8 +6,8 @@ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:codeExplorer="clr-namespace:Rubberduck.Navigation.CodeExplorer" xmlns:controls="clr-namespace:Rubberduck.UI.Controls" - xmlns:converter="clr-namespace:Rubberduck.UI.CodeExplorer" xmlns:themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" + xmlns:converters="clr-namespace:Rubberduck.UI.CodeExplorer.Converters" ResxExtension.DefaultResxName="Rubberduck.UI.RubberduckUI" Language="{UICulture}" Name="CodeExplorer" @@ -15,7 +15,7 @@ d:DesignHeight="300" d:DesignWidth="300" d:DataContext="{d:DesignInstance codeExplorer:CodeExplorerViewModel}"> - + + + + + + + + - - - - - - - - + - + From c2812d99a459263bb8d1cee0e272e98fe093d714 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 8 May 2016 13:11:21 +0200 Subject: [PATCH 68/72] fix wrong selection --- .../Symbols/IdentifierReferenceResolver.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs index c8ec97c3eb..59092d1287 100644 --- a/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs +++ b/Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs @@ -154,7 +154,7 @@ private void ResolveType(ParserRuleContext context, string expression) var boundExpression = _bindingService.ResolveType(_moduleDeclaration, _currentParent, expression); if (boundExpression != null) { - _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, identifier, declaration) => CreateReference(context, identifier, declaration, RubberduckParserState.CreateBindingSelection(context, boundExpression.Context))); + _boundExpressionVisitor.AddIdentifierReferences(boundExpression, (exprCtx, identifier, declaration) => CreateReference(context, identifier, declaration, RubberduckParserState.CreateBindingSelection(context, exprCtx))); } } @@ -447,9 +447,9 @@ public void Resolve(VBAParser.ForNextStmtContext context) if (firstExpression != null) { // each iteration counts as an assignment - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context), true)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], exprCtx), true)); // each iteration also counts as a plain usage - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context))); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], exprCtx))); } for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) { @@ -463,9 +463,9 @@ public void Resolve(VBAParser.ForEachStmtContext context) if (firstExpression != null) { // each iteration counts as an assignment - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context), true)); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], exprCtx), true)); // each iteration also counts as a plain usage - _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], firstExpression.Context))); + _boundExpressionVisitor.AddIdentifierReferences(firstExpression, (exprCtx, identifier, declaration) => CreateReference(context.valueStmt()[0], identifier, declaration, RubberduckParserState.CreateBindingSelection(context.valueStmt()[0], exprCtx))); } for (int exprIndex = 1; exprIndex < context.valueStmt().Count; exprIndex++) From 526abdcd0e00a2304acc4dec5389c00998df6309 Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 8 May 2016 15:55:29 +0200 Subject: [PATCH 69/72] allow conditonal compilation keywords inside logical lines --- Rubberduck.Parsing/Grammar/VBALexer.cs | 1252 +++++++-------- Rubberduck.Parsing/Grammar/VBALexer.g4 | 14 +- .../HexNumberLiteralExpression.cs | 5 +- .../Preprocessing/NumberLiteralExpression.cs | 9 +- .../OctNumberLiteralExpression.cs | 5 +- .../VBAConditionalCompilationParser.cs | 1345 ++++++++++------- .../VBAConditionalCompilationParser.g4 | 23 +- ...onditionalCompilationParserBaseListener.cs | 26 +- ...ConditionalCompilationParserBaseVisitor.cs | 22 +- ...VBAConditionalCompilationParserListener.cs | 22 +- .../VBAConditionalCompilationParserVisitor.cs | 14 +- .../Binding/MemberAccessTypeBindingTests.cs | 2 +- .../VBAPreprocessorVisitorTests.cs | 29 +- 13 files changed, 1501 insertions(+), 1267 deletions(-) diff --git a/Rubberduck.Parsing/Grammar/VBALexer.cs b/Rubberduck.Parsing/Grammar/VBALexer.cs index 438f12ab33..2057a20dc3 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.cs +++ b/Rubberduck.Parsing/Grammar/VBALexer.cs @@ -167,7 +167,7 @@ public VBALexer(ICharStream input) public override string SerializedAtn { get { return _serializedATN; } } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF0\x9E3\b\x1\x4"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x2\xF0\xA15\b\x1\x4"+ "\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b"+ "\x4\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4"+ "\x10\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15"+ @@ -336,411 +336,417 @@ public VBALexer(ICharStream input) "\n\xD2\x3\xD3\x3\xD3\x3\xD4\x3\xD4\x3\xD5\x3\xD5\x3\xD6\x3\xD6\x3\xD7"+ "\x3\xD7\x3\xD7\x3\xD7\x5\xD7\x7BD\n\xD7\x3\xD8\x3\xD8\x3\xD9\x3\xD9\x3"+ "\xDA\x3\xDA\x3\xDB\a\xDB\x7C6\n\xDB\f\xDB\xE\xDB\x7C9\v\xDB\x3\xDB\x3"+ - "\xDB\x3\xDB\x3\xDC\a\xDC\x7CF\n\xDC\f\xDC\xE\xDC\x7D2\v\xDC\x3\xDC\x3"+ - "\xDC\x3\xDC\x3\xDC\x3\xDD\a\xDD\x7D9\n\xDD\f\xDD\xE\xDD\x7DC\v\xDD\x3"+ - "\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDE\a\xDE\x7E7"+ - "\n\xDE\f\xDE\xE\xDE\x7EA\v\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE"+ - "\x3\xDF\a\xDF\x7F3\n\xDF\f\xDF\xE\xDF\x7F6\v\xDF\x3\xDF\x3\xDF\x3\xDF"+ - "\x3\xDF\x3\xDF\a\xDF\x7FD\n\xDF\f\xDF\xE\xDF\x800\v\xDF\x3\xDF\x3\xDF"+ - "\x3\xDF\x3\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2\x3\xE2\a\xE2"+ - "\x80D\n\xE2\f\xE2\xE\xE2\x810\v\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3"+ - "\x3\xE3\x6\xE3\x818\n\xE3\r\xE3\xE\xE3\x819\x3\xE3\x5\xE3\x81D\n\xE3\x3"+ - "\xE4\x3\xE4\x3\xE4\x3\xE4\x6\xE4\x823\n\xE4\r\xE4\xE\xE4\x824\x3\xE4\x5"+ - "\xE4\x828\n\xE4\x3\xE5\x3\xE5\x5\xE5\x82C\n\xE5\x3\xE5\x3\xE5\x3\xE5\x5"+ - "\xE5\x831\n\xE5\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x5\xE6\x839"+ - "\n\xE6\x3\xE6\x5\xE6\x83C\n\xE6\x3\xE6\x3\xE6\x3\xE6\x5\xE6\x841\n\xE6"+ - "\x5\xE6\x843\n\xE6\x3\xE7\x3\xE7\x5\xE7\x847\n\xE7\x3\xE8\x3\xE8\x3\xE9"+ - "\x3\xE9\x3\xEA\x3\xEA\x5\xEA\x84F\n\xEA\x3\xEA\x6\xEA\x852\n\xEA\r\xEA"+ - "\xE\xEA\x853\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xED\x6\xED\x85B\n\xED\r\xED"+ - "\xE\xED\x85C\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x5\xEF\x865\n\xEF"+ - "\x3\xEF\x3\xEF\x3\xEF\x3\xEF\x5\xEF\x86B\n\xEF\x3\xF0\x3\xF0\x3\xF0\x3"+ - "\xF0\x3\xF0\x3\xF0\x5\xF0\x873\n\xF0\x3\xF1\x6\xF1\x876\n\xF1\r\xF1\xE"+ - "\xF1\x877\x3\xF1\x5\xF1\x87B\n\xF1\x3\xF2\x5\xF2\x87E\n\xF2\x3\xF2\x5"+ - "\xF2\x881\n\xF2\x3\xF2\x5\xF2\x884\n\xF2\x3\xF3\x3\xF3\x5\xF3\x888\n\xF3"+ + "\xDB\x3\xDB\x6\xDB\x7CE\n\xDB\r\xDB\xE\xDB\x7CF\x3\xDC\a\xDC\x7D3\n\xDC"+ + "\f\xDC\xE\xDC\x7D6\v\xDC\x3\xDC\x3\xDC\x3\xDC\x3\xDC\x6\xDC\x7DC\n\xDC"+ + "\r\xDC\xE\xDC\x7DD\x3\xDD\a\xDD\x7E1\n\xDD\f\xDD\xE\xDD\x7E4\v\xDD\x3"+ + "\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x3\xDD\x6\xDD\x7EE\n\xDD"+ + "\r\xDD\xE\xDD\x7EF\x3\xDE\a\xDE\x7F3\n\xDE\f\xDE\xE\xDE\x7F6\v\xDE\x3"+ + "\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\x3\xDE\a\xDE\x7FE\n\xDE\f\xDE\xE\xDE"+ + "\x801\v\xDE\x3\xDE\x3\xDE\x3\xDE\a\xDE\x806\n\xDE\f\xDE\xE\xDE\x809\v"+ + "\xDE\x5\xDE\x80B\n\xDE\x3\xDE\x3\xDE\x5\xDE\x80F\n\xDE\x3\xDF\a\xDF\x812"+ + "\n\xDF\f\xDF\xE\xDF\x815\v\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\x3\xDF\a\xDF"+ + "\x81C\n\xDF\f\xDF\xE\xDF\x81F\v\xDF\x3\xDF\x3\xDF\x3\xDF\a\xDF\x824\n"+ + "\xDF\f\xDF\xE\xDF\x827\v\xDF\x3\xDF\x3\xDF\x3\xDF\a\xDF\x82C\n\xDF\f\xDF"+ + "\xE\xDF\x82F\v\xDF\x5\xDF\x831\n\xDF\x3\xDF\x3\xDF\x5\xDF\x835\n\xDF\x3"+ + "\xE0\x3\xE0\x3\xE1\x3\xE1\x3\xE2\x3\xE2\x3\xE2\x3\xE2\a\xE2\x83F\n\xE2"+ + "\f\xE2\xE\xE2\x842\v\xE2\x3\xE2\x3\xE2\x3\xE3\x3\xE3\x3\xE3\x3\xE3\x6"+ + "\xE3\x84A\n\xE3\r\xE3\xE\xE3\x84B\x3\xE3\x5\xE3\x84F\n\xE3\x3\xE4\x3\xE4"+ + "\x3\xE4\x3\xE4\x6\xE4\x855\n\xE4\r\xE4\xE\xE4\x856\x3\xE4\x5\xE4\x85A"+ + "\n\xE4\x3\xE5\x3\xE5\x5\xE5\x85E\n\xE5\x3\xE5\x3\xE5\x3\xE5\x5\xE5\x863"+ + "\n\xE5\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x3\xE6\x5\xE6\x86B\n\xE6\x3"+ + "\xE6\x5\xE6\x86E\n\xE6\x3\xE6\x3\xE6\x3\xE6\x5\xE6\x873\n\xE6\x5\xE6\x875"+ + "\n\xE6\x3\xE7\x3\xE7\x5\xE7\x879\n\xE7\x3\xE8\x3\xE8\x3\xE9\x3\xE9\x3"+ + "\xEA\x3\xEA\x5\xEA\x881\n\xEA\x3\xEA\x6\xEA\x884\n\xEA\r\xEA\xE\xEA\x885"+ + "\x3\xEB\x3\xEB\x3\xEC\x3\xEC\x3\xED\x6\xED\x88D\n\xED\r\xED\xE\xED\x88E"+ + "\x3\xEE\x3\xEE\x3\xEE\x3\xEE\x3\xEF\x3\xEF\x5\xEF\x897\n\xEF\x3\xEF\x3"+ + "\xEF\x3\xEF\x3\xEF\x5\xEF\x89D\n\xEF\x3\xF0\x3\xF0\x3\xF0\x3\xF0\x3\xF0"+ + "\x3\xF0\x5\xF0\x8A5\n\xF0\x3\xF1\x6\xF1\x8A8\n\xF1\r\xF1\xE\xF1\x8A9\x3"+ + "\xF1\x5\xF1\x8AD\n\xF1\x3\xF2\x5\xF2\x8B0\n\xF2\x3\xF2\x5\xF2\x8B3\n\xF2"+ + "\x3\xF2\x5\xF2\x8B6\n\xF2\x3\xF3\x3\xF3\x5\xF3\x8BA\n\xF3\x3\xF4\x3\xF4"+ "\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4\x3\xF4"+ - "\x3\xF4\x3\xF4\x5\xF4\x896\n\xF4\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3"+ - "\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x5\xF5\x8A3\n\xF5\x3\xF6\x6\xF6"+ - "\x8A6\n\xF6\r\xF6\xE\xF6\x8A7\x3\xF6\x3\xF6\x3\xF6\x6\xF6\x8AD\n\xF6\r"+ - "\xF6\xE\xF6\x8AE\x3\xF6\x3\xF6\x6\xF6\x8B3\n\xF6\r\xF6\xE\xF6\x8B4\x3"+ - "\xF6\x3\xF6\x6\xF6\x8B9\n\xF6\r\xF6\xE\xF6\x8BA\x5\xF6\x8BD\n\xF6\x3\xF6"+ - "\x5\xF6\x8C0\n\xF6\x5\xF6\x8C2\n\xF6\x3\xF7\x5\xF7\x8C5\n\xF7\x3\xF7\x3"+ - "\xF7\x5\xF7\x8C9\n\xF7\x3\xF8\x5\xF8\x8CC\n\xF8\x3\xF8\x3\xF8\x3\xF8\x3"+ - "\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x5\xF8\x8D6\n\xF8\x3\xF9\x3\xF9\x3\xF9"+ - "\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA"+ - "\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFB"+ - "\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3\xFD\x3\xFD\x3\xFD\x3\xFD"+ - "\x3\xFE\x3\xFE\x3\xFE\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\xFF\x3\xFF\x3\xFF"+ - "\x3\x100\x3\x100\x3\x100\x3\x100\x3\x100\x3\x100\x3\x100\x3\x101\x3\x101"+ - "\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x102"+ - "\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x103\x3\x103"+ - "\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x104\x3\x104"+ - "\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x105\x3\x105"+ - "\x3\x105\x3\x105\x3\x106\x3\x106\x3\x106\x3\x106\x3\x107\x3\x107\x3\x107"+ - "\x3\x107\x3\x108\x3\x108\x3\x108\x3\x108\x3\x109\x3\x109\x3\x109\x3\x109"+ - "\x3\x10A\x3\x10A\x3\x10A\x3\x10A\x3\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10C"+ - "\x3\x10C\x3\x10C\x3\x10C\x3\x10D\x3\x10D\x3\x10D\x3\x10D\x3\x10E\x3\x10E"+ - "\x3\x10E\x3\x10E\x3\x10F\x3\x10F\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x110"+ - "\x5\x110\x95D\n\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3"+ - "\x114\x3\x114\a\x114\x967\n\x114\f\x114\xE\x114\x96A\v\x114\x3\x114\x3"+ - "\x114\x6\x114\x96E\n\x114\r\x114\xE\x114\x96F\x3\x114\x3\x114\x5\x114"+ - "\x974\n\x114\x3\x115\a\x115\x977\n\x115\f\x115\xE\x115\x97A\v\x115\x3"+ - "\x115\x3\x115\a\x115\x97E\n\x115\f\x115\xE\x115\x981\v\x115\x3\x115\x5"+ - "\x115\x984\n\x115\x3\x115\x3\x115\x3\x116\x3\x116\x6\x116\x98A\n\x116"+ - "\r\x116\xE\x116\x98B\x3\x116\x3\x116\x6\x116\x990\n\x116\r\x116\xE\x116"+ - "\x991\x3\x116\x3\x116\x6\x116\x996\n\x116\r\x116\xE\x116\x997\x3\x116"+ - "\x3\x116\x6\x116\x99C\n\x116\r\x116\xE\x116\x99D\x3\x116\x3\x116\x6\x116"+ - "\x9A2\n\x116\r\x116\xE\x116\x9A3\x3\x116\x3\x116\x3\x117\x3\x117\x3\x118"+ - "\x3\x118\x3\x119\x3\x119\x3\x11A\x3\x11A\x3\x11B\x3\x11B\x3\x11C\x3\x11C"+ - "\x3\x11D\x3\x11D\x3\x11E\x3\x11E\x3\x11F\x3\x11F\x3\x120\x3\x120\x3\x121"+ - "\x3\x121\x3\x122\x3\x122\x3\x123\x3\x123\x3\x124\x3\x124\x3\x125\x3\x125"+ - "\x3\x126\x3\x126\x3\x127\x3\x127\x3\x128\x3\x128\x3\x129\x3\x129\x3\x12A"+ - "\x3\x12A\x3\x12B\x3\x12B\x3\x12C\x3\x12C\x3\x12D\x3\x12D\x3\x12E\x3\x12E"+ - "\x3\x12F\x3\x12F\x3\x130\x3\x130\x3\x131\x3\x131\x3\x132\x3\x132\x3\x133"+ - "\x3\x133\x3\x134\x3\x134\x2\x2\x2\x135\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2"+ - "\x6\v\x2\a\r\x2\b\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE"+ - "\x1B\x2\xF\x1D\x2\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2"+ - "\x16+\x2\x17-\x2\x18/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D"+ - "\x39\x2\x1E;\x2\x1F=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'"+ - "M\x2(O\x2)Q\x2*S\x2+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63"+ - "\x2\x33\x65\x2\x34g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u"+ - "\x2{\x2?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87"+ - "\x2\x45\x89\x2\x46\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97"+ - "\x2M\x99\x2N\x9B\x2O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9"+ - "\x2V\xAB\x2W\xAD\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^"+ - "\xBB\x2_\xBD\x2`\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65"+ - "\xC9\x2\x66\xCB\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9"+ - "\x2n\xDB\x2o\xDD\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB"+ - "\x2w\xED\x2x\xEF\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F"+ - "\xFD\x2\x80\xFF\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85"+ - "\x109\x2\x86\x10B\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B"+ - "\x115\x2\x8C\x117\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91"+ - "\x121\x2\x92\x123\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97"+ - "\x12D\x2\x98\x12F\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D"+ - "\x139\x2\x9E\x13B\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3"+ - "\x145\x2\xA4\x147\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9"+ - "\x151\x2\xAA\x153\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF"+ - "\x15D\x2\xB0\x15F\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5"+ - "\x169\x2\xB6\x16B\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB"+ - "\x175\x2\xBC\x177\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1"+ - "\x181\x2\xC2\x183\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7"+ - "\x18D\x2\xC8\x18F\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD"+ - "\x199\x2\xCE\x19B\x2\xCF\x19D\x2\xD0\x19F\x2\xD1\x1A1\x2\xD2\x1A3\x2\xD3"+ - "\x1A5\x2\xD4\x1A7\x2\xD5\x1A9\x2\xD6\x1AB\x2\xD7\x1AD\x2\xD8\x1AF\x2\xD9"+ - "\x1B1\x2\xDA\x1B3\x2\xDB\x1B5\x2\xDC\x1B7\x2\xDD\x1B9\x2\xDE\x1BB\x2\xDF"+ - "\x1BD\x2\xE0\x1BF\x2\xE1\x1C1\x2\xE2\x1C3\x2\xE3\x1C5\x2\xE4\x1C7\x2\xE5"+ - "\x1C9\x2\xE6\x1CB\x2\x2\x1CD\x2\xE7\x1CF\x2\x2\x1D1\x2\x2\x1D3\x2\x2\x1D5"+ - "\x2\x2\x1D7\x2\x2\x1D9\x2\x2\x1DB\x2\xE8\x1DD\x2\x2\x1DF\x2\x2\x1E1\x2"+ - "\x2\x1E3\x2\x2\x1E5\x2\x2\x1E7\x2\x2\x1E9\x2\x2\x1EB\x2\x2\x1ED\x2\x2"+ - "\x1EF\x2\x2\x1F1\x2\x2\x1F3\x2\x2\x1F5\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB"+ - "\x2\x2\x1FD\x2\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2\x207\x2"+ - "\x2\x209\x2\x2\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213\x2\x2"+ - "\x215\x2\x2\x217\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2\xE9\x221"+ - "\x2\xEA\x223\x2\xEB\x225\x2\xEC\x227\x2\xED\x229\x2\xEE\x22B\x2\xEF\x22D"+ - "\x2\x2\x22F\x2\x2\x231\x2\x2\x233\x2\x2\x235\x2\x2\x237\x2\x2\x239\x2"+ - "\x2\x23B\x2\x2\x23D\x2\x2\x23F\x2\x2\x241\x2\x2\x243\x2\x2\x245\x2\x2"+ - "\x247\x2\x2\x249\x2\x2\x24B\x2\x2\x24D\x2\x2\x24F\x2\x2\x251\x2\x2\x253"+ - "\x2\x2\x255\x2\x2\x257\x2\x2\x259\x2\x2\x25B\x2\x2\x25D\x2\x2\x25F\x2"+ - "\x2\x261\x2\x2\x263\x2\x2\x265\x2\x2\x267\x2\xF0\x3\x2-\x5\x2\f\f\xF\xF"+ - "$$\x3\x2\x32:\x4\x2\x32;\x43H\x4\x2\'(``\x5\x2##%%\x42\x42\x4\x2\x46G"+ - "\x66g\x4\x2--//\x4\x2./\x31\x31\x4\x2\x30\x30<<\x5\x2\f\f\xF\xF\x202A"+ - "\x202B\x4\x2\v\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`~~\v\x2\v\f\xF\xF\""+ - ".\x30\x30<=??\x42\x42]`~~\x6\x2\f\f\xF\xF##^_\f\x2\x43\\\x61\x61\x63|"+ - "\xA6\xA6\xB8\xB8\xBE\xBE\xC5\xC5\x155\x155\x2015\x2015\x2020\x2020\x3"+ - "\x2\x32;\r\x2\x32;\x43\\\x61\x61\x63|\xA6\xA6\xB8\xB8\xBE\xBE\xC5\xC5"+ - "\x155\x155\x2015\x2015\x2020\x2020\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44"+ - "\x64\x64\x4\x2\x45\x45\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2H"+ - "Hhh\x4\x2IIii\x4\x2JJjj\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2"+ - "OOoo\x4\x2PPpp\x4\x2QQqq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2"+ - "VVvv\x4\x2WWww\x4\x2XXxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\x9EF"+ - "\x2\x3\x3\x2\x2\x2\x2\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2"+ - "\x2\v\x3\x2\x2\x2\x2\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2"+ - "\x2\x13\x3\x2\x2\x2\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2"+ - "\x2\x2\x2\x1B\x3\x2\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3"+ - "\x2\x2\x2\x2#\x3\x2\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2"+ - "\x2\x2+\x3\x2\x2\x2\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2"+ - "\x2\x33\x3\x2\x2\x2\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2"+ - "\x2\x2\x2;\x3\x2\x2\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2"+ - "\x2\x2\x43\x3\x2\x2\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2"+ - "\x2\x2K\x3\x2\x2\x2\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2"+ - "S\x3\x2\x2\x2\x2U\x3\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2"+ - "\x2\x2\x2]\x3\x2\x2\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2"+ - "\x2\x2\x2\x65\x3\x2\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2"+ - "\x2\x2m\x3\x2\x2\x2\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2"+ - "u\x3\x2\x2\x2\x2w\x3\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2"+ - "\x2\x2\x2\x7F\x3\x2\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85"+ - "\x3\x2\x2\x2\x2\x87\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2"+ - "\x2\x8D\x3\x2\x2\x2\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2"+ - "\x2\x2\x2\x95\x3\x2\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B"+ - "\x3\x2\x2\x2\x2\x9D\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2"+ - "\x2\xA3\x3\x2\x2\x2\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2"+ - "\x2\x2\x2\xAB\x3\x2\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1"+ - "\x3\x2\x2\x2\x2\xB3\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2"+ - "\x2\xB9\x3\x2\x2\x2\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2"+ - "\x2\x2\x2\xC1\x3\x2\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7"+ - "\x3\x2\x2\x2\x2\xC9\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2"+ - "\x2\xCF\x3\x2\x2\x2\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2"+ - "\x2\x2\x2\xD7\x3\x2\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD"+ - "\x3\x2\x2\x2\x2\xDF\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2"+ - "\x2\xE5\x3\x2\x2\x2\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2"+ - "\x2\x2\x2\xED\x3\x2\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3"+ - "\x3\x2\x2\x2\x2\xF5\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2"+ - "\x2\xFB\x3\x2\x2\x2\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2"+ - "\x2\x2\x2\x103\x3\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2"+ - "\x109\x3\x2\x2\x2\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2"+ - "\x2\x2\x2\x111\x3\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2"+ - "\x117\x3\x2\x2\x2\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2"+ - "\x2\x2\x2\x11F\x3\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2"+ - "\x125\x3\x2\x2\x2\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2"+ - "\x2\x2\x2\x12D\x3\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2"+ - "\x133\x3\x2\x2\x2\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2"+ - "\x2\x2\x2\x13B\x3\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2"+ - "\x141\x3\x2\x2\x2\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2"+ - "\x2\x2\x2\x149\x3\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2"+ - "\x14F\x3\x2\x2\x2\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2"+ - "\x2\x2\x2\x157\x3\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2"+ - "\x15D\x3\x2\x2\x2\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2"+ - "\x2\x2\x2\x165\x3\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2"+ - "\x16B\x3\x2\x2\x2\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2"+ - "\x2\x2\x2\x173\x3\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2"+ - "\x179\x3\x2\x2\x2\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2"+ - "\x2\x2\x2\x181\x3\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2"+ - "\x187\x3\x2\x2\x2\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2"+ - "\x2\x2\x2\x18F\x3\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2"+ - "\x195\x3\x2\x2\x2\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2"+ - "\x2\x2\x2\x19D\x3\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2"+ - "\x1A3\x3\x2\x2\x2\x2\x1A5\x3\x2\x2\x2\x2\x1A7\x3\x2\x2\x2\x2\x1A9\x3\x2"+ - "\x2\x2\x2\x1AB\x3\x2\x2\x2\x2\x1AD\x3\x2\x2\x2\x2\x1AF\x3\x2\x2\x2\x2"+ - "\x1B1\x3\x2\x2\x2\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2\x2\x2\x2\x1B7\x3\x2"+ - "\x2\x2\x2\x1B9\x3\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2"+ - "\x1BF\x3\x2\x2\x2\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2"+ - "\x2\x2\x2\x1C7\x3\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2"+ - "\x1DB\x3\x2\x2\x2\x2\x21F\x3\x2\x2\x2\x2\x221\x3\x2\x2\x2\x2\x223\x3\x2"+ - "\x2\x2\x2\x225\x3\x2\x2\x2\x2\x227\x3\x2\x2\x2\x2\x229\x3\x2\x2\x2\x2"+ - "\x22B\x3\x2\x2\x2\x2\x267\x3\x2\x2\x2\x3\x269\x3\x2\x2\x2\x5\x26D\x3\x2"+ - "\x2\x2\a\x271\x3\x2\x2\x2\t\x277\x3\x2\x2\x2\v\x27D\x3\x2\x2\x2\r\x283"+ - "\x3\x2\x2\x2\xF\x288\x3\x2\x2\x2\x11\x28E\x3\x2\x2\x2\x13\x293\x3\x2\x2"+ - "\x2\x15\x298\x3\x2\x2\x2\x17\x29D\x3\x2\x2\x2\x19\x2A4\x3\x2\x2\x2\x1B"+ - "\x2A9\x3\x2\x2\x2\x1D\x2B1\x3\x2\x2\x2\x1F\x2B9\x3\x2\x2\x2!\x2BE\x3\x2"+ - "\x2\x2#\x2C3\x3\x2\x2\x2%\x2CC\x3\x2\x2\x2\'\x2D1\x3\x2\x2\x2)\x2D7\x3"+ - "\x2\x2\x2+\x2DD\x3\x2\x2\x2-\x2E6\x3\x2\x2\x2/\x2EB\x3\x2\x2\x2\x31\x2EF"+ - "\x3\x2\x2\x2\x33\x2F6\x3\x2\x2\x2\x35\x2FA\x3\x2\x2\x2\x37\x301\x3\x2"+ - "\x2\x2\x39\x305\x3\x2\x2\x2;\x30A\x3\x2\x2\x2=\x313\x3\x2\x2\x2?\x31B"+ - "\x3\x2\x2\x2\x41\x320\x3\x2\x2\x2\x43\x326\x3\x2\x2\x2\x45\x32B\x3\x2"+ - "\x2\x2G\x332\x3\x2\x2\x2I\x337\x3\x2\x2\x2K\x33D\x3\x2\x2\x2M\x341\x3"+ - "\x2\x2\x2O\x348\x3\x2\x2\x2Q\x34A\x3\x2\x2\x2S\x34C\x3\x2\x2\x2U\x34E"+ - "\x3\x2\x2\x2W\x350\x3\x2\x2\x2Y\x352\x3\x2\x2\x2[\x354\x3\x2\x2\x2]\x356"+ - "\x3\x2\x2\x2_\x358\x3\x2\x2\x2\x61\x35A\x3\x2\x2\x2\x63\x35C\x3\x2\x2"+ - "\x2\x65\x363\x3\x2\x2\x2g\x36D\x3\x2\x2\x2i\x373\x3\x2\x2\x2k\x377\x3"+ - "\x2\x2\x2m\x381\x3\x2\x2\x2o\x388\x3\x2\x2\x2q\x38B\x3\x2\x2\x2s\x391"+ - "\x3\x2\x2\x2u\x398\x3\x2\x2\x2w\x3A0\x3\x2\x2\x2y\x3A6\x3\x2\x2\x2{\x3AC"+ - "\x3\x2\x2\x2}\x3B1\x3\x2\x2\x2\x7F\x3B6\x3\x2\x2\x2\x81\x3BB\x3\x2\x2"+ - "\x2\x83\x3C1\x3\x2\x2\x2\x85\x3C7\x3\x2\x2\x2\x87\x3CD\x3\x2\x2\x2\x89"+ - "\x3D6\x3\x2\x2\x2\x8B\x3DB\x3\x2\x2\x2\x8D\x3E3\x3\x2\x2\x2\x8F\x3EB\x3"+ - "\x2\x2\x2\x91\x3F3\x3\x2\x2\x2\x93\x3FB\x3\x2\x2\x2\x95\x402\x3\x2\x2"+ - "\x2\x97\x409\x3\x2\x2\x2\x99\x410\x3\x2\x2\x2\x9B\x417\x3\x2\x2\x2\x9D"+ - "\x421\x3\x2\x2\x2\x9F\x42B\x3\x2\x2\x2\xA1\x432\x3\x2\x2\x2\xA3\x439\x3"+ - "\x2\x2\x2\xA5\x440\x3\x2\x2\x2\xA7\x447\x3\x2\x2\x2\xA9\x44B\x3\x2\x2"+ - "\x2\xAB\x44E\x3\x2\x2\x2\xAD\x455\x3\x2\x2\x2\xAF\x45A\x3\x2\x2\x2\xB1"+ - "\x45F\x3\x2\x2\x2\xB3\x466\x3\x2\x2\x2\xB5\x46C\x3\x2\x2\x2\xB7\x475\x3"+ - "\x2\x2\x2\xB9\x482\x3\x2\x2\x2\xBB\x489\x3\x2\x2\x2\xBD\x496\x3\x2\x2"+ - "\x2\xBF\x4A1\x3\x2\x2\x2\xC1\x4A9\x3\x2\x2\x2\xC3\x4B2\x3\x2\x2\x2\xC5"+ - "\x4BB\x3\x2\x2\x2\xC7\x4BF\x3\x2\x2\x2\xC9\x4C4\x3\x2\x2\x2\xCB\x4C8\x3"+ - "\x2\x2\x2\xCD\x4CE\x3\x2\x2\x2\xCF\x4D4\x3\x2\x2\x2\xD1\x4DA\x3\x2\x2"+ - "\x2\xD3\x4E2\x3\x2\x2\x2\xD5\x4EB\x3\x2\x2\x2\xD7\x4F9\x3\x2\x2\x2\xD9"+ - "\x507\x3\x2\x2\x2\xDB\x510\x3\x2\x2\x2\xDD\x516\x3\x2\x2\x2\xDF\x51D\x3"+ - "\x2\x2\x2\xE1\x521\x3\x2\x2\x2\xE3\x52A\x3\x2\x2\x2\xE5\x52E\x3\x2\x2"+ - "\x2\xE7\x535\x3\x2\x2\x2\xE9\x53B\x3\x2\x2\x2\xEB\x540\x3\x2\x2\x2\xED"+ - "\x543\x3\x2\x2\x2\xEF\x547\x3\x2\x2\x2\xF1\x552\x3\x2\x2\x2\xF3\x555\x3"+ - "\x2\x2\x2\xF5\x55B\x3\x2\x2\x2\xF7\x55E\x3\x2\x2\x2\xF9\x566\x3\x2\x2"+ - "\x2\xFB\x56B\x3\x2\x2\x2\xFD\x570\x3\x2\x2\x2\xFF\x575\x3\x2\x2\x2\x101"+ - "\x579\x3\x2\x2\x2\x103\x57D\x3\x2\x2\x2\x105\x582\x3\x2\x2\x2\x107\x58D"+ - "\x3\x2\x2\x2\x109\x597\x3\x2\x2\x2\x10B\x5A2\x3\x2\x2\x2\x10D\x5B2\x3"+ - "\x2\x2\x2\x10F\x5B7\x3\x2\x2\x2\x111\x5BA\x3\x2\x2\x2\x113\x5BE\x3\x2"+ - "\x2\x2\x115\x5C2\x3\x2\x2\x2\x117\x5C7\x3\x2\x2\x2\x119\x5CB\x3\x2\x2"+ - "\x2\x11B\x5CF\x3\x2\x2\x2\x11D\x5D7\x3\x2\x2\x2\x11F\x5DC\x3\x2\x2\x2"+ - "\x121\x5DF\x3\x2\x2\x2\x123\x5E8\x3\x2\x2\x2\x125\x5F7\x3\x2\x2\x2\x127"+ - "\x5FC\x3\x2\x2\x2\x129\x605\x3\x2\x2\x2\x12B\x611\x3\x2\x2\x2\x12D\x621"+ - "\x3\x2\x2\x2\x12F\x630\x3\x2\x2\x2\x131\x646\x3\x2\x2\x2\x133\x649\x3"+ - "\x2\x2\x2\x135\x650\x3\x2\x2\x2\x137\x65B\x3\x2\x2\x2\x139\x664\x3\x2"+ - "\x2\x2\x13B\x66A\x3\x2\x2\x2\x13D\x672\x3\x2\x2\x2\x13F\x67F\x3\x2\x2"+ - "\x2\x141\x68C\x3\x2\x2\x2\x143\x699\x3\x2\x2\x2\x145\x6A1\x3\x2\x2\x2"+ - "\x147\x6A8\x3\x2\x2\x2\x149\x6AC\x3\x2\x2\x2\x14B\x6B3\x3\x2\x2\x2\x14D"+ - "\x6BE\x3\x2\x2\x2\x14F\x6C3\x3\x2\x2\x2\x151\x6CE\x3\x2\x2\x2\x153\x6D4"+ - "\x3\x2\x2\x2\x155\x6D8\x3\x2\x2\x2\x157\x6DE\x3\x2\x2\x2\x159\x6E5\x3"+ - "\x2\x2\x2\x15B\x6EC\x3\x2\x2\x2\x15D\x6F1\x3\x2\x2\x2\x15F\x6F6\x3\x2"+ - "\x2\x2\x161\x6FD\x3\x2\x2\x2\x163\x701\x3\x2\x2\x2\x165\x708\x3\x2\x2"+ - "\x2\x167\x70F\x3\x2\x2\x2\x169\x713\x3\x2\x2\x2\x16B\x71A\x3\x2\x2\x2"+ - "\x16D\x71F\x3\x2\x2\x2\x16F\x724\x3\x2\x2\x2\x171\x72B\x3\x2\x2\x2\x173"+ - "\x72F\x3\x2\x2\x2\x175\x733\x3\x2\x2\x2\x177\x738\x3\x2\x2\x2\x179\x73D"+ - "\x3\x2\x2\x2\x17B\x740\x3\x2\x2\x2\x17D\x745\x3\x2\x2\x2\x17F\x74A\x3"+ - "\x2\x2\x2\x181\x751\x3\x2\x2\x2\x183\x758\x3\x2\x2\x2\x185\x75E\x3\x2"+ - "\x2\x2\x187\x766\x3\x2\x2\x2\x189\x76E\x3\x2\x2\x2\x18B\x773\x3\x2\x2"+ - "\x2\x18D\x779\x3\x2\x2\x2\x18F\x77F\x3\x2\x2\x2\x191\x784\x3\x2\x2\x2"+ - "\x193\x78F\x3\x2\x2\x2\x195\x795\x3\x2\x2\x2\x197\x799\x3\x2\x2\x2\x199"+ - "\x79C\x3\x2\x2\x2\x19B\x79E\x3\x2\x2\x2\x19D\x7A0\x3\x2\x2\x2\x19F\x7A6"+ - "\x3\x2\x2\x2\x1A1\x7A8\x3\x2\x2\x2\x1A3\x7AE\x3\x2\x2\x2\x1A5\x7B0\x3"+ - "\x2\x2\x2\x1A7\x7B2\x3\x2\x2\x2\x1A9\x7B4\x3\x2\x2\x2\x1AB\x7B6\x3\x2"+ - "\x2\x2\x1AD\x7BC\x3\x2\x2\x2\x1AF\x7BE\x3\x2\x2\x2\x1B1\x7C0\x3\x2\x2"+ - "\x2\x1B3\x7C2\x3\x2\x2\x2\x1B5\x7C7\x3\x2\x2\x2\x1B7\x7D0\x3\x2\x2\x2"+ - "\x1B9\x7DA\x3\x2\x2\x2\x1BB\x7E8\x3\x2\x2\x2\x1BD\x7F4\x3\x2\x2\x2\x1BF"+ - "\x804\x3\x2\x2\x2\x1C1\x806\x3\x2\x2\x2\x1C3\x808\x3\x2\x2\x2\x1C5\x813"+ - "\x3\x2\x2\x2\x1C7\x81E\x3\x2\x2\x2\x1C9\x830\x3\x2\x2\x2\x1CB\x842\x3"+ - "\x2\x2\x2\x1CD\x844\x3\x2\x2\x2\x1CF\x848\x3\x2\x2\x2\x1D1\x84A\x3\x2"+ - "\x2\x2\x1D3\x84C\x3\x2\x2\x2\x1D5\x855\x3\x2\x2\x2\x1D7\x857\x3\x2\x2"+ - "\x2\x1D9\x85A\x3\x2\x2\x2\x1DB\x85E\x3\x2\x2\x2\x1DD\x86A\x3\x2\x2\x2"+ - "\x1DF\x86C\x3\x2\x2\x2\x1E1\x87A\x3\x2\x2\x2\x1E3\x87D\x3\x2\x2\x2\x1E5"+ - "\x887\x3\x2\x2\x2\x1E7\x895\x3\x2\x2\x2\x1E9\x8A2\x3\x2\x2\x2\x1EB\x8C1"+ - "\x3\x2\x2\x2\x1ED\x8C4\x3\x2\x2\x2\x1EF\x8CB\x3\x2\x2\x2\x1F1\x8D7\x3"+ - "\x2\x2\x2\x1F3\x8DF\x3\x2\x2\x2\x1F5\x8E8\x3\x2\x2\x2\x1F7\x8EE\x3\x2"+ - "\x2\x2\x1F9\x8F4\x3\x2\x2\x2\x1FB\x8F8\x3\x2\x2\x2\x1FD\x8FD\x3\x2\x2"+ - "\x2\x1FF\x902\x3\x2\x2\x2\x201\x909\x3\x2\x2\x2\x203\x913\x3\x2\x2\x2"+ - "\x205\x91B\x3\x2\x2\x2\x207\x924\x3\x2\x2\x2\x209\x92D\x3\x2\x2\x2\x20B"+ - "\x931\x3\x2\x2\x2\x20D\x935\x3\x2\x2\x2\x20F\x939\x3\x2\x2\x2\x211\x93D"+ - "\x3\x2\x2\x2\x213\x941\x3\x2\x2\x2\x215\x945\x3\x2\x2\x2\x217\x949\x3"+ - "\x2\x2\x2\x219\x94D\x3\x2\x2\x2\x21B\x951\x3\x2\x2\x2\x21D\x955\x3\x2"+ - "\x2\x2\x21F\x95C\x3\x2\x2\x2\x221\x95E\x3\x2\x2\x2\x223\x960\x3\x2\x2"+ - "\x2\x225\x962\x3\x2\x2\x2\x227\x973\x3\x2\x2\x2\x229\x978\x3\x2\x2\x2"+ - "\x22B\x987\x3\x2\x2\x2\x22D\x9A7\x3\x2\x2\x2\x22F\x9A9\x3\x2\x2\x2\x231"+ - "\x9AB\x3\x2\x2\x2\x233\x9AD\x3\x2\x2\x2\x235\x9AF\x3\x2\x2\x2\x237\x9B1"+ - "\x3\x2\x2\x2\x239\x9B3\x3\x2\x2\x2\x23B\x9B5\x3\x2\x2\x2\x23D\x9B7\x3"+ - "\x2\x2\x2\x23F\x9B9\x3\x2\x2\x2\x241\x9BB\x3\x2\x2\x2\x243\x9BD\x3\x2"+ - "\x2\x2\x245\x9BF\x3\x2\x2\x2\x247\x9C1\x3\x2\x2\x2\x249\x9C3\x3\x2\x2"+ - "\x2\x24B\x9C5\x3\x2\x2\x2\x24D\x9C7\x3\x2\x2\x2\x24F\x9C9\x3\x2\x2\x2"+ - "\x251\x9CB\x3\x2\x2\x2\x253\x9CD\x3\x2\x2\x2\x255\x9CF\x3\x2\x2\x2\x257"+ - "\x9D1\x3\x2\x2\x2\x259\x9D3\x3\x2\x2\x2\x25B\x9D5\x3\x2\x2\x2\x25D\x9D7"+ - "\x3\x2\x2\x2\x25F\x9D9\x3\x2\x2\x2\x261\x9DB\x3\x2\x2\x2\x263\x9DD\x3"+ - "\x2\x2\x2\x265\x9DF\x3\x2\x2\x2\x267\x9E1\x3\x2\x2\x2\x269\x26A\x5\x233"+ - "\x11A\x2\x26A\x26B\x5\x235\x11B\x2\x26B\x26C\x5\x257\x12C\x2\x26C\x4\x3"+ - "\x2\x2\x2\x26D\x26E\x5\x233\x11A\x2\x26E\x26F\x5\x24D\x127\x2\x26F\x270"+ - "\x5\x263\x132\x2\x270\x6\x3\x2\x2\x2\x271\x272\x5\x233\x11A\x2\x272\x273"+ - "\x5\x255\x12B\x2\x273\x274\x5\x255\x12B\x2\x274\x275\x5\x233\x11A\x2\x275"+ - "\x276\x5\x263\x132\x2\x276\b\x3\x2\x2\x2\x277\x278\x5\x237\x11C\x2\x278"+ - "\x279\x5\x235\x11B\x2\x279\x27A\x5\x24F\x128\x2\x27A\x27B\x5\x24F\x128"+ - "\x2\x27B\x27C\x5\x249\x125\x2\x27C\n\x3\x2\x2\x2\x27D\x27E\x5\x237\x11C"+ - "\x2\x27E\x27F\x5\x235\x11B\x2\x27F\x280\x5\x263\x132\x2\x280\x281\x5\x259"+ - "\x12D\x2\x281\x282\x5\x23B\x11E\x2\x282\f\x3\x2\x2\x2\x283\x284\x5\x237"+ - "\x11C\x2\x284\x285\x5\x237\x11C\x2\x285\x286\x5\x25B\x12E\x2\x286\x287"+ - "\x5\x255\x12B\x2\x287\xE\x3\x2\x2\x2\x288\x289\x5\x237\x11C\x2\x289\x28A"+ - "\x5\x239\x11D\x2\x28A\x28B\x5\x233\x11A\x2\x28B\x28C\x5\x259\x12D\x2\x28C"+ - "\x28D\x5\x23B\x11E\x2\x28D\x10\x3\x2\x2\x2\x28E\x28F\x5\x237\x11C\x2\x28F"+ - "\x290\x5\x239\x11D\x2\x290\x291\x5\x235\x11B\x2\x291\x292\x5\x249\x125"+ - "\x2\x292\x12\x3\x2\x2\x2\x293\x294\x5\x237\x11C\x2\x294\x295\x5\x239\x11D"+ - "\x2\x295\x296\x5\x23B\x11E\x2\x296\x297\x5\x237\x11C\x2\x297\x14\x3\x2"+ - "\x2\x2\x298\x299\x5\x237\x11C\x2\x299\x29A\x5\x243\x122\x2\x29A\x29B\x5"+ - "\x24D\x127\x2\x29B\x29C\x5\x259\x12D\x2\x29C\x16\x3\x2\x2\x2\x29D\x29E"+ - "\x5\x237\x11C\x2\x29E\x29F\x5\x243\x122\x2\x29F\x2A0\x5\x255\x12B\x2\x2A0"+ - "\x2A1\x5\x237\x11C\x2\x2A1\x2A2\x5\x249\x125\x2\x2A2\x2A3\x5\x23B\x11E"+ - "\x2\x2A3\x18\x3\x2\x2\x2\x2A4\x2A5\x5\x237\x11C\x2\x2A5\x2A6\x5\x249\x125"+ - "\x2\x2A6\x2A7\x5\x24D\x127\x2\x2A7\x2A8\x5\x23F\x120\x2\x2A8\x1A\x3\x2"+ - "\x2\x2\x2A9\x2AA\x5\x237\x11C\x2\x2AA\x2AB\x5\x249\x125\x2\x2AB\x2AC\x5"+ - "\x24D\x127\x2\x2AC\x2AD\x5\x23F\x120\x2\x2AD\x2AE\x5\x249\x125\x2\x2AE"+ - "\x2AF\x5\x24D\x127\x2\x2AF\x2B0\x5\x23F\x120\x2\x2B0\x1C\x3\x2\x2\x2\x2B1"+ - "\x2B2\x5\x237\x11C\x2\x2B2\x2B3\x5\x249\x125\x2\x2B3\x2B4\x5\x24D\x127"+ - "\x2\x2B4\x2B5\x5\x23F\x120\x2\x2B5\x2B6\x5\x251\x129\x2\x2B6\x2B7\x5\x259"+ - "\x12D\x2\x2B7\x2B8\x5\x255\x12B\x2\x2B8\x1E\x3\x2\x2\x2\x2B9\x2BA\x5\x237"+ - "\x11C\x2\x2BA\x2BB\x5\x257\x12C\x2\x2BB\x2BC\x5\x24D\x127\x2\x2BC\x2BD"+ - "\x5\x23F\x120\x2\x2BD \x3\x2\x2\x2\x2BE\x2BF\x5\x237\x11C\x2\x2BF\x2C0"+ - "\x5\x257\x12C\x2\x2C0\x2C1\x5\x259\x12D\x2\x2C1\x2C2\x5\x255\x12B\x2\x2C2"+ - "\"\x3\x2\x2\x2\x2C3\x2C4\x5\x237\x11C\x2\x2C4\x2C5\x5\x25B\x12E\x2\x2C5"+ - "\x2C6\x5\x255\x12B\x2\x2C6\x2C7\x5\x255\x12B\x2\x2C7\x2C8\x5\x23B\x11E"+ - "\x2\x2C8\x2C9\x5\x24D\x127\x2\x2C9\x2CA\x5\x237\x11C\x2\x2CA\x2CB\x5\x263"+ - "\x132\x2\x2CB$\x3\x2\x2\x2\x2CC\x2CD\x5\x237\x11C\x2\x2CD\x2CE\x5\x25D"+ - "\x12F\x2\x2CE\x2CF\x5\x233\x11A\x2\x2CF\x2D0\x5\x255\x12B\x2\x2D0&\x3"+ - "\x2\x2\x2\x2D1\x2D2\x5\x237\x11C\x2\x2D2\x2D3\x5\x25D\x12F\x2\x2D3\x2D4"+ - "\x5\x23B\x11E\x2\x2D4\x2D5\x5\x255\x12B\x2\x2D5\x2D6\x5\x255\x12B\x2\x2D6"+ - "(\x3\x2\x2\x2\x2D7\x2D8\x5\x239\x11D\x2\x2D8\x2D9\x5\x23B\x11E\x2\x2D9"+ - "\x2DA\x5\x235\x11B\x2\x2DA\x2DB\x5\x25B\x12E\x2\x2DB\x2DC\x5\x23F\x120"+ - "\x2\x2DC*\x3\x2\x2\x2\x2DD\x2DE\x5\x239\x11D\x2\x2DE\x2DF\x5\x24F\x128"+ - "\x2\x2DF\x2E0\x5\x23B\x11E\x2\x2E0\x2E1\x5\x25D\x12F\x2\x2E1\x2E2\x5\x23B"+ - "\x11E\x2\x2E2\x2E3\x5\x24D\x127\x2\x2E3\x2E4\x5\x259\x12D\x2\x2E4\x2E5"+ - "\x5\x257\x12C\x2\x2E5,\x3\x2\x2\x2\x2E6\x2E7\x5\x23B\x11E\x2\x2E7\x2E8"+ - "\x5\x261\x131\x2\x2E8\x2E9\x5\x243\x122\x2\x2E9\x2EA\x5\x259\x12D\x2\x2EA"+ - ".\x3\x2\x2\x2\x2EB\x2EC\x5\x23D\x11F\x2\x2EC\x2ED\x5\x243\x122\x2\x2ED"+ - "\x2EE\x5\x261\x131\x2\x2EE\x30\x3\x2\x2\x2\x2EF\x2F0\x5\x243\x122\x2\x2F0"+ - "\x2F1\x5\x24D\x127\x2\x2F1\x2F2\x5\x251\x129\x2\x2F2\x2F3\x5\x25B\x12E"+ - "\x2\x2F3\x2F4\x5\x259\x12D\x2\x2F4\x2F5\x5\x235\x11B\x2\x2F5\x32\x3\x2"+ - "\x2\x2\x2F6\x2F7\x5\x243\x122\x2\x2F7\x2F8\x5\x24D\x127\x2\x2F8\x2F9\x5"+ - "\x259\x12D\x2\x2F9\x34\x3\x2\x2\x2\x2FA\x2FB\x5\x249\x125\x2\x2FB\x2FC"+ - "\x5\x235\x11B\x2\x2FC\x2FD\x5\x24F\x128\x2\x2FD\x2FE\x5\x25B\x12E\x2\x2FE"+ - "\x2FF\x5\x24D\x127\x2\x2FF\x300\x5\x239\x11D\x2\x300\x36\x3\x2\x2\x2\x301"+ - "\x302\x5\x249\x125\x2\x302\x303\x5\x23B\x11E\x2\x303\x304\x5\x24D\x127"+ - "\x2\x304\x38\x3\x2\x2\x2\x305\x306\x5\x249\x125\x2\x306\x307\x5\x23B\x11E"+ - "\x2\x307\x308\x5\x24D\x127\x2\x308\x309\x5\x235\x11B\x2\x309:\x3\x2\x2"+ - "\x2\x30A\x30B\x5\x249\x125\x2\x30B\x30C\x5\x24F\x128\x2\x30C\x30D\x5\x24D"+ - "\x127\x2\x30D\x30E\x5\x23F\x120\x2\x30E\x30F\x5\x249\x125\x2\x30F\x310"+ - "\x5\x24F\x128\x2\x310\x311\x5\x24D\x127\x2\x311\x312\x5\x23F\x120\x2\x312"+ - "<\x3\x2\x2\x2\x313\x314\x5\x249\x125\x2\x314\x315\x5\x24F\x128\x2\x315"+ - "\x316\x5\x24D\x127\x2\x316\x317\x5\x23F\x120\x2\x317\x318\x5\x251\x129"+ - "\x2\x318\x319\x5\x259\x12D\x2\x319\x31A\x5\x255\x12B\x2\x31A>\x3\x2\x2"+ - "\x2\x31B\x31C\x5\x24B\x126\x2\x31C\x31D\x5\x243\x122\x2\x31D\x31E\x5\x239"+ - "\x11D\x2\x31E\x31F\x5\x235\x11B\x2\x31F@\x3\x2\x2\x2\x320\x321\x5\x24B"+ - "\x126\x2\x321\x322\x5\x243\x122\x2\x322\x323\x5\x239\x11D\x2\x323\x324"+ - "\x5\x235\x11B\x2\x324\x325\a&\x2\x2\x325\x42\x3\x2\x2\x2\x326\x327\x5"+ - "\x24B\x126\x2\x327\x328\x5\x243\x122\x2\x328\x329\x5\x239\x11D\x2\x329"+ - "\x32A\a&\x2\x2\x32A\x44\x3\x2\x2\x2\x32B\x32C\x5\x24F\x128\x2\x32C\x32D"+ - "\x5\x251\x129\x2\x32D\x32E\x5\x259\x12D\x2\x32E\x32F\x5\x243\x122\x2\x32F"+ - "\x330\x5\x24F\x128\x2\x330\x331\x5\x24D\x127\x2\x331\x46\x3\x2\x2\x2\x332"+ - "\x333\x5\x251\x129\x2\x333\x334\x5\x257\x12C\x2\x334\x335\x5\x23B\x11E"+ - "\x2\x335\x336\x5\x259\x12D\x2\x336H\x3\x2\x2\x2\x337\x338\x5\x257\x12C"+ - "\x2\x338\x339\x5\x237\x11C\x2\x339\x33A\x5\x233\x11A\x2\x33A\x33B\x5\x249"+ - "\x125\x2\x33B\x33C\x5\x23B\x11E\x2\x33CJ\x3\x2\x2\x2\x33D\x33E\x5\x257"+ - "\x12C\x2\x33E\x33F\x5\x23F\x120\x2\x33F\x340\x5\x24D\x127\x2\x340L\x3"+ - "\x2\x2\x2\x341\x342\x5\x25B\x12E\x2\x342\x343\x5\x235\x11B\x2\x343\x344"+ - "\x5\x24F\x128\x2\x344\x345\x5\x25B\x12E\x2\x345\x346\x5\x24D\x127\x2\x346"+ - "\x347\x5\x239\x11D\x2\x347N\x3\x2\x2\x2\x348\x349\a.\x2\x2\x349P\x3\x2"+ - "\x2\x2\x34A\x34B\a<\x2\x2\x34BR\x3\x2\x2\x2\x34C\x34D\a=\x2\x2\x34DT\x3"+ - "\x2\x2\x2\x34E\x34F\a#\x2\x2\x34FV\x3\x2\x2\x2\x350\x351\a\x30\x2\x2\x351"+ - "X\x3\x2\x2\x2\x352\x353\a%\x2\x2\x353Z\x3\x2\x2\x2\x354\x355\a\x42\x2"+ - "\x2\x355\\\x3\x2\x2\x2\x356\x357\a\'\x2\x2\x357^\x3\x2\x2\x2\x358\x359"+ - "\a&\x2\x2\x359`\x3\x2\x2\x2\x35A\x35B\a(\x2\x2\x35B\x62\x3\x2\x2\x2\x35C"+ - "\x35D\x5\x233\x11A\x2\x35D\x35E\x5\x237\x11C\x2\x35E\x35F\x5\x237\x11C"+ - "\x2\x35F\x360\x5\x23B\x11E\x2\x360\x361\x5\x257\x12C\x2\x361\x362\x5\x257"+ - "\x12C\x2\x362\x64\x3\x2\x2\x2\x363\x364\x5\x233\x11A\x2\x364\x365\x5\x239"+ - "\x11D\x2\x365\x366\x5\x239\x11D\x2\x366\x367\x5\x255\x12B\x2\x367\x368"+ - "\x5\x23B\x11E\x2\x368\x369\x5\x257\x12C\x2\x369\x36A\x5\x257\x12C\x2\x36A"+ - "\x36B\x5\x24F\x128\x2\x36B\x36C\x5\x23D\x11F\x2\x36C\x66\x3\x2\x2\x2\x36D"+ - "\x36E\x5\x233\x11A\x2\x36E\x36F\x5\x249\x125\x2\x36F\x370\x5\x243\x122"+ - "\x2\x370\x371\x5\x233\x11A\x2\x371\x372\x5\x257\x12C\x2\x372h\x3\x2\x2"+ - "\x2\x373\x374\x5\x233\x11A\x2\x374\x375\x5\x24D\x127\x2\x375\x376\x5\x239"+ - "\x11D\x2\x376j\x3\x2\x2\x2\x377\x378\x5\x233\x11A\x2\x378\x379\x5\x259"+ - "\x12D\x2\x379\x37A\x5\x259\x12D\x2\x37A\x37B\x5\x255\x12B\x2\x37B\x37C"+ - "\x5\x243\x122\x2\x37C\x37D\x5\x235\x11B\x2\x37D\x37E\x5\x25B\x12E\x2\x37E"+ - "\x37F\x5\x259\x12D\x2\x37F\x380\x5\x23B\x11E\x2\x380l\x3\x2\x2\x2\x381"+ - "\x382\x5\x233\x11A\x2\x382\x383\x5\x251\x129\x2\x383\x384\x5\x251\x129"+ - "\x2\x384\x385\x5\x23B\x11E\x2\x385\x386\x5\x24D\x127\x2\x386\x387\x5\x239"+ - "\x11D\x2\x387n\x3\x2\x2\x2\x388\x389\x5\x233\x11A\x2\x389\x38A\x5\x257"+ - "\x12C\x2\x38Ap\x3\x2\x2\x2\x38B\x38C\x5\x235\x11B\x2\x38C\x38D\x5\x23B"+ - "\x11E\x2\x38D\x38E\x5\x23F\x120\x2\x38E\x38F\x5\x243\x122\x2\x38F\x390"+ - "\x5\x24D\x127\x2\x390r\x3\x2\x2\x2\x391\x392\x5\x235\x11B\x2\x392\x393"+ - "\x5\x243\x122\x2\x393\x394\x5\x24D\x127\x2\x394\x395\x5\x233\x11A\x2\x395"+ - "\x396\x5\x255\x12B\x2\x396\x397\x5\x263\x132\x2\x397t\x3\x2\x2\x2\x398"+ - "\x399\x5\x235\x11B\x2\x399\x39A\x5\x24F\x128\x2\x39A\x39B\x5\x24F\x128"+ - "\x2\x39B\x39C\x5\x249\x125\x2\x39C\x39D\x5\x23B\x11E\x2\x39D\x39E\x5\x233"+ - "\x11A\x2\x39E\x39F\x5\x24D\x127\x2\x39Fv\x3\x2\x2\x2\x3A0\x3A1\x5\x235"+ - "\x11B\x2\x3A1\x3A2\x5\x263\x132\x2\x3A2\x3A3\x5\x25D\x12F\x2\x3A3\x3A4"+ - "\x5\x233\x11A\x2\x3A4\x3A5\x5\x249\x125\x2\x3A5x\x3\x2\x2\x2\x3A6\x3A7"+ - "\x5\x235\x11B\x2\x3A7\x3A8\x5\x263\x132\x2\x3A8\x3A9\x5\x255\x12B\x2\x3A9"+ - "\x3AA\x5\x23B\x11E\x2\x3AA\x3AB\x5\x23D\x11F\x2\x3ABz\x3\x2\x2\x2\x3AC"+ - "\x3AD\x5\x235\x11B\x2\x3AD\x3AE\x5\x263\x132\x2\x3AE\x3AF\x5\x259\x12D"+ - "\x2\x3AF\x3B0\x5\x23B\x11E\x2\x3B0|\x3\x2\x2\x2\x3B1\x3B2\x5\x237\x11C"+ - "\x2\x3B2\x3B3\x5\x233\x11A\x2\x3B3\x3B4\x5\x249\x125\x2\x3B4\x3B5\x5\x249"+ - "\x125\x2\x3B5~\x3\x2\x2\x2\x3B6\x3B7\x5\x237\x11C\x2\x3B7\x3B8\x5\x233"+ - "\x11A\x2\x3B8\x3B9\x5\x257\x12C\x2\x3B9\x3BA\x5\x23B\x11E\x2\x3BA\x80"+ - "\x3\x2\x2\x2\x3BB\x3BC\x5\x237\x11C\x2\x3BC\x3BD\x5\x249\x125\x2\x3BD"+ - "\x3BE\x5\x233\x11A\x2\x3BE\x3BF\x5\x257\x12C\x2\x3BF\x3C0\x5\x257\x12C"+ - "\x2\x3C0\x82\x3\x2\x2\x2\x3C1\x3C2\x5\x237\x11C\x2\x3C2\x3C3\x5\x249\x125"+ - "\x2\x3C3\x3C4\x5\x24F\x128\x2\x3C4\x3C5\x5\x257\x12C\x2\x3C5\x3C6\x5\x23B"+ - "\x11E\x2\x3C6\x84\x3\x2\x2\x2\x3C7\x3C8\x5\x237\x11C\x2\x3C8\x3C9\x5\x24F"+ - "\x128\x2\x3C9\x3CA\x5\x24D\x127\x2\x3CA\x3CB\x5\x257\x12C\x2\x3CB\x3CC"+ - "\x5\x259\x12D\x2\x3CC\x86\x3\x2\x2\x2\x3CD\x3CE\x5\x239\x11D\x2\x3CE\x3CF"+ - "\x5\x233\x11A\x2\x3CF\x3D0\x5\x259\x12D\x2\x3D0\x3D1\x5\x233\x11A\x2\x3D1"+ - "\x3D2\x5\x235\x11B\x2\x3D2\x3D3\x5\x233\x11A\x2\x3D3\x3D4\x5\x257\x12C"+ - "\x2\x3D4\x3D5\x5\x23B\x11E\x2\x3D5\x88\x3\x2\x2\x2\x3D6\x3D7\x5\x239\x11D"+ - "\x2\x3D7\x3D8\x5\x233\x11A\x2\x3D8\x3D9\x5\x259\x12D\x2\x3D9\x3DA\x5\x23B"+ - "\x11E\x2\x3DA\x8A\x3\x2\x2\x2\x3DB\x3DC\x5\x239\x11D\x2\x3DC\x3DD\x5\x23B"+ - "\x11E\x2\x3DD\x3DE\x5\x237\x11C\x2\x3DE\x3DF\x5\x249\x125\x2\x3DF\x3E0"+ - "\x5\x233\x11A\x2\x3E0\x3E1\x5\x255\x12B\x2\x3E1\x3E2\x5\x23B\x11E\x2\x3E2"+ - "\x8C\x3\x2\x2\x2\x3E3\x3E4\x5\x239\x11D\x2\x3E4\x3E5\x5\x23B\x11E\x2\x3E5"+ + "\x5\xF4\x8C8\n\xF4\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3\xF5\x3"+ + "\xF5\x3\xF5\x3\xF5\x3\xF5\x5\xF5\x8D5\n\xF5\x3\xF6\x6\xF6\x8D8\n\xF6\r"+ + "\xF6\xE\xF6\x8D9\x3\xF6\x3\xF6\x3\xF6\x6\xF6\x8DF\n\xF6\r\xF6\xE\xF6\x8E0"+ + "\x3\xF6\x3\xF6\x6\xF6\x8E5\n\xF6\r\xF6\xE\xF6\x8E6\x3\xF6\x3\xF6\x6\xF6"+ + "\x8EB\n\xF6\r\xF6\xE\xF6\x8EC\x5\xF6\x8EF\n\xF6\x3\xF6\x5\xF6\x8F2\n\xF6"+ + "\x5\xF6\x8F4\n\xF6\x3\xF7\x5\xF7\x8F7\n\xF7\x3\xF7\x3\xF7\x5\xF7\x8FB"+ + "\n\xF7\x3\xF8\x5\xF8\x8FE\n\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3\xF8\x3"+ + "\xF8\x3\xF8\x3\xF8\x5\xF8\x908\n\xF8\x3\xF9\x3\xF9\x3\xF9\x3\xF9\x3\xF9"+ + "\x3\xF9\x3\xF9\x3\xF9\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA\x3\xFA"+ + "\x3\xFA\x3\xFA\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFB\x3\xFC\x3\xFC"+ + "\x3\xFC\x3\xFC\x3\xFC\x3\xFC\x3\xFD\x3\xFD\x3\xFD\x3\xFD\x3\xFE\x3\xFE"+ + "\x3\xFE\x3\xFE\x3\xFE\x3\xFF\x3\xFF\x3\xFF\x3\xFF\x3\xFF\x3\x100\x3\x100"+ + "\x3\x100\x3\x100\x3\x100\x3\x100\x3\x100\x3\x101\x3\x101\x3\x101\x3\x101"+ + "\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x101\x3\x102\x3\x102\x3\x102"+ + "\x3\x102\x3\x102\x3\x102\x3\x102\x3\x102\x3\x103\x3\x103\x3\x103\x3\x103"+ + "\x3\x103\x3\x103\x3\x103\x3\x103\x3\x103\x3\x104\x3\x104\x3\x104\x3\x104"+ + "\x3\x104\x3\x104\x3\x104\x3\x104\x3\x104\x3\x105\x3\x105\x3\x105\x3\x105"+ + "\x3\x106\x3\x106\x3\x106\x3\x106\x3\x107\x3\x107\x3\x107\x3\x107\x3\x108"+ + "\x3\x108\x3\x108\x3\x108\x3\x109\x3\x109\x3\x109\x3\x109\x3\x10A\x3\x10A"+ + "\x3\x10A\x3\x10A\x3\x10B\x3\x10B\x3\x10B\x3\x10B\x3\x10C\x3\x10C\x3\x10C"+ + "\x3\x10C\x3\x10D\x3\x10D\x3\x10D\x3\x10D\x3\x10E\x3\x10E\x3\x10E\x3\x10E"+ + "\x3\x10F\x3\x10F\x3\x10F\x3\x10F\x3\x110\x3\x110\x3\x110\x5\x110\x98F"+ + "\n\x110\x3\x111\x3\x111\x3\x112\x3\x112\x3\x113\x3\x113\x3\x114\x3\x114"+ + "\a\x114\x999\n\x114\f\x114\xE\x114\x99C\v\x114\x3\x114\x3\x114\x6\x114"+ + "\x9A0\n\x114\r\x114\xE\x114\x9A1\x3\x114\x3\x114\x5\x114\x9A6\n\x114\x3"+ + "\x115\a\x115\x9A9\n\x115\f\x115\xE\x115\x9AC\v\x115\x3\x115\x3\x115\a"+ + "\x115\x9B0\n\x115\f\x115\xE\x115\x9B3\v\x115\x3\x115\x5\x115\x9B6\n\x115"+ + "\x3\x115\x3\x115\x3\x116\x3\x116\x6\x116\x9BC\n\x116\r\x116\xE\x116\x9BD"+ + "\x3\x116\x3\x116\x6\x116\x9C2\n\x116\r\x116\xE\x116\x9C3\x3\x116\x3\x116"+ + "\x6\x116\x9C8\n\x116\r\x116\xE\x116\x9C9\x3\x116\x3\x116\x6\x116\x9CE"+ + "\n\x116\r\x116\xE\x116\x9CF\x3\x116\x3\x116\x6\x116\x9D4\n\x116\r\x116"+ + "\xE\x116\x9D5\x3\x116\x3\x116\x3\x117\x3\x117\x3\x118\x3\x118\x3\x119"+ + "\x3\x119\x3\x11A\x3\x11A\x3\x11B\x3\x11B\x3\x11C\x3\x11C\x3\x11D\x3\x11D"+ + "\x3\x11E\x3\x11E\x3\x11F\x3\x11F\x3\x120\x3\x120\x3\x121\x3\x121\x3\x122"+ + "\x3\x122\x3\x123\x3\x123\x3\x124\x3\x124\x3\x125\x3\x125\x3\x126\x3\x126"+ + "\x3\x127\x3\x127\x3\x128\x3\x128\x3\x129\x3\x129\x3\x12A\x3\x12A\x3\x12B"+ + "\x3\x12B\x3\x12C\x3\x12C\x3\x12D\x3\x12D\x3\x12E\x3\x12E\x3\x12F\x3\x12F"+ + "\x3\x130\x3\x130\x3\x131\x3\x131\x3\x132\x3\x132\x3\x133\x3\x133\x3\x134"+ + "\x3\x134\x2\x2\x2\x135\x3\x2\x3\x5\x2\x4\a\x2\x5\t\x2\x6\v\x2\a\r\x2\b"+ + "\xF\x2\t\x11\x2\n\x13\x2\v\x15\x2\f\x17\x2\r\x19\x2\xE\x1B\x2\xF\x1D\x2"+ + "\x10\x1F\x2\x11!\x2\x12#\x2\x13%\x2\x14\'\x2\x15)\x2\x16+\x2\x17-\x2\x18"+ + "/\x2\x19\x31\x2\x1A\x33\x2\x1B\x35\x2\x1C\x37\x2\x1D\x39\x2\x1E;\x2\x1F"+ + "=\x2 ?\x2!\x41\x2\"\x43\x2#\x45\x2$G\x2%I\x2&K\x2\'M\x2(O\x2)Q\x2*S\x2"+ + "+U\x2,W\x2-Y\x2.[\x2/]\x2\x30_\x2\x31\x61\x2\x32\x63\x2\x33\x65\x2\x34"+ + "g\x2\x35i\x2\x36k\x2\x37m\x2\x38o\x2\x39q\x2:s\x2;u\x2{\x2"+ + "?}\x2@\x7F\x2\x41\x81\x2\x42\x83\x2\x43\x85\x2\x44\x87\x2\x45\x89\x2\x46"+ + "\x8B\x2G\x8D\x2H\x8F\x2I\x91\x2J\x93\x2K\x95\x2L\x97\x2M\x99\x2N\x9B\x2"+ + "O\x9D\x2P\x9F\x2Q\xA1\x2R\xA3\x2S\xA5\x2T\xA7\x2U\xA9\x2V\xAB\x2W\xAD"+ + "\x2X\xAF\x2Y\xB1\x2Z\xB3\x2[\xB5\x2\\\xB7\x2]\xB9\x2^\xBB\x2_\xBD\x2`"+ + "\xBF\x2\x61\xC1\x2\x62\xC3\x2\x63\xC5\x2\x64\xC7\x2\x65\xC9\x2\x66\xCB"+ + "\x2g\xCD\x2h\xCF\x2i\xD1\x2j\xD3\x2k\xD5\x2l\xD7\x2m\xD9\x2n\xDB\x2o\xDD"+ + "\x2p\xDF\x2q\xE1\x2r\xE3\x2s\xE5\x2t\xE7\x2u\xE9\x2v\xEB\x2w\xED\x2x\xEF"+ + "\x2y\xF1\x2z\xF3\x2{\xF5\x2|\xF7\x2}\xF9\x2~\xFB\x2\x7F\xFD\x2\x80\xFF"+ + "\x2\x81\x101\x2\x82\x103\x2\x83\x105\x2\x84\x107\x2\x85\x109\x2\x86\x10B"+ + "\x2\x87\x10D\x2\x88\x10F\x2\x89\x111\x2\x8A\x113\x2\x8B\x115\x2\x8C\x117"+ + "\x2\x8D\x119\x2\x8E\x11B\x2\x8F\x11D\x2\x90\x11F\x2\x91\x121\x2\x92\x123"+ + "\x2\x93\x125\x2\x94\x127\x2\x95\x129\x2\x96\x12B\x2\x97\x12D\x2\x98\x12F"+ + "\x2\x99\x131\x2\x9A\x133\x2\x9B\x135\x2\x9C\x137\x2\x9D\x139\x2\x9E\x13B"+ + "\x2\x9F\x13D\x2\xA0\x13F\x2\xA1\x141\x2\xA2\x143\x2\xA3\x145\x2\xA4\x147"+ + "\x2\xA5\x149\x2\xA6\x14B\x2\xA7\x14D\x2\xA8\x14F\x2\xA9\x151\x2\xAA\x153"+ + "\x2\xAB\x155\x2\xAC\x157\x2\xAD\x159\x2\xAE\x15B\x2\xAF\x15D\x2\xB0\x15F"+ + "\x2\xB1\x161\x2\xB2\x163\x2\xB3\x165\x2\xB4\x167\x2\xB5\x169\x2\xB6\x16B"+ + "\x2\xB7\x16D\x2\xB8\x16F\x2\xB9\x171\x2\xBA\x173\x2\xBB\x175\x2\xBC\x177"+ + "\x2\xBD\x179\x2\xBE\x17B\x2\xBF\x17D\x2\xC0\x17F\x2\xC1\x181\x2\xC2\x183"+ + "\x2\xC3\x185\x2\xC4\x187\x2\xC5\x189\x2\xC6\x18B\x2\xC7\x18D\x2\xC8\x18F"+ + "\x2\xC9\x191\x2\xCA\x193\x2\xCB\x195\x2\xCC\x197\x2\xCD\x199\x2\xCE\x19B"+ + "\x2\xCF\x19D\x2\xD0\x19F\x2\xD1\x1A1\x2\xD2\x1A3\x2\xD3\x1A5\x2\xD4\x1A7"+ + "\x2\xD5\x1A9\x2\xD6\x1AB\x2\xD7\x1AD\x2\xD8\x1AF\x2\xD9\x1B1\x2\xDA\x1B3"+ + "\x2\xDB\x1B5\x2\xDC\x1B7\x2\xDD\x1B9\x2\xDE\x1BB\x2\xDF\x1BD\x2\xE0\x1BF"+ + "\x2\xE1\x1C1\x2\xE2\x1C3\x2\xE3\x1C5\x2\xE4\x1C7\x2\xE5\x1C9\x2\xE6\x1CB"+ + "\x2\x2\x1CD\x2\xE7\x1CF\x2\x2\x1D1\x2\x2\x1D3\x2\x2\x1D5\x2\x2\x1D7\x2"+ + "\x2\x1D9\x2\x2\x1DB\x2\xE8\x1DD\x2\x2\x1DF\x2\x2\x1E1\x2\x2\x1E3\x2\x2"+ + "\x1E5\x2\x2\x1E7\x2\x2\x1E9\x2\x2\x1EB\x2\x2\x1ED\x2\x2\x1EF\x2\x2\x1F1"+ + "\x2\x2\x1F3\x2\x2\x1F5\x2\x2\x1F7\x2\x2\x1F9\x2\x2\x1FB\x2\x2\x1FD\x2"+ + "\x2\x1FF\x2\x2\x201\x2\x2\x203\x2\x2\x205\x2\x2\x207\x2\x2\x209\x2\x2"+ + "\x20B\x2\x2\x20D\x2\x2\x20F\x2\x2\x211\x2\x2\x213\x2\x2\x215\x2\x2\x217"+ + "\x2\x2\x219\x2\x2\x21B\x2\x2\x21D\x2\x2\x21F\x2\xE9\x221\x2\xEA\x223\x2"+ + "\xEB\x225\x2\xEC\x227\x2\xED\x229\x2\xEE\x22B\x2\xEF\x22D\x2\x2\x22F\x2"+ + "\x2\x231\x2\x2\x233\x2\x2\x235\x2\x2\x237\x2\x2\x239\x2\x2\x23B\x2\x2"+ + "\x23D\x2\x2\x23F\x2\x2\x241\x2\x2\x243\x2\x2\x245\x2\x2\x247\x2\x2\x249"+ + "\x2\x2\x24B\x2\x2\x24D\x2\x2\x24F\x2\x2\x251\x2\x2\x253\x2\x2\x255\x2"+ + "\x2\x257\x2\x2\x259\x2\x2\x25B\x2\x2\x25D\x2\x2\x25F\x2\x2\x261\x2\x2"+ + "\x263\x2\x2\x265\x2\x2\x267\x2\xF0\x3\x2-\x5\x2\f\f\xF\xF\x202A\x202B"+ + "\x5\x2\f\f\xF\xF$$\x3\x2\x32:\x4\x2\x32;\x43H\x4\x2\'(``\x5\x2##%%\x42"+ + "\x42\x4\x2\x46G\x66g\x4\x2--//\x4\x2./\x31\x31\x4\x2\x30\x30<<\x4\x2\v"+ + "\v\"\"\t\x2\v\f\xF\xF\"=??\x42\x42]`~~\v\x2\v\f\xF\xF\".\x30\x30<=??\x42"+ + "\x42]`~~\x6\x2\f\f\xF\xF##^_\f\x2\x43\\\x61\x61\x63|\xA6\xA6\xB8\xB8\xBE"+ + "\xBE\xC5\xC5\x155\x155\x2015\x2015\x2020\x2020\x3\x2\x32;\r\x2\x32;\x43"+ + "\\\x61\x61\x63|\xA6\xA6\xB8\xB8\xBE\xBE\xC5\xC5\x155\x155\x2015\x2015"+ + "\x2020\x2020\x4\x2\x43\x43\x63\x63\x4\x2\x44\x44\x64\x64\x4\x2\x45\x45"+ + "\x65\x65\x4\x2\x46\x46\x66\x66\x4\x2GGgg\x4\x2HHhh\x4\x2IIii\x4\x2JJj"+ + "j\x4\x2KKkk\x4\x2LLll\x4\x2MMmm\x4\x2NNnn\x4\x2OOoo\x4\x2PPpp\x4\x2QQ"+ + "qq\x4\x2RRrr\x4\x2SSss\x4\x2TTtt\x4\x2UUuu\x4\x2VVvv\x4\x2WWww\x4\x2X"+ + "Xxx\x4\x2YYyy\x4\x2ZZzz\x4\x2[[{{\x4\x2\\\\||\xA2E\x2\x3\x3\x2\x2\x2\x2"+ + "\x5\x3\x2\x2\x2\x2\a\x3\x2\x2\x2\x2\t\x3\x2\x2\x2\x2\v\x3\x2\x2\x2\x2"+ + "\r\x3\x2\x2\x2\x2\xF\x3\x2\x2\x2\x2\x11\x3\x2\x2\x2\x2\x13\x3\x2\x2\x2"+ + "\x2\x15\x3\x2\x2\x2\x2\x17\x3\x2\x2\x2\x2\x19\x3\x2\x2\x2\x2\x1B\x3\x2"+ + "\x2\x2\x2\x1D\x3\x2\x2\x2\x2\x1F\x3\x2\x2\x2\x2!\x3\x2\x2\x2\x2#\x3\x2"+ + "\x2\x2\x2%\x3\x2\x2\x2\x2\'\x3\x2\x2\x2\x2)\x3\x2\x2\x2\x2+\x3\x2\x2\x2"+ + "\x2-\x3\x2\x2\x2\x2/\x3\x2\x2\x2\x2\x31\x3\x2\x2\x2\x2\x33\x3\x2\x2\x2"+ + "\x2\x35\x3\x2\x2\x2\x2\x37\x3\x2\x2\x2\x2\x39\x3\x2\x2\x2\x2;\x3\x2\x2"+ + "\x2\x2=\x3\x2\x2\x2\x2?\x3\x2\x2\x2\x2\x41\x3\x2\x2\x2\x2\x43\x3\x2\x2"+ + "\x2\x2\x45\x3\x2\x2\x2\x2G\x3\x2\x2\x2\x2I\x3\x2\x2\x2\x2K\x3\x2\x2\x2"+ + "\x2M\x3\x2\x2\x2\x2O\x3\x2\x2\x2\x2Q\x3\x2\x2\x2\x2S\x3\x2\x2\x2\x2U\x3"+ + "\x2\x2\x2\x2W\x3\x2\x2\x2\x2Y\x3\x2\x2\x2\x2[\x3\x2\x2\x2\x2]\x3\x2\x2"+ + "\x2\x2_\x3\x2\x2\x2\x2\x61\x3\x2\x2\x2\x2\x63\x3\x2\x2\x2\x2\x65\x3\x2"+ + "\x2\x2\x2g\x3\x2\x2\x2\x2i\x3\x2\x2\x2\x2k\x3\x2\x2\x2\x2m\x3\x2\x2\x2"+ + "\x2o\x3\x2\x2\x2\x2q\x3\x2\x2\x2\x2s\x3\x2\x2\x2\x2u\x3\x2\x2\x2\x2w\x3"+ + "\x2\x2\x2\x2y\x3\x2\x2\x2\x2{\x3\x2\x2\x2\x2}\x3\x2\x2\x2\x2\x7F\x3\x2"+ + "\x2\x2\x2\x81\x3\x2\x2\x2\x2\x83\x3\x2\x2\x2\x2\x85\x3\x2\x2\x2\x2\x87"+ + "\x3\x2\x2\x2\x2\x89\x3\x2\x2\x2\x2\x8B\x3\x2\x2\x2\x2\x8D\x3\x2\x2\x2"+ + "\x2\x8F\x3\x2\x2\x2\x2\x91\x3\x2\x2\x2\x2\x93\x3\x2\x2\x2\x2\x95\x3\x2"+ + "\x2\x2\x2\x97\x3\x2\x2\x2\x2\x99\x3\x2\x2\x2\x2\x9B\x3\x2\x2\x2\x2\x9D"+ + "\x3\x2\x2\x2\x2\x9F\x3\x2\x2\x2\x2\xA1\x3\x2\x2\x2\x2\xA3\x3\x2\x2\x2"+ + "\x2\xA5\x3\x2\x2\x2\x2\xA7\x3\x2\x2\x2\x2\xA9\x3\x2\x2\x2\x2\xAB\x3\x2"+ + "\x2\x2\x2\xAD\x3\x2\x2\x2\x2\xAF\x3\x2\x2\x2\x2\xB1\x3\x2\x2\x2\x2\xB3"+ + "\x3\x2\x2\x2\x2\xB5\x3\x2\x2\x2\x2\xB7\x3\x2\x2\x2\x2\xB9\x3\x2\x2\x2"+ + "\x2\xBB\x3\x2\x2\x2\x2\xBD\x3\x2\x2\x2\x2\xBF\x3\x2\x2\x2\x2\xC1\x3\x2"+ + "\x2\x2\x2\xC3\x3\x2\x2\x2\x2\xC5\x3\x2\x2\x2\x2\xC7\x3\x2\x2\x2\x2\xC9"+ + "\x3\x2\x2\x2\x2\xCB\x3\x2\x2\x2\x2\xCD\x3\x2\x2\x2\x2\xCF\x3\x2\x2\x2"+ + "\x2\xD1\x3\x2\x2\x2\x2\xD3\x3\x2\x2\x2\x2\xD5\x3\x2\x2\x2\x2\xD7\x3\x2"+ + "\x2\x2\x2\xD9\x3\x2\x2\x2\x2\xDB\x3\x2\x2\x2\x2\xDD\x3\x2\x2\x2\x2\xDF"+ + "\x3\x2\x2\x2\x2\xE1\x3\x2\x2\x2\x2\xE3\x3\x2\x2\x2\x2\xE5\x3\x2\x2\x2"+ + "\x2\xE7\x3\x2\x2\x2\x2\xE9\x3\x2\x2\x2\x2\xEB\x3\x2\x2\x2\x2\xED\x3\x2"+ + "\x2\x2\x2\xEF\x3\x2\x2\x2\x2\xF1\x3\x2\x2\x2\x2\xF3\x3\x2\x2\x2\x2\xF5"+ + "\x3\x2\x2\x2\x2\xF7\x3\x2\x2\x2\x2\xF9\x3\x2\x2\x2\x2\xFB\x3\x2\x2\x2"+ + "\x2\xFD\x3\x2\x2\x2\x2\xFF\x3\x2\x2\x2\x2\x101\x3\x2\x2\x2\x2\x103\x3"+ + "\x2\x2\x2\x2\x105\x3\x2\x2\x2\x2\x107\x3\x2\x2\x2\x2\x109\x3\x2\x2\x2"+ + "\x2\x10B\x3\x2\x2\x2\x2\x10D\x3\x2\x2\x2\x2\x10F\x3\x2\x2\x2\x2\x111\x3"+ + "\x2\x2\x2\x2\x113\x3\x2\x2\x2\x2\x115\x3\x2\x2\x2\x2\x117\x3\x2\x2\x2"+ + "\x2\x119\x3\x2\x2\x2\x2\x11B\x3\x2\x2\x2\x2\x11D\x3\x2\x2\x2\x2\x11F\x3"+ + "\x2\x2\x2\x2\x121\x3\x2\x2\x2\x2\x123\x3\x2\x2\x2\x2\x125\x3\x2\x2\x2"+ + "\x2\x127\x3\x2\x2\x2\x2\x129\x3\x2\x2\x2\x2\x12B\x3\x2\x2\x2\x2\x12D\x3"+ + "\x2\x2\x2\x2\x12F\x3\x2\x2\x2\x2\x131\x3\x2\x2\x2\x2\x133\x3\x2\x2\x2"+ + "\x2\x135\x3\x2\x2\x2\x2\x137\x3\x2\x2\x2\x2\x139\x3\x2\x2\x2\x2\x13B\x3"+ + "\x2\x2\x2\x2\x13D\x3\x2\x2\x2\x2\x13F\x3\x2\x2\x2\x2\x141\x3\x2\x2\x2"+ + "\x2\x143\x3\x2\x2\x2\x2\x145\x3\x2\x2\x2\x2\x147\x3\x2\x2\x2\x2\x149\x3"+ + "\x2\x2\x2\x2\x14B\x3\x2\x2\x2\x2\x14D\x3\x2\x2\x2\x2\x14F\x3\x2\x2\x2"+ + "\x2\x151\x3\x2\x2\x2\x2\x153\x3\x2\x2\x2\x2\x155\x3\x2\x2\x2\x2\x157\x3"+ + "\x2\x2\x2\x2\x159\x3\x2\x2\x2\x2\x15B\x3\x2\x2\x2\x2\x15D\x3\x2\x2\x2"+ + "\x2\x15F\x3\x2\x2\x2\x2\x161\x3\x2\x2\x2\x2\x163\x3\x2\x2\x2\x2\x165\x3"+ + "\x2\x2\x2\x2\x167\x3\x2\x2\x2\x2\x169\x3\x2\x2\x2\x2\x16B\x3\x2\x2\x2"+ + "\x2\x16D\x3\x2\x2\x2\x2\x16F\x3\x2\x2\x2\x2\x171\x3\x2\x2\x2\x2\x173\x3"+ + "\x2\x2\x2\x2\x175\x3\x2\x2\x2\x2\x177\x3\x2\x2\x2\x2\x179\x3\x2\x2\x2"+ + "\x2\x17B\x3\x2\x2\x2\x2\x17D\x3\x2\x2\x2\x2\x17F\x3\x2\x2\x2\x2\x181\x3"+ + "\x2\x2\x2\x2\x183\x3\x2\x2\x2\x2\x185\x3\x2\x2\x2\x2\x187\x3\x2\x2\x2"+ + "\x2\x189\x3\x2\x2\x2\x2\x18B\x3\x2\x2\x2\x2\x18D\x3\x2\x2\x2\x2\x18F\x3"+ + "\x2\x2\x2\x2\x191\x3\x2\x2\x2\x2\x193\x3\x2\x2\x2\x2\x195\x3\x2\x2\x2"+ + "\x2\x197\x3\x2\x2\x2\x2\x199\x3\x2\x2\x2\x2\x19B\x3\x2\x2\x2\x2\x19D\x3"+ + "\x2\x2\x2\x2\x19F\x3\x2\x2\x2\x2\x1A1\x3\x2\x2\x2\x2\x1A3\x3\x2\x2\x2"+ + "\x2\x1A5\x3\x2\x2\x2\x2\x1A7\x3\x2\x2\x2\x2\x1A9\x3\x2\x2\x2\x2\x1AB\x3"+ + "\x2\x2\x2\x2\x1AD\x3\x2\x2\x2\x2\x1AF\x3\x2\x2\x2\x2\x1B1\x3\x2\x2\x2"+ + "\x2\x1B3\x3\x2\x2\x2\x2\x1B5\x3\x2\x2\x2\x2\x1B7\x3\x2\x2\x2\x2\x1B9\x3"+ + "\x2\x2\x2\x2\x1BB\x3\x2\x2\x2\x2\x1BD\x3\x2\x2\x2\x2\x1BF\x3\x2\x2\x2"+ + "\x2\x1C1\x3\x2\x2\x2\x2\x1C3\x3\x2\x2\x2\x2\x1C5\x3\x2\x2\x2\x2\x1C7\x3"+ + "\x2\x2\x2\x2\x1C9\x3\x2\x2\x2\x2\x1CD\x3\x2\x2\x2\x2\x1DB\x3\x2\x2\x2"+ + "\x2\x21F\x3\x2\x2\x2\x2\x221\x3\x2\x2\x2\x2\x223\x3\x2\x2\x2\x2\x225\x3"+ + "\x2\x2\x2\x2\x227\x3\x2\x2\x2\x2\x229\x3\x2\x2\x2\x2\x22B\x3\x2\x2\x2"+ + "\x2\x267\x3\x2\x2\x2\x3\x269\x3\x2\x2\x2\x5\x26D\x3\x2\x2\x2\a\x271\x3"+ + "\x2\x2\x2\t\x277\x3\x2\x2\x2\v\x27D\x3\x2\x2\x2\r\x283\x3\x2\x2\x2\xF"+ + "\x288\x3\x2\x2\x2\x11\x28E\x3\x2\x2\x2\x13\x293\x3\x2\x2\x2\x15\x298\x3"+ + "\x2\x2\x2\x17\x29D\x3\x2\x2\x2\x19\x2A4\x3\x2\x2\x2\x1B\x2A9\x3\x2\x2"+ + "\x2\x1D\x2B1\x3\x2\x2\x2\x1F\x2B9\x3\x2\x2\x2!\x2BE\x3\x2\x2\x2#\x2C3"+ + "\x3\x2\x2\x2%\x2CC\x3\x2\x2\x2\'\x2D1\x3\x2\x2\x2)\x2D7\x3\x2\x2\x2+\x2DD"+ + "\x3\x2\x2\x2-\x2E6\x3\x2\x2\x2/\x2EB\x3\x2\x2\x2\x31\x2EF\x3\x2\x2\x2"+ + "\x33\x2F6\x3\x2\x2\x2\x35\x2FA\x3\x2\x2\x2\x37\x301\x3\x2\x2\x2\x39\x305"+ + "\x3\x2\x2\x2;\x30A\x3\x2\x2\x2=\x313\x3\x2\x2\x2?\x31B\x3\x2\x2\x2\x41"+ + "\x320\x3\x2\x2\x2\x43\x326\x3\x2\x2\x2\x45\x32B\x3\x2\x2\x2G\x332\x3\x2"+ + "\x2\x2I\x337\x3\x2\x2\x2K\x33D\x3\x2\x2\x2M\x341\x3\x2\x2\x2O\x348\x3"+ + "\x2\x2\x2Q\x34A\x3\x2\x2\x2S\x34C\x3\x2\x2\x2U\x34E\x3\x2\x2\x2W\x350"+ + "\x3\x2\x2\x2Y\x352\x3\x2\x2\x2[\x354\x3\x2\x2\x2]\x356\x3\x2\x2\x2_\x358"+ + "\x3\x2\x2\x2\x61\x35A\x3\x2\x2\x2\x63\x35C\x3\x2\x2\x2\x65\x363\x3\x2"+ + "\x2\x2g\x36D\x3\x2\x2\x2i\x373\x3\x2\x2\x2k\x377\x3\x2\x2\x2m\x381\x3"+ + "\x2\x2\x2o\x388\x3\x2\x2\x2q\x38B\x3\x2\x2\x2s\x391\x3\x2\x2\x2u\x398"+ + "\x3\x2\x2\x2w\x3A0\x3\x2\x2\x2y\x3A6\x3\x2\x2\x2{\x3AC\x3\x2\x2\x2}\x3B1"+ + "\x3\x2\x2\x2\x7F\x3B6\x3\x2\x2\x2\x81\x3BB\x3\x2\x2\x2\x83\x3C1\x3\x2"+ + "\x2\x2\x85\x3C7\x3\x2\x2\x2\x87\x3CD\x3\x2\x2\x2\x89\x3D6\x3\x2\x2\x2"+ + "\x8B\x3DB\x3\x2\x2\x2\x8D\x3E3\x3\x2\x2\x2\x8F\x3EB\x3\x2\x2\x2\x91\x3F3"+ + "\x3\x2\x2\x2\x93\x3FB\x3\x2\x2\x2\x95\x402\x3\x2\x2\x2\x97\x409\x3\x2"+ + "\x2\x2\x99\x410\x3\x2\x2\x2\x9B\x417\x3\x2\x2\x2\x9D\x421\x3\x2\x2\x2"+ + "\x9F\x42B\x3\x2\x2\x2\xA1\x432\x3\x2\x2\x2\xA3\x439\x3\x2\x2\x2\xA5\x440"+ + "\x3\x2\x2\x2\xA7\x447\x3\x2\x2\x2\xA9\x44B\x3\x2\x2\x2\xAB\x44E\x3\x2"+ + "\x2\x2\xAD\x455\x3\x2\x2\x2\xAF\x45A\x3\x2\x2\x2\xB1\x45F\x3\x2\x2\x2"+ + "\xB3\x466\x3\x2\x2\x2\xB5\x46C\x3\x2\x2\x2\xB7\x475\x3\x2\x2\x2\xB9\x482"+ + "\x3\x2\x2\x2\xBB\x489\x3\x2\x2\x2\xBD\x496\x3\x2\x2\x2\xBF\x4A1\x3\x2"+ + "\x2\x2\xC1\x4A9\x3\x2\x2\x2\xC3\x4B2\x3\x2\x2\x2\xC5\x4BB\x3\x2\x2\x2"+ + "\xC7\x4BF\x3\x2\x2\x2\xC9\x4C4\x3\x2\x2\x2\xCB\x4C8\x3\x2\x2\x2\xCD\x4CE"+ + "\x3\x2\x2\x2\xCF\x4D4\x3\x2\x2\x2\xD1\x4DA\x3\x2\x2\x2\xD3\x4E2\x3\x2"+ + "\x2\x2\xD5\x4EB\x3\x2\x2\x2\xD7\x4F9\x3\x2\x2\x2\xD9\x507\x3\x2\x2\x2"+ + "\xDB\x510\x3\x2\x2\x2\xDD\x516\x3\x2\x2\x2\xDF\x51D\x3\x2\x2\x2\xE1\x521"+ + "\x3\x2\x2\x2\xE3\x52A\x3\x2\x2\x2\xE5\x52E\x3\x2\x2\x2\xE7\x535\x3\x2"+ + "\x2\x2\xE9\x53B\x3\x2\x2\x2\xEB\x540\x3\x2\x2\x2\xED\x543\x3\x2\x2\x2"+ + "\xEF\x547\x3\x2\x2\x2\xF1\x552\x3\x2\x2\x2\xF3\x555\x3\x2\x2\x2\xF5\x55B"+ + "\x3\x2\x2\x2\xF7\x55E\x3\x2\x2\x2\xF9\x566\x3\x2\x2\x2\xFB\x56B\x3\x2"+ + "\x2\x2\xFD\x570\x3\x2\x2\x2\xFF\x575\x3\x2\x2\x2\x101\x579\x3\x2\x2\x2"+ + "\x103\x57D\x3\x2\x2\x2\x105\x582\x3\x2\x2\x2\x107\x58D\x3\x2\x2\x2\x109"+ + "\x597\x3\x2\x2\x2\x10B\x5A2\x3\x2\x2\x2\x10D\x5B2\x3\x2\x2\x2\x10F\x5B7"+ + "\x3\x2\x2\x2\x111\x5BA\x3\x2\x2\x2\x113\x5BE\x3\x2\x2\x2\x115\x5C2\x3"+ + "\x2\x2\x2\x117\x5C7\x3\x2\x2\x2\x119\x5CB\x3\x2\x2\x2\x11B\x5CF\x3\x2"+ + "\x2\x2\x11D\x5D7\x3\x2\x2\x2\x11F\x5DC\x3\x2\x2\x2\x121\x5DF\x3\x2\x2"+ + "\x2\x123\x5E8\x3\x2\x2\x2\x125\x5F7\x3\x2\x2\x2\x127\x5FC\x3\x2\x2\x2"+ + "\x129\x605\x3\x2\x2\x2\x12B\x611\x3\x2\x2\x2\x12D\x621\x3\x2\x2\x2\x12F"+ + "\x630\x3\x2\x2\x2\x131\x646\x3\x2\x2\x2\x133\x649\x3\x2\x2\x2\x135\x650"+ + "\x3\x2\x2\x2\x137\x65B\x3\x2\x2\x2\x139\x664\x3\x2\x2\x2\x13B\x66A\x3"+ + "\x2\x2\x2\x13D\x672\x3\x2\x2\x2\x13F\x67F\x3\x2\x2\x2\x141\x68C\x3\x2"+ + "\x2\x2\x143\x699\x3\x2\x2\x2\x145\x6A1\x3\x2\x2\x2\x147\x6A8\x3\x2\x2"+ + "\x2\x149\x6AC\x3\x2\x2\x2\x14B\x6B3\x3\x2\x2\x2\x14D\x6BE\x3\x2\x2\x2"+ + "\x14F\x6C3\x3\x2\x2\x2\x151\x6CE\x3\x2\x2\x2\x153\x6D4\x3\x2\x2\x2\x155"+ + "\x6D8\x3\x2\x2\x2\x157\x6DE\x3\x2\x2\x2\x159\x6E5\x3\x2\x2\x2\x15B\x6EC"+ + "\x3\x2\x2\x2\x15D\x6F1\x3\x2\x2\x2\x15F\x6F6\x3\x2\x2\x2\x161\x6FD\x3"+ + "\x2\x2\x2\x163\x701\x3\x2\x2\x2\x165\x708\x3\x2\x2\x2\x167\x70F\x3\x2"+ + "\x2\x2\x169\x713\x3\x2\x2\x2\x16B\x71A\x3\x2\x2\x2\x16D\x71F\x3\x2\x2"+ + "\x2\x16F\x724\x3\x2\x2\x2\x171\x72B\x3\x2\x2\x2\x173\x72F\x3\x2\x2\x2"+ + "\x175\x733\x3\x2\x2\x2\x177\x738\x3\x2\x2\x2\x179\x73D\x3\x2\x2\x2\x17B"+ + "\x740\x3\x2\x2\x2\x17D\x745\x3\x2\x2\x2\x17F\x74A\x3\x2\x2\x2\x181\x751"+ + "\x3\x2\x2\x2\x183\x758\x3\x2\x2\x2\x185\x75E\x3\x2\x2\x2\x187\x766\x3"+ + "\x2\x2\x2\x189\x76E\x3\x2\x2\x2\x18B\x773\x3\x2\x2\x2\x18D\x779\x3\x2"+ + "\x2\x2\x18F\x77F\x3\x2\x2\x2\x191\x784\x3\x2\x2\x2\x193\x78F\x3\x2\x2"+ + "\x2\x195\x795\x3\x2\x2\x2\x197\x799\x3\x2\x2\x2\x199\x79C\x3\x2\x2\x2"+ + "\x19B\x79E\x3\x2\x2\x2\x19D\x7A0\x3\x2\x2\x2\x19F\x7A6\x3\x2\x2\x2\x1A1"+ + "\x7A8\x3\x2\x2\x2\x1A3\x7AE\x3\x2\x2\x2\x1A5\x7B0\x3\x2\x2\x2\x1A7\x7B2"+ + "\x3\x2\x2\x2\x1A9\x7B4\x3\x2\x2\x2\x1AB\x7B6\x3\x2\x2\x2\x1AD\x7BC\x3"+ + "\x2\x2\x2\x1AF\x7BE\x3\x2\x2\x2\x1B1\x7C0\x3\x2\x2\x2\x1B3\x7C2\x3\x2"+ + "\x2\x2\x1B5\x7C7\x3\x2\x2\x2\x1B7\x7D4\x3\x2\x2\x2\x1B9\x7E2\x3\x2\x2"+ + "\x2\x1BB\x7F4\x3\x2\x2\x2\x1BD\x813\x3\x2\x2\x2\x1BF\x836\x3\x2\x2\x2"+ + "\x1C1\x838\x3\x2\x2\x2\x1C3\x83A\x3\x2\x2\x2\x1C5\x845\x3\x2\x2\x2\x1C7"+ + "\x850\x3\x2\x2\x2\x1C9\x862\x3\x2\x2\x2\x1CB\x874\x3\x2\x2\x2\x1CD\x876"+ + "\x3\x2\x2\x2\x1CF\x87A\x3\x2\x2\x2\x1D1\x87C\x3\x2\x2\x2\x1D3\x87E\x3"+ + "\x2\x2\x2\x1D5\x887\x3\x2\x2\x2\x1D7\x889\x3\x2\x2\x2\x1D9\x88C\x3\x2"+ + "\x2\x2\x1DB\x890\x3\x2\x2\x2\x1DD\x89C\x3\x2\x2\x2\x1DF\x89E\x3\x2\x2"+ + "\x2\x1E1\x8AC\x3\x2\x2\x2\x1E3\x8AF\x3\x2\x2\x2\x1E5\x8B9\x3\x2\x2\x2"+ + "\x1E7\x8C7\x3\x2\x2\x2\x1E9\x8D4\x3\x2\x2\x2\x1EB\x8F3\x3\x2\x2\x2\x1ED"+ + "\x8F6\x3\x2\x2\x2\x1EF\x8FD\x3\x2\x2\x2\x1F1\x909\x3\x2\x2\x2\x1F3\x911"+ + "\x3\x2\x2\x2\x1F5\x91A\x3\x2\x2\x2\x1F7\x920\x3\x2\x2\x2\x1F9\x926\x3"+ + "\x2\x2\x2\x1FB\x92A\x3\x2\x2\x2\x1FD\x92F\x3\x2\x2\x2\x1FF\x934\x3\x2"+ + "\x2\x2\x201\x93B\x3\x2\x2\x2\x203\x945\x3\x2\x2\x2\x205\x94D\x3\x2\x2"+ + "\x2\x207\x956\x3\x2\x2\x2\x209\x95F\x3\x2\x2\x2\x20B\x963\x3\x2\x2\x2"+ + "\x20D\x967\x3\x2\x2\x2\x20F\x96B\x3\x2\x2\x2\x211\x96F\x3\x2\x2\x2\x213"+ + "\x973\x3\x2\x2\x2\x215\x977\x3\x2\x2\x2\x217\x97B\x3\x2\x2\x2\x219\x97F"+ + "\x3\x2\x2\x2\x21B\x983\x3\x2\x2\x2\x21D\x987\x3\x2\x2\x2\x21F\x98E\x3"+ + "\x2\x2\x2\x221\x990\x3\x2\x2\x2\x223\x992\x3\x2\x2\x2\x225\x994\x3\x2"+ + "\x2\x2\x227\x9A5\x3\x2\x2\x2\x229\x9AA\x3\x2\x2\x2\x22B\x9B9\x3\x2\x2"+ + "\x2\x22D\x9D9\x3\x2\x2\x2\x22F\x9DB\x3\x2\x2\x2\x231\x9DD\x3\x2\x2\x2"+ + "\x233\x9DF\x3\x2\x2\x2\x235\x9E1\x3\x2\x2\x2\x237\x9E3\x3\x2\x2\x2\x239"+ + "\x9E5\x3\x2\x2\x2\x23B\x9E7\x3\x2\x2\x2\x23D\x9E9\x3\x2\x2\x2\x23F\x9EB"+ + "\x3\x2\x2\x2\x241\x9ED\x3\x2\x2\x2\x243\x9EF\x3\x2\x2\x2\x245\x9F1\x3"+ + "\x2\x2\x2\x247\x9F3\x3\x2\x2\x2\x249\x9F5\x3\x2\x2\x2\x24B\x9F7\x3\x2"+ + "\x2\x2\x24D\x9F9\x3\x2\x2\x2\x24F\x9FB\x3\x2\x2\x2\x251\x9FD\x3\x2\x2"+ + "\x2\x253\x9FF\x3\x2\x2\x2\x255\xA01\x3\x2\x2\x2\x257\xA03\x3\x2\x2\x2"+ + "\x259\xA05\x3\x2\x2\x2\x25B\xA07\x3\x2\x2\x2\x25D\xA09\x3\x2\x2\x2\x25F"+ + "\xA0B\x3\x2\x2\x2\x261\xA0D\x3\x2\x2\x2\x263\xA0F\x3\x2\x2\x2\x265\xA11"+ + "\x3\x2\x2\x2\x267\xA13\x3\x2\x2\x2\x269\x26A\x5\x233\x11A\x2\x26A\x26B"+ + "\x5\x235\x11B\x2\x26B\x26C\x5\x257\x12C\x2\x26C\x4\x3\x2\x2\x2\x26D\x26E"+ + "\x5\x233\x11A\x2\x26E\x26F\x5\x24D\x127\x2\x26F\x270\x5\x263\x132\x2\x270"+ + "\x6\x3\x2\x2\x2\x271\x272\x5\x233\x11A\x2\x272\x273\x5\x255\x12B\x2\x273"+ + "\x274\x5\x255\x12B\x2\x274\x275\x5\x233\x11A\x2\x275\x276\x5\x263\x132"+ + "\x2\x276\b\x3\x2\x2\x2\x277\x278\x5\x237\x11C\x2\x278\x279\x5\x235\x11B"+ + "\x2\x279\x27A\x5\x24F\x128\x2\x27A\x27B\x5\x24F\x128\x2\x27B\x27C\x5\x249"+ + "\x125\x2\x27C\n\x3\x2\x2\x2\x27D\x27E\x5\x237\x11C\x2\x27E\x27F\x5\x235"+ + "\x11B\x2\x27F\x280\x5\x263\x132\x2\x280\x281\x5\x259\x12D\x2\x281\x282"+ + "\x5\x23B\x11E\x2\x282\f\x3\x2\x2\x2\x283\x284\x5\x237\x11C\x2\x284\x285"+ + "\x5\x237\x11C\x2\x285\x286\x5\x25B\x12E\x2\x286\x287\x5\x255\x12B\x2\x287"+ + "\xE\x3\x2\x2\x2\x288\x289\x5\x237\x11C\x2\x289\x28A\x5\x239\x11D\x2\x28A"+ + "\x28B\x5\x233\x11A\x2\x28B\x28C\x5\x259\x12D\x2\x28C\x28D\x5\x23B\x11E"+ + "\x2\x28D\x10\x3\x2\x2\x2\x28E\x28F\x5\x237\x11C\x2\x28F\x290\x5\x239\x11D"+ + "\x2\x290\x291\x5\x235\x11B\x2\x291\x292\x5\x249\x125\x2\x292\x12\x3\x2"+ + "\x2\x2\x293\x294\x5\x237\x11C\x2\x294\x295\x5\x239\x11D\x2\x295\x296\x5"+ + "\x23B\x11E\x2\x296\x297\x5\x237\x11C\x2\x297\x14\x3\x2\x2\x2\x298\x299"+ + "\x5\x237\x11C\x2\x299\x29A\x5\x243\x122\x2\x29A\x29B\x5\x24D\x127\x2\x29B"+ + "\x29C\x5\x259\x12D\x2\x29C\x16\x3\x2\x2\x2\x29D\x29E\x5\x237\x11C\x2\x29E"+ + "\x29F\x5\x243\x122\x2\x29F\x2A0\x5\x255\x12B\x2\x2A0\x2A1\x5\x237\x11C"+ + "\x2\x2A1\x2A2\x5\x249\x125\x2\x2A2\x2A3\x5\x23B\x11E\x2\x2A3\x18\x3\x2"+ + "\x2\x2\x2A4\x2A5\x5\x237\x11C\x2\x2A5\x2A6\x5\x249\x125\x2\x2A6\x2A7\x5"+ + "\x24D\x127\x2\x2A7\x2A8\x5\x23F\x120\x2\x2A8\x1A\x3\x2\x2\x2\x2A9\x2AA"+ + "\x5\x237\x11C\x2\x2AA\x2AB\x5\x249\x125\x2\x2AB\x2AC\x5\x24D\x127\x2\x2AC"+ + "\x2AD\x5\x23F\x120\x2\x2AD\x2AE\x5\x249\x125\x2\x2AE\x2AF\x5\x24D\x127"+ + "\x2\x2AF\x2B0\x5\x23F\x120\x2\x2B0\x1C\x3\x2\x2\x2\x2B1\x2B2\x5\x237\x11C"+ + "\x2\x2B2\x2B3\x5\x249\x125\x2\x2B3\x2B4\x5\x24D\x127\x2\x2B4\x2B5\x5\x23F"+ + "\x120\x2\x2B5\x2B6\x5\x251\x129\x2\x2B6\x2B7\x5\x259\x12D\x2\x2B7\x2B8"+ + "\x5\x255\x12B\x2\x2B8\x1E\x3\x2\x2\x2\x2B9\x2BA\x5\x237\x11C\x2\x2BA\x2BB"+ + "\x5\x257\x12C\x2\x2BB\x2BC\x5\x24D\x127\x2\x2BC\x2BD\x5\x23F\x120\x2\x2BD"+ + " \x3\x2\x2\x2\x2BE\x2BF\x5\x237\x11C\x2\x2BF\x2C0\x5\x257\x12C\x2\x2C0"+ + "\x2C1\x5\x259\x12D\x2\x2C1\x2C2\x5\x255\x12B\x2\x2C2\"\x3\x2\x2\x2\x2C3"+ + "\x2C4\x5\x237\x11C\x2\x2C4\x2C5\x5\x25B\x12E\x2\x2C5\x2C6\x5\x255\x12B"+ + "\x2\x2C6\x2C7\x5\x255\x12B\x2\x2C7\x2C8\x5\x23B\x11E\x2\x2C8\x2C9\x5\x24D"+ + "\x127\x2\x2C9\x2CA\x5\x237\x11C\x2\x2CA\x2CB\x5\x263\x132\x2\x2CB$\x3"+ + "\x2\x2\x2\x2CC\x2CD\x5\x237\x11C\x2\x2CD\x2CE\x5\x25D\x12F\x2\x2CE\x2CF"+ + "\x5\x233\x11A\x2\x2CF\x2D0\x5\x255\x12B\x2\x2D0&\x3\x2\x2\x2\x2D1\x2D2"+ + "\x5\x237\x11C\x2\x2D2\x2D3\x5\x25D\x12F\x2\x2D3\x2D4\x5\x23B\x11E\x2\x2D4"+ + "\x2D5\x5\x255\x12B\x2\x2D5\x2D6\x5\x255\x12B\x2\x2D6(\x3\x2\x2\x2\x2D7"+ + "\x2D8\x5\x239\x11D\x2\x2D8\x2D9\x5\x23B\x11E\x2\x2D9\x2DA\x5\x235\x11B"+ + "\x2\x2DA\x2DB\x5\x25B\x12E\x2\x2DB\x2DC\x5\x23F\x120\x2\x2DC*\x3\x2\x2"+ + "\x2\x2DD\x2DE\x5\x239\x11D\x2\x2DE\x2DF\x5\x24F\x128\x2\x2DF\x2E0\x5\x23B"+ + "\x11E\x2\x2E0\x2E1\x5\x25D\x12F\x2\x2E1\x2E2\x5\x23B\x11E\x2\x2E2\x2E3"+ + "\x5\x24D\x127\x2\x2E3\x2E4\x5\x259\x12D\x2\x2E4\x2E5\x5\x257\x12C\x2\x2E5"+ + ",\x3\x2\x2\x2\x2E6\x2E7\x5\x23B\x11E\x2\x2E7\x2E8\x5\x261\x131\x2\x2E8"+ + "\x2E9\x5\x243\x122\x2\x2E9\x2EA\x5\x259\x12D\x2\x2EA.\x3\x2\x2\x2\x2EB"+ + "\x2EC\x5\x23D\x11F\x2\x2EC\x2ED\x5\x243\x122\x2\x2ED\x2EE\x5\x261\x131"+ + "\x2\x2EE\x30\x3\x2\x2\x2\x2EF\x2F0\x5\x243\x122\x2\x2F0\x2F1\x5\x24D\x127"+ + "\x2\x2F1\x2F2\x5\x251\x129\x2\x2F2\x2F3\x5\x25B\x12E\x2\x2F3\x2F4\x5\x259"+ + "\x12D\x2\x2F4\x2F5\x5\x235\x11B\x2\x2F5\x32\x3\x2\x2\x2\x2F6\x2F7\x5\x243"+ + "\x122\x2\x2F7\x2F8\x5\x24D\x127\x2\x2F8\x2F9\x5\x259\x12D\x2\x2F9\x34"+ + "\x3\x2\x2\x2\x2FA\x2FB\x5\x249\x125\x2\x2FB\x2FC\x5\x235\x11B\x2\x2FC"+ + "\x2FD\x5\x24F\x128\x2\x2FD\x2FE\x5\x25B\x12E\x2\x2FE\x2FF\x5\x24D\x127"+ + "\x2\x2FF\x300\x5\x239\x11D\x2\x300\x36\x3\x2\x2\x2\x301\x302\x5\x249\x125"+ + "\x2\x302\x303\x5\x23B\x11E\x2\x303\x304\x5\x24D\x127\x2\x304\x38\x3\x2"+ + "\x2\x2\x305\x306\x5\x249\x125\x2\x306\x307\x5\x23B\x11E\x2\x307\x308\x5"+ + "\x24D\x127\x2\x308\x309\x5\x235\x11B\x2\x309:\x3\x2\x2\x2\x30A\x30B\x5"+ + "\x249\x125\x2\x30B\x30C\x5\x24F\x128\x2\x30C\x30D\x5\x24D\x127\x2\x30D"+ + "\x30E\x5\x23F\x120\x2\x30E\x30F\x5\x249\x125\x2\x30F\x310\x5\x24F\x128"+ + "\x2\x310\x311\x5\x24D\x127\x2\x311\x312\x5\x23F\x120\x2\x312<\x3\x2\x2"+ + "\x2\x313\x314\x5\x249\x125\x2\x314\x315\x5\x24F\x128\x2\x315\x316\x5\x24D"+ + "\x127\x2\x316\x317\x5\x23F\x120\x2\x317\x318\x5\x251\x129\x2\x318\x319"+ + "\x5\x259\x12D\x2\x319\x31A\x5\x255\x12B\x2\x31A>\x3\x2\x2\x2\x31B\x31C"+ + "\x5\x24B\x126\x2\x31C\x31D\x5\x243\x122\x2\x31D\x31E\x5\x239\x11D\x2\x31E"+ + "\x31F\x5\x235\x11B\x2\x31F@\x3\x2\x2\x2\x320\x321\x5\x24B\x126\x2\x321"+ + "\x322\x5\x243\x122\x2\x322\x323\x5\x239\x11D\x2\x323\x324\x5\x235\x11B"+ + "\x2\x324\x325\a&\x2\x2\x325\x42\x3\x2\x2\x2\x326\x327\x5\x24B\x126\x2"+ + "\x327\x328\x5\x243\x122\x2\x328\x329\x5\x239\x11D\x2\x329\x32A\a&\x2\x2"+ + "\x32A\x44\x3\x2\x2\x2\x32B\x32C\x5\x24F\x128\x2\x32C\x32D\x5\x251\x129"+ + "\x2\x32D\x32E\x5\x259\x12D\x2\x32E\x32F\x5\x243\x122\x2\x32F\x330\x5\x24F"+ + "\x128\x2\x330\x331\x5\x24D\x127\x2\x331\x46\x3\x2\x2\x2\x332\x333\x5\x251"+ + "\x129\x2\x333\x334\x5\x257\x12C\x2\x334\x335\x5\x23B\x11E\x2\x335\x336"+ + "\x5\x259\x12D\x2\x336H\x3\x2\x2\x2\x337\x338\x5\x257\x12C\x2\x338\x339"+ + "\x5\x237\x11C\x2\x339\x33A\x5\x233\x11A\x2\x33A\x33B\x5\x249\x125\x2\x33B"+ + "\x33C\x5\x23B\x11E\x2\x33CJ\x3\x2\x2\x2\x33D\x33E\x5\x257\x12C\x2\x33E"+ + "\x33F\x5\x23F\x120\x2\x33F\x340\x5\x24D\x127\x2\x340L\x3\x2\x2\x2\x341"+ + "\x342\x5\x25B\x12E\x2\x342\x343\x5\x235\x11B\x2\x343\x344\x5\x24F\x128"+ + "\x2\x344\x345\x5\x25B\x12E\x2\x345\x346\x5\x24D\x127\x2\x346\x347\x5\x239"+ + "\x11D\x2\x347N\x3\x2\x2\x2\x348\x349\a.\x2\x2\x349P\x3\x2\x2\x2\x34A\x34B"+ + "\a<\x2\x2\x34BR\x3\x2\x2\x2\x34C\x34D\a=\x2\x2\x34DT\x3\x2\x2\x2\x34E"+ + "\x34F\a#\x2\x2\x34FV\x3\x2\x2\x2\x350\x351\a\x30\x2\x2\x351X\x3\x2\x2"+ + "\x2\x352\x353\a%\x2\x2\x353Z\x3\x2\x2\x2\x354\x355\a\x42\x2\x2\x355\\"+ + "\x3\x2\x2\x2\x356\x357\a\'\x2\x2\x357^\x3\x2\x2\x2\x358\x359\a&\x2\x2"+ + "\x359`\x3\x2\x2\x2\x35A\x35B\a(\x2\x2\x35B\x62\x3\x2\x2\x2\x35C\x35D\x5"+ + "\x233\x11A\x2\x35D\x35E\x5\x237\x11C\x2\x35E\x35F\x5\x237\x11C\x2\x35F"+ + "\x360\x5\x23B\x11E\x2\x360\x361\x5\x257\x12C\x2\x361\x362\x5\x257\x12C"+ + "\x2\x362\x64\x3\x2\x2\x2\x363\x364\x5\x233\x11A\x2\x364\x365\x5\x239\x11D"+ + "\x2\x365\x366\x5\x239\x11D\x2\x366\x367\x5\x255\x12B\x2\x367\x368\x5\x23B"+ + "\x11E\x2\x368\x369\x5\x257\x12C\x2\x369\x36A\x5\x257\x12C\x2\x36A\x36B"+ + "\x5\x24F\x128\x2\x36B\x36C\x5\x23D\x11F\x2\x36C\x66\x3\x2\x2\x2\x36D\x36E"+ + "\x5\x233\x11A\x2\x36E\x36F\x5\x249\x125\x2\x36F\x370\x5\x243\x122\x2\x370"+ + "\x371\x5\x233\x11A\x2\x371\x372\x5\x257\x12C\x2\x372h\x3\x2\x2\x2\x373"+ + "\x374\x5\x233\x11A\x2\x374\x375\x5\x24D\x127\x2\x375\x376\x5\x239\x11D"+ + "\x2\x376j\x3\x2\x2\x2\x377\x378\x5\x233\x11A\x2\x378\x379\x5\x259\x12D"+ + "\x2\x379\x37A\x5\x259\x12D\x2\x37A\x37B\x5\x255\x12B\x2\x37B\x37C\x5\x243"+ + "\x122\x2\x37C\x37D\x5\x235\x11B\x2\x37D\x37E\x5\x25B\x12E\x2\x37E\x37F"+ + "\x5\x259\x12D\x2\x37F\x380\x5\x23B\x11E\x2\x380l\x3\x2\x2\x2\x381\x382"+ + "\x5\x233\x11A\x2\x382\x383\x5\x251\x129\x2\x383\x384\x5\x251\x129\x2\x384"+ + "\x385\x5\x23B\x11E\x2\x385\x386\x5\x24D\x127\x2\x386\x387\x5\x239\x11D"+ + "\x2\x387n\x3\x2\x2\x2\x388\x389\x5\x233\x11A\x2\x389\x38A\x5\x257\x12C"+ + "\x2\x38Ap\x3\x2\x2\x2\x38B\x38C\x5\x235\x11B\x2\x38C\x38D\x5\x23B\x11E"+ + "\x2\x38D\x38E\x5\x23F\x120\x2\x38E\x38F\x5\x243\x122\x2\x38F\x390\x5\x24D"+ + "\x127\x2\x390r\x3\x2\x2\x2\x391\x392\x5\x235\x11B\x2\x392\x393\x5\x243"+ + "\x122\x2\x393\x394\x5\x24D\x127\x2\x394\x395\x5\x233\x11A\x2\x395\x396"+ + "\x5\x255\x12B\x2\x396\x397\x5\x263\x132\x2\x397t\x3\x2\x2\x2\x398\x399"+ + "\x5\x235\x11B\x2\x399\x39A\x5\x24F\x128\x2\x39A\x39B\x5\x24F\x128\x2\x39B"+ + "\x39C\x5\x249\x125\x2\x39C\x39D\x5\x23B\x11E\x2\x39D\x39E\x5\x233\x11A"+ + "\x2\x39E\x39F\x5\x24D\x127\x2\x39Fv\x3\x2\x2\x2\x3A0\x3A1\x5\x235\x11B"+ + "\x2\x3A1\x3A2\x5\x263\x132\x2\x3A2\x3A3\x5\x25D\x12F\x2\x3A3\x3A4\x5\x233"+ + "\x11A\x2\x3A4\x3A5\x5\x249\x125\x2\x3A5x\x3\x2\x2\x2\x3A6\x3A7\x5\x235"+ + "\x11B\x2\x3A7\x3A8\x5\x263\x132\x2\x3A8\x3A9\x5\x255\x12B\x2\x3A9\x3AA"+ + "\x5\x23B\x11E\x2\x3AA\x3AB\x5\x23D\x11F\x2\x3ABz\x3\x2\x2\x2\x3AC\x3AD"+ + "\x5\x235\x11B\x2\x3AD\x3AE\x5\x263\x132\x2\x3AE\x3AF\x5\x259\x12D\x2\x3AF"+ + "\x3B0\x5\x23B\x11E\x2\x3B0|\x3\x2\x2\x2\x3B1\x3B2\x5\x237\x11C\x2\x3B2"+ + "\x3B3\x5\x233\x11A\x2\x3B3\x3B4\x5\x249\x125\x2\x3B4\x3B5\x5\x249\x125"+ + "\x2\x3B5~\x3\x2\x2\x2\x3B6\x3B7\x5\x237\x11C\x2\x3B7\x3B8\x5\x233\x11A"+ + "\x2\x3B8\x3B9\x5\x257\x12C\x2\x3B9\x3BA\x5\x23B\x11E\x2\x3BA\x80\x3\x2"+ + "\x2\x2\x3BB\x3BC\x5\x237\x11C\x2\x3BC\x3BD\x5\x249\x125\x2\x3BD\x3BE\x5"+ + "\x233\x11A\x2\x3BE\x3BF\x5\x257\x12C\x2\x3BF\x3C0\x5\x257\x12C\x2\x3C0"+ + "\x82\x3\x2\x2\x2\x3C1\x3C2\x5\x237\x11C\x2\x3C2\x3C3\x5\x249\x125\x2\x3C3"+ + "\x3C4\x5\x24F\x128\x2\x3C4\x3C5\x5\x257\x12C\x2\x3C5\x3C6\x5\x23B\x11E"+ + "\x2\x3C6\x84\x3\x2\x2\x2\x3C7\x3C8\x5\x237\x11C\x2\x3C8\x3C9\x5\x24F\x128"+ + "\x2\x3C9\x3CA\x5\x24D\x127\x2\x3CA\x3CB\x5\x257\x12C\x2\x3CB\x3CC\x5\x259"+ + "\x12D\x2\x3CC\x86\x3\x2\x2\x2\x3CD\x3CE\x5\x239\x11D\x2\x3CE\x3CF\x5\x233"+ + "\x11A\x2\x3CF\x3D0\x5\x259\x12D\x2\x3D0\x3D1\x5\x233\x11A\x2\x3D1\x3D2"+ + "\x5\x235\x11B\x2\x3D2\x3D3\x5\x233\x11A\x2\x3D3\x3D4\x5\x257\x12C\x2\x3D4"+ + "\x3D5\x5\x23B\x11E\x2\x3D5\x88\x3\x2\x2\x2\x3D6\x3D7\x5\x239\x11D\x2\x3D7"+ + "\x3D8\x5\x233\x11A\x2\x3D8\x3D9\x5\x259\x12D\x2\x3D9\x3DA\x5\x23B\x11E"+ + "\x2\x3DA\x8A\x3\x2\x2\x2\x3DB\x3DC\x5\x239\x11D\x2\x3DC\x3DD\x5\x23B\x11E"+ + "\x2\x3DD\x3DE\x5\x237\x11C\x2\x3DE\x3DF\x5\x249\x125\x2\x3DF\x3E0\x5\x233"+ + "\x11A\x2\x3E0\x3E1\x5\x255\x12B\x2\x3E1\x3E2\x5\x23B\x11E\x2\x3E2\x8C"+ + "\x3\x2\x2\x2\x3E3\x3E4\x5\x239\x11D\x2\x3E4\x3E5\x5\x23B\x11E\x2\x3E5"+ "\x3E6\x5\x23D\x11F\x2\x3E6\x3E7\x5\x235\x11B\x2\x3E7\x3E8\x5\x24F\x128"+ "\x2\x3E8\x3E9\x5\x24F\x128\x2\x3E9\x3EA\x5\x249\x125\x2\x3EA\x8E\x3\x2"+ "\x2\x2\x3EB\x3EC\x5\x239\x11D\x2\x3EC\x3ED\x5\x23B\x11E\x2\x3ED\x3EE\x5"+ @@ -1096,213 +1102,235 @@ public VBALexer(ICharStream input) "\x2\x7C1\x1B2\x3\x2\x2\x2\x7C2\x7C3\a+\x2\x2\x7C3\x1B4\x3\x2\x2\x2\x7C4"+ "\x7C6\x5\x225\x113\x2\x7C5\x7C4\x3\x2\x2\x2\x7C6\x7C9\x3\x2\x2\x2\x7C7"+ "\x7C5\x3\x2\x2\x2\x7C7\x7C8\x3\x2\x2\x2\x7C8\x7CA\x3\x2\x2\x2\x7C9\x7C7"+ - "\x3\x2\x2\x2\x7CA\x7CB\x5Y-\x2\x7CB\x7CC\x5\x85\x43\x2\x7CC\x1B6\x3\x2"+ - "\x2\x2\x7CD\x7CF\x5\x225\x113\x2\x7CE\x7CD\x3\x2\x2\x2\x7CF\x7D2\x3\x2"+ - "\x2\x2\x7D0\x7CE\x3\x2\x2\x2\x7D0\x7D1\x3\x2\x2\x2\x7D1\x7D3\x3\x2\x2"+ - "\x2\x7D2\x7D0\x3\x2\x2\x2\x7D3\x7D4\x5Y-\x2\x7D4\x7D5\x5\x243\x122\x2"+ - "\x7D5\x7D6\x5\x23D\x11F\x2\x7D6\x1B8\x3\x2\x2\x2\x7D7\x7D9\x5\x225\x113"+ - "\x2\x7D8\x7D7\x3\x2\x2\x2\x7D9\x7DC\x3\x2\x2\x2\x7DA\x7D8\x3\x2\x2\x2"+ - "\x7DA\x7DB\x3\x2\x2\x2\x7DB\x7DD\x3\x2\x2\x2\x7DC\x7DA\x3\x2\x2\x2\x7DD"+ - "\x7DE\x5Y-\x2\x7DE\x7DF\x5\x23B\x11E\x2\x7DF\x7E0\x5\x249\x125\x2\x7E0"+ - "\x7E1\x5\x257\x12C\x2\x7E1\x7E2\x5\x23B\x11E\x2\x7E2\x7E3\x5\x243\x122"+ - "\x2\x7E3\x7E4\x5\x23D\x11F\x2\x7E4\x1BA\x3\x2\x2\x2\x7E5\x7E7\x5\x225"+ - "\x113\x2\x7E6\x7E5\x3\x2\x2\x2\x7E7\x7EA\x3\x2\x2\x2\x7E8\x7E6\x3\x2\x2"+ - "\x2\x7E8\x7E9\x3\x2\x2\x2\x7E9\x7EB\x3\x2\x2\x2\x7EA\x7E8\x3\x2\x2\x2"+ - "\x7EB\x7EC\x5Y-\x2\x7EC\x7ED\x5\x23B\x11E\x2\x7ED\x7EE\x5\x249\x125\x2"+ - "\x7EE\x7EF\x5\x257\x12C\x2\x7EF\x7F0\x5\x23B\x11E\x2\x7F0\x1BC\x3\x2\x2"+ - "\x2\x7F1\x7F3\x5\x225\x113\x2\x7F2\x7F1\x3\x2\x2\x2\x7F3\x7F6\x3\x2\x2"+ - "\x2\x7F4\x7F2\x3\x2\x2\x2\x7F4\x7F5\x3\x2\x2\x2\x7F5\x7F7\x3\x2\x2\x2"+ - "\x7F6\x7F4\x3\x2\x2\x2\x7F7\x7F8\x5Y-\x2\x7F8\x7F9\x5\x23B\x11E\x2\x7F9"+ - "\x7FA\x5\x24D\x127\x2\x7FA\x7FE\x5\x239\x11D\x2\x7FB\x7FD\x5\x225\x113"+ - "\x2\x7FC\x7FB\x3\x2\x2\x2\x7FD\x800\x3\x2\x2\x2\x7FE\x7FC\x3\x2\x2\x2"+ - "\x7FE\x7FF\x3\x2\x2\x2\x7FF\x801\x3\x2\x2\x2\x800\x7FE\x3\x2\x2\x2\x801"+ - "\x802\x5\x243\x122\x2\x802\x803\x5\x23D\x11F\x2\x803\x1BE\x3\x2\x2\x2"+ - "\x804\x805\a]\x2\x2\x805\x1C0\x3\x2\x2\x2\x806\x807\a_\x2\x2\x807\x1C2"+ - "\x3\x2\x2\x2\x808\x80E\a$\x2\x2\x809\x80D\n\x2\x2\x2\x80A\x80B\a$\x2\x2"+ - "\x80B\x80D\a$\x2\x2\x80C\x809\x3\x2\x2\x2\x80C\x80A\x3\x2\x2\x2\x80D\x810"+ - "\x3\x2\x2\x2\x80E\x80C\x3\x2\x2\x2\x80E\x80F\x3\x2\x2\x2\x80F\x811\x3"+ - "\x2\x2\x2\x810\x80E\x3\x2\x2\x2\x811\x812\a$\x2\x2\x812\x1C4\x3\x2\x2"+ - "\x2\x813\x814\a(\x2\x2\x814\x815\aQ\x2\x2\x815\x817\x3\x2\x2\x2\x816\x818"+ - "\t\x3\x2\x2\x817\x816\x3\x2\x2\x2\x818\x819\x3\x2\x2\x2\x819\x817\x3\x2"+ - "\x2\x2\x819\x81A\x3\x2\x2\x2\x81A\x81C\x3\x2\x2\x2\x81B\x81D\a(\x2\x2"+ - "\x81C\x81B\x3\x2\x2\x2\x81C\x81D\x3\x2\x2\x2\x81D\x1C6\x3\x2\x2\x2\x81E"+ - "\x81F\a(\x2\x2\x81F\x820\aJ\x2\x2\x820\x822\x3\x2\x2\x2\x821\x823\t\x4"+ - "\x2\x2\x822\x821\x3\x2\x2\x2\x823\x824\x3\x2\x2\x2\x824\x822\x3\x2\x2"+ - "\x2\x824\x825\x3\x2\x2\x2\x825\x827\x3\x2\x2\x2\x826\x828\a(\x2\x2\x827"+ - "\x826\x3\x2\x2\x2\x827\x828\x3\x2\x2\x2\x828\x1C8\x3\x2\x2\x2\x829\x82B"+ - "\x5\x1CB\xE6\x2\x82A\x82C\x5\x1D1\xE9\x2\x82B\x82A\x3\x2\x2\x2\x82B\x82C"+ - "\x3\x2\x2\x2\x82C\x831\x3\x2\x2\x2\x82D\x82E\x5\x1D9\xED\x2\x82E\x82F"+ - "\x5\x1D1\xE9\x2\x82F\x831\x3\x2\x2\x2\x830\x829\x3\x2\x2\x2\x830\x82D"+ - "\x3\x2\x2\x2\x831\x1CA\x3\x2\x2\x2\x832\x833\x5\x1D9\xED\x2\x833\x834"+ - "\x5\x1D3\xEA\x2\x834\x843\x3\x2\x2\x2\x835\x836\x5\x1D9\xED\x2\x836\x838"+ - "\a\x30\x2\x2\x837\x839\x5\x1D9\xED\x2\x838\x837\x3\x2\x2\x2\x838\x839"+ - "\x3\x2\x2\x2\x839\x83B\x3\x2\x2\x2\x83A\x83C\x5\x1D3\xEA\x2\x83B\x83A"+ - "\x3\x2\x2\x2\x83B\x83C\x3\x2\x2\x2\x83C\x843\x3\x2\x2\x2\x83D\x83E\a\x30"+ - "\x2\x2\x83E\x840\x5\x1D9\xED\x2\x83F\x841\x5\x1D3\xEA\x2\x840\x83F\x3"+ - "\x2\x2\x2\x840\x841\x3\x2\x2\x2\x841\x843\x3\x2\x2\x2\x842\x832\x3\x2"+ - "\x2\x2\x842\x835\x3\x2\x2\x2\x842\x83D\x3\x2\x2\x2\x843\x1CC\x3\x2\x2"+ - "\x2\x844\x846\x5\x1D9\xED\x2\x845\x847\x5\x1CF\xE8\x2\x846\x845\x3\x2"+ - "\x2\x2\x846\x847\x3\x2\x2\x2\x847\x1CE\x3\x2\x2\x2\x848\x849\t\x5\x2\x2"+ - "\x849\x1D0\x3\x2\x2\x2\x84A\x84B\t\x6\x2\x2\x84B\x1D2\x3\x2\x2\x2\x84C"+ - "\x84E\x5\x1D5\xEB\x2\x84D\x84F\x5\x1D7\xEC\x2\x84E\x84D\x3\x2\x2\x2\x84E"+ - "\x84F\x3\x2\x2\x2\x84F\x851\x3\x2\x2\x2\x850\x852\x5\x22F\x118\x2\x851"+ - "\x850\x3\x2\x2\x2\x852\x853\x3\x2\x2\x2\x853\x851\x3\x2\x2\x2\x853\x854"+ - "\x3\x2\x2\x2\x854\x1D4\x3\x2\x2\x2\x855\x856\t\a\x2\x2\x856\x1D6\x3\x2"+ - "\x2\x2\x857\x858\t\b\x2\x2\x858\x1D8\x3\x2\x2\x2\x859\x85B\x5\x22F\x118"+ - "\x2\x85A\x859\x3\x2\x2\x2\x85B\x85C\x3\x2\x2\x2\x85C\x85A\x3\x2\x2\x2"+ - "\x85C\x85D\x3\x2\x2\x2\x85D\x1DA\x3\x2\x2\x2\x85E\x85F\a%\x2\x2\x85F\x860"+ - "\x5\x1DD\xEF\x2\x860\x861\a%\x2\x2\x861\x1DC\x3\x2\x2\x2\x862\x864\x5"+ - "\x1DF\xF0\x2\x863\x865\x5\x225\x113\x2\x864\x863\x3\x2\x2\x2\x864\x865"+ - "\x3\x2\x2\x2\x865\x866\x3\x2\x2\x2\x866\x867\x5\x1EB\xF6\x2\x867\x86B"+ - "\x3\x2\x2\x2\x868\x86B\x5\x1DF\xF0\x2\x869\x86B\x5\x1EB\xF6\x2\x86A\x862"+ - "\x3\x2\x2\x2\x86A\x868\x3\x2\x2\x2\x86A\x869\x3\x2\x2\x2\x86B\x1DE\x3"+ - "\x2\x2\x2\x86C\x86D\x5\x1E1\xF1\x2\x86D\x86E\x5\x1E3\xF2\x2\x86E\x872"+ - "\x5\x1E1\xF1\x2\x86F\x870\x5\x1E3\xF2\x2\x870\x871\x5\x1E1\xF1\x2\x871"+ - "\x873\x3\x2\x2\x2\x872\x86F\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2\x873\x1E0"+ - "\x3\x2\x2\x2\x874\x876\x5\x22F\x118\x2\x875\x874\x3\x2\x2\x2\x876\x877"+ - "\x3\x2\x2\x2\x877\x875\x3\x2\x2\x2\x877\x878\x3\x2\x2\x2\x878\x87B\x3"+ - "\x2\x2\x2\x879\x87B\x5\x1E5\xF3\x2\x87A\x875\x3\x2\x2\x2\x87A\x879\x3"+ - "\x2\x2\x2\x87B\x1E2\x3\x2\x2\x2\x87C\x87E\x5\x225\x113\x2\x87D\x87C\x3"+ - "\x2\x2\x2\x87D\x87E\x3\x2\x2\x2\x87E\x880\x3\x2\x2\x2\x87F\x881\t\t\x2"+ - "\x2\x880\x87F\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\x3\x2\x2\x2"+ - "\x882\x884\x5\x225\x113\x2\x883\x882\x3\x2\x2\x2\x883\x884\x3\x2\x2\x2"+ - "\x884\x1E4\x3\x2\x2\x2\x885\x888\x5\x1E7\xF4\x2\x886\x888\x5\x1E9\xF5"+ - "\x2\x887\x885\x3\x2\x2\x2\x887\x886\x3\x2\x2\x2\x888\x1E6\x3\x2\x2\x2"+ - "\x889\x896\x5\x1F1\xF9\x2\x88A\x896\x5\x1F3\xFA\x2\x88B\x896\x5\x1F5\xFB"+ - "\x2\x88C\x896\x5\x1F7\xFC\x2\x88D\x896\x5\x1F9\xFD\x2\x88E\x896\x5\x1FB"+ - "\xFE\x2\x88F\x896\x5\x1FD\xFF\x2\x890\x896\x5\x1FF\x100\x2\x891\x896\x5"+ - "\x201\x101\x2\x892\x896\x5\x203\x102\x2\x893\x896\x5\x205\x103\x2\x894"+ - "\x896\x5\x207\x104\x2\x895\x889\x3\x2\x2\x2\x895\x88A\x3\x2\x2\x2\x895"+ - "\x88B\x3\x2\x2\x2\x895\x88C\x3\x2\x2\x2\x895\x88D\x3\x2\x2\x2\x895\x88E"+ - "\x3\x2\x2\x2\x895\x88F\x3\x2\x2\x2\x895\x890\x3\x2\x2\x2\x895\x891\x3"+ - "\x2\x2\x2\x895\x892\x3\x2\x2\x2\x895\x893\x3\x2\x2\x2\x895\x894\x3\x2"+ - "\x2\x2\x896\x1E8\x3\x2\x2\x2\x897\x8A3\x5\x209\x105\x2\x898\x8A3\x5\x20B"+ - "\x106\x2\x899\x8A3\x5\x20D\x107\x2\x89A\x8A3\x5\x20F\x108\x2\x89B\x8A3"+ - "\x5\x211\x109\x2\x89C\x8A3\x5\x213\x10A\x2\x89D\x8A3\x5\x215\x10B\x2\x89E"+ - "\x8A3\x5\x217\x10C\x2\x89F\x8A3\x5\x219\x10D\x2\x8A0\x8A3\x5\x21B\x10E"+ - "\x2\x8A1\x8A3\x5\x21D\x10F\x2\x8A2\x897\x3\x2\x2\x2\x8A2\x898\x3\x2\x2"+ - "\x2\x8A2\x899\x3\x2\x2\x2\x8A2\x89A\x3\x2\x2\x2\x8A2\x89B\x3\x2\x2\x2"+ - "\x8A2\x89C\x3\x2\x2\x2\x8A2\x89D\x3\x2\x2\x2\x8A2\x89E\x3\x2\x2\x2\x8A2"+ - "\x89F\x3\x2\x2\x2\x8A2\x8A0\x3\x2\x2\x2\x8A2\x8A1\x3\x2\x2\x2\x8A3\x1EA"+ - "\x3\x2\x2\x2\x8A4\x8A6\x5\x22F\x118\x2\x8A5\x8A4\x3\x2\x2\x2\x8A6\x8A7"+ - "\x3\x2\x2\x2\x8A7\x8A5\x3\x2\x2\x2\x8A7\x8A8\x3\x2\x2\x2\x8A8\x8A9\x3"+ - "\x2\x2\x2\x8A9\x8AA\x5\x1EF\xF8\x2\x8AA\x8C2\x3\x2\x2\x2\x8AB\x8AD\x5"+ - "\x22F\x118\x2\x8AC\x8AB\x3\x2\x2\x2\x8AD\x8AE\x3\x2\x2\x2\x8AE\x8AC\x3"+ - "\x2\x2\x2\x8AE\x8AF\x3\x2\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0\x8B2\x5\x1ED"+ - "\xF7\x2\x8B1\x8B3\x5\x22F\x118\x2\x8B2\x8B1\x3\x2\x2\x2\x8B3\x8B4\x3\x2"+ - "\x2\x2\x8B4\x8B2\x3\x2\x2\x2\x8B4\x8B5\x3\x2\x2\x2\x8B5\x8BC\x3\x2\x2"+ - "\x2\x8B6\x8B8\x5\x1ED\xF7\x2\x8B7\x8B9\x5\x22F\x118\x2\x8B8\x8B7\x3\x2"+ - "\x2\x2\x8B9\x8BA\x3\x2\x2\x2\x8BA\x8B8\x3\x2\x2\x2\x8BA\x8BB\x3\x2\x2"+ - "\x2\x8BB\x8BD\x3\x2\x2\x2\x8BC\x8B6\x3\x2\x2\x2\x8BC\x8BD\x3\x2\x2\x2"+ - "\x8BD\x8BF\x3\x2\x2\x2\x8BE\x8C0\x5\x1EF\xF8\x2\x8BF\x8BE\x3\x2\x2\x2"+ - "\x8BF\x8C0\x3\x2\x2\x2\x8C0\x8C2\x3\x2\x2\x2\x8C1\x8A5\x3\x2\x2\x2\x8C1"+ - "\x8AC\x3\x2\x2\x2\x8C2\x1EC\x3\x2\x2\x2\x8C3\x8C5\x5\x225\x113\x2\x8C4"+ - "\x8C3\x3\x2\x2\x2\x8C4\x8C5\x3\x2\x2\x2\x8C5\x8C6\x3\x2\x2\x2\x8C6\x8C8"+ - "\t\n\x2\x2\x8C7\x8C9\x5\x225\x113\x2\x8C8\x8C7\x3\x2\x2\x2\x8C8\x8C9\x3"+ - "\x2\x2\x2\x8C9\x1EE\x3\x2\x2\x2\x8CA\x8CC\x5\x225\x113\x2\x8CB\x8CA\x3"+ - "\x2\x2\x2\x8CB\x8CC\x3\x2\x2\x2\x8CC\x8D5\x3\x2\x2\x2\x8CD\x8CE\x5\x233"+ - "\x11A\x2\x8CE\x8CF\x5\x24B\x126\x2\x8CF\x8D6\x3\x2\x2\x2\x8D0\x8D1\x5"+ - "\x251\x129\x2\x8D1\x8D2\x5\x24B\x126\x2\x8D2\x8D6\x3\x2\x2\x2\x8D3\x8D6"+ - "\x5\x233\x11A\x2\x8D4\x8D6\x5\x251\x129\x2\x8D5\x8CD\x3\x2\x2\x2\x8D5"+ - "\x8D0\x3\x2\x2\x2\x8D5\x8D3\x3\x2\x2\x2\x8D5\x8D4\x3\x2\x2\x2\x8D6\x1F0"+ - "\x3\x2\x2\x2\x8D7\x8D8\x5\x245\x123\x2\x8D8\x8D9\x5\x233\x11A\x2\x8D9"+ - "\x8DA\x5\x24D\x127\x2\x8DA\x8DB\x5\x25B\x12E\x2\x8DB\x8DC\x5\x233\x11A"+ - "\x2\x8DC\x8DD\x5\x255\x12B\x2\x8DD\x8DE\x5\x263\x132\x2\x8DE\x1F2\x3\x2"+ - "\x2\x2\x8DF\x8E0\x5\x23D\x11F\x2\x8E0\x8E1\x5\x23B\x11E\x2\x8E1\x8E2\x5"+ - "\x235\x11B\x2\x8E2\x8E3\x5\x255\x12B\x2\x8E3\x8E4\x5\x25B\x12E\x2\x8E4"+ - "\x8E5\x5\x233\x11A\x2\x8E5\x8E6\x5\x255\x12B\x2\x8E6\x8E7\x5\x263\x132"+ - "\x2\x8E7\x1F4\x3\x2\x2\x2\x8E8\x8E9\x5\x24B\x126\x2\x8E9\x8EA\x5\x233"+ - "\x11A\x2\x8EA\x8EB\x5\x255\x12B\x2\x8EB\x8EC\x5\x237\x11C\x2\x8EC\x8ED"+ - "\x5\x241\x121\x2\x8ED\x1F6\x3\x2\x2\x2\x8EE\x8EF\x5\x233\x11A\x2\x8EF"+ - "\x8F0\x5\x251\x129\x2\x8F0\x8F1\x5\x255\x12B\x2\x8F1\x8F2\x5\x243\x122"+ - "\x2\x8F2\x8F3\x5\x249\x125\x2\x8F3\x1F8\x3\x2\x2\x2\x8F4\x8F5\x5\x24B"+ - "\x126\x2\x8F5\x8F6\x5\x233\x11A\x2\x8F6\x8F7\x5\x263\x132\x2\x8F7\x1FA"+ - "\x3\x2\x2\x2\x8F8\x8F9\x5\x245\x123\x2\x8F9\x8FA\x5\x25B\x12E\x2\x8FA"+ - "\x8FB\x5\x24D\x127\x2\x8FB\x8FC\x5\x23B\x11E\x2\x8FC\x1FC\x3\x2\x2\x2"+ - "\x8FD\x8FE\x5\x245\x123\x2\x8FE\x8FF\x5\x25B\x12E\x2\x8FF\x900\x5\x249"+ - "\x125\x2\x900\x901\x5\x263\x132\x2\x901\x1FE\x3\x2\x2\x2\x902\x903\x5"+ - "\x233\x11A\x2\x903\x904\x5\x25B\x12E\x2\x904\x905\x5\x23F\x120\x2\x905"+ - "\x906\x5\x25B\x12E\x2\x906\x907\x5\x257\x12C\x2\x907\x908\x5\x259\x12D"+ - "\x2\x908\x200\x3\x2\x2\x2\x909\x90A\x5\x257\x12C\x2\x90A\x90B\x5\x23B"+ - "\x11E\x2\x90B\x90C\x5\x251\x129\x2\x90C\x90D\x5\x259\x12D\x2\x90D\x90E"+ - "\x5\x23B\x11E\x2\x90E\x90F\x5\x24B\x126\x2\x90F\x910\x5\x235\x11B\x2\x910"+ - "\x911\x5\x23B\x11E\x2\x911\x912\x5\x255\x12B\x2\x912\x202\x3\x2\x2\x2"+ - "\x913\x914\x5\x24F\x128\x2\x914\x915\x5\x237\x11C\x2\x915\x916\x5\x259"+ - "\x12D\x2\x916\x917\x5\x24F\x128\x2\x917\x918\x5\x235\x11B\x2\x918\x919"+ - "\x5\x23B\x11E\x2\x919\x91A\x5\x255\x12B\x2\x91A\x204\x3\x2\x2\x2\x91B"+ - "\x91C\x5\x24D\x127\x2\x91C\x91D\x5\x24F\x128\x2\x91D\x91E\x5\x25D\x12F"+ - "\x2\x91E\x91F\x5\x23B\x11E\x2\x91F\x920\x5\x24B\x126\x2\x920\x921\x5\x235"+ - "\x11B\x2\x921\x922\x5\x23B\x11E\x2\x922\x923\x5\x255\x12B\x2\x923\x206"+ - "\x3\x2\x2\x2\x924\x925\x5\x239\x11D\x2\x925\x926\x5\x23B\x11E\x2\x926"+ - "\x927\x5\x237\x11C\x2\x927\x928\x5\x23B\x11E\x2\x928\x929\x5\x24B\x126"+ - "\x2\x929\x92A\x5\x235\x11B\x2\x92A\x92B\x5\x23B\x11E\x2\x92B\x92C\x5\x255"+ - "\x12B\x2\x92C\x208\x3\x2\x2\x2\x92D\x92E\x5\x245\x123\x2\x92E\x92F\x5"+ - "\x233\x11A\x2\x92F\x930\x5\x24D\x127\x2\x930\x20A\x3\x2\x2\x2\x931\x932"+ - "\x5\x23D\x11F\x2\x932\x933\x5\x23B\x11E\x2\x933\x934\x5\x235\x11B\x2\x934"+ - "\x20C\x3\x2\x2\x2\x935\x936\x5\x24B\x126\x2\x936\x937\x5\x233\x11A\x2"+ - "\x937\x938\x5\x255\x12B\x2\x938\x20E\x3\x2\x2\x2\x939\x93A\x5\x233\x11A"+ - "\x2\x93A\x93B\x5\x251\x129\x2\x93B\x93C\x5\x255\x12B\x2\x93C\x210\x3\x2"+ - "\x2\x2\x93D\x93E\x5\x245\x123\x2\x93E\x93F\x5\x25B\x12E\x2\x93F\x940\x5"+ - "\x24D\x127\x2\x940\x212\x3\x2\x2\x2\x941\x942\x5\x245\x123\x2\x942\x943"+ - "\x5\x25B\x12E\x2\x943\x944\x5\x249\x125\x2\x944\x214\x3\x2\x2\x2\x945"+ - "\x946\x5\x233\x11A\x2\x946\x947\x5\x25B\x12E\x2\x947\x948\x5\x23F\x120"+ - "\x2\x948\x216\x3\x2\x2\x2\x949\x94A\x5\x257\x12C\x2\x94A\x94B\x5\x23B"+ - "\x11E\x2\x94B\x94C\x5\x251\x129\x2\x94C\x218\x3\x2\x2\x2\x94D\x94E\x5"+ - "\x24F\x128\x2\x94E\x94F\x5\x237\x11C\x2\x94F\x950\x5\x259\x12D\x2\x950"+ - "\x21A\x3\x2\x2\x2\x951\x952\x5\x24D\x127\x2\x952\x953\x5\x24F\x128\x2"+ - "\x953\x954\x5\x25D\x12F\x2\x954\x21C\x3\x2\x2\x2\x955\x956\x5\x239\x11D"+ - "\x2\x956\x957\x5\x23B\x11E\x2\x957\x958\x5\x237\x11C\x2\x958\x21E\x3\x2"+ - "\x2\x2\x959\x95A\a\xF\x2\x2\x95A\x95D\a\f\x2\x2\x95B\x95D\t\v\x2\x2\x95C"+ - "\x959\x3\x2\x2\x2\x95C\x95B\x3\x2\x2\x2\x95D\x220\x3\x2\x2\x2\x95E\x95F"+ - "\a)\x2\x2\x95F\x222\x3\x2\x2\x2\x960\x961\a\x61\x2\x2\x961\x224\x3\x2"+ - "\x2\x2\x962\x963\t\f\x2\x2\x963\x226\x3\x2\x2\x2\x964\x968\n\r\x2\x2\x965"+ - "\x967\n\xE\x2\x2\x966\x965\x3\x2\x2\x2\x967\x96A\x3\x2\x2\x2\x968\x966"+ - "\x3\x2\x2\x2\x968\x969\x3\x2\x2\x2\x969\x974\x3\x2\x2\x2\x96A\x968\x3"+ - "\x2\x2\x2\x96B\x96D\x5\x1BF\xE0\x2\x96C\x96E\n\xF\x2\x2\x96D\x96C\x3\x2"+ - "\x2\x2\x96E\x96F\x3\x2\x2\x2\x96F\x96D\x3\x2\x2\x2\x96F\x970\x3\x2\x2"+ - "\x2\x970\x971\x3\x2\x2\x2\x971\x972\x5\x1C1\xE1\x2\x972\x974\x3\x2\x2"+ - "\x2\x973\x964\x3\x2\x2\x2\x973\x96B\x3\x2\x2\x2\x974\x228\x3\x2\x2\x2"+ - "\x975\x977\t\f\x2\x2\x976\x975\x3\x2\x2\x2\x977\x97A\x3\x2\x2\x2\x978"+ - "\x976\x3\x2\x2\x2\x978\x979\x3\x2\x2\x2\x979\x97B\x3\x2\x2\x2\x97A\x978"+ - "\x3\x2\x2\x2\x97B\x97F\x5\x223\x112\x2\x97C\x97E\t\f\x2\x2\x97D\x97C\x3"+ - "\x2\x2\x2\x97E\x981\x3\x2\x2\x2\x97F\x97D\x3\x2\x2\x2\x97F\x980\x3\x2"+ - "\x2\x2\x980\x983\x3\x2\x2\x2\x981\x97F\x3\x2\x2\x2\x982\x984\a\xF\x2\x2"+ - "\x983\x982\x3\x2\x2\x2\x983\x984\x3\x2\x2\x2\x984\x985\x3\x2\x2\x2\x985"+ - "\x986\a\f\x2\x2\x986\x22A\x3\x2\x2\x2\x987\x989\a}\x2\x2\x988\x98A\t\x4"+ - "\x2\x2\x989\x988\x3\x2\x2\x2\x98A\x98B\x3\x2\x2\x2\x98B\x989\x3\x2\x2"+ - "\x2\x98B\x98C\x3\x2\x2\x2\x98C\x98D\x3\x2\x2\x2\x98D\x98F\a/\x2\x2\x98E"+ - "\x990\t\x4\x2\x2\x98F\x98E\x3\x2\x2\x2\x990\x991\x3\x2\x2\x2\x991\x98F"+ - "\x3\x2\x2\x2\x991\x992\x3\x2\x2\x2\x992\x993\x3\x2\x2\x2\x993\x995\a/"+ - "\x2\x2\x994\x996\t\x4\x2\x2\x995\x994\x3\x2\x2\x2\x996\x997\x3\x2\x2\x2"+ - "\x997\x995\x3\x2\x2\x2\x997\x998\x3\x2\x2\x2\x998\x999\x3\x2\x2\x2\x999"+ - "\x99B\a/\x2\x2\x99A\x99C\t\x4\x2\x2\x99B\x99A\x3\x2\x2\x2\x99C\x99D\x3"+ - "\x2\x2\x2\x99D\x99B\x3\x2\x2\x2\x99D\x99E\x3\x2\x2\x2\x99E\x99F\x3\x2"+ - "\x2\x2\x99F\x9A1\a/\x2\x2\x9A0\x9A2\t\x4\x2\x2\x9A1\x9A0\x3\x2\x2\x2\x9A2"+ - "\x9A3\x3\x2\x2\x2\x9A3\x9A1\x3\x2\x2\x2\x9A3\x9A4\x3\x2\x2\x2\x9A4\x9A5"+ - "\x3\x2\x2\x2\x9A5\x9A6\a\x7F\x2\x2\x9A6\x22C\x3\x2\x2\x2\x9A7\x9A8\t\x10"+ - "\x2\x2\x9A8\x22E\x3\x2\x2\x2\x9A9\x9AA\t\x11\x2\x2\x9AA\x230\x3\x2\x2"+ - "\x2\x9AB\x9AC\t\x12\x2\x2\x9AC\x232\x3\x2\x2\x2\x9AD\x9AE\t\x13\x2\x2"+ - "\x9AE\x234\x3\x2\x2\x2\x9AF\x9B0\t\x14\x2\x2\x9B0\x236\x3\x2\x2\x2\x9B1"+ - "\x9B2\t\x15\x2\x2\x9B2\x238\x3\x2\x2\x2\x9B3\x9B4\t\x16\x2\x2\x9B4\x23A"+ - "\x3\x2\x2\x2\x9B5\x9B6\t\x17\x2\x2\x9B6\x23C\x3\x2\x2\x2\x9B7\x9B8\t\x18"+ - "\x2\x2\x9B8\x23E\x3\x2\x2\x2\x9B9\x9BA\t\x19\x2\x2\x9BA\x240\x3\x2\x2"+ - "\x2\x9BB\x9BC\t\x1A\x2\x2\x9BC\x242\x3\x2\x2\x2\x9BD\x9BE\t\x1B\x2\x2"+ - "\x9BE\x244\x3\x2\x2\x2\x9BF\x9C0\t\x1C\x2\x2\x9C0\x246\x3\x2\x2\x2\x9C1"+ - "\x9C2\t\x1D\x2\x2\x9C2\x248\x3\x2\x2\x2\x9C3\x9C4\t\x1E\x2\x2\x9C4\x24A"+ - "\x3\x2\x2\x2\x9C5\x9C6\t\x1F\x2\x2\x9C6\x24C\x3\x2\x2\x2\x9C7\x9C8\t "+ - "\x2\x2\x9C8\x24E\x3\x2\x2\x2\x9C9\x9CA\t!\x2\x2\x9CA\x250\x3\x2\x2\x2"+ - "\x9CB\x9CC\t\"\x2\x2\x9CC\x252\x3\x2\x2\x2\x9CD\x9CE\t#\x2\x2\x9CE\x254"+ - "\x3\x2\x2\x2\x9CF\x9D0\t$\x2\x2\x9D0\x256\x3\x2\x2\x2\x9D1\x9D2\t%\x2"+ - "\x2\x9D2\x258\x3\x2\x2\x2\x9D3\x9D4\t&\x2\x2\x9D4\x25A\x3\x2\x2\x2\x9D5"+ - "\x9D6\t\'\x2\x2\x9D6\x25C\x3\x2\x2\x2\x9D7\x9D8\t(\x2\x2\x9D8\x25E\x3"+ - "\x2\x2\x2\x9D9\x9DA\t)\x2\x2\x9DA\x260\x3\x2\x2\x2\x9DB\x9DC\t*\x2\x2"+ - "\x9DC\x262\x3\x2\x2\x2\x9DD\x9DE\t+\x2\x2\x9DE\x264\x3\x2\x2\x2\x9DF\x9E0"+ - "\t,\x2\x2\x9E0\x266\x3\x2\x2\x2\x9E1\x9E2\v\x2\x2\x2\x9E2\x268\x3\x2\x2"+ - "\x2>\x2\x7A6\x7AE\x7BC\x7C7\x7D0\x7DA\x7E8\x7F4\x7FE\x80C\x80E\x819\x81C"+ - "\x824\x827\x82B\x830\x838\x83B\x840\x842\x846\x84E\x853\x85C\x864\x86A"+ - "\x872\x877\x87A\x87D\x880\x883\x887\x895\x8A2\x8A7\x8AE\x8B4\x8BA\x8BC"+ - "\x8BF\x8C1\x8C4\x8C8\x8CB\x8D5\x95C\x968\x96F\x973\x978\x97F\x983\x98B"+ - "\x991\x997\x99D\x9A3\x2"; + "\x3\x2\x2\x2\x7CA\x7CB\x5Y-\x2\x7CB\x7CD\x5\x85\x43\x2\x7CC\x7CE\x5\x225"+ + "\x113\x2\x7CD\x7CC\x3\x2\x2\x2\x7CE\x7CF\x3\x2\x2\x2\x7CF\x7CD\x3\x2\x2"+ + "\x2\x7CF\x7D0\x3\x2\x2\x2\x7D0\x1B6\x3\x2\x2\x2\x7D1\x7D3\x5\x225\x113"+ + "\x2\x7D2\x7D1\x3\x2\x2\x2\x7D3\x7D6\x3\x2\x2\x2\x7D4\x7D2\x3\x2\x2\x2"+ + "\x7D4\x7D5\x3\x2\x2\x2\x7D5\x7D7\x3\x2\x2\x2\x7D6\x7D4\x3\x2\x2\x2\x7D7"+ + "\x7D8\x5Y-\x2\x7D8\x7D9\x5\x243\x122\x2\x7D9\x7DB\x5\x23D\x11F\x2\x7DA"+ + "\x7DC\x5\x225\x113\x2\x7DB\x7DA\x3\x2\x2\x2\x7DC\x7DD\x3\x2\x2\x2\x7DD"+ + "\x7DB\x3\x2\x2\x2\x7DD\x7DE\x3\x2\x2\x2\x7DE\x1B8\x3\x2\x2\x2\x7DF\x7E1"+ + "\x5\x225\x113\x2\x7E0\x7DF\x3\x2\x2\x2\x7E1\x7E4\x3\x2\x2\x2\x7E2\x7E0"+ + "\x3\x2\x2\x2\x7E2\x7E3\x3\x2\x2\x2\x7E3\x7E5\x3\x2\x2\x2\x7E4\x7E2\x3"+ + "\x2\x2\x2\x7E5\x7E6\x5Y-\x2\x7E6\x7E7\x5\x23B\x11E\x2\x7E7\x7E8\x5\x249"+ + "\x125\x2\x7E8\x7E9\x5\x257\x12C\x2\x7E9\x7EA\x5\x23B\x11E\x2\x7EA\x7EB"+ + "\x5\x243\x122\x2\x7EB\x7ED\x5\x23D\x11F\x2\x7EC\x7EE\x5\x225\x113\x2\x7ED"+ + "\x7EC\x3\x2\x2\x2\x7EE\x7EF\x3\x2\x2\x2\x7EF\x7ED\x3\x2\x2\x2\x7EF\x7F0"+ + "\x3\x2\x2\x2\x7F0\x1BA\x3\x2\x2\x2\x7F1\x7F3\x5\x225\x113\x2\x7F2\x7F1"+ + "\x3\x2\x2\x2\x7F3\x7F6\x3\x2\x2\x2\x7F4\x7F2\x3\x2\x2\x2\x7F4\x7F5\x3"+ + "\x2\x2\x2\x7F5\x7F7\x3\x2\x2\x2\x7F6\x7F4\x3\x2\x2\x2\x7F7\x7F8\x5Y-\x2"+ + "\x7F8\x7F9\x5\x23B\x11E\x2\x7F9\x7FA\x5\x249\x125\x2\x7FA\x7FB\x5\x257"+ + "\x12C\x2\x7FB\x7FF\x5\x23B\x11E\x2\x7FC\x7FE\x5\x225\x113\x2\x7FD\x7FC"+ + "\x3\x2\x2\x2\x7FE\x801\x3\x2\x2\x2\x7FF\x7FD\x3\x2\x2\x2\x7FF\x800\x3"+ + "\x2\x2\x2\x800\x80A\x3\x2\x2\x2\x801\x7FF\x3\x2\x2\x2\x802\x807\x5\x221"+ + "\x111\x2\x803\x806\x5\x229\x115\x2\x804\x806\n\x2\x2\x2\x805\x803\x3\x2"+ + "\x2\x2\x805\x804\x3\x2\x2\x2\x806\x809\x3\x2\x2\x2\x807\x805\x3\x2\x2"+ + "\x2\x807\x808\x3\x2\x2\x2\x808\x80B\x3\x2\x2\x2\x809\x807\x3\x2\x2\x2"+ + "\x80A\x802\x3\x2\x2\x2\x80A\x80B\x3\x2\x2\x2\x80B\x80E\x3\x2\x2\x2\x80C"+ + "\x80F\x5\x21F\x110\x2\x80D\x80F\a\x2\x2\x3\x80E\x80C\x3\x2\x2\x2\x80E"+ + "\x80D\x3\x2\x2\x2\x80F\x1BC\x3\x2\x2\x2\x810\x812\x5\x225\x113\x2\x811"+ + "\x810\x3\x2\x2\x2\x812\x815\x3\x2\x2\x2\x813\x811\x3\x2\x2\x2\x813\x814"+ + "\x3\x2\x2\x2\x814\x816\x3\x2\x2\x2\x815\x813\x3\x2\x2\x2\x816\x817\x5"+ + "Y-\x2\x817\x818\x5\x23B\x11E\x2\x818\x819\x5\x24D\x127\x2\x819\x81D\x5"+ + "\x239\x11D\x2\x81A\x81C\x5\x225\x113\x2\x81B\x81A\x3\x2\x2\x2\x81C\x81F"+ + "\x3\x2\x2\x2\x81D\x81B\x3\x2\x2\x2\x81D\x81E\x3\x2\x2\x2\x81E\x820\x3"+ + "\x2\x2\x2\x81F\x81D\x3\x2\x2\x2\x820\x821\x5\x243\x122\x2\x821\x825\x5"+ + "\x23D\x11F\x2\x822\x824\x5\x225\x113\x2\x823\x822\x3\x2\x2\x2\x824\x827"+ + "\x3\x2\x2\x2\x825\x823\x3\x2\x2\x2\x825\x826\x3\x2\x2\x2\x826\x830\x3"+ + "\x2\x2\x2\x827\x825\x3\x2\x2\x2\x828\x82D\x5\x221\x111\x2\x829\x82C\x5"+ + "\x229\x115\x2\x82A\x82C\n\x2\x2\x2\x82B\x829\x3\x2\x2\x2\x82B\x82A\x3"+ + "\x2\x2\x2\x82C\x82F\x3\x2\x2\x2\x82D\x82B\x3\x2\x2\x2\x82D\x82E\x3\x2"+ + "\x2\x2\x82E\x831\x3\x2\x2\x2\x82F\x82D\x3\x2\x2\x2\x830\x828\x3\x2\x2"+ + "\x2\x830\x831\x3\x2\x2\x2\x831\x834\x3\x2\x2\x2\x832\x835\x5\x21F\x110"+ + "\x2\x833\x835\a\x2\x2\x3\x834\x832\x3\x2\x2\x2\x834\x833\x3\x2\x2\x2\x835"+ + "\x1BE\x3\x2\x2\x2\x836\x837\a]\x2\x2\x837\x1C0\x3\x2\x2\x2\x838\x839\a"+ + "_\x2\x2\x839\x1C2\x3\x2\x2\x2\x83A\x840\a$\x2\x2\x83B\x83F\n\x3\x2\x2"+ + "\x83C\x83D\a$\x2\x2\x83D\x83F\a$\x2\x2\x83E\x83B\x3\x2\x2\x2\x83E\x83C"+ + "\x3\x2\x2\x2\x83F\x842\x3\x2\x2\x2\x840\x83E\x3\x2\x2\x2\x840\x841\x3"+ + "\x2\x2\x2\x841\x843\x3\x2\x2\x2\x842\x840\x3\x2\x2\x2\x843\x844\a$\x2"+ + "\x2\x844\x1C4\x3\x2\x2\x2\x845\x846\a(\x2\x2\x846\x847\aQ\x2\x2\x847\x849"+ + "\x3\x2\x2\x2\x848\x84A\t\x4\x2\x2\x849\x848\x3\x2\x2\x2\x84A\x84B\x3\x2"+ + "\x2\x2\x84B\x849\x3\x2\x2\x2\x84B\x84C\x3\x2\x2\x2\x84C\x84E\x3\x2\x2"+ + "\x2\x84D\x84F\x5\x1CF\xE8\x2\x84E\x84D\x3\x2\x2\x2\x84E\x84F\x3\x2\x2"+ + "\x2\x84F\x1C6\x3\x2\x2\x2\x850\x851\a(\x2\x2\x851\x852\aJ\x2\x2\x852\x854"+ + "\x3\x2\x2\x2\x853\x855\t\x5\x2\x2\x854\x853\x3\x2\x2\x2\x855\x856\x3\x2"+ + "\x2\x2\x856\x854\x3\x2\x2\x2\x856\x857\x3\x2\x2\x2\x857\x859\x3\x2\x2"+ + "\x2\x858\x85A\x5\x1CF\xE8\x2\x859\x858\x3\x2\x2\x2\x859\x85A\x3\x2\x2"+ + "\x2\x85A\x1C8\x3\x2\x2\x2\x85B\x85D\x5\x1CB\xE6\x2\x85C\x85E\x5\x1D1\xE9"+ + "\x2\x85D\x85C\x3\x2\x2\x2\x85D\x85E\x3\x2\x2\x2\x85E\x863\x3\x2\x2\x2"+ + "\x85F\x860\x5\x1D9\xED\x2\x860\x861\x5\x1D1\xE9\x2\x861\x863\x3\x2\x2"+ + "\x2\x862\x85B\x3\x2\x2\x2\x862\x85F\x3\x2\x2\x2\x863\x1CA\x3\x2\x2\x2"+ + "\x864\x865\x5\x1D9\xED\x2\x865\x866\x5\x1D3\xEA\x2\x866\x875\x3\x2\x2"+ + "\x2\x867\x868\x5\x1D9\xED\x2\x868\x86A\a\x30\x2\x2\x869\x86B\x5\x1D9\xED"+ + "\x2\x86A\x869\x3\x2\x2\x2\x86A\x86B\x3\x2\x2\x2\x86B\x86D\x3\x2\x2\x2"+ + "\x86C\x86E\x5\x1D3\xEA\x2\x86D\x86C\x3\x2\x2\x2\x86D\x86E\x3\x2\x2\x2"+ + "\x86E\x875\x3\x2\x2\x2\x86F\x870\a\x30\x2\x2\x870\x872\x5\x1D9\xED\x2"+ + "\x871\x873\x5\x1D3\xEA\x2\x872\x871\x3\x2\x2\x2\x872\x873\x3\x2\x2\x2"+ + "\x873\x875\x3\x2\x2\x2\x874\x864\x3\x2\x2\x2\x874\x867\x3\x2\x2\x2\x874"+ + "\x86F\x3\x2\x2\x2\x875\x1CC\x3\x2\x2\x2\x876\x878\x5\x1D9\xED\x2\x877"+ + "\x879\x5\x1CF\xE8\x2\x878\x877\x3\x2\x2\x2\x878\x879\x3\x2\x2\x2\x879"+ + "\x1CE\x3\x2\x2\x2\x87A\x87B\t\x6\x2\x2\x87B\x1D0\x3\x2\x2\x2\x87C\x87D"+ + "\t\a\x2\x2\x87D\x1D2\x3\x2\x2\x2\x87E\x880\x5\x1D5\xEB\x2\x87F\x881\x5"+ + "\x1D7\xEC\x2\x880\x87F\x3\x2\x2\x2\x880\x881\x3\x2\x2\x2\x881\x883\x3"+ + "\x2\x2\x2\x882\x884\x5\x22F\x118\x2\x883\x882\x3\x2\x2\x2\x884\x885\x3"+ + "\x2\x2\x2\x885\x883\x3\x2\x2\x2\x885\x886\x3\x2\x2\x2\x886\x1D4\x3\x2"+ + "\x2\x2\x887\x888\t\b\x2\x2\x888\x1D6\x3\x2\x2\x2\x889\x88A\t\t\x2\x2\x88A"+ + "\x1D8\x3\x2\x2\x2\x88B\x88D\x5\x22F\x118\x2\x88C\x88B\x3\x2\x2\x2\x88D"+ + "\x88E\x3\x2\x2\x2\x88E\x88C\x3\x2\x2\x2\x88E\x88F\x3\x2\x2\x2\x88F\x1DA"+ + "\x3\x2\x2\x2\x890\x891\a%\x2\x2\x891\x892\x5\x1DD\xEF\x2\x892\x893\a%"+ + "\x2\x2\x893\x1DC\x3\x2\x2\x2\x894\x896\x5\x1DF\xF0\x2\x895\x897\x5\x225"+ + "\x113\x2\x896\x895\x3\x2\x2\x2\x896\x897\x3\x2\x2\x2\x897\x898\x3\x2\x2"+ + "\x2\x898\x899\x5\x1EB\xF6\x2\x899\x89D\x3\x2\x2\x2\x89A\x89D\x5\x1DF\xF0"+ + "\x2\x89B\x89D\x5\x1EB\xF6\x2\x89C\x894\x3\x2\x2\x2\x89C\x89A\x3\x2\x2"+ + "\x2\x89C\x89B\x3\x2\x2\x2\x89D\x1DE\x3\x2\x2\x2\x89E\x89F\x5\x1E1\xF1"+ + "\x2\x89F\x8A0\x5\x1E3\xF2\x2\x8A0\x8A4\x5\x1E1\xF1\x2\x8A1\x8A2\x5\x1E3"+ + "\xF2\x2\x8A2\x8A3\x5\x1E1\xF1\x2\x8A3\x8A5\x3\x2\x2\x2\x8A4\x8A1\x3\x2"+ + "\x2\x2\x8A4\x8A5\x3\x2\x2\x2\x8A5\x1E0\x3\x2\x2\x2\x8A6\x8A8\x5\x22F\x118"+ + "\x2\x8A7\x8A6\x3\x2\x2\x2\x8A8\x8A9\x3\x2\x2\x2\x8A9\x8A7\x3\x2\x2\x2"+ + "\x8A9\x8AA\x3\x2\x2\x2\x8AA\x8AD\x3\x2\x2\x2\x8AB\x8AD\x5\x1E5\xF3\x2"+ + "\x8AC\x8A7\x3\x2\x2\x2\x8AC\x8AB\x3\x2\x2\x2\x8AD\x1E2\x3\x2\x2\x2\x8AE"+ + "\x8B0\x5\x225\x113\x2\x8AF\x8AE\x3\x2\x2\x2\x8AF\x8B0\x3\x2\x2\x2\x8B0"+ + "\x8B2\x3\x2\x2\x2\x8B1\x8B3\t\n\x2\x2\x8B2\x8B1\x3\x2\x2\x2\x8B2\x8B3"+ + "\x3\x2\x2\x2\x8B3\x8B5\x3\x2\x2\x2\x8B4\x8B6\x5\x225\x113\x2\x8B5\x8B4"+ + "\x3\x2\x2\x2\x8B5\x8B6\x3\x2\x2\x2\x8B6\x1E4\x3\x2\x2\x2\x8B7\x8BA\x5"+ + "\x1E7\xF4\x2\x8B8\x8BA\x5\x1E9\xF5\x2\x8B9\x8B7\x3\x2\x2\x2\x8B9\x8B8"+ + "\x3\x2\x2\x2\x8BA\x1E6\x3\x2\x2\x2\x8BB\x8C8\x5\x1F1\xF9\x2\x8BC\x8C8"+ + "\x5\x1F3\xFA\x2\x8BD\x8C8\x5\x1F5\xFB\x2\x8BE\x8C8\x5\x1F7\xFC\x2\x8BF"+ + "\x8C8\x5\x1F9\xFD\x2\x8C0\x8C8\x5\x1FB\xFE\x2\x8C1\x8C8\x5\x1FD\xFF\x2"+ + "\x8C2\x8C8\x5\x1FF\x100\x2\x8C3\x8C8\x5\x201\x101\x2\x8C4\x8C8\x5\x203"+ + "\x102\x2\x8C5\x8C8\x5\x205\x103\x2\x8C6\x8C8\x5\x207\x104\x2\x8C7\x8BB"+ + "\x3\x2\x2\x2\x8C7\x8BC\x3\x2\x2\x2\x8C7\x8BD\x3\x2\x2\x2\x8C7\x8BE\x3"+ + "\x2\x2\x2\x8C7\x8BF\x3\x2\x2\x2\x8C7\x8C0\x3\x2\x2\x2\x8C7\x8C1\x3\x2"+ + "\x2\x2\x8C7\x8C2\x3\x2\x2\x2\x8C7\x8C3\x3\x2\x2\x2\x8C7\x8C4\x3\x2\x2"+ + "\x2\x8C7\x8C5\x3\x2\x2\x2\x8C7\x8C6\x3\x2\x2\x2\x8C8\x1E8\x3\x2\x2\x2"+ + "\x8C9\x8D5\x5\x209\x105\x2\x8CA\x8D5\x5\x20B\x106\x2\x8CB\x8D5\x5\x20D"+ + "\x107\x2\x8CC\x8D5\x5\x20F\x108\x2\x8CD\x8D5\x5\x211\x109\x2\x8CE\x8D5"+ + "\x5\x213\x10A\x2\x8CF\x8D5\x5\x215\x10B\x2\x8D0\x8D5\x5\x217\x10C\x2\x8D1"+ + "\x8D5\x5\x219\x10D\x2\x8D2\x8D5\x5\x21B\x10E\x2\x8D3\x8D5\x5\x21D\x10F"+ + "\x2\x8D4\x8C9\x3\x2\x2\x2\x8D4\x8CA\x3\x2\x2\x2\x8D4\x8CB\x3\x2\x2\x2"+ + "\x8D4\x8CC\x3\x2\x2\x2\x8D4\x8CD\x3\x2\x2\x2\x8D4\x8CE\x3\x2\x2\x2\x8D4"+ + "\x8CF\x3\x2\x2\x2\x8D4\x8D0\x3\x2\x2\x2\x8D4\x8D1\x3\x2\x2\x2\x8D4\x8D2"+ + "\x3\x2\x2\x2\x8D4\x8D3\x3\x2\x2\x2\x8D5\x1EA\x3\x2\x2\x2\x8D6\x8D8\x5"+ + "\x22F\x118\x2\x8D7\x8D6\x3\x2\x2\x2\x8D8\x8D9\x3\x2\x2\x2\x8D9\x8D7\x3"+ + "\x2\x2\x2\x8D9\x8DA\x3\x2\x2\x2\x8DA\x8DB\x3\x2\x2\x2\x8DB\x8DC\x5\x1EF"+ + "\xF8\x2\x8DC\x8F4\x3\x2\x2\x2\x8DD\x8DF\x5\x22F\x118\x2\x8DE\x8DD\x3\x2"+ + "\x2\x2\x8DF\x8E0\x3\x2\x2\x2\x8E0\x8DE\x3\x2\x2\x2\x8E0\x8E1\x3\x2\x2"+ + "\x2\x8E1\x8E2\x3\x2\x2\x2\x8E2\x8E4\x5\x1ED\xF7\x2\x8E3\x8E5\x5\x22F\x118"+ + "\x2\x8E4\x8E3\x3\x2\x2\x2\x8E5\x8E6\x3\x2\x2\x2\x8E6\x8E4\x3\x2\x2\x2"+ + "\x8E6\x8E7\x3\x2\x2\x2\x8E7\x8EE\x3\x2\x2\x2\x8E8\x8EA\x5\x1ED\xF7\x2"+ + "\x8E9\x8EB\x5\x22F\x118\x2\x8EA\x8E9\x3\x2\x2\x2\x8EB\x8EC\x3\x2\x2\x2"+ + "\x8EC\x8EA\x3\x2\x2\x2\x8EC\x8ED\x3\x2\x2\x2\x8ED\x8EF\x3\x2\x2\x2\x8EE"+ + "\x8E8\x3\x2\x2\x2\x8EE\x8EF\x3\x2\x2\x2\x8EF\x8F1\x3\x2\x2\x2\x8F0\x8F2"+ + "\x5\x1EF\xF8\x2\x8F1\x8F0\x3\x2\x2\x2\x8F1\x8F2\x3\x2\x2\x2\x8F2\x8F4"+ + "\x3\x2\x2\x2\x8F3\x8D7\x3\x2\x2\x2\x8F3\x8DE\x3\x2\x2\x2\x8F4\x1EC\x3"+ + "\x2\x2\x2\x8F5\x8F7\x5\x225\x113\x2\x8F6\x8F5\x3\x2\x2\x2\x8F6\x8F7\x3"+ + "\x2\x2\x2\x8F7\x8F8\x3\x2\x2\x2\x8F8\x8FA\t\v\x2\x2\x8F9\x8FB\x5\x225"+ + "\x113\x2\x8FA\x8F9\x3\x2\x2\x2\x8FA\x8FB\x3\x2\x2\x2\x8FB\x1EE\x3\x2\x2"+ + "\x2\x8FC\x8FE\x5\x225\x113\x2\x8FD\x8FC\x3\x2\x2\x2\x8FD\x8FE\x3\x2\x2"+ + "\x2\x8FE\x907\x3\x2\x2\x2\x8FF\x900\x5\x233\x11A\x2\x900\x901\x5\x24B"+ + "\x126\x2\x901\x908\x3\x2\x2\x2\x902\x903\x5\x251\x129\x2\x903\x904\x5"+ + "\x24B\x126\x2\x904\x908\x3\x2\x2\x2\x905\x908\x5\x233\x11A\x2\x906\x908"+ + "\x5\x251\x129\x2\x907\x8FF\x3\x2\x2\x2\x907\x902\x3\x2\x2\x2\x907\x905"+ + "\x3\x2\x2\x2\x907\x906\x3\x2\x2\x2\x908\x1F0\x3\x2\x2\x2\x909\x90A\x5"+ + "\x245\x123\x2\x90A\x90B\x5\x233\x11A\x2\x90B\x90C\x5\x24D\x127\x2\x90C"+ + "\x90D\x5\x25B\x12E\x2\x90D\x90E\x5\x233\x11A\x2\x90E\x90F\x5\x255\x12B"+ + "\x2\x90F\x910\x5\x263\x132\x2\x910\x1F2\x3\x2\x2\x2\x911\x912\x5\x23D"+ + "\x11F\x2\x912\x913\x5\x23B\x11E\x2\x913\x914\x5\x235\x11B\x2\x914\x915"+ + "\x5\x255\x12B\x2\x915\x916\x5\x25B\x12E\x2\x916\x917\x5\x233\x11A\x2\x917"+ + "\x918\x5\x255\x12B\x2\x918\x919\x5\x263\x132\x2\x919\x1F4\x3\x2\x2\x2"+ + "\x91A\x91B\x5\x24B\x126\x2\x91B\x91C\x5\x233\x11A\x2\x91C\x91D\x5\x255"+ + "\x12B\x2\x91D\x91E\x5\x237\x11C\x2\x91E\x91F\x5\x241\x121\x2\x91F\x1F6"+ + "\x3\x2\x2\x2\x920\x921\x5\x233\x11A\x2\x921\x922\x5\x251\x129\x2\x922"+ + "\x923\x5\x255\x12B\x2\x923\x924\x5\x243\x122\x2\x924\x925\x5\x249\x125"+ + "\x2\x925\x1F8\x3\x2\x2\x2\x926\x927\x5\x24B\x126\x2\x927\x928\x5\x233"+ + "\x11A\x2\x928\x929\x5\x263\x132\x2\x929\x1FA\x3\x2\x2\x2\x92A\x92B\x5"+ + "\x245\x123\x2\x92B\x92C\x5\x25B\x12E\x2\x92C\x92D\x5\x24D\x127\x2\x92D"+ + "\x92E\x5\x23B\x11E\x2\x92E\x1FC\x3\x2\x2\x2\x92F\x930\x5\x245\x123\x2"+ + "\x930\x931\x5\x25B\x12E\x2\x931\x932\x5\x249\x125\x2\x932\x933\x5\x263"+ + "\x132\x2\x933\x1FE\x3\x2\x2\x2\x934\x935\x5\x233\x11A\x2\x935\x936\x5"+ + "\x25B\x12E\x2\x936\x937\x5\x23F\x120\x2\x937\x938\x5\x25B\x12E\x2\x938"+ + "\x939\x5\x257\x12C\x2\x939\x93A\x5\x259\x12D\x2\x93A\x200\x3\x2\x2\x2"+ + "\x93B\x93C\x5\x257\x12C\x2\x93C\x93D\x5\x23B\x11E\x2\x93D\x93E\x5\x251"+ + "\x129\x2\x93E\x93F\x5\x259\x12D\x2\x93F\x940\x5\x23B\x11E\x2\x940\x941"+ + "\x5\x24B\x126\x2\x941\x942\x5\x235\x11B\x2\x942\x943\x5\x23B\x11E\x2\x943"+ + "\x944\x5\x255\x12B\x2\x944\x202\x3\x2\x2\x2\x945\x946\x5\x24F\x128\x2"+ + "\x946\x947\x5\x237\x11C\x2\x947\x948\x5\x259\x12D\x2\x948\x949\x5\x24F"+ + "\x128\x2\x949\x94A\x5\x235\x11B\x2\x94A\x94B\x5\x23B\x11E\x2\x94B\x94C"+ + "\x5\x255\x12B\x2\x94C\x204\x3\x2\x2\x2\x94D\x94E\x5\x24D\x127\x2\x94E"+ + "\x94F\x5\x24F\x128\x2\x94F\x950\x5\x25D\x12F\x2\x950\x951\x5\x23B\x11E"+ + "\x2\x951\x952\x5\x24B\x126\x2\x952\x953\x5\x235\x11B\x2\x953\x954\x5\x23B"+ + "\x11E\x2\x954\x955\x5\x255\x12B\x2\x955\x206\x3\x2\x2\x2\x956\x957\x5"+ + "\x239\x11D\x2\x957\x958\x5\x23B\x11E\x2\x958\x959\x5\x237\x11C\x2\x959"+ + "\x95A\x5\x23B\x11E\x2\x95A\x95B\x5\x24B\x126\x2\x95B\x95C\x5\x235\x11B"+ + "\x2\x95C\x95D\x5\x23B\x11E\x2\x95D\x95E\x5\x255\x12B\x2\x95E\x208\x3\x2"+ + "\x2\x2\x95F\x960\x5\x245\x123\x2\x960\x961\x5\x233\x11A\x2\x961\x962\x5"+ + "\x24D\x127\x2\x962\x20A\x3\x2\x2\x2\x963\x964\x5\x23D\x11F\x2\x964\x965"+ + "\x5\x23B\x11E\x2\x965\x966\x5\x235\x11B\x2\x966\x20C\x3\x2\x2\x2\x967"+ + "\x968\x5\x24B\x126\x2\x968\x969\x5\x233\x11A\x2\x969\x96A\x5\x255\x12B"+ + "\x2\x96A\x20E\x3\x2\x2\x2\x96B\x96C\x5\x233\x11A\x2\x96C\x96D\x5\x251"+ + "\x129\x2\x96D\x96E\x5\x255\x12B\x2\x96E\x210\x3\x2\x2\x2\x96F\x970\x5"+ + "\x245\x123\x2\x970\x971\x5\x25B\x12E\x2\x971\x972\x5\x24D\x127\x2\x972"+ + "\x212\x3\x2\x2\x2\x973\x974\x5\x245\x123\x2\x974\x975\x5\x25B\x12E\x2"+ + "\x975\x976\x5\x249\x125\x2\x976\x214\x3\x2\x2\x2\x977\x978\x5\x233\x11A"+ + "\x2\x978\x979\x5\x25B\x12E\x2\x979\x97A\x5\x23F\x120\x2\x97A\x216\x3\x2"+ + "\x2\x2\x97B\x97C\x5\x257\x12C\x2\x97C\x97D\x5\x23B\x11E\x2\x97D\x97E\x5"+ + "\x251\x129\x2\x97E\x218\x3\x2\x2\x2\x97F\x980\x5\x24F\x128\x2\x980\x981"+ + "\x5\x237\x11C\x2\x981\x982\x5\x259\x12D\x2\x982\x21A\x3\x2\x2\x2\x983"+ + "\x984\x5\x24D\x127\x2\x984\x985\x5\x24F\x128\x2\x985\x986\x5\x25D\x12F"+ + "\x2\x986\x21C\x3\x2\x2\x2\x987\x988\x5\x239\x11D\x2\x988\x989\x5\x23B"+ + "\x11E\x2\x989\x98A\x5\x237\x11C\x2\x98A\x21E\x3\x2\x2\x2\x98B\x98C\a\xF"+ + "\x2\x2\x98C\x98F\a\f\x2\x2\x98D\x98F\t\x2\x2\x2\x98E\x98B\x3\x2\x2\x2"+ + "\x98E\x98D\x3\x2\x2\x2\x98F\x220\x3\x2\x2\x2\x990\x991\a)\x2\x2\x991\x222"+ + "\x3\x2\x2\x2\x992\x993\a\x61\x2\x2\x993\x224\x3\x2\x2\x2\x994\x995\t\f"+ + "\x2\x2\x995\x226\x3\x2\x2\x2\x996\x99A\n\r\x2\x2\x997\x999\n\xE\x2\x2"+ + "\x998\x997\x3\x2\x2\x2\x999\x99C\x3\x2\x2\x2\x99A\x998\x3\x2\x2\x2\x99A"+ + "\x99B\x3\x2\x2\x2\x99B\x9A6\x3\x2\x2\x2\x99C\x99A\x3\x2\x2\x2\x99D\x99F"+ + "\x5\x1BF\xE0\x2\x99E\x9A0\n\xF\x2\x2\x99F\x99E\x3\x2\x2\x2\x9A0\x9A1\x3"+ + "\x2\x2\x2\x9A1\x99F\x3\x2\x2\x2\x9A1\x9A2\x3\x2\x2\x2\x9A2\x9A3\x3\x2"+ + "\x2\x2\x9A3\x9A4\x5\x1C1\xE1\x2\x9A4\x9A6\x3\x2\x2\x2\x9A5\x996\x3\x2"+ + "\x2\x2\x9A5\x99D\x3\x2\x2\x2\x9A6\x228\x3\x2\x2\x2\x9A7\x9A9\t\f\x2\x2"+ + "\x9A8\x9A7\x3\x2\x2\x2\x9A9\x9AC\x3\x2\x2\x2\x9AA\x9A8\x3\x2\x2\x2\x9AA"+ + "\x9AB\x3\x2\x2\x2\x9AB\x9AD\x3\x2\x2\x2\x9AC\x9AA\x3\x2\x2\x2\x9AD\x9B1"+ + "\x5\x223\x112\x2\x9AE\x9B0\t\f\x2\x2\x9AF\x9AE\x3\x2\x2\x2\x9B0\x9B3\x3"+ + "\x2\x2\x2\x9B1\x9AF\x3\x2\x2\x2\x9B1\x9B2\x3\x2\x2\x2\x9B2\x9B5\x3\x2"+ + "\x2\x2\x9B3\x9B1\x3\x2\x2\x2\x9B4\x9B6\a\xF\x2\x2\x9B5\x9B4\x3\x2\x2\x2"+ + "\x9B5\x9B6\x3\x2\x2\x2\x9B6\x9B7\x3\x2\x2\x2\x9B7\x9B8\a\f\x2\x2\x9B8"+ + "\x22A\x3\x2\x2\x2\x9B9\x9BB\a}\x2\x2\x9BA\x9BC\t\x5\x2\x2\x9BB\x9BA\x3"+ + "\x2\x2\x2\x9BC\x9BD\x3\x2\x2\x2\x9BD\x9BB\x3\x2\x2\x2\x9BD\x9BE\x3\x2"+ + "\x2\x2\x9BE\x9BF\x3\x2\x2\x2\x9BF\x9C1\a/\x2\x2\x9C0\x9C2\t\x5\x2\x2\x9C1"+ + "\x9C0\x3\x2\x2\x2\x9C2\x9C3\x3\x2\x2\x2\x9C3\x9C1\x3\x2\x2\x2\x9C3\x9C4"+ + "\x3\x2\x2\x2\x9C4\x9C5\x3\x2\x2\x2\x9C5\x9C7\a/\x2\x2\x9C6\x9C8\t\x5\x2"+ + "\x2\x9C7\x9C6\x3\x2\x2\x2\x9C8\x9C9\x3\x2\x2\x2\x9C9\x9C7\x3\x2\x2\x2"+ + "\x9C9\x9CA\x3\x2\x2\x2\x9CA\x9CB\x3\x2\x2\x2\x9CB\x9CD\a/\x2\x2\x9CC\x9CE"+ + "\t\x5\x2\x2\x9CD\x9CC\x3\x2\x2\x2\x9CE\x9CF\x3\x2\x2\x2\x9CF\x9CD\x3\x2"+ + "\x2\x2\x9CF\x9D0\x3\x2\x2\x2\x9D0\x9D1\x3\x2\x2\x2\x9D1\x9D3\a/\x2\x2"+ + "\x9D2\x9D4\t\x5\x2\x2\x9D3\x9D2\x3\x2\x2\x2\x9D4\x9D5\x3\x2\x2\x2\x9D5"+ + "\x9D3\x3\x2\x2\x2\x9D5\x9D6\x3\x2\x2\x2\x9D6\x9D7\x3\x2\x2\x2\x9D7\x9D8"+ + "\a\x7F\x2\x2\x9D8\x22C\x3\x2\x2\x2\x9D9\x9DA\t\x10\x2\x2\x9DA\x22E\x3"+ + "\x2\x2\x2\x9DB\x9DC\t\x11\x2\x2\x9DC\x230\x3\x2\x2\x2\x9DD\x9DE\t\x12"+ + "\x2\x2\x9DE\x232\x3\x2\x2\x2\x9DF\x9E0\t\x13\x2\x2\x9E0\x234\x3\x2\x2"+ + "\x2\x9E1\x9E2\t\x14\x2\x2\x9E2\x236\x3\x2\x2\x2\x9E3\x9E4\t\x15\x2\x2"+ + "\x9E4\x238\x3\x2\x2\x2\x9E5\x9E6\t\x16\x2\x2\x9E6\x23A\x3\x2\x2\x2\x9E7"+ + "\x9E8\t\x17\x2\x2\x9E8\x23C\x3\x2\x2\x2\x9E9\x9EA\t\x18\x2\x2\x9EA\x23E"+ + "\x3\x2\x2\x2\x9EB\x9EC\t\x19\x2\x2\x9EC\x240\x3\x2\x2\x2\x9ED\x9EE\t\x1A"+ + "\x2\x2\x9EE\x242\x3\x2\x2\x2\x9EF\x9F0\t\x1B\x2\x2\x9F0\x244\x3\x2\x2"+ + "\x2\x9F1\x9F2\t\x1C\x2\x2\x9F2\x246\x3\x2\x2\x2\x9F3\x9F4\t\x1D\x2\x2"+ + "\x9F4\x248\x3\x2\x2\x2\x9F5\x9F6\t\x1E\x2\x2\x9F6\x24A\x3\x2\x2\x2\x9F7"+ + "\x9F8\t\x1F\x2\x2\x9F8\x24C\x3\x2\x2\x2\x9F9\x9FA\t \x2\x2\x9FA\x24E\x3"+ + "\x2\x2\x2\x9FB\x9FC\t!\x2\x2\x9FC\x250\x3\x2\x2\x2\x9FD\x9FE\t\"\x2\x2"+ + "\x9FE\x252\x3\x2\x2\x2\x9FF\xA00\t#\x2\x2\xA00\x254\x3\x2\x2\x2\xA01\xA02"+ + "\t$\x2\x2\xA02\x256\x3\x2\x2\x2\xA03\xA04\t%\x2\x2\xA04\x258\x3\x2\x2"+ + "\x2\xA05\xA06\t&\x2\x2\xA06\x25A\x3\x2\x2\x2\xA07\xA08\t\'\x2\x2\xA08"+ + "\x25C\x3\x2\x2\x2\xA09\xA0A\t(\x2\x2\xA0A\x25E\x3\x2\x2\x2\xA0B\xA0C\t"+ + ")\x2\x2\xA0C\x260\x3\x2\x2\x2\xA0D\xA0E\t*\x2\x2\xA0E\x262\x3\x2\x2\x2"+ + "\xA0F\xA10\t+\x2\x2\xA10\x264\x3\x2\x2\x2\xA11\xA12\t,\x2\x2\xA12\x266"+ + "\x3\x2\x2\x2\xA13\xA14\v\x2\x2\x2\xA14\x268\x3\x2\x2\x2K\x2\x7A6\x7AE"+ + "\x7BC\x7C7\x7CF\x7D4\x7DD\x7E2\x7EF\x7F4\x7FF\x805\x807\x80A\x80E\x813"+ + "\x81D\x825\x82B\x82D\x830\x834\x83E\x840\x84B\x84E\x856\x859\x85D\x862"+ + "\x86A\x86D\x872\x874\x878\x880\x885\x88E\x896\x89C\x8A4\x8A9\x8AC\x8AF"+ + "\x8B2\x8B5\x8B9\x8C7\x8D4\x8D9\x8E0\x8E6\x8EC\x8EE\x8F1\x8F3\x8F6\x8FA"+ + "\x8FD\x907\x98E\x99A\x9A1\x9A5\x9AA\x9B1\x9B5\x9BD\x9C3\x9C9\x9CF\x9D5"+ + "\x2"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Grammar/VBALexer.g4 b/Rubberduck.Parsing/Grammar/VBALexer.g4 index c41e1d337d..3d0d2ed5b8 100644 --- a/Rubberduck.Parsing/Grammar/VBALexer.g4 +++ b/Rubberduck.Parsing/Grammar/VBALexer.g4 @@ -234,16 +234,16 @@ NEQ : '<>' | '><'; PLUS : '+'; POW : '^'; RPAREN : ')'; -HASHCONST : WS* HASH CONST; -HASHIF : WS* HASH I F; -HASHELSEIF : WS* HASH E L S E I F; -HASHELSE : WS* HASH E L S E; -HASHENDIF : WS* HASH E N D WS* I F; +HASHCONST : WS* HASH CONST WS+; +HASHIF : WS* HASH I F WS+; +HASHELSEIF : WS* HASH E L S E I F WS+; +HASHELSE : WS* HASH E L S E WS* (SINGLEQUOTE (LINE_CONTINUATION | ~[\r\n\u2028\u2029])*)? (NEWLINE | EOF); +HASHENDIF : WS* HASH E N D WS* I F WS* (SINGLEQUOTE (LINE_CONTINUATION | ~[\r\n\u2028\u2029])*)? (NEWLINE | EOF); L_SQUARE_BRACKET : '['; R_SQUARE_BRACKET : ']'; STRINGLITERAL : '"' (~["\r\n] | '""')* '"'; -OCTLITERAL : '&O' [0-8]+ '&'?; -HEXLITERAL : '&H' [0-9A-F]+ '&'?; +OCTLITERAL : '&O' [0-8]+ INTEGERTYPESUFFIX?; +HEXLITERAL : '&H' [0-9A-F]+ INTEGERTYPESUFFIX?; FLOATLITERAL : FLOATINGPOINTLITERAL FLOATINGPOINTTYPESUFFIX? | DECIMALLITERAL FLOATINGPOINTTYPESUFFIX; diff --git a/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs index bc0334e1fb..8d7e6e56ca 100644 --- a/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/HexNumberLiteralExpression.cs @@ -14,7 +14,10 @@ public HexNumberLiteralExpression(IExpression tokenText) public override IValue Evaluate() { string literal = _tokenText.Evaluate().AsString; - literal = literal.Replace("&H", "").Replace("&", ""); + literal = literal.Replace("&H", "") + .Replace("&", "") + .Replace("%", "") + .Replace("^", ""); var number = (decimal)int.Parse(literal, NumberStyles.HexNumber); return new DecimalValue(number); } diff --git a/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs index b235ecf7a6..86a4c0ac4a 100644 --- a/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/NumberLiteralExpression.cs @@ -14,7 +14,14 @@ public NumberLiteralExpression(IExpression tokenText) public override IValue Evaluate() { string literal = _tokenText.Evaluate().AsString; - var number = decimal.Parse(literal.Replace("#", "").Replace("&", "").Replace("@", ""), NumberStyles.Float, CultureInfo.InvariantCulture); + var number = decimal.Parse(literal + .Replace("%", "") + .Replace("&", "") + .Replace("^", "") + .Replace("!", "") + .Replace("#", "") + .Replace("@", "") + , NumberStyles.Float, CultureInfo.InvariantCulture); return new DecimalValue(number); } } diff --git a/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs b/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs index 8d574482b6..df2a47f065 100644 --- a/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs +++ b/Rubberduck.Parsing/Preprocessing/OctNumberLiteralExpression.cs @@ -14,7 +14,10 @@ public OctNumberLiteralExpression(IExpression tokenText) public override IValue Evaluate() { string literal = _tokenText.Evaluate().AsString; - literal = literal.Replace("&O", "").Replace("&", ""); + literal = literal.Replace("&O", "") + .Replace("&", "") + .Replace("%", "") + .Replace("^", ""); var number = (decimal)Convert.ToInt32(literal, 8); return new DecimalValue(number); } diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs index 25a17c9603..1ef5c08dba 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.cs @@ -102,15 +102,15 @@ public const int }; public const int RULE_compilationUnit = 0, RULE_ccBlock = 1, RULE_ccConst = 2, RULE_logicalLine = 3, - RULE_extendedLine = 4, RULE_ccVarLhs = 5, RULE_ccExpression = 6, RULE_ccIfBlock = 7, - RULE_ccIf = 8, RULE_ccElseIfBlock = 9, RULE_ccElseIf = 10, RULE_ccElseBlock = 11, - RULE_ccElse = 12, RULE_ccEndIf = 13, RULE_ccEol = 14, RULE_intrinsicFunction = 15, - RULE_intrinsicFunctionName = 16, RULE_name = 17, RULE_typeHint = 18, RULE_literal = 19; + RULE_ccVarLhs = 4, RULE_ccExpression = 5, RULE_ccIfBlock = 6, RULE_ccIf = 7, + RULE_ccElseIfBlock = 8, RULE_ccElseIf = 9, RULE_ccElseBlock = 10, RULE_ccElse = 11, + RULE_ccEndIf = 12, RULE_ccEol = 13, RULE_intrinsicFunction = 14, RULE_intrinsicFunctionName = 15, + RULE_name = 16, RULE_typeHint = 17, RULE_literal = 18, RULE_comment = 19; public static readonly string[] ruleNames = { - "compilationUnit", "ccBlock", "ccConst", "logicalLine", "extendedLine", - "ccVarLhs", "ccExpression", "ccIfBlock", "ccIf", "ccElseIfBlock", "ccElseIf", - "ccElseBlock", "ccElse", "ccEndIf", "ccEol", "intrinsicFunction", "intrinsicFunctionName", - "name", "typeHint", "literal" + "compilationUnit", "ccBlock", "ccConst", "logicalLine", "ccVarLhs", "ccExpression", + "ccIfBlock", "ccIf", "ccElseIfBlock", "ccElseIf", "ccElseBlock", "ccElse", + "ccEndIf", "ccEol", "intrinsicFunction", "intrinsicFunctionName", "name", + "typeHint", "literal", "comment" }; public override string GrammarFileName { get { return "VBAConditionalCompilationParser.g4"; } } @@ -226,24 +226,256 @@ public CcBlockContext ccBlock() { while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << COMMA) | (1L << COLON) | (1L << SEMICOLON) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_ENUM - 64)) | (1L << (END_FUNCTION - 64)) | (1L << (END_IF - 64)) | (1L << (END_PROPERTY - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_SUB - 64)) | (1L << (END_TYPE - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OPTION_BASE - 128)) | (1L << (OPTION_EXPLICIT - 128)) | (1L << (OPTION_COMPARE - 128)) | (1L << (OPTION_PRIVATE_MODULE - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PTRSAFE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (ASSIGN - 192)) | (1L << (DIV - 192)) | (1L << (INTDIV - 192)) | (1L << (EQ - 192)) | (1L << (GEQ - 192)) | (1L << (GT - 192)) | (1L << (LEQ - 192)) | (1L << (LPAREN - 192)) | (1L << (LT - 192)) | (1L << (MINUS - 192)) | (1L << (MULT - 192)) | (1L << (NEQ - 192)) | (1L << (PLUS - 192)) | (1L << (POW - 192)) | (1L << (RPAREN - 192)) | (1L << (HASHCONST - 192)) | (1L << (HASHIF - 192)) | (1L << (L_SQUARE_BRACKET - 192)) | (1L << (R_SQUARE_BRACKET - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (NEWLINE - 192)) | (1L << (SINGLEQUOTE - 192)) | (1L << (UNDERSCORE - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (GUIDLITERAL - 192)) | (1L << (ERRORCHAR - 192)))) != 0)) { { State = 46; - switch ( Interpreter.AdaptivePredict(_input,0,_ctx) ) { - case 1: + switch (_input.La(1)) { + case HASHCONST: { State = 43; ccConst(); } break; - - case 2: + case HASHIF: { State = 44; ccIfBlock(); } break; - - case 3: + case ABS: + case ANY: + case ARRAY: + case CBOOL: + case CBYTE: + case CCUR: + case CDATE: + case CDBL: + case CDEC: + case CINT: + case CIRCLE: + case CLNG: + case CLNGLNG: + case CLNGPTR: + case CSNG: + case CSTR: + case CURRENCY: + case CVAR: + case CVERR: + case DEBUG: + case DOEVENTS: + case EXIT: + case FIX: + case INPUTB: + case INT: + case LBOUND: + case LEN: + case LENB: + case LONGLONG: + case LONGPTR: + case MIDB: + case MIDBTYPESUFFIX: + case MIDTYPESUFFIX: + case OPTION: + case PSET: + case SCALE: + case SGN: + case UBOUND: + case COMMA: + case COLON: + case SEMICOLON: + case EXCLAMATIONPOINT: + case DOT: + case HASH: + case AT: + case PERCENT: + case DOLLAR: + case AMPERSAND: + case ACCESS: + case ADDRESSOF: + case ALIAS: + case AND: + case ATTRIBUTE: + case APPEND: + case AS: + case BEGIN: + case BINARY: + case BOOLEAN: + case BYVAL: + case BYREF: + case BYTE: + case CALL: + case CASE: + case CLASS: + case CLOSE: + case CONST: + case DATABASE: + case DATE: + case DECLARE: + case DEFBOOL: + case DEFBYTE: + case DEFDATE: + case DEFDBL: + case DEFCUR: + case DEFINT: + case DEFLNG: + case DEFLNGLNG: + case DEFLNGPTR: + case DEFOBJ: + case DEFSNG: + case DEFSTR: + case DEFVAR: + case DIM: + case DO: + case DOUBLE: + case EACH: + case ELSE: + case ELSEIF: + case EMPTY: + case END_ENUM: + case END_FUNCTION: + case END_IF: + case END_PROPERTY: + case END_SELECT: + case END_SUB: + case END_TYPE: + case END_WITH: + case END: + case ENUM: + case EQV: + case ERASE: + case ERROR: + case EVENT: + case EXIT_DO: + case EXIT_FOR: + case EXIT_FUNCTION: + case EXIT_PROPERTY: + case EXIT_SUB: + case FALSE: + case FRIEND: + case FOR: + case FUNCTION: + case GET: + case GLOBAL: + case GOSUB: + case GOTO: + case IF: + case IMP: + case IMPLEMENTS: + case IN: + case INPUT: + case IS: + case INTEGER: + case LOCK: + case LONG: + case LOOP: + case LET: + case LIB: + case LIKE: + case LINE_INPUT: + case LOCK_READ: + case LOCK_WRITE: + case LOCK_READ_WRITE: + case LSET: + case ME: + case MID: + case MOD: + case NEXT: + case NEW: + case NOT: + case NOTHING: + case NULL: + case ON: + case ON_ERROR: + case ON_LOCAL_ERROR: + case OPEN: + case OPTIONAL: + case OPTION_BASE: + case OPTION_EXPLICIT: + case OPTION_COMPARE: + case OPTION_PRIVATE_MODULE: + case OR: + case OUTPUT: + case PARAMARRAY: + case PRESERVE: + case PRINT: + case PRIVATE: + case PROPERTY_GET: + case PROPERTY_LET: + case PROPERTY_SET: + case PTRSAFE: + case PUBLIC: + case PUT: + case RANDOM: + case RAISEEVENT: + case READ: + case READ_WRITE: + case REDIM: + case REM: + case RESET: + case RESUME: + case RETURN: + case RSET: + case SEEK: + case SELECT: + case SET: + case SHARED: + case SINGLE: + case SPC: + case STATIC: + case STEP: + case STOP: + case STRING: + case SUB: + case TAB: + case TEXT: + case THEN: + case TO: + case TRUE: + case TYPE: + case TYPEOF: + case UNLOCK: + case UNTIL: + case VARIANT: + case VERSION: + case WEND: + case WHILE: + case WIDTH: + case WITH: + case WITHEVENTS: + case WRITE: + case XOR: + case ASSIGN: + case DIV: + case INTDIV: + case EQ: + case GEQ: + case GT: + case LEQ: + case LPAREN: + case LT: + case MINUS: + case MULT: + case NEQ: + case PLUS: + case POW: + case RPAREN: + case L_SQUARE_BRACKET: + case R_SQUARE_BRACKET: + case STRINGLITERAL: + case OCTLITERAL: + case HEXLITERAL: + case FLOATLITERAL: + case INTEGERLITERAL: + case DATELITERAL: + case NEWLINE: + case SINGLEQUOTE: + case UNDERSCORE: + case WS: + case IDENTIFIER: + case LINE_CONTINUATION: + case GUIDLITERAL: + case ERRORCHAR: { State = 45; logicalLine(); } break; + default: + throw new NoViableAltException(this); } } State = 50; @@ -307,63 +539,37 @@ public CcConstContext ccConst() { try { EnterOuterAlt(_localctx, 1); { + State = 51; Match(HASHCONST); + State = 52; ccVarLhs(); State = 54; _errHandler.Sync(this); _la = _input.La(1); - while (_la==WS) { - { - { - State = 51; Match(WS); - } - } - State = 56; - _errHandler.Sync(this); - _la = _input.La(1); - } - State = 57; Match(HASHCONST); - State = 59; - _errHandler.Sync(this); - _la = _input.La(1); do { { { - State = 58; Match(WS); + State = 53; Match(WS); } } - State = 61; - _errHandler.Sync(this); - _la = _input.La(1); - } while ( _la==WS ); - State = 63; ccVarLhs(); - State = 65; - _errHandler.Sync(this); - _la = _input.La(1); - do { - { - { - State = 64; Match(WS); - } - } - State = 67; + State = 56; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==WS ); - State = 69; Match(EQ); - State = 71; + State = 58; Match(EQ); + State = 60; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 70; Match(WS); + State = 59; Match(WS); } } - State = 73; + State = 62; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==WS ); - State = 75; ccExpression(0); - State = 76; ccEol(); + State = 64; ccExpression(0); + State = 65; ccEol(); } } catch (RecognitionException re) { @@ -378,171 +584,93 @@ public CcConstContext ccConst() { } public partial class LogicalLineContext : ParserRuleContext { - public IReadOnlyList extendedLine() { - return GetRuleContexts(); - } - public ExtendedLineContext extendedLine(int i) { - return GetRuleContext(i); - } - public LogicalLineContext(ParserRuleContext parent, int invokingState) - : base(parent, invokingState) - { - } - public override int RuleIndex { get { return RULE_logicalLine; } } - public override void EnterRule(IParseTreeListener listener) { - IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; - if (typedListener != null) typedListener.EnterLogicalLine(this); - } - public override void ExitRule(IParseTreeListener listener) { - IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; - if (typedListener != null) typedListener.ExitLogicalLine(this); - } - public override TResult Accept(IParseTreeVisitor visitor) { - IVBAConditionalCompilationParserVisitor typedVisitor = visitor as IVBAConditionalCompilationParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitLogicalLine(this); - else return visitor.VisitChildren(this); - } - } - - [RuleVersion(0)] - public LogicalLineContext logicalLine() { - LogicalLineContext _localctx = new LogicalLineContext(_ctx, State); - EnterRule(_localctx, 6, RULE_logicalLine); - try { - int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 79; - _errHandler.Sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - { - State = 78; extendedLine(); - } - } - break; - default: - throw new NoViableAltException(this); - } - State = 81; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,6,_ctx); - } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - } - } - catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.ReportError(this, re); - _errHandler.Recover(this, re); - } - finally { - ExitRule(); - } - return _localctx; - } - - public partial class ExtendedLineContext : ParserRuleContext { public IReadOnlyList HASHIF() { return GetTokens(VBAConditionalCompilationParser.HASHIF); } public IReadOnlyList HASHENDIF() { return GetTokens(VBAConditionalCompilationParser.HASHENDIF); } - public ITerminalNode HASHENDIF(int i) { - return GetToken(VBAConditionalCompilationParser.HASHENDIF, i); - } - public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } - public IReadOnlyList HASHELSE() { return GetTokens(VBAConditionalCompilationParser.HASHELSE); } - public IReadOnlyList HASHELSEIF() { return GetTokens(VBAConditionalCompilationParser.HASHELSEIF); } public ITerminalNode HASHCONST(int i) { return GetToken(VBAConditionalCompilationParser.HASHCONST, i); } public ITerminalNode HASHIF(int i) { return GetToken(VBAConditionalCompilationParser.HASHIF, i); } - public IReadOnlyList LINE_CONTINUATION() { return GetTokens(VBAConditionalCompilationParser.LINE_CONTINUATION); } - public ITerminalNode LINE_CONTINUATION(int i) { - return GetToken(VBAConditionalCompilationParser.LINE_CONTINUATION, i); + public ITerminalNode HASHENDIF(int i) { + return GetToken(VBAConditionalCompilationParser.HASHENDIF, i); } + public IReadOnlyList HASHELSE() { return GetTokens(VBAConditionalCompilationParser.HASHELSE); } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } public IReadOnlyList HASHCONST() { return GetTokens(VBAConditionalCompilationParser.HASHCONST); } + public IReadOnlyList HASHELSEIF() { return GetTokens(VBAConditionalCompilationParser.HASHELSEIF); } public ITerminalNode HASHELSEIF(int i) { return GetToken(VBAConditionalCompilationParser.HASHELSEIF, i); } public ITerminalNode HASHELSE(int i) { return GetToken(VBAConditionalCompilationParser.HASHELSE, i); } - public ExtendedLineContext(ParserRuleContext parent, int invokingState) + public LogicalLineContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { } - public override int RuleIndex { get { return RULE_extendedLine; } } + public override int RuleIndex { get { return RULE_logicalLine; } } public override void EnterRule(IParseTreeListener listener) { IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; - if (typedListener != null) typedListener.EnterExtendedLine(this); + if (typedListener != null) typedListener.EnterLogicalLine(this); } public override void ExitRule(IParseTreeListener listener) { IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; - if (typedListener != null) typedListener.ExitExtendedLine(this); + if (typedListener != null) typedListener.ExitLogicalLine(this); } public override TResult Accept(IParseTreeVisitor visitor) { IVBAConditionalCompilationParserVisitor typedVisitor = visitor as IVBAConditionalCompilationParserVisitor; - if (typedVisitor != null) return typedVisitor.VisitExtendedLine(this); + if (typedVisitor != null) return typedVisitor.VisitLogicalLine(this); else return visitor.VisitChildren(this); } } [RuleVersion(0)] - public ExtendedLineContext extendedLine() { - ExtendedLineContext _localctx = new ExtendedLineContext(_ctx, State); - EnterRule(_localctx, 8, RULE_extendedLine); + public LogicalLineContext logicalLine() { + LogicalLineContext _localctx = new LogicalLineContext(_ctx, State); + EnterRule(_localctx, 6, RULE_logicalLine); int _la; try { int _alt; - EnterOuterAlt(_localctx, 1); - { - State = 85; - _errHandler.Sync(this); - _alt = 1; - do { - switch (_alt) { - case 1: - { - State = 85; - switch ( Interpreter.AdaptivePredict(_input,7,_ctx) ) { + State = 73; + switch ( Interpreter.AdaptivePredict(_input,5,_ctx) ) { + case 1: + EnterOuterAlt(_localctx, 1); + { + State = 68; + _errHandler.Sync(this); + _alt = 1; + do { + switch (_alt) { case 1: { - State = 83; Match(LINE_CONTINUATION); - } - break; - - case 2: { - State = 84; + State = 67; _la = _input.La(1); if ( _la <= 0 || (((((_la - 218)) & ~0x3f) == 0 && ((1L << (_la - 218)) & ((1L << (HASHCONST - 218)) | (1L << (HASHIF - 218)) | (1L << (HASHELSEIF - 218)) | (1L << (HASHELSE - 218)) | (1L << (HASHENDIF - 218)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); } + } break; + default: + throw new NoViableAltException(this); } - } - break; - default: - throw new NoViableAltException(this); + State = 70; + _errHandler.Sync(this); + _alt = Interpreter.AdaptivePredict(_input,4,_ctx); + } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); } - State = 87; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,8,_ctx); - } while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ); - State = 90; - switch ( Interpreter.AdaptivePredict(_input,9,_ctx) ) { - case 1: + break; + + case 2: + EnterOuterAlt(_localctx, 2); { - State = 89; Match(NEWLINE); + State = 72; Match(NEWLINE); } break; } - } } catch (RecognitionException re) { _localctx.exception = re; @@ -582,11 +710,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcVarLhsContext ccVarLhs() { CcVarLhsContext _localctx = new CcVarLhsContext(_ctx, State); - EnterRule(_localctx, 10, RULE_ccVarLhs); + EnterRule(_localctx, 8, RULE_ccVarLhs); try { EnterOuterAlt(_localctx, 1); { - State = 92; name(); + State = 75; name(); } } catch (RecognitionException re) { @@ -674,84 +802,84 @@ private CcExpressionContext ccExpression(int _p) { int _parentState = State; CcExpressionContext _localctx = new CcExpressionContext(_ctx, _parentState); CcExpressionContext _prevctx = _localctx; - int _startState = 12; - EnterRecursionRule(_localctx, 12, RULE_ccExpression, _p); + int _startState = 10; + EnterRecursionRule(_localctx, 10, RULE_ccExpression, _p); int _la; try { int _alt; EnterOuterAlt(_localctx, 1); { - State = 130; + State = 113; switch (_input.La(1)) { case MINUS: { - State = 95; Match(MINUS); - State = 99; + State = 78; Match(MINUS); + State = 82; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 96; Match(WS); + State = 79; Match(WS); } } - State = 101; + State = 84; _errHandler.Sync(this); _la = _input.La(1); } - State = 102; ccExpression(16); + State = 85; ccExpression(16); } break; case NOT: { - State = 103; Match(NOT); - State = 107; + State = 86; Match(NOT); + State = 90; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 104; Match(WS); + State = 87; Match(WS); } } - State = 109; + State = 92; _errHandler.Sync(this); _la = _input.La(1); } - State = 110; ccExpression(9); + State = 93; ccExpression(9); } break; case LPAREN: { - State = 111; Match(LPAREN); - State = 115; + State = 94; Match(LPAREN); + State = 98; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 112; Match(WS); + State = 95; Match(WS); } } - State = 117; + State = 100; _errHandler.Sync(this); _la = _input.La(1); } - State = 118; ccExpression(0); - State = 122; + State = 101; ccExpression(0); + State = 105; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 119; Match(WS); + State = 102; Match(WS); } } - State = 124; + State = 107; _errHandler.Sync(this); _la = _input.La(1); } - State = 125; Match(RPAREN); + State = 108; Match(RPAREN); } break; case ABS: @@ -773,7 +901,7 @@ private CcExpressionContext ccExpression(int _p) { case LENB: case SGN: { - State = 127; intrinsicFunction(); + State = 110; intrinsicFunction(); } break; case EMPTY: @@ -788,62 +916,62 @@ private CcExpressionContext ccExpression(int _p) { case INTEGERLITERAL: case DATELITERAL: { - State = 128; literal(); + State = 111; literal(); } break; case IDENTIFIER: { - State = 129; name(); + State = 112; name(); } break; default: throw new NoViableAltException(this); } _ctx.stop = _input.Lt(-1); - State = 314; + State = 297; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,40,_ctx); + _alt = Interpreter.AdaptivePredict(_input,36,_ctx); while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { if ( _alt==1 ) { if ( _parseListeners!=null ) TriggerExitRuleEvent(); _prevctx = _localctx; { - State = 312; - switch ( Interpreter.AdaptivePredict(_input,39,_ctx) ) { + State = 295; + switch ( Interpreter.AdaptivePredict(_input,35,_ctx) ) { case 1: { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 132; + State = 115; if (!(Precpred(_ctx, 17))) throw new FailedPredicateException(this, "Precpred(_ctx, 17)"); - State = 136; + State = 119; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 133; Match(WS); + State = 116; Match(WS); } } - State = 138; + State = 121; _errHandler.Sync(this); _la = _input.La(1); } - State = 139; Match(POW); - State = 143; + State = 122; Match(POW); + State = 126; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 140; Match(WS); + State = 123; Match(WS); } } - State = 145; + State = 128; _errHandler.Sync(this); _la = _input.La(1); } - State = 146; ccExpression(18); + State = 129; ccExpression(18); } break; @@ -851,41 +979,41 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 147; + State = 130; if (!(Precpred(_ctx, 15))) throw new FailedPredicateException(this, "Precpred(_ctx, 15)"); - State = 151; + State = 134; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 148; Match(WS); + State = 131; Match(WS); } } - State = 153; + State = 136; _errHandler.Sync(this); _la = _input.La(1); } - State = 154; + State = 137; _la = _input.La(1); if ( !(_la==DIV || _la==MULT) ) { _errHandler.RecoverInline(this); } Consume(); - State = 158; + State = 141; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 155; Match(WS); + State = 138; Match(WS); } } - State = 160; + State = 143; _errHandler.Sync(this); _la = _input.La(1); } - State = 161; ccExpression(16); + State = 144; ccExpression(16); } break; @@ -893,36 +1021,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 162; + State = 145; if (!(Precpred(_ctx, 14))) throw new FailedPredicateException(this, "Precpred(_ctx, 14)"); - State = 166; + State = 149; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 163; Match(WS); + State = 146; Match(WS); } } - State = 168; + State = 151; _errHandler.Sync(this); _la = _input.La(1); } - State = 169; Match(INTDIV); - State = 173; + State = 152; Match(INTDIV); + State = 156; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 170; Match(WS); + State = 153; Match(WS); } } - State = 175; + State = 158; _errHandler.Sync(this); _la = _input.La(1); } - State = 176; ccExpression(15); + State = 159; ccExpression(15); } break; @@ -930,36 +1058,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 177; + State = 160; if (!(Precpred(_ctx, 13))) throw new FailedPredicateException(this, "Precpred(_ctx, 13)"); - State = 181; + State = 164; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 178; Match(WS); + State = 161; Match(WS); } } - State = 183; + State = 166; _errHandler.Sync(this); _la = _input.La(1); } - State = 184; Match(MOD); - State = 188; + State = 167; Match(MOD); + State = 171; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 185; Match(WS); + State = 168; Match(WS); } } - State = 190; + State = 173; _errHandler.Sync(this); _la = _input.La(1); } - State = 191; ccExpression(14); + State = 174; ccExpression(14); } break; @@ -967,41 +1095,41 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 192; + State = 175; if (!(Precpred(_ctx, 12))) throw new FailedPredicateException(this, "Precpred(_ctx, 12)"); - State = 196; + State = 179; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 193; Match(WS); + State = 176; Match(WS); } } - State = 198; + State = 181; _errHandler.Sync(this); _la = _input.La(1); } - State = 199; + State = 182; _la = _input.La(1); if ( !(_la==MINUS || _la==PLUS) ) { _errHandler.RecoverInline(this); } Consume(); - State = 203; + State = 186; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 200; Match(WS); + State = 183; Match(WS); } } - State = 205; + State = 188; _errHandler.Sync(this); _la = _input.La(1); } - State = 206; ccExpression(13); + State = 189; ccExpression(13); } break; @@ -1009,36 +1137,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 207; + State = 190; if (!(Precpred(_ctx, 11))) throw new FailedPredicateException(this, "Precpred(_ctx, 11)"); - State = 211; + State = 194; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 208; Match(WS); + State = 191; Match(WS); } } - State = 213; + State = 196; _errHandler.Sync(this); _la = _input.La(1); } - State = 214; Match(AMPERSAND); - State = 218; + State = 197; Match(AMPERSAND); + State = 201; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 215; Match(WS); + State = 198; Match(WS); } } - State = 220; + State = 203; _errHandler.Sync(this); _la = _input.La(1); } - State = 221; ccExpression(12); + State = 204; ccExpression(12); } break; @@ -1046,41 +1174,41 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 222; + State = 205; if (!(Precpred(_ctx, 10))) throw new FailedPredicateException(this, "Precpred(_ctx, 10)"); - State = 226; + State = 209; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 223; Match(WS); + State = 206; Match(WS); } } - State = 228; + State = 211; _errHandler.Sync(this); _la = _input.La(1); } - State = 229; + State = 212; _la = _input.La(1); if ( !(_la==IS || _la==LIKE || ((((_la - 206)) & ~0x3f) == 0 && ((1L << (_la - 206)) & ((1L << (EQ - 206)) | (1L << (GEQ - 206)) | (1L << (GT - 206)) | (1L << (LEQ - 206)) | (1L << (LT - 206)) | (1L << (NEQ - 206)))) != 0)) ) { _errHandler.RecoverInline(this); } Consume(); - State = 233; + State = 216; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 230; Match(WS); + State = 213; Match(WS); } } - State = 235; + State = 218; _errHandler.Sync(this); _la = _input.La(1); } - State = 236; ccExpression(11); + State = 219; ccExpression(11); } break; @@ -1088,36 +1216,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 237; + State = 220; if (!(Precpred(_ctx, 8))) throw new FailedPredicateException(this, "Precpred(_ctx, 8)"); - State = 241; + State = 224; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 238; Match(WS); + State = 221; Match(WS); } } - State = 243; + State = 226; _errHandler.Sync(this); _la = _input.La(1); } - State = 244; Match(AND); - State = 248; + State = 227; Match(AND); + State = 231; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 245; Match(WS); + State = 228; Match(WS); } } - State = 250; + State = 233; _errHandler.Sync(this); _la = _input.La(1); } - State = 251; ccExpression(9); + State = 234; ccExpression(9); } break; @@ -1125,36 +1253,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 252; + State = 235; if (!(Precpred(_ctx, 7))) throw new FailedPredicateException(this, "Precpred(_ctx, 7)"); - State = 256; + State = 239; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 253; Match(WS); + State = 236; Match(WS); } } - State = 258; + State = 241; _errHandler.Sync(this); _la = _input.La(1); } - State = 259; Match(OR); - State = 263; + State = 242; Match(OR); + State = 246; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 260; Match(WS); + State = 243; Match(WS); } } - State = 265; + State = 248; _errHandler.Sync(this); _la = _input.La(1); } - State = 266; ccExpression(8); + State = 249; ccExpression(8); } break; @@ -1162,36 +1290,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 267; + State = 250; if (!(Precpred(_ctx, 6))) throw new FailedPredicateException(this, "Precpred(_ctx, 6)"); - State = 271; + State = 254; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 268; Match(WS); + State = 251; Match(WS); } } - State = 273; + State = 256; _errHandler.Sync(this); _la = _input.La(1); } - State = 274; Match(XOR); - State = 278; + State = 257; Match(XOR); + State = 261; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 275; Match(WS); + State = 258; Match(WS); } } - State = 280; + State = 263; _errHandler.Sync(this); _la = _input.La(1); } - State = 281; ccExpression(7); + State = 264; ccExpression(7); } break; @@ -1199,36 +1327,36 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 282; + State = 265; if (!(Precpred(_ctx, 5))) throw new FailedPredicateException(this, "Precpred(_ctx, 5)"); - State = 286; + State = 269; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 283; Match(WS); + State = 266; Match(WS); } } - State = 288; + State = 271; _errHandler.Sync(this); _la = _input.La(1); } - State = 289; Match(EQV); - State = 293; + State = 272; Match(EQV); + State = 276; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 290; Match(WS); + State = 273; Match(WS); } } - State = 295; + State = 278; _errHandler.Sync(this); _la = _input.La(1); } - State = 296; ccExpression(6); + State = 279; ccExpression(6); } break; @@ -1236,44 +1364,44 @@ private CcExpressionContext ccExpression(int _p) { { _localctx = new CcExpressionContext(_parentctx, _parentState); PushNewRecursionContext(_localctx, _startState, RULE_ccExpression); - State = 297; + State = 280; if (!(Precpred(_ctx, 4))) throw new FailedPredicateException(this, "Precpred(_ctx, 4)"); - State = 301; + State = 284; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 298; Match(WS); + State = 281; Match(WS); } } - State = 303; + State = 286; _errHandler.Sync(this); _la = _input.La(1); } - State = 304; Match(IMP); - State = 308; + State = 287; Match(IMP); + State = 291; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 305; Match(WS); + State = 288; Match(WS); } } - State = 310; + State = 293; _errHandler.Sync(this); _la = _input.La(1); } - State = 311; ccExpression(5); + State = 294; ccExpression(5); } break; } } } - State = 316; + State = 299; _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,40,_ctx); + _alt = Interpreter.AdaptivePredict(_input,36,_ctx); } } } @@ -1330,35 +1458,35 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcIfBlockContext ccIfBlock() { CcIfBlockContext _localctx = new CcIfBlockContext(_ctx, State); - EnterRule(_localctx, 14, RULE_ccIfBlock); + EnterRule(_localctx, 12, RULE_ccIfBlock); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 317; ccIf(); - State = 318; ccBlock(); - State = 322; + State = 300; ccIf(); + State = 301; ccBlock(); + State = 305; _errHandler.Sync(this); _la = _input.La(1); while (_la==HASHELSEIF) { { { - State = 319; ccElseIfBlock(); + State = 302; ccElseIfBlock(); } } - State = 324; + State = 307; _errHandler.Sync(this); _la = _input.La(1); } - State = 326; + State = 309; _la = _input.La(1); if (_la==HASHELSE) { { - State = 325; ccElseBlock(); + State = 308; ccElseBlock(); } } - State = 328; ccEndIf(); + State = 311; ccEndIf(); } } catch (RecognitionException re) { @@ -1408,41 +1536,41 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcIfContext ccIf() { CcIfContext _localctx = new CcIfContext(_ctx, State); - EnterRule(_localctx, 16, RULE_ccIf); + EnterRule(_localctx, 14, RULE_ccIf); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 330; Match(HASHIF); - State = 332; + State = 313; Match(HASHIF); + State = 314; ccExpression(0); + State = 316; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 331; Match(WS); + State = 315; Match(WS); } } - State = 334; + State = 318; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==WS ); - State = 336; ccExpression(0); - State = 338; + State = 320; Match(THEN); + State = 324; _errHandler.Sync(this); _la = _input.La(1); - do { + while (_la==WS) { { { - State = 337; Match(WS); + State = 321; Match(WS); } } - State = 340; + State = 326; _errHandler.Sync(this); _la = _input.La(1); - } while ( _la==WS ); - State = 342; Match(THEN); - State = 343; ccEol(); + } + State = 327; ccEol(); } } catch (RecognitionException re) { @@ -1486,12 +1614,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcElseIfBlockContext ccElseIfBlock() { CcElseIfBlockContext _localctx = new CcElseIfBlockContext(_ctx, State); - EnterRule(_localctx, 18, RULE_ccElseIfBlock); + EnterRule(_localctx, 16, RULE_ccElseIfBlock); try { EnterOuterAlt(_localctx, 1); { - State = 345; ccElseIf(); - State = 346; ccBlock(); + State = 329; ccElseIf(); + State = 330; ccBlock(); } } catch (RecognitionException re) { @@ -1541,41 +1669,41 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcElseIfContext ccElseIf() { CcElseIfContext _localctx = new CcElseIfContext(_ctx, State); - EnterRule(_localctx, 20, RULE_ccElseIf); + EnterRule(_localctx, 18, RULE_ccElseIf); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 348; Match(HASHELSEIF); - State = 350; + State = 332; Match(HASHELSEIF); + State = 333; ccExpression(0); + State = 335; _errHandler.Sync(this); _la = _input.La(1); do { { { - State = 349; Match(WS); + State = 334; Match(WS); } } - State = 352; + State = 337; _errHandler.Sync(this); _la = _input.La(1); } while ( _la==WS ); - State = 354; ccExpression(0); - State = 356; + State = 339; Match(THEN); + State = 343; _errHandler.Sync(this); _la = _input.La(1); - do { + while (_la==WS) { { { - State = 355; Match(WS); + State = 340; Match(WS); } } - State = 358; + State = 345; _errHandler.Sync(this); _la = _input.La(1); - } while ( _la==WS ); - State = 360; Match(THEN); - State = 361; ccEol(); + } + State = 346; ccEol(); } } catch (RecognitionException re) { @@ -1619,12 +1747,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcElseBlockContext ccElseBlock() { CcElseBlockContext _localctx = new CcElseBlockContext(_ctx, State); - EnterRule(_localctx, 22, RULE_ccElseBlock); + EnterRule(_localctx, 20, RULE_ccElseBlock); try { EnterOuterAlt(_localctx, 1); { - State = 363; ccElse(); - State = 364; ccBlock(); + State = 348; ccElse(); + State = 349; ccBlock(); } } catch (RecognitionException re) { @@ -1640,9 +1768,6 @@ public CcElseBlockContext ccElseBlock() { public partial class CcElseContext : ParserRuleContext { public ITerminalNode HASHELSE() { return GetToken(VBAConditionalCompilationParser.HASHELSE, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } public CcElseContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -1666,12 +1791,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcElseContext ccElse() { CcElseContext _localctx = new CcElseContext(_ctx, State); - EnterRule(_localctx, 24, RULE_ccElse); + EnterRule(_localctx, 22, RULE_ccElse); try { EnterOuterAlt(_localctx, 1); { - State = 366; Match(HASHELSE); - State = 367; ccEol(); + State = 351; Match(HASHELSE); } } catch (RecognitionException re) { @@ -1687,9 +1811,6 @@ public CcElseContext ccElse() { public partial class CcEndIfContext : ParserRuleContext { public ITerminalNode HASHENDIF() { return GetToken(VBAConditionalCompilationParser.HASHENDIF, 0); } - public CcEolContext ccEol() { - return GetRuleContext(0); - } public CcEndIfContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -1713,12 +1834,11 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcEndIfContext ccEndIf() { CcEndIfContext _localctx = new CcEndIfContext(_ctx, State); - EnterRule(_localctx, 26, RULE_ccEndIf); + EnterRule(_localctx, 24, RULE_ccEndIf); try { EnterOuterAlt(_localctx, 1); { - State = 369; Match(HASHENDIF); - State = 370; ccEol(); + State = 353; Match(HASHENDIF); } } catch (RecognitionException re) { @@ -1733,11 +1853,11 @@ public CcEndIfContext ccEndIf() { } public partial class CcEolContext : ParserRuleContext { - public ITerminalNode SINGLEQUOTE() { return GetToken(VBAConditionalCompilationParser.SINGLEQUOTE, 0); } - public IReadOnlyList NEWLINE() { return GetTokens(VBAConditionalCompilationParser.NEWLINE); } - public ITerminalNode NEWLINE(int i) { - return GetToken(VBAConditionalCompilationParser.NEWLINE, i); + public CommentContext comment() { + return GetRuleContext(0); } + public ITerminalNode Eof() { return GetToken(VBAConditionalCompilationParser.Eof, 0); } + public ITerminalNode NEWLINE() { return GetToken(VBAConditionalCompilationParser.NEWLINE, 0); } public CcEolContext(ParserRuleContext parent, int invokingState) : base(parent, invokingState) { @@ -1761,48 +1881,25 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public CcEolContext ccEol() { CcEolContext _localctx = new CcEolContext(_ctx, State); - EnterRule(_localctx, 28, RULE_ccEol); + EnterRule(_localctx, 26, RULE_ccEol); int _la; try { - int _alt; EnterOuterAlt(_localctx, 1); { - State = 379; - switch ( Interpreter.AdaptivePredict(_input,48,_ctx) ) { - case 1: + State = 356; + _la = _input.La(1); + if (_la==SINGLEQUOTE) { { - State = 372; Match(SINGLEQUOTE); - State = 376; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,47,_ctx); - while ( _alt!=2 && _alt!=global::Antlr4.Runtime.Atn.ATN.InvalidAltNumber ) { - if ( _alt==1 ) { - { - { - State = 373; - _la = _input.La(1); - if ( _la <= 0 || (_la==NEWLINE) ) { - _errHandler.RecoverInline(this); - } - Consume(); - } - } - } - State = 378; - _errHandler.Sync(this); - _alt = Interpreter.AdaptivePredict(_input,47,_ctx); - } + State = 355; comment(); } - break; } - State = 382; - switch ( Interpreter.AdaptivePredict(_input,49,_ctx) ) { - case 1: - { - State = 381; Match(NEWLINE); - } - break; + + State = 358; + _la = _input.La(1); + if ( !(_la==Eof || _la==NEWLINE) ) { + _errHandler.RecoverInline(this); } + Consume(); } } catch (RecognitionException re) { @@ -1852,41 +1949,41 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IntrinsicFunctionContext intrinsicFunction() { IntrinsicFunctionContext _localctx = new IntrinsicFunctionContext(_ctx, State); - EnterRule(_localctx, 30, RULE_intrinsicFunction); + EnterRule(_localctx, 28, RULE_intrinsicFunction); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 384; intrinsicFunctionName(); - State = 385; Match(LPAREN); - State = 389; + State = 360; intrinsicFunctionName(); + State = 361; Match(LPAREN); + State = 365; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 386; Match(WS); + State = 362; Match(WS); } } - State = 391; + State = 367; _errHandler.Sync(this); _la = _input.La(1); } - State = 392; ccExpression(0); - State = 396; + State = 368; ccExpression(0); + State = 372; _errHandler.Sync(this); _la = _input.La(1); while (_la==WS) { { { - State = 393; Match(WS); + State = 369; Match(WS); } } - State = 398; + State = 374; _errHandler.Sync(this); _la = _input.La(1); } - State = 399; Match(RPAREN); + State = 375; Match(RPAREN); } } catch (RecognitionException re) { @@ -1942,12 +2039,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public IntrinsicFunctionNameContext intrinsicFunctionName() { IntrinsicFunctionNameContext _localctx = new IntrinsicFunctionNameContext(_ctx, State); - EnterRule(_localctx, 32, RULE_intrinsicFunctionName); + EnterRule(_localctx, 30, RULE_intrinsicFunctionName); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 401; + State = 377; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CINT) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CVAR) | (1L << FIX) | (1L << INT) | (1L << LEN) | (1L << LENB) | (1L << SGN))) != 0)) ) { _errHandler.RecoverInline(this); @@ -1994,16 +2091,16 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public NameContext name() { NameContext _localctx = new NameContext(_ctx, State); - EnterRule(_localctx, 34, RULE_name); + EnterRule(_localctx, 32, RULE_name); try { EnterOuterAlt(_localctx, 1); { - State = 403; Match(IDENTIFIER); - State = 405; - switch ( Interpreter.AdaptivePredict(_input,52,_ctx) ) { + State = 379; Match(IDENTIFIER); + State = 381; + switch ( Interpreter.AdaptivePredict(_input,46,_ctx) ) { case 1: { - State = 404; typeHint(); + State = 380; typeHint(); } break; } @@ -2051,12 +2148,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public TypeHintContext typeHint() { TypeHintContext _localctx = new TypeHintContext(_ctx, State); - EnterRule(_localctx, 36, RULE_typeHint); + EnterRule(_localctx, 34, RULE_typeHint); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 407; + State = 383; _la = _input.La(1); if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << EXCLAMATIONPOINT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND))) != 0) || _la==POW) ) { _errHandler.RecoverInline(this); @@ -2110,12 +2207,12 @@ public override TResult Accept(IParseTreeVisitor visitor) { [RuleVersion(0)] public LiteralContext literal() { LiteralContext _localctx = new LiteralContext(_ctx, State); - EnterRule(_localctx, 38, RULE_literal); + EnterRule(_localctx, 36, RULE_literal); int _la; try { EnterOuterAlt(_localctx, 1); { - State = 409; + State = 385; _la = _input.La(1); if ( !(((((_la - 89)) & ~0x3f) == 0 && ((1L << (_la - 89)) & ((1L << (EMPTY - 89)) | (1L << (FALSE - 89)) | (1L << (NOTHING - 89)) | (1L << (NULL - 89)))) != 0) || ((((_la - 189)) & ~0x3f) == 0 && ((1L << (_la - 189)) & ((1L << (TRUE - 189)) | (1L << (STRINGLITERAL - 189)) | (1L << (OCTLITERAL - 189)) | (1L << (HEXLITERAL - 189)) | (1L << (FLOATLITERAL - 189)) | (1L << (INTEGERLITERAL - 189)) | (1L << (DATELITERAL - 189)))) != 0)) ) { _errHandler.RecoverInline(this); @@ -2134,9 +2231,90 @@ public LiteralContext literal() { return _localctx; } + public partial class CommentContext : ParserRuleContext { + public ITerminalNode SINGLEQUOTE() { return GetToken(VBAConditionalCompilationParser.SINGLEQUOTE, 0); } + public IReadOnlyList LINE_CONTINUATION() { return GetTokens(VBAConditionalCompilationParser.LINE_CONTINUATION); } + public IReadOnlyList NEWLINE() { return GetTokens(VBAConditionalCompilationParser.NEWLINE); } + public ITerminalNode NEWLINE(int i) { + return GetToken(VBAConditionalCompilationParser.NEWLINE, i); + } + public ITerminalNode LINE_CONTINUATION(int i) { + return GetToken(VBAConditionalCompilationParser.LINE_CONTINUATION, i); + } + public CommentContext(ParserRuleContext parent, int invokingState) + : base(parent, invokingState) + { + } + public override int RuleIndex { get { return RULE_comment; } } + public override void EnterRule(IParseTreeListener listener) { + IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; + if (typedListener != null) typedListener.EnterComment(this); + } + public override void ExitRule(IParseTreeListener listener) { + IVBAConditionalCompilationParserListener typedListener = listener as IVBAConditionalCompilationParserListener; + if (typedListener != null) typedListener.ExitComment(this); + } + public override TResult Accept(IParseTreeVisitor visitor) { + IVBAConditionalCompilationParserVisitor typedVisitor = visitor as IVBAConditionalCompilationParserVisitor; + if (typedVisitor != null) return typedVisitor.VisitComment(this); + else return visitor.VisitChildren(this); + } + } + + [RuleVersion(0)] + public CommentContext comment() { + CommentContext _localctx = new CommentContext(_ctx, State); + EnterRule(_localctx, 38, RULE_comment); + int _la; + try { + EnterOuterAlt(_localctx, 1); + { + State = 387; Match(SINGLEQUOTE); + State = 392; + _errHandler.Sync(this); + _la = _input.La(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << ABS) | (1L << ANY) | (1L << ARRAY) | (1L << CBOOL) | (1L << CBYTE) | (1L << CCUR) | (1L << CDATE) | (1L << CDBL) | (1L << CDEC) | (1L << CINT) | (1L << CIRCLE) | (1L << CLNG) | (1L << CLNGLNG) | (1L << CLNGPTR) | (1L << CSNG) | (1L << CSTR) | (1L << CURRENCY) | (1L << CVAR) | (1L << CVERR) | (1L << DEBUG) | (1L << DOEVENTS) | (1L << EXIT) | (1L << FIX) | (1L << INPUTB) | (1L << INT) | (1L << LBOUND) | (1L << LEN) | (1L << LENB) | (1L << LONGLONG) | (1L << LONGPTR) | (1L << MIDB) | (1L << MIDBTYPESUFFIX) | (1L << MIDTYPESUFFIX) | (1L << OPTION) | (1L << PSET) | (1L << SCALE) | (1L << SGN) | (1L << UBOUND) | (1L << COMMA) | (1L << COLON) | (1L << SEMICOLON) | (1L << EXCLAMATIONPOINT) | (1L << DOT) | (1L << HASH) | (1L << AT) | (1L << PERCENT) | (1L << DOLLAR) | (1L << AMPERSAND) | (1L << ACCESS) | (1L << ADDRESSOF) | (1L << ALIAS) | (1L << AND) | (1L << ATTRIBUTE) | (1L << APPEND) | (1L << AS) | (1L << BEGIN) | (1L << BINARY) | (1L << BOOLEAN) | (1L << BYVAL) | (1L << BYREF) | (1L << BYTE) | (1L << CALL) | (1L << CASE))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (CLASS - 64)) | (1L << (CLOSE - 64)) | (1L << (CONST - 64)) | (1L << (DATABASE - 64)) | (1L << (DATE - 64)) | (1L << (DECLARE - 64)) | (1L << (DEFBOOL - 64)) | (1L << (DEFBYTE - 64)) | (1L << (DEFDATE - 64)) | (1L << (DEFDBL - 64)) | (1L << (DEFCUR - 64)) | (1L << (DEFINT - 64)) | (1L << (DEFLNG - 64)) | (1L << (DEFLNGLNG - 64)) | (1L << (DEFLNGPTR - 64)) | (1L << (DEFOBJ - 64)) | (1L << (DEFSNG - 64)) | (1L << (DEFSTR - 64)) | (1L << (DEFVAR - 64)) | (1L << (DIM - 64)) | (1L << (DO - 64)) | (1L << (DOUBLE - 64)) | (1L << (EACH - 64)) | (1L << (ELSE - 64)) | (1L << (ELSEIF - 64)) | (1L << (EMPTY - 64)) | (1L << (END_ENUM - 64)) | (1L << (END_FUNCTION - 64)) | (1L << (END_IF - 64)) | (1L << (END_PROPERTY - 64)) | (1L << (END_SELECT - 64)) | (1L << (END_SUB - 64)) | (1L << (END_TYPE - 64)) | (1L << (END_WITH - 64)) | (1L << (END - 64)) | (1L << (ENUM - 64)) | (1L << (EQV - 64)) | (1L << (ERASE - 64)) | (1L << (ERROR - 64)) | (1L << (EVENT - 64)) | (1L << (EXIT_DO - 64)) | (1L << (EXIT_FOR - 64)) | (1L << (EXIT_FUNCTION - 64)) | (1L << (EXIT_PROPERTY - 64)) | (1L << (EXIT_SUB - 64)) | (1L << (FALSE - 64)) | (1L << (FRIEND - 64)) | (1L << (FOR - 64)) | (1L << (FUNCTION - 64)) | (1L << (GET - 64)) | (1L << (GLOBAL - 64)) | (1L << (GOSUB - 64)) | (1L << (GOTO - 64)) | (1L << (IF - 64)) | (1L << (IMP - 64)) | (1L << (IMPLEMENTS - 64)) | (1L << (IN - 64)) | (1L << (INPUT - 64)) | (1L << (IS - 64)) | (1L << (INTEGER - 64)) | (1L << (LOCK - 64)) | (1L << (LONG - 64)) | (1L << (LOOP - 64)) | (1L << (LET - 64)))) != 0) || ((((_la - 128)) & ~0x3f) == 0 && ((1L << (_la - 128)) & ((1L << (LIB - 128)) | (1L << (LIKE - 128)) | (1L << (LINE_INPUT - 128)) | (1L << (LOCK_READ - 128)) | (1L << (LOCK_WRITE - 128)) | (1L << (LOCK_READ_WRITE - 128)) | (1L << (LSET - 128)) | (1L << (ME - 128)) | (1L << (MID - 128)) | (1L << (MOD - 128)) | (1L << (NEXT - 128)) | (1L << (NEW - 128)) | (1L << (NOT - 128)) | (1L << (NOTHING - 128)) | (1L << (NULL - 128)) | (1L << (ON - 128)) | (1L << (ON_ERROR - 128)) | (1L << (ON_LOCAL_ERROR - 128)) | (1L << (OPEN - 128)) | (1L << (OPTIONAL - 128)) | (1L << (OPTION_BASE - 128)) | (1L << (OPTION_EXPLICIT - 128)) | (1L << (OPTION_COMPARE - 128)) | (1L << (OPTION_PRIVATE_MODULE - 128)) | (1L << (OR - 128)) | (1L << (OUTPUT - 128)) | (1L << (PARAMARRAY - 128)) | (1L << (PRESERVE - 128)) | (1L << (PRINT - 128)) | (1L << (PRIVATE - 128)) | (1L << (PROPERTY_GET - 128)) | (1L << (PROPERTY_LET - 128)) | (1L << (PROPERTY_SET - 128)) | (1L << (PTRSAFE - 128)) | (1L << (PUBLIC - 128)) | (1L << (PUT - 128)) | (1L << (RANDOM - 128)) | (1L << (RAISEEVENT - 128)) | (1L << (READ - 128)) | (1L << (READ_WRITE - 128)) | (1L << (REDIM - 128)) | (1L << (REM - 128)) | (1L << (RESET - 128)) | (1L << (RESUME - 128)) | (1L << (RETURN - 128)) | (1L << (RSET - 128)) | (1L << (SEEK - 128)) | (1L << (SELECT - 128)) | (1L << (SET - 128)) | (1L << (SHARED - 128)) | (1L << (SINGLE - 128)) | (1L << (SPC - 128)) | (1L << (STATIC - 128)) | (1L << (STEP - 128)) | (1L << (STOP - 128)) | (1L << (STRING - 128)) | (1L << (SUB - 128)) | (1L << (TAB - 128)) | (1L << (TEXT - 128)) | (1L << (THEN - 128)) | (1L << (TO - 128)) | (1L << (TRUE - 128)) | (1L << (TYPE - 128)) | (1L << (TYPEOF - 128)))) != 0) || ((((_la - 192)) & ~0x3f) == 0 && ((1L << (_la - 192)) & ((1L << (UNLOCK - 192)) | (1L << (UNTIL - 192)) | (1L << (VARIANT - 192)) | (1L << (VERSION - 192)) | (1L << (WEND - 192)) | (1L << (WHILE - 192)) | (1L << (WIDTH - 192)) | (1L << (WITH - 192)) | (1L << (WITHEVENTS - 192)) | (1L << (WRITE - 192)) | (1L << (XOR - 192)) | (1L << (ASSIGN - 192)) | (1L << (DIV - 192)) | (1L << (INTDIV - 192)) | (1L << (EQ - 192)) | (1L << (GEQ - 192)) | (1L << (GT - 192)) | (1L << (LEQ - 192)) | (1L << (LPAREN - 192)) | (1L << (LT - 192)) | (1L << (MINUS - 192)) | (1L << (MULT - 192)) | (1L << (NEQ - 192)) | (1L << (PLUS - 192)) | (1L << (POW - 192)) | (1L << (RPAREN - 192)) | (1L << (HASHCONST - 192)) | (1L << (HASHIF - 192)) | (1L << (HASHELSEIF - 192)) | (1L << (HASHELSE - 192)) | (1L << (HASHENDIF - 192)) | (1L << (L_SQUARE_BRACKET - 192)) | (1L << (R_SQUARE_BRACKET - 192)) | (1L << (STRINGLITERAL - 192)) | (1L << (OCTLITERAL - 192)) | (1L << (HEXLITERAL - 192)) | (1L << (FLOATLITERAL - 192)) | (1L << (INTEGERLITERAL - 192)) | (1L << (DATELITERAL - 192)) | (1L << (SINGLEQUOTE - 192)) | (1L << (UNDERSCORE - 192)) | (1L << (WS - 192)) | (1L << (IDENTIFIER - 192)) | (1L << (LINE_CONTINUATION - 192)) | (1L << (GUIDLITERAL - 192)) | (1L << (ERRORCHAR - 192)))) != 0)) { + { + State = 390; + switch ( Interpreter.AdaptivePredict(_input,47,_ctx) ) { + case 1: + { + State = 388; Match(LINE_CONTINUATION); + } + break; + + case 2: + { + State = 389; + _la = _input.La(1); + if ( _la <= 0 || (_la==NEWLINE) ) { + _errHandler.RecoverInline(this); + } + Consume(); + } + break; + } + } + State = 394; + _errHandler.Sync(this); + _la = _input.La(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.ReportError(this, re); + _errHandler.Recover(this, re); + } + finally { + ExitRule(); + } + return _localctx; + } + public override bool Sempred(RuleContext _localctx, int ruleIndex, int predIndex) { switch (ruleIndex) { - case 6: return ccExpression_sempred((CcExpressionContext)_localctx, predIndex); + case 5: return ccExpression_sempred((CcExpressionContext)_localctx, predIndex); } return true; } @@ -2170,179 +2348,170 @@ private bool ccExpression_sempred(CcExpressionContext _localctx, int predIndex) } public static readonly string _serializedATN = - "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF0\x19E\x4\x2"+ + "\x3\xAF6F\x8320\x479D\xB75C\x4880\x1605\x191C\xAB37\x3\xF0\x18E\x4\x2"+ "\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6\t\x6\x4\a\t\a\x4\b\t\b\x4"+ "\t\t\t\x4\n\t\n\x4\v\t\v\x4\f\t\f\x4\r\t\r\x4\xE\t\xE\x4\xF\t\xF\x4\x10"+ "\t\x10\x4\x11\t\x11\x4\x12\t\x12\x4\x13\t\x13\x4\x14\t\x14\x4\x15\t\x15"+ "\x3\x2\x3\x2\x3\x2\x3\x3\x3\x3\x3\x3\a\x3\x31\n\x3\f\x3\xE\x3\x34\v\x3"+ - "\x3\x4\a\x4\x37\n\x4\f\x4\xE\x4:\v\x4\x3\x4\x3\x4\x6\x4>\n\x4\r\x4\xE"+ - "\x4?\x3\x4\x3\x4\x6\x4\x44\n\x4\r\x4\xE\x4\x45\x3\x4\x3\x4\x6\x4J\n\x4"+ - "\r\x4\xE\x4K\x3\x4\x3\x4\x3\x4\x3\x5\x6\x5R\n\x5\r\x5\xE\x5S\x3\x6\x3"+ - "\x6\x6\x6X\n\x6\r\x6\xE\x6Y\x3\x6\x5\x6]\n\x6\x3\a\x3\a\x3\b\x3\b\x3\b"+ - "\a\b\x64\n\b\f\b\xE\bg\v\b\x3\b\x3\b\x3\b\a\bl\n\b\f\b\xE\bo\v\b\x3\b"+ - "\x3\b\x3\b\a\bt\n\b\f\b\xE\bw\v\b\x3\b\x3\b\a\b{\n\b\f\b\xE\b~\v\b\x3"+ - "\b\x3\b\x3\b\x3\b\x3\b\x5\b\x85\n\b\x3\b\x3\b\a\b\x89\n\b\f\b\xE\b\x8C"+ - "\v\b\x3\b\x3\b\a\b\x90\n\b\f\b\xE\b\x93\v\b\x3\b\x3\b\x3\b\a\b\x98\n\b"+ - "\f\b\xE\b\x9B\v\b\x3\b\x3\b\a\b\x9F\n\b\f\b\xE\b\xA2\v\b\x3\b\x3\b\x3"+ - "\b\a\b\xA7\n\b\f\b\xE\b\xAA\v\b\x3\b\x3\b\a\b\xAE\n\b\f\b\xE\b\xB1\v\b"+ - "\x3\b\x3\b\x3\b\a\b\xB6\n\b\f\b\xE\b\xB9\v\b\x3\b\x3\b\a\b\xBD\n\b\f\b"+ - "\xE\b\xC0\v\b\x3\b\x3\b\x3\b\a\b\xC5\n\b\f\b\xE\b\xC8\v\b\x3\b\x3\b\a"+ - "\b\xCC\n\b\f\b\xE\b\xCF\v\b\x3\b\x3\b\x3\b\a\b\xD4\n\b\f\b\xE\b\xD7\v"+ - "\b\x3\b\x3\b\a\b\xDB\n\b\f\b\xE\b\xDE\v\b\x3\b\x3\b\x3\b\a\b\xE3\n\b\f"+ - "\b\xE\b\xE6\v\b\x3\b\x3\b\a\b\xEA\n\b\f\b\xE\b\xED\v\b\x3\b\x3\b\x3\b"+ - "\a\b\xF2\n\b\f\b\xE\b\xF5\v\b\x3\b\x3\b\a\b\xF9\n\b\f\b\xE\b\xFC\v\b\x3"+ - "\b\x3\b\x3\b\a\b\x101\n\b\f\b\xE\b\x104\v\b\x3\b\x3\b\a\b\x108\n\b\f\b"+ - "\xE\b\x10B\v\b\x3\b\x3\b\x3\b\a\b\x110\n\b\f\b\xE\b\x113\v\b\x3\b\x3\b"+ - "\a\b\x117\n\b\f\b\xE\b\x11A\v\b\x3\b\x3\b\x3\b\a\b\x11F\n\b\f\b\xE\b\x122"+ - "\v\b\x3\b\x3\b\a\b\x126\n\b\f\b\xE\b\x129\v\b\x3\b\x3\b\x3\b\a\b\x12E"+ - "\n\b\f\b\xE\b\x131\v\b\x3\b\x3\b\a\b\x135\n\b\f\b\xE\b\x138\v\b\x3\b\a"+ - "\b\x13B\n\b\f\b\xE\b\x13E\v\b\x3\t\x3\t\x3\t\a\t\x143\n\t\f\t\xE\t\x146"+ - "\v\t\x3\t\x5\t\x149\n\t\x3\t\x3\t\x3\n\x3\n\x6\n\x14F\n\n\r\n\xE\n\x150"+ - "\x3\n\x3\n\x6\n\x155\n\n\r\n\xE\n\x156\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x3"+ - "\f\x3\f\x6\f\x161\n\f\r\f\xE\f\x162\x3\f\x3\f\x6\f\x167\n\f\r\f\xE\f\x168"+ - "\x3\f\x3\f\x3\f\x3\r\x3\r\x3\r\x3\xE\x3\xE\x3\xE\x3\xF\x3\xF\x3\xF\x3"+ - "\x10\x3\x10\a\x10\x179\n\x10\f\x10\xE\x10\x17C\v\x10\x5\x10\x17E\n\x10"+ - "\x3\x10\x5\x10\x181\n\x10\x3\x11\x3\x11\x3\x11\a\x11\x186\n\x11\f\x11"+ - "\xE\x11\x189\v\x11\x3\x11\x3\x11\a\x11\x18D\n\x11\f\x11\xE\x11\x190\v"+ - "\x11\x3\x11\x3\x11\x3\x12\x3\x12\x3\x13\x3\x13\x5\x13\x198\n\x13\x3\x14"+ - "\x3\x14\x3\x15\x3\x15\x3\x15\x2\x2\x3\xE\x16\x2\x2\x4\x2\x6\x2\b\x2\n"+ - "\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A\x2\x1C\x2\x1E\x2"+ - " \x2\"\x2$\x2&\x2(\x2\x2\n\x3\x2\xDC\xE0\x4\x2\xCE\xCE\xD7\xD7\x4\x2\xD6"+ - "\xD6\xD9\xD9\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8\x3\x2\xE9\xE9\v\x2"+ - "\x3\x3\x6\n\f\f\xE\x12\x14\x14\x19\x19\x1B\x1B\x1D\x1E\'\'\x5\x2,,.\x32"+ - "\xDA\xDA\a\x2[[oo\x8F\x90\xBF\xBF\xE3\xE8\x1CD\x2*\x3\x2\x2\x2\x4\x32"+ - "\x3\x2\x2\x2\x6\x38\x3\x2\x2\x2\bQ\x3\x2\x2\x2\nW\x3\x2\x2\x2\f^\x3\x2"+ - "\x2\x2\xE\x84\x3\x2\x2\x2\x10\x13F\x3\x2\x2\x2\x12\x14C\x3\x2\x2\x2\x14"+ - "\x15B\x3\x2\x2\x2\x16\x15E\x3\x2\x2\x2\x18\x16D\x3\x2\x2\x2\x1A\x170\x3"+ - "\x2\x2\x2\x1C\x173\x3\x2\x2\x2\x1E\x17D\x3\x2\x2\x2 \x182\x3\x2\x2\x2"+ - "\"\x193\x3\x2\x2\x2$\x195\x3\x2\x2\x2&\x199\x3\x2\x2\x2(\x19B\x3\x2\x2"+ - "\x2*+\x5\x4\x3\x2+,\a\x2\x2\x3,\x3\x3\x2\x2\x2-\x31\x5\x6\x4\x2.\x31\x5"+ - "\x10\t\x2/\x31\x5\b\x5\x2\x30-\x3\x2\x2\x2\x30.\x3\x2\x2\x2\x30/\x3\x2"+ - "\x2\x2\x31\x34\x3\x2\x2\x2\x32\x30\x3\x2\x2\x2\x32\x33\x3\x2\x2\x2\x33"+ - "\x5\x3\x2\x2\x2\x34\x32\x3\x2\x2\x2\x35\x37\a\xEC\x2\x2\x36\x35\x3\x2"+ - "\x2\x2\x37:\x3\x2\x2\x2\x38\x36\x3\x2\x2\x2\x38\x39\x3\x2\x2\x2\x39;\x3"+ - "\x2\x2\x2:\x38\x3\x2\x2\x2;=\a\xDC\x2\x2<>\a\xEC\x2\x2=<\x3\x2\x2\x2>"+ - "?\x3\x2\x2\x2?=\x3\x2\x2\x2?@\x3\x2\x2\x2@\x41\x3\x2\x2\x2\x41\x43\x5"+ - "\f\a\x2\x42\x44\a\xEC\x2\x2\x43\x42\x3\x2\x2\x2\x44\x45\x3\x2\x2\x2\x45"+ - "\x43\x3\x2\x2\x2\x45\x46\x3\x2\x2\x2\x46G\x3\x2\x2\x2GI\a\xD0\x2\x2HJ"+ - "\a\xEC\x2\x2IH\x3\x2\x2\x2JK\x3\x2\x2\x2KI\x3\x2\x2\x2KL\x3\x2\x2\x2L"+ - "M\x3\x2\x2\x2MN\x5\xE\b\x2NO\x5\x1E\x10\x2O\a\x3\x2\x2\x2PR\x5\n\x6\x2"+ - "QP\x3\x2\x2\x2RS\x3\x2\x2\x2SQ\x3\x2\x2\x2ST\x3\x2\x2\x2T\t\x3\x2\x2\x2"+ - "UX\a\xEE\x2\x2VX\n\x2\x2\x2WU\x3\x2\x2\x2WV\x3\x2\x2\x2XY\x3\x2\x2\x2"+ - "YW\x3\x2\x2\x2YZ\x3\x2\x2\x2Z\\\x3\x2\x2\x2[]\a\xE9\x2\x2\\[\x3\x2\x2"+ - "\x2\\]\x3\x2\x2\x2]\v\x3\x2\x2\x2^_\x5$\x13\x2_\r\x3\x2\x2\x2`\x61\b\b"+ - "\x1\x2\x61\x65\a\xD6\x2\x2\x62\x64\a\xEC\x2\x2\x63\x62\x3\x2\x2\x2\x64"+ - "g\x3\x2\x2\x2\x65\x63\x3\x2\x2\x2\x65\x66\x3\x2\x2\x2\x66h\x3\x2\x2\x2"+ - "g\x65\x3\x2\x2\x2h\x85\x5\xE\b\x12im\a\x8E\x2\x2jl\a\xEC\x2\x2kj\x3\x2"+ - "\x2\x2lo\x3\x2\x2\x2mk\x3\x2\x2\x2mn\x3\x2\x2\x2np\x3\x2\x2\x2om\x3\x2"+ - "\x2\x2p\x85\x5\xE\b\vqu\a\xD4\x2\x2rt\a\xEC\x2\x2sr\x3\x2\x2\x2tw\x3\x2"+ - "\x2\x2us\x3\x2\x2\x2uv\x3\x2\x2\x2vx\x3\x2\x2\x2wu\x3\x2\x2\x2x|\x5\xE"+ - "\b\x2y{\a\xEC\x2\x2zy\x3\x2\x2\x2{~\x3\x2\x2\x2|z\x3\x2\x2\x2|}\x3\x2"+ - "\x2\x2}\x7F\x3\x2\x2\x2~|\x3\x2\x2\x2\x7F\x80\a\xDB\x2\x2\x80\x85\x3\x2"+ - "\x2\x2\x81\x85\x5 \x11\x2\x82\x85\x5(\x15\x2\x83\x85\x5$\x13\x2\x84`\x3"+ - "\x2\x2\x2\x84i\x3\x2\x2\x2\x84q\x3\x2\x2\x2\x84\x81\x3\x2\x2\x2\x84\x82"+ - "\x3\x2\x2\x2\x84\x83\x3\x2\x2\x2\x85\x13C\x3\x2\x2\x2\x86\x8A\f\x13\x2"+ - "\x2\x87\x89\a\xEC\x2\x2\x88\x87\x3\x2\x2\x2\x89\x8C\x3\x2\x2\x2\x8A\x88"+ - "\x3\x2\x2\x2\x8A\x8B\x3\x2\x2\x2\x8B\x8D\x3\x2\x2\x2\x8C\x8A\x3\x2\x2"+ - "\x2\x8D\x91\a\xDA\x2\x2\x8E\x90\a\xEC\x2\x2\x8F\x8E\x3\x2\x2\x2\x90\x93"+ - "\x3\x2\x2\x2\x91\x8F\x3\x2\x2\x2\x91\x92\x3\x2\x2\x2\x92\x94\x3\x2\x2"+ - "\x2\x93\x91\x3\x2\x2\x2\x94\x13B\x5\xE\b\x14\x95\x99\f\x11\x2\x2\x96\x98"+ - "\a\xEC\x2\x2\x97\x96\x3\x2\x2\x2\x98\x9B\x3\x2\x2\x2\x99\x97\x3\x2\x2"+ - "\x2\x99\x9A\x3\x2\x2\x2\x9A\x9C\x3\x2\x2\x2\x9B\x99\x3\x2\x2\x2\x9C\xA0"+ - "\t\x3\x2\x2\x9D\x9F\a\xEC\x2\x2\x9E\x9D\x3\x2\x2\x2\x9F\xA2\x3\x2\x2\x2"+ - "\xA0\x9E\x3\x2\x2\x2\xA0\xA1\x3\x2\x2\x2\xA1\xA3\x3\x2\x2\x2\xA2\xA0\x3"+ - "\x2\x2\x2\xA3\x13B\x5\xE\b\x12\xA4\xA8\f\x10\x2\x2\xA5\xA7\a\xEC\x2\x2"+ - "\xA6\xA5\x3\x2\x2\x2\xA7\xAA\x3\x2\x2\x2\xA8\xA6\x3\x2\x2\x2\xA8\xA9\x3"+ - "\x2\x2\x2\xA9\xAB\x3\x2\x2\x2\xAA\xA8\x3\x2\x2\x2\xAB\xAF\a\xCF\x2\x2"+ - "\xAC\xAE\a\xEC\x2\x2\xAD\xAC\x3\x2\x2\x2\xAE\xB1\x3\x2\x2\x2\xAF\xAD\x3"+ - "\x2\x2\x2\xAF\xB0\x3\x2\x2\x2\xB0\xB2\x3\x2\x2\x2\xB1\xAF\x3\x2\x2\x2"+ - "\xB2\x13B\x5\xE\b\x11\xB3\xB7\f\xF\x2\x2\xB4\xB6\a\xEC\x2\x2\xB5\xB4\x3"+ - "\x2\x2\x2\xB6\xB9\x3\x2\x2\x2\xB7\xB5\x3\x2\x2\x2\xB7\xB8\x3\x2\x2\x2"+ - "\xB8\xBA\x3\x2\x2\x2\xB9\xB7\x3\x2\x2\x2\xBA\xBE\a\x8B\x2\x2\xBB\xBD\a"+ - "\xEC\x2\x2\xBC\xBB\x3\x2\x2\x2\xBD\xC0\x3\x2\x2\x2\xBE\xBC\x3\x2\x2\x2"+ - "\xBE\xBF\x3\x2\x2\x2\xBF\xC1\x3\x2\x2\x2\xC0\xBE\x3\x2\x2\x2\xC1\x13B"+ - "\x5\xE\b\x10\xC2\xC6\f\xE\x2\x2\xC3\xC5\a\xEC\x2\x2\xC4\xC3\x3\x2\x2\x2"+ - "\xC5\xC8\x3\x2\x2\x2\xC6\xC4\x3\x2\x2\x2\xC6\xC7\x3\x2\x2\x2\xC7\xC9\x3"+ - "\x2\x2\x2\xC8\xC6\x3\x2\x2\x2\xC9\xCD\t\x4\x2\x2\xCA\xCC\a\xEC\x2\x2\xCB"+ - "\xCA\x3\x2\x2\x2\xCC\xCF\x3\x2\x2\x2\xCD\xCB\x3\x2\x2\x2\xCD\xCE\x3\x2"+ - "\x2\x2\xCE\xD0\x3\x2\x2\x2\xCF\xCD\x3\x2\x2\x2\xD0\x13B\x5\xE\b\xF\xD1"+ - "\xD5\f\r\x2\x2\xD2\xD4\a\xEC\x2\x2\xD3\xD2\x3\x2\x2\x2\xD4\xD7\x3\x2\x2"+ - "\x2\xD5\xD3\x3\x2\x2\x2\xD5\xD6\x3\x2\x2\x2\xD6\xD8\x3\x2\x2\x2\xD7\xD5"+ - "\x3\x2\x2\x2\xD8\xDC\a\x32\x2\x2\xD9\xDB\a\xEC\x2\x2\xDA\xD9\x3\x2\x2"+ - "\x2\xDB\xDE\x3\x2\x2\x2\xDC\xDA\x3\x2\x2\x2\xDC\xDD\x3\x2\x2\x2\xDD\xDF"+ - "\x3\x2\x2\x2\xDE\xDC\x3\x2\x2\x2\xDF\x13B\x5\xE\b\xE\xE0\xE4\f\f\x2\x2"+ - "\xE1\xE3\a\xEC\x2\x2\xE2\xE1\x3\x2\x2\x2\xE3\xE6\x3\x2\x2\x2\xE4\xE2\x3"+ - "\x2\x2\x2\xE4\xE5\x3\x2\x2\x2\xE5\xE7\x3\x2\x2\x2\xE6\xE4\x3\x2\x2\x2"+ - "\xE7\xEB\t\x5\x2\x2\xE8\xEA\a\xEC\x2\x2\xE9\xE8\x3\x2\x2\x2\xEA\xED\x3"+ - "\x2\x2\x2\xEB\xE9\x3\x2\x2\x2\xEB\xEC\x3\x2\x2\x2\xEC\xEE\x3\x2\x2\x2"+ - "\xED\xEB\x3\x2\x2\x2\xEE\x13B\x5\xE\b\r\xEF\xF3\f\n\x2\x2\xF0\xF2\a\xEC"+ - "\x2\x2\xF1\xF0\x3\x2\x2\x2\xF2\xF5\x3\x2\x2\x2\xF3\xF1\x3\x2\x2\x2\xF3"+ - "\xF4\x3\x2\x2\x2\xF4\xF6\x3\x2\x2\x2\xF5\xF3\x3\x2\x2\x2\xF6\xFA\a\x36"+ - "\x2\x2\xF7\xF9\a\xEC\x2\x2\xF8\xF7\x3\x2\x2\x2\xF9\xFC\x3\x2\x2\x2\xFA"+ - "\xF8\x3\x2\x2\x2\xFA\xFB\x3\x2\x2\x2\xFB\xFD\x3\x2\x2\x2\xFC\xFA\x3\x2"+ - "\x2\x2\xFD\x13B\x5\xE\b\v\xFE\x102\f\t\x2\x2\xFF\x101\a\xEC\x2\x2\x100"+ - "\xFF\x3\x2\x2\x2\x101\x104\x3\x2\x2\x2\x102\x100\x3\x2\x2\x2\x102\x103"+ - "\x3\x2\x2\x2\x103\x105\x3\x2\x2\x2\x104\x102\x3\x2\x2\x2\x105\x109\a\x9A"+ - "\x2\x2\x106\x108\a\xEC\x2\x2\x107\x106\x3\x2\x2\x2\x108\x10B\x3\x2\x2"+ - "\x2\x109\x107\x3\x2\x2\x2\x109\x10A\x3\x2\x2\x2\x10A\x10C\x3\x2\x2\x2"+ - "\x10B\x109\x3\x2\x2\x2\x10C\x13B\x5\xE\b\n\x10D\x111\f\b\x2\x2\x10E\x110"+ - "\a\xEC\x2\x2\x10F\x10E\x3\x2\x2\x2\x110\x113\x3\x2\x2\x2\x111\x10F\x3"+ - "\x2\x2\x2\x111\x112\x3\x2\x2\x2\x112\x114\x3\x2\x2\x2\x113\x111\x3\x2"+ - "\x2\x2\x114\x118\a\xCC\x2\x2\x115\x117\a\xEC\x2\x2\x116\x115\x3\x2\x2"+ - "\x2\x117\x11A\x3\x2\x2\x2\x118\x116\x3\x2\x2\x2\x118\x119\x3\x2\x2\x2"+ - "\x119\x11B\x3\x2\x2\x2\x11A\x118\x3\x2\x2\x2\x11B\x13B\x5\xE\b\t\x11C"+ - "\x120\f\a\x2\x2\x11D\x11F\a\xEC\x2\x2\x11E\x11D\x3\x2\x2\x2\x11F\x122"+ - "\x3\x2\x2\x2\x120\x11E\x3\x2\x2\x2\x120\x121\x3\x2\x2\x2\x121\x123\x3"+ - "\x2\x2\x2\x122\x120\x3\x2\x2\x2\x123\x127\a\x66\x2\x2\x124\x126\a\xEC"+ - "\x2\x2\x125\x124\x3\x2\x2\x2\x126\x129\x3\x2\x2\x2\x127\x125\x3\x2\x2"+ - "\x2\x127\x128\x3\x2\x2\x2\x128\x12A\x3\x2\x2\x2\x129\x127\x3\x2\x2\x2"+ - "\x12A\x13B\x5\xE\b\b\x12B\x12F\f\x6\x2\x2\x12C\x12E\a\xEC\x2\x2\x12D\x12C"+ - "\x3\x2\x2\x2\x12E\x131\x3\x2\x2\x2\x12F\x12D\x3\x2\x2\x2\x12F\x130\x3"+ - "\x2\x2\x2\x130\x132\x3\x2\x2\x2\x131\x12F\x3\x2\x2\x2\x132\x136\ax\x2"+ - "\x2\x133\x135\a\xEC\x2\x2\x134\x133\x3\x2\x2\x2\x135\x138\x3\x2\x2\x2"+ - "\x136\x134\x3\x2\x2\x2\x136\x137\x3\x2\x2\x2\x137\x139\x3\x2\x2\x2\x138"+ - "\x136\x3\x2\x2\x2\x139\x13B\x5\xE\b\a\x13A\x86\x3\x2\x2\x2\x13A\x95\x3"+ - "\x2\x2\x2\x13A\xA4\x3\x2\x2\x2\x13A\xB3\x3\x2\x2\x2\x13A\xC2\x3\x2\x2"+ - "\x2\x13A\xD1\x3\x2\x2\x2\x13A\xE0\x3\x2\x2\x2\x13A\xEF\x3\x2\x2\x2\x13A"+ - "\xFE\x3\x2\x2\x2\x13A\x10D\x3\x2\x2\x2\x13A\x11C\x3\x2\x2\x2\x13A\x12B"+ - "\x3\x2\x2\x2\x13B\x13E\x3\x2\x2\x2\x13C\x13A\x3\x2\x2\x2\x13C\x13D\x3"+ - "\x2\x2\x2\x13D\xF\x3\x2\x2\x2\x13E\x13C\x3\x2\x2\x2\x13F\x140\x5\x12\n"+ - "\x2\x140\x144\x5\x4\x3\x2\x141\x143\x5\x14\v\x2\x142\x141\x3\x2\x2\x2"+ - "\x143\x146\x3\x2\x2\x2\x144\x142\x3\x2\x2\x2\x144\x145\x3\x2\x2\x2\x145"+ - "\x148\x3\x2\x2\x2\x146\x144\x3\x2\x2\x2\x147\x149\x5\x18\r\x2\x148\x147"+ - "\x3\x2\x2\x2\x148\x149\x3\x2\x2\x2\x149\x14A\x3\x2\x2\x2\x14A\x14B\x5"+ - "\x1C\xF\x2\x14B\x11\x3\x2\x2\x2\x14C\x14E\a\xDD\x2\x2\x14D\x14F\a\xEC"+ - "\x2\x2\x14E\x14D\x3\x2\x2\x2\x14F\x150\x3\x2\x2\x2\x150\x14E\x3\x2\x2"+ - "\x2\x150\x151\x3\x2\x2\x2\x151\x152\x3\x2\x2\x2\x152\x154\x5\xE\b\x2\x153"+ - "\x155\a\xEC\x2\x2\x154\x153\x3\x2\x2\x2\x155\x156\x3\x2\x2\x2\x156\x154"+ - "\x3\x2\x2\x2\x156\x157\x3\x2\x2\x2\x157\x158\x3\x2\x2\x2\x158\x159\a\xBD"+ - "\x2\x2\x159\x15A\x5\x1E\x10\x2\x15A\x13\x3\x2\x2\x2\x15B\x15C\x5\x16\f"+ - "\x2\x15C\x15D\x5\x4\x3\x2\x15D\x15\x3\x2\x2\x2\x15E\x160\a\xDE\x2\x2\x15F"+ - "\x161\a\xEC\x2\x2\x160\x15F\x3\x2\x2\x2\x161\x162\x3\x2\x2\x2\x162\x160"+ - "\x3\x2\x2\x2\x162\x163\x3\x2\x2\x2\x163\x164\x3\x2\x2\x2\x164\x166\x5"+ - "\xE\b\x2\x165\x167\a\xEC\x2\x2\x166\x165\x3\x2\x2\x2\x167\x168\x3\x2\x2"+ - "\x2\x168\x166\x3\x2\x2\x2\x168\x169\x3\x2\x2\x2\x169\x16A\x3\x2\x2\x2"+ - "\x16A\x16B\a\xBD\x2\x2\x16B\x16C\x5\x1E\x10\x2\x16C\x17\x3\x2\x2\x2\x16D"+ - "\x16E\x5\x1A\xE\x2\x16E\x16F\x5\x4\x3\x2\x16F\x19\x3\x2\x2\x2\x170\x171"+ - "\a\xDF\x2\x2\x171\x172\x5\x1E\x10\x2\x172\x1B\x3\x2\x2\x2\x173\x174\a"+ - "\xE0\x2\x2\x174\x175\x5\x1E\x10\x2\x175\x1D\x3\x2\x2\x2\x176\x17A\a\xEA"+ - "\x2\x2\x177\x179\n\x6\x2\x2\x178\x177\x3\x2\x2\x2\x179\x17C\x3\x2\x2\x2"+ - "\x17A\x178\x3\x2\x2\x2\x17A\x17B\x3\x2\x2\x2\x17B\x17E\x3\x2\x2\x2\x17C"+ - "\x17A\x3\x2\x2\x2\x17D\x176\x3\x2\x2\x2\x17D\x17E\x3\x2\x2\x2\x17E\x180"+ - "\x3\x2\x2\x2\x17F\x181\a\xE9\x2\x2\x180\x17F\x3\x2\x2\x2\x180\x181\x3"+ - "\x2\x2\x2\x181\x1F\x3\x2\x2\x2\x182\x183\x5\"\x12\x2\x183\x187\a\xD4\x2"+ - "\x2\x184\x186\a\xEC\x2\x2\x185\x184\x3\x2\x2\x2\x186\x189\x3\x2\x2\x2"+ - "\x187\x185\x3\x2\x2\x2\x187\x188\x3\x2\x2\x2\x188\x18A\x3\x2\x2\x2\x189"+ - "\x187\x3\x2\x2\x2\x18A\x18E\x5\xE\b\x2\x18B\x18D\a\xEC\x2\x2\x18C\x18B"+ - "\x3\x2\x2\x2\x18D\x190\x3\x2\x2\x2\x18E\x18C\x3\x2\x2\x2\x18E\x18F\x3"+ - "\x2\x2\x2\x18F\x191\x3\x2\x2\x2\x190\x18E\x3\x2\x2\x2\x191\x192\a\xDB"+ - "\x2\x2\x192!\x3\x2\x2\x2\x193\x194\t\a\x2\x2\x194#\x3\x2\x2\x2\x195\x197"+ - "\a\xED\x2\x2\x196\x198\x5&\x14\x2\x197\x196\x3\x2\x2\x2\x197\x198\x3\x2"+ - "\x2\x2\x198%\x3\x2\x2\x2\x199\x19A\t\b\x2\x2\x19A\'\x3\x2\x2\x2\x19B\x19C"+ - "\t\t\x2\x2\x19C)\x3\x2\x2\x2\x37\x30\x32\x38?\x45KSWY\\\x65mu|\x84\x8A"+ - "\x91\x99\xA0\xA8\xAF\xB7\xBE\xC6\xCD\xD5\xDC\xE4\xEB\xF3\xFA\x102\x109"+ - "\x111\x118\x120\x127\x12F\x136\x13A\x13C\x144\x148\x150\x156\x162\x168"+ - "\x17A\x17D\x180\x187\x18E\x197"; + "\x3\x4\x3\x4\x3\x4\x6\x4\x39\n\x4\r\x4\xE\x4:\x3\x4\x3\x4\x6\x4?\n\x4"+ + "\r\x4\xE\x4@\x3\x4\x3\x4\x3\x4\x3\x5\x6\x5G\n\x5\r\x5\xE\x5H\x3\x5\x5"+ + "\x5L\n\x5\x3\x6\x3\x6\x3\a\x3\a\x3\a\a\aS\n\a\f\a\xE\aV\v\a\x3\a\x3\a"+ + "\x3\a\a\a[\n\a\f\a\xE\a^\v\a\x3\a\x3\a\x3\a\a\a\x63\n\a\f\a\xE\a\x66\v"+ + "\a\x3\a\x3\a\a\aj\n\a\f\a\xE\am\v\a\x3\a\x3\a\x3\a\x3\a\x3\a\x5\at\n\a"+ + "\x3\a\x3\a\a\ax\n\a\f\a\xE\a{\v\a\x3\a\x3\a\a\a\x7F\n\a\f\a\xE\a\x82\v"+ + "\a\x3\a\x3\a\x3\a\a\a\x87\n\a\f\a\xE\a\x8A\v\a\x3\a\x3\a\a\a\x8E\n\a\f"+ + "\a\xE\a\x91\v\a\x3\a\x3\a\x3\a\a\a\x96\n\a\f\a\xE\a\x99\v\a\x3\a\x3\a"+ + "\a\a\x9D\n\a\f\a\xE\a\xA0\v\a\x3\a\x3\a\x3\a\a\a\xA5\n\a\f\a\xE\a\xA8"+ + "\v\a\x3\a\x3\a\a\a\xAC\n\a\f\a\xE\a\xAF\v\a\x3\a\x3\a\x3\a\a\a\xB4\n\a"+ + "\f\a\xE\a\xB7\v\a\x3\a\x3\a\a\a\xBB\n\a\f\a\xE\a\xBE\v\a\x3\a\x3\a\x3"+ + "\a\a\a\xC3\n\a\f\a\xE\a\xC6\v\a\x3\a\x3\a\a\a\xCA\n\a\f\a\xE\a\xCD\v\a"+ + "\x3\a\x3\a\x3\a\a\a\xD2\n\a\f\a\xE\a\xD5\v\a\x3\a\x3\a\a\a\xD9\n\a\f\a"+ + "\xE\a\xDC\v\a\x3\a\x3\a\x3\a\a\a\xE1\n\a\f\a\xE\a\xE4\v\a\x3\a\x3\a\a"+ + "\a\xE8\n\a\f\a\xE\a\xEB\v\a\x3\a\x3\a\x3\a\a\a\xF0\n\a\f\a\xE\a\xF3\v"+ + "\a\x3\a\x3\a\a\a\xF7\n\a\f\a\xE\a\xFA\v\a\x3\a\x3\a\x3\a\a\a\xFF\n\a\f"+ + "\a\xE\a\x102\v\a\x3\a\x3\a\a\a\x106\n\a\f\a\xE\a\x109\v\a\x3\a\x3\a\x3"+ + "\a\a\a\x10E\n\a\f\a\xE\a\x111\v\a\x3\a\x3\a\a\a\x115\n\a\f\a\xE\a\x118"+ + "\v\a\x3\a\x3\a\x3\a\a\a\x11D\n\a\f\a\xE\a\x120\v\a\x3\a\x3\a\a\a\x124"+ + "\n\a\f\a\xE\a\x127\v\a\x3\a\a\a\x12A\n\a\f\a\xE\a\x12D\v\a\x3\b\x3\b\x3"+ + "\b\a\b\x132\n\b\f\b\xE\b\x135\v\b\x3\b\x5\b\x138\n\b\x3\b\x3\b\x3\t\x3"+ + "\t\x3\t\x6\t\x13F\n\t\r\t\xE\t\x140\x3\t\x3\t\a\t\x145\n\t\f\t\xE\t\x148"+ + "\v\t\x3\t\x3\t\x3\n\x3\n\x3\n\x3\v\x3\v\x3\v\x6\v\x152\n\v\r\v\xE\v\x153"+ + "\x3\v\x3\v\a\v\x158\n\v\f\v\xE\v\x15B\v\v\x3\v\x3\v\x3\f\x3\f\x3\f\x3"+ + "\r\x3\r\x3\xE\x3\xE\x3\xF\x5\xF\x167\n\xF\x3\xF\x3\xF\x3\x10\x3\x10\x3"+ + "\x10\a\x10\x16E\n\x10\f\x10\xE\x10\x171\v\x10\x3\x10\x3\x10\a\x10\x175"+ + "\n\x10\f\x10\xE\x10\x178\v\x10\x3\x10\x3\x10\x3\x11\x3\x11\x3\x12\x3\x12"+ + "\x5\x12\x180\n\x12\x3\x13\x3\x13\x3\x14\x3\x14\x3\x15\x3\x15\x3\x15\a"+ + "\x15\x189\n\x15\f\x15\xE\x15\x18C\v\x15\x3\x15\x2\x2\x3\f\x16\x2\x2\x4"+ + "\x2\x6\x2\b\x2\n\x2\f\x2\xE\x2\x10\x2\x12\x2\x14\x2\x16\x2\x18\x2\x1A"+ + "\x2\x1C\x2\x1E\x2 \x2\"\x2$\x2&\x2(\x2\x2\v\x3\x2\xDC\xE0\x4\x2\xCE\xCE"+ + "\xD7\xD7\x4\x2\xD6\xD6\xD9\xD9\a\x2||\x83\x83\xD0\xD3\xD5\xD5\xD8\xD8"+ + "\x3\x3\xE9\xE9\v\x2\x3\x3\x6\n\f\f\xE\x12\x14\x14\x19\x19\x1B\x1B\x1D"+ + "\x1E\'\'\x5\x2,,.\x32\xDA\xDA\a\x2[[oo\x8F\x90\xBF\xBF\xE3\xE8\x3\x2\xE9"+ + "\xE9\x1B9\x2*\x3\x2\x2\x2\x4\x32\x3\x2\x2\x2\x6\x35\x3\x2\x2\x2\bK\x3"+ + "\x2\x2\x2\nM\x3\x2\x2\x2\fs\x3\x2\x2\x2\xE\x12E\x3\x2\x2\x2\x10\x13B\x3"+ + "\x2\x2\x2\x12\x14B\x3\x2\x2\x2\x14\x14E\x3\x2\x2\x2\x16\x15E\x3\x2\x2"+ + "\x2\x18\x161\x3\x2\x2\x2\x1A\x163\x3\x2\x2\x2\x1C\x166\x3\x2\x2\x2\x1E"+ + "\x16A\x3\x2\x2\x2 \x17B\x3\x2\x2\x2\"\x17D\x3\x2\x2\x2$\x181\x3\x2\x2"+ + "\x2&\x183\x3\x2\x2\x2(\x185\x3\x2\x2\x2*+\x5\x4\x3\x2+,\a\x2\x2\x3,\x3"+ + "\x3\x2\x2\x2-\x31\x5\x6\x4\x2.\x31\x5\xE\b\x2/\x31\x5\b\x5\x2\x30-\x3"+ + "\x2\x2\x2\x30.\x3\x2\x2\x2\x30/\x3\x2\x2\x2\x31\x34\x3\x2\x2\x2\x32\x30"+ + "\x3\x2\x2\x2\x32\x33\x3\x2\x2\x2\x33\x5\x3\x2\x2\x2\x34\x32\x3\x2\x2\x2"+ + "\x35\x36\a\xDC\x2\x2\x36\x38\x5\n\x6\x2\x37\x39\a\xEC\x2\x2\x38\x37\x3"+ + "\x2\x2\x2\x39:\x3\x2\x2\x2:\x38\x3\x2\x2\x2:;\x3\x2\x2\x2;<\x3\x2\x2\x2"+ + "<>\a\xD0\x2\x2=?\a\xEC\x2\x2>=\x3\x2\x2\x2?@\x3\x2\x2\x2@>\x3\x2\x2\x2"+ + "@\x41\x3\x2\x2\x2\x41\x42\x3\x2\x2\x2\x42\x43\x5\f\a\x2\x43\x44\x5\x1C"+ + "\xF\x2\x44\a\x3\x2\x2\x2\x45G\n\x2\x2\x2\x46\x45\x3\x2\x2\x2GH\x3\x2\x2"+ + "\x2H\x46\x3\x2\x2\x2HI\x3\x2\x2\x2IL\x3\x2\x2\x2JL\a\xE9\x2\x2K\x46\x3"+ + "\x2\x2\x2KJ\x3\x2\x2\x2L\t\x3\x2\x2\x2MN\x5\"\x12\x2N\v\x3\x2\x2\x2OP"+ + "\b\a\x1\x2PT\a\xD6\x2\x2QS\a\xEC\x2\x2RQ\x3\x2\x2\x2SV\x3\x2\x2\x2TR\x3"+ + "\x2\x2\x2TU\x3\x2\x2\x2UW\x3\x2\x2\x2VT\x3\x2\x2\x2Wt\x5\f\a\x12X\\\a"+ + "\x8E\x2\x2Y[\a\xEC\x2\x2ZY\x3\x2\x2\x2[^\x3\x2\x2\x2\\Z\x3\x2\x2\x2\\"+ + "]\x3\x2\x2\x2]_\x3\x2\x2\x2^\\\x3\x2\x2\x2_t\x5\f\a\v`\x64\a\xD4\x2\x2"+ + "\x61\x63\a\xEC\x2\x2\x62\x61\x3\x2\x2\x2\x63\x66\x3\x2\x2\x2\x64\x62\x3"+ + "\x2\x2\x2\x64\x65\x3\x2\x2\x2\x65g\x3\x2\x2\x2\x66\x64\x3\x2\x2\x2gk\x5"+ + "\f\a\x2hj\a\xEC\x2\x2ih\x3\x2\x2\x2jm\x3\x2\x2\x2ki\x3\x2\x2\x2kl\x3\x2"+ + "\x2\x2ln\x3\x2\x2\x2mk\x3\x2\x2\x2no\a\xDB\x2\x2ot\x3\x2\x2\x2pt\x5\x1E"+ + "\x10\x2qt\x5&\x14\x2rt\x5\"\x12\x2sO\x3\x2\x2\x2sX\x3\x2\x2\x2s`\x3\x2"+ + "\x2\x2sp\x3\x2\x2\x2sq\x3\x2\x2\x2sr\x3\x2\x2\x2t\x12B\x3\x2\x2\x2uy\f"+ + "\x13\x2\x2vx\a\xEC\x2\x2wv\x3\x2\x2\x2x{\x3\x2\x2\x2yw\x3\x2\x2\x2yz\x3"+ + "\x2\x2\x2z|\x3\x2\x2\x2{y\x3\x2\x2\x2|\x80\a\xDA\x2\x2}\x7F\a\xEC\x2\x2"+ + "~}\x3\x2\x2\x2\x7F\x82\x3\x2\x2\x2\x80~\x3\x2\x2\x2\x80\x81\x3\x2\x2\x2"+ + "\x81\x83\x3\x2\x2\x2\x82\x80\x3\x2\x2\x2\x83\x12A\x5\f\a\x14\x84\x88\f"+ + "\x11\x2\x2\x85\x87\a\xEC\x2\x2\x86\x85\x3\x2\x2\x2\x87\x8A\x3\x2\x2\x2"+ + "\x88\x86\x3\x2\x2\x2\x88\x89\x3\x2\x2\x2\x89\x8B\x3\x2\x2\x2\x8A\x88\x3"+ + "\x2\x2\x2\x8B\x8F\t\x3\x2\x2\x8C\x8E\a\xEC\x2\x2\x8D\x8C\x3\x2\x2\x2\x8E"+ + "\x91\x3\x2\x2\x2\x8F\x8D\x3\x2\x2\x2\x8F\x90\x3\x2\x2\x2\x90\x92\x3\x2"+ + "\x2\x2\x91\x8F\x3\x2\x2\x2\x92\x12A\x5\f\a\x12\x93\x97\f\x10\x2\x2\x94"+ + "\x96\a\xEC\x2\x2\x95\x94\x3\x2\x2\x2\x96\x99\x3\x2\x2\x2\x97\x95\x3\x2"+ + "\x2\x2\x97\x98\x3\x2\x2\x2\x98\x9A\x3\x2\x2\x2\x99\x97\x3\x2\x2\x2\x9A"+ + "\x9E\a\xCF\x2\x2\x9B\x9D\a\xEC\x2\x2\x9C\x9B\x3\x2\x2\x2\x9D\xA0\x3\x2"+ + "\x2\x2\x9E\x9C\x3\x2\x2\x2\x9E\x9F\x3\x2\x2\x2\x9F\xA1\x3\x2\x2\x2\xA0"+ + "\x9E\x3\x2\x2\x2\xA1\x12A\x5\f\a\x11\xA2\xA6\f\xF\x2\x2\xA3\xA5\a\xEC"+ + "\x2\x2\xA4\xA3\x3\x2\x2\x2\xA5\xA8\x3\x2\x2\x2\xA6\xA4\x3\x2\x2\x2\xA6"+ + "\xA7\x3\x2\x2\x2\xA7\xA9\x3\x2\x2\x2\xA8\xA6\x3\x2\x2\x2\xA9\xAD\a\x8B"+ + "\x2\x2\xAA\xAC\a\xEC\x2\x2\xAB\xAA\x3\x2\x2\x2\xAC\xAF\x3\x2\x2\x2\xAD"+ + "\xAB\x3\x2\x2\x2\xAD\xAE\x3\x2\x2\x2\xAE\xB0\x3\x2\x2\x2\xAF\xAD\x3\x2"+ + "\x2\x2\xB0\x12A\x5\f\a\x10\xB1\xB5\f\xE\x2\x2\xB2\xB4\a\xEC\x2\x2\xB3"+ + "\xB2\x3\x2\x2\x2\xB4\xB7\x3\x2\x2\x2\xB5\xB3\x3\x2\x2\x2\xB5\xB6\x3\x2"+ + "\x2\x2\xB6\xB8\x3\x2\x2\x2\xB7\xB5\x3\x2\x2\x2\xB8\xBC\t\x4\x2\x2\xB9"+ + "\xBB\a\xEC\x2\x2\xBA\xB9\x3\x2\x2\x2\xBB\xBE\x3\x2\x2\x2\xBC\xBA\x3\x2"+ + "\x2\x2\xBC\xBD\x3\x2\x2\x2\xBD\xBF\x3\x2\x2\x2\xBE\xBC\x3\x2\x2\x2\xBF"+ + "\x12A\x5\f\a\xF\xC0\xC4\f\r\x2\x2\xC1\xC3\a\xEC\x2\x2\xC2\xC1\x3\x2\x2"+ + "\x2\xC3\xC6\x3\x2\x2\x2\xC4\xC2\x3\x2\x2\x2\xC4\xC5\x3\x2\x2\x2\xC5\xC7"+ + "\x3\x2\x2\x2\xC6\xC4\x3\x2\x2\x2\xC7\xCB\a\x32\x2\x2\xC8\xCA\a\xEC\x2"+ + "\x2\xC9\xC8\x3\x2\x2\x2\xCA\xCD\x3\x2\x2\x2\xCB\xC9\x3\x2\x2\x2\xCB\xCC"+ + "\x3\x2\x2\x2\xCC\xCE\x3\x2\x2\x2\xCD\xCB\x3\x2\x2\x2\xCE\x12A\x5\f\a\xE"+ + "\xCF\xD3\f\f\x2\x2\xD0\xD2\a\xEC\x2\x2\xD1\xD0\x3\x2\x2\x2\xD2\xD5\x3"+ + "\x2\x2\x2\xD3\xD1\x3\x2\x2\x2\xD3\xD4\x3\x2\x2\x2\xD4\xD6\x3\x2\x2\x2"+ + "\xD5\xD3\x3\x2\x2\x2\xD6\xDA\t\x5\x2\x2\xD7\xD9\a\xEC\x2\x2\xD8\xD7\x3"+ + "\x2\x2\x2\xD9\xDC\x3\x2\x2\x2\xDA\xD8\x3\x2\x2\x2\xDA\xDB\x3\x2\x2\x2"+ + "\xDB\xDD\x3\x2\x2\x2\xDC\xDA\x3\x2\x2\x2\xDD\x12A\x5\f\a\r\xDE\xE2\f\n"+ + "\x2\x2\xDF\xE1\a\xEC\x2\x2\xE0\xDF\x3\x2\x2\x2\xE1\xE4\x3\x2\x2\x2\xE2"+ + "\xE0\x3\x2\x2\x2\xE2\xE3\x3\x2\x2\x2\xE3\xE5\x3\x2\x2\x2\xE4\xE2\x3\x2"+ + "\x2\x2\xE5\xE9\a\x36\x2\x2\xE6\xE8\a\xEC\x2\x2\xE7\xE6\x3\x2\x2\x2\xE8"+ + "\xEB\x3\x2\x2\x2\xE9\xE7\x3\x2\x2\x2\xE9\xEA\x3\x2\x2\x2\xEA\xEC\x3\x2"+ + "\x2\x2\xEB\xE9\x3\x2\x2\x2\xEC\x12A\x5\f\a\v\xED\xF1\f\t\x2\x2\xEE\xF0"+ + "\a\xEC\x2\x2\xEF\xEE\x3\x2\x2\x2\xF0\xF3\x3\x2\x2\x2\xF1\xEF\x3\x2\x2"+ + "\x2\xF1\xF2\x3\x2\x2\x2\xF2\xF4\x3\x2\x2\x2\xF3\xF1\x3\x2\x2\x2\xF4\xF8"+ + "\a\x9A\x2\x2\xF5\xF7\a\xEC\x2\x2\xF6\xF5\x3\x2\x2\x2\xF7\xFA\x3\x2\x2"+ + "\x2\xF8\xF6\x3\x2\x2\x2\xF8\xF9\x3\x2\x2\x2\xF9\xFB\x3\x2\x2\x2\xFA\xF8"+ + "\x3\x2\x2\x2\xFB\x12A\x5\f\a\n\xFC\x100\f\b\x2\x2\xFD\xFF\a\xEC\x2\x2"+ + "\xFE\xFD\x3\x2\x2\x2\xFF\x102\x3\x2\x2\x2\x100\xFE\x3\x2\x2\x2\x100\x101"+ + "\x3\x2\x2\x2\x101\x103\x3\x2\x2\x2\x102\x100\x3\x2\x2\x2\x103\x107\a\xCC"+ + "\x2\x2\x104\x106\a\xEC\x2\x2\x105\x104\x3\x2\x2\x2\x106\x109\x3\x2\x2"+ + "\x2\x107\x105\x3\x2\x2\x2\x107\x108\x3\x2\x2\x2\x108\x10A\x3\x2\x2\x2"+ + "\x109\x107\x3\x2\x2\x2\x10A\x12A\x5\f\a\t\x10B\x10F\f\a\x2\x2\x10C\x10E"+ + "\a\xEC\x2\x2\x10D\x10C\x3\x2\x2\x2\x10E\x111\x3\x2\x2\x2\x10F\x10D\x3"+ + "\x2\x2\x2\x10F\x110\x3\x2\x2\x2\x110\x112\x3\x2\x2\x2\x111\x10F\x3\x2"+ + "\x2\x2\x112\x116\a\x66\x2\x2\x113\x115\a\xEC\x2\x2\x114\x113\x3\x2\x2"+ + "\x2\x115\x118\x3\x2\x2\x2\x116\x114\x3\x2\x2\x2\x116\x117\x3\x2\x2\x2"+ + "\x117\x119\x3\x2\x2\x2\x118\x116\x3\x2\x2\x2\x119\x12A\x5\f\a\b\x11A\x11E"+ + "\f\x6\x2\x2\x11B\x11D\a\xEC\x2\x2\x11C\x11B\x3\x2\x2\x2\x11D\x120\x3\x2"+ + "\x2\x2\x11E\x11C\x3\x2\x2\x2\x11E\x11F\x3\x2\x2\x2\x11F\x121\x3\x2\x2"+ + "\x2\x120\x11E\x3\x2\x2\x2\x121\x125\ax\x2\x2\x122\x124\a\xEC\x2\x2\x123"+ + "\x122\x3\x2\x2\x2\x124\x127\x3\x2\x2\x2\x125\x123\x3\x2\x2\x2\x125\x126"+ + "\x3\x2\x2\x2\x126\x128\x3\x2\x2\x2\x127\x125\x3\x2\x2\x2\x128\x12A\x5"+ + "\f\a\a\x129u\x3\x2\x2\x2\x129\x84\x3\x2\x2\x2\x129\x93\x3\x2\x2\x2\x129"+ + "\xA2\x3\x2\x2\x2\x129\xB1\x3\x2\x2\x2\x129\xC0\x3\x2\x2\x2\x129\xCF\x3"+ + "\x2\x2\x2\x129\xDE\x3\x2\x2\x2\x129\xED\x3\x2\x2\x2\x129\xFC\x3\x2\x2"+ + "\x2\x129\x10B\x3\x2\x2\x2\x129\x11A\x3\x2\x2\x2\x12A\x12D\x3\x2\x2\x2"+ + "\x12B\x129\x3\x2\x2\x2\x12B\x12C\x3\x2\x2\x2\x12C\r\x3\x2\x2\x2\x12D\x12B"+ + "\x3\x2\x2\x2\x12E\x12F\x5\x10\t\x2\x12F\x133\x5\x4\x3\x2\x130\x132\x5"+ + "\x12\n\x2\x131\x130\x3\x2\x2\x2\x132\x135\x3\x2\x2\x2\x133\x131\x3\x2"+ + "\x2\x2\x133\x134\x3\x2\x2\x2\x134\x137\x3\x2\x2\x2\x135\x133\x3\x2\x2"+ + "\x2\x136\x138\x5\x16\f\x2\x137\x136\x3\x2\x2\x2\x137\x138\x3\x2\x2\x2"+ + "\x138\x139\x3\x2\x2\x2\x139\x13A\x5\x1A\xE\x2\x13A\xF\x3\x2\x2\x2\x13B"+ + "\x13C\a\xDD\x2\x2\x13C\x13E\x5\f\a\x2\x13D\x13F\a\xEC\x2\x2\x13E\x13D"+ + "\x3\x2\x2\x2\x13F\x140\x3\x2\x2\x2\x140\x13E\x3\x2\x2\x2\x140\x141\x3"+ + "\x2\x2\x2\x141\x142\x3\x2\x2\x2\x142\x146\a\xBD\x2\x2\x143\x145\a\xEC"+ + "\x2\x2\x144\x143\x3\x2\x2\x2\x145\x148\x3\x2\x2\x2\x146\x144\x3\x2\x2"+ + "\x2\x146\x147\x3\x2\x2\x2\x147\x149\x3\x2\x2\x2\x148\x146\x3\x2\x2\x2"+ + "\x149\x14A\x5\x1C\xF\x2\x14A\x11\x3\x2\x2\x2\x14B\x14C\x5\x14\v\x2\x14C"+ + "\x14D\x5\x4\x3\x2\x14D\x13\x3\x2\x2\x2\x14E\x14F\a\xDE\x2\x2\x14F\x151"+ + "\x5\f\a\x2\x150\x152\a\xEC\x2\x2\x151\x150\x3\x2\x2\x2\x152\x153\x3\x2"+ + "\x2\x2\x153\x151\x3\x2\x2\x2\x153\x154\x3\x2\x2\x2\x154\x155\x3\x2\x2"+ + "\x2\x155\x159\a\xBD\x2\x2\x156\x158\a\xEC\x2\x2\x157\x156\x3\x2\x2\x2"+ + "\x158\x15B\x3\x2\x2\x2\x159\x157\x3\x2\x2\x2\x159\x15A\x3\x2\x2\x2\x15A"+ + "\x15C\x3\x2\x2\x2\x15B\x159\x3\x2\x2\x2\x15C\x15D\x5\x1C\xF\x2\x15D\x15"+ + "\x3\x2\x2\x2\x15E\x15F\x5\x18\r\x2\x15F\x160\x5\x4\x3\x2\x160\x17\x3\x2"+ + "\x2\x2\x161\x162\a\xDF\x2\x2\x162\x19\x3\x2\x2\x2\x163\x164\a\xE0\x2\x2"+ + "\x164\x1B\x3\x2\x2\x2\x165\x167\x5(\x15\x2\x166\x165\x3\x2\x2\x2\x166"+ + "\x167\x3\x2\x2\x2\x167\x168\x3\x2\x2\x2\x168\x169\t\x6\x2\x2\x169\x1D"+ + "\x3\x2\x2\x2\x16A\x16B\x5 \x11\x2\x16B\x16F\a\xD4\x2\x2\x16C\x16E\a\xEC"+ + "\x2\x2\x16D\x16C\x3\x2\x2\x2\x16E\x171\x3\x2\x2\x2\x16F\x16D\x3\x2\x2"+ + "\x2\x16F\x170\x3\x2\x2\x2\x170\x172\x3\x2\x2\x2\x171\x16F\x3\x2\x2\x2"+ + "\x172\x176\x5\f\a\x2\x173\x175\a\xEC\x2\x2\x174\x173\x3\x2\x2\x2\x175"+ + "\x178\x3\x2\x2\x2\x176\x174\x3\x2\x2\x2\x176\x177\x3\x2\x2\x2\x177\x179"+ + "\x3\x2\x2\x2\x178\x176\x3\x2\x2\x2\x179\x17A\a\xDB\x2\x2\x17A\x1F\x3\x2"+ + "\x2\x2\x17B\x17C\t\a\x2\x2\x17C!\x3\x2\x2\x2\x17D\x17F\a\xED\x2\x2\x17E"+ + "\x180\x5$\x13\x2\x17F\x17E\x3\x2\x2\x2\x17F\x180\x3\x2\x2\x2\x180#\x3"+ + "\x2\x2\x2\x181\x182\t\b\x2\x2\x182%\x3\x2\x2\x2\x183\x184\t\t\x2\x2\x184"+ + "\'\x3\x2\x2\x2\x185\x18A\a\xEA\x2\x2\x186\x189\a\xEE\x2\x2\x187\x189\n"+ + "\n\x2\x2\x188\x186\x3\x2\x2\x2\x188\x187\x3\x2\x2\x2\x189\x18C\x3\x2\x2"+ + "\x2\x18A\x188\x3\x2\x2\x2\x18A\x18B\x3\x2\x2\x2\x18B)\x3\x2\x2\x2\x18C"+ + "\x18A\x3\x2\x2\x2\x33\x30\x32:@HKT\\\x64ksy\x80\x88\x8F\x97\x9E\xA6\xAD"+ + "\xB5\xBC\xC4\xCB\xD3\xDA\xE2\xE9\xF1\xF8\x100\x107\x10F\x116\x11E\x125"+ + "\x129\x12B\x133\x137\x140\x146\x153\x159\x166\x16F\x176\x17F\x188\x18A"; public static readonly ATN _ATN = new ATNDeserializer().Deserialize(_serializedATN.ToCharArray()); } diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.g4 b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.g4 index c820fe6e36..b9d9726844 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.g4 +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParser.g4 @@ -6,11 +6,12 @@ compilationUnit : ccBlock EOF; ccBlock : (ccConst | ccIfBlock | logicalLine)*; -ccConst : WS* HASHCONST WS+ ccVarLhs WS+ EQ WS+ ccExpression ccEol; +ccConst : HASHCONST ccVarLhs WS+ EQ WS+ ccExpression ccEol; -logicalLine : extendedLine+; - -extendedLine : (LINE_CONTINUATION | ~(HASHCONST | HASHIF | HASHELSEIF | HASHELSE | HASHENDIF))+ NEWLINE?; +logicalLine : + ~(HASHCONST | HASHIF | HASHELSEIF | HASHELSE | HASHENDIF)+ + | NEWLINE +; ccVarLhs : name; @@ -36,19 +37,19 @@ ccExpression : ccIfBlock : ccIf ccBlock ccElseIfBlock* ccElseBlock? ccEndIf; -ccIf : HASHIF WS+ ccExpression WS+ THEN ccEol; +ccIf : HASHIF ccExpression WS+ THEN WS* ccEol; ccElseIfBlock : ccElseIf ccBlock; -ccElseIf : HASHELSEIF WS+ ccExpression WS+ THEN ccEol; +ccElseIf : HASHELSEIF ccExpression WS+ THEN WS* ccEol; ccElseBlock : ccElse ccBlock; -ccElse : HASHELSE ccEol; +ccElse : HASHELSE; -ccEndIf : HASHENDIF ccEol; +ccEndIf : HASHENDIF; -ccEol : (SINGLEQUOTE ~NEWLINE*)? NEWLINE?; +ccEol : comment? (NEWLINE | EOF); intrinsicFunction : intrinsicFunctionName LPAREN WS* ccExpression WS* RPAREN; @@ -77,4 +78,6 @@ name : IDENTIFIER typeHint?; typeHint : PERCENT | AMPERSAND | POW | EXCLAMATIONPOINT | HASH | AT | DOLLAR; -literal : DATELITERAL | HEXLITERAL | OCTLITERAL | FLOATLITERAL | INTEGERLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL | EMPTY; \ No newline at end of file +literal : DATELITERAL | HEXLITERAL | OCTLITERAL | FLOATLITERAL | INTEGERLITERAL | STRINGLITERAL | TRUE | FALSE | NOTHING | NULL | EMPTY; + +comment: SINGLEQUOTE (LINE_CONTINUATION | ~NEWLINE)*; \ No newline at end of file diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseListener.cs index 04a3484b51..c86a4c9e46 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseListener.cs @@ -150,19 +150,6 @@ public virtual void EnterTypeHint([NotNull] VBAConditionalCompilationParser.Type /// The parse tree. public virtual void ExitTypeHint([NotNull] VBAConditionalCompilationParser.TypeHintContext context) { } - /// - /// Enter a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } - /// - /// Exit a parse tree produced by . - /// The default implementation does nothing. - /// - /// The parse tree. - public virtual void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { } - /// /// Enter a parse tree produced by . /// The default implementation does nothing. @@ -280,6 +267,19 @@ public virtual void EnterCcElse([NotNull] VBAConditionalCompilationParser.CcElse /// The parse tree. public virtual void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { } + /// + /// Enter a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void EnterComment([NotNull] VBAConditionalCompilationParser.CommentContext context) { } + /// + /// Exit a parse tree produced by . + /// The default implementation does nothing. + /// + /// The parse tree. + public virtual void ExitComment([NotNull] VBAConditionalCompilationParser.CommentContext context) { } + /// /// Enter a parse tree produced by . /// The default implementation does nothing. diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseVisitor.cs index 503239ccff..d4ba7baf28 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserBaseVisitor.cs @@ -131,17 +131,6 @@ public partial class VBAConditionalCompilationParserBaseVisitor : Abstra /// The visitor result. public virtual Result VisitTypeHint([NotNull] VBAConditionalCompilationParser.TypeHintContext context) { return VisitChildren(context); } - /// - /// Visit a parse tree produced by . - /// - /// The default implementation returns the result of calling - /// on . - /// - /// - /// The parse tree. - /// The visitor result. - public virtual Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context) { return VisitChildren(context); } - /// /// Visit a parse tree produced by . /// @@ -241,6 +230,17 @@ public partial class VBAConditionalCompilationParserBaseVisitor : Abstra /// The visitor result. public virtual Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context) { return VisitChildren(context); } + /// + /// Visit a parse tree produced by . + /// + /// The default implementation returns the result of calling + /// on . + /// + /// + /// The parse tree. + /// The visitor result. + public virtual Result VisitComment([NotNull] VBAConditionalCompilationParser.CommentContext context) { return VisitChildren(context); } + /// /// Visit a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserListener.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserListener.cs index 20f1643f14..30460edb24 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserListener.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserListener.cs @@ -128,17 +128,6 @@ public interface IVBAConditionalCompilationParserListener : IParseTreeListener { /// The parse tree. void ExitTypeHint([NotNull] VBAConditionalCompilationParser.TypeHintContext context); - /// - /// Enter a parse tree produced by . - /// - /// The parse tree. - void EnterExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - /// - /// Exit a parse tree produced by . - /// - /// The parse tree. - void ExitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - /// /// Enter a parse tree produced by . /// @@ -238,6 +227,17 @@ public interface IVBAConditionalCompilationParserListener : IParseTreeListener { /// The parse tree. void ExitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + /// + /// Enter a parse tree produced by . + /// + /// The parse tree. + void EnterComment([NotNull] VBAConditionalCompilationParser.CommentContext context); + /// + /// Exit a parse tree produced by . + /// + /// The parse tree. + void ExitComment([NotNull] VBAConditionalCompilationParser.CommentContext context); + /// /// Enter a parse tree produced by . /// diff --git a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserVisitor.cs b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserVisitor.cs index e5113de5e0..caaaaa8e82 100644 --- a/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserVisitor.cs +++ b/Rubberduck.Parsing/Preprocessing/VBAConditionalCompilationParserVisitor.cs @@ -93,13 +93,6 @@ public interface IVBAConditionalCompilationParserVisitor : IParseTreeVis /// The visitor result. Result VisitTypeHint([NotNull] VBAConditionalCompilationParser.TypeHintContext context); - /// - /// Visit a parse tree produced by . - /// - /// The parse tree. - /// The visitor result. - Result VisitExtendedLine([NotNull] VBAConditionalCompilationParser.ExtendedLineContext context); - /// /// Visit a parse tree produced by . /// @@ -163,6 +156,13 @@ public interface IVBAConditionalCompilationParserVisitor : IParseTreeVis /// The visitor result. Result VisitCcElse([NotNull] VBAConditionalCompilationParser.CcElseContext context); + /// + /// Visit a parse tree produced by . + /// + /// The parse tree. + /// The visitor result. + Result VisitComment([NotNull] VBAConditionalCompilationParser.CommentContext context); + /// /// Visit a parse tree produced by . /// diff --git a/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs b/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs index 36545f70d0..fc00b9e5e0 100644 --- a/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs +++ b/RubberduckTests/Binding/MemberAccessTypeBindingTests.cs @@ -32,7 +32,7 @@ public void LExpressionIsProjectAndUnrestrictedNameIsProject() var declaration = state.AllUserDeclarations.Single(d => d.DeclarationType == DeclarationType.Project && d.ProjectName == BINDING_TARGET_NAME); // lExpression adds one reference, the MemberAcecssExpression adds another one. - Assert.AreEqual(1, declaration.References.Count()); + Assert.AreEqual(2, declaration.References.Count()); } [TestMethod] diff --git a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs index 4345f99751..7914aad3e2 100644 --- a/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs +++ b/RubberduckTests/Preprocessing/VBAPreprocessorVisitorTests.cs @@ -364,8 +364,8 @@ public void TestCStrFunction() #Const c = CStr(True) #Const d = CStr(False) #Const e = CStr(345.23) -#Const f = CStr(#30-12-1899 02:01#) #30-12-1899 02:01# -#Const g = CStr(#1/31/2016#) 31.01.2016 +#Const f = CStr(#30-12-1899 02:01#) +#Const g = CStr(#1/31/2016#) "; var result = Preprocess(code); Assert.AreEqual(null, result.Item1.Get("a")); @@ -999,8 +999,8 @@ public void TestStringLiteral() public void TestNumberLiteral() { string code = @" -#Const a = &HAF$ -#Const b = &O423# +#Const a = &HAF% +#Const b = &O423^ #Const c = -50.323e5 "; var result = Preprocess(code); @@ -1179,6 +1179,27 @@ End Sub var result = Preprocess(code); Assert.AreEqual(evaluated, result.Item2.AsString); } + + [TestMethod] + public void TestLogicalLinesHasConditionalCompilationKeywords() + { + string code = @" +Sub FileTest() + Open ""TESTFILE"" For Input As #iFile + Close #iFile +End Sub +"; + + string evaluated = @" +Sub FileTest() + Open ""TESTFILE"" For Input As #iFile + Close #iFile +End Sub +"; + var result = Preprocess(code); + Assert.AreEqual(evaluated, result.Item2.AsString); + } + private Tuple, IValue> Preprocess(string code) { SymbolTable symbolTable = new SymbolTable(); From 5b98db70939b7e71a8a6d612bcf72dc65ef20acb Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 8 May 2016 18:32:54 +0200 Subject: [PATCH 70/72] fix GUID attribute parsing + ignore control test --- .../Binding/VBAExpressionParser.cs | 28 +++---- Rubberduck.Parsing/Grammar/VBALexer.cs | 82 +++++++++---------- Rubberduck.Parsing/Grammar/VBALexer.g4 | 2 +- Rubberduck.Parsing/Grammar/VBAParser.cs | 18 ++-- .../VBAConditionalCompilationParser.cs | 18 ++-- Rubberduck.Parsing/Rubberduck.Parsing.csproj | 3 + .../Symbols/DeclarationFinder.cs | 2 +- .../Symbols/DeclarationSymbolsListener.cs | 11 ++- Rubberduck.Parsing/Symbols/DeclarationType.cs | 26 +++--- RubberduckTests/Grammar/ResolverTests.cs | 2 + 10 files changed, 100 insertions(+), 92 deletions(-) diff --git a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs index 0c6836ce1b..163d5435d6 100644 --- a/Rubberduck.Parsing/Binding/VBAExpressionParser.cs +++ b/Rubberduck.Parsing/Binding/VBAExpressionParser.cs @@ -44,14 +44,14 @@ public const int PTRSAFE=161, EQ=206, BOOLEAN=58, CIRCLE=11, END_FUNCTION=91, DEFSNG=80, DEFBYTE=71, NOT=140, CINT=10, END=98, PRESERVE=155, ON_LOCAL_ERROR=145, FLOATLITERAL=228, HASHELSE=221, BINARY=57, LENB=28, RETURN=172, EXCLAMATIONPOINT=42, - NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=235, WS=234, EMPTY=89, CURRENCY=17, + NEXT=138, GLOBAL=114, INPUTB=24, IDENTIFIER=236, WS=234, EMPTY=89, CURRENCY=17, CCUR=6, MOD=137, WITHEVENTS=200, COLON=40, DEFLNGLNG=77, STEP=181, OPTION_BASE=148, - GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=236, + GT=208, PUT=163, WITH=199, CSTR=16, LOCK_WRITE=132, LINE_CONTINUATION=237, TYPEOF=191, DEFVAR=82, DEFLNG=76, UBOUND=38, FALSE=109, ERRORCHAR=238, UNDERSCORE=233, INTEGERLITERAL=229, END_IF=92, LOCK=124, TEXT=186, SINGLEQUOTE=232, MULT=213, SEMICOLON=41, BYTE=61, HEXLITERAL=227, ELSE=87, IF=117, TYPE=190, AMPERSAND=48, DEFLNGPTR=78, ENUM=99, DEFOBJ=79, IN=120, OPTION=34, DOT=43, - EXIT_DO=104, GUIDLITERAL=237, IS=122, EQV=100, WEND=196, FUNCTION=112, + EXIT_DO=104, GUIDLITERAL=235, IS=122, EQV=100, WEND=196, FUNCTION=112, HASH=44, CASE=63, GEQ=207, GET=113, PUBLIC=162, ON_ERROR=144, EXIT=22, MIDB=31, END_ENUM=90, GOTO=116, INTDIV=205, LONGPTR=30, WIDTH=198, BEGIN=56, EXIT_SUB=108, ASSIGN=203, WRITE=201, DOUBLE=85, EXIT_PROPERTY=107, COMMA=39, @@ -98,7 +98,7 @@ public const int "LEQ", "'('", "'<'", "'-'", "'*'", "NEQ", "'+'", "'^'", "')'", "HASHCONST", "HASHIF", "HASHELSEIF", "HASHELSE", "HASHENDIF", "'['", "']'", "STRINGLITERAL", "OCTLITERAL", "HEXLITERAL", "FLOATLITERAL", "INTEGERLITERAL", "DATELITERAL", - "NEWLINE", "'''", "'_'", "WS", "IDENTIFIER", "LINE_CONTINUATION", "GUIDLITERAL", + "NEWLINE", "'''", "'_'", "WS", "GUIDLITERAL", "IDENTIFIER", "LINE_CONTINUATION", "ERRORCHAR", "FOREIGNNAME", "OBJECT", "COLLECTION" }; public const int @@ -5403,7 +5403,7 @@ private bool lExpression_sempred(LExpressionContext _localctx, int predIndex) { "\f\xE\x12\x14\x17\x19\x19\x1B\x1B\x1D\x1E!#%\'\x8A\x8A\t\x2\x5\x5\r\r"+ "\x1A\x1A\x1C\x1C&&(({{\r\x2\x13\x13\x1F <False ..\libs\Microsoft.Vbe.Interop.dll + + True + ..\packages\NLog.4.0.1\lib\net45\NLog.dll True diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 1c554fa232..db89b4e272 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -318,7 +318,7 @@ public Declaration FindMemberEnclosedProjectWithoutEnclosingModule(Declaration c private static bool IsInstanceSensitive(DeclarationType memberType) { - return memberType == DeclarationType.Variable || memberType == DeclarationType.Constant || memberType.HasFlag(DeclarationType.Procedure) || memberType.HasFlag(DeclarationType.Function); + return memberType.HasFlag(DeclarationType.Variable) || memberType == DeclarationType.Constant || memberType.HasFlag(DeclarationType.Procedure) || memberType.HasFlag(DeclarationType.Function); } public Declaration FindMemberEnclosedProjectInModule(Declaration callingProject, Declaration callingModule, Declaration callingParent, Declaration memberModule, string memberName, DeclarationType memberType) diff --git a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs index 9b1fa41c18..6485268e6f 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationSymbolsListener.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using System.Linq; using Antlr4.Runtime.Misc; +using Microsoft.Vbe.Interop.Forms; namespace Rubberduck.Parsing.Symbols { @@ -141,14 +142,16 @@ private void DeclareControlsAsMembers(VBComponent form) { return; } - if (((dynamic)designer).Controls == null) + if (!(designer is UserForm)) { return; } - - // using dynamic typing here, because not only MSForms could have a Controls collection (e.g. MS-Access forms are 'document' modules). - foreach (var control in ((dynamic)designer).Controls) + // "using dynamic typing here, because not only MSForms could have a Controls collection (e.g. MS-Access forms are 'document' modules)." + // Note: Dynamic doesn't seem to support explicit interfaces that's why we cast it anyway, MS Access forms apparently have to be treated specially anyway. + var userForm = (UserForm)designer; + foreach (Control control in userForm.Controls) { + // The as type declaration should be TextBox, CheckBox, etc. depending on the type. var declaration = new Declaration(_qualifiedName.QualifyMemberName(control.Name), _parentDeclaration, _currentScopeDeclaration, "Control", true, true, Accessibility.Public, DeclarationType.Control, null, Selection.Home, false); OnNewDeclaration(declaration); } diff --git a/Rubberduck.Parsing/Symbols/DeclarationType.cs b/Rubberduck.Parsing/Symbols/DeclarationType.cs index 4a0c8603a1..cbfea0131a 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationType.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationType.cs @@ -9,19 +9,19 @@ public enum DeclarationType Module = 1 << 1, ProceduralModule = 1 << 2 | Module, ClassModule = 1 << 3 | Module, - Control = 1 << 4, - UserForm = 1 << 5, - Document = 1 << 6, - ModuleOption = 1 << 7, - Member = 1 << 8, - Procedure = 1 << 9 | Member, - Function = 1 << 10 | Member, - Property = 1 << 11 | Member, - PropertyGet = 1 << 12 | Property | Function, - PropertyLet = 1 << 13 | Property | Procedure, - PropertySet = 1 << 14 | Property | Procedure, - Parameter = 1 << 15, - Variable = 1 << 16, + UserForm = 1 << 4, + Document = 1 << 5, + ModuleOption = 1 << 6, + Member = 1 << 7, + Procedure = 1 << 8 | Member, + Function = 1 << 9 | Member, + Property = 1 << 10 | Member, + PropertyGet = 1 << 11 | Property | Function, + PropertyLet = 1 << 12 | Property | Procedure, + PropertySet = 1 << 13 | Property | Procedure, + Parameter = 1 << 14, + Variable = 1 << 15, + Control = 1 << 16 | Variable, Constant = 1 << 17, Enumeration = 1 << 18, EnumerationMember = 1 << 19, diff --git a/RubberduckTests/Grammar/ResolverTests.cs b/RubberduckTests/Grammar/ResolverTests.cs index 5dd179a3b1..22b629865e 100644 --- a/RubberduckTests/Grammar/ResolverTests.cs +++ b/RubberduckTests/Grammar/ResolverTests.cs @@ -1446,6 +1446,8 @@ End Sub Assert.AreEqual(1, usages.Count()); } + // Ignored because handling forms/hierarchies is an open issue. + [Ignore] [TestMethod] public void GivenControlDeclaration_ResolvesUsageInCodeBehind() { From 5e4f187782dd0d395dc79f32700f29d177a2290c Mon Sep 17 00:00:00 2001 From: Andrin Meier Date: Sun, 8 May 2016 21:05:34 +0200 Subject: [PATCH 71/72] fix wrong comment style --- Rubberduck.Parsing/Grammar/VBAParser.g4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rubberduck.Parsing/Grammar/VBAParser.g4 b/Rubberduck.Parsing/Grammar/VBAParser.g4 index ea3d5bd32c..d180bf7ee0 100644 --- a/Rubberduck.Parsing/Grammar/VBAParser.g4 +++ b/Rubberduck.Parsing/Grammar/VBAParser.g4 @@ -682,7 +682,7 @@ endOfStatement : | endOfLine EOF ; -' Annotations must come before comments because of precedence. ANTLR4 matches as much as possible then chooses the one that comes first. +// Annotations must come before comments because of precedence. ANTLR4 matches as much as possible then chooses the one that comes first. commentOrAnnotation : annotationList | comment From c45802f6a305a44b10924f5774b8143836e98182 Mon Sep 17 00:00:00 2001 From: INOPIAE Date: Sun, 8 May 2016 22:37:53 +0200 Subject: [PATCH 72/72] Translation: added new German translation --- RetailCoder.VBE/UI/RubberduckUI.de.resx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/RetailCoder.VBE/UI/RubberduckUI.de.resx b/RetailCoder.VBE/UI/RubberduckUI.de.resx index 4921f9432c..519463d5f8 100644 --- a/RetailCoder.VBE/UI/RubberduckUI.de.resx +++ b/RetailCoder.VBE/UI/RubberduckUI.de.resx @@ -1492,4 +1492,25 @@ Allen Sternguckern, Likern & Followern, für das warme Kribbeln Suchen + + Entfernen... + + + Drucken... + + + Importieren... + + + Exportieren... + + + Periode (.) + + + Ordner-Trennzeichen: + + + Slash (/) + \ No newline at end of file