Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2015-01-28 12:13:31 +0300
committerMike Krüger <mkrueger@xamarin.com>2015-01-28 12:13:31 +0300
commitea1c0ecf2cb0612728e32a065b363e28eeba2aac (patch)
tree5fb291cc5c788f31465fa0678e28818b9085e054 /ICSharpCode.NRefactory.CSharp
parent1e1f74edb04cfb5b95ccdf676d540af412c139ae (diff)
Updated mcs (c#6 support).
Diffstat (limited to 'ICSharpCode.NRefactory.CSharp')
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs26
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/SourceMethodBuilder.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs8
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/assembly.cs8
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/assign.cs14
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/async.cs4
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/attribute.cs43
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/class.cs87
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/codegen.cs41
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/complete.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/constant.cs101
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/context.cs55
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/convert.cs6
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs14130
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay456
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs313
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs11
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/delegate.cs6
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/doc.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/dynamic.cs9
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs568
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/eval.cs16
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs847
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/field.cs18
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/flowanalysis.cs26
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/generic.cs52
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/linq.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/membercache.cs34
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs30
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/module.cs11
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/namespace.cs173
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/nullable.cs56
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/outline.cs16
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/pending.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/property.cs75
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/report.cs2
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs222
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/typemanager.cs12
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/typespec.cs75
-rw-r--r--ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs4
41 files changed, 9911 insertions, 7656 deletions
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
index 158b86ce..8123e4c7 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/CSharpParser.cs
@@ -136,7 +136,17 @@ namespace ICSharpCode.NRefactory.CSharp
void AddTypeArguments(ATypeNameExpression texpr, AstType result)
{
var unbound = texpr.TypeArguments as UnboundTypeArguments;
- if (unbound != null) {
+ if (unbound != null) {
+ TextLocation ll = Convert (texpr.Location);
+ result.AddChild(new CSharpTokenNode(ll, Roles.LChevron), Roles.LChevron);
+ ll = new TextLocation (ll.Line, ll.Column + 1);
+ for (int j = 0; j < unbound.Count; j++) {
+ result.AddChild (new SimpleType (), Roles.TypeArgument);
+ result.AddChild(new CSharpTokenNode(ll, Roles.LChevron), Roles.Comma);
+ ll = new TextLocation (ll.Line, ll.Column + 1);
+ }
+ result.AddChild(new CSharpTokenNode(ll, Roles.RChevron), Roles.RChevron);
+ /*
var loc2 = LocationsBag.GetLocations(texpr.TypeArguments);
if (loc2 == null)
return;
@@ -150,7 +160,7 @@ namespace ICSharpCode.NRefactory.CSharp
if (j < loc2.Count) {
result.AddChild (new SimpleType (), Roles.TypeArgument);
result.AddChild(new CSharpTokenNode(Convert(loc2 [j++]), Roles.RChevron), Roles.RChevron);
- }
+ }*/
return;
}
if (texpr.TypeArguments == null || texpr.TypeArguments.Args == null)
@@ -459,6 +469,18 @@ namespace ICSharpCode.NRefactory.CSharp
AddToNamespace(ud);
}
+ public override void Visit(UsingClause un)
+ {
+ var ud = new UsingDeclaration();
+ var loc = LocationsBag.GetLocations(un);
+ ud.AddChild(new CSharpTokenNode(Convert(un.Location), UsingDeclaration.UsingKeywordRole), UsingDeclaration.UsingKeywordRole);
+ if (un.NamespaceExpression != null)
+ ud.AddChild(ConvertToType(un.NamespaceExpression), UsingDeclaration.ImportRole);
+ if (loc != null)
+ ud.AddChild(new CSharpTokenNode(Convert(loc [0]), Roles.Semicolon), Roles.Semicolon);
+ AddToNamespace(ud);
+ }
+
public override void Visit(UsingAliasNamespace uan)
{
var ud = new UsingAliasDeclaration();
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/SourceMethodBuilder.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/SourceMethodBuilder.cs
index bd801f65..195ea758 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/SourceMethodBuilder.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/SourceMethodBuilder.cs
@@ -100,7 +100,7 @@ namespace Mono.CompilerServices.SymbolWriter
int parent = CurrentBlock != null ? CurrentBlock.Index : -1;
CodeBlockEntry block = new CodeBlockEntry (
- _blocks.Count + 1, parent, type, start_offset);
+ _blocks.Count, parent, type, start_offset);
_block_stack.Push (block);
_blocks.Add (block);
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs
index e7f00378..1b9a8f21 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/anonymous.cs
@@ -353,7 +353,7 @@ namespace Mono.CSharp {
hoisted_locals.Add (hoisted);
}
- if (ec.CurrentBlock.Explicit != localVariable.Block.Explicit && !(hoisted.Storey is StateMachine))
+ if (ec.CurrentBlock.Explicit != localVariable.Block.Explicit && !(hoisted.Storey is StateMachine) && hoisted.Storey != null)
hoisted.Storey.AddReferenceFromChildrenBlock (ec.CurrentBlock.Explicit);
}
@@ -1798,8 +1798,10 @@ namespace Mono.CSharp {
// this argument is generated during compilation which speeds up dispatch
// by about 25%
//
- method_parameters = ParametersCompiled.Prefix (method_parameters,
- new Parameter (null, null, 0, null, loc), ec.Module.Compiler.BuiltinTypes.Object);
+ // Unused as it breaks compatibility
+ //
+ // method_parameters = ParametersCompiled.Prefix (method_parameters,
+ // new Parameter (null, null, 0, null, loc), ec.Module.Compiler.BuiltinTypes.Object);
}
if (storey == null && hoisted_tparams == null)
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/assembly.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/assembly.cs
index f93c0383..dd5af064 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/assembly.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/assembly.cs
@@ -372,8 +372,6 @@ namespace Mono.CSharp
vi_product = a.GetString ();
} else if (a.Type == pa.AssemblyCompany) {
vi_company = a.GetString ();
- } else if (a.Type == pa.AssemblyDescription) {
- // TODO: Needs extra api
} else if (a.Type == pa.AssemblyCopyright) {
vi_copyright = a.GetString ();
} else if (a.Type == pa.AssemblyTrademark) {
@@ -382,6 +380,12 @@ namespace Mono.CSharp
has_user_debuggable = true;
}
+ //
+ // Win32 version info attributes AssemblyDescription and AssemblyTitle cannot be
+ // set using public API and because we have blob like attributes we need to use
+ // special option DecodeVersionInfoAttributeBlobs to support values extraction
+ //
+
SetCustomAttribute (ctor, cdata);
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/assign.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/assign.cs
index 2bdc3331..71675876 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/assign.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/assign.cs
@@ -421,7 +421,13 @@ namespace Mono.CSharp {
{
source.FlowAnalysis (fc);
- if (target is ArrayAccess || target is IndexerExpr || target is PropertyExpr)
+ if (target is ArrayAccess || target is IndexerExpr) {
+ target.FlowAnalysis (fc);
+ return;
+ }
+
+ var pe = target as PropertyExpr;
+ if (pe != null && !pe.IsAutoPropertyAccess)
target.FlowAnalysis (fc);
}
@@ -496,6 +502,12 @@ namespace Mono.CSharp {
fe.SetFieldAssigned (fc);
return;
}
+
+ var pe = target as PropertyExpr;
+ if (pe != null) {
+ pe.SetBackingFieldAssigned (fc);
+ return;
+ }
}
public override void MarkReachable (Reachability rc)
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/async.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/async.cs
index 68bbd3e1..ad437325 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/async.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/async.cs
@@ -151,7 +151,7 @@ namespace Mono.CSharp
public bool ProbingMode { get; set; }
- protected override void Error_TypeDoesNotContainDefinition (ResolveContext rc, TypeSpec type, string name)
+ public override void Error_TypeDoesNotContainDefinition (ResolveContext rc, TypeSpec type, string name)
{
Error_OperatorCannotBeApplied (rc, type);
}
@@ -165,7 +165,7 @@ namespace Mono.CSharp
if (invocation != null && invocation.MethodGroup != null && (invocation.MethodGroup.BestCandidate.Modifiers & Modifiers.ASYNC) != 0) {
rc.Report.Error (4008, loc, "Cannot await void method `{0}'. Consider changing method return type to `Task'",
invocation.GetSignatureForError ());
- } else {
+ } else if (type != InternalType.ErrorType) {
rc.Report.Error (4001, loc, "Cannot await `{0}' expression", type.GetSignatureForError ());
}
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/attribute.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/attribute.cs
index 9e043749..93aeabf9 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/attribute.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/attribute.cs
@@ -837,9 +837,9 @@ namespace Mono.CSharp {
/// </summary>
bool IsSecurityActionValid ()
{
- SecurityAction action = GetSecurityActionValue ();
+ Constant c = null;
+ var action = GetSecurityActionValue (ref c);
bool for_assembly = Target == AttributeTargets.Assembly || Target == AttributeTargets.Module;
- var c = (Constant)pos_args [0].Expr;
switch (action) {
#pragma warning disable 618
@@ -860,6 +860,10 @@ namespace Mono.CSharp {
return true;
break;
#pragma warning restore 618
+ case null:
+ Report.Error (7048, loc, "First argument of a security attribute `{0}' must be a valid SecurityAction",
+ Type.GetSignatureForError ());
+ return false;
default:
Report.Error (7049, c.Location, "Security attribute `{0}' has an invalid SecurityAction value `{1}'",
@@ -881,9 +885,25 @@ namespace Mono.CSharp {
return false;
}
- System.Security.Permissions.SecurityAction GetSecurityActionValue ()
+ SecurityAction? GetSecurityActionValue (ref Constant value)
{
- return (SecurityAction) ((Constant) pos_args[0].Expr).GetValue ();
+ if (pos_args == null) {
+ var predefined = context.Module.PredefinedAttributes;
+
+ //
+ // BCL defines System.Security.Permissions.HostProtectionAttribute with parameterless
+ // contructor which should not be valid but it's already part of the framework
+ //
+ if (Type == predefined.HostProtection.TypeSpec) {
+ value = new IntConstant (context.Module.Compiler.BuiltinTypes, (int)SecurityAction.LinkDemand, loc);
+ return SecurityAction.LinkDemand;
+ }
+
+ return null;
+ }
+
+ value = (Constant) pos_args [0].Expr;
+ return (SecurityAction) value.GetValue ();
}
/// <summary>
@@ -893,9 +913,14 @@ namespace Mono.CSharp {
public void ExtractSecurityPermissionSet (MethodSpec ctor, ref SecurityType permissions)
{
#if STATIC
- object[] values = new object[pos_args.Count];
- for (int i = 0; i < values.Length; ++i)
- values[i] = ((Constant) pos_args[i].Expr).GetValue ();
+ object[] values;
+ if (pos_args != null) {
+ values = new object[pos_args.Count];
+ for (int i = 0; i < values.Length; ++i)
+ values[i] = ((Constant) pos_args[i].Expr).GetValue ();
+ } else {
+ values = null;
+ }
PropertyInfo[] prop;
object[] prop_values;
@@ -1698,6 +1723,7 @@ namespace Mono.CSharp {
public readonly PredefinedDebuggerBrowsableAttribute DebuggerBrowsable;
public readonly PredefinedAttribute DebuggerStepThrough;
public readonly PredefinedDebuggableAttribute Debuggable;
+ public readonly PredefinedAttribute HostProtection;
// New in .NET 3.5
public readonly PredefinedAttribute Extension;
@@ -1717,7 +1743,6 @@ namespace Mono.CSharp {
public readonly PredefinedAttribute FieldOffset;
public readonly PredefinedAttribute AssemblyProduct;
public readonly PredefinedAttribute AssemblyCompany;
- public readonly PredefinedAttribute AssemblyDescription;
public readonly PredefinedAttribute AssemblyCopyright;
public readonly PredefinedAttribute AssemblyTrademark;
public readonly PredefinedAttribute CallerMemberNameAttribute;
@@ -1753,6 +1778,7 @@ namespace Mono.CSharp {
DefaultParameterValue = new PredefinedAttribute (module, "System.Runtime.InteropServices", "DefaultParameterValueAttribute");
OptionalParameter = new PredefinedAttribute (module, "System.Runtime.InteropServices", "OptionalAttribute");
UnverifiableCode = new PredefinedAttribute (module, "System.Security", "UnverifiableCodeAttribute");
+ HostProtection = new PredefinedAttribute (module, "System.Security.Permissions", "HostProtectionAttribute");
DefaultCharset = new PredefinedAttribute (module, "System.Runtime.InteropServices", "DefaultCharSetAttribute");
TypeForwarder = new PredefinedAttribute (module, "System.Runtime.CompilerServices", "TypeForwardedToAttribute");
@@ -1777,7 +1803,6 @@ namespace Mono.CSharp {
FieldOffset = new PredefinedAttribute (module, "System.Runtime.InteropServices", "FieldOffsetAttribute");
AssemblyProduct = new PredefinedAttribute (module, "System.Reflection", "AssemblyProductAttribute");
AssemblyCompany = new PredefinedAttribute (module, "System.Reflection", "AssemblyCompanyAttribute");
- AssemblyDescription = new PredefinedAttribute (module, "System.Reflection", "AssemblyDescriptionAttribute");
AssemblyCopyright = new PredefinedAttribute (module, "System.Reflection", "AssemblyCopyrightAttribute");
AssemblyTrademark = new PredefinedAttribute (module, "System.Reflection", "AssemblyTrademarkAttribute");
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/class.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/class.cs
index ae4c0276..3769d74b 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/class.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/class.cs
@@ -44,7 +44,6 @@ namespace Mono.CSharp
public abstract class TypeContainer : MemberCore
{
public readonly MemberKind Kind;
- public readonly string Basename;
protected List<TypeContainer> containers;
@@ -62,9 +61,6 @@ namespace Mono.CSharp
: base (parent, name, attrs)
{
this.Kind = kind;
- if (name != null)
- this.Basename = name.Basename;
-
defined_names = new Dictionary<string, MemberCore> ();
}
@@ -111,7 +107,7 @@ namespace Mono.CSharp
public virtual void AddPartial (TypeDefinition next_part)
{
MemberCore mc;
- (PartialContainer ?? this).defined_names.TryGetValue (next_part.Basename, out mc);
+ (PartialContainer ?? this).defined_names.TryGetValue (next_part.MemberName.Basename, out mc);
AddPartial (next_part, mc as TypeDefinition);
}
@@ -363,12 +359,8 @@ namespace Mono.CSharp
return MemberName.GetSignatureForError ();
}
- public string GetSignatureForMetadata ()
+ public virtual string GetSignatureForMetadata ()
{
- if (Parent is TypeDefinition) {
- return Parent.GetSignatureForMetadata () + "+" + TypeNameParser.Escape (MemberName.Basename);
- }
-
var sb = new StringBuilder ();
CreateMetadataName (sb);
return sb.ToString ();
@@ -380,7 +372,7 @@ namespace Mono.CSharp
containers.Remove (cont);
var tc = Parent == Module ? Module : this;
- tc.defined_names.Remove (cont.Basename);
+ tc.defined_names.Remove (cont.MemberName.Basename);
}
public virtual void VerifyMembers ()
@@ -456,7 +448,7 @@ namespace Mono.CSharp
return tc.GetSignatureForError ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
return null;
}
@@ -795,7 +787,7 @@ namespace Mono.CSharp
public override void AddTypeContainer (TypeContainer tc)
{
- AddNameToContainer (tc, tc.Basename);
+ AddNameToContainer (tc, tc.MemberName.Basename);
base.AddTypeContainer (tc);
}
@@ -990,7 +982,7 @@ namespace Mono.CSharp
}
}
- public virtual void RegisterFieldForInitialization (MemberCore field, FieldInitializer expression)
+ public void RegisterFieldForInitialization (MemberCore field, FieldInitializer expression)
{
if (IsPartialPart)
PartialContainer.RegisterFieldForInitialization (field, expression);
@@ -1003,6 +995,13 @@ namespace Mono.CSharp
initialized_static_fields.Add (expression);
} else {
+ if (Kind == MemberKind.Struct) {
+ if (Compiler.Settings.Version != LanguageVersion.Experimental) {
+ Report.Error (573, expression.Location, "'{0}': Structs cannot have instance property or field initializers",
+ GetSignatureForError ());
+ }
+ }
+
if (initialized_fields == null)
initialized_fields = new List<FieldInitializer> (4);
@@ -1073,7 +1072,7 @@ namespace Mono.CSharp
//
// Field is re-initialized to its default value => removed
//
- if (fi.IsDefaultInitializer && ec.Module.Compiler.Settings.Optimize)
+ if (fi.IsDefaultInitializer && Kind != MemberKind.Struct && ec.Module.Compiler.Settings.Optimize)
continue;
ec.AssignmentInfoOffset += fi.AssignmentOffset;
@@ -1146,6 +1145,15 @@ namespace Mono.CSharp
}
}
+ public override string GetSignatureForMetadata ()
+ {
+ if (Parent is TypeDefinition) {
+ return Parent.GetSignatureForMetadata () + "+" + TypeNameParser.Escape (FilterNestedName (MemberName.Basename));
+ }
+
+ return base.GetSignatureForMetadata ();
+ }
+
public virtual void SetBaseTypes (List<FullNamedExpression> baseTypes)
{
type_bases = baseTypes;
@@ -1318,7 +1326,7 @@ namespace Mono.CSharp
CreateMetadataName (sb);
TypeBuilder = Module.CreateBuilder (sb.ToString (), TypeAttr, type_size);
} else {
- TypeBuilder = parent_def.TypeBuilder.DefineNestedType (Basename, TypeAttr, null, type_size);
+ TypeBuilder = parent_def.TypeBuilder.DefineNestedType (FilterNestedName (MemberName.Basename), TypeAttr, null, type_size);
}
if (DeclaringAssembly.Importer != null)
@@ -1348,6 +1356,18 @@ namespace Mono.CSharp
return true;
}
+ public static string FilterNestedName (string name)
+ {
+ //
+ // SRE API does not handle namespaces and types separately but
+ // determine that from '.' in name. That's problematic because
+ // dot is valid character for type name. By replacing any '.'
+ // in name we avoid any ambiguities and never emit metadata
+ // namespace for nested types
+ //
+ return name.Replace ('.', '_');
+ }
+
string[] CreateTypeParameters (TypeParameters parentAllTypeParameters)
{
string[] names;
@@ -1818,7 +1838,7 @@ namespace Mono.CSharp
{
base.RemoveContainer (cont);
Members.Remove (cont);
- Cache.Remove (cont.Basename);
+ Cache.Remove (cont.MemberName.Basename);
}
protected virtual bool DoResolveTypeParameters ()
@@ -2687,8 +2707,10 @@ namespace Mono.CSharp
if (Kind == MemberKind.Class)
c.Initializer = new GeneratedBaseInitializer (Location, PrimaryConstructorBaseArguments);
- if (PrimaryConstructorParameters != null && !is_static)
+ if (PrimaryConstructorParameters != null && !is_static) {
c.IsPrimaryConstructor = true;
+ c.caching_flags |= Flags.MethodOverloadsExist;
+ }
AddConstructor (c, true);
if (PrimaryConstructorBlock == null) {
@@ -2707,6 +2729,7 @@ namespace Mono.CSharp
CheckProtectedModifier ();
if (PrimaryConstructorParameters != null) {
+
foreach (Parameter p in PrimaryConstructorParameters.FixedParameters) {
if (p.Name == MemberName.Name) {
Report.Error (8039, p.Location, "Primary constructor of type `{0}' has parameter of same name as containing type",
@@ -3091,10 +3114,14 @@ namespace Mono.CSharp
protected override bool DoDefineMembers ()
{
- if (PrimaryConstructorParameters != null)
+ var res = base.DoDefineMembers ();
+
+ if (PrimaryConstructorParameters != null || (initialized_fields != null && !HasUserDefaultConstructor ())) {
generated_primary_constructor = DefineDefaultConstructor (false);
+ generated_primary_constructor.Define ();
+ }
- return base.DoDefineMembers ();
+ return res;
}
public override void Emit ()
@@ -3104,14 +3131,14 @@ namespace Mono.CSharp
base.Emit ();
}
- bool HasExplicitConstructor ()
+ bool HasUserDefaultConstructor ()
{
- foreach (var m in Members) {
+ foreach (var m in PartialContainer.Members) {
var c = m as Constructor;
if (c == null)
continue;
- if (!c.ParameterInfo.IsEmpty)
+ if (!c.IsStatic && c.ParameterInfo.IsEmpty)
return true;
}
@@ -3170,18 +3197,6 @@ namespace Mono.CSharp
base_type = Compiler.BuiltinTypes.ValueType;
return ifaces;
}
-
- public override void RegisterFieldForInitialization (MemberCore field, FieldInitializer expression)
- {
- if ((field.ModFlags & Modifiers.STATIC) == 0 && !HasExplicitConstructor ()) {
- Report.Error (8054, field.Location, "`{0}': Structs without explicit constructors cannot contain members with initializers",
- field.GetSignatureForError ());
-
- return;
- }
-
- base.RegisterFieldForInitialization (field, expression);
- }
}
/// <summary>
@@ -3727,7 +3742,7 @@ namespace Mono.CSharp
public override string GetSignatureForDocumentation ()
{
if (IsExplicitImpl)
- return Parent.GetSignatureForDocumentation () + "." + InterfaceType.GetExplicitNameSignatureForDocumentation () + "#" + ShortName;
+ return Parent.GetSignatureForDocumentation () + "." + InterfaceType.GetSignatureForDocumentation (true) + "#" + ShortName;
return Parent.GetSignatureForDocumentation () + "." + ShortName;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/codegen.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/codegen.cs
index 55a061cf..6dfe7b6c 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/codegen.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/codegen.cs
@@ -222,6 +222,8 @@ namespace Mono.CSharp
public List<TryFinally> TryFinallyUnwind { get; set; }
+ public Label RecursivePatternLabel { get; set; }
+
#endregion
public void AddStatementEpilog (IExpressionCleanup cleanupExpression)
@@ -547,13 +549,10 @@ namespace Mono.CSharp
switch (type.BuiltinType) {
case BuiltinTypeSpec.Type.Bool:
//
- // Workaround MSIL limitation. Load bool element as single bit,
- // bool array can actually store any byte value
+ // bool array can actually store any byte value in underlying byte slot
+ // and C# spec does not specify any normalization rule, except the result
+ // is undefined
//
- ig.Emit (OpCodes.Ldelem_U1);
- ig.Emit (OpCodes.Ldc_I4_0);
- ig.Emit (OpCodes.Cgt_Un);
- break;
case BuiltinTypeSpec.Type.Byte:
ig.Emit (OpCodes.Ldelem_U1);
break;
@@ -769,12 +768,8 @@ namespace Mono.CSharp
ig.Emit (OpCodes.Ldind_U1);
break;
case BuiltinTypeSpec.Type.SByte:
- ig.Emit (OpCodes.Ldind_I1);
- break;
case BuiltinTypeSpec.Type.Bool:
ig.Emit (OpCodes.Ldind_I1);
- ig.Emit (OpCodes.Ldc_I4_0);
- ig.Emit (OpCodes.Cgt_Un);
break;
case BuiltinTypeSpec.Type.ULong:
case BuiltinTypeSpec.Type.Long:
@@ -1064,7 +1059,7 @@ namespace Mono.CSharp
var ie = new InstanceEmitter (instance_copy, IsAddressCall (instance_copy, call_op, method.DeclaringType));
if (Arguments == null) {
- ie.EmitLoad (ec);
+ ie.EmitLoad (ec, true);
}
} else if (!InstanceExpressionOnStack) {
var ie = new InstanceEmitter (InstanceExpression, IsAddressCall (InstanceExpression, call_op, method.DeclaringType));
@@ -1226,7 +1221,7 @@ namespace Mono.CSharp
instance_address = instance as LocalTemporary;
if (instance_address == null) {
- EmitLoad (ec);
+ EmitLoad (ec, false);
ec.Emit (OpCodes.Dup);
ec.EmitLoadFromPtr (instance.Type);
@@ -1234,11 +1229,8 @@ namespace Mono.CSharp
} else {
instance.Emit (ec);
}
-
- if (instance.Type.Kind == MemberKind.TypeParameter)
- ec.Emit (OpCodes.Box, instance.Type);
} else {
- EmitLoad (ec);
+ EmitLoad (ec, !conditionalAccess);
if (conditionalAccess) {
conditional_access_dup = !IsInexpensiveLoad ();
@@ -1248,6 +1240,9 @@ namespace Mono.CSharp
}
if (conditionalAccess) {
+ if (instance.Type.Kind == MemberKind.TypeParameter)
+ ec.Emit (OpCodes.Box, instance.Type);
+
ec.Emit (OpCodes.Brtrue_S, NullOperatorLabel);
if (conditional_access_dup)
@@ -1280,7 +1275,7 @@ namespace Mono.CSharp
}
}
- public void EmitLoad (EmitContext ec)
+ public void EmitLoad (EmitContext ec, bool boxInstance)
{
var instance_type = instance.Type;
@@ -1311,8 +1306,9 @@ namespace Mono.CSharp
instance.Emit (ec);
// Only to make verifier happy
- if (RequiresBoxing ())
+ if (boxInstance && RequiresBoxing ()) {
ec.Emit (OpCodes.Box, instance_type);
+ }
}
public TypeSpec GetStackType (EmitContext ec)
@@ -1340,6 +1336,9 @@ namespace Mono.CSharp
return false;
}
+ //
+ // Returns true for cheap race-free load, where we can avoid using dup
+ //
bool IsInexpensiveLoad ()
{
if (instance is Constant)
@@ -1349,8 +1348,10 @@ namespace Mono.CSharp
return false;
var vr = instance as VariableReference;
- if (vr != null)
- return !vr.IsRef;
+ if (vr != null) {
+ // Load from captured local would be racy without dup
+ return !vr.IsRef && !vr.IsHoisted;
+ }
if (instance is LocalTemporary)
return true;
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/complete.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/complete.cs
index 3504302d..749c4efc 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/complete.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/complete.cs
@@ -142,7 +142,7 @@ namespace Mono.CSharp {
}
if (targs != null) {
- if (!targs.Resolve (rc))
+ if (!targs.Resolve (rc, true))
return null;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/constant.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/constant.cs
index a50baacc..31c2c3f4 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/constant.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/constant.cs
@@ -60,7 +60,7 @@ namespace Mono.CSharp {
public override void Error_ValueCannotBeConverted (ResolveContext ec, TypeSpec target, bool expl)
{
- if (!expl && IsLiteral &&
+ if (!expl && IsLiteral && type.BuiltinType != BuiltinTypeSpec.Type.Double &&
BuiltinTypeSpec.IsPrimitiveTypeOrDecimal (target) &&
BuiltinTypeSpec.IsPrimitiveTypeOrDecimal (type)) {
ec.Report.Error (31, loc, "Constant value `{0}' cannot be converted to a `{1}'",
@@ -2150,6 +2150,11 @@ namespace Mono.CSharp {
this.name = name;
}
+ static void Error_MethodGroupWithTypeArguments (ResolveContext rc, Location loc)
+ {
+ rc.Report.Error (8084, loc, "An argument to nameof operator cannot be method group with type arguments");
+ }
+
protected override Expression DoResolve (ResolveContext rc)
{
throw new NotSupportedException ();
@@ -2164,66 +2169,81 @@ namespace Mono.CSharp {
if (rc.Module.Compiler.Settings.Version < LanguageVersion.V_6)
rc.Report.FeatureIsNotAvailable (rc.Module.Compiler, Location, "nameof operator");
- if (sn.HasTypeArguments) {
- // TODO: csc compatible but unhelpful error message
- rc.Report.Error (1001, loc, "Identifier expected");
- return true;
+ var res = sn.LookupNameExpression (rc, MemberLookupRestrictions.IgnoreAmbiguity | MemberLookupRestrictions.NameOfExcluded);
+ if (sn.HasTypeArguments && res is MethodGroupExpr) {
+ Error_MethodGroupWithTypeArguments (rc, expr.Location);
}
- sn.LookupNameExpression (rc, MemberLookupRestrictions.IgnoreArity | MemberLookupRestrictions.IgnoreAmbiguity);
return true;
}
var ma = expr as MemberAccess;
if (ma != null) {
- FullNamedExpression fne = ma.LeftExpression as ATypeNameExpression;
- if (fne == null) {
- var qam = ma as QualifiedAliasMember;
- if (qam == null)
- return false;
-
- fne = qam.CreateExpressionFromAlias (rc);
- if (fne == null)
- return true;
- }
+ var lexpr = ma.LeftExpression;
- Value = ma.Name;
+ var res = ma.LookupNameExpression (rc, MemberLookupRestrictions.IgnoreAmbiguity);
+
+ if (res == null) {
+ return false;
+ }
if (rc.Module.Compiler.Settings.Version < LanguageVersion.V_6)
rc.Report.FeatureIsNotAvailable (rc.Module.Compiler, Location, "nameof operator");
- if (ma.HasTypeArguments) {
- // TODO: csc compatible but unhelpful error message
- rc.Report.Error (1001, loc, "Identifier expected");
- return true;
- }
-
- var left = fne.ResolveAsTypeOrNamespace (rc, true);
- if (left == null)
- return true;
-
- var ns = left as NamespaceExpression;
- if (ns != null) {
- FullNamedExpression retval = ns.LookupTypeOrNamespace (rc, ma.Name, 0, LookupMode.NameOf, loc);
- if (retval == null)
- ns.Error_NamespaceDoesNotExist (rc, ma.Name, 0);
-
- return true;
+ if (ma is QualifiedAliasMember) {
+ rc.Report.Error (8083, loc, "An alias-qualified name is not an expression");
+ return false;
}
- if (left.Type.IsGenericOrParentIsGeneric && left.Type.GetDefinition () != left.Type) {
- rc.Report.Error (8071, loc, "Type arguments are not allowed in the nameof operator");
+ if (!IsLeftExpressionValid (lexpr)) {
+ rc.Report.Error (8082, lexpr.Location, "An argument to nameof operator cannot include sub-expression");
+ return false;
}
- var mexpr = MemberLookup (rc, false, left.Type, ma.Name, 0, MemberLookupRestrictions.IgnoreArity | MemberLookupRestrictions.IgnoreAmbiguity, loc);
- if (mexpr == null) {
- ma.Error_IdentifierNotFound (rc, left.Type);
- return true;
+ var mg = res as MethodGroupExpr;
+ if (mg != null) {
+ var emg = res as ExtensionMethodGroupExpr;
+ if (emg != null && !emg.ResolveNameOf (rc, ma)) {
+ return true;
+ }
+
+ if (!mg.HasAccessibleCandidate (rc)) {
+ ErrorIsInaccesible (rc, ma.GetSignatureForError (), loc);
+ }
+
+ if (ma.HasTypeArguments) {
+ Error_MethodGroupWithTypeArguments (rc, ma.Location);
+ }
}
+ Value = ma.Name;
return true;
}
+ rc.Report.Error (8081, loc, "Expression does not have a name");
+ return false;
+ }
+
+ static bool IsLeftExpressionValid (Expression expr)
+ {
+ if (expr is SimpleName)
+ return true;
+
+ if (expr is This)
+ return true;
+
+ if (expr is NamespaceExpression)
+ return true;
+
+ if (expr is TypeExpr)
+ return true;
+
+ var ma = expr as MemberAccess;
+ if (ma != null) {
+ // TODO: Will conditional access be allowed?
+ return IsLeftExpressionValid (ma.LeftExpression);
+ }
+
return false;
}
@@ -2237,7 +2257,6 @@ namespace Mono.CSharp {
var arg = args [0];
var res = ResolveArgumentExpression (rc, arg.Expr);
if (!res) {
- name.Error_NameDoesNotExist (rc);
return null;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/context.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/context.cs
index 230aa125..88e52370 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/context.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/context.cs
@@ -22,8 +22,7 @@ namespace Mono.CSharp
{
Normal = 0,
Probing = 1,
- IgnoreAccessibility = 2,
- NameOf = 3
+ IgnoreAccessibility = 2
}
//
@@ -56,7 +55,7 @@ namespace Mono.CSharp
string GetSignatureForError ();
- ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity);
+ ExtensionMethodCandidates LookupExtensionMethod (string name, int arity);
FullNamedExpression LookupNamespaceOrType (string name, int arity, LookupMode mode, Location loc);
FullNamedExpression LookupNamespaceAlias (string name);
}
@@ -425,9 +424,9 @@ namespace Mono.CSharp
return MemberContext.GetSignatureForError ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
- return MemberContext.LookupExtensionMethod (extensionType, name, arity);
+ return MemberContext.LookupExtensionMethod (name, arity);
}
public FullNamedExpression LookupNamespaceOrType (string name, int arity, LookupMode mode, Location loc)
@@ -464,7 +463,7 @@ namespace Mono.CSharp
public DefiniteAssignmentBitSet DefiniteAssignmentOnFalse { get; set; }
- public List<LabeledStatement> LabelStack { get; set; }
+ Dictionary<Statement, List<DefiniteAssignmentBitSet>> LabelStack { get; set; }
public ParametersBlock ParametersBlock { get; set; }
@@ -480,12 +479,48 @@ namespace Mono.CSharp
public bool UnreachableReported { get; set; }
+ public bool AddReachedLabel (Statement label)
+ {
+ List<DefiniteAssignmentBitSet> das;
+ if (LabelStack == null) {
+ LabelStack = new Dictionary<Statement, List<DefiniteAssignmentBitSet>> ();
+ das = null;
+ } else {
+ LabelStack.TryGetValue (label, out das);
+ }
+
+ if (das == null) {
+ das = new List<DefiniteAssignmentBitSet> ();
+ das.Add (new DefiniteAssignmentBitSet (DefiniteAssignment));
+ LabelStack.Add (label, das);
+ return false;
+ }
+
+ foreach (var existing in das) {
+ if (DefiniteAssignmentBitSet.AreEqual (existing, DefiniteAssignment))
+ return true;
+ }
+
+ if (DefiniteAssignment == DefiniteAssignmentBitSet.Empty)
+ das.Add (DefiniteAssignment);
+ else
+ das.Add (new DefiniteAssignmentBitSet (DefiniteAssignment));
+
+ return false;
+ }
+
public DefiniteAssignmentBitSet BranchDefiniteAssignment ()
{
- var dat = DefiniteAssignment;
- if (dat != DefiniteAssignmentBitSet.Empty)
- DefiniteAssignment = new DefiniteAssignmentBitSet (dat);
- return dat;
+ return BranchDefiniteAssignment (DefiniteAssignment);
+ }
+
+ public DefiniteAssignmentBitSet BranchDefiniteAssignment (DefiniteAssignmentBitSet da)
+ {
+ if (da != DefiniteAssignmentBitSet.Empty) {
+ DefiniteAssignment = new DefiniteAssignmentBitSet (da);
+ }
+
+ return da;
}
public void BranchConditionalAccessDefiniteAssignment ()
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/convert.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/convert.cs
index 065c9a7e..95f9897c 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/convert.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/convert.cs
@@ -1472,6 +1472,12 @@ namespace Mono.CSharp {
if (expr_type.IsStruct && TypeSpecComparer.IsEqual (expr_type, target_type))
return expr_type == target_type ? expr : EmptyCast.Create (expr, target_type);
+ var interpolated_string = expr as InterpolatedString;
+ if (interpolated_string != null) {
+ if (target_type == ec.Module.PredefinedTypes.IFormattable.TypeSpec || target_type == ec.Module.PredefinedTypes.FormattableString.TypeSpec)
+ return interpolated_string.ConvertTo (ec, target_type);
+ }
+
return null;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
index 868c1394..b0ef94f9 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.cs
@@ -213,9 +213,11 @@ namespace Mono.CSharp
//t "using_directives : using_directive",
//t "using_directives : using_directives using_directive",
//t "using_directive : using_namespace",
-//t "using_namespace : USING namespace_or_type_expr SEMICOLON",
-//t "using_namespace : USING IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON",
+//t "using_namespace : USING opt_static namespace_or_type_expr SEMICOLON",
+//t "using_namespace : USING opt_static IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON",
//t "using_namespace : USING error",
+//t "opt_static :",
+//t "opt_static : STATIC",
//t "$$2 :",
//t "$$3 :",
//t "namespace_declaration : opt_attributes NAMESPACE namespace_name $$2 OPEN_BRACE $$3 opt_extern_alias_directives opt_using_directives opt_namespace_or_type_declarations CLOSE_BRACE opt_semicolon_error",
@@ -277,7 +279,8 @@ namespace Mono.CSharp
//t "positional_or_named_argument : error",
//t "$$7 :",
//t "named_attribute_argument : IDENTIFIER ASSIGN $$7 expression",
-//t "named_argument : identifier_inside_body COLON opt_named_modifier expression_or_error",
+//t "named_argument : identifier_inside_body COLON opt_named_modifier named_argument_expr",
+//t "named_argument_expr : expression_or_error",
//t "opt_named_modifier :",
//t "opt_named_modifier : REF",
//t "opt_named_modifier : OUT",
@@ -475,6 +478,7 @@ namespace Mono.CSharp
//t "overloadable_operator : OP_LT",
//t "overloadable_operator : OP_GE",
//t "overloadable_operator : OP_LE",
+//t "overloadable_operator : IS",
//t "$$45 :",
//t "conversion_operator_declarator : IMPLICIT OPERATOR type OPEN_PARENS $$45 opt_formal_parameter_list CLOSE_PARENS",
//t "$$46 :",
@@ -617,7 +621,7 @@ namespace Mono.CSharp
//t "integral_type : LONG",
//t "integral_type : ULONG",
//t "integral_type : CHAR",
-//t "primary_expression : primary_expression_or_type",
+//t "primary_expression : type_name_expression",
//t "primary_expression : literal",
//t "primary_expression : array_creation_expression",
//t "primary_expression : parenthesized_expression",
@@ -637,14 +641,25 @@ namespace Mono.CSharp
//t "primary_expression : pointer_member_access",
//t "primary_expression : anonymous_method_expression",
//t "primary_expression : undocumented_expressions",
-//t "primary_expression_or_type : simple_name_expr",
-//t "primary_expression_or_type : IDENTIFIER GENERATE_COMPLETION",
-//t "primary_expression_or_type : member_access",
+//t "primary_expression : interpolated_string",
+//t "type_name_expression : simple_name_expr",
+//t "type_name_expression : IDENTIFIER GENERATE_COMPLETION",
+//t "type_name_expression : member_access",
//t "literal : boolean_literal",
//t "literal : LITERAL",
//t "literal : NULL",
//t "boolean_literal : TRUE",
//t "boolean_literal : FALSE",
+//t "interpolated_string : INTERPOLATED_STRING interpolations INTERPOLATED_STRING_END",
+//t "interpolated_string : INTERPOLATED_STRING_END",
+//t "interpolations : interpolation",
+//t "interpolations : interpolations INTERPOLATED_STRING interpolation",
+//t "interpolation : expression",
+//t "interpolation : expression COMMA expression",
+//t "$$68 :",
+//t "interpolation : expression COLON $$68 LITERAL",
+//t "$$69 :",
+//t "interpolation : expression COMMA expression COLON $$69 LITERAL",
//t "open_parens_any : OPEN_PARENS",
//t "open_parens_any : OPEN_PARENS_CAST",
//t "close_parens : CLOSE_PARENS",
@@ -696,9 +711,14 @@ namespace Mono.CSharp
//t "argument_or_named_argument : argument",
//t "argument_or_named_argument : named_argument",
//t "non_simple_argument : REF variable_reference",
+//t "non_simple_argument : REF declaration_expression",
//t "non_simple_argument : OUT variable_reference",
+//t "non_simple_argument : OUT declaration_expression",
//t "non_simple_argument : ARGLIST OPEN_PARENS argument_list CLOSE_PARENS",
//t "non_simple_argument : ARGLIST OPEN_PARENS CLOSE_PARENS",
+//t "declaration_expression : OPEN_PARENS declaration_expression CLOSE_PARENS",
+//t "declaration_expression : variable_type identifier_inside_body",
+//t "declaration_expression : variable_type identifier_inside_body ASSIGN expression",
//t "variable_reference : expression",
//t "element_access : primary_expression OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
//t "element_access : primary_expression INTERR_OPERATOR OPEN_BRACKET_EXPR expression_list_arguments CLOSE_BRACKET",
@@ -722,8 +742,8 @@ namespace Mono.CSharp
//t "array_creation_expression : NEW rank_specifier array_initializer",
//t "array_creation_expression : NEW new_expr_type OPEN_BRACKET CLOSE_BRACKET OPEN_BRACKET_EXPR error CLOSE_BRACKET",
//t "array_creation_expression : NEW new_expr_type error",
-//t "$$68 :",
-//t "new_expr_type : $$68 simple_type",
+//t "$$70 :",
+//t "new_expr_type : $$70 simple_type",
//t "anonymous_type_expression : NEW OPEN_BRACE anonymous_type_parameters_opt_comma CLOSE_BRACE",
//t "anonymous_type_expression : NEW OPEN_BRACE GENERATE_COMPLETION",
//t "anonymous_type_parameters_opt_comma : anonymous_type_parameters_opt",
@@ -764,14 +784,14 @@ namespace Mono.CSharp
//t "unchecked_expression : UNCHECKED open_parens_any expression CLOSE_PARENS",
//t "unchecked_expression : UNCHECKED error",
//t "pointer_member_access : primary_expression OP_PTR IDENTIFIER opt_type_argument_list",
-//t "$$69 :",
-//t "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$69 block",
-//t "$$70 :",
-//t "anonymous_method_expression : ASYNC DELEGATE opt_anonymous_method_signature $$70 block",
+//t "$$71 :",
+//t "anonymous_method_expression : DELEGATE opt_anonymous_method_signature $$71 block",
+//t "$$72 :",
+//t "anonymous_method_expression : ASYNC DELEGATE opt_anonymous_method_signature $$72 block",
//t "opt_anonymous_method_signature :",
//t "opt_anonymous_method_signature : anonymous_method_signature",
-//t "$$71 :",
-//t "anonymous_method_signature : OPEN_PARENS $$71 opt_formal_parameter_list CLOSE_PARENS",
+//t "$$73 :",
+//t "anonymous_method_signature : OPEN_PARENS $$73 opt_formal_parameter_list CLOSE_PARENS",
//t "default_value_expression : DEFAULT open_parens_any type CLOSE_PARENS",
//t "unary_expression : primary_expression",
//t "unary_expression : BANG prefixed_unary_expression",
@@ -808,20 +828,35 @@ namespace Mono.CSharp
//t "additive_expression : additive_expression PLUS error",
//t "additive_expression : additive_expression MINUS error",
//t "additive_expression : additive_expression AS type",
-//t "additive_expression : additive_expression IS is_match_expr opt_identifier",
+//t "additive_expression : additive_expression IS pattern_type_expr opt_identifier",
+//t "additive_expression : additive_expression IS pattern_expr",
//t "additive_expression : additive_expression AS error",
//t "additive_expression : additive_expression IS error",
//t "additive_expression : AWAIT IS type",
//t "additive_expression : AWAIT AS type",
-//t "is_match_expr : match_type",
-//t "is_match_expr : match_type rank_specifiers",
-//t "is_match_expr : literal",
-//t "is_match_expr : PLUS prefixed_unary_expression",
-//t "is_match_expr : MINUS prefixed_unary_expression",
-//t "match_type : primary_expression_or_type opt_nullable",
-//t "match_type : primary_expression_or_type pointer_stars",
-//t "match_type : builtin_type_expression",
-//t "match_type : void_invalid",
+//t "pattern_type_expr : variable_type",
+//t "pattern_expr : literal",
+//t "pattern_expr : PLUS prefixed_unary_expression",
+//t "pattern_expr : MINUS prefixed_unary_expression",
+//t "pattern_expr : sizeof_expression",
+//t "pattern_expr : default_value_expression",
+//t "pattern_expr : OPEN_PARENS_CAST type CLOSE_PARENS prefixed_unary_expression",
+//t "pattern_expr : STAR",
+//t "pattern_expr : pattern_expr_invocation",
+//t "pattern_expr : pattern_property",
+//t "pattern_expr_invocation : type_name_expression OPEN_PARENS opt_pattern_list CLOSE_PARENS",
+//t "pattern_property : type_name_expression OPEN_BRACE pattern_property_list CLOSE_BRACE",
+//t "pattern_property_list : pattern_property_entry",
+//t "pattern_property_list : pattern_property_list COMMA pattern_property_entry",
+//t "pattern_property_entry : identifier_inside_body IS pattern",
+//t "pattern : pattern_expr",
+//t "pattern : pattern_type_expr opt_identifier",
+//t "opt_pattern_list :",
+//t "opt_pattern_list : pattern_list",
+//t "pattern_list : pattern_argument",
+//t "pattern_list : pattern_list COMMA pattern_argument",
+//t "pattern_argument : pattern",
+//t "pattern_argument : IDENTIFIER COLON pattern",
//t "shift_expression : additive_expression",
//t "shift_expression : shift_expression OP_SHIFT_LEFT additive_expression",
//t "shift_expression : shift_expression OP_SHIFT_RIGHT additive_expression",
@@ -882,24 +917,24 @@ namespace Mono.CSharp
//t "lambda_parameter : AWAIT",
//t "opt_lambda_parameter_list :",
//t "opt_lambda_parameter_list : lambda_parameter_list",
-//t "$$72 :",
-//t "lambda_expression_body : $$72 expression",
+//t "$$74 :",
+//t "lambda_expression_body : $$74 expression",
//t "lambda_expression_body : block",
//t "lambda_expression_body : error",
//t "expression_or_error : expression",
//t "expression_or_error : error",
-//t "$$73 :",
-//t "lambda_expression : IDENTIFIER ARROW $$73 lambda_expression_body",
-//t "$$74 :",
-//t "lambda_expression : AWAIT ARROW $$74 lambda_expression_body",
//t "$$75 :",
-//t "lambda_expression : ASYNC identifier_inside_body ARROW $$75 lambda_expression_body",
+//t "lambda_expression : IDENTIFIER ARROW $$75 lambda_expression_body",
//t "$$76 :",
+//t "lambda_expression : AWAIT ARROW $$76 lambda_expression_body",
//t "$$77 :",
-//t "lambda_expression : OPEN_PARENS_LAMBDA $$76 opt_lambda_parameter_list CLOSE_PARENS ARROW $$77 lambda_expression_body",
+//t "lambda_expression : ASYNC identifier_inside_body ARROW $$77 lambda_expression_body",
//t "$$78 :",
//t "$$79 :",
-//t "lambda_expression : ASYNC OPEN_PARENS_LAMBDA $$78 opt_lambda_parameter_list CLOSE_PARENS ARROW $$79 lambda_expression_body",
+//t "lambda_expression : OPEN_PARENS_LAMBDA $$78 opt_lambda_parameter_list CLOSE_PARENS ARROW $$79 lambda_expression_body",
+//t "$$80 :",
+//t "$$81 :",
+//t "lambda_expression : ASYNC OPEN_PARENS_LAMBDA $$80 opt_lambda_parameter_list CLOSE_PARENS ARROW $$81 lambda_expression_body",
//t "expression : assignment_expression",
//t "expression : non_assignment_expression",
//t "non_assignment_expression : conditional_expression",
@@ -918,13 +953,13 @@ namespace Mono.CSharp
//t "opt_primary_parameters_with_class_base : class_base",
//t "opt_primary_parameters_with_class_base : primary_parameters",
//t "opt_primary_parameters_with_class_base : primary_parameters class_base",
-//t "$$80 :",
-//t "opt_primary_parameters_with_class_base : primary_parameters class_base OPEN_PARENS $$80 opt_argument_list CLOSE_PARENS",
-//t "$$81 :",
//t "$$82 :",
+//t "opt_primary_parameters_with_class_base : primary_parameters class_base OPEN_PARENS $$82 opt_argument_list CLOSE_PARENS",
//t "$$83 :",
//t "$$84 :",
-//t "class_declaration : opt_attributes opt_modifiers opt_partial CLASS $$81 type_declaration_name $$82 opt_primary_parameters_with_class_base opt_type_parameter_constraints_clauses $$83 OPEN_BRACE opt_class_member_declarations CLOSE_BRACE $$84 opt_semicolon",
+//t "$$85 :",
+//t "$$86 :",
+//t "class_declaration : opt_attributes opt_modifiers opt_partial CLASS $$83 type_declaration_name $$84 opt_primary_parameters_with_class_base opt_type_parameter_constraints_clauses $$85 OPEN_BRACE opt_class_member_declarations CLOSE_BRACE $$86 opt_semicolon",
//t "opt_partial :",
//t "opt_partial : PARTIAL",
//t "opt_modifiers :",
@@ -966,15 +1001,15 @@ namespace Mono.CSharp
//t "opt_type_parameter_variance : type_parameter_variance",
//t "type_parameter_variance : OUT",
//t "type_parameter_variance : IN",
-//t "$$85 :",
-//t "block : OPEN_BRACE $$85 opt_statement_list block_end",
+//t "$$87 :",
+//t "block : OPEN_BRACE $$87 opt_statement_list block_end",
//t "block_end : CLOSE_BRACE",
//t "block_end : COMPLETE_COMPLETION",
-//t "$$86 :",
-//t "block_prepared : OPEN_BRACE $$86 opt_statement_list CLOSE_BRACE",
+//t "$$88 :",
+//t "block_prepared : OPEN_BRACE $$88 opt_statement_list CLOSE_BRACE",
//t "block_prepared : CLOSE_BRACE",
-//t "$$87 :",
-//t "block_prepared_strict : OPEN_BRACE $$87 opt_statement_list CLOSE_BRACE",
+//t "$$89 :",
+//t "block_prepared_strict : OPEN_BRACE $$89 opt_statement_list CLOSE_BRACE",
//t "opt_statement_list :",
//t "opt_statement_list : statement_list",
//t "statement_list : statement",
@@ -1020,12 +1055,12 @@ namespace Mono.CSharp
//t "embedded_statement : labeled_statement",
//t "embedded_statement : error",
//t "empty_statement : SEMICOLON",
-//t "$$88 :",
-//t "labeled_statement : identifier_inside_body COLON $$88 statement",
+//t "$$90 :",
+//t "labeled_statement : identifier_inside_body COLON $$90 statement",
//t "variable_type : variable_type_simple",
//t "variable_type : variable_type_simple rank_specifiers",
-//t "variable_type_simple : primary_expression_or_type opt_nullable",
-//t "variable_type_simple : primary_expression_or_type pointer_stars",
+//t "variable_type_simple : type_name_expression opt_nullable",
+//t "variable_type_simple : type_name_expression pointer_stars",
//t "variable_type_simple : builtin_type_expression",
//t "variable_type_simple : void_invalid",
//t "pointer_stars : pointer_star",
@@ -1033,10 +1068,10 @@ namespace Mono.CSharp
//t "pointer_star : STAR",
//t "identifier_inside_body : IDENTIFIER",
//t "identifier_inside_body : AWAIT",
-//t "$$89 :",
-//t "block_variable_declaration : variable_type identifier_inside_body $$89 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
-//t "$$90 :",
-//t "block_variable_declaration : CONST variable_type identifier_inside_body $$90 const_variable_initializer opt_const_declarators SEMICOLON",
+//t "$$91 :",
+//t "block_variable_declaration : variable_type identifier_inside_body $$91 opt_local_variable_initializer opt_variable_declarators semicolon_or_handle_error_close_brace",
+//t "$$92 :",
+//t "block_variable_declaration : CONST variable_type identifier_inside_body $$92 const_variable_initializer opt_const_declarators SEMICOLON",
//t "semicolon_or_handle_error_close_brace : SEMICOLON",
//t "semicolon_or_handle_error_close_brace : CLOSE_BRACE",
//t "opt_local_variable_initializer :",
@@ -1073,8 +1108,8 @@ namespace Mono.CSharp
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement",
//t "if_statement : IF open_parens_any boolean_expression CLOSE_PARENS embedded_statement ELSE embedded_statement",
//t "if_statement : IF open_parens_any boolean_expression error",
-//t "$$91 :",
-//t "switch_statement : SWITCH open_parens_any expression CLOSE_PARENS OPEN_BRACE $$91 opt_switch_sections CLOSE_BRACE",
+//t "$$93 :",
+//t "switch_statement : SWITCH open_parens_any expression CLOSE_PARENS OPEN_BRACE $$93 opt_switch_sections CLOSE_BRACE",
//t "switch_statement : SWITCH open_parens_any expression error",
//t "opt_switch_sections :",
//t "opt_switch_sections : switch_sections",
@@ -1096,20 +1131,20 @@ namespace Mono.CSharp
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression CLOSE_PARENS SEMICOLON",
//t "do_statement : DO embedded_statement error",
//t "do_statement : DO embedded_statement WHILE open_parens_any boolean_expression error",
-//t "$$92 :",
-//t "for_statement : FOR open_parens_any $$92 for_statement_cont",
-//t "$$93 :",
-//t "for_statement_cont : opt_for_initializer SEMICOLON $$93 for_statement_condition",
-//t "for_statement_cont : opt_for_initializer CLOSE_PARENS",
//t "$$94 :",
-//t "for_statement_condition : opt_for_condition SEMICOLON $$94 for_statement_end",
+//t "for_statement : FOR open_parens_any $$94 for_statement_cont",
+//t "$$95 :",
+//t "for_statement_cont : opt_for_initializer SEMICOLON $$95 for_statement_condition",
+//t "for_statement_cont : opt_for_initializer CLOSE_PARENS",
+//t "$$96 :",
+//t "for_statement_condition : opt_for_condition SEMICOLON $$96 for_statement_end",
//t "for_statement_condition : boolean_expression CLOSE_PARENS",
//t "for_statement_end : opt_for_iterator CLOSE_PARENS embedded_statement",
//t "for_statement_end : error",
//t "opt_for_initializer :",
//t "opt_for_initializer : for_initializer",
-//t "$$95 :",
-//t "for_initializer : variable_type identifier_inside_body $$95 opt_local_variable_initializer opt_variable_declarators",
+//t "$$97 :",
+//t "for_initializer : variable_type identifier_inside_body $$97 opt_local_variable_initializer opt_variable_declarators",
//t "for_initializer : statement_expression_list",
//t "opt_for_condition :",
//t "opt_for_condition : boolean_expression",
@@ -1120,8 +1155,8 @@ namespace Mono.CSharp
//t "statement_expression_list : statement_expression_list COMMA statement_expression",
//t "foreach_statement : FOREACH open_parens_any type error",
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
-//t "$$96 :",
-//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body IN expression CLOSE_PARENS $$96 embedded_statement",
+//t "$$98 :",
+//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body IN expression CLOSE_PARENS $$98 embedded_statement",
//t "foreach_statement : FOREACH open_parens_any type identifier_inside_body error",
//t "foreach_statement : FOREACH open_parens_any type error",
//t "jump_statement : break_statement",
@@ -1156,24 +1191,26 @@ namespace Mono.CSharp
//t "opt_identifier :",
//t "opt_identifier : identifier_inside_body",
//t "catch_clause : CATCH opt_catch_filter block",
-//t "$$97 :",
-//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS $$97 opt_catch_filter block_prepared",
+//t "$$99 :",
+//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS $$99 opt_catch_filter_or_error",
//t "catch_clause : CATCH open_parens_any error",
-//t "catch_clause : CATCH open_parens_any type opt_identifier CLOSE_PARENS error",
+//t "opt_catch_filter_or_error : opt_catch_filter block_prepared",
+//t "opt_catch_filter_or_error : error",
//t "opt_catch_filter :",
-//t "opt_catch_filter : IF open_parens_any expression CLOSE_PARENS",
+//t "$$100 :",
+//t "opt_catch_filter : WHEN $$100 open_parens_any expression CLOSE_PARENS",
//t "checked_statement : CHECKED block",
//t "unchecked_statement : UNCHECKED block",
-//t "$$98 :",
-//t "unsafe_statement : UNSAFE $$98 block",
+//t "$$101 :",
+//t "unsafe_statement : UNSAFE $$101 block",
//t "lock_statement : LOCK open_parens_any expression CLOSE_PARENS embedded_statement",
//t "lock_statement : LOCK open_parens_any expression error",
-//t "$$99 :",
-//t "$$100 :",
-//t "fixed_statement : FIXED open_parens_any variable_type identifier_inside_body $$99 using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators CLOSE_PARENS $$100 embedded_statement",
-//t "$$101 :",
//t "$$102 :",
-//t "using_statement : USING open_parens_any variable_type identifier_inside_body $$101 using_initialization CLOSE_PARENS $$102 embedded_statement",
+//t "$$103 :",
+//t "fixed_statement : FIXED open_parens_any variable_type identifier_inside_body $$102 using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators CLOSE_PARENS $$103 embedded_statement",
+//t "$$104 :",
+//t "$$105 :",
+//t "using_statement : USING open_parens_any variable_type identifier_inside_body $$104 using_initialization CLOSE_PARENS $$105 embedded_statement",
//t "using_statement : USING open_parens_any expression CLOSE_PARENS embedded_statement",
//t "using_statement : USING open_parens_any expression error",
//t "using_initialization : using_or_fixed_variable_initializer opt_using_or_fixed_variable_declarators",
@@ -1188,20 +1225,20 @@ namespace Mono.CSharp
//t "first_from_clause : FROM_FIRST type identifier_inside_body IN expression",
//t "nested_from_clause : FROM identifier_inside_body IN expression",
//t "nested_from_clause : FROM type identifier_inside_body IN expression",
-//t "$$103 :",
-//t "from_clause : FROM identifier_inside_body IN $$103 expression_or_error",
-//t "$$104 :",
-//t "from_clause : FROM type identifier_inside_body IN $$104 expression_or_error",
+//t "$$106 :",
+//t "from_clause : FROM identifier_inside_body IN $$106 expression_or_error",
+//t "$$107 :",
+//t "from_clause : FROM type identifier_inside_body IN $$107 expression_or_error",
//t "query_body : query_body_clauses select_or_group_clause opt_query_continuation",
//t "query_body : select_or_group_clause opt_query_continuation",
//t "query_body : query_body_clauses COMPLETE_COMPLETION",
//t "query_body : query_body_clauses error",
//t "query_body : error",
-//t "$$105 :",
-//t "select_or_group_clause : SELECT $$105 expression_or_error",
-//t "$$106 :",
-//t "$$107 :",
-//t "select_or_group_clause : GROUP $$106 expression_or_error $$107 by_expression",
+//t "$$108 :",
+//t "select_or_group_clause : SELECT $$108 expression_or_error",
+//t "$$109 :",
+//t "$$110 :",
+//t "select_or_group_clause : GROUP $$109 expression_or_error $$110 by_expression",
//t "by_expression : BY expression_or_error",
//t "by_expression : error",
//t "query_body_clauses : query_body_clause",
@@ -1211,28 +1248,28 @@ namespace Mono.CSharp
//t "query_body_clause : where_clause",
//t "query_body_clause : join_clause",
//t "query_body_clause : orderby_clause",
-//t "$$108 :",
-//t "let_clause : LET identifier_inside_body ASSIGN $$108 expression_or_error",
-//t "$$109 :",
-//t "where_clause : WHERE $$109 expression_or_error",
-//t "$$110 :",
//t "$$111 :",
+//t "let_clause : LET identifier_inside_body ASSIGN $$111 expression_or_error",
//t "$$112 :",
-//t "join_clause : JOIN identifier_inside_body IN $$110 expression_or_error ON $$111 expression_or_error EQUALS $$112 expression_or_error opt_join_into",
+//t "where_clause : WHERE $$112 expression_or_error",
//t "$$113 :",
//t "$$114 :",
//t "$$115 :",
-//t "join_clause : JOIN type identifier_inside_body IN $$113 expression_or_error ON $$114 expression_or_error EQUALS $$115 expression_or_error opt_join_into",
+//t "join_clause : JOIN identifier_inside_body IN $$113 expression_or_error ON $$114 expression_or_error EQUALS $$115 expression_or_error opt_join_into",
+//t "$$116 :",
+//t "$$117 :",
+//t "$$118 :",
+//t "join_clause : JOIN type identifier_inside_body IN $$116 expression_or_error ON $$117 expression_or_error EQUALS $$118 expression_or_error opt_join_into",
//t "opt_join_into :",
//t "opt_join_into : INTO identifier_inside_body",
-//t "$$116 :",
-//t "orderby_clause : ORDERBY $$116 orderings",
+//t "$$119 :",
+//t "orderby_clause : ORDERBY $$119 orderings",
//t "orderings : order_by",
-//t "$$117 :",
-//t "orderings : order_by COMMA $$117 orderings_then_by",
+//t "$$120 :",
+//t "orderings : order_by COMMA $$120 orderings_then_by",
//t "orderings_then_by : then_by",
-//t "$$118 :",
-//t "orderings_then_by : orderings_then_by COMMA $$118 then_by",
+//t "$$121 :",
+//t "orderings_then_by : orderings_then_by COMMA $$121 then_by",
//t "order_by : expression",
//t "order_by : expression ASCENDING",
//t "order_by : expression DESCENDING",
@@ -1240,12 +1277,12 @@ namespace Mono.CSharp
//t "then_by : expression ASCENDING",
//t "then_by : expression DESCENDING",
//t "opt_query_continuation :",
-//t "$$119 :",
-//t "opt_query_continuation : INTO identifier_inside_body $$119 query_body",
+//t "$$122 :",
+//t "opt_query_continuation : INTO identifier_inside_body $$122 query_body",
//t "interactive_parsing : EVAL_STATEMENT_PARSER EOF",
//t "interactive_parsing : EVAL_USING_DECLARATIONS_UNIT_PARSER using_directives opt_COMPLETE_COMPLETION",
-//t "$$120 :",
-//t "interactive_parsing : EVAL_STATEMENT_PARSER $$120 interactive_statement_list opt_COMPLETE_COMPLETION",
+//t "$$123 :",
+//t "interactive_parsing : EVAL_STATEMENT_PARSER $$123 interactive_statement_list opt_COMPLETE_COMPLETION",
//t "interactive_parsing : EVAL_COMPILATION_UNIT_PARSER interactive_compilation_unit",
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives",
//t "interactive_compilation_unit : opt_extern_alias_directives opt_using_directives namespace_or_type_declarations",
@@ -1259,16 +1296,16 @@ namespace Mono.CSharp
//t "doc_cref : VOID opt_doc_method_sig",
//t "doc_cref : builtin_types DOT IDENTIFIER opt_doc_method_sig",
//t "doc_cref : doc_type_declaration_name DOT THIS",
-//t "$$121 :",
-//t "doc_cref : doc_type_declaration_name DOT THIS OPEN_BRACKET $$121 opt_doc_parameters CLOSE_BRACKET",
+//t "$$124 :",
+//t "doc_cref : doc_type_declaration_name DOT THIS OPEN_BRACKET $$124 opt_doc_parameters CLOSE_BRACKET",
//t "doc_cref : EXPLICIT OPERATOR type opt_doc_method_sig",
//t "doc_cref : IMPLICIT OPERATOR type opt_doc_method_sig",
//t "doc_cref : OPERATOR overloadable_operator opt_doc_method_sig",
//t "doc_type_declaration_name : type_declaration_name",
//t "doc_type_declaration_name : doc_type_declaration_name DOT type_declaration_name",
//t "opt_doc_method_sig :",
-//t "$$122 :",
-//t "opt_doc_method_sig : OPEN_PARENS $$122 opt_doc_parameters CLOSE_PARENS",
+//t "$$125 :",
+//t "opt_doc_method_sig : OPEN_PARENS $$125 opt_doc_parameters CLOSE_PARENS",
//t "opt_doc_parameters :",
//t "opt_doc_parameters : doc_parameters",
//t "doc_parameters : doc_parameter",
@@ -1313,7 +1350,8 @@ namespace Mono.CSharp
"FROM_FIRST","JOIN","ON","EQUALS","SELECT","GROUP","BY","LET",
"ORDERBY","ASCENDING","DESCENDING","INTO","INTERR_NULLABLE",
"EXTERN_ALIAS","REFVALUE","REFTYPE","MAKEREF","ASYNC","AWAIT",
- "INTERR_OPERATOR","GET","SET","LAST_KEYWORD","OPEN_BRACE",
+ "INTERR_OPERATOR","WHEN","INTERPOLATED_STRING",
+ "INTERPOLATED_STRING_END","GET","SET","LAST_KEYWORD","OPEN_BRACE",
"CLOSE_BRACE","OPEN_BRACKET","CLOSE_BRACKET","OPEN_PARENS",
"CLOSE_PARENS","DOT","COMMA","COLON","SEMICOLON","TILDE","PLUS",
"MINUS","BANG","ASSIGN","OP_LT","OP_GT","BITWISE_AND","BITWISE_OR",
@@ -1518,20 +1556,20 @@ namespace Mono.CSharp
yyVal = yyV > yyTop ? null : yyVals[yyV]; // yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
switch (yyN) {
case 1:
-#line 389 "cs-parser.jay"
+#line 392 "cs-parser.jay"
{
Lexer.check_incorrect_doc_comment ();
}
break;
case 2:
-#line 390 "cs-parser.jay"
+#line 393 "cs-parser.jay"
{ Lexer.CompleteOnEOF = false; }
break;
case 6:
case_6();
break;
case 7:
-#line 409 "cs-parser.jay"
+#line 412 "cs-parser.jay"
{
module.AddAttributes ((Attributes) yyVals[0+yyTop], current_namespace);
}
@@ -1543,7 +1581,7 @@ case 13:
case_13();
break;
case 14:
-#line 454 "cs-parser.jay"
+#line 457 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
}
@@ -1560,23 +1598,17 @@ case 19:
case 20:
case_20();
break;
-case 21:
- case_21();
- break;
-case 22:
- case_22();
- break;
case 23:
case_23();
break;
case 24:
case_24();
break;
-case 27:
- case_27();
+case 25:
+ case_25();
break;
-case 28:
- case_28();
+case 26:
+ case_26();
break;
case 29:
case_29();
@@ -1584,23 +1616,23 @@ case 29:
case 30:
case_30();
break;
-case 43:
- case_43();
+case 31:
+ case_31();
break;
-case 44:
-#line 638 "cs-parser.jay"
- {
- current_namespace.DeclarationFound = true;
- }
+case 32:
+ case_32();
break;
case 45:
case_45();
break;
-case 53:
- case_53();
+case 46:
+#line 660 "cs-parser.jay"
+ {
+ current_namespace.DeclarationFound = true;
+ }
break;
-case 54:
- case_54();
+case 47:
+ case_47();
break;
case 55:
case_55();
@@ -1627,47 +1659,47 @@ case 62:
case_62();
break;
case 63:
-#line 763 "cs-parser.jay"
- { yyVal = "event"; PushLocation (GetLocation (yyVals[0+yyTop])); }
+ case_63();
break;
case 64:
-#line 764 "cs-parser.jay"
- { yyVal = "return"; PushLocation (GetLocation (yyVals[0+yyTop])); }
+ case_64();
break;
case 65:
-#line 771 "cs-parser.jay"
- {
- yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
- }
+#line 787 "cs-parser.jay"
+ { yyVal = "event"; PushLocation (GetLocation (yyVals[0+yyTop])); }
break;
case 66:
- case_66();
+#line 788 "cs-parser.jay"
+ { yyVal = "return"; PushLocation (GetLocation (yyVals[0+yyTop])); }
break;
case 67:
-#line 788 "cs-parser.jay"
+#line 795 "cs-parser.jay"
{
- ++lexer.parsing_block;
+ yyVal = new List<Attribute> (4) { (Attribute) yyVals[0+yyTop] };
}
break;
case 68:
case_68();
break;
-case 70:
-#line 816 "cs-parser.jay"
- { yyVal = null; HadAttributeParens = false; }
+case 69:
+#line 812 "cs-parser.jay"
+ {
+ ++lexer.parsing_block;
+ }
break;
-case 71:
- case_71();
+case 70:
+ case_70();
break;
case 72:
-#line 828 "cs-parser.jay"
- { yyVal = null; }
+#line 840 "cs-parser.jay"
+ { yyVal = null; HadAttributeParens = false; }
break;
case 73:
case_73();
break;
case 74:
- case_74();
+#line 852 "cs-parser.jay"
+ { yyVal = null; }
break;
case 75:
case_75();
@@ -1676,61 +1708,56 @@ case 76:
case_76();
break;
case 77:
-#line 872 "cs-parser.jay"
- {
- yyVal = new Argument ((Expression) yyVals[0+yyTop]);
- }
+ case_77();
break;
-case 79:
- case_79();
+case 78:
+ case_78();
break;
-case 80:
-#line 885 "cs-parser.jay"
+case 79:
+#line 896 "cs-parser.jay"
{
- ++lexer.parsing_block;
+ yyVal = new Argument ((Expression) yyVals[0+yyTop]);
}
break;
case 81:
case_81();
break;
case 82:
- case_82();
+#line 909 "cs-parser.jay"
+ {
+ ++lexer.parsing_block;
+ }
break;
case 83:
-#line 911 "cs-parser.jay"
- { yyVal = null; }
+ case_83();
break;
case 84:
-#line 915 "cs-parser.jay"
+ case_84();
+ break;
+case 86:
+#line 940 "cs-parser.jay"
+ { yyVal = null; }
+ break;
+case 87:
+#line 944 "cs-parser.jay"
{
yyVal = Argument.AType.Ref;
}
break;
-case 85:
-#line 919 "cs-parser.jay"
+case 88:
+#line 948 "cs-parser.jay"
{
yyVal = Argument.AType.Out;
}
break;
-case 88:
- case_88();
- break;
-case 89:
- case_89();
+case 91:
+ case_91();
break;
-case 103:
- case_103();
- break;
-case 104:
- case_104();
- break;
-case 105:
- case_105();
+case 92:
+ case_92();
break;
case 106:
-#line 996 "cs-parser.jay"
- {
- }
+ case_106();
break;
case 107:
case_107();
@@ -1739,7 +1766,9 @@ case 108:
case_108();
break;
case 109:
- case_109();
+#line 1025 "cs-parser.jay"
+ {
+ }
break;
case 110:
case_110();
@@ -1748,10 +1777,7 @@ case 111:
case_111();
break;
case 112:
-#line 1046 "cs-parser.jay"
- {
- Error_SyntaxError (yyToken);
- }
+ case_112();
break;
case 113:
case_113();
@@ -1760,124 +1786,124 @@ case 114:
case_114();
break;
case 115:
- case_115();
+#line 1075 "cs-parser.jay"
+ {
+ Error_SyntaxError (yyToken);
+ }
+ break;
+case 116:
+ case_116();
+ break;
+case 117:
+ case_117();
break;
case 118:
-#line 1095 "cs-parser.jay"
+ case_118();
+ break;
+case 121:
+#line 1124 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 119:
-#line 1099 "cs-parser.jay"
+case 122:
+#line 1128 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 120:
- case_120();
+case 123:
+ case_123();
break;
-case 121:
-#line 1115 "cs-parser.jay"
+case 124:
+#line 1144 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
-case 122:
- case_122();
- break;
-case 123:
- case_123();
+case 125:
+ case_125();
break;
case 126:
case_126();
break;
-case 127:
- case_127();
- break;
-case 128:
- case_128();
- break;
case 129:
case_129();
break;
case 130:
-#line 1194 "cs-parser.jay"
- {
- report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
- }
+ case_130();
+ break;
+case 131:
+ case_131();
break;
case 132:
case_132();
break;
case 133:
- case_133();
+#line 1223 "cs-parser.jay"
+ {
+ report.Error (1641, GetLocation (yyVals[-1+yyTop]), "A fixed size buffer field must have the array size specifier after the field name");
+ }
+ break;
+case 135:
+ case_135();
break;
case 136:
-#line 1224 "cs-parser.jay"
+ case_136();
+ break;
+case 139:
+#line 1253 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 137:
-#line 1228 "cs-parser.jay"
+case 140:
+#line 1257 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 138:
- case_138();
+case 141:
+ case_141();
break;
-case 139:
-#line 1241 "cs-parser.jay"
+case 142:
+#line 1270 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
-case 140:
- case_140();
- break;
case 143:
-#line 1260 "cs-parser.jay"
+ case_143();
+ break;
+case 146:
+#line 1289 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 144:
-#line 1264 "cs-parser.jay"
+case 147:
+#line 1293 "cs-parser.jay"
{
current_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 145:
- case_145();
+case 148:
+ case_148();
break;
-case 146:
-#line 1280 "cs-parser.jay"
+case 149:
+#line 1309 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
-case 147:
- case_147();
- break;
-case 148:
- case_148();
+case 150:
+ case_150();
break;
case 151:
case_151();
break;
-case 152:
- case_152();
- break;
-case 153:
- case_153();
- break;
case 154:
-#line 1348 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.All;
- }
+ case_154();
break;
case 155:
case_155();
@@ -1886,51 +1912,54 @@ case 156:
case_156();
break;
case 157:
-#line 1387 "cs-parser.jay"
+#line 1377 "cs-parser.jay"
{
- lexer.parsing_generic_declaration = true;
+ valid_param_mod = ParameterModifierType.All;
}
break;
case 158:
case_158();
break;
case 159:
-#line 1397 "cs-parser.jay"
- {
- lexer.ConstraintsParsing = true;
- }
+ case_159();
break;
case 160:
- case_160();
+#line 1416 "cs-parser.jay"
+ {
+ lexer.parsing_generic_declaration = true;
+ }
break;
case 161:
case_161();
break;
case 162:
- case_162();
+#line 1426 "cs-parser.jay"
+ {
+ lexer.ConstraintsParsing = true;
+ }
break;
-case 166:
-#line 1475 "cs-parser.jay"
- { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
+case 163:
+ case_163();
break;
-case 167:
- case_167();
+case 164:
+ case_164();
break;
-case 168:
- case_168();
+case 165:
+ case_165();
break;
case 169:
-#line 1499 "cs-parser.jay"
- { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
+#line 1504 "cs-parser.jay"
+ { savedLocation = GetLocation (yyVals[0+yyTop]); yyVal = null; }
+ break;
+case 170:
+ case_170();
break;
case 171:
case_171();
break;
case 172:
- case_172();
- break;
-case 173:
- case_173();
+#line 1528 "cs-parser.jay"
+ { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
break;
case 174:
case_174();
@@ -1945,25 +1974,25 @@ case 177:
case_177();
break;
case 178:
-#line 1571 "cs-parser.jay"
- {
- yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
- }
+ case_178();
break;
case 179:
-#line 1575 "cs-parser.jay"
- {
- yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
- }
+ case_179();
break;
case 180:
case_180();
break;
case 181:
- case_181();
+#line 1600 "cs-parser.jay"
+ {
+ yyVal = new ParametersCompiled (new Parameter[] { (Parameter) yyVals[0+yyTop] } );
+ }
break;
case 182:
- case_182();
+#line 1604 "cs-parser.jay"
+ {
+ yyVal = new ParametersCompiled (new Parameter [] { new ArglistParameter (GetLocation (yyVals[0+yyTop])) }, true);
+ }
break;
case 183:
case_183();
@@ -1978,32 +2007,32 @@ case 186:
case_186();
break;
case 187:
-#line 1656 "cs-parser.jay"
- {
- ++lexer.parsing_block;
- }
+ case_187();
break;
case 188:
case_188();
break;
case 189:
-#line 1697 "cs-parser.jay"
- { yyVal = Parameter.Modifier.NONE; }
+ case_189();
break;
-case 191:
-#line 1705 "cs-parser.jay"
+case 190:
+#line 1685 "cs-parser.jay"
{
- yyVal = yyVals[0+yyTop];
+ ++lexer.parsing_block;
}
break;
-case 192:
- case_192();
+case 191:
+ case_191();
break;
-case 193:
- case_193();
+case 192:
+#line 1726 "cs-parser.jay"
+ { yyVal = Parameter.Modifier.NONE; }
break;
case 194:
- case_194();
+#line 1734 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 195:
case_195();
@@ -2024,10 +2053,7 @@ case 200:
case_200();
break;
case 201:
-#line 1799 "cs-parser.jay"
- {
- Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
- }
+ case_201();
break;
case 202:
case_202();
@@ -2036,7 +2062,10 @@ case 203:
case_203();
break;
case 204:
- case_204();
+#line 1828 "cs-parser.jay"
+ {
+ Error_DuplicateParameterModifier (GetLocation (yyVals[-1+yyTop]), Parameter.Modifier.PARAMS);
+ }
break;
case 205:
case_205();
@@ -2045,10 +2074,7 @@ case 206:
case_206();
break;
case 207:
-#line 1849 "cs-parser.jay"
- {
- current_property = null;
- }
+ case_207();
break;
case 208:
case_208();
@@ -2056,41 +2082,44 @@ case 208:
case 209:
case_209();
break;
+case 210:
+#line 1878 "cs-parser.jay"
+ {
+ current_property = null;
+ }
+ break;
case 211:
case_211();
break;
case 212:
case_212();
break;
-case 215:
-#line 1911 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
- }
+case 214:
+ case_214();
break;
-case 216:
- case_216();
- break;
-case 217:
- case_217();
+case 215:
+ case_215();
break;
case 218:
-#line 1957 "cs-parser.jay"
+#line 1940 "cs-parser.jay"
{
- lbag.AppendToMember (current_property, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
+ valid_param_mod = ParameterModifierType.Params | ParameterModifierType.DefaultValue;
}
break;
case 219:
case_219();
break;
-case 224:
- case_224();
+case 220:
+ case_220();
break;
-case 225:
- case_225();
+case 221:
+#line 1986 "cs-parser.jay"
+ {
+ lbag.AppendToMember (current_property, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
+ }
break;
-case 226:
- case_226();
+case 222:
+ case_222();
break;
case 227:
case_227();
@@ -2098,17 +2127,15 @@ case 227:
case 228:
case_228();
break;
+case 229:
+ case_229();
+ break;
case 230:
case_230();
break;
case 231:
case_231();
break;
-case 232:
-#line 2098 "cs-parser.jay"
- {
- }
- break;
case 233:
case_233();
break;
@@ -2116,187 +2143,186 @@ case 234:
case_234();
break;
case 235:
- case_235();
+#line 2127 "cs-parser.jay"
+ {
+ }
break;
case 236:
case_236();
break;
case 237:
-#line 2138 "cs-parser.jay"
+ case_237();
+ break;
+case 238:
+ case_238();
+ break;
+case 239:
+ case_239();
+ break;
+case 240:
+#line 2167 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
}
break;
-case 240:
- case_240();
+case 243:
+ case_243();
break;
-case 241:
- case_241();
+case 244:
+ case_244();
break;
-case 242:
-#line 2163 "cs-parser.jay"
+case 245:
+#line 2192 "cs-parser.jay"
{
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
}
break;
-case 243:
-#line 2167 "cs-parser.jay"
+case 246:
+#line 2196 "cs-parser.jay"
{
report.Error (525, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain fields or constants");
}
break;
-case 248:
-#line 2175 "cs-parser.jay"
+case 251:
+#line 2204 "cs-parser.jay"
{
report.Error (567, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain operators");
}
break;
-case 249:
-#line 2179 "cs-parser.jay"
+case 252:
+#line 2208 "cs-parser.jay"
{
report.Error (526, GetLocation (yyVals[0+yyTop]), "Interfaces cannot contain contructors");
}
break;
-case 250:
-#line 2183 "cs-parser.jay"
+case 253:
+#line 2212 "cs-parser.jay"
{
report.Error (524, GetLocation (yyVals[0+yyTop]), "Interfaces cannot declare classes, structs, interfaces, delegates, or enumerations");
}
break;
-case 251:
-#line 2189 "cs-parser.jay"
+case 254:
+#line 2218 "cs-parser.jay"
{
}
break;
-case 252:
- case_252();
- break;
-case 254:
- case_254();
- break;
case 255:
-#line 2233 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.DefaultValue;
- }
+ case_255();
break;
-case 256:
- case_256();
+case 257:
+ case_257();
break;
case 258:
-#line 2279 "cs-parser.jay"
- { yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+ case_258();
break;
case 259:
-#line 2280 "cs-parser.jay"
- { yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
- break;
-case 260:
-#line 2281 "cs-parser.jay"
- { yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+ case_259();
break;
case 261:
-#line 2282 "cs-parser.jay"
- { yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2312 "cs-parser.jay"
+ { yyVal = Operator.OpType.LogicalNot; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 262:
-#line 2283 "cs-parser.jay"
- { yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2313 "cs-parser.jay"
+ { yyVal = Operator.OpType.OnesComplement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 263:
-#line 2284 "cs-parser.jay"
- { yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2314 "cs-parser.jay"
+ { yyVal = Operator.OpType.Increment; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 264:
-#line 2286 "cs-parser.jay"
- { yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2315 "cs-parser.jay"
+ { yyVal = Operator.OpType.Decrement; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 265:
-#line 2287 "cs-parser.jay"
- { yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2316 "cs-parser.jay"
+ { yyVal = Operator.OpType.True; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 266:
-#line 2289 "cs-parser.jay"
- { yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2317 "cs-parser.jay"
+ { yyVal = Operator.OpType.False; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 267:
-#line 2290 "cs-parser.jay"
- { yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2319 "cs-parser.jay"
+ { yyVal = Operator.OpType.Addition; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 268:
-#line 2291 "cs-parser.jay"
- { yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2320 "cs-parser.jay"
+ { yyVal = Operator.OpType.Subtraction; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 269:
-#line 2292 "cs-parser.jay"
- { yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2322 "cs-parser.jay"
+ { yyVal = Operator.OpType.Multiply; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 270:
-#line 2293 "cs-parser.jay"
- { yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2323 "cs-parser.jay"
+ { yyVal = Operator.OpType.Division; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 271:
-#line 2294 "cs-parser.jay"
- { yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2324 "cs-parser.jay"
+ { yyVal = Operator.OpType.Modulus; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 272:
-#line 2295 "cs-parser.jay"
- { yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2325 "cs-parser.jay"
+ { yyVal = Operator.OpType.BitwiseAnd; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 273:
-#line 2296 "cs-parser.jay"
- { yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2326 "cs-parser.jay"
+ { yyVal = Operator.OpType.BitwiseOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 274:
-#line 2297 "cs-parser.jay"
- { yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2327 "cs-parser.jay"
+ { yyVal = Operator.OpType.ExclusiveOr; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 275:
-#line 2298 "cs-parser.jay"
- { yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2328 "cs-parser.jay"
+ { yyVal = Operator.OpType.LeftShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 276:
-#line 2299 "cs-parser.jay"
- { yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2329 "cs-parser.jay"
+ { yyVal = Operator.OpType.RightShift; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 277:
-#line 2300 "cs-parser.jay"
- { yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2330 "cs-parser.jay"
+ { yyVal = Operator.OpType.Equality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 278:
-#line 2301 "cs-parser.jay"
- { yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2331 "cs-parser.jay"
+ { yyVal = Operator.OpType.Inequality; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 279:
-#line 2302 "cs-parser.jay"
- { yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
+#line 2332 "cs-parser.jay"
+ { yyVal = Operator.OpType.GreaterThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 280:
-#line 2309 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.DefaultValue;
- }
+#line 2333 "cs-parser.jay"
+ { yyVal = Operator.OpType.LessThan; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 281:
- case_281();
+#line 2334 "cs-parser.jay"
+ { yyVal = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 282:
-#line 2332 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.DefaultValue;
- }
+#line 2335 "cs-parser.jay"
+ { yyVal = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation (yyVals[0+yyTop]); }
break;
case 283:
case_283();
break;
case 284:
- case_284();
+#line 2349 "cs-parser.jay"
+ {
+ valid_param_mod = ParameterModifierType.DefaultValue;
+ }
break;
case 285:
case_285();
break;
case 286:
- case_286();
+#line 2372 "cs-parser.jay"
+ {
+ valid_param_mod = ParameterModifierType.DefaultValue;
+ }
break;
case 287:
case_287();
@@ -2307,36 +2333,36 @@ case 288:
case 289:
case_289();
break;
+case 290:
+ case_290();
+ break;
case 291:
-#line 2442 "cs-parser.jay"
- { current_block = null; yyVal = null; }
+ case_291();
break;
-case 294:
-#line 2454 "cs-parser.jay"
- {
- ++lexer.parsing_block;
- }
+case 292:
+ case_292();
+ break;
+case 293:
+ case_293();
break;
case 295:
- case_295();
+#line 2496 "cs-parser.jay"
+ { current_block = null; yyVal = null; }
break;
-case 296:
-#line 2464 "cs-parser.jay"
+case 298:
+#line 2508 "cs-parser.jay"
{
++lexer.parsing_block;
}
break;
-case 297:
- case_297();
- break;
-case 298:
- case_298();
- break;
case 299:
case_299();
break;
case 300:
- case_300();
+#line 2518 "cs-parser.jay"
+ {
+ ++lexer.parsing_block;
+ }
break;
case 301:
case_301();
@@ -2359,59 +2385,59 @@ case 306:
case 307:
case_307();
break;
+case 308:
+ case_308();
+ break;
case 309:
-#line 2591 "cs-parser.jay"
- {
- ++lexer.parsing_block;
- }
+ case_309();
break;
case 310:
case_310();
break;
+case 311:
+ case_311();
+ break;
case 313:
-#line 2609 "cs-parser.jay"
+#line 2645 "cs-parser.jay"
{
- current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
+ ++lexer.parsing_block;
}
break;
case 314:
-#line 2613 "cs-parser.jay"
+ case_314();
+ break;
+case 317:
+#line 2663 "cs-parser.jay"
{
current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 315:
- case_315();
- break;
-case 316:
-#line 2626 "cs-parser.jay"
+case 318:
+#line 2667 "cs-parser.jay"
{
- ++lexer.parsing_block;
+ current_event_field.AddDeclarator ((FieldDeclarator) yyVals[0+yyTop]);
}
break;
-case 317:
- case_317();
- break;
-case 318:
- case_318();
- break;
case 319:
-#line 2651 "cs-parser.jay"
+ case_319();
+ break;
+case 320:
+#line 2680 "cs-parser.jay"
{
- yyVal = yyVals[0+yyTop];
+ ++lexer.parsing_block;
}
break;
+case 321:
+ case_321();
+ break;
case 322:
case_322();
break;
case 323:
- case_323();
- break;
-case 324:
- case_324();
- break;
-case 325:
- case_325();
+#line 2705 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 326:
case_326();
@@ -2425,6 +2451,9 @@ case 328:
case 329:
case_329();
break;
+case 330:
+ case_330();
+ break;
case 331:
case_331();
break;
@@ -2434,71 +2463,71 @@ case 332:
case 333:
case_333();
break;
-case 334:
- case_334();
- break;
case 335:
case_335();
break;
case 336:
case_336();
break;
+case 337:
+ case_337();
+ break;
case 338:
case_338();
break;
case 339:
case_339();
break;
-case 342:
-#line 2839 "cs-parser.jay"
- {
- lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
- }
+case 340:
+ case_340();
break;
-case 344:
- case_344();
+case 342:
+ case_342();
break;
-case 345:
- case_345();
+case 343:
+ case_343();
break;
case 346:
- case_346();
- break;
-case 347:
- case_347();
+#line 2893 "cs-parser.jay"
+ {
+ lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
+ }
break;
case 348:
case_348();
break;
+case 349:
+ case_349();
+ break;
case 350:
-#line 2913 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
- }
+ case_350();
break;
case 351:
case_351();
break;
case 352:
-#line 2932 "cs-parser.jay"
+ case_352();
+ break;
+case 354:
+#line 2967 "cs-parser.jay"
{
- lexer.ConstraintsParsing = false;
+ valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out | ParameterModifierType.Params | ParameterModifierType.DefaultValue;
}
break;
-case 353:
- case_353();
- break;
case 355:
case_355();
break;
+case 356:
+#line 2986 "cs-parser.jay"
+ {
+ lexer.ConstraintsParsing = false;
+ }
+ break;
case 357:
case_357();
break;
-case 358:
- case_358();
- break;
-case 360:
- case_360();
+case 359:
+ case_359();
break;
case 361:
case_361();
@@ -2506,8 +2535,8 @@ case 361:
case 362:
case_362();
break;
-case 363:
- case_363();
+case 364:
+ case_364();
break;
case 365:
case_365();
@@ -2518,14 +2547,8 @@ case 366:
case 367:
case_367();
break;
-case 368:
- case_368();
- break;
case 369:
-#line 3062 "cs-parser.jay"
- {
- lexer.parsing_generic_declaration = true;
- }
+ case_369();
break;
case 370:
case_370();
@@ -2533,8 +2556,14 @@ case 370:
case 371:
case_371();
break;
+case 372:
+ case_372();
+ break;
case 373:
- case_373();
+#line 3111 "cs-parser.jay"
+ {
+ lexer.parsing_generic_declaration = true;
+ }
break;
case 374:
case_374();
@@ -2542,15 +2571,15 @@ case 374:
case 375:
case_375();
break;
-case 376:
- case_376();
- break;
case 377:
case_377();
break;
case 378:
case_378();
break;
+case 379:
+ case_379();
+ break;
case 380:
case_380();
break;
@@ -2560,155 +2589,164 @@ case 381:
case 382:
case_382();
break;
-case 383:
- case_383();
- break;
case 384:
case_384();
break;
+case 385:
+ case_385();
+ break;
case 386:
-#line 3187 "cs-parser.jay"
+ case_386();
+ break;
+case 387:
+ case_387();
+ break;
+case 388:
+ case_388();
+ break;
+case 390:
+#line 3236 "cs-parser.jay"
{
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
}
break;
-case 387:
-#line 3194 "cs-parser.jay"
+case 391:
+#line 3243 "cs-parser.jay"
{
lexer.parsing_generic_declaration = true;
}
break;
-case 393:
- case_393();
+case 397:
+ case_397();
break;
-case 395:
-#line 3224 "cs-parser.jay"
+case 399:
+#line 3273 "cs-parser.jay"
{
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
-case 396:
- case_396();
+case 400:
+ case_400();
break;
-case 397:
-#line 3243 "cs-parser.jay"
+case 401:
+#line 3292 "cs-parser.jay"
{
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
-case 399:
- case_399();
+case 403:
+ case_403();
break;
-case 400:
- case_400();
+case 404:
+ case_404();
break;
-case 401:
-#line 3264 "cs-parser.jay"
+case 405:
+#line 3313 "cs-parser.jay"
{
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
-case 402:
-#line 3268 "cs-parser.jay"
+case 406:
+#line 3317 "cs-parser.jay"
{
yyVal = new ComposedCast (new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop])), (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
break;
-case 403:
- case_403();
+case 407:
+ case_407();
break;
-case 404:
- case_404();
+case 408:
+ case_408();
break;
-case 405:
- case_405();
+case 409:
+ case_409();
break;
-case 406:
-#line 3302 "cs-parser.jay"
+case 410:
+#line 3351 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Object, GetLocation (yyVals[0+yyTop])); }
break;
-case 407:
-#line 3303 "cs-parser.jay"
+case 411:
+#line 3352 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.String, GetLocation (yyVals[0+yyTop])); }
break;
-case 408:
-#line 3304 "cs-parser.jay"
+case 412:
+#line 3353 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Bool, GetLocation (yyVals[0+yyTop])); }
break;
-case 409:
-#line 3305 "cs-parser.jay"
+case 413:
+#line 3354 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Decimal, GetLocation (yyVals[0+yyTop])); }
break;
-case 410:
-#line 3306 "cs-parser.jay"
+case 414:
+#line 3355 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Float, GetLocation (yyVals[0+yyTop])); }
break;
-case 411:
-#line 3307 "cs-parser.jay"
+case 415:
+#line 3356 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Double, GetLocation (yyVals[0+yyTop])); }
break;
-case 413:
-#line 3312 "cs-parser.jay"
+case 417:
+#line 3361 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.SByte, GetLocation (yyVals[0+yyTop])); }
break;
-case 414:
-#line 3313 "cs-parser.jay"
+case 418:
+#line 3362 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Byte, GetLocation (yyVals[0+yyTop])); }
break;
-case 415:
-#line 3314 "cs-parser.jay"
+case 419:
+#line 3363 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Short, GetLocation (yyVals[0+yyTop])); }
break;
-case 416:
-#line 3315 "cs-parser.jay"
+case 420:
+#line 3364 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UShort, GetLocation (yyVals[0+yyTop])); }
break;
-case 417:
-#line 3316 "cs-parser.jay"
+case 421:
+#line 3365 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Int, GetLocation (yyVals[0+yyTop])); }
break;
-case 418:
-#line 3317 "cs-parser.jay"
+case 422:
+#line 3366 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.UInt, GetLocation (yyVals[0+yyTop])); }
break;
-case 419:
-#line 3318 "cs-parser.jay"
+case 423:
+#line 3367 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Long, GetLocation (yyVals[0+yyTop])); }
break;
-case 420:
-#line 3319 "cs-parser.jay"
+case 424:
+#line 3368 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.ULong, GetLocation (yyVals[0+yyTop])); }
break;
-case 421:
-#line 3320 "cs-parser.jay"
+case 425:
+#line 3369 "cs-parser.jay"
{ yyVal = new TypeExpression (compiler.BuiltinTypes.Char, GetLocation (yyVals[0+yyTop])); }
break;
-case 443:
- case_443();
+case 448:
+ case_448();
break;
-case 447:
-#line 3363 "cs-parser.jay"
+case 452:
+#line 3413 "cs-parser.jay"
{ yyVal = new NullLiteral (GetLocation (yyVals[0+yyTop])); }
break;
-case 448:
-#line 3367 "cs-parser.jay"
+case 453:
+#line 3417 "cs-parser.jay"
{ yyVal = new BoolLiteral (compiler.BuiltinTypes, true, GetLocation (yyVals[0+yyTop])); }
break;
-case 449:
-#line 3368 "cs-parser.jay"
- { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
- break;
case 454:
- case_454();
+#line 3418 "cs-parser.jay"
+ { yyVal = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation (yyVals[0+yyTop])); }
break;
case 455:
-#line 3401 "cs-parser.jay"
+#line 3425 "cs-parser.jay"
{
- yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
+ yyVal = new InterpolatedString ((StringLiteral) yyVals[-2+yyTop], (List<Expression>) yyVals[-1+yyTop], (StringLiteral) yyVals[0+yyTop]);
}
break;
case 456:
- case_456();
+#line 3429 "cs-parser.jay"
+ {
+ yyVal = new InterpolatedString ((StringLiteral) yyVals[0+yyTop], null, null);
+ }
break;
case 457:
case_457();
@@ -2717,50 +2755,46 @@ case 458:
case_458();
break;
case 459:
- case_459();
+#line 3452 "cs-parser.jay"
+ {
+ yyVal = new InterpolatedStringInsert ((Expression) yyVals[0+yyTop]);
+ }
break;
case 460:
case_460();
break;
case 461:
- case_461();
+#line 3462 "cs-parser.jay"
+ {
+ lexer.parsing_interpolation_format = true;
+ }
break;
case 462:
case_462();
break;
case 463:
- case_463();
- break;
-case 464:
-#line 3465 "cs-parser.jay"
- {
- yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
- }
- break;
-case 465:
- case_465();
- break;
-case 466:
-#line 3473 "cs-parser.jay"
+#line 3474 "cs-parser.jay"
{
- yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
+ lexer.parsing_interpolation_format = true;
}
break;
-case 467:
- case_467();
- break;
-case 468:
- case_468();
+case 464:
+ case_464();
break;
case 469:
case_469();
break;
case 470:
- case_470();
+#line 3516 "cs-parser.jay"
+ {
+ yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
+ }
break;
case 471:
-#line 3503 "cs-parser.jay"
- { yyVal = null; }
+ case_471();
+ break;
+case 472:
+ case_472();
break;
case 473:
case_473();
@@ -2769,14 +2803,10 @@ case 474:
case_474();
break;
case 475:
-#line 3525 "cs-parser.jay"
- { yyVal = null; }
+ case_475();
break;
case 476:
-#line 3529 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
+ case_476();
break;
case 477:
case_477();
@@ -2785,20 +2815,23 @@ case 478:
case_478();
break;
case 479:
- case_479();
+#line 3577 "cs-parser.jay"
+ {
+ yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null,GetLocation (yyVals[0+yyTop]));
+ }
break;
case 480:
case_480();
break;
case 481:
- case_481();
- break;
-case 482:
-#line 3568 "cs-parser.jay"
+#line 3585 "cs-parser.jay"
{
- yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
+ yyVal = new CompletionMemberAccess ((Expression) yyVals[-2+yyTop], null, lexer.Location);
}
break;
+case 482:
+ case_482();
+ break;
case 483:
case_483();
break;
@@ -2809,14 +2842,24 @@ case 485:
case_485();
break;
case 486:
- case_486();
+#line 3615 "cs-parser.jay"
+ { yyVal = null; }
+ break;
+case 488:
+ case_488();
break;
case 489:
-#line 3608 "cs-parser.jay"
+ case_489();
+ break;
+case 490:
+#line 3637 "cs-parser.jay"
{ yyVal = null; }
break;
case 491:
- case_491();
+#line 3641 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 492:
case_492();
@@ -2831,25 +2874,29 @@ case 495:
case_495();
break;
case 496:
-#line 3662 "cs-parser.jay"
+ case_496();
+ break;
+case 497:
+#line 3680 "cs-parser.jay"
{
- yyVal = new Argument ((Expression) yyVals[0+yyTop]);
+ yyVal = new CompletionElementInitializer (null, GetLocation (yyVals[0+yyTop]));
}
break;
+case 498:
+ case_498();
+ break;
+case 499:
+ case_499();
+ break;
case 500:
case_500();
break;
case 501:
case_501();
break;
-case 502:
- case_502();
- break;
-case 503:
- case_503();
- break;
-case 505:
- case_505();
+case 504:
+#line 3720 "cs-parser.jay"
+ { yyVal = null; }
break;
case 506:
case_506();
@@ -2867,40 +2914,31 @@ case 510:
case_510();
break;
case 511:
- case_511();
- break;
-case 512:
- case_512();
- break;
-case 513:
-#line 3766 "cs-parser.jay"
+#line 3774 "cs-parser.jay"
{
- yyVal = new Argument ((Expression) yyVals[0+yyTop]);
+ yyVal = new Argument ((Expression) yyVals[0+yyTop]);
}
break;
case 515:
-#line 3774 "cs-parser.jay"
- {
- yyVal = new This (GetLocation (yyVals[0+yyTop]));
- }
+ case_515();
break;
case 516:
- case_516();
+#line 3792 "cs-parser.jay"
+ {
+ yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
+ }
break;
case 517:
case_517();
break;
case 518:
-#line 3794 "cs-parser.jay"
+#line 3801 "cs-parser.jay"
{
- yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
+ yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
}
break;
case 519:
-#line 3801 "cs-parser.jay"
- {
- yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
- }
+ case_519();
break;
case 520:
case_520();
@@ -2914,9 +2952,6 @@ case 522:
case 523:
case_523();
break;
-case 524:
- case_524();
- break;
case 525:
case_525();
break;
@@ -2924,10 +2959,7 @@ case 526:
case_526();
break;
case 527:
-#line 3868 "cs-parser.jay"
- {
- ++lexer.parsing_type;
- }
+ case_527();
break;
case 528:
case_528();
@@ -2936,35 +2968,43 @@ case 529:
case_529();
break;
case 530:
-#line 3890 "cs-parser.jay"
- {
- yyVal = new EmptyCompletion ();
- }
+ case_530();
+ break;
+case 531:
+ case_531();
+ break;
+case 532:
+ case_532();
break;
case 533:
-#line 3899 "cs-parser.jay"
- { yyVal = null; }
+#line 3928 "cs-parser.jay"
+ {
+ yyVal = new Argument ((Expression) yyVals[0+yyTop]);
+ }
break;
case 535:
- case_535();
+#line 3936 "cs-parser.jay"
+ {
+ yyVal = new This (GetLocation (yyVals[0+yyTop]));
+ }
break;
case 536:
case_536();
break;
case 537:
-#line 3921 "cs-parser.jay"
- {
- yyVal = new EmptyCompletion ();
- }
+ case_537();
break;
case 538:
-#line 3925 "cs-parser.jay"
+#line 3956 "cs-parser.jay"
{
- yyVal = yyVals[-1+yyTop];
+ yyVal = new UnaryMutator (UnaryMutator.Mode.PostIncrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
}
break;
case 539:
- case_539();
+#line 3963 "cs-parser.jay"
+ {
+ yyVal = new UnaryMutator (UnaryMutator.Mode.PostDecrement, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
+ }
break;
case 540:
case_540();
@@ -2975,44 +3015,39 @@ case 541:
case 542:
case_542();
break;
+case 543:
+ case_543();
+ break;
+case 544:
+ case_544();
+ break;
+case 545:
+ case_545();
+ break;
case 546:
case_546();
break;
case 547:
- case_547();
+#line 4030 "cs-parser.jay"
+ {
+ ++lexer.parsing_type;
+ }
break;
case 548:
case_548();
break;
case 549:
-#line 3985 "cs-parser.jay"
- {
- yyVal = 2;
- }
+ case_549();
break;
case 550:
-#line 3989 "cs-parser.jay"
- {
- yyVal = ((int) yyVals[-1+yyTop]) + 1;
- }
- break;
-case 551:
-#line 3996 "cs-parser.jay"
- {
- yyVal = null;
- }
- break;
-case 552:
-#line 4000 "cs-parser.jay"
+#line 4052 "cs-parser.jay"
{
- yyVal = yyVals[0+yyTop];
+ yyVal = new EmptyCompletion ();
}
break;
case 553:
- case_553();
- break;
-case 554:
- case_554();
+#line 4061 "cs-parser.jay"
+ { yyVal = null; }
break;
case 555:
case_555();
@@ -3021,7 +3056,16 @@ case 556:
case_556();
break;
case 557:
- case_557();
+#line 4083 "cs-parser.jay"
+ {
+ yyVal = new EmptyCompletion ();
+ }
+ break;
+case 558:
+#line 4087 "cs-parser.jay"
+ {
+ yyVal = yyVals[-1+yyTop];
+ }
break;
case 559:
case_559();
@@ -3035,15 +3079,6 @@ case 561:
case 562:
case_562();
break;
-case 563:
- case_563();
- break;
-case 564:
- case_564();
- break;
-case 565:
- case_565();
- break;
case 566:
case_566();
break;
@@ -3054,34 +3089,37 @@ case 568:
case_568();
break;
case 569:
-#line 4133 "cs-parser.jay"
+#line 4147 "cs-parser.jay"
{
- start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
+ yyVal = 2;
}
break;
case 570:
- case_570();
+#line 4151 "cs-parser.jay"
+ {
+ yyVal = ((int) yyVals[-1+yyTop]) + 1;
+ }
break;
case 571:
-#line 4146 "cs-parser.jay"
+#line 4158 "cs-parser.jay"
{
- start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
+ yyVal = null;
}
break;
case 572:
- case_572();
- break;
-case 573:
-#line 4163 "cs-parser.jay"
+#line 4162 "cs-parser.jay"
{
- yyVal = ParametersCompiled.Undefined;
+ yyVal = yyVals[0+yyTop];
}
break;
+case 573:
+ case_573();
+ break;
+case 574:
+ case_574();
+ break;
case 575:
-#line 4171 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
- }
+ case_575();
break;
case 576:
case_576();
@@ -3090,16 +3128,10 @@ case 577:
case_577();
break;
case 579:
-#line 4197 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_579();
break;
case 580:
-#line 4201 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_580();
break;
case 581:
case_581();
@@ -3119,47 +3151,41 @@ case 585:
case 586:
case_586();
break;
+case 587:
+ case_587();
+ break;
case 588:
-#line 4265 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_588();
break;
case 589:
-#line 4269 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+#line 4295 "cs-parser.jay"
+ {
+ start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], false, GetLocation (yyVals[-1+yyTop]));
}
break;
case 590:
-#line 4273 "cs-parser.jay"
- {
- yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_590();
break;
case 591:
-#line 4277 "cs-parser.jay"
+#line 4308 "cs-parser.jay"
{
- yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ start_anonymous (false, (ParametersCompiled) yyVals[0+yyTop], true, GetLocation (yyVals[-2+yyTop]));
}
break;
case 592:
-#line 4281 "cs-parser.jay"
- {
- yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_592();
break;
case 593:
-#line 4285 "cs-parser.jay"
+#line 4325 "cs-parser.jay"
{
- yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ yyVal = ParametersCompiled.Undefined;
}
break;
-case 594:
- case_594();
- break;
case 595:
- case_595();
+#line 4333 "cs-parser.jay"
+ {
+ valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
+ }
break;
case 596:
case_596();
@@ -3167,11 +3193,17 @@ case 596:
case 597:
case_597();
break;
-case 598:
- case_598();
- break;
case 599:
- case_599();
+#line 4359 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.LogicalNot, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
+ break;
+case 600:
+#line 4363 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.OnesComplement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 601:
case_601();
@@ -3192,25 +3224,40 @@ case 606:
case_606();
break;
case 608:
- case_608();
+#line 4427 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 609:
- case_609();
+#line 4431 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 610:
- case_610();
+#line 4435 "cs-parser.jay"
+ {
+ yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 611:
- case_611();
+#line 4439 "cs-parser.jay"
+ {
+ yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 612:
-#line 4393 "cs-parser.jay"
+#line 4443 "cs-parser.jay"
{
- yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ yyVal = new Indirection ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
break;
case 613:
- case_613();
+#line 4447 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.AddressOf, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 614:
case_614();
@@ -3224,20 +3271,17 @@ case 616:
case 617:
case_617();
break;
+case 618:
+ case_618();
+ break;
case 619:
case_619();
break;
case 621:
-#line 4445 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_621();
break;
case 622:
-#line 4449 "cs-parser.jay"
- {
- yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
+ case_622();
break;
case 623:
case_623();
@@ -3245,6 +3289,12 @@ case 623:
case 624:
case_624();
break;
+case 625:
+ case_625();
+ break;
+case 626:
+ case_626();
+ break;
case 628:
case_628();
break;
@@ -3257,6 +3307,12 @@ case 630:
case 631:
case_631();
break;
+case 632:
+#line 4555 "cs-parser.jay"
+ {
+ yyVal = new As ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
+ break;
case 633:
case_633();
break;
@@ -3275,56 +3331,74 @@ case 637:
case 638:
case_638();
break;
-case 639:
- case_639();
- break;
-case 640:
- case_640();
+case 641:
+#line 4611 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.UnaryPlus, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 642:
- case_642();
- break;
-case 643:
- case_643();
- break;
-case 644:
- case_644();
+#line 4615 "cs-parser.jay"
+ {
+ yyVal = new Unary (Unary.Operator.UnaryNegation, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 645:
case_645();
break;
-case 647:
- case_647();
+case 646:
+#line 4626 "cs-parser.jay"
+ {
+ yyVal = new WildcardPattern (GetLocation (yyVals[0+yyTop]));
+ }
break;
-case 648:
- case_648();
+case 649:
+#line 4635 "cs-parser.jay"
+ {
+ yyVal = new RecursivePattern ((ATypeNameExpression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
+ }
break;
case 650:
- case_650();
+#line 4642 "cs-parser.jay"
+ {
+ yyVal = new PropertyPattern ((ATypeNameExpression) yyVals[-3+yyTop], (List<PropertyPatternMember>) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
+ }
break;
case 651:
case_651();
break;
+case 652:
+ case_652();
+ break;
case 653:
case_653();
break;
-case 654:
- case_654();
+case 655:
+ case_655();
break;
case 656:
- case_656();
+#line 4684 "cs-parser.jay"
+ {
+ yyVal = new Arguments (0);
+ }
break;
-case 657:
- case_657();
+case 658:
+ case_658();
break;
case 659:
case_659();
break;
case 660:
- case_660();
+#line 4710 "cs-parser.jay"
+ {
+ yyVal = new Argument ((Expression) yyVals[0+yyTop]);
+ }
+ break;
+case 661:
+ case_661();
break;
-case 662:
- case_662();
+case 663:
+ case_663();
break;
case 664:
case_664();
@@ -3335,9 +3409,6 @@ case 665:
case 666:
case_666();
break;
-case 667:
- case_667();
- break;
case 668:
case_668();
break;
@@ -3362,9 +3433,6 @@ case 674:
case 675:
case_675();
break;
-case 676:
- case_676();
- break;
case 677:
case_677();
break;
@@ -3377,63 +3445,41 @@ case 679:
case 680:
case_680();
break;
-case 681:
- case_681();
- break;
case 682:
case_682();
break;
case 683:
case_683();
break;
-case 684:
- case_684();
- break;
case 685:
-#line 4821 "cs-parser.jay"
- { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
+ case_685();
break;
case 686:
case_686();
break;
-case 687:
-#line 4832 "cs-parser.jay"
- {
- start_block (Location.Null);
- }
- break;
case 688:
case_688();
break;
-case 690:
- case_690();
+case 689:
+ case_689();
+ break;
+case 691:
+ case_691();
break;
case 692:
case_692();
break;
-case 693:
- case_693();
- break;
case 694:
case_694();
break;
case 695:
case_695();
break;
-case 696:
- case_696();
- break;
case 697:
case_697();
break;
-case 698:
- case_698();
- break;
case 699:
-#line 4899 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
- }
+ case_699();
break;
case 700:
case_700();
@@ -3442,10 +3488,7 @@ case 701:
case_701();
break;
case 702:
-#line 4913 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
- }
+ case_702();
break;
case 703:
case_703();
@@ -3453,11 +3496,23 @@ case 703:
case 704:
case_704();
break;
+case 705:
+ case_705();
+ break;
+case 706:
+ case_706();
+ break;
+case 707:
+ case_707();
+ break;
+case 708:
+ case_708();
+ break;
+case 709:
+ case_709();
+ break;
case 710:
-#line 4938 "cs-parser.jay"
- {
- yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
- }
+ case_710();
break;
case 711:
case_711();
@@ -3468,58 +3523,42 @@ case 712:
case 713:
case_713();
break;
+case 714:
+ case_714();
+ break;
case 715:
-#line 4967 "cs-parser.jay"
- {
- yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
- }
+ case_715();
break;
case 716:
-#line 4974 "cs-parser.jay"
- {
- yyVal = null;
- }
+ case_716();
+ break;
+case 717:
+ case_717();
break;
case 718:
case_718();
break;
case 719:
-#line 4995 "cs-parser.jay"
- {
- yyVal = null;
- }
+ case_719();
break;
case 720:
-#line 4999 "cs-parser.jay"
- {
- yyVal = null;
- }
+#line 5055 "cs-parser.jay"
+ { yyVal = ParametersCompiled.EmptyReadOnlyParameters; }
break;
case 721:
-#line 5003 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
+ case_721();
break;
case 722:
-#line 5007 "cs-parser.jay"
+#line 5066 "cs-parser.jay"
{
- yyVal = yyVals[-1+yyTop];
+ start_block (Location.Null);
}
break;
case 723:
case_723();
break;
-case 724:
- case_724();
- break;
case 725:
-#line 5032 "cs-parser.jay"
- {
- }
- break;
-case 726:
- case_726();
+ case_725();
break;
case 727:
case_727();
@@ -3531,20 +3570,21 @@ case 729:
case_729();
break;
case 730:
-#line 5084 "cs-parser.jay"
- { yyVal = null; }
+ case_730();
break;
case 731:
-#line 5086 "cs-parser.jay"
- { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
+ case_731();
break;
case 732:
case_732();
break;
case 733:
-#line 5099 "cs-parser.jay"
+ case_733();
+ break;
+case 734:
+#line 5133 "cs-parser.jay"
{
- lexer.parsing_modifiers = false;
+ valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
}
break;
case 735:
@@ -3554,7 +3594,10 @@ case 736:
case_736();
break;
case 737:
- case_737();
+#line 5147 "cs-parser.jay"
+ {
+ valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
+ }
break;
case 738:
case_738();
@@ -3562,23 +3605,11 @@ case 738:
case 739:
case_739();
break;
-case 740:
- case_740();
- break;
-case 741:
- case_741();
- break;
-case 742:
- case_742();
- break;
-case 743:
- case_743();
- break;
-case 744:
- case_744();
- break;
case 745:
- case_745();
+#line 5172 "cs-parser.jay"
+ {
+ yyVal = new ArglistAccess (GetLocation (yyVals[0+yyTop]));
+ }
break;
case 746:
case_746();
@@ -3589,26 +3620,44 @@ case 747:
case 748:
case_748();
break;
-case 749:
- case_749();
- break;
case 750:
- case_750();
+#line 5201 "cs-parser.jay"
+ {
+ yyVal = new BooleanExpression ((Expression) yyVals[0+yyTop]);
+ }
+ break;
+case 751:
+#line 5208 "cs-parser.jay"
+ {
+ yyVal = null;
+ }
break;
case 753:
case_753();
break;
case 754:
- case_754();
+#line 5229 "cs-parser.jay"
+ {
+ yyVal = null;
+ }
+ break;
+case 755:
+#line 5233 "cs-parser.jay"
+ {
+ yyVal = null;
+ }
break;
case 756:
-#line 5229 "cs-parser.jay"
+#line 5237 "cs-parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 757:
- case_757();
+#line 5241 "cs-parser.jay"
+ {
+ yyVal = yyVals[-1+yyTop];
+ }
break;
case 758:
case_758();
@@ -3617,7 +3666,9 @@ case 759:
case_759();
break;
case 760:
- case_760();
+#line 5266 "cs-parser.jay"
+ {
+ }
break;
case 761:
case_761();
@@ -3632,29 +3683,22 @@ case 764:
case_764();
break;
case 765:
-#line 5322 "cs-parser.jay"
- {
- yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
- }
+#line 5318 "cs-parser.jay"
+ { yyVal = null; }
break;
case 766:
-#line 5326 "cs-parser.jay"
- {
- yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
- }
+#line 5320 "cs-parser.jay"
+ { yyVal = yyVals[0+yyTop]; StoreModifierLocation (Modifiers.PARTIAL, GetLocation (yyVals[0+yyTop])); }
break;
case 767:
+ case_767();
+ break;
+case 768:
#line 5333 "cs-parser.jay"
{
- yyVal = null;
+ lexer.parsing_modifiers = false;
}
break;
-case 768:
- case_768();
- break;
-case 769:
- case_769();
- break;
case 770:
case_770();
break;
@@ -3662,10 +3706,7 @@ case 771:
case_771();
break;
case 772:
-#line 5378 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
+ case_772();
break;
case 773:
case_773();
@@ -3688,116 +3729,161 @@ case 778:
case 779:
case_779();
break;
+case 780:
+ case_780();
+ break;
+case 781:
+ case_781();
+ break;
+case 782:
+ case_782();
+ break;
+case 783:
+ case_783();
+ break;
case 784:
-#line 5440 "cs-parser.jay"
- {
- current_block.AddStatement ((Statement) yyVals[0+yyTop]);
- }
+ case_784();
break;
case 785:
-#line 5444 "cs-parser.jay"
- {
- current_block.AddStatement ((Statement) yyVals[0+yyTop]);
- }
- break;
-case 787:
- case_787();
+ case_785();
break;
case 788:
case_788();
break;
+case 789:
+ case_789();
+ break;
case 791:
-#line 5478 "cs-parser.jay"
+#line 5463 "cs-parser.jay"
{
- current_block.AddStatement ((Statement) yyVals[0+yyTop]);
+ yyVal = yyVals[0+yyTop];
}
break;
case 792:
-#line 5482 "cs-parser.jay"
- {
- current_block.AddStatement ((Statement) yyVals[0+yyTop]);
- }
+ case_792();
break;
-case 821:
- case_821();
+case 793:
+ case_793();
break;
-case 822:
- case_822();
+case 794:
+ case_794();
break;
-case 823:
- case_823();
+case 795:
+ case_795();
break;
-case 824:
- case_824();
+case 796:
+ case_796();
break;
-case 825:
- case_825();
+case 797:
+ case_797();
break;
-case 828:
- case_828();
+case 798:
+ case_798();
break;
-case 829:
- case_829();
+case 799:
+ case_799();
break;
-case 830:
- case_830();
+case 800:
+#line 5556 "cs-parser.jay"
+ {
+ yyVal = new SpecialContraintExpr (SpecialConstraint.Class, GetLocation (yyVals[0+yyTop]));
+ }
break;
-case 834:
- case_834();
+case 801:
+#line 5560 "cs-parser.jay"
+ {
+ yyVal = new SpecialContraintExpr (SpecialConstraint.Struct, GetLocation (yyVals[0+yyTop]));
+ }
break;
-case 835:
-#line 5633 "cs-parser.jay"
+case 802:
+#line 5567 "cs-parser.jay"
{
- yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
+ yyVal = null;
}
break;
-case 837:
-#line 5641 "cs-parser.jay"
+case 803:
+ case_803();
+ break;
+case 804:
+ case_804();
+ break;
+case 805:
+ case_805();
+ break;
+case 806:
+ case_806();
+ break;
+case 807:
+#line 5612 "cs-parser.jay"
{
- yyVal = Error_AwaitAsIdentifier (yyVals[0+yyTop]);
+ yyVal = yyVals[0+yyTop];
}
break;
-case 838:
- case_838();
+case 808:
+ case_808();
break;
-case 839:
- case_839();
+case 809:
+ case_809();
break;
-case 840:
- case_840();
+case 810:
+ case_810();
break;
-case 841:
- case_841();
+case 811:
+ case_811();
break;
-case 843:
- case_843();
+case 812:
+ case_812();
break;
-case 845:
- case_845();
+case 813:
+ case_813();
break;
-case 846:
- case_846();
+case 814:
+ case_814();
break;
-case 850:
- case_850();
+case 819:
+#line 5674 "cs-parser.jay"
+ {
+ current_block.AddStatement ((Statement) yyVals[0+yyTop]);
+ }
break;
-case 853:
- case_853();
+case 820:
+#line 5678 "cs-parser.jay"
+ {
+ current_block.AddStatement ((Statement) yyVals[0+yyTop]);
+ }
break;
-case 854:
- case_854();
+case 822:
+ case_822();
break;
-case 855:
-#line 5755 "cs-parser.jay"
+case 823:
+ case_823();
+ break;
+case 826:
+#line 5712 "cs-parser.jay"
{
- report.Error (145, lexer.Location, "A const field requires a value to be provided");
+ current_block.AddStatement ((Statement) yyVals[0+yyTop]);
+ }
+ break;
+case 827:
+#line 5716 "cs-parser.jay"
+ {
+ current_block.AddStatement ((Statement) yyVals[0+yyTop]);
}
break;
case 856:
case_856();
break;
-case 861:
- case_861();
+case 857:
+ case_857();
+ break;
+case 858:
+ case_858();
+ break;
+case 859:
+ case_859();
+ break;
+case 860:
+ case_860();
break;
case 863:
case_863();
@@ -3808,29 +3894,26 @@ case 864:
case 865:
case_865();
break;
-case 866:
-#line 5805 "cs-parser.jay"
- { yyVal = yyVals[-1+yyTop]; }
- break;
-case 867:
- case_867();
- break;
-case 868:
-#line 5815 "cs-parser.jay"
- { yyVal = yyVals[-1+yyTop]; }
- break;
case 869:
-#line 5816 "cs-parser.jay"
- { yyVal = yyVals[-1+yyTop]; }
+ case_869();
break;
case 870:
- case_870();
- break;
-case 871:
- case_871();
+#line 5857 "cs-parser.jay"
+ {
+ yyVal = ComposedTypeSpecifier.CreatePointer (GetLocation (yyVals[0+yyTop]));
+ }
break;
case 872:
- case_872();
+#line 5865 "cs-parser.jay"
+ {
+ yyVal = Error_AwaitAsIdentifier (yyVals[0+yyTop]);
+ }
+ break;
+case 873:
+ case_873();
+ break;
+case 874:
+ case_874();
break;
case 875:
case_875();
@@ -3838,60 +3921,36 @@ case 875:
case 876:
case_876();
break;
-case 877:
- case_877();
- break;
case 878:
-#line 5888 "cs-parser.jay"
- {
- start_block (GetLocation (yyVals[0+yyTop]));
- }
- break;
-case 879:
- case_879();
+ case_878();
break;
case 880:
case_880();
break;
case 881:
-#line 5908 "cs-parser.jay"
- {
- report.Warning (1522, 1, current_block.StartLocation, "Empty switch block");
- }
+ case_881();
break;
case 885:
-#line 5918 "cs-parser.jay"
- {
- Error_SyntaxError (yyToken);
- }
- break;
-case 887:
- case_887();
+ case_885();
break;
case 888:
-#line 5935 "cs-parser.jay"
- {
- current_block.AddStatement ((Statement) yyVals[0+yyTop]);
- }
+ case_888();
break;
case 889:
case_889();
break;
case 890:
- case_890();
- break;
-case 891:
-#line 5952 "cs-parser.jay"
+#line 5979 "cs-parser.jay"
{
- yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
+ report.Error (145, lexer.Location, "A const field requires a value to be provided");
}
break;
+case 891:
+ case_891();
+ break;
case 896:
case_896();
break;
-case 897:
- case_897();
- break;
case 898:
case_898();
break;
@@ -3902,22 +3961,19 @@ case 900:
case_900();
break;
case 901:
- case_901();
+#line 6029 "cs-parser.jay"
+ { yyVal = yyVals[-1+yyTop]; }
break;
case 902:
-#line 6013 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
+ case_902();
break;
case 903:
- case_903();
+#line 6039 "cs-parser.jay"
+ { yyVal = yyVals[-1+yyTop]; }
break;
case 904:
-#line 6028 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
+#line 6040 "cs-parser.jay"
+ { yyVal = yyVals[-1+yyTop]; }
break;
case 905:
case_905();
@@ -3926,43 +3982,49 @@ case 906:
case_906();
break;
case 907:
-#line 6049 "cs-parser.jay"
- {
- yyVal = yyVals[0+yyTop];
- }
- break;
-case 908:
- case_908();
- break;
-case 909:
- case_909();
+ case_907();
break;
case 910:
case_910();
break;
case 911:
-#line 6083 "cs-parser.jay"
- { yyVal = new EmptyStatement (lexer.Location); }
+ case_911();
+ break;
+case 912:
+ case_912();
break;
case 913:
- case_913();
+#line 6112 "cs-parser.jay"
+ {
+ start_block (GetLocation (yyVals[0+yyTop]));
+ }
break;
case 914:
case_914();
break;
+case 915:
+ case_915();
+ break;
case 916:
-#line 6107 "cs-parser.jay"
- { yyVal = null; }
+#line 6132 "cs-parser.jay"
+ {
+ report.Warning (1522, 1, current_block.StartLocation, "Empty switch block");
+ }
break;
-case 918:
-#line 6112 "cs-parser.jay"
- { yyVal = new EmptyStatement (lexer.Location); }
+case 920:
+#line 6142 "cs-parser.jay"
+ {
+ Error_SyntaxError (yyToken);
+ }
break;
case 922:
case_922();
break;
case 923:
- case_923();
+#line 6159 "cs-parser.jay"
+ {
+ current_block.AddStatement ((Statement) yyVals[0+yyTop]);
+ }
break;
case 924:
case_924();
@@ -3971,13 +4033,22 @@ case 925:
case_925();
break;
case 926:
- case_926();
+#line 6188 "cs-parser.jay"
+ {
+ yyVal = new SwitchLabel (null, GetLocation (yyVals[0+yyTop]));
+ }
break;
-case 927:
- case_927();
+case 931:
+ case_931();
break;
-case 928:
- case_928();
+case 932:
+ case_932();
+ break;
+case 933:
+ case_933();
+ break;
+case 934:
+ case_934();
break;
case 935:
case_935();
@@ -3986,13 +4057,19 @@ case 936:
case_936();
break;
case 937:
- case_937();
+#line 6249 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 938:
case_938();
break;
case 939:
- case_939();
+#line 6264 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 940:
case_940();
@@ -4001,7 +4078,10 @@ case 941:
case_941();
break;
case 942:
- case_942();
+#line 6285 "cs-parser.jay"
+ {
+ yyVal = yyVals[0+yyTop];
+ }
break;
case 943:
case_943();
@@ -4013,10 +4093,8 @@ case 945:
case_945();
break;
case 946:
- case_946();
- break;
-case 947:
- case_947();
+#line 6319 "cs-parser.jay"
+ { yyVal = new EmptyStatement (lexer.Location); }
break;
case 948:
case_948();
@@ -4024,27 +4102,23 @@ case 948:
case 949:
case_949();
break;
-case 952:
-#line 6358 "cs-parser.jay"
- {
- yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
- }
+case 951:
+#line 6343 "cs-parser.jay"
+ { yyVal = null; }
break;
case 953:
- case_953();
- break;
-case 954:
- case_954();
- break;
-case 955:
- case_955();
- break;
-case 956:
- case_956();
+#line 6348 "cs-parser.jay"
+ { yyVal = new EmptyStatement (lexer.Location); }
break;
case 957:
case_957();
break;
+case 958:
+ case_958();
+ break;
+case 959:
+ case_959();
+ break;
case 960:
case_960();
break;
@@ -4057,32 +4131,8 @@ case 962:
case 963:
case_963();
break;
-case 964:
- case_964();
- break;
-case 966:
- case_966();
- break;
-case 967:
-#line 6483 "cs-parser.jay"
- {
- yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
- break;
-case 968:
-#line 6490 "cs-parser.jay"
- {
- yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
- }
- break;
-case 969:
- case_969();
- break;
case 970:
-#line 6500 "cs-parser.jay"
- {
- yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
- }
+ case_970();
break;
case 971:
case_971();
@@ -4114,26 +4164,23 @@ case 979:
case 980:
case_980();
break;
+case 981:
+ case_981();
+ break;
case 982:
case_982();
break;
case 983:
-#line 6605 "cs-parser.jay"
- {
- Error_MissingInitializer (lexer.Location);
- }
+ case_983();
break;
case 984:
case_984();
break;
-case 985:
- case_985();
- break;
-case 986:
- case_986();
- break;
case 987:
- case_987();
+#line 6594 "cs-parser.jay"
+ {
+ yyVal = new TryCatch ((Block) yyVals[-1+yyTop], (List<Catch>) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]), false);
+ }
break;
case 988:
case_988();
@@ -4150,20 +4197,8 @@ case 991:
case 992:
case_992();
break;
-case 993:
-#line 6710 "cs-parser.jay"
- {
- current_block = new Linq.QueryBlock (current_block, lexer.Location);
- }
- break;
-case 994:
- case_994();
- break;
case 995:
-#line 6725 "cs-parser.jay"
- {
- current_block = new Linq.QueryBlock (current_block, lexer.Location);
- }
+ case_995();
break;
case 996:
case_996();
@@ -4174,62 +4209,89 @@ case 997:
case 998:
case_998();
break;
+case 999:
+#line 6685 "cs-parser.jay"
+ {
+ yyVal = yyVals[-1+yyTop];
+ }
+ break;
case 1000:
case_1000();
break;
case 1001:
- case_1001();
+#line 6697 "cs-parser.jay"
+ {
+ lexer.parsing_catch_when = false;
+ }
break;
case 1002:
-#line 6789 "cs-parser.jay"
+#line 6701 "cs-parser.jay"
{
- current_block = new Linq.QueryBlock (current_block, lexer.Location);
+ lexer.parsing_catch_when = false;
}
break;
case 1003:
case_1003();
break;
case 1004:
- case_1004();
+#line 6716 "cs-parser.jay"
+ {
+ yyVal = new Checked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 1005:
- case_1005();
+#line 6723 "cs-parser.jay"
+ {
+ yyVal = new Unchecked ((Block) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ }
break;
case 1006:
case_1006();
break;
case 1007:
-#line 6828 "cs-parser.jay"
+#line 6733 "cs-parser.jay"
{
- yyVal = new object[] { yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]) };
+ yyVal = new Unsafe ((Block) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
}
break;
case 1008:
case_1008();
break;
+case 1009:
+ case_1009();
+ break;
case 1010:
case_1010();
break;
+case 1011:
+ case_1011();
+ break;
+case 1012:
+ case_1012();
+ break;
+case 1013:
+ case_1013();
+ break;
+case 1014:
+ case_1014();
+ break;
+case 1015:
+ case_1015();
+ break;
case 1016:
-#line 6857 "cs-parser.jay"
- {
- current_block = new Linq.QueryBlock (current_block, lexer.Location);
- }
+ case_1016();
break;
case 1017:
case_1017();
break;
-case 1018:
-#line 6876 "cs-parser.jay"
- {
- current_block = new Linq.QueryBlock (current_block, lexer.Location);
- }
- break;
case 1019:
case_1019();
break;
case 1020:
- case_1020();
+#line 6838 "cs-parser.jay"
+ {
+ Error_MissingInitializer (lexer.Location);
+ }
break;
case 1021:
case_1021();
@@ -4252,44 +4314,53 @@ case 1026:
case 1027:
case_1027();
break;
+case 1028:
+ case_1028();
+ break;
case 1029:
case_1029();
break;
case 1030:
- case_1030();
+#line 6943 "cs-parser.jay"
+ {
+ current_block = new Linq.QueryBlock (current_block, lexer.Location);
+ }
break;
case 1031:
case_1031();
break;
+case 1032:
+#line 6958 "cs-parser.jay"
+ {
+ current_block = new Linq.QueryBlock (current_block, lexer.Location);
+ }
+ break;
case 1033:
case_1033();
break;
case 1034:
case_1034();
break;
-case 1036:
- case_1036();
+case 1035:
+ case_1035();
break;
case 1037:
case_1037();
break;
case 1038:
-#line 7077 "cs-parser.jay"
- {
- yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
- }
+ case_1038();
break;
case 1039:
- case_1039();
+#line 7022 "cs-parser.jay"
+ {
+ current_block = new Linq.QueryBlock (current_block, lexer.Location);
+ }
break;
case 1040:
case_1040();
break;
case 1041:
-#line 7094 "cs-parser.jay"
- {
- yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
- }
+ case_1041();
break;
case 1042:
case_1042();
@@ -4297,29 +4368,44 @@ case 1042:
case 1043:
case_1043();
break;
+case 1044:
+#line 7061 "cs-parser.jay"
+ {
+ yyVal = new object[] { yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]) };
+ }
+ break;
case 1045:
case_1045();
break;
-case 1046:
- case_1046();
+case 1047:
+ case_1047();
break;
-case 1049:
- case_1049();
+case 1053:
+#line 7090 "cs-parser.jay"
+ {
+ current_block = new Linq.QueryBlock (current_block, lexer.Location);
+ }
break;
-case 1050:
- case_1050();
+case 1054:
+ case_1054();
break;
-case 1058:
-#line 7219 "cs-parser.jay"
+case 1055:
+#line 7109 "cs-parser.jay"
{
- module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
+ current_block = new Linq.QueryBlock (current_block, lexer.Location);
}
break;
+case 1056:
+ case_1056();
+ break;
+case 1057:
+ case_1057();
+ break;
+case 1058:
+ case_1058();
+ break;
case 1059:
-#line 7226 "cs-parser.jay"
- {
- module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
- }
+ case_1059();
break;
case 1060:
case_1060();
@@ -4331,19 +4417,10 @@ case 1062:
case_1062();
break;
case 1063:
-#line 7249 "cs-parser.jay"
- {
- yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
- }
+ case_1063();
break;
case 1064:
-#line 7253 "cs-parser.jay"
- {
- valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
- }
- break;
-case 1065:
- case_1065();
+ case_1064();
break;
case 1066:
case_1066();
@@ -4355,37 +4432,130 @@ case 1068:
case_1068();
break;
case 1070:
-#line 7289 "cs-parser.jay"
+ case_1070();
+ break;
+case 1071:
+ case_1071();
+ break;
+case 1073:
+ case_1073();
+ break;
+case 1074:
+ case_1074();
+ break;
+case 1075:
+#line 7310 "cs-parser.jay"
+ {
+ yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
+ }
+ break;
+case 1076:
+ case_1076();
+ break;
+case 1077:
+ case_1077();
+ break;
+case 1078:
+#line 7327 "cs-parser.jay"
+ {
+ yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[0+yyTop]);
+ }
+ break;
+case 1079:
+ case_1079();
+ break;
+case 1080:
+ case_1080();
+ break;
+case 1082:
+ case_1082();
+ break;
+case 1083:
+ case_1083();
+ break;
+case 1086:
+ case_1086();
+ break;
+case 1087:
+ case_1087();
+ break;
+case 1095:
+#line 7452 "cs-parser.jay"
+ {
+ module.DocumentationBuilder.ParsedName = (MemberName) yyVals[0+yyTop];
+ }
+ break;
+case 1096:
+#line 7459 "cs-parser.jay"
+ {
+ module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
+ }
+ break;
+case 1097:
+ case_1097();
+ break;
+case 1098:
+ case_1098();
+ break;
+case 1099:
+ case_1099();
+ break;
+case 1100:
+#line 7482 "cs-parser.jay"
+ {
+ yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], MemberCache.IndexerNameAlias, Location.Null);
+ }
+ break;
+case 1101:
+#line 7486 "cs-parser.jay"
+ {
+ valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
+ }
+ break;
+case 1102:
+ case_1102();
+ break;
+case 1103:
+ case_1103();
+ break;
+case 1104:
+ case_1104();
+ break;
+case 1105:
+ case_1105();
+ break;
+case 1107:
+#line 7522 "cs-parser.jay"
{
yyVal = new MemberName (((MemberName) yyVals[-2+yyTop]), (MemberName) yyVals[0+yyTop]);
}
break;
-case 1072:
-#line 7297 "cs-parser.jay"
+case 1109:
+#line 7530 "cs-parser.jay"
{
valid_param_mod = ParameterModifierType.Ref | ParameterModifierType.Out;
}
break;
-case 1073:
-#line 7301 "cs-parser.jay"
+case 1110:
+#line 7534 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
}
break;
-case 1074:
-#line 7308 "cs-parser.jay"
+case 1111:
+#line 7541 "cs-parser.jay"
{
yyVal = new List<DocumentationParameter> (0);
}
break;
-case 1076:
- case_1076();
+case 1113:
+ case_1113();
break;
-case 1077:
- case_1077();
+case 1114:
+ case_1114();
break;
-case 1078:
- case_1078();
+case 1115:
+ case_1115();
break;
#line default
}
@@ -4423,7 +4593,7 @@ case 1078:
All more than 3 lines long rules are wrapped into a method
*/
void case_6()
-#line 397 "cs-parser.jay"
+#line 400 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
Attributes attrs = (Attributes) yyVals[0+yyTop];
@@ -4435,7 +4605,7 @@ void case_6()
}
void case_8()
-#line 411 "cs-parser.jay"
+#line 414 "cs-parser.jay"
{
if (yyToken == Token.EXTERN_ALIAS)
report.Error (439, lexer.Location, "An extern alias declaration must precede all other elements");
@@ -4444,7 +4614,7 @@ void case_8()
}
void case_13()
-#line 431 "cs-parser.jay"
+#line 434 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
string s = lt.Value;
@@ -4467,23 +4637,32 @@ void case_13()
}
void case_17()
-#line 464 "cs-parser.jay"
+#line 467 "cs-parser.jay"
{
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
void case_18()
-#line 472 "cs-parser.jay"
+#line 475 "cs-parser.jay"
{
- var un = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
- current_namespace.AddUsing (un);
-
- lbag.AddLocation (un, GetLocation (yyVals[0+yyTop]));
+ UsingClause uc;
+ if (yyVals[-2+yyTop] != null) {
+ if (lang_version <= LanguageVersion.V_5)
+ FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "using static");
+
+ uc = new UsingType ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
+ lbag.AddLocation (uc, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
+ } else {
+ uc = new UsingNamespace ((ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
+ lbag.AddLocation (uc, GetLocation (yyVals[0+yyTop]));
+ }
+
+ current_namespace.AddUsing (uc);
}
void case_19()
-#line 479 "cs-parser.jay"
+#line 491 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
if (lang_version != LanguageVersion.ISO_1 && lt.Value == "global") {
@@ -4491,20 +4670,25 @@ void case_19()
"An alias named `global' will not be used when resolving `global::'. The global namespace will be used instead");
}
- var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
+ if (yyVals[-4+yyTop] != null) {
+ report.Error (8085, GetLocation (yyVals[-4+yyTop]), "A `using static' directive cannot be used to declare an alias");
+ }
+
+ var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
current_namespace.AddUsing (un);
+
lbag.AddLocation (un, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
void case_20()
-#line 491 "cs-parser.jay"
+#line 508 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_21()
-#line 504 "cs-parser.jay"
+void case_23()
+#line 526 "cs-parser.jay"
{
Attributes attrs = (Attributes) yyVals[-2+yyTop];
var name = (MemberName) yyVals[0+yyTop];
@@ -4533,15 +4717,15 @@ void case_21()
current_container = current_namespace = ns;
}
-void case_22()
-#line 532 "cs-parser.jay"
+void case_24()
+#line 554 "cs-parser.jay"
{
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_23()
-#line 537 "cs-parser.jay"
+void case_25()
+#line 559 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null)
lbag.AddLocation (current_container, GetLocation (yyVals[-9+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
@@ -4551,8 +4735,8 @@ void case_23()
current_container = current_namespace = current_namespace.Parent;
}
-void case_24()
-#line 546 "cs-parser.jay"
+void case_26()
+#line 568 "cs-parser.jay"
{
report.Error (1514, lexer.Location, "Unexpected symbol `{0}', expecting `.' or `{{'", GetSymbolName (yyToken));
@@ -4562,37 +4746,37 @@ void case_24()
current_namespace.AddTypeContainer (ns);
}
-void case_27()
-#line 560 "cs-parser.jay"
+void case_29()
+#line 582 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_28()
-#line 568 "cs-parser.jay"
+void case_30()
+#line 590 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new MemberName (lt.Value, lt.Location);
}
-void case_29()
-#line 573 "cs-parser.jay"
+void case_31()
+#line 595 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new MemberName ((MemberName) yyVals[-2+yyTop], lt.Value, lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_30()
-#line 579 "cs-parser.jay"
+void case_32()
+#line 601 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new MemberName ("<invalid>", lexer.Location);
}
-void case_43()
-#line 617 "cs-parser.jay"
+void case_45()
+#line 639 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
TypeContainer ds = (TypeContainer)yyVals[0+yyTop];
@@ -4612,23 +4796,23 @@ void case_43()
current_namespace.DeclarationFound = true;
}
-void case_45()
-#line 639 "cs-parser.jay"
+void case_47()
+#line 661 "cs-parser.jay"
{
current_namespace.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
report.Error (1518, lexer.Location, "Attributes must be attached to class, delegate, enum, interface or struct");
lexer.putback ('}');
}
-void case_53()
-#line 672 "cs-parser.jay"
+void case_55()
+#line 694 "cs-parser.jay"
{
var sect = (List<Attribute>) yyVals[0+yyTop];
yyVal = new Attributes (sect);
}
-void case_54()
-#line 677 "cs-parser.jay"
+void case_56()
+#line 699 "cs-parser.jay"
{
Attributes attrs = yyVals[-1+yyTop] as Attributes;
var sect = (List<Attribute>) yyVals[0+yyTop];
@@ -4639,22 +4823,22 @@ void case_54()
yyVal = attrs;
}
-void case_55()
-#line 690 "cs-parser.jay"
+void case_57()
+#line 712 "cs-parser.jay"
{
PushLocation (GetLocation (yyVals[0+yyTop]));
lexer.parsing_attribute_section = true;
}
-void case_56()
-#line 695 "cs-parser.jay"
+void case_58()
+#line 717 "cs-parser.jay"
{
lexer.parsing_attribute_section = false;
yyVal = yyVals[0+yyTop];
}
-void case_57()
-#line 703 "cs-parser.jay"
+void case_59()
+#line 725 "cs-parser.jay"
{
current_attr_target = (string) yyVals[-1+yyTop];
if (current_attr_target == "assembly" || current_attr_target == "module") {
@@ -4662,8 +4846,8 @@ void case_57()
}
}
-void case_58()
-#line 710 "cs-parser.jay"
+void case_60()
+#line 732 "cs-parser.jay"
{
/* when attribute target is invalid*/
if (current_attr_target == string.Empty)
@@ -4683,8 +4867,8 @@ void case_58()
lexer.parsing_attribute_section = false;
}
-void case_59()
-#line 729 "cs-parser.jay"
+void case_61()
+#line 751 "cs-parser.jay"
{
yyVal = yyVals[-2+yyTop];
lbag.InsertLocation (yyVal, 0, PopLocation ());
@@ -4695,8 +4879,8 @@ void case_59()
}
}
-void case_60()
-#line 739 "cs-parser.jay"
+void case_62()
+#line 761 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -4708,23 +4892,25 @@ void case_60()
};
}
-void case_61()
-#line 750 "cs-parser.jay"
+void case_63()
+#line 772 "cs-parser.jay"
{
- CheckAttributeTarget (yyToken, GetTokenName (yyToken), GetLocation (yyVals[0+yyTop]));
+ if (CheckAttributeTarget (yyToken, GetTokenName (yyToken), GetLocation (yyVals[0+yyTop])).Length > 0)
+ Error_SyntaxError (yyToken);
+
yyVal = null;
}
-void case_62()
-#line 758 "cs-parser.jay"
+void case_64()
+#line 782 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = CheckAttributeTarget (yyToken, lt.Value, lt.Location);
PushLocation (GetLocation (yyVals[0+yyTop]));
}
-void case_66()
-#line 773 "cs-parser.jay"
+void case_68()
+#line 797 "cs-parser.jay"
{
var attrs = (List<Attribute>) yyVals[-2+yyTop];
if (attrs != null) {
@@ -4735,8 +4921,8 @@ void case_66()
yyVal = attrs;
}
-void case_68()
-#line 790 "cs-parser.jay"
+void case_70()
+#line 814 "cs-parser.jay"
{
--lexer.parsing_block;
@@ -4757,8 +4943,8 @@ void case_68()
}
}
-void case_71()
-#line 818 "cs-parser.jay"
+void case_73()
+#line 842 "cs-parser.jay"
{
savedAttrParenOpenLocation = GetLocation (yyVals[-2+yyTop]);
savedAttrParenCloseLocation = GetLocation (yyVals[0+yyTop]);
@@ -4766,24 +4952,24 @@ void case_71()
HadAttributeParens = true;
}
-void case_73()
-#line 830 "cs-parser.jay"
+void case_75()
+#line 854 "cs-parser.jay"
{
Arguments a = new Arguments (4);
a.Add ((Argument) yyVals[0+yyTop]);
yyVal = new Arguments [] { a, null };
}
-void case_74()
-#line 836 "cs-parser.jay"
+void case_76()
+#line 860 "cs-parser.jay"
{
Arguments a = new Arguments (4);
a.Add ((Argument) yyVals[0+yyTop]);
yyVal = new Arguments [] { null, a };
}
-void case_75()
-#line 842 "cs-parser.jay"
+void case_77()
+#line 866 "cs-parser.jay"
{
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
if (o [1] != null) {
@@ -4799,8 +4985,8 @@ void case_75()
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
}
-void case_76()
-#line 857 "cs-parser.jay"
+void case_78()
+#line 881 "cs-parser.jay"
{
Arguments[] o = (Arguments[]) yyVals[-2+yyTop];
if (o [1] == null) {
@@ -4811,15 +4997,15 @@ void case_76()
attributeArgumentCommas.Add (GetLocation (yyVals[-1+yyTop]));
}
-void case_79()
-#line 875 "cs-parser.jay"
+void case_81()
+#line 899 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_81()
-#line 887 "cs-parser.jay"
+void case_83()
+#line 911 "cs-parser.jay"
{
--lexer.parsing_block;
var lt = (LocatedToken) yyVals[-3+yyTop];
@@ -4827,8 +5013,8 @@ void case_81()
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
}
-void case_82()
-#line 897 "cs-parser.jay"
+void case_84()
+#line 921 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.V_3)
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "named argument");
@@ -4841,22 +5027,22 @@ void case_82()
lbag.AddLocation (yyVal, GetLocation(yyVals[-2+yyTop]));
}
-void case_88()
-#line 929 "cs-parser.jay"
+void case_91()
+#line 958 "cs-parser.jay"
{
lexer.parsing_modifiers = true;
lexer.parsing_block = 0;
}
-void case_89()
-#line 934 "cs-parser.jay"
+void case_92()
+#line 963 "cs-parser.jay"
{
lexer.parsing_modifiers = true;
lexer.parsing_block = 0;
}
-void case_103()
-#line 955 "cs-parser.jay"
+void case_106()
+#line 984 "cs-parser.jay"
{
report.Error (1519, lexer.Location, "Unexpected symbol `{0}' in class, struct, or interface member declaration",
GetSymbolName (yyToken));
@@ -4864,8 +5050,8 @@ void case_103()
lexer.parsing_generic_declaration = false;
}
-void case_104()
-#line 965 "cs-parser.jay"
+void case_107()
+#line 994 "cs-parser.jay"
{
current_local_parameters = current_type.PrimaryConstructorParameters;
if (current_local_parameters == null) {
@@ -4877,8 +5063,8 @@ void case_104()
start_block (GetLocation (yyVals[0+yyTop]));
}
-void case_105()
-#line 976 "cs-parser.jay"
+void case_108()
+#line 1005 "cs-parser.jay"
{
current_local_parameters = null;
var t = current_type as ClassOrStruct;
@@ -4892,8 +5078,8 @@ void case_105()
}
}
-void case_107()
-#line 998 "cs-parser.jay"
+void case_110()
+#line 1027 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
valid_param_mod = ParameterModifierType.PrimaryConstructor;
@@ -4901,8 +5087,8 @@ void case_107()
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
}
-void case_108()
-#line 1007 "cs-parser.jay"
+void case_111()
+#line 1036 "cs-parser.jay"
{
valid_param_mod = 0;
lexer.ConstraintsParsing = false;
@@ -4920,23 +5106,23 @@ void case_108()
lexer.parsing_modifiers = true;
}
-void case_109()
-#line 1024 "cs-parser.jay"
+void case_112()
+#line 1053 "cs-parser.jay"
{
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_110()
-#line 1029 "cs-parser.jay"
+void case_113()
+#line 1058 "cs-parser.jay"
{
--lexer.parsing_declaration;
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_111()
-#line 1035 "cs-parser.jay"
+void case_114()
+#line 1064 "cs-parser.jay"
{
if (yyVals[-1+yyTop] == null) {
lbag.AppendToMember (current_container, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-2+yyTop]));
@@ -4946,8 +5132,8 @@ void case_111()
yyVal = pop_current_class ();
}
-void case_113()
-#line 1053 "cs-parser.jay"
+void case_116()
+#line 1082 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var mod = (Modifiers) yyVals[-3+yyTop];
@@ -4961,8 +5147,8 @@ void case_113()
yyVal = current_field;
}
-void case_114()
-#line 1066 "cs-parser.jay"
+void case_117()
+#line 1095 "cs-parser.jay"
{
if (doc_support) {
current_field.DocComment = Lexer.consume_doc_comment ();
@@ -4974,39 +5160,39 @@ void case_114()
current_field = null;
}
-void case_115()
-#line 1079 "cs-parser.jay"
+void case_118()
+#line 1108 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_type.AddMember (new Const (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
}
-void case_120()
-#line 1104 "cs-parser.jay"
+void case_123()
+#line 1133 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_122()
-#line 1117 "cs-parser.jay"
+void case_125()
+#line 1146 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = new ConstInitializer (current_field, (Expression) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_123()
-#line 1123 "cs-parser.jay"
+void case_126()
+#line 1152 "cs-parser.jay"
{
report.Error (145, lexer.Location, "A const field requires a value to be provided");
yyVal = null;
}
-void case_126()
-#line 1138 "cs-parser.jay"
+void case_129()
+#line 1167 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
@@ -5020,8 +5206,8 @@ void case_126()
yyVal = current_field;
}
-void case_127()
-#line 1153 "cs-parser.jay"
+void case_130()
+#line 1182 "cs-parser.jay"
{
if (doc_support) {
current_field.DocComment = Lexer.consume_doc_comment ();
@@ -5033,8 +5219,8 @@ void case_127()
current_field = null;
}
-void case_128()
-#line 1166 "cs-parser.jay"
+void case_131()
+#line 1195 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "fixed size buffers");
@@ -5046,8 +5232,8 @@ void case_128()
current_type.AddField (current_field);
}
-void case_129()
-#line 1177 "cs-parser.jay"
+void case_132()
+#line 1206 "cs-parser.jay"
{
if (doc_support) {
current_field.DocComment = Lexer.consume_doc_comment ();
@@ -5060,16 +5246,16 @@ void case_129()
current_field = null;
}
-void case_132()
-#line 1200 "cs-parser.jay"
+void case_135()
+#line 1229 "cs-parser.jay"
{
++lexer.parsing_block;
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
start_block (GetLocation (yyVals[0+yyTop]));
}
-void case_133()
-#line 1206 "cs-parser.jay"
+void case_136()
+#line 1235 "cs-parser.jay"
{
--lexer.parsing_block;
current_field.Initializer = (Expression) yyVals[0+yyTop];
@@ -5078,16 +5264,16 @@ void case_133()
current_local_parameters = null;
}
-void case_138()
-#line 1233 "cs-parser.jay"
+void case_141()
+#line 1262 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_140()
-#line 1243 "cs-parser.jay"
+void case_143()
+#line 1272 "cs-parser.jay"
{
--lexer.parsing_block;
var lt = (LocatedToken) yyVals[-3+yyTop];
@@ -5095,39 +5281,39 @@ void case_140()
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_145()
-#line 1269 "cs-parser.jay"
+void case_148()
+#line 1298 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), (ConstInitializer) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_147()
-#line 1282 "cs-parser.jay"
+void case_150()
+#line 1311 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = new ConstInitializer (current_field, (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_148()
-#line 1288 "cs-parser.jay"
+void case_151()
+#line 1317 "cs-parser.jay"
{
report.Error (443, lexer.Location, "Value or constant expected");
yyVal = null;
}
-void case_151()
-#line 1298 "cs-parser.jay"
+void case_154()
+#line 1327 "cs-parser.jay"
{
/* It has to be here for the parent to safely restore artificial block*/
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_152()
-#line 1307 "cs-parser.jay"
+void case_155()
+#line 1336 "cs-parser.jay"
{
if (doc_support)
Lexer.doc_state = XmlCommentState.NotAllowed;
@@ -5135,8 +5321,8 @@ void case_152()
/* Was added earlier in the case of body being eof for full ast*/
}
-void case_153()
-#line 1314 "cs-parser.jay"
+void case_156()
+#line 1343 "cs-parser.jay"
{
Method method = (Method) yyVals[-2+yyTop];
method.Block = (ToplevelBlock) yyVals[0+yyTop];
@@ -5163,8 +5349,8 @@ void case_153()
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_155()
-#line 1350 "cs-parser.jay"
+void case_158()
+#line 1379 "cs-parser.jay"
{
valid_param_mod = 0;
MemberName name = (MemberName) yyVals[-4+yyTop];
@@ -5186,8 +5372,8 @@ void case_155()
lexer.ConstraintsParsing = true;
}
-void case_156()
-#line 1371 "cs-parser.jay"
+void case_159()
+#line 1400 "cs-parser.jay"
{
lexer.ConstraintsParsing = false;
@@ -5199,15 +5385,15 @@ void case_156()
yyVal = yyVals[-1+yyTop];
}
-void case_158()
-#line 1390 "cs-parser.jay"
+void case_161()
+#line 1419 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
valid_param_mod = ParameterModifierType.All;
}
-void case_160()
-#line 1399 "cs-parser.jay"
+void case_163()
+#line 1428 "cs-parser.jay"
{
lexer.ConstraintsParsing = false;
valid_param_mod = 0;
@@ -5236,8 +5422,8 @@ void case_160()
yyVal = method;
}
-void case_161()
-#line 1430 "cs-parser.jay"
+void case_164()
+#line 1459 "cs-parser.jay"
{
MemberName name = (MemberName) yyVals[-3+yyTop];
report.Error (1585, name.Location,
@@ -5256,8 +5442,8 @@ void case_161()
yyVal = method;
}
-void case_162()
-#line 1451 "cs-parser.jay"
+void case_165()
+#line 1480 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_local_parameters = ParametersCompiled.Undefined;
@@ -5274,8 +5460,8 @@ void case_162()
yyVal = method;
}
-void case_167()
-#line 1480 "cs-parser.jay"
+void case_170()
+#line 1509 "cs-parser.jay"
{
if (lang_version < LanguageVersion.V_6) {
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "expression bodied members");
@@ -5285,8 +5471,8 @@ void case_167()
start_block (GetLocation (yyVals[0+yyTop]));
}
-void case_168()
-#line 1489 "cs-parser.jay"
+void case_171()
+#line 1518 "cs-parser.jay"
{
lexer.parsing_block = 0;
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
@@ -5295,16 +5481,16 @@ void case_168()
yyVal = b;
}
-void case_171()
-#line 1505 "cs-parser.jay"
+void case_174()
+#line 1534 "cs-parser.jay"
{
var pars_list = (List<Parameter>) yyVals[0+yyTop];
yyVal = new ParametersCompiled (pars_list.ToArray ());
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_172()
-#line 1511 "cs-parser.jay"
+void case_175()
+#line 1540 "cs-parser.jay"
{
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
pars_list.Add ((Parameter) yyVals[0+yyTop]);
@@ -5314,8 +5500,8 @@ void case_172()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_173()
-#line 1520 "cs-parser.jay"
+void case_176()
+#line 1549 "cs-parser.jay"
{
var pars_list = (List<Parameter>) yyVals[-2+yyTop];
pars_list.Add (new ArglistParameter (GetLocation (yyVals[0+yyTop])));
@@ -5325,8 +5511,8 @@ void case_173()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_174()
-#line 1529 "cs-parser.jay"
+void case_177()
+#line 1558 "cs-parser.jay"
{
if (yyVals[-2+yyTop] != null)
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
@@ -5335,8 +5521,8 @@ void case_174()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_175()
-#line 1537 "cs-parser.jay"
+void case_178()
+#line 1566 "cs-parser.jay"
{
if (yyVals[-2+yyTop] != null)
report.Error (231, ((Parameter) yyVals[-2+yyTop]).Location, "A params parameter must be the last parameter in a formal parameter list");
@@ -5350,8 +5536,8 @@ void case_175()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_176()
-#line 1550 "cs-parser.jay"
+void case_179()
+#line 1579 "cs-parser.jay"
{
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
@@ -5359,8 +5545,8 @@ void case_176()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_177()
-#line 1557 "cs-parser.jay"
+void case_180()
+#line 1586 "cs-parser.jay"
{
report.Error (257, GetLocation (yyVals[-2+yyTop]), "An __arglist parameter must be the last parameter in a formal parameter list");
@@ -5373,15 +5559,15 @@ void case_177()
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_180()
-#line 1577 "cs-parser.jay"
+void case_183()
+#line 1606 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = ParametersCompiled.EmptyReadOnlyParameters;
}
-void case_181()
-#line 1585 "cs-parser.jay"
+void case_184()
+#line 1614 "cs-parser.jay"
{
parameters_bucket.Clear ();
Parameter p = (Parameter) yyVals[0+yyTop];
@@ -5391,8 +5577,8 @@ void case_181()
yyVal = parameters_bucket;
}
-void case_182()
-#line 1594 "cs-parser.jay"
+void case_185()
+#line 1623 "cs-parser.jay"
{
var pars = (List<Parameter>) yyVals[-2+yyTop];
Parameter p = (Parameter) yyVals[0+yyTop];
@@ -5411,16 +5597,16 @@ void case_182()
yyVal = yyVals[-2+yyTop];
}
-void case_183()
-#line 1618 "cs-parser.jay"
+void case_186()
+#line 1647 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], (Attributes) yyVals[-3+yyTop], lt.Location);
lbag.AddLocation (yyVal, parameterModifierLocation);
}
-void case_184()
-#line 1627 "cs-parser.jay"
+void case_187()
+#line 1656 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
report.Error (1552, lt.Location, "Array type specifier, [], must appear before parameter name");
@@ -5428,16 +5614,16 @@ void case_184()
lbag.AddLocation (yyVal, parameterModifierLocation);
}
-void case_185()
-#line 1634 "cs-parser.jay"
+void case_188()
+#line 1663 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
Location l = GetLocation (yyVals[0+yyTop]);
yyVal = new Parameter (null, null, Parameter.Modifier.NONE, (Attributes) yyVals[-1+yyTop], l);
}
-void case_186()
-#line 1643 "cs-parser.jay"
+void case_189()
+#line 1672 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
Location l = GetLocation (yyVals[0+yyTop]);
@@ -5445,8 +5631,8 @@ void case_186()
lbag.AddLocation (yyVal, parameterModifierLocation);
}
-void case_188()
-#line 1658 "cs-parser.jay"
+void case_191()
+#line 1687 "cs-parser.jay"
{
--lexer.parsing_block;
if (lang_version <= LanguageVersion.V_3) {
@@ -5484,8 +5670,8 @@ void case_188()
((Parameter) yyVal).DefaultValue = new DefaultParameterValueExpression ((Expression) yyVals[0+yyTop]);
}
-void case_192()
-#line 1707 "cs-parser.jay"
+void case_195()
+#line 1736 "cs-parser.jay"
{
Parameter.Modifier p2 = (Parameter.Modifier)yyVals[0+yyTop];
Parameter.Modifier mod = (Parameter.Modifier)yyVals[-1+yyTop] | p2;
@@ -5507,8 +5693,8 @@ void case_192()
yyVal = mod;
}
-void case_193()
-#line 1731 "cs-parser.jay"
+void case_196()
+#line 1760 "cs-parser.jay"
{
if ((valid_param_mod & ParameterModifierType.Ref) == 0)
Error_ParameterModifierNotValid ("ref", GetLocation (yyVals[0+yyTop]));
@@ -5516,8 +5702,8 @@ void case_193()
yyVal = Parameter.Modifier.REF;
}
-void case_194()
-#line 1738 "cs-parser.jay"
+void case_197()
+#line 1767 "cs-parser.jay"
{
if ((valid_param_mod & ParameterModifierType.Out) == 0)
Error_ParameterModifierNotValid ("out", GetLocation (yyVals[0+yyTop]));
@@ -5525,8 +5711,8 @@ void case_194()
yyVal = Parameter.Modifier.OUT;
}
-void case_195()
-#line 1745 "cs-parser.jay"
+void case_198()
+#line 1774 "cs-parser.jay"
{
if ((valid_param_mod & ParameterModifierType.This) == 0)
Error_ParameterModifierNotValid ("this", GetLocation (yyVals[0+yyTop]));
@@ -5537,16 +5723,16 @@ void case_195()
yyVal = Parameter.Modifier.This;
}
-void case_196()
-#line 1758 "cs-parser.jay"
+void case_199()
+#line 1787 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Attributes) yyVals[-3+yyTop], lt.Location);
lbag.AddLocation (yyVal, savedLocation);
}
-void case_197()
-#line 1764 "cs-parser.jay"
+void case_200()
+#line 1793 "cs-parser.jay"
{
report.Error (1751, GetLocation (yyVals[-4+yyTop]), "Cannot specify a default value for a parameter array");
@@ -5555,24 +5741,24 @@ void case_197()
lbag.AddLocation (yyVal, savedLocation);
}
-void case_198()
-#line 1772 "cs-parser.jay"
+void case_201()
+#line 1801 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new ParamsParameter ((FullNamedExpression) yyVals[-1+yyTop], null, (Attributes) yyVals[-3+yyTop], Location.Null);
}
-void case_199()
-#line 1781 "cs-parser.jay"
+void case_202()
+#line 1810 "cs-parser.jay"
{
if ((valid_param_mod & ParameterModifierType.Params) == 0)
report.Error (1670, (GetLocation (yyVals[0+yyTop])), "The `params' modifier is not allowed in current context");
savedLocation = GetLocation (yyVals[0+yyTop]);
}
-void case_200()
-#line 1787 "cs-parser.jay"
+void case_203()
+#line 1816 "cs-parser.jay"
{
Parameter.Modifier mod = (Parameter.Modifier)yyVals[0+yyTop];
if ((mod & Parameter.Modifier.This) != 0) {
@@ -5583,23 +5769,23 @@ void case_200()
savedLocation = GetLocation (yyVals[-1+yyTop]);
}
-void case_202()
-#line 1804 "cs-parser.jay"
+void case_205()
+#line 1833 "cs-parser.jay"
{
if ((valid_param_mod & ParameterModifierType.Arglist) == 0)
report.Error (1669, GetLocation (yyVals[0+yyTop]), "__arglist is not valid in this context");
}
-void case_203()
-#line 1815 "cs-parser.jay"
+void case_206()
+#line 1844 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
if (doc_support)
tmpComment = Lexer.consume_doc_comment ();
}
-void case_204()
-#line 1821 "cs-parser.jay"
+void case_207()
+#line 1850 "cs-parser.jay"
{
var type = (FullNamedExpression) yyVals[-3+yyTop];
current_property = new Property (current_type, type, (Modifiers) yyVals[-4+yyTop],
@@ -5614,8 +5800,8 @@ void case_204()
lexer.PropertyParsing = true;
}
-void case_205()
-#line 1835 "cs-parser.jay"
+void case_208()
+#line 1864 "cs-parser.jay"
{
lexer.PropertyParsing = false;
@@ -5623,15 +5809,15 @@ void case_205()
current_property.DocComment = ConsumeStoredComment ();
}
-void case_206()
-#line 1842 "cs-parser.jay"
+void case_209()
+#line 1871 "cs-parser.jay"
{
lbag.AppendToMember (current_property, GetLocation (yyVals[0+yyTop]));
lexer.parsing_modifiers = true;
}
-void case_208()
-#line 1854 "cs-parser.jay"
+void case_211()
+#line 1883 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
if (doc_support)
@@ -5639,8 +5825,8 @@ void case_208()
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
}
-void case_209()
-#line 1861 "cs-parser.jay"
+void case_212()
+#line 1890 "cs-parser.jay"
{
var type = (FullNamedExpression) yyVals[-3+yyTop];
var property = new Property (current_type, type, (Modifiers) yyVals[-4+yyTop],
@@ -5662,16 +5848,16 @@ void case_209()
current_local_parameters = null;
}
-void case_211()
-#line 1886 "cs-parser.jay"
+void case_214()
+#line 1915 "cs-parser.jay"
{
++lexer.parsing_block;
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
start_block (GetLocation (yyVals[0+yyTop]));
}
-void case_212()
-#line 1892 "cs-parser.jay"
+void case_215()
+#line 1921 "cs-parser.jay"
{
--lexer.parsing_block;
((Property)current_property).Initializer = (Expression) yyVals[-1+yyTop];
@@ -5680,8 +5866,8 @@ void case_212()
current_local_parameters = null;
}
-void case_216()
-#line 1913 "cs-parser.jay"
+void case_219()
+#line 1942 "cs-parser.jay"
{
valid_param_mod = 0;
var type = (FullNamedExpression) yyVals[-5+yyTop];
@@ -5708,8 +5894,8 @@ void case_216()
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
}
-void case_217()
-#line 1939 "cs-parser.jay"
+void case_220()
+#line 1968 "cs-parser.jay"
{
lexer.PropertyParsing = false;
current_local_parameters = null;
@@ -5723,15 +5909,15 @@ void case_217()
current_property = null;
}
-void case_219()
-#line 1959 "cs-parser.jay"
+void case_222()
+#line 1988 "cs-parser.jay"
{
current_property.Get = new Indexer.GetIndexerMethod (current_property, Modifiers.COMPILER_GENERATED, current_local_parameters, null, current_property.Location);
current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];
}
-void case_224()
-#line 1971 "cs-parser.jay"
+void case_227()
+#line 2000 "cs-parser.jay"
{
if (yyToken == Token.CLOSE_BRACE) {
report.Error (548, lexer.Location, "`{0}': property or indexer must have at least one accessor", current_property.GetSignatureForError ());
@@ -5743,8 +5929,8 @@ void case_224()
}
}
-void case_225()
-#line 1985 "cs-parser.jay"
+void case_228()
+#line 2014 "cs-parser.jay"
{
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
@@ -5766,8 +5952,8 @@ void case_225()
lexer.PropertyParsing = false;
}
-void case_226()
-#line 2006 "cs-parser.jay"
+void case_229()
+#line 2035 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
current_property.Get.Block = (ToplevelBlock) yyVals[0+yyTop];
@@ -5789,8 +5975,8 @@ void case_226()
Lexer.doc_state = XmlCommentState.NotAllowed;
}
-void case_227()
-#line 2030 "cs-parser.jay"
+void case_230()
+#line 2059 "cs-parser.jay"
{
if (yyVals[-1+yyTop] != ModifierNone && lang_version == LanguageVersion.ISO_1) {
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "access modifiers on properties");
@@ -5817,8 +6003,8 @@ void case_227()
lexer.PropertyParsing = false;
}
-void case_228()
-#line 2056 "cs-parser.jay"
+void case_231()
+#line 2085 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
current_property.Set.Block = (ToplevelBlock) yyVals[0+yyTop];
@@ -5840,30 +6026,30 @@ void case_228()
Lexer.doc_state = XmlCommentState.NotAllowed;
}
-void case_230()
-#line 2081 "cs-parser.jay"
+void case_233()
+#line 2110 "cs-parser.jay"
{
savedLocation = GetLocation (yyVals[0+yyTop]);
yyVal = null;
}
-void case_231()
-#line 2086 "cs-parser.jay"
+void case_234()
+#line 2115 "cs-parser.jay"
{
Error_SyntaxError (1043, yyToken, "Invalid accessor body");
yyVal = null;
}
-void case_233()
-#line 2100 "cs-parser.jay"
+void case_236()
+#line 2129 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
push_current_container (new Interface (current_container, (MemberName) yyVals[0+yyTop], (Modifiers) yyVals[-4+yyTop], (Attributes) yyVals[-5+yyTop]), yyVals[-3+yyTop]);
lbag.AddMember (current_container, GetModifierLocations (), GetLocation (yyVals[-2+yyTop]));
}
-void case_234()
-#line 2107 "cs-parser.jay"
+void case_237()
+#line 2136 "cs-parser.jay"
{
lexer.ConstraintsParsing = false;
@@ -5878,16 +6064,16 @@ void case_234()
lexer.parsing_modifiers = true;
}
-void case_235()
-#line 2121 "cs-parser.jay"
+void case_238()
+#line 2150 "cs-parser.jay"
{
--lexer.parsing_declaration;
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_236()
-#line 2127 "cs-parser.jay"
+void case_239()
+#line 2156 "cs-parser.jay"
{
if (yyVals[0+yyTop] == null) {
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
@@ -5897,22 +6083,22 @@ void case_236()
yyVal = pop_current_class ();
}
-void case_240()
-#line 2148 "cs-parser.jay"
+void case_243()
+#line 2177 "cs-parser.jay"
{
lexer.parsing_modifiers = true;
lexer.parsing_block = 0;
}
-void case_241()
-#line 2153 "cs-parser.jay"
+void case_244()
+#line 2182 "cs-parser.jay"
{
lexer.parsing_modifiers = true;
lexer.parsing_block = 0;
}
-void case_252()
-#line 2191 "cs-parser.jay"
+void case_255()
+#line 2220 "cs-parser.jay"
{
OperatorDeclaration decl = (OperatorDeclaration) yyVals[-2+yyTop];
if (decl != null) {
@@ -5941,15 +6127,23 @@ void case_252()
current_local_parameters = null;
}
-void case_254()
-#line 2223 "cs-parser.jay"
+void case_257()
+#line 2252 "cs-parser.jay"
{
report.Error (590, GetLocation (yyVals[0+yyTop]), "User-defined operators cannot return void");
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
}
-void case_256()
-#line 2235 "cs-parser.jay"
+void case_258()
+#line 2260 "cs-parser.jay"
+{
+ valid_param_mod = ParameterModifierType.DefaultValue;
+ if ((Operator.OpType) yyVals[-1+yyTop] == Operator.OpType.Is)
+ valid_param_mod |= ParameterModifierType.Out;
+ }
+
+void case_259()
+#line 2266 "cs-parser.jay"
{
valid_param_mod = 0;
@@ -5972,6 +6166,8 @@ void case_256()
report.Error (1535, loc, "Overloaded unary operator `{0}' takes one parameter",
Operator.GetName (op));
}
+ } else if (op == Operator.OpType.Is) {
+ /* TODO: Special checks for is operator*/
} else {
if (p_count == 1) {
report.Error (1019, loc, "Overloadable unary operator expected");
@@ -5990,8 +6186,17 @@ void case_256()
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), savedOperatorLocation, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_281()
-#line 2311 "cs-parser.jay"
+void case_283()
+#line 2337 "cs-parser.jay"
+{
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "is user operator");
+ savedOperatorLocation = GetLocation (yyVals[0+yyTop]);
+ yyVal = Operator.OpType.Is;
+ }
+
+void case_285()
+#line 2351 "cs-parser.jay"
{
valid_param_mod = 0;
@@ -6011,8 +6216,8 @@ void case_281()
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_283()
-#line 2334 "cs-parser.jay"
+void case_287()
+#line 2374 "cs-parser.jay"
{
valid_param_mod = 0;
@@ -6032,24 +6237,24 @@ void case_283()
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_284()
-#line 2353 "cs-parser.jay"
+void case_288()
+#line 2393 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
yyVal = new OperatorDeclaration (Operator.OpType.Implicit, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_285()
-#line 2359 "cs-parser.jay"
+void case_289()
+#line 2399 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
yyVal = new OperatorDeclaration (Operator.OpType.Explicit, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_286()
-#line 2369 "cs-parser.jay"
+void case_290()
+#line 2409 "cs-parser.jay"
{
Constructor c = (Constructor) yyVals[-1+yyTop];
c.Block = (ToplevelBlock) yyVals[0+yyTop];
@@ -6062,8 +6267,8 @@ void case_286()
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_287()
-#line 2386 "cs-parser.jay"
+void case_291()
+#line 2426 "cs-parser.jay"
{
if (doc_support) {
tmpComment = Lexer.consume_doc_comment ();
@@ -6073,8 +6278,8 @@ void case_287()
valid_param_mod = ParameterModifierType.All;
}
-void case_288()
-#line 2395 "cs-parser.jay"
+void case_292()
+#line 2435 "cs-parser.jay"
{
valid_param_mod = 0;
current_local_parameters = (ParametersCompiled) yyVals[-1+yyTop];
@@ -6086,11 +6291,25 @@ void case_288()
if (lt.Value != current_container.MemberName.Name) {
report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
} else if ((mods & Modifiers.STATIC) != 0) {
+ if (!current_local_parameters.IsEmpty) {
+ report.Error (132, c.Location, "`{0}': The static constructor must be parameterless",
+ c.GetSignatureForError ());
+ }
+
if ((mods & Modifiers.AccessibilityMask) != 0){
report.Error (515, c.Location,
"`{0}': static constructor cannot have an access modifier",
c.GetSignatureForError ());
}
+ } else {
+ if (current_type.Kind == MemberKind.Struct && current_local_parameters.IsEmpty) {
+ if (lang_version < LanguageVersion.V_6)
+ FeatureIsNotAvailable (GetLocation (yyVals[-4+yyTop]), "struct parameterless instance constructor");
+
+ if ((mods & Modifiers.PUBLIC) == 0) {
+ report.Error (8075, c.Location, "`{0}': Structs parameterless instance constructor must be public", c.GetSignatureForError ());
+ }
+ }
}
current_type.AddConstructor (c);
@@ -6104,8 +6323,8 @@ void case_288()
start_block (lexer.Location);
}
-void case_289()
-#line 2424 "cs-parser.jay"
+void case_293()
+#line 2478 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
var c = (Constructor) yyVals[-1+yyTop];
@@ -6121,39 +6340,39 @@ void case_289()
yyVal = yyVals[-1+yyTop];
}
-void case_295()
-#line 2456 "cs-parser.jay"
+void case_299()
+#line 2510 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = new ConstructorBaseInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_297()
-#line 2466 "cs-parser.jay"
+void case_301()
+#line 2520 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = new ConstructorThisInitializer ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_298()
-#line 2472 "cs-parser.jay"
+void case_302()
+#line 2526 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new ConstructorThisInitializer (null, GetLocation (yyVals[0+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_299()
-#line 2478 "cs-parser.jay"
+void case_303()
+#line 2532 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_300()
-#line 2486 "cs-parser.jay"
+void case_304()
+#line 2540 "cs-parser.jay"
{
if (doc_support) {
tmpComment = Lexer.consume_doc_comment ();
@@ -6163,8 +6382,8 @@ void case_300()
current_local_parameters = ParametersCompiled.EmptyReadOnlyParameters;
}
-void case_301()
-#line 2495 "cs-parser.jay"
+void case_305()
+#line 2549 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
if (lt.Value != current_container.MemberName.Name){
@@ -6186,8 +6405,8 @@ void case_301()
current_local_parameters = null;
}
-void case_302()
-#line 2521 "cs-parser.jay"
+void case_306()
+#line 2575 "cs-parser.jay"
{
current_event_field = new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], (MemberName) yyVals[0+yyTop], (Attributes) yyVals[-4+yyTop]);
current_type.AddMember (current_event_field);
@@ -6200,8 +6419,8 @@ void case_302()
yyVal = current_event_field;
}
-void case_303()
-#line 2535 "cs-parser.jay"
+void case_307()
+#line 2589 "cs-parser.jay"
{
if (doc_support) {
current_event_field.DocComment = Lexer.consume_doc_comment ();
@@ -6215,8 +6434,8 @@ void case_303()
current_event_field = null;
}
-void case_304()
-#line 2551 "cs-parser.jay"
+void case_308()
+#line 2605 "cs-parser.jay"
{
current_event = new EventProperty (current_type, (FullNamedExpression) yyVals[-2+yyTop], (Modifiers) yyVals[-4+yyTop], (MemberName) yyVals[-1+yyTop], (Attributes) yyVals[-5+yyTop]);
current_type.AddMember (current_event);
@@ -6225,8 +6444,8 @@ void case_304()
lexer.EventParsing = true;
}
-void case_305()
-#line 2559 "cs-parser.jay"
+void case_309()
+#line 2613 "cs-parser.jay"
{
if (current_container.Kind == MemberKind.Interface)
report.Error (69, GetLocation (yyVals[-2+yyTop]), "Event in interface cannot have add or remove accessors");
@@ -6234,8 +6453,8 @@ void case_305()
lexer.EventParsing = false;
}
-void case_306()
-#line 2566 "cs-parser.jay"
+void case_310()
+#line 2620 "cs-parser.jay"
{
if (doc_support) {
current_event.DocComment = Lexer.consume_doc_comment ();
@@ -6247,32 +6466,32 @@ void case_306()
current_local_parameters = null;
}
-void case_307()
-#line 2579 "cs-parser.jay"
+void case_311()
+#line 2633 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_type.AddMember (new EventField (current_type, (FullNamedExpression) yyVals[-1+yyTop], (Modifiers) yyVals[-3+yyTop], MemberName.Null, (Attributes) yyVals[-4+yyTop]));
}
-void case_310()
-#line 2593 "cs-parser.jay"
+void case_314()
+#line 2647 "cs-parser.jay"
{
--lexer.parsing_block;
savedEventAssignLocation = GetLocation (yyVals[-2+yyTop]);
current_event_field.Initializer = (Expression) yyVals[0+yyTop];
}
-void case_315()
-#line 2618 "cs-parser.jay"
+void case_319()
+#line 2672 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new FieldDeclarator (new SimpleMemberName (lt.Value, lt.Location), null);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_317()
-#line 2628 "cs-parser.jay"
+void case_321()
+#line 2682 "cs-parser.jay"
{
--lexer.parsing_block;
var lt = (LocatedToken) yyVals[-3+yyTop];
@@ -6280,8 +6499,8 @@ void case_317()
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_318()
-#line 2637 "cs-parser.jay"
+void case_322()
+#line 2691 "cs-parser.jay"
{
if (current_container.Kind == MemberKind.Interface) {
report.Error (68, lexer.Location, "`{0}': event in interface cannot have an initializer",
@@ -6294,29 +6513,29 @@ void case_318()
}
}
-void case_322()
-#line 2658 "cs-parser.jay"
+void case_326()
+#line 2712 "cs-parser.jay"
{
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
current_event.GetSignatureForError ());
}
-void case_323()
-#line 2663 "cs-parser.jay"
+void case_327()
+#line 2717 "cs-parser.jay"
{
report.Error (65, lexer.Location, "`{0}': event property must have both add and remove accessors",
current_event.GetSignatureForError ());
}
-void case_324()
-#line 2668 "cs-parser.jay"
+void case_328()
+#line 2722 "cs-parser.jay"
{
report.Error (1055, GetLocation (yyVals[0+yyTop]), "An add or remove accessor expected");
yyVal = null;
}
-void case_325()
-#line 2676 "cs-parser.jay"
+void case_329()
+#line 2730 "cs-parser.jay"
{
if (yyVals[-1+yyTop] != ModifierNone) {
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
@@ -6329,8 +6548,8 @@ void case_325()
lexer.EventParsing = false;
}
-void case_326()
-#line 2688 "cs-parser.jay"
+void case_330()
+#line 2742 "cs-parser.jay"
{
lexer.EventParsing = true;
@@ -6344,8 +6563,8 @@ void case_326()
current_local_parameters = null;
}
-void case_327()
-#line 2704 "cs-parser.jay"
+void case_331()
+#line 2758 "cs-parser.jay"
{
if (yyVals[-1+yyTop] != ModifierNone) {
report.Error (1609, GetLocation (yyVals[-1+yyTop]), "Modifiers cannot be placed on event accessor declarations");
@@ -6358,8 +6577,8 @@ void case_327()
lexer.EventParsing = false;
}
-void case_328()
-#line 2716 "cs-parser.jay"
+void case_332()
+#line 2770 "cs-parser.jay"
{
lexer.EventParsing = true;
@@ -6373,23 +6592,23 @@ void case_328()
current_local_parameters = null;
}
-void case_329()
-#line 2732 "cs-parser.jay"
+void case_333()
+#line 2786 "cs-parser.jay"
{
report.Error (73, lexer.Location, "An add or remove accessor must have a body");
yyVal = null;
}
-void case_331()
-#line 2741 "cs-parser.jay"
+void case_335()
+#line 2795 "cs-parser.jay"
{
current_type.UnattachedAttributes = (Attributes) yyVals[-1+yyTop];
report.Error (1519, GetLocation (yyVals[-1+yyTop]), "An attribute is missing member declaration");
lexer.putback ('}');
}
-void case_332()
-#line 2752 "cs-parser.jay"
+void case_336()
+#line 2806 "cs-parser.jay"
{
report.Error (1519, lexer.Location, "Unexpected symbol `}' in class, struct, or interface member declaration");
@@ -6403,15 +6622,15 @@ void case_332()
yyVal = current_field;
}
-void case_333()
-#line 2772 "cs-parser.jay"
+void case_337()
+#line 2826 "cs-parser.jay"
{
if (doc_support)
enumTypeComment = Lexer.consume_doc_comment ();
}
-void case_334()
-#line 2777 "cs-parser.jay"
+void case_338()
+#line 2831 "cs-parser.jay"
{
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
@@ -6429,8 +6648,8 @@ void case_334()
}
}
-void case_335()
-#line 2794 "cs-parser.jay"
+void case_339()
+#line 2848 "cs-parser.jay"
{
lexer.parsing_modifiers = true;
@@ -6439,8 +6658,8 @@ void case_335()
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_336()
-#line 2802 "cs-parser.jay"
+void case_340()
+#line 2856 "cs-parser.jay"
{
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
if (yyVals[0+yyTop] != null) {
@@ -6457,29 +6676,29 @@ void case_336()
yyVal = pop_current_class ();
}
-void case_338()
-#line 2822 "cs-parser.jay"
+void case_342()
+#line 2876 "cs-parser.jay"
{
savedLocation = GetLocation (yyVals[-1+yyTop]);
yyVal = yyVals[0+yyTop];
}
-void case_339()
-#line 2827 "cs-parser.jay"
+void case_343()
+#line 2881 "cs-parser.jay"
{
Error_TypeExpected (GetLocation (yyVals[-1+yyTop]));
yyVal = null;
}
-void case_344()
-#line 2845 "cs-parser.jay"
+void case_348()
+#line 2899 "cs-parser.jay"
{
lbag.AppendToMember (current_container, GetLocation (yyVals[-1+yyTop]));
yyVal = yyVals[0+yyTop];
}
-void case_345()
-#line 2853 "cs-parser.jay"
+void case_349()
+#line 2907 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var em = new EnumMember ((Enum) current_type, new MemberName (lt.Value, lt.Location), (Attributes) yyVals[-1+yyTop]);
@@ -6493,8 +6712,8 @@ void case_345()
yyVal = em;
}
-void case_346()
-#line 2866 "cs-parser.jay"
+void case_350()
+#line 2920 "cs-parser.jay"
{
++lexer.parsing_block;
if (doc_support) {
@@ -6503,8 +6722,8 @@ void case_346()
}
}
-void case_347()
-#line 2874 "cs-parser.jay"
+void case_351()
+#line 2928 "cs-parser.jay"
{
--lexer.parsing_block;
@@ -6519,8 +6738,8 @@ void case_347()
yyVal = em;
}
-void case_348()
-#line 2888 "cs-parser.jay"
+void case_352()
+#line 2942 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -6536,8 +6755,8 @@ void case_348()
yyVal = em;
}
-void case_351()
-#line 2915 "cs-parser.jay"
+void case_355()
+#line 2969 "cs-parser.jay"
{
valid_param_mod = 0;
@@ -6553,8 +6772,8 @@ void case_351()
lexer.ConstraintsParsing = true;
}
-void case_353()
-#line 2934 "cs-parser.jay"
+void case_357()
+#line 2988 "cs-parser.jay"
{
if (doc_support) {
current_delegate.DocComment = Lexer.consume_doc_comment ();
@@ -6570,8 +6789,8 @@ void case_353()
current_delegate = null;
}
-void case_355()
-#line 2953 "cs-parser.jay"
+void case_359()
+#line 3007 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "nullable types");
@@ -6579,8 +6798,8 @@ void case_355()
yyVal = ComposedTypeSpecifier.CreateNullable (GetLocation (yyVals[0+yyTop]));
}
-void case_357()
-#line 2964 "cs-parser.jay"
+void case_361()
+#line 3018 "cs-parser.jay"
{
var lt1 = (LocatedToken) yyVals[-2+yyTop];
var lt2 = (LocatedToken) yyVals[-1+yyTop];
@@ -6589,73 +6808,68 @@ void case_357()
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
}
-void case_358()
-#line 2972 "cs-parser.jay"
+void case_362()
+#line 3026 "cs-parser.jay"
{
var lt1 = (LocatedToken) yyVals[-2+yyTop];
var lt2 = (LocatedToken) yyVals[-1+yyTop];
- var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
- lbag.AddLocation (qam.TypeArguments, Lexer.GenericDimensionLocations);
- yyVal = qam;
+
+ yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_360()
-#line 2985 "cs-parser.jay"
+void case_364()
+#line 3038 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_361()
-#line 2991 "cs-parser.jay"
+void case_365()
+#line 3044 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
- var ma = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location);
- lbag.AddLocation (ma.TypeArguments, Lexer.GenericDimensionLocations);
- yyVal = ma;
+ yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_362()
-#line 3002 "cs-parser.jay"
+void case_366()
+#line 3053 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new SimpleName (lt.Value, (TypeArguments)yyVals[0+yyTop], lt.Location);
}
-void case_363()
-#line 3007 "cs-parser.jay"
+void case_367()
+#line 3058 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
- var sn = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
- lbag.AddLocation (sn.TypeArguments, Lexer.GenericDimensionLocations);
- yyVal = sn;
+ yyVal = new SimpleName (lt.Value, (int) yyVals[0+yyTop], lt.Location);
}
-void case_365()
-#line 3021 "cs-parser.jay"
+void case_369()
+#line 3070 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
var list = locationListStack.Pop ();
list.Add (GetLocation (yyVals[-2+yyTop]));
- list.Add (GetLocation (yyVals[-1+yyTop]));
+ list.Add (GetLocation (yyVals[0+yyTop]));
lbag.AddLocation (yyVals[-1+yyTop], list);
yyVal = yyVals[-1+yyTop];;
}
-void case_366()
-#line 3032 "cs-parser.jay"
+void case_370()
+#line 3081 "cs-parser.jay"
{
Error_TypeExpected (lexer.Location);
yyVal = new TypeArguments ();
}
-void case_367()
-#line 3040 "cs-parser.jay"
+void case_371()
+#line 3089 "cs-parser.jay"
{
TypeArguments type_args = new TypeArguments ();
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
@@ -6663,8 +6877,8 @@ void case_367()
locationListStack.Push (new List<Location> ());
}
-void case_368()
-#line 3047 "cs-parser.jay"
+void case_372()
+#line 3096 "cs-parser.jay"
{
TypeArguments type_args = (TypeArguments) yyVals[-2+yyTop];
type_args.Add ((FullNamedExpression) yyVals[0+yyTop]);
@@ -6672,16 +6886,16 @@ void case_368()
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
}
-void case_370()
-#line 3064 "cs-parser.jay"
+void case_374()
+#line 3113 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new MemberName (lt.Value, (TypeParameters)yyVals[0+yyTop], lt.Location);
}
-void case_371()
-#line 3073 "cs-parser.jay"
+void case_375()
+#line 3122 "cs-parser.jay"
{
MemberName mn = (MemberName)yyVals[0+yyTop];
if (mn.TypeParameters != null)
@@ -6689,38 +6903,38 @@ void case_371()
mn.GetSignatureForError ()));
}
-void case_373()
-#line 3084 "cs-parser.jay"
+void case_377()
+#line 3133 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberName (lt.Value, (TypeParameters) yyVals[0+yyTop], (ATypeNameExpression) yyVals[-2+yyTop], lt.Location);
}
-void case_374()
-#line 3093 "cs-parser.jay"
+void case_378()
+#line 3142 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, GetLocation (yyVals[0+yyTop]));
}
-void case_375()
-#line 3098 "cs-parser.jay"
+void case_379()
+#line 3147 "cs-parser.jay"
{
lexer.parsing_generic_declaration = false;
yyVal = new MemberName (TypeDefinition.DefaultIndexerName, null, (ATypeNameExpression) yyVals[-1+yyTop], GetLocation (yyVals[0+yyTop]));
}
-void case_376()
-#line 3106 "cs-parser.jay"
+void case_380()
+#line 3155 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new SimpleName (lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_377()
-#line 3112 "cs-parser.jay"
+void case_381()
+#line 3161 "cs-parser.jay"
{
var lt1 = (LocatedToken) yyVals[-3+yyTop];
var lt2 = (LocatedToken) yyVals[-2+yyTop];
@@ -6729,16 +6943,16 @@ void case_377()
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[0+yyTop]));
}
-void case_378()
-#line 3120 "cs-parser.jay"
+void case_382()
+#line 3169 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new MemberAccess ((ATypeNameExpression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[-1+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_380()
-#line 3130 "cs-parser.jay"
+void case_384()
+#line 3179 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "generics");
@@ -6750,8 +6964,8 @@ void case_380()
lbag.AddLocation (yyVals[-1+yyTop], list);
}
-void case_381()
-#line 3144 "cs-parser.jay"
+void case_385()
+#line 3193 "cs-parser.jay"
{
var tparams = new TypeParameters ();
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
@@ -6759,8 +6973,8 @@ void case_381()
locationListStack.Push (new List<Location> ());
}
-void case_382()
-#line 3151 "cs-parser.jay"
+void case_386()
+#line 3200 "cs-parser.jay"
{
var tparams = (TypeParameters) yyVals[-2+yyTop];
tparams.Add ((TypeParameter)yyVals[0+yyTop]);
@@ -6768,8 +6982,8 @@ void case_382()
locationListStack.Peek ().Add (GetLocation (yyVals[-1+yyTop]));
}
-void case_383()
-#line 3161 "cs-parser.jay"
+void case_387()
+#line 3210 "cs-parser.jay"
{
var lt = (LocatedToken)yyVals[0+yyTop];
var variance = (VarianceDecl) yyVals[-1+yyTop];
@@ -6778,8 +6992,8 @@ void case_383()
lbag.AddLocation (yyVal, savedLocation);
}
-void case_384()
-#line 3169 "cs-parser.jay"
+void case_388()
+#line 3218 "cs-parser.jay"
{
if (GetTokenName (yyToken) == "type")
report.Error (81, GetLocation (yyVals[0+yyTop]), "Type parameter declaration must be an identifier not a type");
@@ -6789,15 +7003,15 @@ void case_384()
yyVal = new TypeParameter (MemberName.Null, null, null);
}
-void case_393()
-#line 3213 "cs-parser.jay"
+void case_397()
+#line 3262 "cs-parser.jay"
{
report.Error (1536, GetLocation (yyVals[0+yyTop]), "Invalid parameter type `void'");
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
}
-void case_396()
-#line 3229 "cs-parser.jay"
+void case_400()
+#line 3278 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
yyVal = new ComposedCast ((ATypeNameExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
@@ -6810,30 +7024,30 @@ void case_396()
}
}
-void case_399()
-#line 3249 "cs-parser.jay"
+void case_403()
+#line 3298 "cs-parser.jay"
{
Expression.Error_VoidInvalidInTheContext (GetLocation (yyVals[0+yyTop]), report);
yyVal = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[0+yyTop]));
}
-void case_400()
-#line 3257 "cs-parser.jay"
+void case_404()
+#line 3306 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null)
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
-void case_403()
-#line 3273 "cs-parser.jay"
+void case_407()
+#line 3322 "cs-parser.jay"
{
var types = new List<FullNamedExpression> (2);
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
yyVal = types;
}
-void case_404()
-#line 3279 "cs-parser.jay"
+void case_408()
+#line 3328 "cs-parser.jay"
{
var types = (List<FullNamedExpression>) yyVals[-2+yyTop];
types.Add ((FullNamedExpression) yyVals[0+yyTop]);
@@ -6841,8 +7055,8 @@ void case_404()
yyVal = types;
}
-void case_405()
-#line 3289 "cs-parser.jay"
+void case_409()
+#line 3338 "cs-parser.jay"
{
if (yyVals[0+yyTop] is ComposedCast) {
report.Error (1521, GetLocation (yyVals[0+yyTop]), "Invalid base type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
@@ -6850,40 +7064,84 @@ void case_405()
yyVal = yyVals[0+yyTop];
}
-void case_443()
-#line 3353 "cs-parser.jay"
+void case_448()
+#line 3403 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new CompletionSimpleName (MemberName.MakeName (lt.Value, null), lt.Location);
}
-void case_454()
-#line 3394 "cs-parser.jay"
+void case_457()
+#line 3434 "cs-parser.jay"
+{
+ var list = new List<Expression> ();
+ list.Add ((InterpolatedStringInsert) yyVals[0+yyTop]);
+ yyVal = list;
+ }
+
+void case_458()
+#line 3440 "cs-parser.jay"
+{
+ var list = (List<Expression>) yyVals[-2+yyTop];
+ list.Add ((StringLiteral) yyVals[-1+yyTop]);
+ list.Add ((InterpolatedStringInsert) yyVals[0+yyTop]);
+ yyVal = list;
+ }
+
+void case_460()
+#line 3454 "cs-parser.jay"
+{
+ yyVal = new InterpolatedStringInsert ((Expression) yyVals[-2+yyTop]) {
+ Alignment = (Expression)yyVals[0+yyTop]
+ };
+ }
+
+void case_462()
+#line 3464 "cs-parser.jay"
+{
+ lexer.parsing_interpolation_format = false;
+
+ yyVal = new InterpolatedStringInsert ((Expression) yyVals[-3+yyTop]) {
+ Format = (string)yyVals[0+yyTop]
+ };
+ }
+
+void case_464()
+#line 3476 "cs-parser.jay"
+{
+ lexer.parsing_interpolation_format = false;
+
+ yyVal = new InterpolatedStringInsert ((Expression) yyVals[-5+yyTop]) {
+ Alignment = (Expression)yyVals[-3+yyTop],
+ Format = (string) yyVals[0+yyTop]
+ };
+ }
+
+void case_469()
+#line 3509 "cs-parser.jay"
{
yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_456()
-#line 3406 "cs-parser.jay"
+void case_471()
+#line 3521 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_457()
-#line 3412 "cs-parser.jay"
+void case_472()
+#line 3527 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
- var ma = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location);
- lbag.AddLocation (ma.TypeArguments, Lexer.GenericDimensionLocations);
- yyVal = ma;
+ yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (int) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_458()
-#line 3420 "cs-parser.jay"
+void case_473()
+#line 3533 "cs-parser.jay"
{
if (lang_version < LanguageVersion.V_6)
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "null propagating operator");
@@ -6893,32 +7151,32 @@ void case_458()
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_459()
-#line 3429 "cs-parser.jay"
+void case_474()
+#line 3542 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_460()
-#line 3435 "cs-parser.jay"
+void case_475()
+#line 3548 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_461()
-#line 3441 "cs-parser.jay"
+void case_476()
+#line 3554 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess (new SimpleName ("await", ((LocatedToken) yyVals[-3+yyTop]).Location), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_462()
-#line 3447 "cs-parser.jay"
+void case_477()
+#line 3560 "cs-parser.jay"
{
var lt1 = (LocatedToken) yyVals[-2+yyTop];
var lt2 = (LocatedToken) yyVals[-1+yyTop];
@@ -6927,40 +7185,39 @@ void case_462()
lbag.AddLocation (yyVal, savedLocation, GetLocation (yyVals[-1+yyTop]));
}
-void case_463()
-#line 3455 "cs-parser.jay"
+void case_478()
+#line 3568 "cs-parser.jay"
{
var lt1 = (LocatedToken) yyVals[-2+yyTop];
var lt2 = (LocatedToken) yyVals[-1+yyTop];
- var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
- lbag.AddLocation (qam.TypeArguments, Lexer.GenericDimensionLocations);
- yyVal = qam;
+
+ yyVal = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) yyVals[0+yyTop], lt1.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_465()
-#line 3466 "cs-parser.jay"
+void case_480()
+#line 3578 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
}
-void case_467()
-#line 3474 "cs-parser.jay"
+void case_482()
+#line 3586 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new CompletionMemberAccess ((Expression) yyVals[-3+yyTop], lt.Value, lt.Location);
}
-void case_468()
-#line 3482 "cs-parser.jay"
+void case_483()
+#line 3594 "cs-parser.jay"
{
yyVal = new Invocation ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_469()
-#line 3487 "cs-parser.jay"
+void case_484()
+#line 3599 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -6968,8 +7225,8 @@ void case_469()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_470()
-#line 3494 "cs-parser.jay"
+void case_485()
+#line 3606 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -6977,8 +7234,8 @@ void case_470()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_473()
-#line 3509 "cs-parser.jay"
+void case_488()
+#line 3621 "cs-parser.jay"
{
if (yyVals[-1+yyTop] == null) {
yyVal = new CollectionOrObjectInitializers (GetLocation (yyVals[-2+yyTop]));
@@ -6988,23 +7245,23 @@ void case_473()
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_474()
-#line 3518 "cs-parser.jay"
+void case_489()
+#line 3630 "cs-parser.jay"
{
yyVal = new CollectionOrObjectInitializers ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_477()
-#line 3534 "cs-parser.jay"
+void case_492()
+#line 3646 "cs-parser.jay"
{
var a = new List<Expression> ();
a.Add ((Expression) yyVals[0+yyTop]);
yyVal = a;
}
-void case_478()
-#line 3540 "cs-parser.jay"
+void case_493()
+#line 3652 "cs-parser.jay"
{
var a = (List<Expression>)yyVals[-2+yyTop];
a.Add ((Expression) yyVals[0+yyTop]);
@@ -7012,31 +7269,31 @@ void case_478()
yyVal = a;
}
-void case_479()
-#line 3546 "cs-parser.jay"
+void case_494()
+#line 3658 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = yyVals[-1+yyTop];
}
-void case_480()
-#line 3554 "cs-parser.jay"
+void case_495()
+#line 3666 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_481()
-#line 3560 "cs-parser.jay"
+void case_496()
+#line 3672 "cs-parser.jay"
{
var lt = (LocatedToken) Error_AwaitAsIdentifier (yyVals[-2+yyTop]);
yyVal = new ElementInitializer (lt.Value, (Expression)yyVals[0+yyTop], lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_483()
-#line 3569 "cs-parser.jay"
+void case_498()
+#line 3681 "cs-parser.jay"
{
CompletionSimpleName csn = yyVals[-1+yyTop] as CompletionSimpleName;
if (csn == null)
@@ -7045,8 +7302,8 @@ void case_483()
yyVal = new CompletionElementInitializer (csn.Prefix, csn.Location);
}
-void case_484()
-#line 3577 "cs-parser.jay"
+void case_499()
+#line 3689 "cs-parser.jay"
{
if (yyVals[-1+yyTop] == null)
yyVal = new CollectionElementInitializer (GetLocation (yyVals[-2+yyTop]));
@@ -7057,8 +7314,8 @@ void case_484()
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_485()
-#line 3587 "cs-parser.jay"
+void case_500()
+#line 3699 "cs-parser.jay"
{
if (lang_version < LanguageVersion.V_6)
FeatureIsNotAvailable (GetLocation (yyVals[-4+yyTop]), "dictionary initializer");
@@ -7067,24 +7324,24 @@ void case_485()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_486()
-#line 3595 "cs-parser.jay"
+void case_501()
+#line 3707 "cs-parser.jay"
{
report.Error (1920, GetLocation (yyVals[-1+yyTop]), "An element initializer cannot be empty");
yyVal = new CollectionElementInitializer (GetLocation (yyVals[-1+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_491()
-#line 3614 "cs-parser.jay"
+void case_506()
+#line 3726 "cs-parser.jay"
{
Arguments list = new Arguments (4);
list.Add ((Argument) yyVals[0+yyTop]);
yyVal = list;
}
-void case_492()
-#line 3620 "cs-parser.jay"
+void case_507()
+#line 3732 "cs-parser.jay"
{
Arguments list = (Arguments) yyVals[-2+yyTop];
if (list [list.Count - 1] is NamedArgument)
@@ -7095,8 +7352,8 @@ void case_492()
yyVal = list;
}
-void case_493()
-#line 3630 "cs-parser.jay"
+void case_508()
+#line 3742 "cs-parser.jay"
{
Arguments list = (Arguments) yyVals[-2+yyTop];
NamedArgument a = (NamedArgument) yyVals[0+yyTop];
@@ -7112,8 +7369,8 @@ void case_493()
yyVal = list;
}
-void case_494()
-#line 3645 "cs-parser.jay"
+void case_509()
+#line 3757 "cs-parser.jay"
{
if (lexer.putback_char == -1)
lexer.putback (')'); /* TODO: Wrong but what can I do*/
@@ -7121,50 +7378,83 @@ void case_494()
yyVal = yyVals[-2+yyTop];
}
-void case_495()
-#line 3652 "cs-parser.jay"
+void case_510()
+#line 3764 "cs-parser.jay"
{
report.Error (839, GetLocation (yyVals[-1+yyTop]), "An argument is missing");
yyVal = null;
}
-void case_500()
-#line 3673 "cs-parser.jay"
+void case_515()
+#line 3785 "cs-parser.jay"
{
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Ref);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_501()
-#line 3678 "cs-parser.jay"
+void case_517()
+#line 3794 "cs-parser.jay"
{
yyVal = new Argument ((Expression) yyVals[0+yyTop], Argument.AType.Out);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_502()
-#line 3683 "cs-parser.jay"
+void case_519()
+#line 3803 "cs-parser.jay"
{
yyVal = new Argument (new Arglist ((Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop])));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_503()
-#line 3688 "cs-parser.jay"
+void case_520()
+#line 3808 "cs-parser.jay"
{
yyVal = new Argument (new Arglist (GetLocation (yyVals[-2+yyTop])));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_505()
-#line 3700 "cs-parser.jay"
+void case_521()
+#line 3816 "cs-parser.jay"
+{
+ yyVal = new ParenthesizedExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
+ lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
+ }
+
+void case_522()
+#line 3833 "cs-parser.jay"
+{
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "declaration expression");
+
+ var lt = (LocatedToken) yyVals[0+yyTop];
+ var lv = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (lv);
+ yyVal = new DeclarationExpression ((FullNamedExpression) yyVals[-1+yyTop], lv);
+ }
+
+void case_523()
+#line 3843 "cs-parser.jay"
+{
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "declaration expression");
+
+ var lt = (LocatedToken) yyVals[-2+yyTop];
+ var lv = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (lv);
+ yyVal = new DeclarationExpression ((FullNamedExpression) yyVals[-3+yyTop], lv) {
+ Initializer = (Expression) yyVals[0+yyTop]
+ };
+ }
+
+void case_525()
+#line 3862 "cs-parser.jay"
{
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_506()
-#line 3705 "cs-parser.jay"
+void case_526()
+#line 3867 "cs-parser.jay"
{
if (lang_version < LanguageVersion.V_6)
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "null propagating operator");
@@ -7176,30 +7466,30 @@ void case_506()
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_507()
-#line 3716 "cs-parser.jay"
+void case_527()
+#line 3878 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new ElementAccess ((Expression) yyVals[-3+yyTop], (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_508()
-#line 3721 "cs-parser.jay"
+void case_528()
+#line 3883 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new ElementAccess ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
}
-void case_509()
-#line 3729 "cs-parser.jay"
+void case_529()
+#line 3891 "cs-parser.jay"
{
var list = new List<Expression> (4);
list.Add ((Expression) yyVals[0+yyTop]);
yyVal = list;
}
-void case_510()
-#line 3735 "cs-parser.jay"
+void case_530()
+#line 3897 "cs-parser.jay"
{
var list = (List<Expression>) yyVals[-2+yyTop];
list.Add ((Expression) yyVals[0+yyTop]);
@@ -7207,16 +7497,16 @@ void case_510()
yyVal = list;
}
-void case_511()
-#line 3745 "cs-parser.jay"
+void case_531()
+#line 3907 "cs-parser.jay"
{
Arguments args = new Arguments (4);
args.Add ((Argument) yyVals[0+yyTop]);
yyVal = args;
}
-void case_512()
-#line 3751 "cs-parser.jay"
+void case_532()
+#line 3913 "cs-parser.jay"
{
Arguments args = (Arguments) yyVals[-2+yyTop];
if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument))
@@ -7227,22 +7517,22 @@ void case_512()
yyVal = args;
}
-void case_516()
-#line 3779 "cs-parser.jay"
+void case_536()
+#line 3941 "cs-parser.jay"
{
yyVal = new ElementAccess (new BaseThis (GetLocation (yyVals[-3+yyTop])), (Arguments) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_517()
-#line 3784 "cs-parser.jay"
+void case_537()
+#line 3946 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new ElementAccess (null, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_520()
-#line 3806 "cs-parser.jay"
+void case_540()
+#line 3968 "cs-parser.jay"
{
if (yyVals[0+yyTop] != null) {
if (lang_version <= LanguageVersion.ISO_2)
@@ -7256,8 +7546,8 @@ void case_520()
lbag.AddLocation (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_521()
-#line 3819 "cs-parser.jay"
+void case_541()
+#line 3981 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "collection initializers");
@@ -7265,8 +7555,8 @@ void case_521()
yyVal = new NewInitialize ((FullNamedExpression) yyVals[-1+yyTop], null, (CollectionOrObjectInitializers) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_522()
-#line 3831 "cs-parser.jay"
+void case_542()
+#line 3993 "cs-parser.jay"
{
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], (List<Expression>) yyVals[-3+yyTop],
new ComposedTypeSpecifier (((List<Expression>) yyVals[-3+yyTop]).Count, GetLocation (yyVals[-4+yyTop])) {
@@ -7275,8 +7565,8 @@ void case_522()
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_523()
-#line 3839 "cs-parser.jay"
+void case_543()
+#line 4001 "cs-parser.jay"
{
if (yyVals[0+yyTop] == null)
report.Error (1586, GetLocation (yyVals[-3+yyTop]), "Array creation must have array size or array initializer");
@@ -7284,8 +7574,8 @@ void case_523()
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-2+yyTop], (ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
}
-void case_524()
-#line 3846 "cs-parser.jay"
+void case_544()
+#line 4008 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "implicitly typed arrays");
@@ -7293,30 +7583,30 @@ void case_524()
yyVal = new ImplicitlyTypedArrayCreation ((ComposedTypeSpecifier) yyVals[-1+yyTop], (ArrayInitializer) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_525()
-#line 3853 "cs-parser.jay"
+void case_545()
+#line 4015 "cs-parser.jay"
{
report.Error (178, GetLocation (yyVals[-1+yyTop]), "Invalid rank specifier, expecting `,' or `]'");
yyVal = new ArrayCreation ((FullNamedExpression) yyVals[-5+yyTop], null, GetLocation (yyVals[-6+yyTop]));
}
-void case_526()
-#line 3858 "cs-parser.jay"
+void case_546()
+#line 4020 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
/* It can be any of new expression, create the most common one*/
yyVal = new New ((FullNamedExpression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
}
-void case_528()
-#line 3870 "cs-parser.jay"
+void case_548()
+#line 4032 "cs-parser.jay"
{
--lexer.parsing_type;
yyVal = yyVals[0+yyTop];
}
-void case_529()
-#line 3878 "cs-parser.jay"
+void case_549()
+#line 4040 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "anonymous types");
@@ -7327,16 +7617,16 @@ void case_529()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_535()
-#line 3905 "cs-parser.jay"
+void case_555()
+#line 4067 "cs-parser.jay"
{
var a = new List<AnonymousTypeParameter> (4);
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
yyVal = a;
}
-void case_536()
-#line 3911 "cs-parser.jay"
+void case_556()
+#line 4073 "cs-parser.jay"
{
var a = (List<AnonymousTypeParameter>) yyVals[-2+yyTop];
a.Add ((AnonymousTypeParameter) yyVals[0+yyTop]);
@@ -7345,60 +7635,60 @@ void case_536()
yyVal = a;
}
-void case_539()
-#line 3930 "cs-parser.jay"
+void case_559()
+#line 4092 "cs-parser.jay"
{
var lt = (LocatedToken)yyVals[-2+yyTop];
yyVal = new AnonymousTypeParameter ((Expression)yyVals[0+yyTop], lt.Value, lt.Location);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_540()
-#line 3936 "cs-parser.jay"
+void case_560()
+#line 4098 "cs-parser.jay"
{
var lt = (LocatedToken)yyVals[0+yyTop];
yyVal = new AnonymousTypeParameter (new SimpleName (lt.Value, lt.Location),
lt.Value, lt.Location);
}
-void case_541()
-#line 3942 "cs-parser.jay"
+void case_561()
+#line 4104 "cs-parser.jay"
{
MemberAccess ma = (MemberAccess) yyVals[0+yyTop];
yyVal = new AnonymousTypeParameter (ma, ma.Name, ma.Location);
}
-void case_542()
-#line 3947 "cs-parser.jay"
+void case_562()
+#line 4109 "cs-parser.jay"
{
report.Error (746, lexer.Location,
"Invalid anonymous type member declarator. Anonymous type members must be a member assignment, simple name or member access expression");
yyVal = null;
}
-void case_546()
-#line 3962 "cs-parser.jay"
+void case_566()
+#line 4124 "cs-parser.jay"
{
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
yyVal = yyVals[-1+yyTop];
}
-void case_547()
-#line 3970 "cs-parser.jay"
+void case_567()
+#line 4132 "cs-parser.jay"
{
yyVal = ComposedTypeSpecifier.CreateArrayDimension (1, GetLocation (yyVals[-1+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_548()
-#line 3975 "cs-parser.jay"
+void case_568()
+#line 4137 "cs-parser.jay"
{
yyVal = ComposedTypeSpecifier.CreateArrayDimension ((int)yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_553()
-#line 4005 "cs-parser.jay"
+void case_573()
+#line 4167 "cs-parser.jay"
{
var ai = new ArrayInitializer (0, GetLocation (yyVals[-1+yyTop]));
ai.VariableDeclaration = current_variable;
@@ -7406,8 +7696,8 @@ void case_553()
yyVal = ai;
}
-void case_554()
-#line 4012 "cs-parser.jay"
+void case_574()
+#line 4174 "cs-parser.jay"
{
var ai = new ArrayInitializer ((List<Expression>) yyVals[-2+yyTop], GetLocation (yyVals[-3+yyTop]));
ai.VariableDeclaration = current_variable;
@@ -7419,16 +7709,16 @@ void case_554()
yyVal = ai;
}
-void case_555()
-#line 4026 "cs-parser.jay"
+void case_575()
+#line 4188 "cs-parser.jay"
{
var list = new List<Expression> (4);
list.Add ((Expression) yyVals[0+yyTop]);
yyVal = list;
}
-void case_556()
-#line 4032 "cs-parser.jay"
+void case_576()
+#line 4194 "cs-parser.jay"
{
var list = (List<Expression>) yyVals[-2+yyTop];
list.Add ((Expression) yyVals[0+yyTop]);
@@ -7436,22 +7726,22 @@ void case_556()
yyVal = list;
}
-void case_557()
-#line 4042 "cs-parser.jay"
+void case_577()
+#line 4204 "cs-parser.jay"
{
yyVal = new TypeOf ((FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_559()
-#line 4051 "cs-parser.jay"
+void case_579()
+#line 4213 "cs-parser.jay"
{
Error_TypeExpected (lexer.Location);
yyVal = null;
}
-void case_560()
-#line 4059 "cs-parser.jay"
+void case_580()
+#line 4221 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[0+yyTop]), "generics");
@@ -7459,8 +7749,8 @@ void case_560()
yyVal = yyVals[0+yyTop];
}
-void case_561()
-#line 4069 "cs-parser.jay"
+void case_581()
+#line 4231 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
if (lang_version == LanguageVersion.ISO_1)
@@ -7469,15 +7759,15 @@ void case_561()
yyVal = lt;
}
-void case_562()
-#line 4080 "cs-parser.jay"
+void case_582()
+#line 4242 "cs-parser.jay"
{
yyVal = new SizeOf ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_563()
-#line 4085 "cs-parser.jay"
+void case_583()
+#line 4247 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7485,45 +7775,45 @@ void case_563()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_564()
-#line 4095 "cs-parser.jay"
+void case_584()
+#line 4257 "cs-parser.jay"
{
yyVal = new CheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_565()
-#line 4100 "cs-parser.jay"
+void case_585()
+#line 4262 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new CheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_566()
-#line 4109 "cs-parser.jay"
+void case_586()
+#line 4271 "cs-parser.jay"
{
yyVal = new UnCheckedExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_567()
-#line 4114 "cs-parser.jay"
+void case_587()
+#line 4276 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new UnCheckedExpr (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_568()
-#line 4123 "cs-parser.jay"
+void case_588()
+#line 4285 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new MemberAccess (new Indirection ((Expression) yyVals[-3+yyTop], GetLocation (yyVals[-2+yyTop])), lt.Value, (TypeArguments) yyVals[0+yyTop], lt.Location);
}
-void case_570()
-#line 4135 "cs-parser.jay"
+void case_590()
+#line 4297 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
if ((ParametersCompiled) yyVals[-2+yyTop] != ParametersCompiled.Undefined) {
@@ -7533,8 +7823,8 @@ void case_570()
}
}
-void case_572()
-#line 4148 "cs-parser.jay"
+void case_592()
+#line 4310 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
@@ -7545,8 +7835,8 @@ void case_572()
}
}
-void case_576()
-#line 4173 "cs-parser.jay"
+void case_596()
+#line 4335 "cs-parser.jay"
{
valid_param_mod = 0;
yyVal = yyVals[-1+yyTop];
@@ -7554,8 +7844,8 @@ void case_576()
PushLocation (GetLocation (yyVals[-3+yyTop]));
}
-void case_577()
-#line 4183 "cs-parser.jay"
+void case_597()
+#line 4345 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "default value expression");
@@ -7564,15 +7854,15 @@ void case_577()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_581()
-#line 4203 "cs-parser.jay"
+void case_601()
+#line 4365 "cs-parser.jay"
{
yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_582()
-#line 4208 "cs-parser.jay"
+void case_602()
+#line 4370 "cs-parser.jay"
{
if (!async_block) {
if (current_anonymous_method is LambdaExpression) {
@@ -7595,24 +7885,24 @@ void case_582()
yyVal = new Await ((Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
-void case_583()
-#line 4230 "cs-parser.jay"
+void case_603()
+#line 4392 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Unary (Unary.Operator.LogicalNot, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_584()
-#line 4236 "cs-parser.jay"
+void case_604()
+#line 4398 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Unary (Unary.Operator.OnesComplement, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_585()
-#line 4242 "cs-parser.jay"
+void case_605()
+#line 4404 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7620,85 +7910,85 @@ void case_585()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_586()
-#line 4249 "cs-parser.jay"
+void case_606()
+#line 4411 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Await (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_594()
-#line 4287 "cs-parser.jay"
+void case_614()
+#line 4449 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Unary (Unary.Operator.UnaryPlus, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_595()
-#line 4293 "cs-parser.jay"
+void case_615()
+#line 4455 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Unary (Unary.Operator.UnaryNegation, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_596()
-#line 4299 "cs-parser.jay"
+void case_616()
+#line 4461 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new UnaryMutator (UnaryMutator.Mode.PreIncrement, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_597()
-#line 4305 "cs-parser.jay"
+void case_617()
+#line 4467 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new UnaryMutator (UnaryMutator.Mode.PreDecrement, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_598()
-#line 4311 "cs-parser.jay"
+void case_618()
+#line 4473 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Indirection (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_599()
-#line 4317 "cs-parser.jay"
+void case_619()
+#line 4479 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Unary (Unary.Operator.AddressOf, null, GetLocation (yyVals[-1+yyTop]));
}
-void case_601()
-#line 4327 "cs-parser.jay"
+void case_621()
+#line 4489 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_602()
-#line 4332 "cs-parser.jay"
+void case_622()
+#line 4494 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_603()
-#line 4337 "cs-parser.jay"
+void case_623()
+#line 4499 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_604()
-#line 4342 "cs-parser.jay"
+void case_624()
+#line 4504 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7706,8 +7996,8 @@ void case_604()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_605()
-#line 4349 "cs-parser.jay"
+void case_625()
+#line 4511 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7715,8 +8005,8 @@ void case_605()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_606()
-#line 4356 "cs-parser.jay"
+void case_626()
+#line 4518 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7724,22 +8014,22 @@ void case_606()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_608()
-#line 4367 "cs-parser.jay"
+void case_628()
+#line 4529 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_609()
-#line 4372 "cs-parser.jay"
+void case_629()
+#line 4534 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_610()
-#line 4377 "cs-parser.jay"
+void case_630()
+#line 4539 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7747,8 +8037,8 @@ void case_610()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_611()
-#line 4384 "cs-parser.jay"
+void case_631()
+#line 4546 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7756,8 +8046,8 @@ void case_611()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_613()
-#line 4395 "cs-parser.jay"
+void case_633()
+#line 4557 "cs-parser.jay"
{
var is_expr = new Is ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
if (yyVals[0+yyTop] != null) {
@@ -7772,92 +8062,128 @@ void case_613()
yyVal = is_expr;
}
-void case_614()
-#line 4409 "cs-parser.jay"
+void case_634()
+#line 4571 "cs-parser.jay"
+{
+ var is_expr = new Is ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "pattern matching");
+
+ yyVal = is_expr;
+ }
+
+void case_635()
+#line 4579 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new As ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
}
-void case_615()
-#line 4415 "cs-parser.jay"
+void case_636()
+#line 4585 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Is ((Expression) yyVals[-2+yyTop], null, GetLocation (yyVals[-1+yyTop]));
}
-void case_616()
-#line 4421 "cs-parser.jay"
+void case_637()
+#line 4591 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new Is (new SimpleName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
-void case_617()
-#line 4426 "cs-parser.jay"
+void case_638()
+#line 4596 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new As (new SimpleName (lt.Value, lt.Location), (Expression) yyVals[0+yyTop], GetLocation (yyVals[-1+yyTop]));
}
-void case_619()
-#line 4435 "cs-parser.jay"
+void case_645()
+#line 4619 "cs-parser.jay"
{
- if (yyVals[-1+yyTop] is VarExpr)
- yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
+ yyVal = new Cast ((FullNamedExpression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
+ lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
+ }
- yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
+void case_651()
+#line 4647 "cs-parser.jay"
+{
+ var list = new List<PropertyPatternMember> ();
+ list.Add ((PropertyPatternMember) yyVals[0+yyTop]);
+ yyVal = list;
}
-void case_623()
-#line 4454 "cs-parser.jay"
+void case_652()
+#line 4653 "cs-parser.jay"
{
- Expression expr = (Expression) yyVals[-1+yyTop];
- if (yyVals[0+yyTop] == null) {
- SimpleName sn = expr as SimpleName;
- if (sn != null && sn.Name == "var")
- yyVal = new VarExpr (sn.Location);
- else
- yyVal = yyVals[-1+yyTop];
- } else if (expr is ATypeNameExpression) {
- yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
- } else {
- Error_ExpectingTypeName (expr);
- yyVal = null;
- }
+ var list = (List<PropertyPatternMember>) yyVals[-2+yyTop];
+ list.Add ((PropertyPatternMember) yyVals[0+yyTop]);
+ yyVal = list;
}
-void case_624()
-#line 4470 "cs-parser.jay"
+void case_653()
+#line 4662 "cs-parser.jay"
{
- ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
+ var lt = (LocatedToken) yyVals[-2+yyTop];
+ yyVal = new PropertyPatternMember (lt.Value, (Expression) yyVals[0+yyTop], lt.Location);
+ }
- if (expr != null) {
- yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
- } else {
- Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
- yyVal = expr;
+void case_655()
+#line 4671 "cs-parser.jay"
+{
+ if (yyVals[0+yyTop] != null) {
+ var lt = (LocatedToken) yyVals[0+yyTop];
+ var variable = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (variable);
}
}
-void case_628()
-#line 4487 "cs-parser.jay"
+void case_658()
+#line 4690 "cs-parser.jay"
+{
+ Arguments args = new Arguments (4);
+ args.Add ((Argument) yyVals[0+yyTop]);
+ yyVal = args;
+ }
+
+void case_659()
+#line 4696 "cs-parser.jay"
+{
+ Arguments args = (Arguments) yyVals[-2+yyTop];
+ if (args [args.Count - 1] is NamedArgument && !(yyVals[0+yyTop] is NamedArgument))
+ Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
+
+ args.Add ((Argument) yyVals[0+yyTop]);
+ yyVal = args;
+ }
+
+void case_661()
+#line 4712 "cs-parser.jay"
+{
+ var lt = (LocatedToken) yyVals[-2+yyTop];
+ yyVal = new NamedArgument (lt.Value, lt.Location, (Expression) yyVals[0+yyTop]);
+ }
+
+void case_663()
+#line 4721 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_629()
-#line 4492 "cs-parser.jay"
+void case_664()
+#line 4726 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_630()
-#line 4497 "cs-parser.jay"
+void case_665()
+#line 4731 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7865,8 +8191,8 @@ void case_630()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_631()
-#line 4504 "cs-parser.jay"
+void case_666()
+#line 4738 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7874,36 +8200,36 @@ void case_631()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_633()
-#line 4515 "cs-parser.jay"
+void case_668()
+#line 4749 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.LessThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_634()
-#line 4520 "cs-parser.jay"
+void case_669()
+#line 4754 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.GreaterThan, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_635()
-#line 4525 "cs-parser.jay"
+void case_670()
+#line 4759 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.LessThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_636()
-#line 4530 "cs-parser.jay"
+void case_671()
+#line 4764 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.GreaterThanOrEqual, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_637()
-#line 4535 "cs-parser.jay"
+void case_672()
+#line 4769 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7911,8 +8237,8 @@ void case_637()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_638()
-#line 4542 "cs-parser.jay"
+void case_673()
+#line 4776 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7920,8 +8246,8 @@ void case_638()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_639()
-#line 4549 "cs-parser.jay"
+void case_674()
+#line 4783 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7929,8 +8255,8 @@ void case_639()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_640()
-#line 4556 "cs-parser.jay"
+void case_675()
+#line 4790 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7938,22 +8264,22 @@ void case_640()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_642()
-#line 4567 "cs-parser.jay"
+void case_677()
+#line 4801 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Equality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_643()
-#line 4572 "cs-parser.jay"
+void case_678()
+#line 4806 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.Inequality, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_644()
-#line 4577 "cs-parser.jay"
+void case_679()
+#line 4811 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7961,8 +8287,8 @@ void case_644()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_645()
-#line 4584 "cs-parser.jay"
+void case_680()
+#line 4818 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7970,15 +8296,15 @@ void case_645()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_647()
-#line 4595 "cs-parser.jay"
+void case_682()
+#line 4829 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_648()
-#line 4600 "cs-parser.jay"
+void case_683()
+#line 4834 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -7986,15 +8312,15 @@ void case_648()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_650()
-#line 4611 "cs-parser.jay"
+void case_685()
+#line 4845 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_651()
-#line 4616 "cs-parser.jay"
+void case_686()
+#line 4850 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8002,15 +8328,15 @@ void case_651()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_653()
-#line 4627 "cs-parser.jay"
+void case_688()
+#line 4861 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_654()
-#line 4632 "cs-parser.jay"
+void case_689()
+#line 4866 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8018,15 +8344,15 @@ void case_654()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_656()
-#line 4643 "cs-parser.jay"
+void case_691()
+#line 4877 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.LogicalAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_657()
-#line 4648 "cs-parser.jay"
+void case_692()
+#line 4882 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8034,15 +8360,15 @@ void case_657()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_659()
-#line 4659 "cs-parser.jay"
+void case_694()
+#line 4893 "cs-parser.jay"
{
yyVal = new Binary (Binary.Operator.LogicalOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_660()
-#line 4664 "cs-parser.jay"
+void case_695()
+#line 4898 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8050,8 +8376,8 @@ void case_660()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_662()
-#line 4675 "cs-parser.jay"
+void case_697()
+#line 4909 "cs-parser.jay"
{
if (lang_version < LanguageVersion.ISO_2)
FeatureIsNotAvailable (GetLocation (yyVals[-1+yyTop]), "null coalescing operator");
@@ -8060,23 +8386,23 @@ void case_662()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_664()
-#line 4687 "cs-parser.jay"
+void case_699()
+#line 4921 "cs-parser.jay"
{
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-4+yyTop]), (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_665()
-#line 4692 "cs-parser.jay"
+void case_700()
+#line 4926 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Conditional (new BooleanExpression ((Expression) yyVals[-3+yyTop]), (Expression) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]));
}
-void case_666()
-#line 4698 "cs-parser.jay"
+void case_701()
+#line 4932 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8084,8 +8410,8 @@ void case_666()
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_667()
-#line 4705 "cs-parser.jay"
+void case_702()
+#line 4939 "cs-parser.jay"
{
Error_SyntaxError (Token.CLOSE_BRACE);
@@ -8094,85 +8420,85 @@ void case_667()
lexer.putback ('}');
}
-void case_668()
-#line 4716 "cs-parser.jay"
+void case_703()
+#line 4950 "cs-parser.jay"
{
yyVal = new SimpleAssign ((Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_669()
-#line 4721 "cs-parser.jay"
+void case_704()
+#line 4955 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.Multiply, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_670()
-#line 4726 "cs-parser.jay"
+void case_705()
+#line 4960 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.Division, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_671()
-#line 4731 "cs-parser.jay"
+void case_706()
+#line 4965 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.Modulus, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_672()
-#line 4736 "cs-parser.jay"
+void case_707()
+#line 4970 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.Addition, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_673()
-#line 4741 "cs-parser.jay"
+void case_708()
+#line 4975 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.Subtraction, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_674()
-#line 4746 "cs-parser.jay"
+void case_709()
+#line 4980 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.LeftShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_675()
-#line 4751 "cs-parser.jay"
+void case_710()
+#line 4985 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.RightShift, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_676()
-#line 4756 "cs-parser.jay"
+void case_711()
+#line 4990 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.BitwiseAnd, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_677()
-#line 4761 "cs-parser.jay"
+void case_712()
+#line 4995 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.BitwiseOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_678()
-#line 4766 "cs-parser.jay"
+void case_713()
+#line 5000 "cs-parser.jay"
{
yyVal = new CompoundAssign (Binary.Operator.ExclusiveOr, (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_679()
-#line 4774 "cs-parser.jay"
+void case_714()
+#line 5008 "cs-parser.jay"
{
var pars = new List<Parameter> (4);
pars.Add ((Parameter) yyVals[0+yyTop]);
@@ -8180,8 +8506,8 @@ void case_679()
yyVal = pars;
}
-void case_680()
-#line 4781 "cs-parser.jay"
+void case_715()
+#line 5015 "cs-parser.jay"
{
var pars = (List<Parameter>) yyVals[-2+yyTop];
Parameter p = (Parameter)yyVals[0+yyTop];
@@ -8195,46 +8521,46 @@ void case_680()
yyVal = pars;
}
-void case_681()
-#line 4797 "cs-parser.jay"
+void case_716()
+#line 5031 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, (Parameter.Modifier) yyVals[-2+yyTop], null, lt.Location);
}
-void case_682()
-#line 4803 "cs-parser.jay"
+void case_717()
+#line 5037 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new Parameter ((FullNamedExpression) yyVals[-1+yyTop], lt.Value, Parameter.Modifier.NONE, null, lt.Location);
}
-void case_683()
-#line 4809 "cs-parser.jay"
+void case_718()
+#line 5043 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
}
-void case_684()
-#line 4814 "cs-parser.jay"
+void case_719()
+#line 5048 "cs-parser.jay"
{
var lt = (LocatedToken) Error_AwaitAsIdentifier (yyVals[0+yyTop]);
yyVal = new ImplicitLambdaParameter (lt.Value, lt.Location);
}
-void case_686()
-#line 4822 "cs-parser.jay"
+void case_721()
+#line 5056 "cs-parser.jay"
{
var pars_list = (List<Parameter>) yyVals[0+yyTop];
yyVal = new ParametersCompiled (pars_list.ToArray ());
lbag.AddLocation (yyVal, parameterListCommas);
}
-void case_688()
-#line 4834 "cs-parser.jay"
+void case_723()
+#line 5068 "cs-parser.jay"
{
Block b = end_block (Location.Null);
b.IsCompilerGenerated = true;
@@ -8242,8 +8568,8 @@ void case_688()
yyVal = b;
}
-void case_690()
-#line 4842 "cs-parser.jay"
+void case_725()
+#line 5076 "cs-parser.jay"
{
/* Handles only cases like foo = x.FirstOrDefault (l => );*/
/* where we must restore current_variable*/
@@ -8254,128 +8580,128 @@ void case_690()
yyVal = null;
}
-void case_692()
-#line 4856 "cs-parser.jay"
+void case_727()
+#line 5090 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_693()
-#line 4864 "cs-parser.jay"
+void case_728()
+#line 5098 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
}
-void case_694()
-#line 4870 "cs-parser.jay"
+void case_729()
+#line 5104 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_695()
-#line 4875 "cs-parser.jay"
+void case_730()
+#line 5109 "cs-parser.jay"
{
var lt = (LocatedToken) Error_AwaitAsIdentifier (yyVals[-1+yyTop]);
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
start_anonymous (true, new ParametersCompiled (p), false, lt.Location);
}
-void case_696()
-#line 4881 "cs-parser.jay"
+void case_731()
+#line 5115 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_697()
-#line 4886 "cs-parser.jay"
+void case_732()
+#line 5120 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
Parameter p = new ImplicitLambdaParameter (lt.Value, lt.Location);
start_anonymous (true, new ParametersCompiled (p), true, lt.Location);
}
-void case_698()
-#line 4892 "cs-parser.jay"
+void case_733()
+#line 5126 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_700()
-#line 4901 "cs-parser.jay"
+void case_735()
+#line 5135 "cs-parser.jay"
{
valid_param_mod = 0;
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], false, GetLocation (yyVals[-4+yyTop]));
}
-void case_701()
-#line 4906 "cs-parser.jay"
+void case_736()
+#line 5140 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_703()
-#line 4915 "cs-parser.jay"
+void case_738()
+#line 5149 "cs-parser.jay"
{
valid_param_mod = 0;
start_anonymous (true, (ParametersCompiled) yyVals[-2+yyTop], true, GetLocation (yyVals[-5+yyTop]));
}
-void case_704()
-#line 4920 "cs-parser.jay"
+void case_739()
+#line 5154 "cs-parser.jay"
{
yyVal = end_anonymous ((ParametersBlock) yyVals[0+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[-7+yyTop]), GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_711()
-#line 4943 "cs-parser.jay"
+void case_746()
+#line 5177 "cs-parser.jay"
{
yyVal = new RefValueExpr ((Expression) yyVals[-3+yyTop], (FullNamedExpression) yyVals[-1+yyTop], GetLocation (yyVals[-5+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_712()
-#line 4948 "cs-parser.jay"
+void case_747()
+#line 5182 "cs-parser.jay"
{
yyVal = new RefTypeExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_713()
-#line 4953 "cs-parser.jay"
+void case_748()
+#line 5187 "cs-parser.jay"
{
yyVal = new MakeRefExpr ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_718()
-#line 4980 "cs-parser.jay"
+void case_753()
+#line 5214 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
/* Cannot use opt_formal_parameter_list because it can be shared instance for empty parameters*/
lbag.AppendToMember (current_container, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
- if (lang_version < LanguageVersion.V_6)
+ if (lang_version != LanguageVersion.Experimental)
FeatureIsNotAvailable (GetLocation (yyVals[-2+yyTop]), "primary constructor");
}
-void case_723()
-#line 5009 "cs-parser.jay"
+void case_758()
+#line 5243 "cs-parser.jay"
{
++lexer.parsing_block;
current_type.PrimaryConstructorBaseArgumentsStart = GetLocation (yyVals[0+yyTop]);
}
-void case_724()
-#line 5014 "cs-parser.jay"
+void case_759()
+#line 5248 "cs-parser.jay"
{
lbag.AppendToMember (current_container, GetLocation (yyVals[0+yyTop]));
current_type.PrimaryConstructorBaseArguments = (Arguments) yyVals[-1+yyTop];
@@ -8384,8 +8710,8 @@ void case_724()
yyVal = yyVals[-5+yyTop];
}
-void case_726()
-#line 5034 "cs-parser.jay"
+void case_761()
+#line 5268 "cs-parser.jay"
{
lexer.ConstraintsParsing = true;
@@ -8399,8 +8725,8 @@ void case_726()
valid_param_mod = ParameterModifierType.PrimaryConstructor;
}
-void case_727()
-#line 5048 "cs-parser.jay"
+void case_762()
+#line 5282 "cs-parser.jay"
{
valid_param_mod = 0;
lexer.ConstraintsParsing = false;
@@ -8419,16 +8745,16 @@ void case_727()
lexer.parsing_modifiers = true;
}
-void case_728()
-#line 5066 "cs-parser.jay"
+void case_763()
+#line 5300 "cs-parser.jay"
{
--lexer.parsing_declaration;
if (doc_support)
Lexer.doc_state = XmlCommentState.Allowed;
}
-void case_729()
-#line 5072 "cs-parser.jay"
+void case_764()
+#line 5306 "cs-parser.jay"
{
if (yyVals[0+yyTop] == null) {
lbag.AppendToMember (current_container, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-2+yyTop]));
@@ -8438,16 +8764,16 @@ void case_729()
yyVal = pop_current_class ();
}
-void case_732()
-#line 5091 "cs-parser.jay"
+void case_767()
+#line 5325 "cs-parser.jay"
{
mod_locations = null;
yyVal = ModifierNone;
lexer.parsing_modifiers = false;
}
-void case_735()
-#line 5105 "cs-parser.jay"
+void case_770()
+#line 5339 "cs-parser.jay"
{
var m1 = (Modifiers) yyVals[-1+yyTop];
var m2 = (Modifiers) yyVals[0+yyTop];
@@ -8464,8 +8790,8 @@ void case_735()
yyVal = m1 | m2;
}
-void case_736()
-#line 5124 "cs-parser.jay"
+void case_771()
+#line 5358 "cs-parser.jay"
{
yyVal = Modifiers.NEW;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
@@ -8474,92 +8800,92 @@ void case_736()
report.Error (1530, GetLocation (yyVals[0+yyTop]), "Keyword `new' is not allowed on namespace elements");
}
-void case_737()
-#line 5132 "cs-parser.jay"
+void case_772()
+#line 5366 "cs-parser.jay"
{
yyVal = Modifiers.PUBLIC;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_738()
-#line 5137 "cs-parser.jay"
+void case_773()
+#line 5371 "cs-parser.jay"
{
yyVal = Modifiers.PROTECTED;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_739()
-#line 5142 "cs-parser.jay"
+void case_774()
+#line 5376 "cs-parser.jay"
{
yyVal = Modifiers.INTERNAL;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_740()
-#line 5147 "cs-parser.jay"
+void case_775()
+#line 5381 "cs-parser.jay"
{
yyVal = Modifiers.PRIVATE;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_741()
-#line 5152 "cs-parser.jay"
+void case_776()
+#line 5386 "cs-parser.jay"
{
yyVal = Modifiers.ABSTRACT;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_742()
-#line 5157 "cs-parser.jay"
+void case_777()
+#line 5391 "cs-parser.jay"
{
yyVal = Modifiers.SEALED;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_743()
-#line 5162 "cs-parser.jay"
+void case_778()
+#line 5396 "cs-parser.jay"
{
yyVal = Modifiers.STATIC;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_744()
-#line 5167 "cs-parser.jay"
+void case_779()
+#line 5401 "cs-parser.jay"
{
yyVal = Modifiers.READONLY;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_745()
-#line 5172 "cs-parser.jay"
+void case_780()
+#line 5406 "cs-parser.jay"
{
yyVal = Modifiers.VIRTUAL;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_746()
-#line 5177 "cs-parser.jay"
+void case_781()
+#line 5411 "cs-parser.jay"
{
yyVal = Modifiers.OVERRIDE;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_747()
-#line 5182 "cs-parser.jay"
+void case_782()
+#line 5416 "cs-parser.jay"
{
yyVal = Modifiers.EXTERN;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_748()
-#line 5187 "cs-parser.jay"
+void case_783()
+#line 5421 "cs-parser.jay"
{
yyVal = Modifiers.VOLATILE;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_749()
-#line 5192 "cs-parser.jay"
+void case_784()
+#line 5426 "cs-parser.jay"
{
yyVal = Modifiers.UNSAFE;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
@@ -8567,38 +8893,38 @@ void case_749()
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
}
-void case_750()
-#line 5199 "cs-parser.jay"
+void case_785()
+#line 5433 "cs-parser.jay"
{
yyVal = Modifiers.ASYNC;
StoreModifierLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_753()
-#line 5212 "cs-parser.jay"
+void case_788()
+#line 5446 "cs-parser.jay"
{
current_type.SetBaseTypes ((List<FullNamedExpression>) yyVals[0+yyTop]);
lbag.AppendToMember (current_type, GetLocation (yyVals[-1+yyTop]));
}
-void case_754()
-#line 5217 "cs-parser.jay"
+void case_789()
+#line 5451 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
current_type.SetBaseTypes ((List<FullNamedExpression>) yyVals[-1+yyTop]);
}
-void case_757()
-#line 5234 "cs-parser.jay"
+void case_792()
+#line 5468 "cs-parser.jay"
{
var constraints = new List<Constraints> (1);
constraints.Add ((Constraints) yyVals[0+yyTop]);
yyVal = constraints;
}
-void case_758()
-#line 5240 "cs-parser.jay"
+void case_793()
+#line 5474 "cs-parser.jay"
{
var constraints = (List<Constraints>) yyVals[-1+yyTop];
Constraints new_constraint = (Constraints)yyVals[0+yyTop];
@@ -8615,16 +8941,16 @@ void case_758()
yyVal = constraints;
}
-void case_759()
-#line 5259 "cs-parser.jay"
+void case_794()
+#line 5493 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), (List<FullNamedExpression>) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_760()
-#line 5265 "cs-parser.jay"
+void case_795()
+#line 5499 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -8632,16 +8958,16 @@ void case_760()
yyVal = new Constraints (new SimpleMemberName (lt.Value, lt.Location), null, GetLocation (yyVals[-2+yyTop]));
}
-void case_761()
-#line 5275 "cs-parser.jay"
+void case_796()
+#line 5509 "cs-parser.jay"
{
var constraints = new List<FullNamedExpression> (1);
constraints.Add ((FullNamedExpression) yyVals[0+yyTop]);
yyVal = constraints;
}
-void case_762()
-#line 5281 "cs-parser.jay"
+void case_797()
+#line 5515 "cs-parser.jay"
{
var constraints = (List<FullNamedExpression>) yyVals[-2+yyTop];
var prev = constraints [constraints.Count - 1] as SpecialContraintExpr;
@@ -8666,8 +8992,8 @@ void case_762()
yyVal = constraints;
}
-void case_763()
-#line 5308 "cs-parser.jay"
+void case_798()
+#line 5542 "cs-parser.jay"
{
if (yyVals[0+yyTop] is ComposedCast)
report.Error (706, GetLocation (yyVals[0+yyTop]), "Invalid constraint type `{0}'", ((ComposedCast)yyVals[0+yyTop]).GetSignatureForError ());
@@ -8675,15 +9001,15 @@ void case_763()
yyVal = yyVals[0+yyTop];
}
-void case_764()
-#line 5315 "cs-parser.jay"
+void case_799()
+#line 5549 "cs-parser.jay"
{
yyVal = new SpecialContraintExpr (SpecialConstraint.Constructor, GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_768()
-#line 5335 "cs-parser.jay"
+void case_803()
+#line 5569 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.V_3)
FeatureIsNotAvailable (lexer.Location, "generic type variance");
@@ -8691,79 +9017,79 @@ void case_768()
yyVal = yyVals[0+yyTop];
}
-void case_769()
-#line 5345 "cs-parser.jay"
+void case_804()
+#line 5579 "cs-parser.jay"
{
yyVal = new VarianceDecl (Variance.Covariant, GetLocation (yyVals[0+yyTop]));
savedLocation = GetLocation (yyVals[0+yyTop]);
}
-void case_770()
-#line 5350 "cs-parser.jay"
+void case_805()
+#line 5584 "cs-parser.jay"
{
yyVal = new VarianceDecl (Variance.Contravariant, GetLocation (yyVals[0+yyTop]));
savedLocation = GetLocation (yyVals[0+yyTop]);
}
-void case_771()
-#line 5371 "cs-parser.jay"
+void case_806()
+#line 5605 "cs-parser.jay"
{
++lexer.parsing_block;
start_block (GetLocation (yyVals[0+yyTop]));
}
-void case_773()
-#line 5383 "cs-parser.jay"
+void case_808()
+#line 5617 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_774()
-#line 5388 "cs-parser.jay"
+void case_809()
+#line 5622 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = end_block (lexer.Location);
}
-void case_775()
-#line 5397 "cs-parser.jay"
+void case_810()
+#line 5631 "cs-parser.jay"
{
++lexer.parsing_block;
current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
}
-void case_776()
-#line 5402 "cs-parser.jay"
+void case_811()
+#line 5636 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_777()
-#line 5406 "cs-parser.jay"
+void case_812()
+#line 5640 "cs-parser.jay"
{
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol '}', expected '{'");
lexer.putback ('}');
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_778()
-#line 5415 "cs-parser.jay"
+void case_813()
+#line 5649 "cs-parser.jay"
{
++lexer.parsing_block;
current_block.StartLocation = GetLocation (yyVals[0+yyTop]);
}
-void case_779()
-#line 5420 "cs-parser.jay"
+void case_814()
+#line 5654 "cs-parser.jay"
{
--lexer.parsing_block;
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_787()
-#line 5448 "cs-parser.jay"
+void case_822()
+#line 5682 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
var lt =(LocatedToken) yyVals[-1+yyTop];
@@ -8772,43 +9098,43 @@ void case_787()
yyVal = null;
}
-void case_788()
-#line 5457 "cs-parser.jay"
+void case_823()
+#line 5691 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_821()
-#line 5521 "cs-parser.jay"
+void case_856()
+#line 5755 "cs-parser.jay"
{
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
yyVal = null;
}
-void case_822()
-#line 5526 "cs-parser.jay"
+void case_857()
+#line 5760 "cs-parser.jay"
{
report.Error (1023, GetLocation (yyVals[0+yyTop]), "An embedded statement may not be a declaration or labeled statement");
yyVal = null;
}
-void case_823()
-#line 5531 "cs-parser.jay"
+void case_858()
+#line 5765 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
}
-void case_824()
-#line 5539 "cs-parser.jay"
+void case_859()
+#line 5773 "cs-parser.jay"
{
/* Uses lexer.Location because semicolon location is not kept in quick mode*/
yyVal = new EmptyStatement (lexer.Location);
}
-void case_825()
-#line 5547 "cs-parser.jay"
+void case_860()
+#line 5781 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
LabeledStatement labeled = new LabeledStatement (lt.Value, current_block, lt.Location);
@@ -8817,8 +9143,8 @@ void case_825()
current_block.AddStatement (labeled);
}
-void case_828()
-#line 5560 "cs-parser.jay"
+void case_863()
+#line 5794 "cs-parser.jay"
{
if (yyVals[-1+yyTop] is VarExpr)
yyVals[-1+yyTop] = new SimpleName ("var", ((VarExpr) yyVals[-1+yyTop]).Location);
@@ -8826,8 +9152,8 @@ void case_828()
yyVal = new ComposedCast ((FullNamedExpression) yyVals[-1+yyTop], (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
-void case_829()
-#line 5576 "cs-parser.jay"
+void case_864()
+#line 5810 "cs-parser.jay"
{
/* Ok, the above "primary_expression" is there to get rid of*/
/* both reduce/reduce and shift/reduces in the grammar, it should*/
@@ -8843,43 +9169,33 @@ void case_829()
/* SimpleName is when you have*/
/* Blah i;*/
- Expression expr = (Expression) yyVals[-1+yyTop];
+ var expr = (ATypeNameExpression) yyVals[-1+yyTop];
if (yyVals[0+yyTop] == null) {
- SimpleName sn = expr as SimpleName;
- if (sn != null && sn.Name == "var")
- yyVal = new VarExpr (sn.Location);
+ if (expr.Name == "var" && expr is SimpleName)
+ yyVal = new VarExpr (expr.Location);
else
yyVal = yyVals[-1+yyTop];
- } else if (expr is ATypeNameExpression) {
- yyVal = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
} else {
- Error_ExpectingTypeName (expr);
- yyVal = null;
+ yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
}
-void case_830()
-#line 5606 "cs-parser.jay"
+void case_865()
+#line 5836 "cs-parser.jay"
{
- ATypeNameExpression expr = yyVals[-1+yyTop] as ATypeNameExpression;
-
- if (expr != null) {
- yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
- } else {
- Error_ExpectingTypeName ((Expression)yyVals[-1+yyTop]);
- yyVal = expr;
- }
+ var expr = (ATypeNameExpression) yyVals[-1+yyTop];
+ yyVal = new ComposedCast (expr, (ComposedTypeSpecifier) yyVals[0+yyTop]);
}
-void case_834()
-#line 5623 "cs-parser.jay"
+void case_869()
+#line 5847 "cs-parser.jay"
{
((ComposedTypeSpecifier) yyVals[-1+yyTop]).Next = (ComposedTypeSpecifier) yyVals[0+yyTop];
yyVal = yyVals[-1+yyTop];
}
-void case_838()
-#line 5646 "cs-parser.jay"
+void case_873()
+#line 5870 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var li = new LocalVariable (current_block, lt.Value, lt.Location);
@@ -8887,8 +9203,8 @@ void case_838()
current_variable = new BlockVariable ((FullNamedExpression) yyVals[-1+yyTop], li);
}
-void case_839()
-#line 5653 "cs-parser.jay"
+void case_874()
+#line 5877 "cs-parser.jay"
{
yyVal = current_variable;
current_variable = null;
@@ -8898,8 +9214,8 @@ void case_839()
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_840()
-#line 5662 "cs-parser.jay"
+void case_875()
+#line 5886 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
@@ -8907,8 +9223,8 @@ void case_840()
current_variable = new BlockConstant ((FullNamedExpression) yyVals[-1+yyTop], li);
}
-void case_841()
-#line 5669 "cs-parser.jay"
+void case_876()
+#line 5893 "cs-parser.jay"
{
if (current_variable.Initializer != null) {
lbag.AddLocation (current_variable, GetLocation (yyVals[-6+yyTop]), savedLocation, GetLocation (yyVals[0+yyTop]));
@@ -8919,8 +9235,8 @@ void case_841()
current_variable = null;
}
-void case_843()
-#line 5682 "cs-parser.jay"
+void case_878()
+#line 5906 "cs-parser.jay"
{
/* Redundant, but wont regress*/
report.Error (1525, lexer.Location, "Unexpected symbol }");
@@ -8928,16 +9244,16 @@ void case_843()
yyVal = yyVals[0+yyTop];
}
-void case_845()
-#line 5693 "cs-parser.jay"
+void case_880()
+#line 5917 "cs-parser.jay"
{
current_variable.Initializer = (Expression) yyVals[0+yyTop];
PushLocation (GetLocation (yyVals[-1+yyTop]));
yyVal = current_variable;
}
-void case_846()
-#line 5699 "cs-parser.jay"
+void case_881()
+#line 5923 "cs-parser.jay"
{
if (yyToken == Token.OPEN_BRACKET_EXPR) {
report.Error (650, lexer.Location,
@@ -8947,8 +9263,8 @@ void case_846()
}
}
-void case_850()
-#line 5717 "cs-parser.jay"
+void case_885()
+#line 5941 "cs-parser.jay"
{
foreach (var d in current_variable.Declarators) {
if (d.Initializer == null)
@@ -8956,8 +9272,8 @@ void case_850()
}
}
-void case_853()
-#line 5732 "cs-parser.jay"
+void case_888()
+#line 5956 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
@@ -8967,8 +9283,8 @@ void case_853()
lbag.AddLocation (d, GetLocation (yyVals[-1+yyTop]));
}
-void case_854()
-#line 5741 "cs-parser.jay"
+void case_889()
+#line 5965 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
var li = new LocalVariable (current_variable.Variable, lt.Value, lt.Location);
@@ -8978,15 +9294,15 @@ void case_854()
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_856()
-#line 5757 "cs-parser.jay"
+void case_891()
+#line 5981 "cs-parser.jay"
{
savedLocation = GetLocation (yyVals[-1+yyTop]);
current_variable.Initializer = (Expression) yyVals[0+yyTop];
}
-void case_861()
-#line 5775 "cs-parser.jay"
+void case_896()
+#line 5999 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
var li = new LocalVariable (current_block, lt.Value, LocalVariable.Flags.Constant, lt.Location);
@@ -8996,37 +9312,37 @@ void case_861()
lbag.AddLocation (d, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_863()
-#line 5788 "cs-parser.jay"
+void case_898()
+#line 6012 "cs-parser.jay"
{
yyVal = new StackAlloc ((Expression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_864()
-#line 5793 "cs-parser.jay"
+void case_899()
+#line 6017 "cs-parser.jay"
{
report.Error (1575, GetLocation (yyVals[-1+yyTop]), "A stackalloc expression requires [] after type");
yyVal = new StackAlloc ((Expression) yyVals[0+yyTop], null, GetLocation (yyVals[-1+yyTop]));
}
-void case_865()
-#line 5801 "cs-parser.jay"
+void case_900()
+#line 6025 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_867()
-#line 5807 "cs-parser.jay"
+void case_902()
+#line 6031 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
report.Error (1002, GetLocation (yyVals[0+yyTop]), "; expected");
lexer.putback ('}');
}
-void case_870()
-#line 5825 "cs-parser.jay"
+void case_905()
+#line 6049 "cs-parser.jay"
{
ExpressionStatement s = yyVals[0+yyTop] as ExpressionStatement;
if (s == null) {
@@ -9037,22 +9353,22 @@ void case_870()
}
}
-void case_871()
-#line 5838 "cs-parser.jay"
+void case_906()
+#line 6062 "cs-parser.jay"
{
Expression expr = (Expression) yyVals[0+yyTop];
yyVal = new StatementExpression (new OptionalAssign (expr, lexer.Location));
}
-void case_872()
-#line 5843 "cs-parser.jay"
+void case_907()
+#line 6067 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new EmptyStatement (GetLocation (yyVals[0+yyTop]));
}
-void case_875()
-#line 5857 "cs-parser.jay"
+void case_910()
+#line 6081 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9061,8 +9377,8 @@ void case_875()
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_876()
-#line 5866 "cs-parser.jay"
+void case_911()
+#line 6090 "cs-parser.jay"
{
yyVal = new If ((BooleanExpression) yyVals[-4+yyTop], (Statement) yyVals[-2+yyTop], (Statement) yyVals[0+yyTop], GetLocation (yyVals[-6+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-5+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
@@ -9073,8 +9389,8 @@ void case_876()
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
}
-void case_877()
-#line 5876 "cs-parser.jay"
+void case_912()
+#line 6100 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9082,16 +9398,16 @@ void case_877()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_879()
-#line 5890 "cs-parser.jay"
+void case_914()
+#line 6114 "cs-parser.jay"
{
yyVal = new Switch ((Expression) yyVals[-5+yyTop], (ExplicitBlock) current_block.Explicit, GetLocation (yyVals[-7+yyTop]));
end_block (GetLocation (yyVals[0+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_880()
-#line 5896 "cs-parser.jay"
+void case_915()
+#line 6120 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9099,30 +9415,30 @@ void case_880()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_887()
-#line 5927 "cs-parser.jay"
+void case_922()
+#line 6151 "cs-parser.jay"
{
var label = (SwitchLabel) yyVals[0+yyTop];
label.SectionStart = true;
current_block.AddStatement (label);
}
-void case_889()
-#line 5940 "cs-parser.jay"
+void case_924()
+#line 6164 "cs-parser.jay"
{
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_890()
-#line 5945 "cs-parser.jay"
+void case_925()
+#line 6169 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new SwitchLabel ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_896()
-#line 5964 "cs-parser.jay"
+void case_931()
+#line 6200 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9131,8 +9447,8 @@ void case_896()
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_897()
-#line 5972 "cs-parser.jay"
+void case_932()
+#line 6208 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9140,22 +9456,22 @@ void case_897()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_898()
-#line 5982 "cs-parser.jay"
+void case_933()
+#line 6218 "cs-parser.jay"
{
yyVal = new Do ((Statement) yyVals[-5+yyTop], (BooleanExpression) yyVals[-2+yyTop], GetLocation (yyVals[-6+yyTop]), GetLocation (yyVals[-4+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_899()
-#line 5987 "cs-parser.jay"
+void case_934()
+#line 6223 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Do ((Statement) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), Location.Null);
}
-void case_900()
-#line 5992 "cs-parser.jay"
+void case_935()
+#line 6228 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9163,8 +9479,8 @@ void case_900()
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-2+yyTop]));
}
-void case_901()
-#line 6002 "cs-parser.jay"
+void case_936()
+#line 6238 "cs-parser.jay"
{
start_block (GetLocation (yyVals[0+yyTop]));
current_block.IsCompilerGenerated = true;
@@ -9174,8 +9490,8 @@ void case_901()
yyVal = f;
}
-void case_903()
-#line 6019 "cs-parser.jay"
+void case_938()
+#line 6255 "cs-parser.jay"
{
For f = (For) yyVals[-2+yyTop];
f.Initializer = (Statement) yyVals[-1+yyTop];
@@ -9183,8 +9499,8 @@ void case_903()
yyVal = f;
}
-void case_905()
-#line 6029 "cs-parser.jay"
+void case_940()
+#line 6265 "cs-parser.jay"
{
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
For f = (For) yyVals[-2+yyTop];
@@ -9193,8 +9509,8 @@ void case_905()
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_906()
-#line 6040 "cs-parser.jay"
+void case_941()
+#line 6276 "cs-parser.jay"
{
For f = (For) yyVals[-2+yyTop];
f.Condition = (BooleanExpression) yyVals[-1+yyTop];
@@ -9202,8 +9518,8 @@ void case_906()
yyVal = f;
}
-void case_908()
-#line 6051 "cs-parser.jay"
+void case_943()
+#line 6287 "cs-parser.jay"
{
report.Error (1525, GetLocation (yyVals[0+yyTop]), "Unexpected symbol ')', expected ';'");
For f = (For) yyVals[-2+yyTop];
@@ -9212,8 +9528,8 @@ void case_908()
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_909()
-#line 6063 "cs-parser.jay"
+void case_944()
+#line 6299 "cs-parser.jay"
{
For f = (For) yyVals[-3+yyTop];
f.Iterator = (Statement) yyVals[-2+yyTop];
@@ -9227,15 +9543,15 @@ void case_909()
yyVal = end_block (GetLocation (yyVals[-1+yyTop]));
}
-void case_910()
-#line 6076 "cs-parser.jay"
+void case_945()
+#line 6312 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = end_block (current_block.StartLocation);
}
-void case_913()
-#line 6089 "cs-parser.jay"
+void case_948()
+#line 6325 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[0+yyTop];
var li = new LocalVariable (current_block, lt.Value, lt.Location);
@@ -9243,8 +9559,8 @@ void case_913()
current_variable = new BlockVariable ((FullNamedExpression) yyVals[-1+yyTop], li);
}
-void case_914()
-#line 6096 "cs-parser.jay"
+void case_949()
+#line 6332 "cs-parser.jay"
{
yyVal = current_variable;
if (yyVals[-1+yyTop] != null)
@@ -9253,8 +9569,8 @@ void case_914()
current_variable = null;
}
-void case_922()
-#line 6123 "cs-parser.jay"
+void case_957()
+#line 6359 "cs-parser.jay"
{
var sl = yyVals[-2+yyTop] as StatementList;
if (sl == null) {
@@ -9269,8 +9585,8 @@ void case_922()
yyVal = sl;
}
-void case_923()
-#line 6140 "cs-parser.jay"
+void case_958()
+#line 6376 "cs-parser.jay"
{
report.Error (230, GetLocation (yyVals[-3+yyTop]), "Type and identifier are both required in a foreach statement");
@@ -9284,8 +9600,8 @@ void case_923()
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_924()
-#line 6153 "cs-parser.jay"
+void case_959()
+#line 6389 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9303,8 +9619,8 @@ void case_924()
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_925()
-#line 6170 "cs-parser.jay"
+void case_960()
+#line 6406 "cs-parser.jay"
{
start_block (GetLocation (yyVals[-5+yyTop]));
current_block.IsCompilerGenerated = true;
@@ -9315,8 +9631,8 @@ void case_925()
yyVal = li;
}
-void case_926()
-#line 6180 "cs-parser.jay"
+void case_961()
+#line 6416 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9328,8 +9644,8 @@ void case_926()
yyVal = f;
}
-void case_927()
-#line 6191 "cs-parser.jay"
+void case_962()
+#line 6427 "cs-parser.jay"
{
start_block (GetLocation (yyVals[-3+yyTop]));
current_block.IsCompilerGenerated = true;
@@ -9343,8 +9659,8 @@ void case_927()
yyVal = end_block (GetLocation (yyVals[0+yyTop]));
}
-void case_928()
-#line 6204 "cs-parser.jay"
+void case_963()
+#line 6440 "cs-parser.jay"
{
Foreach f = new Foreach ((Expression) yyVals[-1+yyTop], null, null, null, null, GetLocation (yyVals[-3+yyTop]));
current_block.AddStatement (f);
@@ -9353,93 +9669,93 @@ void case_928()
yyVal = f;
}
-void case_935()
-#line 6224 "cs-parser.jay"
+void case_970()
+#line 6460 "cs-parser.jay"
{
yyVal = new Break (GetLocation (yyVals[-1+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_936()
-#line 6232 "cs-parser.jay"
+void case_971()
+#line 6468 "cs-parser.jay"
{
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_937()
-#line 6237 "cs-parser.jay"
+void case_972()
+#line 6473 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Continue (GetLocation (yyVals[-1+yyTop]));
}
-void case_938()
-#line 6245 "cs-parser.jay"
+void case_973()
+#line 6481 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-1+yyTop];
yyVal = new Goto (lt.Value, GetLocation (yyVals[-2+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_939()
-#line 6251 "cs-parser.jay"
+void case_974()
+#line 6487 "cs-parser.jay"
{
yyVal = new GotoCase ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_940()
-#line 6256 "cs-parser.jay"
+void case_975()
+#line 6492 "cs-parser.jay"
{
yyVal = new GotoDefault (GetLocation (yyVals[-2+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_941()
-#line 6264 "cs-parser.jay"
+void case_976()
+#line 6500 "cs-parser.jay"
{
yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_942()
-#line 6269 "cs-parser.jay"
+void case_977()
+#line 6505 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Return ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_943()
-#line 6274 "cs-parser.jay"
+void case_978()
+#line 6510 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Return (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_944()
-#line 6282 "cs-parser.jay"
+void case_979()
+#line 6518 "cs-parser.jay"
{
yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_945()
-#line 6287 "cs-parser.jay"
+void case_980()
+#line 6523 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Throw ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-2+yyTop]));
}
-void case_946()
-#line 6292 "cs-parser.jay"
+void case_981()
+#line 6528 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new Throw (null, GetLocation (yyVals[-1+yyTop]));
}
-void case_947()
-#line 6300 "cs-parser.jay"
+void case_982()
+#line 6536 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
string s = lt.Value;
@@ -9456,8 +9772,8 @@ void case_947()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_948()
-#line 6316 "cs-parser.jay"
+void case_983()
+#line 6552 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9476,8 +9792,8 @@ void case_948()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_949()
-#line 6334 "cs-parser.jay"
+void case_984()
+#line 6570 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-2+yyTop];
string s = lt.Value;
@@ -9492,29 +9808,29 @@ void case_949()
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_953()
-#line 6360 "cs-parser.jay"
+void case_988()
+#line 6596 "cs-parser.jay"
{
yyVal = new TryFinally ((Statement) yyVals[-2+yyTop], (ExplicitBlock) yyVals[0+yyTop], GetLocation (yyVals[-3+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_954()
-#line 6365 "cs-parser.jay"
+void case_989()
+#line 6601 "cs-parser.jay"
{
yyVal = new TryFinally (new TryCatch ((Block) yyVals[-3+yyTop], (List<Catch>) yyVals[-2+yyTop], GetLocation (yyVals[-4+yyTop]), true), (ExplicitBlock) yyVals[0+yyTop], GetLocation (yyVals[-4+yyTop]));
lbag.AddStatement (yyVal, GetLocation (yyVals[-1+yyTop]));
}
-void case_955()
-#line 6370 "cs-parser.jay"
+void case_990()
+#line 6606 "cs-parser.jay"
{
Error_SyntaxError (1524, yyToken);
yyVal = new TryCatch ((Block) yyVals[-1+yyTop], null, GetLocation (yyVals[-2+yyTop]), false);
}
-void case_956()
-#line 6378 "cs-parser.jay"
+void case_991()
+#line 6614 "cs-parser.jay"
{
var l = new List<Catch> (2);
@@ -9522,8 +9838,8 @@ void case_956()
yyVal = l;
}
-void case_957()
-#line 6385 "cs-parser.jay"
+void case_992()
+#line 6621 "cs-parser.jay"
{
var l = (List<Catch>) yyVals[-1+yyTop];
@@ -9537,16 +9853,16 @@ void case_957()
yyVal = l;
}
-void case_960()
-#line 6406 "cs-parser.jay"
+void case_995()
+#line 6642 "cs-parser.jay"
{
var c = new Catch ((ExplicitBlock) yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
c.Filter = (CatchFilterExpression) yyVals[-1+yyTop];
yyVal = c;
}
-void case_961()
-#line 6412 "cs-parser.jay"
+void case_996()
+#line 6648 "cs-parser.jay"
{
start_block (GetLocation (yyVals[-3+yyTop]));
var c = new Catch ((ExplicitBlock) current_block, GetLocation (yyVals[-4+yyTop]));
@@ -9560,17 +9876,18 @@ void case_961()
lbag.AddLocation (c, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[0+yyTop]));
yyVal = c;
+ lexer.parsing_catch_when = true;
}
-void case_962()
-#line 6427 "cs-parser.jay"
+void case_997()
+#line 6664 "cs-parser.jay"
{
- ((Catch) yyVals[-2+yyTop]).Filter = (CatchFilterExpression) yyVals[-1+yyTop];
- yyVal = yyVals[-2+yyTop];
+ ((Catch) yyVals[-1+yyTop]).Filter = (CatchFilterExpression) yyVals[0+yyTop];
+ yyVal = yyVals[-1+yyTop];
}
-void case_963()
-#line 6432 "cs-parser.jay"
+void case_998()
+#line 6669 "cs-parser.jay"
{
if (yyToken == Token.CLOSE_PARENS) {
report.Error (1015, lexer.Location,
@@ -9582,50 +9899,33 @@ void case_963()
yyVal = new Catch (null, GetLocation (yyVals[-2+yyTop]));
}
-void case_964()
-#line 6443 "cs-parser.jay"
+void case_1000()
+#line 6687 "cs-parser.jay"
{
+ end_block (Location.Null);
Error_SyntaxError (yyToken);
-
- /* Required otherwise missing block could not be detected because*/
- /* start_block is run early*/
- var c = new Catch (null, GetLocation (yyVals[-5+yyTop]));
- c.TypeExpression = (FullNamedExpression) yyVals[-3+yyTop];
-
- if (yyVals[-2+yyTop] != null) {
- var lt = (LocatedToken) yyVals[-2+yyTop];
- c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
- }
-
- if (yyVals[-2+yyTop] != null) {
- var lt = (LocatedToken) yyVals[-2+yyTop];
- c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
- }
-
- lbag.AddLocation (c, GetLocation (yyVals[-4+yyTop]), GetLocation (yyVals[-1+yyTop]));
-
- yyVal = c;
+ yyVal = null;
}
-void case_966()
-#line 6470 "cs-parser.jay"
+void case_1003()
+#line 6703 "cs-parser.jay"
{
if (lang_version <= LanguageVersion.V_5)
- FeatureIsNotAvailable (GetLocation (yyVals[-3+yyTop]), "exception filter");
+ FeatureIsNotAvailable (GetLocation (yyVals[-4+yyTop]), "exception filter");
- yyVal = new CatchFilterExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-3+yyTop]));
- lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
+ yyVal = new CatchFilterExpression ((Expression) yyVals[-1+yyTop], GetLocation (yyVals[-4+yyTop]));
+ lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]), GetLocation (yyVals[0+yyTop]));
}
-void case_969()
-#line 6495 "cs-parser.jay"
+void case_1006()
+#line 6728 "cs-parser.jay"
{
if (!settings.Unsafe)
Error_UnsafeCodeNotAllowed (GetLocation (yyVals[0+yyTop]));
}
-void case_971()
-#line 6505 "cs-parser.jay"
+void case_1008()
+#line 6738 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9634,8 +9934,8 @@ void case_971()
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_972()
-#line 6513 "cs-parser.jay"
+void case_1009()
+#line 6746 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9643,8 +9943,8 @@ void case_972()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_973()
-#line 6523 "cs-parser.jay"
+void case_1010()
+#line 6756 "cs-parser.jay"
{
start_block (GetLocation (yyVals[-2+yyTop]));
@@ -9655,15 +9955,15 @@ void case_973()
current_variable = new Fixed.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
}
-void case_974()
-#line 6533 "cs-parser.jay"
+void case_1011()
+#line 6766 "cs-parser.jay"
{
yyVal = current_variable;
current_variable = null;
}
-void case_975()
-#line 6538 "cs-parser.jay"
+void case_1012()
+#line 6771 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9674,8 +9974,8 @@ void case_975()
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
}
-void case_976()
-#line 6551 "cs-parser.jay"
+void case_1013()
+#line 6784 "cs-parser.jay"
{
start_block (GetLocation (yyVals[-2+yyTop]));
@@ -9686,15 +9986,15 @@ void case_976()
current_variable = new Using.VariableDeclaration ((FullNamedExpression) yyVals[-1+yyTop], li);
}
-void case_977()
-#line 6561 "cs-parser.jay"
+void case_1014()
+#line 6794 "cs-parser.jay"
{
yyVal = current_variable;
current_variable = null;
}
-void case_978()
-#line 6566 "cs-parser.jay"
+void case_1015()
+#line 6799 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9705,8 +10005,8 @@ void case_978()
yyVal = end_block (GetLocation (yyVals[-2+yyTop]));
}
-void case_979()
-#line 6576 "cs-parser.jay"
+void case_1016()
+#line 6809 "cs-parser.jay"
{
if (yyVals[0+yyTop] is EmptyStatement && lexer.peek_token () == Token.OPEN_BRACE)
Warning_EmptyStatement (GetLocation (yyVals[0+yyTop]));
@@ -9715,8 +10015,8 @@ void case_979()
lbag.AddStatement (yyVal, GetLocation (yyVals[-3+yyTop]), GetLocation (yyVals[-1+yyTop]));
}
-void case_980()
-#line 6584 "cs-parser.jay"
+void case_1017()
+#line 6817 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
@@ -9724,23 +10024,23 @@ void case_980()
lbag.AddStatement (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_982()
-#line 6595 "cs-parser.jay"
+void case_1019()
+#line 6828 "cs-parser.jay"
{
/* It has to be here for the parent to safely restore artificial block*/
Error_SyntaxError (yyToken);
}
-void case_984()
-#line 6607 "cs-parser.jay"
+void case_1021()
+#line 6840 "cs-parser.jay"
{
current_variable.Initializer = (Expression) yyVals[0+yyTop];
lbag.AddLocation (current_variable, GetLocation (yyVals[-1+yyTop]));
yyVal = current_variable;
}
-void case_985()
-#line 6619 "cs-parser.jay"
+void case_1022()
+#line 6852 "cs-parser.jay"
{
lexer.query_parsing = false;
@@ -9753,8 +10053,8 @@ void case_985()
current_block = current_block.Parent;
}
-void case_986()
-#line 6631 "cs-parser.jay"
+void case_1023()
+#line 6864 "cs-parser.jay"
{
Linq.AQueryClause from = yyVals[-1+yyTop] as Linq.AQueryClause;
@@ -9765,8 +10065,8 @@ void case_986()
current_block = current_block.Parent;
}
-void case_987()
-#line 6642 "cs-parser.jay"
+void case_1024()
+#line 6875 "cs-parser.jay"
{
lexer.query_parsing = false;
yyVal = yyVals[-1+yyTop];
@@ -9775,16 +10075,16 @@ void case_987()
current_block = current_block.Parent;
}
-void case_988()
-#line 6649 "cs-parser.jay"
+void case_1025()
+#line 6882 "cs-parser.jay"
{
yyVal = yyVals[-1+yyTop];
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
}
-void case_989()
-#line 6658 "cs-parser.jay"
+void case_1026()
+#line 6891 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (current_block, lexer.Location);
@@ -9795,8 +10095,8 @@ void case_989()
yyVal = new Linq.QueryExpression (clause);
}
-void case_990()
-#line 6668 "cs-parser.jay"
+void case_1027()
+#line 6901 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (current_block, lexer.Location);
@@ -9809,8 +10109,8 @@ void case_990()
yyVal = new Linq.QueryExpression (clause);
}
-void case_991()
-#line 6683 "cs-parser.jay"
+void case_1028()
+#line 6916 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (current_block, lexer.Location);
@@ -9821,8 +10121,8 @@ void case_991()
yyVal = new Linq.QueryExpression (clause);
}
-void case_992()
-#line 6693 "cs-parser.jay"
+void case_1029()
+#line 6926 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (current_block, lexer.Location);
@@ -9835,8 +10135,8 @@ void case_992()
yyVal = new Linq.QueryExpression (clause);
}
-void case_994()
-#line 6712 "cs-parser.jay"
+void case_1031()
+#line 6945 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
@@ -9848,8 +10148,8 @@ void case_994()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_996()
-#line 6727 "cs-parser.jay"
+void case_1033()
+#line 6960 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
@@ -9866,8 +10166,8 @@ void case_996()
lbag.AddLocation (yyVal, GetLocation (yyVals[-2+yyTop]));
}
-void case_997()
-#line 6746 "cs-parser.jay"
+void case_1034()
+#line 6979 "cs-parser.jay"
{
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[-1+yyTop];
@@ -9883,8 +10183,8 @@ void case_997()
yyVal = head;
}
-void case_998()
-#line 6761 "cs-parser.jay"
+void case_1035()
+#line 6994 "cs-parser.jay"
{
Linq.AQueryClause head = (Linq.AQueryClause)yyVals[0+yyTop];
@@ -9897,22 +10197,22 @@ void case_998()
yyVal = head;
}
-void case_1000()
-#line 6774 "cs-parser.jay"
+void case_1037()
+#line 7007 "cs-parser.jay"
{
report.Error (742, GetLocation (yyVals[0+yyTop]), "Unexpected symbol `{0}'. A query body must end with select or group clause", GetSymbolName (yyToken));
yyVal = yyVals[-1+yyTop];
}
-void case_1001()
-#line 6779 "cs-parser.jay"
+void case_1038()
+#line 7012 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = null;
}
-void case_1003()
-#line 6791 "cs-parser.jay"
+void case_1040()
+#line 7024 "cs-parser.jay"
{
yyVal = new Linq.Select ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
@@ -9920,8 +10220,8 @@ void case_1003()
current_block = current_block.Parent;
}
-void case_1004()
-#line 6798 "cs-parser.jay"
+void case_1041()
+#line 7031 "cs-parser.jay"
{
if (linq_clause_blocks == null)
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
@@ -9930,8 +10230,8 @@ void case_1004()
linq_clause_blocks.Push ((Linq.QueryBlock)current_block);
}
-void case_1005()
-#line 6806 "cs-parser.jay"
+void case_1042()
+#line 7039 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -9939,8 +10239,8 @@ void case_1005()
current_block = new Linq.QueryBlock (current_block, lexer.Location);
}
-void case_1006()
-#line 6813 "cs-parser.jay"
+void case_1043()
+#line 7046 "cs-parser.jay"
{
var obj = (object[]) yyVals[0+yyTop];
@@ -9951,22 +10251,22 @@ void case_1006()
current_block = current_block.Parent;
}
-void case_1008()
-#line 6830 "cs-parser.jay"
+void case_1045()
+#line 7063 "cs-parser.jay"
{
Error_SyntaxError (yyToken);
yyVal = new object[2] { null, Location.Null };
}
-void case_1010()
-#line 6839 "cs-parser.jay"
+void case_1047()
+#line 7072 "cs-parser.jay"
{
((Linq.AQueryClause)yyVals[-1+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
yyVal = yyVals[-1+yyTop];
}
-void case_1017()
-#line 6859 "cs-parser.jay"
+void case_1054()
+#line 7092 "cs-parser.jay"
{
var lt = (LocatedToken) yyVals[-3+yyTop];
var sn = new Linq.RangeVariable (lt.Value, lt.Location);
@@ -9979,8 +10279,8 @@ void case_1017()
((Linq.QueryBlock)current_block).AddRangeVariable (sn);
}
-void case_1019()
-#line 6878 "cs-parser.jay"
+void case_1056()
+#line 7111 "cs-parser.jay"
{
yyVal = new Linq.Where ((Linq.QueryBlock)current_block, (Expression)yyVals[0+yyTop], GetLocation (yyVals[-2+yyTop]));
@@ -9988,8 +10288,8 @@ void case_1019()
current_block = current_block.Parent;
}
-void case_1020()
-#line 6888 "cs-parser.jay"
+void case_1057()
+#line 7121 "cs-parser.jay"
{
if (linq_clause_blocks == null)
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
@@ -9998,8 +10298,8 @@ void case_1020()
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
}
-void case_1021()
-#line 6896 "cs-parser.jay"
+void case_1058()
+#line 7129 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -10008,8 +10308,8 @@ void case_1021()
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
}
-void case_1022()
-#line 6904 "cs-parser.jay"
+void case_1059()
+#line 7137 "cs-parser.jay"
{
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
current_block.SetEndLocation (lexer.Location);
@@ -10018,8 +10318,8 @@ void case_1022()
current_block = new Linq.QueryBlock (current_block, lexer.Location);
}
-void case_1023()
-#line 6912 "cs-parser.jay"
+void case_1060()
+#line 7145 "cs-parser.jay"
{
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
current_block.SetEndLocation (lexer.Location);
@@ -10058,8 +10358,8 @@ void case_1023()
((Linq.QueryBlock)current_block).AddRangeVariable (into);
}
-void case_1024()
-#line 6950 "cs-parser.jay"
+void case_1061()
+#line 7183 "cs-parser.jay"
{
if (linq_clause_blocks == null)
linq_clause_blocks = new Stack<Linq.QueryBlock> ();
@@ -10068,8 +10368,8 @@ void case_1024()
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
}
-void case_1025()
-#line 6958 "cs-parser.jay"
+void case_1062()
+#line 7191 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -10078,8 +10378,8 @@ void case_1025()
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
}
-void case_1026()
-#line 6966 "cs-parser.jay"
+void case_1063()
+#line 7199 "cs-parser.jay"
{
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
current_block.SetEndLocation (lexer.Location);
@@ -10088,8 +10388,8 @@ void case_1026()
current_block = new Linq.QueryBlock (current_block, lexer.Location);
}
-void case_1027()
-#line 6974 "cs-parser.jay"
+void case_1064()
+#line 7207 "cs-parser.jay"
{
current_block.AddStatement (new ContextualReturn ((Expression) yyVals[-1+yyTop]));
current_block.SetEndLocation (lexer.Location);
@@ -10132,22 +10432,22 @@ void case_1027()
((Linq.QueryBlock)current_block).AddRangeVariable (into);
}
-void case_1029()
-#line 7020 "cs-parser.jay"
+void case_1066()
+#line 7253 "cs-parser.jay"
{
opt_intoStack.Push (GetLocation (yyVals[-1+yyTop]));
yyVal = yyVals[0+yyTop];
}
-void case_1030()
-#line 7028 "cs-parser.jay"
+void case_1067()
+#line 7261 "cs-parser.jay"
{
current_block = new Linq.QueryBlock (current_block, lexer.Location);
lbag.AddLocation (current_block, GetLocation (yyVals[0+yyTop]));
}
-void case_1031()
-#line 7033 "cs-parser.jay"
+void case_1068()
+#line 7266 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -10155,8 +10455,8 @@ void case_1031()
yyVal = yyVals[0+yyTop];
}
-void case_1033()
-#line 7044 "cs-parser.jay"
+void case_1070()
+#line 7277 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -10164,15 +10464,15 @@ void case_1033()
current_block = new Linq.QueryBlock (current_block, lexer.Location);
}
-void case_1034()
-#line 7051 "cs-parser.jay"
+void case_1071()
+#line 7284 "cs-parser.jay"
{
((Linq.AQueryClause)yyVals[-3+yyTop]).Next = (Linq.AQueryClause)yyVals[0+yyTop];
yyVal = yyVals[-3+yyTop];
}
-void case_1036()
-#line 7060 "cs-parser.jay"
+void case_1073()
+#line 7293 "cs-parser.jay"
{
current_block.SetEndLocation (lexer.Location);
current_block = current_block.Parent;
@@ -10180,43 +10480,43 @@ void case_1036()
current_block = new Linq.QueryBlock ((Linq.QueryBlock) current_block, lexer.Location);
}
-void case_1037()
-#line 7067 "cs-parser.jay"
+void case_1074()
+#line 7300 "cs-parser.jay"
{
((Linq.AQueryClause)yyVals[-3+yyTop]).Tail.Next = (Linq.AQueryClause)yyVals[0+yyTop];
yyVal = yyVals[-3+yyTop];
}
-void case_1039()
-#line 7079 "cs-parser.jay"
+void case_1076()
+#line 7312 "cs-parser.jay"
{
yyVal = new Linq.OrderByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_1040()
-#line 7084 "cs-parser.jay"
+void case_1077()
+#line 7317 "cs-parser.jay"
{
yyVal = new Linq.OrderByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_1042()
-#line 7096 "cs-parser.jay"
+void case_1079()
+#line 7329 "cs-parser.jay"
{
yyVal = new Linq.ThenByAscending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_1043()
-#line 7101 "cs-parser.jay"
+void case_1080()
+#line 7334 "cs-parser.jay"
{
yyVal = new Linq.ThenByDescending ((Linq.QueryBlock) current_block, (Expression)yyVals[-1+yyTop]);
lbag.AddLocation (yyVal, GetLocation (yyVals[0+yyTop]));
}
-void case_1045()
-#line 7111 "cs-parser.jay"
+void case_1082()
+#line 7344 "cs-parser.jay"
{
/* query continuation block is not linked with query block but with block*/
/* before. This means each query can use same range variable names for*/
@@ -10233,8 +10533,8 @@ void case_1045()
linq_clause_blocks.Push ((Linq.QueryBlock) current_block);
}
-void case_1046()
-#line 7127 "cs-parser.jay"
+void case_1083()
+#line 7360 "cs-parser.jay"
{
var current_block = linq_clause_blocks.Pop ();
var lt = (LocatedToken) yyVals[-2+yyTop];
@@ -10244,8 +10544,8 @@ void case_1046()
};
}
-void case_1049()
-#line 7154 "cs-parser.jay"
+void case_1086()
+#line 7387 "cs-parser.jay"
{
current_container = current_type = new Class (current_container, new MemberName ("<InteractiveExpressionClass>"), Modifiers.PUBLIC, null);
@@ -10274,8 +10574,8 @@ void case_1049()
start_block (lexer.Location);
}
-void case_1050()
-#line 7182 "cs-parser.jay"
+void case_1087()
+#line 7415 "cs-parser.jay"
{
--lexer.parsing_block;
var method = (InteractiveMethod) oob_stack.Pop ();
@@ -10289,24 +10589,24 @@ void case_1050()
current_local_parameters = null;
}
-void case_1060()
-#line 7228 "cs-parser.jay"
+void case_1097()
+#line 7461 "cs-parser.jay"
{
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-1+yyTop];
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
yyVal = null;
}
-void case_1061()
-#line 7234 "cs-parser.jay"
+void case_1098()
+#line 7467 "cs-parser.jay"
{
module.DocumentationBuilder.ParsedBuiltinType = new TypeExpression (compiler.BuiltinTypes.Void, GetLocation (yyVals[-1+yyTop]));
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
yyVal = null;
}
-void case_1062()
-#line 7240 "cs-parser.jay"
+void case_1099()
+#line 7473 "cs-parser.jay"
{
module.DocumentationBuilder.ParsedBuiltinType = (TypeExpression)yyVals[-3+yyTop];
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[0+yyTop];
@@ -10314,15 +10614,15 @@ void case_1062()
yyVal = new MemberName (lt.Value);
}
-void case_1065()
-#line 7255 "cs-parser.jay"
+void case_1102()
+#line 7488 "cs-parser.jay"
{
module.DocumentationBuilder.ParsedParameters = (List<DocumentationParameter>)yyVals[-1+yyTop];
yyVal = new MemberName ((MemberName) yyVals[-6+yyTop], MemberCache.IndexerNameAlias, Location.Null);
}
-void case_1066()
-#line 7260 "cs-parser.jay"
+void case_1103()
+#line 7493 "cs-parser.jay"
{
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
@@ -10331,8 +10631,8 @@ void case_1066()
yyVal = null;
}
-void case_1067()
-#line 7268 "cs-parser.jay"
+void case_1104()
+#line 7501 "cs-parser.jay"
{
var p = (List<DocumentationParameter>)yyVals[0+yyTop] ?? new List<DocumentationParameter> (1);
p.Add (new DocumentationParameter ((FullNamedExpression) yyVals[-1+yyTop]));
@@ -10341,8 +10641,8 @@ void case_1067()
yyVal = null;
}
-void case_1068()
-#line 7276 "cs-parser.jay"
+void case_1105()
+#line 7509 "cs-parser.jay"
{
var p = (List<DocumentationParameter>)yyVals[0+yyTop];
module.DocumentationBuilder.ParsedParameters = p;
@@ -10350,24 +10650,24 @@ void case_1068()
yyVal = null;
}
-void case_1076()
-#line 7314 "cs-parser.jay"
+void case_1113()
+#line 7547 "cs-parser.jay"
{
var parameters = new List<DocumentationParameter> ();
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
yyVal = parameters;
}
-void case_1077()
-#line 7320 "cs-parser.jay"
+void case_1114()
+#line 7553 "cs-parser.jay"
{
var parameters = yyVals[-2+yyTop] as List<DocumentationParameter>;
parameters.Add ((DocumentationParameter) yyVals[0+yyTop]);
yyVal = parameters;
}
-void case_1078()
-#line 7329 "cs-parser.jay"
+void case_1115()
+#line 7562 "cs-parser.jay"
{
if (yyVals[-1+yyTop] != null)
yyVal = new DocumentationParameter ((Parameter.Modifier) yyVals[-1+yyTop], (FullNamedExpression) yyVals[0+yyTop]);
@@ -10379,165 +10679,171 @@ void case_1078()
static readonly short [] yyLhs = { -1,
0, 4, 0, 0, 1, 1, 1, 1, 2, 2,
11, 11, 12, 12, 13, 13, 14, 15, 15, 15,
- 19, 20, 17, 17, 22, 22, 22, 18, 18, 18,
- 23, 23, 24, 24, 7, 7, 6, 6, 21, 21,
- 8, 8, 25, 25, 25, 26, 26, 26, 26, 26,
- 9, 9, 10, 10, 34, 32, 37, 33, 33, 33,
- 33, 35, 35, 35, 36, 36, 41, 38, 39, 40,
- 40, 42, 42, 42, 42, 42, 43, 43, 43, 47,
- 44, 46, 49, 49, 49, 51, 51, 52, 52, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 67, 62, 72, 74, 77, 78, 79,
- 28, 28, 82, 54, 54, 83, 83, 84, 84, 85,
- 87, 81, 81, 86, 86, 92, 55, 96, 55, 55,
- 91, 99, 91, 93, 93, 100, 100, 101, 102, 101,
- 97, 97, 103, 103, 104, 105, 95, 95, 98, 98,
- 98, 108, 56, 111, 112, 106, 113, 114, 115, 106,
- 106, 106, 107, 107, 117, 117, 120, 118, 110, 110,
- 121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
- 122, 122, 125, 125, 125, 125, 128, 125, 126, 126,
- 129, 129, 130, 130, 130, 123, 123, 123, 131, 131,
- 131, 124, 133, 135, 136, 138, 57, 139, 57, 137,
- 141, 137, 140, 140, 143, 145, 59, 144, 144, 134,
- 134, 134, 134, 134, 149, 146, 150, 147, 148, 148,
- 148, 151, 152, 153, 155, 29, 29, 154, 154, 156,
- 156, 157, 157, 157, 157, 157, 157, 157, 157, 157,
- 159, 60, 160, 160, 163, 158, 158, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 165,
- 164, 166, 164, 164, 164, 61, 169, 171, 167, 168,
- 168, 170, 170, 175, 173, 176, 173, 173, 173, 177,
- 63, 179, 58, 182, 183, 58, 58, 178, 185, 178,
- 180, 180, 186, 186, 187, 188, 187, 189, 184, 181,
- 181, 181, 181, 181, 193, 190, 194, 191, 192, 192,
- 64, 65, 196, 198, 199, 30, 195, 195, 195, 197,
- 197, 197, 200, 200, 201, 202, 201, 201, 201, 203,
- 204, 205, 31, 206, 206, 16, 16, 16, 207, 207,
- 207, 211, 211, 209, 209, 209, 212, 212, 214, 71,
- 132, 109, 109, 142, 142, 215, 215, 215, 213, 213,
- 216, 216, 217, 217, 219, 219, 90, 80, 80, 94,
- 94, 127, 127, 161, 161, 221, 221, 221, 220, 224,
- 224, 224, 226, 226, 227, 225, 225, 225, 225, 225,
- 225, 225, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 229, 229, 229, 229, 229, 229, 229, 229, 229,
- 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
- 229, 230, 230, 230, 231, 231, 231, 251, 251, 252,
- 252, 253, 253, 233, 233, 250, 250, 250, 250, 250,
- 250, 250, 250, 250, 250, 250, 250, 235, 235, 235,
- 255, 255, 256, 256, 257, 257, 259, 259, 259, 260,
- 260, 260, 260, 260, 260, 260, 261, 261, 174, 174,
- 254, 254, 254, 254, 254, 266, 266, 265, 265, 267,
- 267, 267, 267, 268, 236, 236, 236, 236, 264, 264,
- 269, 269, 270, 270, 237, 238, 238, 239, 240, 241,
- 241, 232, 232, 232, 232, 232, 275, 271, 242, 242,
- 276, 276, 277, 277, 278, 278, 278, 278, 279, 279,
- 279, 279, 272, 272, 222, 222, 274, 274, 280, 280,
- 273, 273, 89, 89, 281, 281, 243, 282, 282, 210,
- 208, 244, 244, 245, 245, 246, 246, 247, 284, 248,
- 285, 248, 283, 283, 287, 286, 234, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 289, 289, 289, 290,
- 290, 290, 290, 290, 290, 290, 291, 291, 291, 291,
- 291, 291, 291, 291, 291, 291, 291, 292, 292, 292,
- 292, 292, 294, 294, 294, 294, 295, 295, 295, 295,
- 295, 296, 296, 296, 296, 296, 296, 296, 296, 296,
- 297, 297, 297, 297, 297, 298, 298, 298, 299, 299,
- 299, 300, 300, 300, 301, 301, 301, 302, 302, 302,
- 303, 303, 304, 304, 304, 304, 304, 305, 305, 305,
- 305, 305, 305, 305, 305, 305, 305, 305, 306, 306,
- 307, 307, 307, 307, 308, 308, 310, 309, 309, 309,
- 50, 50, 312, 311, 313, 311, 314, 311, 315, 316,
- 311, 317, 318, 311, 45, 45, 262, 262, 262, 262,
- 249, 249, 249, 88, 320, 73, 73, 321, 322, 322,
- 322, 322, 324, 322, 325, 326, 327, 328, 27, 70,
- 70, 69, 69, 116, 116, 329, 329, 329, 329, 329,
- 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
- 75, 75, 323, 323, 76, 76, 330, 330, 331, 331,
- 332, 332, 333, 333, 333, 333, 218, 218, 334, 334,
- 335, 119, 68, 68, 336, 172, 172, 338, 337, 66,
- 66, 339, 339, 340, 340, 340, 340, 340, 344, 344,
- 345, 345, 345, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 346, 346, 346, 346,
- 346, 346, 346, 346, 346, 346, 346, 346, 346, 360,
- 360, 360, 360, 347, 361, 343, 362, 362, 363, 363,
- 363, 363, 223, 223, 364, 48, 48, 366, 341, 370,
- 341, 368, 368, 365, 365, 365, 367, 367, 374, 374,
- 373, 373, 375, 375, 369, 369, 371, 371, 376, 376,
- 377, 372, 372, 372, 348, 348, 348, 359, 359, 378,
- 379, 379, 349, 349, 380, 380, 380, 383, 381, 381,
- 382, 382, 384, 384, 384, 385, 386, 386, 387, 387,
- 387, 350, 350, 350, 350, 388, 388, 389, 389, 389,
- 393, 390, 396, 392, 392, 399, 395, 395, 398, 398,
- 394, 394, 402, 401, 401, 397, 397, 400, 400, 404,
- 403, 403, 391, 391, 405, 391, 391, 391, 351, 351,
- 351, 351, 351, 351, 406, 407, 407, 408, 408, 408,
- 409, 409, 409, 410, 410, 410, 411, 411, 411, 412,
- 412, 352, 352, 352, 352, 413, 413, 293, 293, 414,
- 416, 414, 414, 414, 415, 415, 353, 354, 417, 357,
- 355, 355, 419, 420, 358, 422, 423, 356, 356, 356,
- 421, 421, 418, 418, 319, 319, 319, 319, 424, 424,
- 426, 426, 428, 427, 429, 427, 425, 425, 425, 425,
- 425, 433, 431, 434, 436, 431, 435, 435, 430, 430,
- 437, 437, 437, 437, 437, 442, 438, 443, 439, 444,
- 445, 446, 440, 448, 449, 450, 440, 447, 447, 452,
- 441, 451, 455, 451, 454, 457, 454, 453, 453, 453,
- 456, 456, 456, 432, 458, 432, 3, 3, 459, 3,
- 3, 460, 460, 263, 263, 258, 258, 5, 461, 461,
- 461, 461, 461, 465, 461, 461, 461, 461, 462, 462,
- 463, 466, 463, 464, 464, 467, 467, 468,
+ 16, 16, 20, 21, 18, 18, 23, 23, 23, 19,
+ 19, 19, 24, 24, 25, 25, 7, 7, 6, 6,
+ 22, 22, 8, 8, 26, 26, 26, 27, 27, 27,
+ 27, 27, 9, 9, 10, 10, 35, 33, 38, 34,
+ 34, 34, 34, 36, 36, 36, 37, 37, 42, 39,
+ 40, 41, 41, 43, 43, 43, 43, 43, 44, 44,
+ 44, 48, 45, 47, 51, 50, 50, 50, 53, 53,
+ 54, 54, 55, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 55, 55, 55, 69, 64, 74, 76,
+ 79, 80, 81, 29, 29, 84, 56, 56, 85, 85,
+ 86, 86, 87, 89, 83, 83, 88, 88, 94, 57,
+ 98, 57, 57, 93, 101, 93, 95, 95, 102, 102,
+ 103, 104, 103, 99, 99, 105, 105, 106, 107, 97,
+ 97, 100, 100, 100, 110, 58, 113, 114, 108, 115,
+ 116, 117, 108, 108, 108, 109, 109, 119, 119, 122,
+ 120, 112, 112, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 124, 124, 127, 127, 127, 127, 130,
+ 127, 128, 128, 131, 131, 132, 132, 132, 125, 125,
+ 125, 133, 133, 133, 126, 135, 137, 138, 140, 59,
+ 141, 59, 139, 143, 139, 142, 142, 145, 147, 61,
+ 146, 146, 136, 136, 136, 136, 136, 151, 148, 152,
+ 149, 150, 150, 150, 153, 154, 155, 157, 30, 30,
+ 156, 156, 158, 158, 159, 159, 159, 159, 159, 159,
+ 159, 159, 159, 161, 62, 162, 162, 165, 160, 160,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
+ 164, 164, 164, 167, 166, 168, 166, 166, 166, 63,
+ 171, 173, 169, 170, 170, 172, 172, 177, 175, 178,
+ 175, 175, 175, 179, 65, 181, 60, 184, 185, 60,
+ 60, 180, 187, 180, 182, 182, 188, 188, 189, 190,
+ 189, 191, 186, 183, 183, 183, 183, 183, 195, 192,
+ 196, 193, 194, 194, 66, 67, 198, 200, 201, 31,
+ 197, 197, 197, 199, 199, 199, 202, 202, 203, 204,
+ 203, 203, 203, 205, 206, 207, 32, 208, 208, 17,
+ 17, 17, 209, 209, 209, 213, 213, 211, 211, 211,
+ 214, 214, 216, 73, 134, 111, 111, 144, 144, 217,
+ 217, 217, 215, 215, 218, 218, 219, 219, 221, 221,
+ 92, 82, 82, 96, 96, 129, 129, 163, 163, 223,
+ 223, 223, 222, 226, 226, 226, 228, 228, 229, 227,
+ 227, 227, 227, 227, 227, 227, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 231, 231, 231, 231, 231,
+ 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
+ 231, 231, 231, 231, 231, 231, 232, 232, 232, 233,
+ 233, 233, 254, 254, 252, 252, 255, 255, 256, 256,
+ 257, 256, 258, 256, 259, 259, 260, 260, 235, 235,
+ 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+ 253, 253, 237, 237, 237, 262, 262, 263, 263, 264,
+ 264, 266, 266, 266, 267, 267, 267, 267, 267, 267,
+ 267, 268, 268, 176, 176, 261, 261, 261, 261, 261,
+ 273, 273, 272, 272, 274, 274, 274, 274, 274, 274,
+ 276, 276, 276, 275, 238, 238, 238, 238, 271, 271,
+ 278, 278, 279, 279, 239, 240, 240, 241, 242, 243,
+ 243, 234, 234, 234, 234, 234, 284, 280, 244, 244,
+ 285, 285, 286, 286, 287, 287, 287, 287, 288, 288,
+ 288, 288, 281, 281, 224, 224, 283, 283, 289, 289,
+ 282, 282, 91, 91, 290, 290, 245, 291, 291, 212,
+ 210, 246, 246, 247, 247, 248, 248, 249, 293, 250,
+ 294, 250, 292, 292, 296, 295, 236, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 298, 298, 298, 298,
+ 298, 298, 298, 298, 298, 298, 298, 298, 298, 299,
+ 299, 299, 299, 299, 299, 299, 300, 300, 300, 300,
+ 300, 300, 300, 300, 300, 300, 300, 300, 301, 303,
+ 303, 303, 303, 303, 303, 303, 303, 303, 304, 305,
+ 307, 307, 308, 309, 309, 306, 306, 310, 310, 311,
+ 311, 312, 312, 312, 312, 312, 313, 313, 313, 313,
+ 313, 313, 313, 313, 313, 314, 314, 314, 314, 314,
+ 315, 315, 315, 316, 316, 316, 317, 317, 317, 318,
+ 318, 318, 319, 319, 319, 320, 320, 321, 321, 321,
+ 321, 321, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 323, 323, 324, 324, 324, 324, 325,
+ 325, 327, 326, 326, 326, 52, 52, 329, 328, 330,
+ 328, 331, 328, 332, 333, 328, 334, 335, 328, 46,
+ 46, 269, 269, 269, 269, 251, 251, 251, 90, 337,
+ 75, 75, 338, 339, 339, 339, 339, 341, 339, 342,
+ 343, 344, 345, 28, 72, 72, 71, 71, 118, 118,
+ 346, 346, 346, 346, 346, 346, 346, 346, 346, 346,
+ 346, 346, 346, 346, 346, 77, 77, 340, 340, 78,
+ 78, 347, 347, 348, 348, 349, 349, 350, 350, 350,
+ 350, 220, 220, 351, 351, 352, 121, 70, 70, 353,
+ 174, 174, 355, 354, 68, 68, 356, 356, 357, 357,
+ 357, 357, 357, 361, 361, 362, 362, 362, 359, 359,
+ 359, 359, 359, 359, 359, 359, 359, 359, 359, 359,
+ 359, 363, 363, 363, 363, 363, 363, 363, 363, 363,
+ 363, 363, 363, 363, 377, 377, 377, 377, 364, 378,
+ 360, 277, 277, 379, 379, 379, 379, 225, 225, 380,
+ 49, 49, 382, 358, 386, 358, 384, 384, 381, 381,
+ 381, 383, 383, 390, 390, 389, 389, 391, 391, 385,
+ 385, 387, 387, 392, 392, 393, 388, 388, 388, 365,
+ 365, 365, 376, 376, 394, 395, 395, 366, 366, 396,
+ 396, 396, 399, 397, 397, 398, 398, 400, 400, 400,
+ 401, 402, 402, 403, 403, 403, 367, 367, 367, 367,
+ 404, 404, 405, 405, 405, 409, 406, 412, 408, 408,
+ 415, 411, 411, 414, 414, 410, 410, 418, 417, 417,
+ 413, 413, 416, 416, 420, 419, 419, 407, 407, 421,
+ 407, 407, 407, 368, 368, 368, 368, 368, 368, 422,
+ 423, 423, 424, 424, 424, 425, 425, 425, 426, 426,
+ 426, 427, 427, 427, 428, 428, 369, 369, 369, 369,
+ 429, 429, 302, 302, 430, 433, 430, 430, 432, 432,
+ 431, 434, 431, 370, 371, 435, 374, 372, 372, 437,
+ 438, 375, 440, 441, 373, 373, 373, 439, 439, 436,
+ 436, 336, 336, 336, 336, 442, 442, 444, 444, 446,
+ 445, 447, 445, 443, 443, 443, 443, 443, 451, 449,
+ 452, 454, 449, 453, 453, 448, 448, 455, 455, 455,
+ 455, 455, 460, 456, 461, 457, 462, 463, 464, 458,
+ 466, 467, 468, 458, 465, 465, 470, 459, 469, 473,
+ 469, 472, 475, 472, 471, 471, 471, 474, 474, 474,
+ 450, 476, 450, 3, 3, 477, 3, 3, 478, 478,
+ 270, 270, 265, 265, 5, 479, 479, 479, 479, 479,
+ 483, 479, 479, 479, 479, 480, 480, 481, 484, 481,
+ 482, 482, 485, 485, 486,
};
static readonly short [] yyLen = { 2,
2, 0, 3, 1, 2, 4, 3, 1, 0, 1,
- 1, 2, 4, 2, 1, 2, 1, 3, 5, 2,
- 0, 0, 11, 3, 0, 1, 1, 1, 3, 1,
- 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,
- 1, 2, 1, 1, 2, 1, 1, 1, 1, 1,
- 0, 1, 1, 2, 0, 3, 0, 6, 3, 2,
- 1, 1, 1, 1, 1, 3, 0, 3, 1, 0,
- 3, 0, 1, 1, 3, 3, 1, 1, 1, 0,
- 4, 4, 0, 1, 1, 0, 1, 1, 2, 1,
+ 1, 2, 4, 2, 1, 2, 1, 4, 6, 2,
+ 0, 1, 0, 0, 11, 3, 0, 1, 1, 1,
+ 3, 1, 0, 1, 0, 1, 0, 1, 0, 1,
+ 0, 1, 1, 2, 1, 1, 2, 1, 1, 1,
+ 1, 1, 0, 1, 1, 2, 0, 3, 0, 6,
+ 3, 2, 1, 1, 1, 1, 1, 3, 0, 3,
+ 1, 0, 3, 0, 1, 1, 3, 3, 1, 1,
+ 1, 0, 4, 4, 1, 0, 1, 1, 0, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 4, 0, 0,
+ 0, 0, 0, 17, 5, 0, 9, 5, 0, 1,
+ 1, 2, 3, 0, 3, 1, 1, 1, 0, 8,
+ 0, 9, 6, 0, 0, 3, 0, 1, 1, 2,
+ 2, 0, 5, 0, 1, 1, 2, 3, 0, 4,
+ 2, 1, 1, 1, 0, 3, 0, 0, 10, 0,
+ 0, 0, 12, 8, 5, 1, 1, 1, 1, 0,
+ 4, 0, 1, 1, 3, 3, 3, 5, 3, 5,
+ 1, 1, 1, 1, 3, 4, 6, 2, 4, 0,
+ 7, 0, 1, 1, 2, 1, 1, 1, 4, 6,
+ 4, 1, 2, 2, 1, 0, 0, 0, 0, 12,
+ 0, 6, 0, 0, 4, 1, 1, 0, 0, 10,
+ 3, 1, 1, 2, 1, 2, 1, 0, 5, 0,
+ 5, 1, 1, 1, 0, 0, 0, 0, 15, 5,
+ 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 5, 1, 1, 0, 7, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 4, 0, 0, 0, 0, 0,
- 17, 5, 0, 9, 5, 0, 1, 1, 2, 3,
- 0, 3, 1, 1, 1, 0, 8, 0, 9, 6,
- 0, 0, 3, 0, 1, 1, 2, 2, 0, 5,
- 0, 1, 1, 2, 3, 0, 4, 2, 1, 1,
- 1, 0, 3, 0, 0, 10, 0, 0, 0, 12,
- 8, 5, 1, 1, 1, 1, 0, 4, 0, 1,
- 1, 3, 3, 3, 5, 3, 5, 1, 1, 1,
- 1, 3, 4, 6, 2, 4, 0, 7, 0, 1,
- 1, 2, 1, 1, 1, 4, 6, 4, 1, 2,
- 2, 1, 0, 0, 0, 0, 12, 0, 6, 0,
- 0, 4, 1, 1, 0, 0, 10, 3, 1, 1,
- 2, 1, 2, 1, 0, 5, 0, 5, 1, 1,
- 1, 0, 0, 0, 0, 15, 5, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 5, 1, 1, 0, 7, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 7, 0, 7, 2, 2, 2, 0, 0, 9, 1,
- 1, 0, 1, 0, 6, 0, 6, 2, 1, 0,
- 8, 0, 9, 0, 0, 10, 5, 0, 0, 3,
- 0, 1, 1, 2, 2, 0, 5, 0, 2, 2,
- 2, 1, 1, 1, 0, 5, 0, 5, 1, 1,
- 2, 4, 0, 0, 0, 12, 0, 2, 2, 0,
- 1, 2, 1, 3, 2, 0, 5, 3, 1, 0,
- 0, 0, 13, 0, 1, 1, 3, 3, 1, 4,
- 4, 2, 2, 0, 3, 2, 1, 3, 0, 3,
- 1, 1, 3, 1, 2, 3, 4, 4, 0, 3,
- 1, 3, 3, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 1, 1, 2,
- 2, 2, 1, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 7, 0, 7, 2, 2, 2,
+ 0, 0, 9, 1, 1, 0, 1, 0, 6, 0,
+ 6, 2, 1, 0, 8, 0, 9, 0, 0, 10,
+ 5, 0, 0, 3, 0, 1, 1, 2, 2, 0,
+ 5, 0, 2, 2, 2, 1, 1, 1, 0, 5,
+ 0, 5, 1, 1, 2, 4, 0, 0, 0, 12,
+ 0, 2, 2, 0, 1, 2, 1, 3, 2, 0,
+ 5, 3, 1, 0, 0, 0, 13, 0, 1, 1,
+ 3, 3, 1, 4, 4, 2, 2, 0, 3, 2,
+ 1, 3, 0, 3, 1, 1, 3, 1, 2, 3,
+ 4, 4, 0, 3, 1, 3, 3, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 2, 1, 1, 2, 2, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 3, 3, 4, 4, 5, 4, 4,
- 4, 3, 3, 3, 4, 3, 4, 4, 4, 3,
- 0, 1, 3, 4, 0, 1, 1, 3, 2, 3,
- 3, 1, 2, 3, 5, 2, 1, 1, 0, 1,
- 1, 3, 3, 3, 2, 1, 1, 1, 1, 2,
- 2, 4, 3, 1, 4, 5, 4, 3, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
+ 1, 1, 1, 1, 3, 1, 1, 3, 1, 3,
+ 0, 4, 0, 6, 1, 1, 1, 1, 3, 3,
+ 4, 4, 5, 4, 4, 4, 3, 3, 3, 4,
+ 3, 4, 4, 4, 3, 0, 1, 3, 4, 0,
+ 1, 1, 3, 2, 3, 3, 1, 2, 3, 5,
+ 2, 1, 1, 0, 1, 1, 3, 3, 3, 2,
+ 1, 1, 1, 1, 2, 2, 2, 2, 4, 3,
+ 3, 2, 4, 1, 4, 5, 4, 3, 1, 3,
1, 3, 1, 1, 1, 4, 3, 2, 2, 6,
3, 7, 4, 3, 7, 3, 0, 2, 4, 3,
1, 2, 0, 1, 1, 3, 1, 2, 3, 1,
@@ -10548,1526 +10854,1600 @@ void case_1078()
4, 2, 2, 2, 4, 2, 1, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
3, 3, 3, 3, 3, 3, 1, 3, 3, 3,
- 3, 3, 4, 3, 3, 3, 3, 1, 2, 1,
- 2, 2, 2, 2, 1, 1, 1, 3, 3, 3,
- 3, 1, 3, 3, 3, 3, 3, 3, 3, 3,
- 1, 3, 3, 3, 3, 1, 3, 3, 1, 3,
- 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
- 1, 3, 1, 5, 4, 5, 5, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 1, 3,
- 3, 2, 1, 1, 0, 1, 0, 2, 1, 1,
- 1, 1, 0, 4, 0, 4, 0, 5, 0, 0,
- 7, 0, 0, 8, 1, 1, 1, 1, 1, 1,
- 6, 4, 4, 1, 1, 0, 1, 3, 0, 1,
- 1, 2, 0, 6, 0, 0, 0, 0, 15, 0,
- 1, 0, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 1, 2, 3, 0, 1, 1, 2, 4, 3,
- 1, 3, 1, 3, 1, 1, 0, 1, 1, 1,
- 0, 4, 1, 1, 0, 4, 1, 0, 4, 0,
- 1, 1, 2, 1, 1, 1, 2, 1, 1, 2,
+ 3, 3, 4, 3, 3, 3, 3, 3, 1, 1,
+ 2, 2, 1, 1, 4, 1, 1, 1, 4, 4,
+ 1, 3, 3, 1, 2, 0, 1, 1, 3, 1,
+ 3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
+ 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
+ 1, 3, 3, 1, 3, 3, 1, 3, 3, 1,
+ 3, 3, 1, 3, 3, 1, 3, 1, 5, 4,
+ 5, 5, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 1, 3, 3, 2, 1, 1, 0,
+ 1, 0, 2, 1, 1, 1, 1, 0, 4, 0,
+ 4, 0, 5, 0, 0, 7, 0, 0, 8, 1,
+ 1, 1, 1, 1, 1, 6, 4, 4, 1, 1,
+ 0, 1, 3, 0, 1, 1, 2, 0, 6, 0,
+ 0, 0, 0, 15, 0, 1, 0, 1, 1, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 0, 1, 2, 3, 0,
+ 1, 1, 2, 4, 3, 1, 3, 1, 3, 1,
+ 1, 0, 1, 1, 1, 0, 4, 1, 1, 0,
+ 4, 1, 0, 4, 0, 1, 1, 2, 1, 1,
+ 1, 2, 1, 1, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 4, 1, 2, 2, 2,
- 1, 1, 1, 2, 1, 1, 1, 0, 6, 0,
- 7, 1, 1, 0, 2, 1, 0, 1, 0, 1,
- 1, 2, 2, 4, 0, 2, 0, 1, 1, 2,
- 4, 1, 5, 2, 2, 2, 2, 2, 2, 1,
- 1, 1, 1, 1, 5, 7, 4, 0, 8, 4,
- 0, 1, 1, 2, 1, 2, 1, 2, 3, 3,
- 1, 1, 1, 1, 1, 5, 4, 7, 3, 6,
- 0, 4, 0, 4, 2, 0, 4, 2, 3, 1,
- 0, 1, 0, 5, 1, 0, 1, 0, 1, 1,
- 1, 3, 4, 5, 0, 9, 5, 4, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 3, 4, 3,
- 3, 3, 2, 3, 3, 2, 4, 4, 3, 0,
- 1, 3, 4, 5, 3, 1, 2, 0, 1, 3,
- 0, 8, 3, 6, 0, 4, 2, 2, 0, 3,
- 5, 4, 0, 0, 10, 0, 0, 9, 5, 4,
- 2, 1, 0, 2, 2, 2, 2, 2, 4, 5,
- 4, 5, 0, 5, 0, 6, 3, 2, 2, 2,
- 1, 0, 3, 0, 0, 5, 2, 1, 1, 2,
- 1, 1, 1, 1, 1, 0, 5, 0, 3, 0,
- 0, 0, 12, 0, 0, 0, 13, 0, 2, 0,
- 3, 1, 0, 4, 1, 0, 4, 1, 2, 2,
- 1, 2, 2, 0, 0, 4, 2, 3, 0, 4,
- 2, 2, 3, 0, 1, 1, 1, 2, 2, 2,
- 2, 4, 3, 0, 7, 4, 4, 3, 1, 3,
- 0, 0, 4, 0, 1, 1, 3, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 4, 1, 2, 2, 2, 1, 1, 1, 2, 1,
+ 1, 1, 0, 6, 0, 7, 1, 1, 0, 2,
+ 1, 0, 1, 0, 1, 1, 2, 2, 4, 0,
+ 2, 0, 1, 1, 2, 4, 1, 5, 2, 2,
+ 2, 2, 2, 2, 1, 1, 1, 1, 1, 5,
+ 7, 4, 0, 8, 4, 0, 1, 1, 2, 1,
+ 2, 1, 2, 3, 3, 1, 1, 1, 1, 1,
+ 5, 4, 7, 3, 6, 0, 4, 0, 4, 2,
+ 0, 4, 2, 3, 1, 0, 1, 0, 5, 1,
+ 0, 1, 0, 1, 1, 1, 3, 4, 5, 0,
+ 9, 5, 4, 1, 1, 1, 1, 1, 1, 2,
+ 2, 2, 3, 4, 3, 3, 3, 2, 3, 3,
+ 2, 4, 4, 3, 0, 1, 3, 4, 5, 3,
+ 1, 2, 0, 1, 3, 0, 7, 3, 2, 1,
+ 0, 0, 5, 2, 2, 0, 3, 5, 4, 0,
+ 0, 10, 0, 0, 9, 5, 4, 2, 1, 0,
+ 2, 2, 2, 2, 2, 4, 5, 4, 5, 0,
+ 5, 0, 6, 3, 2, 2, 2, 1, 0, 3,
+ 0, 0, 5, 2, 1, 1, 2, 1, 1, 1,
+ 1, 1, 0, 5, 0, 3, 0, 0, 0, 12,
+ 0, 0, 0, 13, 0, 2, 0, 3, 1, 0,
+ 4, 1, 0, 4, 1, 2, 2, 1, 2, 2,
+ 0, 0, 4, 2, 3, 0, 4, 2, 2, 3,
+ 0, 1, 1, 1, 2, 2, 2, 2, 4, 3,
+ 0, 7, 4, 4, 3, 1, 3, 0, 0, 4,
+ 0, 1, 1, 3, 2,
};
static readonly short [] yyDefRed = { 0,
8, 0, 0, 0, 0, 0, 0, 0, 2, 4,
- 0, 0, 11, 14, 0, 1047, 0, 0, 1051, 0,
- 0, 15, 17, 408, 414, 421, 409, 411, 0, 410,
- 0, 417, 419, 406, 0, 413, 415, 407, 418, 420,
- 416, 0, 369, 1069, 0, 412, 1058, 0, 10, 1,
- 0, 0, 0, 12, 0, 872, 0, 0, 0, 0,
- 0, 0, 0, 0, 449, 0, 0, 0, 0, 0,
- 0, 0, 447, 0, 0, 0, 515, 0, 448, 0,
- 0, 0, 969, 0, 0, 0, 710, 0, 0, 0,
- 0, 0, 0, 0, 771, 0, 824, 0, 0, 0,
- 0, 0, 0, 0, 0, 446, 0, 699, 0, 871,
- 0, 807, 0, 442, 832, 831, 0, 0, 0, 423,
- 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
- 434, 435, 436, 437, 438, 439, 440, 441, 444, 445,
- 706, 587, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 707, 705, 708, 709, 791, 793,
- 0, 789, 792, 808, 810, 811, 812, 813, 814, 815,
- 816, 817, 818, 819, 809, 0, 0, 0, 873, 874,
- 892, 893, 894, 895, 929, 930, 931, 932, 933, 934,
- 0, 0, 0, 20, 0, 0, 356, 0, 359, 1055,
- 16, 1048, 0, 0, 263, 262, 259, 264, 265, 258,
- 277, 276, 269, 270, 266, 268, 267, 271, 260, 261,
- 272, 273, 279, 278, 274, 275, 0, 1072, 1061, 0,
- 0, 1060, 0, 1059, 3, 55, 0, 0, 0, 44,
- 41, 43, 46, 47, 48, 49, 50, 53, 13, 0,
- 0, 0, 935, 565, 450, 451, 967, 0, 0, 0,
- 0, 0, 0, 0, 0, 937, 936, 0, 575, 569,
- 574, 823, 870, 794, 821, 820, 822, 795, 796, 797,
- 798, 799, 800, 801, 802, 803, 804, 805, 806, 0,
- 0, 0, 901, 0, 0, 0, 837, 836, 0, 0,
- 0, 0, 0, 0, 0, 0, 943, 0, 0, 0,
- 0, 422, 0, 0, 0, 946, 0, 0, 0, 0,
- 567, 968, 0, 0, 0, 835, 402, 0, 0, 0,
- 0, 0, 0, 388, 389, 0, 398, 0, 0, 0,
- 0, 0, 0, 0, 702, 0, 586, 0, 0, 695,
- 0, 0, 582, 0, 0, 584, 580, 594, 588, 595,
- 589, 583, 579, 599, 593, 598, 592, 596, 590, 597,
- 591, 693, 561, 0, 560, 443, 362, 363, 0, 0,
- 0, 0, 0, 825, 0, 355, 0, 400, 401, 0,
- 0, 518, 519, 0, 0, 0, 829, 830, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1050, 790, 838, 828, 0, 868, 869, 1001, 1018,
- 0, 0, 1002, 1004, 0, 1030, 987, 985, 1011, 0,
- 0, 1009, 1012, 1013, 1014, 1015, 988, 986, 0, 0,
- 0, 0, 18, 0, 0, 0, 1068, 0, 0, 370,
- 0, 0, 1070, 0, 0, 42, 741, 747, 739, 0,
- 736, 746, 740, 738, 737, 744, 742, 743, 749, 745,
- 748, 750, 0, 0, 734, 45, 54, 517, 0, 513,
- 514, 0, 0, 511, 0, 840, 0, 0, 0, 899,
- 0, 867, 865, 866, 0, 0, 0, 714, 0, 940,
- 938, 715, 0, 0, 542, 0, 0, 530, 537, 0,
- 0, 0, 531, 0, 0, 547, 549, 0, 526, 0,
- 0, 0, 0, 0, 521, 0, 524, 528, 391, 390,
- 942, 941, 0, 0, 945, 944, 955, 0, 0, 0,
- 956, 559, 0, 385, 558, 0, 0, 970, 0, 0,
- 834, 0, 396, 397, 0, 0, 395, 0, 0, 0,
- 600, 0, 0, 571, 0, 697, 617, 616, 0, 0,
- 788, 0, 0, 0, 782, 784, 785, 786, 454, 455,
- 0, 366, 367, 0, 194, 193, 195, 0, 684, 0,
- 0, 0, 392, 0, 679, 0, 0, 949, 0, 0,
- 0, 462, 463, 0, 466, 0, 0, 0, 0, 464,
- 0, 0, 508, 0, 470, 0, 0, 0, 0, 496,
- 499, 0, 0, 491, 498, 497, 668, 669, 670, 671,
- 672, 673, 674, 675, 676, 678, 677, 604, 601, 606,
- 603, 605, 602, 614, 612, 615, 0, 0, 626, 625,
- 0, 0, 0, 0, 610, 0, 611, 0, 630, 0,
- 0, 631, 0, 637, 0, 638, 0, 639, 0, 640,
- 0, 644, 0, 645, 0, 648, 0, 651, 0, 654,
- 0, 657, 0, 660, 0, 662, 0, 0, 546, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1000, 999,
- 0, 1010, 0, 998, 0, 0, 357, 358, 1066, 1067,
- 0, 0, 191, 0, 0, 1076, 384, 0, 0, 0,
- 381, 1062, 1064, 61, 63, 64, 0, 0, 56, 0,
- 0, 65, 67, 30, 28, 0, 0, 0, 731, 0,
- 735, 460, 0, 516, 0, 564, 0, 577, 180, 202,
- 0, 0, 0, 170, 0, 0, 0, 181, 570, 0,
- 973, 0, 921, 902, 0, 912, 0, 923, 0, 939,
- 877, 0, 972, 0, 0, 529, 0, 538, 548, 550,
- 0, 0, 0, 0, 482, 0, 0, 477, 0, 0,
- 692, 691, 509, 0, 552, 523, 0, 0, 151, 553,
- 149, 150, 555, 0, 563, 562, 880, 0, 0, 0,
- 0, 953, 0, 957, 557, 566, 980, 0, 976, 897,
- 0, 991, 0, 989, 0, 0, 712, 713, 0, 0,
- 0, 690, 689, 696, 0, 461, 787, 773, 774, 772,
- 783, 694, 0, 365, 682, 0, 0, 0, 585, 581,
- 948, 947, 826, 467, 459, 0, 0, 465, 456, 457,
- 568, 507, 505, 504, 501, 500, 0, 495, 452, 453,
- 468, 469, 0, 621, 622, 623, 624, 959, 613, 619,
- 665, 0, 846, 0, 0, 1019, 993, 0, 1020, 0,
- 1003, 1005, 1016, 0, 1031, 0, 997, 1045, 19, 360,
- 361, 1078, 192, 1073, 0, 770, 769, 0, 768, 0,
- 380, 0, 60, 57, 0, 0, 0, 0, 0, 0,
- 387, 0, 725, 0, 0, 85, 84, 0, 512, 0,
- 0, 0, 0, 0, 185, 576, 0, 0, 0, 0,
- 0, 913, 905, 903, 0, 924, 0, 0, 971, 539,
- 536, 0, 486, 0, 0, 0, 1056, 1057, 473, 479,
- 0, 483, 0, 0, 0, 0, 0, 0, 878, 0,
- 963, 0, 960, 954, 979, 0, 896, 992, 990, 0,
- 572, 0, 698, 688, 368, 681, 680, 700, 458, 506,
- 503, 0, 494, 493, 492, 666, 667, 664, 0, 862,
- 845, 0, 0, 0, 851, 0, 995, 0, 1024, 0,
- 0, 1039, 1040, 1033, 0, 1077, 383, 382, 0, 0,
- 66, 59, 0, 68, 29, 22, 0, 0, 333, 0,
- 237, 0, 112, 0, 82, 856, 124, 125, 0, 0,
- 0, 859, 200, 201, 0, 0, 0, 0, 173, 182,
- 174, 176, 900, 0, 0, 0, 0, 0, 922, 0,
- 0, 487, 488, 481, 484, 480, 0, 474, 478, 0,
- 544, 0, 510, 520, 472, 556, 554, 0, 0, 0,
- 982, 0, 0, 711, 703, 0, 502, 0, 0, 843,
- 842, 839, 852, 994, 0, 0, 0, 1008, 0, 1006,
- 1017, 0, 1046, 1065, 0, 79, 0, 0, 73, 74,
- 77, 78, 0, 350, 339, 338, 0, 726, 233, 107,
- 0, 841, 860, 186, 0, 198, 0, 0, 0, 898,
- 984, 0, 0, 0, 0, 904, 0, 925, 876, 0,
- 525, 522, 885, 0, 891, 0, 0, 883, 0, 887,
- 966, 0, 981, 977, 0, 701, 0, 0, 996, 1021,
- 0, 1007, 0, 0, 1035, 0, 80, 71, 0, 0,
- 0, 334, 0, 0, 0, 0, 0, 187, 0, 177,
- 175, 974, 914, 908, 906, 0, 485, 0, 879, 884,
- 0, 888, 964, 0, 0, 704, 0, 854, 0, 1025,
- 1042, 1043, 1036, 58, 0, 75, 76, 0, 0, 0,
- 0, 0, 0, 0, 720, 0, 752, 0, 717, 861,
- 184, 0, 197, 0, 0, 926, 890, 889, 0, 978,
- 863, 0, 0, 0, 81, 0, 0, 351, 0, 0,
- 349, 335, 0, 343, 0, 405, 0, 403, 0, 0,
- 727, 0, 757, 234, 0, 188, 975, 910, 907, 0,
- 0, 919, 775, 777, 962, 1022, 0, 1037, 0, 0,
- 0, 331, 0, 0, 718, 754, 0, 723, 0, 0,
- 758, 0, 108, 0, 0, 0, 1026, 27, 26, 23,
- 352, 348, 0, 0, 344, 404, 0, 760, 0, 0,
- 0, 0, 909, 0, 0, 0, 0, 0, 32, 336,
- 0, 765, 0, 766, 763, 0, 761, 103, 104, 0,
- 100, 0, 0, 88, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 101, 102, 152, 0, 0, 250,
- 242, 243, 244, 245, 246, 247, 248, 249, 0, 0,
- 240, 109, 776, 0, 1023, 0, 353, 347, 724, 0,
- 0, 0, 0, 728, 89, 0, 291, 286, 290, 0,
- 235, 241, 0, 1029, 1027, 764, 762, 0, 0, 0,
- 0, 0, 0, 0, 0, 300, 0, 0, 251, 0,
- 0, 257, 0, 167, 166, 153, 163, 164, 165, 0,
- 0, 0, 105, 0, 0, 285, 0, 0, 284, 0,
- 157, 0, 0, 374, 332, 0, 372, 0, 0, 0,
- 0, 0, 0, 0, 0, 729, 0, 236, 110, 115,
- 113, 307, 0, 371, 0, 0, 0, 0, 128, 0,
- 0, 0, 0, 0, 0, 162, 154, 0, 0, 0,
- 215, 0, 375, 0, 252, 0, 0, 0, 0, 304,
- 0, 282, 130, 0, 280, 0, 0, 0, 132, 0,
- 376, 0, 0, 204, 209, 0, 0, 0, 373, 255,
- 168, 111, 123, 121, 0, 0, 309, 0, 0, 0,
- 0, 0, 158, 0, 288, 0, 0, 0, 0, 136,
- 0, 0, 0, 0, 377, 378, 0, 0, 0, 0,
- 0, 118, 324, 0, 305, 0, 0, 318, 0, 0,
- 0, 313, 0, 148, 0, 0, 0, 0, 143, 0,
- 0, 301, 0, 133, 0, 127, 137, 155, 161, 224,
- 0, 205, 0, 0, 216, 0, 122, 0, 114, 119,
- 0, 0, 0, 320, 0, 321, 310, 0, 0, 303,
- 314, 283, 0, 0, 129, 144, 281, 0, 299, 0,
- 289, 293, 139, 0, 0, 0, 221, 223, 0, 256,
- 120, 325, 327, 306, 0, 0, 319, 316, 147, 145,
- 159, 298, 0, 0, 0, 156, 225, 227, 206, 0,
- 219, 217, 0, 0, 318, 0, 294, 296, 140, 0,
- 0, 0, 0, 329, 330, 326, 328, 317, 160, 0,
- 0, 231, 230, 229, 226, 228, 211, 207, 218, 0,
- 0, 0, 295, 297, 213, 214, 0, 212,
+ 0, 0, 11, 14, 0, 1084, 0, 0, 1088, 0,
+ 0, 15, 17, 412, 418, 425, 413, 415, 0, 414,
+ 0, 421, 423, 410, 0, 417, 419, 411, 422, 424,
+ 420, 0, 373, 1106, 0, 416, 1095, 0, 10, 1,
+ 0, 0, 0, 12, 0, 907, 0, 0, 0, 0,
+ 0, 0, 0, 0, 454, 0, 0, 0, 0, 0,
+ 0, 0, 452, 0, 0, 0, 535, 0, 453, 0,
+ 0, 0, 1006, 0, 0, 0, 745, 0, 0, 0,
+ 0, 0, 0, 0, 0, 456, 806, 0, 859, 0,
+ 0, 0, 0, 0, 0, 0, 0, 451, 0, 734,
+ 0, 906, 0, 842, 0, 447, 867, 866, 0, 0,
+ 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
+ 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
+ 446, 449, 450, 741, 0, 607, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 742, 740,
+ 743, 744, 826, 828, 0, 824, 827, 843, 845, 846,
+ 847, 848, 849, 850, 851, 852, 853, 854, 844, 0,
+ 0, 908, 909, 927, 928, 929, 930, 964, 965, 966,
+ 967, 968, 969, 0, 0, 0, 20, 22, 0, 1092,
+ 16, 1085, 0, 0, 266, 283, 265, 262, 267, 268,
+ 261, 280, 279, 272, 273, 269, 271, 270, 274, 263,
+ 264, 275, 276, 282, 281, 277, 278, 0, 1109, 1098,
+ 0, 0, 1097, 0, 1096, 3, 57, 0, 0, 0,
+ 46, 43, 45, 48, 49, 50, 51, 52, 55, 13,
+ 0, 0, 0, 970, 585, 465, 466, 1004, 0, 0,
+ 0, 0, 0, 0, 0, 0, 972, 971, 0, 595,
+ 589, 594, 858, 905, 829, 856, 855, 857, 830, 831,
+ 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
+ 0, 0, 0, 936, 0, 0, 0, 872, 871, 0,
+ 0, 0, 0, 0, 0, 0, 0, 978, 0, 0,
+ 0, 0, 426, 0, 0, 0, 981, 0, 0, 0,
+ 0, 587, 1005, 0, 0, 0, 870, 406, 0, 0,
+ 0, 0, 0, 0, 392, 360, 0, 363, 393, 0,
+ 402, 0, 0, 0, 0, 0, 0, 0, 737, 0,
+ 606, 0, 0, 730, 0, 0, 602, 0, 0, 457,
+ 0, 0, 604, 600, 614, 608, 615, 609, 603, 599,
+ 619, 613, 618, 612, 616, 610, 617, 611, 728, 581,
+ 0, 580, 448, 366, 367, 0, 0, 0, 0, 0,
+ 860, 0, 359, 0, 404, 405, 0, 0, 538, 539,
+ 0, 0, 0, 864, 865, 873, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1087,
+ 825, 863, 0, 903, 904, 1038, 1055, 0, 0, 1039,
+ 1041, 0, 1067, 1024, 1022, 1048, 0, 0, 1046, 1049,
+ 1050, 1051, 1052, 1025, 1023, 0, 0, 0, 0, 0,
+ 0, 1105, 0, 0, 374, 0, 0, 1107, 0, 0,
+ 44, 776, 782, 774, 0, 771, 781, 775, 773, 772,
+ 779, 777, 778, 784, 780, 783, 785, 0, 0, 769,
+ 47, 56, 537, 0, 533, 534, 0, 0, 531, 0,
+ 875, 0, 0, 0, 934, 0, 902, 900, 901, 0,
+ 0, 0, 749, 0, 975, 973, 750, 0, 0, 562,
+ 0, 0, 550, 557, 0, 0, 0, 551, 0, 0,
+ 567, 569, 0, 546, 0, 0, 0, 0, 0, 541,
+ 0, 544, 548, 395, 394, 977, 976, 0, 0, 980,
+ 979, 990, 0, 0, 0, 991, 579, 0, 389, 578,
+ 0, 0, 1007, 0, 0, 869, 0, 0, 400, 401,
+ 0, 0, 0, 399, 0, 0, 0, 620, 0, 0,
+ 591, 0, 732, 638, 637, 0, 0, 0, 461, 0,
+ 455, 823, 0, 0, 0, 817, 819, 820, 821, 469,
+ 470, 0, 370, 371, 0, 197, 196, 198, 0, 719,
+ 0, 0, 0, 396, 0, 714, 0, 0, 984, 0,
+ 0, 0, 477, 478, 0, 481, 0, 0, 0, 0,
+ 479, 0, 0, 528, 0, 485, 0, 0, 0, 0,
+ 511, 514, 0, 0, 506, 513, 512, 0, 703, 704,
+ 705, 706, 707, 708, 709, 710, 711, 713, 712, 624,
+ 621, 626, 623, 625, 622, 635, 632, 636, 0, 0,
+ 646, 0, 0, 0, 0, 0, 639, 0, 634, 647,
+ 648, 630, 0, 631, 0, 665, 0, 0, 666, 0,
+ 672, 0, 673, 0, 674, 0, 675, 0, 679, 0,
+ 680, 0, 683, 0, 686, 0, 689, 0, 692, 0,
+ 695, 0, 697, 0, 566, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1037, 1036, 0, 1047, 0, 1035,
+ 0, 18, 1103, 1104, 0, 0, 194, 0, 0, 1113,
+ 388, 0, 0, 0, 385, 1099, 1101, 63, 65, 66,
+ 0, 0, 58, 0, 0, 67, 69, 32, 30, 0,
+ 0, 0, 766, 0, 770, 475, 0, 536, 0, 584,
+ 0, 597, 183, 205, 0, 0, 0, 173, 0, 0,
+ 0, 184, 590, 0, 1010, 0, 956, 937, 0, 947,
+ 0, 958, 0, 974, 912, 0, 1009, 0, 0, 549,
+ 0, 558, 568, 570, 0, 0, 0, 0, 497, 0,
+ 0, 492, 0, 0, 727, 726, 529, 0, 572, 543,
+ 0, 0, 154, 573, 152, 153, 575, 0, 583, 582,
+ 915, 0, 1002, 0, 0, 988, 0, 992, 577, 586,
+ 1017, 0, 1013, 932, 0, 0, 1028, 0, 361, 362,
+ 1026, 0, 0, 747, 748, 0, 0, 0, 725, 724,
+ 731, 0, 476, 0, 0, 458, 822, 808, 809, 807,
+ 818, 729, 0, 369, 717, 0, 0, 0, 605, 601,
+ 983, 982, 861, 482, 474, 0, 0, 480, 471, 472,
+ 588, 527, 525, 0, 524, 517, 518, 0, 515, 516,
+ 0, 510, 467, 468, 483, 484, 0, 881, 0, 0,
+ 641, 642, 0, 0, 0, 994, 633, 700, 0, 1056,
+ 1030, 0, 1057, 0, 1040, 1042, 1053, 0, 1068, 0,
+ 1034, 1082, 0, 1115, 195, 1110, 0, 805, 804, 0,
+ 803, 0, 384, 0, 62, 59, 0, 0, 0, 0,
+ 0, 0, 391, 0, 760, 0, 0, 88, 87, 0,
+ 532, 0, 0, 0, 0, 0, 188, 596, 0, 0,
+ 0, 0, 0, 948, 940, 938, 0, 959, 0, 0,
+ 1008, 559, 556, 0, 501, 0, 0, 0, 1093, 1094,
+ 488, 494, 0, 498, 0, 0, 0, 0, 0, 0,
+ 913, 0, 998, 0, 995, 989, 1016, 0, 931, 364,
+ 365, 1029, 1027, 0, 592, 0, 733, 723, 463, 462,
+ 372, 716, 715, 735, 473, 526, 0, 0, 520, 0,
+ 509, 508, 507, 0, 897, 880, 0, 0, 0, 886,
+ 0, 0, 0, 651, 0, 0, 654, 0, 660, 0,
+ 658, 701, 702, 699, 0, 1032, 0, 1061, 0, 0,
+ 1076, 1077, 1070, 0, 19, 1114, 387, 386, 0, 0,
+ 68, 61, 0, 70, 31, 24, 0, 0, 337, 0,
+ 240, 0, 115, 0, 84, 85, 891, 127, 128, 0,
+ 0, 0, 894, 203, 204, 0, 0, 0, 0, 176,
+ 185, 177, 179, 935, 0, 0, 0, 0, 0, 957,
+ 0, 0, 502, 503, 496, 499, 495, 0, 489, 493,
+ 0, 564, 0, 530, 540, 487, 576, 574, 0, 0,
+ 0, 1019, 0, 0, 746, 738, 0, 0, 521, 0,
+ 519, 0, 0, 878, 877, 874, 887, 645, 0, 650,
+ 0, 0, 655, 649, 0, 1031, 0, 0, 0, 1045,
+ 0, 1043, 1054, 0, 1083, 1102, 0, 81, 0, 0,
+ 75, 76, 79, 80, 0, 354, 343, 342, 0, 761,
+ 236, 110, 0, 876, 895, 189, 0, 201, 0, 0,
+ 0, 933, 1021, 0, 0, 0, 0, 939, 0, 960,
+ 911, 0, 545, 542, 920, 0, 926, 0, 0, 918,
+ 0, 922, 0, 996, 1018, 1014, 0, 464, 736, 523,
+ 0, 0, 653, 652, 661, 659, 1033, 1058, 0, 1044,
+ 0, 0, 1072, 0, 82, 73, 0, 0, 0, 338,
+ 0, 0, 0, 0, 0, 190, 0, 180, 178, 1011,
+ 949, 943, 941, 0, 500, 0, 914, 919, 0, 923,
+ 1003, 0, 0, 739, 0, 889, 0, 1062, 1079, 1080,
+ 1073, 60, 0, 77, 78, 0, 0, 0, 0, 0,
+ 0, 0, 755, 0, 787, 0, 752, 896, 187, 0,
+ 200, 0, 0, 961, 925, 924, 1000, 0, 997, 1015,
+ 898, 0, 0, 0, 83, 0, 0, 355, 0, 0,
+ 353, 339, 0, 347, 0, 409, 0, 407, 0, 0,
+ 762, 0, 792, 237, 0, 191, 1012, 945, 942, 0,
+ 0, 954, 810, 812, 999, 1059, 0, 1074, 0, 0,
+ 0, 335, 0, 0, 753, 789, 0, 758, 0, 0,
+ 793, 0, 111, 0, 0, 0, 1063, 29, 28, 25,
+ 356, 352, 0, 0, 348, 408, 0, 795, 0, 0,
+ 0, 0, 944, 0, 0, 0, 0, 0, 34, 340,
+ 0, 800, 0, 801, 798, 0, 796, 106, 107, 0,
+ 103, 0, 0, 91, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 104, 105, 155, 0, 0, 253,
+ 245, 246, 247, 248, 249, 250, 251, 252, 0, 0,
+ 243, 112, 811, 0, 1060, 0, 357, 351, 759, 0,
+ 0, 0, 0, 763, 92, 0, 295, 290, 294, 0,
+ 238, 244, 0, 1066, 1064, 799, 797, 0, 0, 0,
+ 0, 0, 0, 0, 0, 304, 0, 0, 254, 0,
+ 0, 260, 0, 170, 169, 156, 166, 167, 168, 0,
+ 0, 0, 108, 0, 0, 289, 0, 0, 288, 0,
+ 160, 0, 0, 378, 336, 0, 376, 0, 0, 0,
+ 0, 0, 0, 0, 0, 764, 0, 239, 113, 118,
+ 116, 311, 0, 375, 0, 0, 0, 0, 131, 0,
+ 0, 0, 0, 0, 0, 165, 157, 0, 0, 0,
+ 218, 0, 379, 0, 255, 0, 0, 0, 0, 308,
+ 0, 286, 133, 0, 284, 0, 0, 0, 135, 0,
+ 380, 0, 0, 207, 212, 0, 0, 0, 377, 258,
+ 171, 114, 126, 124, 0, 0, 313, 0, 0, 0,
+ 0, 0, 161, 0, 292, 0, 0, 0, 0, 139,
+ 0, 0, 0, 0, 381, 382, 0, 0, 0, 0,
+ 0, 121, 328, 0, 309, 0, 0, 322, 0, 0,
+ 0, 317, 0, 151, 0, 0, 0, 0, 146, 0,
+ 0, 305, 0, 136, 0, 130, 140, 158, 164, 227,
+ 0, 208, 0, 0, 219, 0, 125, 0, 117, 122,
+ 0, 0, 0, 324, 0, 325, 314, 0, 0, 307,
+ 318, 287, 0, 0, 132, 147, 285, 0, 303, 0,
+ 293, 297, 142, 0, 0, 0, 224, 226, 0, 259,
+ 123, 329, 331, 310, 0, 0, 323, 320, 150, 148,
+ 162, 302, 0, 0, 0, 159, 228, 230, 209, 0,
+ 222, 220, 0, 0, 322, 0, 298, 300, 143, 0,
+ 0, 0, 0, 333, 334, 330, 332, 321, 163, 0,
+ 0, 234, 233, 232, 229, 231, 214, 210, 221, 0,
+ 0, 0, 299, 301, 216, 217, 0, 215,
};
protected static readonly short [] yyDgoto = { 7,
- 8, 50, 9, 51, 10, 11, 52, 237, 771, 772,
- 12, 13, 53, 22, 23, 331, 240, 756, 939, 1133,
- 1257, 1310, 1634, 936, 241, 242, 243, 244, 245, 246,
- 247, 248, 749, 474, 750, 751, 1040, 752, 753, 1044,
- 937, 1128, 1129, 1130, 273, 641, 1225, 111, 948, 813,
- 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
- 1352, 1353, 1354, 1355, 1356, 593, 1382, 860, 493, 760,
- 1437, 1054, 1238, 1195, 1236, 1271, 1322, 1393, 1478, 1266,
- 1505, 1479, 1530, 1531, 1532, 1056, 1528, 1057, 822, 940,
- 1490, 1464, 1518, 548, 1511, 1484, 1547, 1020, 1516, 1519,
- 1520, 1615, 1548, 1549, 1545, 1357, 1416, 1386, 1438, 773,
- 1492, 1594, 1461, 1551, 1626, 494, 1417, 1418, 274, 1447,
- 774, 775, 776, 777, 778, 731, 611, 1242, 732, 733,
- 954, 1440, 1469, 1562, 1523, 1596, 1648, 1632, 1470, 1657,
- 1652, 1441, 1496, 1622, 1599, 1563, 1564, 1645, 1630, 1631,
- 1052, 1194, 1302, 1369, 1421, 1370, 1371, 1409, 1444, 1410,
- 334, 227, 1527, 1412, 1512, 1509, 1358, 1388, 1433, 1591,
- 1553, 1285, 1592, 642, 1640, 1641, 1432, 1508, 1481, 1540,
- 1535, 1506, 1572, 1577, 1538, 1541, 1542, 1625, 1578, 1536,
- 1537, 1636, 1623, 1624, 1049, 1137, 1262, 1230, 1293, 1263,
- 1264, 1313, 1191, 1290, 1327, 388, 197, 113, 377, 378,
- 114, 604, 470, 230, 1456, 740, 741, 928, 941, 335,
- 336, 435, 327, 337, 311, 1267, 1268, 46, 118, 312,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 8, 50, 9, 51, 10, 11, 52, 238, 785, 786,
+ 12, 13, 53, 22, 23, 199, 332, 241, 770, 961,
+ 1185, 1317, 1370, 1694, 958, 242, 243, 244, 245, 246,
+ 247, 248, 249, 763, 479, 764, 765, 1080, 766, 767,
+ 1084, 959, 1180, 1181, 1182, 274, 652, 1283, 113, 970,
+ 1095, 827, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409,
+ 1410, 1411, 1412, 1413, 1414, 1415, 1416, 604, 1442, 880,
+ 498, 774, 1497, 1094, 1296, 1253, 1294, 1331, 1382, 1453,
+ 1538, 1326, 1565, 1539, 1590, 1591, 1592, 1097, 1588, 1098,
+ 836, 962, 1550, 1524, 1578, 553, 1571, 1544, 1607, 1045,
+ 1576, 1579, 1580, 1675, 1608, 1609, 1605, 1417, 1476, 1446,
+ 1498, 787, 1552, 1654, 1521, 1611, 1686, 499, 1477, 1478,
+ 275, 1507, 788, 789, 790, 791, 792, 745, 622, 1300,
+ 746, 747, 976, 1500, 1529, 1622, 1583, 1656, 1708, 1692,
+ 1530, 1717, 1712, 1501, 1556, 1682, 1659, 1623, 1624, 1705,
+ 1690, 1691, 1092, 1252, 1362, 1429, 1481, 1430, 1431, 1469,
+ 1504, 1470, 335, 228, 1587, 1472, 1572, 1569, 1418, 1448,
+ 1493, 1651, 1613, 1345, 1652, 653, 1700, 1701, 1492, 1568,
+ 1541, 1600, 1595, 1566, 1632, 1637, 1598, 1601, 1602, 1685,
+ 1638, 1596, 1597, 1696, 1683, 1684, 1089, 1189, 1322, 1288,
+ 1353, 1323, 1324, 1373, 1249, 1350, 1387, 395, 336, 115,
+ 384, 385, 116, 615, 475, 231, 1516, 754, 755, 950,
+ 963, 117, 340, 442, 328, 341, 312, 1327, 1328, 46,
+ 120, 313, 122, 123, 124, 125, 126, 127, 128, 129,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 258, 891, 818, 1094, 1083, 806, 979, 807, 808,
- 1084, 141, 202, 814, 644, 645, 646, 885, 503, 504,
- 304, 1092, 816, 436, 306, 532, 533, 534, 535, 538,
- 824, 566, 270, 509, 849, 271, 508, 142, 143, 144,
- 145, 673, 899, 674, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 614, 615, 616, 854, 855,
- 157, 601, 589, 851, 379, 1106, 585, 1175, 158, 523,
- 1233, 1234, 1237, 1317, 1050, 1193, 1300, 1413, 495, 1272,
- 1273, 1336, 1337, 929, 354, 1305, 0, 0, 594, 595,
- 275, 276, 277, 161, 162, 163, 278, 279, 280, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 175, 290,
- 621, 176, 177, 328, 905, 708, 1023, 1112, 951, 767,
- 1060, 1021, 1024, 1153, 1025, 1061, 1062, 291, 178, 179,
- 180, 1166, 1098, 1167, 1168, 1169, 1170, 181, 182, 183,
- 184, 784, 516, 785, 1156, 1078, 1157, 1279, 1245, 1280,
- 786, 1077, 787, 1282, 1206, 185, 186, 187, 188, 189,
- 190, 313, 560, 561, 831, 1214, 324, 1076, 961, 1244,
- 1103, 996, 1215, 191, 448, 192, 449, 1026, 1115, 450,
- 451, 724, 715, 716, 1120, 1030, 452, 453, 454, 455,
- 456, 1031, 710, 1028, 1219, 1306, 1375, 1117, 1253, 1326,
- 915, 718, 916, 1184, 1122, 1185, 1254, 1035, 17, 19,
- 47, 48, 229, 734, 932, 468, 735, 736,
+ 140, 141, 142, 143, 359, 360, 875, 1147, 259, 915,
+ 832, 1135, 1124, 820, 1001, 821, 822, 1125, 144, 202,
+ 828, 655, 656, 657, 906, 907, 145, 508, 509, 305,
+ 1133, 830, 443, 307, 537, 538, 539, 540, 543, 838,
+ 571, 271, 514, 866, 272, 513, 146, 147, 148, 149,
+ 1056, 927, 1057, 690, 691, 1058, 1053, 1054, 1059, 1060,
+ 1061, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 625, 626, 627, 871, 872, 161, 612, 596,
+ 868, 386, 1148, 592, 1227, 162, 528, 1291, 1292, 1295,
+ 1377, 1090, 1251, 1360, 1473, 500, 1332, 1333, 1396, 1397,
+ 951, 361, 1365, 0, 0, 605, 606, 276, 277, 278,
+ 165, 166, 167, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 289, 290, 179, 291, 632, 180, 329,
+ 920, 658, 1048, 1156, 973, 781, 1101, 1046, 1049, 1205,
+ 1050, 1102, 1103, 292, 181, 182, 183, 1218, 1139, 1219,
+ 1220, 1221, 1222, 184, 185, 186, 187, 798, 521, 799,
+ 1208, 1119, 1209, 1339, 1303, 1340, 800, 1118, 801, 1342,
+ 1264, 188, 189, 190, 191, 192, 193, 314, 565, 566,
+ 845, 1309, 1272, 1012, 325, 1117, 983, 1302, 1144, 1018,
+ 1273, 194, 455, 195, 456, 1065, 1167, 457, 458, 740,
+ 731, 732, 1172, 1069, 459, 460, 461, 462, 463, 1070,
+ 726, 1067, 1277, 1366, 1435, 1169, 1313, 1386, 939, 734,
+ 940, 1242, 1174, 1243, 1314, 1074, 17, 19, 47, 48,
+ 230, 748, 954, 473, 749, 750,
};
- protected static readonly short [] yySindex = { -68,
- 0, -187, 189, 161, 258,18441, 0, 251, 0, 0,
- 258, 161, 0, 0, 303, 0, 8261, 258, 0, -151,
- -258, 0, 0, 0, 0, 0, 0, 0, 249, 0,
- 448, 0, 0, 0, 5471, 0, 0, 0, 0, 0,
- 0, 297, 0, 0, 426, 0, 0, 720, 0, 0,
- 251, 495, 258, 0, 534, 0, 322, 590, -183,17987,
- -27, 138, 512, 8419, 0, 138, 138, 138, -90, 138,
- 138, 610, 0,10410, 138, 138, 0,10568, 0, 642,
- 138, -181, 0, 138, 645, 138, 0,18473,18473, 666,
- 138, 138, 97,10728, 0,17096, 0,11916,12048,12180,
-12312,12444,12576,12708,12840, 0, 232, 0, 9503, 0,
- 184, 0, 50, 0, 0, 0, 579, 500, -234, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 853, 917, 209, 755, 636, 338, 671, 697,
- 686, 694, 533, 713, 0, 0, 0, 0, 0, 0,
- 3940, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 50, 745, 197, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 377, 418, 495, 0, 517, -240, 0, 704, 0, 0,
- 0, 0, 9503, 9503, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 297, 0, 0, 712,
- 751, 0, -200, 0, 0, 0, 495,19024, 841, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 877,
- 50,17233, 0, 0, 0, 0, 0,17096, -205, -141,
- 901, 811, 488, 500, 50, 0, 0, 9503, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
- 275,17987, 0, 9503,17096, 816, 0, 0, 826,17096,
-17096, 6467, 537, -93, 874, 9503, 0,10728, 232, 1010,
- 897, 0, 913, 9503,17096, 0, 1022, 918, 690, 951,
- 0, 0,17096, 642,16685, 0, 0, 645,17096, 577,
- 634, 989, 50, 0, 0, 745, 0, -234, 1013, 50,
-17096,17096,17096, 512, 0, 980, 0, 9503, 9503, 0,
-11784, 50, 0, 8577, 250, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1069, 0, 0, 0, 0,18291, 577,
- 959, 958,17096, 0, 562, 0, 126, 0, 0, 316,
- 259, 0, 0, 923,10860, 8893, 0, 0,17096,17096,
-17096,17096,17096,17096,17096,17096,17096,17096,17096,12972,
-13104,13236, 2103,15577,13368,13500,13632,13764,13896,14028,
-14160,14292,14424,14556,14688,14820,14952,15084,15216,17644,
-17096, 0, 0, 0, 0, 745, 0, 0, 0, 0,
-18473,18473, 0, 0, 50, 0, 0, 0, 0, 552,
- 981, 0, 0, 0, 0, 0, 0, 0, 495, 841,
- 927, 943, 0, 562, 297, 297, 0, 486, 107, 0,
- 297, 998, 0, -193,19024, 0, 0, 0, 0, -145,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 255,19054, 0, 0, 0, 0, 962, 0,
- 0, 1003, 788, 0, 1001, 0, 1011, 164, 642, 0,
- 138, 0, 0, 0, 50,16685, -115, 0, 1021, 0,
- 0, 0, 112, 168, 0, 811, 488, 0, 0, 1008,
- 0, 1041, 0, 1037, 983, 0, 0, 805, 0, 9167,
- 806,11018, 874,16548, 0, 9328, 0, 0, 0, 0,
- 0, 0, 174, 192, 0, 0, 0, -224, 642, -147,
- 0, 0, 645, 0, 0, 1042, 1044, 0, 195, 50,
- 0, 205, 0, 0,17096, 1126, 0,17096, 1129, 1050,
- 0, 1053, 1055, 0,18291, 0, 0, 0, 188, 962,
- 0, -92, -272, 8577, 0, 0, 0, 0, 0, 0,
- 188, 0, 0, -235, 0, 0, 0, 645, 0, 577,
- 50, 9661, 0, 1056, 0, 1060,15348, 0, 1181, 1061,
- 8577, 0, 0, 1014, 0, 962, 50,17233, 1015, 0,
- 562, 962, 0, 116, 0,17096,17096, 1067, 1186, 0,
- 0, 270, 146, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,17769,17769, 0, 0,
- -234, 0, 50, 745, 0, 917, 0, 917, 0,11652,
- 209, 0, 209, 0, 755, 0, 755, 0, 755, 0,
- 755, 0, 636, 0, 636, 0, 338, 0, 671, 0,
- 697, 0, 686, 0, 694, 0, -57, -180, 0,11018,
- 1151, 50, 1152, 50,11018,11018, 1066,17096, 0, 0,
- 981, 0, 50, 0, 244, 562, 0, 0, 0, 0,
- 9661, 486, 0, 1076, 1075, 0, 0, 707, 495, -8,
- 0, 0, 0, 0, 0, 0, -185, 1077, 0, 1079,
- 1081, 0, 0, 0, 0, 1083,10269, 1039, 0, 435,
- 0, 0, 687, 0,17233, 0, 1082, 0, 0, 0,
- 729, 141, 1086, 0, 1088, 1091, 1092, 0, 0,17096,
- 0, 50, 0, 0, 818, 0, 1094, 0, 256, 0,
- 0, 8419, 0, 8419, 9802, 0,15688, 0, 0, 0,
- 9962,10094, 422,11018, 0, 7, 149, 0, 1031, 1046,
- 0, 0, 0, 834, 0, 0, 1099, 1098, 0, 0,
- 0, 0, 0, 1100, 0, 0, 0, 1106, 138, 4352,
- 642, 0, 642, 0, 0, 0, 0, 8419, 0, 0,
- 8419, 0,17096, 0,17096, 9503, 0, 0, 642, 1103,
- 188, 0, 0, 0,17096, 0, 0, 0, 0, 0,
- 0, 0, 9503, 0, 0, 50,18291, 1135, 0, 0,
- 0, 0, 0, 0, 0, 962, 842, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,16411, 0, 0, 0,
- 0, 0, 9486, 0, 0, 0, 0, 0, 0, 0,
- 0,10252, 0, 9644, 1108, 0, 0, 1190, 0, 1191,
- 0, 0, 0, 932, 0, 1111, 0, 0, 0, 0,
- 0, 0, 0, 0, 486, 0, 0, 1068, 0, 107,
- 0, 486, 0, 0, 927, 1119, 1122, 1072, 1130, 1039,
- 0, 1121, 0, 1245, 1246, 0, 0,11018, 0,16822,
- 1128, 729, 9661, 9503, 0, 0, 371, 1249, 1250, 219,
- 1127, 0, 0, 0,17096, 0,17096, 1230, 0, 0,
- 0,16959, 0, 342,16959, 848, 0, 0, 0, 0,
- 9030, 0, 1256, 745,11018, 1145, 9802, 1146, 0,17096,
- 0, 50, 0, 0, 0, -87, 0, 0, 0, 1141,
- 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 706, 0, 0, 0, 0, 0, 0, 9503, 0,
- 0, 50, -242, 1108, 0,11018, 0,11018, 0, 191,
-11018, 0, 0, 0, 503, 0, 0, 0, 1150, 927,
- 0, 0,11176, 0, 0, 0, 1155, 4512, 0, 1039,
- 0, 1039, 0, 1039, 0, 0, 0, 0, 50, 1156,
- 1128, 0, 0, 0, -109, -125, 1154, 1157, 0, 0,
- 0, 0, 0, 1159, 9802, 1108, -180,17096, 0, 1166,
- 8419, 0, 0, 0, 0, 0, 1158, 0, 0, 1170,
- 0, 874, 0, 0, 0, 0, 0, -201, 1169, 1171,
- 0, 1108, 1175, 0, 0, 188, 0, 1123, 1167, 0,
- 0, 0, 0, 0,11018, 1204,11018, 0,11018, 0,
- 0,17096, 0, 0, 1081, 0, 515, 739, 0, 0,
- 0, 0, 161, 0, 0, 0, 1185, 0, 0, 0,
- 1172, 0, 0, 0, 682, 0, 1176, 1300, 1303, 0,
- 0, 1108, 1193, 1108, 1195, 0, 1187, 0, 0,16959,
- 0, 0, 0,17096, 0, 1194, -209, 0, 8101, 0,
- 0, 1313, 0, 0, 188, 0,17096, 9644, 0, 0,
- 1223, 0, 964, 1197, 0, 1202, 0, 0,11176, 258,
- 164, 0, 852, 1199, 1205,16822, 1207, 0,17096, 0,
- 0, 0, 0, 0, 0, 8419, 0, 77, 0, 0,
- 8577, 0, 0, 1290, 8419, 0, 1213, 0,11018, 0,
- 0, 0, 0, 0,17096, 0, 0, 495, 1214, 495,
- 164, 9503, 1199, 1253, 0, 1253, 0, 1199, 0, 0,
- 0,17096, 0, 8419,11334, 0, 0, 0, 906, 0,
- 0, 1240,11018,17096, 0, 495, 1220, 0, 1180, 991,
- 0, 0, 1225, 0, 1222, 0, 165, 0, 1229, 1183,
- 0, 1253, 0, 0, 1253, 0, 0, 0, 0, 1231,
- 1094, 0, 0, 0, 0, 0, 1255, 0, 68, 1253,
- 1349, 0, 1238, 495, 0, 0, 9503, 0, 106, 1241,
- 0, 1242, 0, 8419, 8577,11018, 0, 0, 0, 0,
- 0, 0, 1226, 1235, 0, 0,16548, 0, 2289, 66,
- 495, 1247, 0, 1248, 1260,11018, 1251,17096, 0, 0,
- 1254, 0, 1257, 0, 0, 1243, 0, 0, 0,19054,
- 0, 1261, 66, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 714,19054, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1262, 495,
- 0, 0, 0, 50, 0, 1260, 0, 0, 0, 1259,
- 2289, 8577,18159, 0, 0, 595, 0, 0, 0, 5312,
- 0, 0, 66, 0, 0, 0, 0, -272, 9503, 9503,
- 176, 9503, 477, 645, 1282, 0, 577, 1663, 0, 1317,
- 0, 0, 1235, 0, 0, 0, 0, 0, 0, 4029,
- 1235, 1264, 0, -123, -120, 0, 9503, -118, 0, 9503,
- 0, 1215, 1265, 0, 0, 12, 0, 143, 4675, 0,
- 1266, 1219, 153, 595, 5471, 0,17096, 0, 0, 0,
- 0, 0, 12, 0, 1271, 1221, 1269, 1267, 0, 1270,
- 1224, 1275, 164, 1272, 1274, 0, 0, 1280, 1281, 1310,
- 0, 962, 0, 965, 0, 1296, 1292, 1235, -62, 0,
- 1288, 0, 0, 1301, 0, 1304, 1299, 1302, 0, 1306,
- 0, 164, 164, 0, 0, 164, 1305, 1309, 0, 0,
- 0, 0, 0, 0, 1314, 150, 0, 1316, 164, 1421,
- 1318, 164, 0, 501, 0, 9802, 1273, 1308, 1306, 0,
- 1321, 1322, 152, 1325, 0, 0, 164,16822, 1278, 1323,
- 1314, 0, 0,19054, 0, 495, 495, 0, 1279, 1324,
- 1316, 0, 1326, 0,17096, 1284, 1327, 1318, 0, 1332,
- 164, 0, 114, 0, 1328, 0, 0, 0, 0, 0,
-19054, 0, 152, 152, 0, 1333, 0, -62, 0, 0,
- 409, 1338,19054, 0,19054, 0, 0, 9802, 1329, 0,
- 0, 0, 1337, 1301, 0, 0, 0, 1336, 0, 208,
- 0, 0, 0, 1253, 1017, 1343, 0, 0, 538, 0,
- 0, 0, 0, 0, 1398, 1451, 0, 0, 0, 0,
- 0, 0, 1344, 1345, 9802, 0, 0, 0, 0, 152,
- 0, 0, 580, 580, 0, 1253, 0, 0, 0, -143,
- -143, 1340, 1354, 0, 0, 0, 0, 0, 0,16548,
-16548, 0, 0, 0, 0, 0, 0, 0, 0, 1360,
- 1361,16822, 0, 0, 0, 0, 1358, 0,
+ protected static readonly short [] yySindex = { 226,
+ 0, -164, 156, -25, 193,19811, 0, 172, 0, 0,
+ 193, -25, 0, 0, 174, 0, 8919, 193, 0, -158,
+ 69, 0, 0, 0, 0, 0, 0, 0, 380, 0,
+ 390, 0, 0, 0,12330, 0, 0, 0, 0, 0,
+ 0, 331, 0, 0, 634, 0, 0, 665, 0, 0,
+ 172, 433, 193, 0, 339, 0, 378, 441, -171,19227,
+ -151, 336, 565, 9080, 0, 336, 336, 336, 67, 336,
+ 336, 855, 0,11110, 336, 336, 0,11271, 0, 598,
+ 336, -161, 0, 336, 597, 336, 0, 9580, 9580, 629,
+ 336, 336, 70,11434,18112, 0, 0,18112, 0,12646,
+12781,12916,13051,13186,13321,13456,13591, 0, 276, 0,
+10346, 0, 52, 0, -38, 0, 0, 0, 486, 868,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -38, 0, 1172, 890, 116, 392,
+ 643, 723, 636, 675, 692, 688, 114, 712, 0, 0,
+ 0, 0, 0, 0, 4190, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 762,
+ -272, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 396, 465, 433, 0, 0, 724, 0,
+ 0, 0,10346,10346, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 331, 0, 0,
+ 736, 743, 0, -232, 0, 0, 0, 433,13222, 847,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 914, -38,18252, 0, 0, 0, 0, 0,18112, -144,
+ -142, 901, 809, -274, 868, -38, 0, 0,10346, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 133, 330,19227, 0,10346,18112, 811, 0, 0, 887,
+18112,18112, 7036, 653, 299, 877,10346, 0,11434, 276,
+ 1031, 917, 0, 925,10346,18112, 0, 1062, 945, 603,
+ 1181, 0, 0,18112, 598,17552, 0, 0, 597,18112,
+ 452, 575, 1038, -38, 0, 0, 920, 0, 0, 762,
+ 0, 31, 1051, -38,18112,18112,18112, 565, 0, 1015,
+ 0,10346,10346, 0,12511, -38, 0, 878, 896, 0,
+ 9241, 104, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1587, 0, 0, 0, 0,19691, 452, 976, 993,18112,
+ 0, -9, 0, 202, 0, 0, 150, 255, 0, 0,
+ 946,11569, 9563, 0, 0, 0,18112,18112,18112,18112,
+18112,18112,18112,18112,18112,18112,18112,13726,13861,13996,
+ 1795,16291,14131,14266,14401,14536,14671,14806,14941,15076,
+15211,15346,15481,15616,15751,15886,16021,18672,18112, 0,
+ 0, 0, 762, 0, 0, 0, 0, 9580, 9580, 0,
+ 0, -38, 0, 0, 0, 0, 564, 1021, 0, 0,
+ 0, 0, 0, 0, 0, 433, 847, 548, 473, 331,
+ 331, 0, 682, -149, 0, 331, 1016, 0, -167,13222,
+ 0, 0, 0, 0, -152, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 348,13357, 0,
+ 0, 0, 0, 999, 0, 0, 1003, 706, 0, 1026,
+ 0, 1036, 241, 598, 0, 336, 0, 0, 0, -38,
+17552, -147, 0, 1040, 0, 0, 0, -168, 94, 0,
+ 809, -274, 0, 0, 1043, 0, 1047, 0, 1045, 992,
+ 0, 0, 734, 0, 9843, 739,11730, 877,17412, 0,
+10007, 0, 0, 0, 0, 0, 0, 99, 107, 0,
+ 0, 0, 347, 598, 713, 0, 0, 597, 0, 0,
+ 1053, 1056, 0, 108, -38, 0, 119, 1011, 0, 0,
+18112, 1141, -9, 0,18112, 1144, 1061, 0, 1064, 1066,
+ 0,19691, 0, 0, 0, 98, 999,18112, 0,18112,
+ 0, 0, -197, 138, 9241, 0, 0, 0, 0, 0,
+ 0, 98, 0, 0, 155, 0, 0, 0, 597, 0,
+ 452, -38,10966, 0, 1067, 0, 1071,16156, 0, 1194,
+ 1073, 9241, 0, 0, 1027, 0, 999, -38,18252, 1029,
+ 0, -9, 999, 0, 127, 0,17692,17692, 1087, 1210,
+ 0, 0, 139, 76, 0, 0, 0, -172, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,18800,18800,
+ 0,10346, 646, 0, 0, 0, 0, -38, 0, 0,
+ 0, 0, 890, 0, 890, 0,12376, 116, 0, 116,
+ 0, 392, 0, 392, 0, 392, 0, 392, 0, 643,
+ 0, 643, 0, 723, 0, 636, 0, 675, 0, 692,
+ 0, 688, 0, -200, 0,11730, 1173, -38, 1174, -38,
+11730,11730, 1085,18112, 0, 0, 1021, 0, -38, 0,
+ 1049, 0, 0, 0,10966, 682, 0, 1096, 1097, 0,
+ 0, 574, 433, 201, 0, 0, 0, 0, 0, 0,
+ -117, 1100, 0, 1099, 1101, 0, 0, 0, 0, 1105,
+11127, 1065, 0, 240, 0, 0, 614, 0,18252, 0,
+ 1098, 0, 0, 0, 726, 39, 1108, 0, 1110, 1111,
+ 1113, 0, 0,18112, 0, -38, 0, 0, 751, 0,
+ 1114, 0, 560, 0, 0, 9080, 0, 9080,10490, 0,
+16510, 0, 0, 0,10653,10788, 401,11730, 0, 154,
+ 81, 0, 1063, 1059, 0, 0, 0, 814, 0, 0,
+ 1122, 1124, 0, 0, 0, 0, 0, 1127, 0, 0,
+ 0, 1129, 0, 2102, 598, 0, 598, 0, 0, 0,
+ 0, 9080, 0, 0, 9080, -9, 0,18112, 0, 0,
+ 0,18112,10346, 0, 0, 598, 1131, 98, 0, 0,
+ 0,18112, 0, 1130, 1092, 0, 0, 0, 0, 0,
+ 0, 0,10346, 0, 0, -38,19691, 1165, 0, 0,
+ 0, 0, 0, 0, 0, 999, 820, 0, 0, 0,
+ 0, 0, 0,17692, 0, 0, 0, -38, 0, 0,
+17272, 0, 0, 0, 0, 0,10168, 0,10329, 1136,
+ 0, 0, 1140, -38,18928, 0, 0, 0,10949, 0,
+ 0, 1223, 0, 1226, 0, 0, 0, 959, 0, 1143,
+ 0, 0, 856, 0, 0, 0, 682, 0, 0, 1104,
+ 0, -149, 0, 682, 0, 0, 1049, 1148, 1154, 1109,
+ 1162, 1065, 0, 1155, 0, 1279, 1281, 0, 0,11730,
+ 0,17832, 1160, 726,10966,10346, 0, 0, 91, 1284,
+ 1285, 131, 1157, 0, 0, 0,18112, 0,18112, 1263,
+ 0, 0, 0,17972, 0, 552,17972, 830, 0, 0,
+ 0, 0, 9703, 0, 1288, 762,11730, 1175,10490, 1176,
+ 0, 336, 0, -38, 0, 0, 0, -170, 0, 0,
+ 0, 0, 0, 1169, 0, 1208, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1177, 1178, 0, 899,
+ 0, 0, 0,10346, 0, 0, -38, 539, 1136, 0,
+18800, 1260, 680, 0, 449, -38, 0, 1184, 0, 1187,
+ 0, 0, 0, 0,11730, 0,11730, 0, -165,11730,
+ 0, 0, 0, 314, 0, 0, 0, 0, 1188, 1049,
+ 0, 0,11891, 0, 0, 0, 1191, 4772, 0, 1065,
+ 0, 1065, 0, 1065, 0, 0, 0, 0, 0, -38,
+ 1192, 1160, 0, 0, 0, -129, -132, 1189, 1190, 0,
+ 0, 0, 0, 0, 1193,10490, 1136, -172,18112, 0,
+ 1199, 9080, 0, 0, 0, 0, 0, 1206, 0, 0,
+ 1218, 0, 877, 0, 0, 0, 0, 0, -185,18112,
+ 1217, 0, 1136, 1219, 0, 0, 1179, 98, 0,18112,
+ 0, 1167, 1213, 0, 0, 0, 0, 0,19037, 0,
+ -38,19037, 0, 0,18928, 0,11730, 1252,11730, 0,
+11730, 0, 0,18112, 0, 0, 1101, 0, 561, 910,
+ 0, 0, 0, 0, -25, 0, 0, 0, 1231, 0,
+ 0, 0, 1221, 0, 0, 0, 623, 0, 1222, 1352,
+ 1353, 0, 0, 1136, 1234, 1136, 1235, 0, 1232, 0,
+ 0,17972, 0, 0, 0,18112, 0, 1243, -188, 0,
+ 8756, 0, 1240, 0, 0, 0, 98, 0, 0, 0,
+18112,10329, 0, 0, 0, 0, 0, 0, 1271, 0,
+ 1025, 1241, 0, 1246, 0, 0,11891, 193, 241, 0,
+ 789, 1247, 1250,17832, 1248, 0,18112, 0, 0, 0,
+ 0, 0, 0, 9080, 0, -174, 0, 0, 9241, 0,
+ 0, 102, 9080, 0, 1254, 0,11730, 0, 0, 0,
+ 0, 0,18112, 0, 0, 433, 1253, 433, 241,10346,
+ 1247, 1291, 0, 1291, 0, 1247, 0, 0, 0,18112,
+ 0, 9080,12052, 0, 0, 0, 0, 919, 0, 0,
+ 0, 1283,11730,18112, 0, 433, 1262, 0, 1214, 1019,
+ 0, 0, 1257, 0, 1261, 0, 83, 0, 1264, 1216,
+ 0, 1291, 0, 0, 1291, 0, 0, 0, 0, 1266,
+ 1114, 0, 0, 0, 0, 0, 1292, 0, -133, 1291,
+ 1388, 0, 1273, 433, 0, 0,10346, 0, 58, 1275,
+ 0, 1276, 0, 9080, 9241,11730, 0, 0, 0, 0,
+ 0, 0, 1265, 1268, 0, 0,17412, 0,19879, 149,
+ 433, 1278, 0, 1280, 1295,11730, 1282,18112, 0, 0,
+ 1287, 0, 1286, 0, 0, 1289, 0, 0, 0,13357,
+ 0, 1293, 149, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -239,13357, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1296, 433,
+ 0, 0, 0, -38, 0, 1295, 0, 0, 0, 1294,
+19879, 9241,19470, 0, 0, 591, 0, 0, 0,19538,
+ 0, 0, 149, 0, 0, 0, 0, 138,10346,10346,
+ 268,10346, 482, 597, 1322, 0, 452,17193, 0, 1355,
+ 0, 0, 1268, 0, 0, 0, 0, 0, 0, 1943,
+ 1268, 1297, 0, -130, -128, 0,10346, -111, 0,10346,
+ 0, 1242, 1300, 0, 0, -276, 0, -181, 4941, 0,
+ 1298, 1255, 3, 591,12330, 0,18112, 0, 0, 0,
+ 0, 0, -276, 0, 1301, 1256, 1304, 1302, 0, 1310,
+ 1267, 1311, 241, 1303, 1299, 0, 0, 1312, 1319, 1349,
+ 0, 999, 0, 975, 0, 1318, 1314, 1268, -145, 0,
+ 1313, 0, 0, 1323, 0, 1324, 1321, 1326, 0, 1325,
+ 0, 241, 241, 0, 0, 241, 1327, 1328, 0, 0,
+ 0, 0, 0, 0, 1336, 89, 0, 1339, 241, 1462,
+ 1343, 241, 0, 345, 0,10490, 1305, 1344, 1325, 0,
+ 1347, 1354, 112, 1357, 0, 0, 241,17832, 1306, 1356,
+ 1336, 0, 0,13357, 0, 433, 433, 0, 1307, 1358,
+ 1339, 0, 1363, 0,18112, 1329, 1360, 1343, 0, 1365,
+ 241, 0, 64, 0, 1348, 0, 0, 0, 0, 0,
+13357, 0, 112, 112, 0, 1367, 0, -145, 0, 0,
+ -153, 1362,13357, 0,13357, 0, 0,10490, 1359, 0,
+ 0, 0, 1371, 1323, 0, 0, 0, 1376, 0, 282,
+ 0, 0, 0, 1291, 1028, 1375, 0, 0, 360, 0,
+ 0, 0, 0, 0, 1417, 1490, 0, 0, 0, 0,
+ 0, 0, 1381, 1382,10490, 0, 0, 0, 0, 112,
+ 0, 0, 359, 359, 0, 1291, 0, 0, 0, 97,
+ 97, 1373, 1391, 0, 0, 0, 0, 0, 0,17412,
+17412, 0, 0, 0, 0, 0, 0, 0, 0, 1384,
+ 1389,17832, 0, 0, 0, 0, 1390, 0,
};
- protected static readonly short [] yyRindex = { 1936,
- 0, 0, 8735, 1936, 0, 0, 0, 1736, 0, 0,
- 3522, 1489, 0, 0, 0, 0, 0, 3522, 0, 0,
- 56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ protected static readonly short [] yyRindex = { 1465,
+ 0, 0, 9402, 1465, 0, 0, 0, 1764, 0, 0,
+ 3907, 2165, 0, 0, 0, 0, 0, 3907, 0, 1346,
+ 46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1769, 0, 0, 1769, 0, 0, 1769, 0, 0,
+ 1764, 1666, 2625, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1400, 0, 0, 0, 0, 0, 0, 0,
+ 0,11747, 0, 1393, 0, 0, 0, 1393, 0, 0,
+ 0, 0, 0, 0, 3589, 0, 0, 0, 0, 0,
+ 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 5812, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 6345, 5749,
+ 4348, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 6453, 6633, 7038, 7317,
+ 7813, 8029, 8173, 8317, 8461, 5037, 5363, 3547, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6525,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1737, 0, 0, 1737, 0, 0, 1737, 0, 0,
- 1736, 3602, 2027, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1371, 0, 0, 0, 0, 0, 0, 0,
- 0,10427, 0, 1363, 0, 0, 0, 1363, 0, 0,
- 0, 0, 0, 0, 3192, 0, 0, 0, 0, 0,
- 0, 0, 0, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5375, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 5788, 5311, 5699, 0,
+ 0, 0, 0, 0, 0, 2233, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 5893, 6070, 4119, 6623, 7048, 7255, 7393, 7531,
- 7669, 7807, 1311, 5470, 0, 0, 0, 0, 0, 0,
- 56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1769, 0, 0,
+ 182, 0, 0, 0, 0, 0, 0, 3954, 355, 4001,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3649, 0, 688, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4608, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1737, 0, 0, 307,
- 0, 0, 0, 0, 0, 0, 3712, 432, 3755, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 4351, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1406, 0, 0, 0, 0, 0, 0, 4771,
+ 1399, 0, 0, 0, 0, 0, 0, 1399, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3031, 0,
+ 601, 3181, 0, 0, 0, 0, 0, 0, 0, 3331,
+ 0, 3181, 0, 0, 0, 0, 0, 1400, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1032, 0, 0,
+ 301, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1405, 3439, 0, 0, 1393,
+ 0, 4608, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 167, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1373, 0, 0, 0, 0, 0, 0, 4351, 1366,
- 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2148, 0, 403,
- 2851, 0, 0, 0, 0, 2982, 0, 2851, 0, 0,
- 0, 0, 0, 1371, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 198, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1372, 3087,
- 0, 0, 1363, 0, 4351, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 278, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2384, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1852, 0, 0, 0, 0, 0, 0, 0, 3798, 3861,
- 0, 0, 0, 1531, 1737, 1737, 0, 8910, -206, 0,
- 1737, 1744, 0, 0, 84, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 479,17919, 0, 0, 0, 0, 4351, 0,
- 0, 0, 0, 0, 0, 0, 0,18191, 0, 0,
- 0, 0, 0, 0, 0, 868, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 233, 1047, 0, 0, 230,
- 1928, 0, 0, 1378, 513, 0, 0, 0, 0, 215,
- 0, 0, 4831, 1376, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1384, 0, 2553,
- 0, 0, 222, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1372, 0, 0, 0,17370, 4351,
- 0, 7940, 0, 225, 0, 0, 0, 0, 0, 0,
-17370, 0, 0, 0, 0, 0, 0, 60, 0, 703,
- 0, 0, 0, 1381, 0, 0, 0, 0, 1366, 0,
- 0, 0, 0, 4191, 0, 4351, 0, 0, 4030, 0,
- 4351, 4991, 0, 0, 0, 0, 0, -202, 0, 0,
- 0, 0, 313, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5535, 5640, 6142, 5965, 0, 6247, 0, 6319, 0, 0,
- 6469, 0, 6554, 0, 6692, 0, 6761, 0, 6830, 0,
- 6899, 0, 7117, 0, 7186, 0, 7324, 0, 7462, 0,
- 7600, 0, 7738, 0, 7876, 0, 0, 749, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1852, 0, 0, 0, 0, 1531, 0, 0, 0, 0,
- 0,11035, 0, 0, 817, 0, 0, 1339,15851, 0,
- 0, 0, 0, 0, 0, 0, 781, 774, 0, 0,
- 1385, 0, 0, 0, 0, 1820, 0, 0, 0, 0,
- 0, 0,11492, 0, 0, 0, 845, 0, 0, 0,
-11193,18364, 0, 0, 881, 920, 937, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 870, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1386, 0, 0, 0,
- 0, 0, 6961, 0, 0, 0, 261, 0, 117, 4511,
- 0, 0, 0, 0, 0, 0, 0, 1387, 0, 0,
- 0, 0, 0, 1388, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-17370, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4351, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 674, 0, 0, 0, 0, 0,
- 0, 0, 0, -169, 0, 576, 0, 0, 0, 0,
- 0, 0, 0, 0,11193, 0, 0, 0, 0, -206,
- 0, 9345, 0, 0, 1391, 0, 873, 0, 0, 0,
- 0, 1395, 0, 1346, 1348, 0, 0, 0, 0, 0,
- 1382,11351, 0, 0, 0, 0,18396, 0, 0, 0,
- 939, 0, 0, 0, 0, 0, 0, 2721, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4671, 0, 5151, 1399, 0, 0, 0,
- 0, 1396, 0, 0, 0, 939, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 771, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 940, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1394, 0, 0, 0, 0, 0, 957, 960, 0, 0,
- 0, 0, 0, 0, 0, 1401, 761, 1400, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 4831, 0, 0, 0, 0, 0, 1403, 0, 0,
- 0, 1401, 0, 0, 0,17370, 0, 752, 762, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1385, 0,15689, 0, 0, 0,
- 0, 0,18521, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 793, 0, 798, 0, 0, 0,
- 0, 1402, 0, 895, 1404, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 1407, 0, 0, 0,
- 0, 202, 0, 0,17370, 0, 0, 0, 0, 0,
- 0, 0, 113, 678, 0, 0, 0, 0, 0,18592,
-18191, 0, 386, 511, 449, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -208, 0, 0, 1020, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,18748, 0, -253,
-18191, 0, 522, 1410, 0, 1410, 0, 511, 0, 0,
- 0, 0, 0, 0, 1406, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,18791, 0, 0, 0,16125,
- 0, 0, 1411, 0, 0, 0, 364, 0, 532, 0,
- 0, 606, 0, 0, 1410, 0, 0, 0, 0, 0,
- 1409, 0, 0, 0, 0, 0, 0, 0, 3479, 1412,
- 493, 0, 0, 333, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1414, 0, 0, 0, 0, 0,
- 0, 0, 0, 3363, 0, 0, 1376, 0, 0,15957,
-16209, 0, 0, 0, 767, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 617, 0, 0, 0,18091,
- 0, 0,16041, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 5152, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,16293,
- 0, 0, 0, 0, 0, 767, 0, 0, 0, 0,
- 0, 198, 479, 0, 0, 0, 0, 0, 0, 479,
- 0, 0,15957, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 4830, 507, 0,16335, 0, 0, 0,
- 4990, 0, 3363, 0, 0, 0, 0, 0, 0, 0,
- 3363, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 257, 0, 584, 0, 647,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 824, 0, 692, 0, 0, 0, 0, 0,
- 0, 0,18191, 947, 0, 0, 0, 0, 0, 0,
- 0, 1390, 0, 438, 0, 0, 0, 3363, 0, 0,
- 963, 0, 0, 0, 0, 0, 0, 0, 0, 1417,
- 0,18191,18191, 0, 0,18259, 0, 0, 0, 0,
- 0, 0, 0, 0, 1418,15719, 0, 1420,18191,17507,
- 1425,18191, 0, 0, 0, 0, 0, 0, 1426, 0,
- 0, 0,18984, 0, 0, 0,18191, 0, 0, 0,
- 1427, 0, 0, 424, 0,18914,18954, 0, 0, 0,
- 1428, 0, 0, 0, 0, 0, 0, 1430, 0, 0,
-18191, 0, 716, 0, 968, 0, 0, 0, 0, 0,
- 1029, 0,18834,18874, 0, 0, 0, 0, 0, 0,
- 0, 0, 1469, 0, 1525, 0, 0, 0, 978, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 611, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0,18984,
- 0, 0,18634,18672, 0, 611, 0, 0, 0, 0,
- 0,15498, 0, 0, 0, 0, 0, 0, 0, 1376,
- 1376, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2296, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4570, 0, 0,
+ 0, 0, 0, 0, 0, 4048, 4111, 875, 0, 1769,
+ 1769, 0,10024, -204, 0, 1769, 1783, 0, 0, 317,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 516,19151, 0,
+ 0, 0, 0, 4608, 0, 0, 0, 0, 0, 0,
+ 0, 0,19578, 0, 0, 0, 0, 0, 0, 0,
+ 831, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 335, 951, 0, 0, 272, 1077, 0, 0, 1412, 716,
+ 0, 0, 0, 0, 303, 0, 0, 5260, 1413, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1419, 0, 2470, 0, 0, -263, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2881, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1405, 0, 0, 0,18392, 4608, 0, 0, 0,
+ 0, 0, 8592, 0, 304, 0, 0, 0, 0, 0,
+ 0,18392, 0, 0, 0, 0, 0, 0, 225, 0,
+ 799, 0, 0, 0, 1415, 0, 0, 0, 0, 1399,
+ 0, 0, 0, 0, 4445, 0, 4608, 0, 0, 4281,
+ 0, 4608, 5423, 0, 0, 0, 0, 0, -189, 0,
+ 0, 0, 0, 190, 0, 0, 0, 684, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5909, 6018, 6127, 6236, 0, 6705, 0, 0,
+ 0, 0, 6813, 0, 6885, 0, 0, 7144, 0, 7216,
+ 0, 7389, 0, 7490, 0, 7562, 0, 7663, 0, 7885,
+ 0, 7957, 0, 8101, 0, 8245, 0, 8389, 0, 8533,
+ 0, 5200, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4570, 0, 0, 0,
+ 0, 0, 0, 0, 0,11908, 0, 0, 924, 0,
+ 0, 1370,16676, 0, 0, 0, 0, 0, 0, 0,
+ 770, -238, 0, 0, 1421, 0, 0, 0, 0, 1876,
+ 0, 0, 0, 0, 0, 0,12213, 0, 0, 0,
+ 921, 0, 0, 0,12069,19731, 0, 0, 932, 935,
+ 936, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 851, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1424, 0, 0, 0, 0, 0, 7722, 0, 0, 0,
+ 324, 0, -7, 4934, 0, 0, 0, 0, 0, 0,
+ 0, 1423, 0, 0, 0, 0, 0, 1430, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2881, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0,18392, 0, 0,
+ 0, 0, 0, 1034, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4608, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 677,
+ 0, 0, 0, 0, 1428, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -169, 0, 592,
+ 0, 0, 0, 0, 0, 0,12069, 0, 0, 0,
+ 0, -204, 0,10185, 0, 0, 1434, 0, 864, 0,
+ 0, 0, 0, 1422, 0, 1387, 1392, 0, 0, 0,
+ 0, 0, 1073,19855, 0, 0, 0, 0,19771, 0,
+ 0, 0, 941, 0, 0, 0, 0, 0, 0, 2751,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5097, 0, 5586, 1438, 0,
+ 0, 0, 0, 1436, 0, 0, 0, 941, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -179, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 698, 0,
+ 0, 0, 0, 0, 2949, 642, 0, 0, 0, 1437,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 961, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1439, 0, 0, 0, 0, 0, 964, 967, 0,
+ 0, 0, 0, 0, 0, 0, 1440, 793, 1441, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 5260, 0, 0, 0, 0, 0, 1446, 0,
+ 0, 0, 1440, 0, 0, 0, 0,18392, 0, 0,
+ 0, 683, 715, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1421, 0,16511, 0,
+ 0, 0, 0, 0,19927, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 807, 0, 873, 0,
+ 0, 0, 0, 1444, 0, 870, 1442, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1452, 0,
+ 0, 0, 0, 0, 0, 0,18392, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -127, 733, 0, 0, 0, 0, 0,19974,19578, 0,
+ 361, 521, -219, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -194, 0,
+ 0, 1033, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,20021, 0, 169,19578, 0,
+ 530, 1454, 0, 1454, 0, 521, 0, 0, 0, 0,
+ 0, 0, 1450, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,20068, 0, 0, 0,16949,
+ 0, 0, 1456, 0, 0, 0, 610, 0, 579, 0,
+ 0, 596, 0, 0, 1454, 0, 0, 0, 0, 0,
+ 1458, 0, 0, 0, 0, 0, 0, 0, 3860, 1455,
+ -247, 0, 0, 319, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1460, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3758, 0, 0, 1413, 0, 0,16785,
+17031, 0, 0, 0, 790, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 583, 0, 0, 0,19334,
+ 0, 0,16867, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,19402, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,17113,
+ 0, 0, 0, 0, 0, 790, 0, 0, 0, 0,
+ 0, 301, 516, 0, 0, 0, 0, 0, 0, 516,
+ 0, 0,16785, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 5584, 526, 0,17155, 0, 0, 0,
+ 5746, 0, 3758, 0, 0, 0, 0, 0, 0, 0,
+ 3758, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 381, 0, 454, 0, 651,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 825, 0, 725, 0, 0, 0, 0, 0,
+ 0, 0,19578, 966, 0, 0, 0, 0, 0, 0,
+ 0, 1453, 0, 508, 0, 0, 0, 3758, 0, 0,
+ 979, 0, 0, 0, 0, 0, 0, 0, 0, 1459,
+ 0,19578,19578, 0, 0,19618, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1461,13087, 0, 1464,19578,18532,
+ 1469,19578, 0, 0, 0, 0, 0, 0, 1470, 0,
+ 0, 0,20144, 0, 0, 0,19578, 0, 0, 0,
+ 1471, 0, 0, 113, 0,12817,12952, 0, 0, 0,
+ 1475, 0, 0, 0, 0, 0, 0, 1476, 0, 0,
+19578, 0, -237, 0, 985, 0, 0, 0, 0, 0,
+ 1039, 0,19073,20106, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1525, 0, 1579, 0, 0, 0, 994, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 604, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,20144,
+ 0, 0,12547,12682, 0, 604, 0, 0, 0, 0,
+ 0,16421, 0, 0, 0, 0, 0, 0, 0, 1413,
+ 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
protected static readonly short [] yyGindex = { 0,
- 0, 1757, 0, 0, 0, -1, -16, -178, -44, -41,
- 0, 1797, 1806, 103, 0, 6, 0, 0, 0, 0,
- 0, 0,-1157, -774, -216, -708, 0, 0, 0, 0,
- 0, -221, 0, 0, 0, 776, 0, 883, 0, 0,
- 0, 0, 630, 632, -17, -227, 0, -47, 0, -112,
- 430, 0, 487, -587, -577, -576, -541, -537, -525, -516,
- -503, 0, 0,-1152, 0,-1187, 0, 434,-1258, 0,
- 3, 0, 0, 0, 596,-1183, 0, 0, 0, -3,
- 267, 0, 0, 0, 306,-1151, 0, -281, -301, -354,
- 0, 0, 0, -985, 262, 0, 0, -529, 0, 0,
- 320, 0, 0, 299, 0, 0, 401, 0, -630, -856,
- 0, 0, 0, 0, 0, -404, 335,-1396, -10, 0,
- 0, 0, 893, 898, 900, 1089, -572, 0, 0, -336,
- 902, 436, 0, -905, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 234, 0, 0,
- 0, 0, 0, 0, 0, 0, 496, 0, 0, 0,
- -315, 423, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 505, 0, -531, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 246, 0, 0, 331, 0, 0, 336,
- 340, 266, 0, 0, 0, 0, 0, 0, 0, 0,
- 598, 0, 0, 0, 0, -86, 0, 135, -373, -304,
- 1277, 0, 421, 0, -349, 0, 966, 0, 1577, 148,
- -305, -274, -81, 203, 1232, 0, 601, 0, -21, 509,
- 1495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -267,
- 0, 28, 0, -352, 0, -280, 0, 0, 0, 931,
- -927, -313, -132, 554, 0, 1026, 0, 1276, -343, 1160,
- 0, 0, 828, 1851, 0, 0, 0, 0, 1137, 0,
- 0, 0, 1593, 0, 0, 0, 0, 0, 1627, 986,
- 987, 0, 946, 0, 812, 984, 1514, 1515, 1513, 1516,
- 1517, 0, 1512, 0, 0, 0, 1084, 1364, -569, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -306,
- 748, 0, -444, 0, 0, 0, 0, 0, -475, 0,
- 681, 0, 573, 0, 0, 0, 0, 0, 787, -563,
- -11, -334, -7, 0, 1796, 0, 48, 0, 85, 91,
- 111, 128, 157, 173, 175, 181, 193, 194, 0, -662,
- 0, -23, 0, 0, 882, 0, 804, 0, 0, 0,
- 0, 784, -959, 862, -931, 0, 905, -489, 0, 0,
- 0, 0, 0, 0, 800, 0, 802, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 724, 0, 0, 0, 0, 0, 0, 0,
- 0, -31, 0, 1416, 763, 0, 0, 985, 0, 0,
- 0, 0, 0, 0, -176, 0, 0, 0, 0, 0,
- 1529, 1283, 0, 0, 0, 0, 1532, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 607, 0, 0, 0,
- 0, 0, 0, 0, 0, 731, 0, 0, 0, 0,
- 0, 0, 35, 1054, 0, 0, 0, 1062,
+ 0, 1794, 0, 0, 0, -3, -14, -182, -47, -27,
+ 0, 1846, 1854, 590, 0, 0, -183, 0, 0, 0,
+ 0, 0, 0,-1278, -800, -227, -557, 0, 0, 0,
+ 0, 0, -230, 0, 0, 0, 780, 0, 906, 0,
+ 0, 0, 0, 618, 624, -17, -231, 0, -46, 0,
+ 0, -559, 417, 0, 470, -628, -599, -598, -596, -592,
+ -588, -573, -515, 0, 0, -837, 0, -942, 0, 416,
+-1297, 0, 38, 0, 0, 0, 581,-1234, 0, 0,
+ 0, 346, 250, 0, 0, 0, 288,-1214, 0, -287,
+ -303, -445, 0, 0, 0, -999, 236, 0, 0, -538,
+ 0, 0, 302, 0, 0, 275, 0, 0, 382, 0,
+ -564, -907, 0, 0, 0, 0, 0, -435, 310,-1457,
+ -10, 0, 0, 0, 909, 911, 915, 1115, -560, 0,
+ 0, -336, 927, 400, 0,-1254, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 198,
+ 0, 0, 0, 0, 0, 0, 0, 0, 463, 0,
+ 0, 0, -292, 393, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 477, 0, -541, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 214, 0, 0, 305, 0,
+ 0, 307, 311, 224, 0, 0, 0, 0, 0, 0,
+ 0, 0, 556, 0, 0, 0, 0, -86, 0, 872,
+ -316, -340, 1516, 0, 377, 0, -433, 0, 960, 0,
+ 1593, 65, -301, -278, -55, 259, 1009, 0, 562, 0,
+ -41, 942, -390, 0, 0, -386, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -381, 0, 0, 0, 0,
+ 0, 0, -269, 0, 0, 1320, 0, 0, 374, 0,
+ -366, 0, -279, 0, 0, 0, 922, -939, -315, -134,
+ 569, 0, 1005, 0, 1308, -600, -43, -348, 1147, 0,
+ 0, 795, 1857, 0, 0, 0, 0, 1119, 0, 0,
+ 0, 1583, 0, 0, 0, 0, 0, 1606, 987, 988,
+ 1510, -388, 1511, 0, 0, 0, 0, 774, 117, 0,
+ 771, 844, 984, 1506, 1507, 1505, 1508, 1509, 0, 1504,
+ 0, 0, 0, 1058, 1361, -579, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -306, 695, 0, -890,
+ 0, 0, 0, 0, 0, -487, 0, 617, 0, 513,
+ 0, 0, 0, 0, 0, 737, -577, -15, -346, 1,
+ 0, 1790, 0, 62, 0, 100, 101, 140, 147, 151,
+ 157, 175, 176, 179, 184, 0, -755, 0, 0, 0,
+ 839, 0, 753, 0, 0, 0, 0, 738, -987, 823,
+ -943, 0, 867, -500, 0, 0, 0, 0, 0, 0,
+ 752, 0, 758, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 669, 0,
+ 0, 0, 0, 0, 0, 0, 0, -39, 0, 1409,
+ 708, 0, 0, 0, 0, 963, 0, 0, 0, 0,
+ 0, 0, -175, 0, 0, 0, 0, 0, 1529, 1245,
+ 0, 0, 0, 0, 1531, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 554, 0, 0, 0, 0, 0,
+ 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
+ 20, 1037, 0, 0, 0, 1046,
};
- protected static readonly short [] yyTable = { 110,
- 550, 193, 18, 547, 564, 159, 112, 238, 44, 160,
- 239, 622, 817, 519, 459, 458, 823, 497, 761, 597,
- 476, 299, 572, 545, 501, 196, 783, 580, 432, 543,
- 861, 862, 397, 1108, 531, 389, 265, 398, 264, 866,
- 332, 339, 612, 643, 1240, 346, 318, 1086, 257, 988,
- 254, 634, 1274, 710, 1163, 1054, 310, 873, 1164, 886,
- 317, 577, 744, 613, 164, 385, 1164, 829, 14, 319,
- 933, 322, 254, 1495, 321, 903, 20, 1261, 355, 232,
- 623, 1383, 234, 6, 333, 340, 1038, 51, 745, 268,
- 727, 1303, 1113, 292, 293, 294, 858, 300, 301, 51,
- 1390, 165, 314, 315, 194, 381, 1311, 166, 320, 323,
- 754, 325, 1642, 329, 321, 340, 1152, 1324, 342, 343,
- 746, 558, 386, 201, 472, 762, 1110, 167, 434, 968,
- 1146, 969, 1450, 462, 1111, 1452, 463, 1458, 833, 863,
- 788, 1261, 1152, 110, 168, 396, 1144, 255, 238, 159,
- 112, 460, 326, 160, 198, 201, 1330, 859, 922, 728,
- 886, 709, 539, 857, 115, 51, 255, 501, 1101, 1038,
- 710, 200, 710, 169, 1038, 995, 1038, 295, 997, 1038,
- 1038, 864, 1038, 1038, 95, 296, 95, 1, 255, 170,
- 255, 171, 475, 1503, 1398, 460, 256, 172, 901, 465,
- 466, 904, 1621, 499, 502, 1038, 373, 115, 164, 173,
- 174, 115, 51, 1165, 886, 256, 856, 506, 43, 116,
- 1113, 1165, 198, 198, 95, 747, 809, 710, 266, 374,
- 255, 15, 1207, 1643, 500, 473, 375, 256, 497, 256,
- 505, 815, 476, 198, 573, 165, 571, 297, 612, 574,
- 372, 166, 875, 297, 530, 1446, 389, 879, 881, 597,
- 1038, 467, 116, 1448, 507, 970, 116, 195, 515, 613,
- 264, 167, 297, 755, 540, 1571, 541, 518, 255, 256,
- 264, 1003, 522, 524, 877, 576, 597, 323, 168, 2,
- 517, 396, 579, 1147, 1075, 1451, 613, 554, 1453, 373,
- 1459, 570, 1595, 298, 590, 567, 379, 569, 115, 298,
- 553, 522, 1054, 568, 1605, 393, 1606, 169, 902, 1504,
- 1502, 1338, 374, 1308, 582, 583, 880, 256, 298, 375,
- 542, 544, 1247, 170, 1229, 171, 376, 198, 198, 626,
- 6, 172, 596, 631, 587, 588, 598, 502, 502, 267,
- 1186, 620, 920, 173, 174, 732, 3, 4, 5, 6,
- 732, 1318, 737, 116, 732, 619, 930, 791, 1041, 1589,
- 603, 882, 1054, 344, 1265, 977, 1567, 500, 640, 732,
- 1065, 647, 648, 649, 650, 651, 652, 653, 654, 655,
- 656, 657, 264, 711, 713, 923, 955, 717, 1466, 900,
- 501, 892, 198, 373, 980, 1533, 732, 1560, 931, 665,
- 1616, 510, 297, 707, 238, 613, 1428, 460, 1159, 769,
- 1296, 921, 393, 793, 738, 732, 374, 739, 198, 825,
- 393, 1426, 393, 1339, 393, 236, 978, 712, 714, 115,
- 198, 564, 1639, 852, 1309, 16, 1118, 827, 198, 382,
- 837, 1041, 1248, 549, 198, 837, 1041, 1096, 1041, 297,
- 840, 1041, 1041, 1612, 1041, 1041, 725, 781, 298, 789,
- 413, 1613, 115, 960, 1073, 1079, 236, 1473, 393, 748,
- 1427, 1319, 198, 198, 792, 1054, 883, 1041, 297, 1590,
- 765, 1054, 782, 961, 116, 511, 502, 383, 779, 729,
- 730, 115, 1009, 837, 770, 742, 414, 49, 198, 255,
- 236, 966, 369, 198, 1467, 298, 345, 497, 2, 236,
- 893, 236, 839, 981, 812, 119, 640, 116, 821, 531,
- 612, 757, 1614, 236, 1012, 758, 1176, 501, 780, 1297,
- 794, 1119, 1041, 1246, 624, 1151, 826, 198, 832, 967,
- 497, 613, 1250, 203, 625, 95, 116, 842, 256, 384,
- 844, 669, 379, 865, 828, 837, 780, 838, 119, 961,
- 961, 1474, 119, 437, 372, 198, 198, 841, 853, 876,
- 502, 1277, 596, 475, 896, 830, 598, 415, 416, 897,
- 853, 1074, 20, 781, 386, 198, 759, 906, 540, 369,
- 827, 837, 911, 912, 540, 1216, 1488, 837, 198, 596,
- 500, 1341, 1360, 598, 837, 1063, 670, 462, 884, 884,
- 919, 297, 599, 373, 369, 898, 438, 780, 369, 476,
- 364, 126, 439, 126, 1341, 1521, 1522, 613, 126, 1524,
- 386, 1323, 889, 512, 475, 379, 374, 861, 1058, 379,
- 489, 513, 1543, 375, 781, 1550, 827, 1597, 1598, 540,
- 376, 1360, 837, 115, 908, 1014, 910, 809, 228, 119,
- 1566, 1602, 369, 439, 379, 918, 982, 629, 379, 600,
- 379, 379, 379, 379, 1341, 490, 732, 630, 379, 627,
- 476, 250, 812, 379, 1588, 251, 836, 812, 812, 890,
- 914, 342, 753, 732, 514, 1095, 943, 489, 732, 1091,
- 1085, 1067, 732, 550, 1633, 440, 985, 502, 116, 198,
- 441, 55, 442, 1603, 719, 443, 444, 732, 445, 446,
- 944, 753, 1429, 1361, 962, 753, 423, 424, 732, 628,
- 236, 115, 490, 1362, 1363, 252, 198, 500, 1235, 530,
- 730, 51, 204, 719, 732, 783, 440, 945, 439, 364,
- 942, 441, 522, 442, 372, 364, 443, 444, 115, 445,
- 446, 1155, 364, 732, 730, 264, 364, 821, 731, 1364,
- 379, 1430, 1361, 1365, 812, 1331, 812, 716, 1269, 364,
- 815, 605, 1362, 1363, 1454, 1366, 116, 228, 606, 231,
- 119, 730, 731, 975, 1367, 379, 447, 719, 1468, 379,
- 607, 364, 379, 373, 379, 1132, 716, 1368, 1006, 379,
- 993, 364, 994, 116, 716, 998, 992, 999, 1364, 731,
- 1486, 1032, 1365, 119, 597, 1055, 374, 1004, 1001, 502,
- 853, 440, 1000, 375, 1366, 502, 441, 457, 442, 751,
- 376, 443, 444, 1367, 445, 446, 990, 372, 1123, 1005,
- 721, 345, 119, 390, 236, 198, 1368, 345, 95, 640,
- 722, 255, 1093, 391, 346, 640, 597, 1415, 751, 373,
- 1414, 535, 1208, 269, 1018, 738, 821, 535, 739, 721,
- 440, 198, 392, 393, 1058, 441, 1187, 442, 461, 722,
- 443, 444, 374, 445, 446, 1620, 373, 536, 373, 375,
- 249, 537, 394, 1114, 1032, 1116, 376, 1243, 1121, 1032,
- 256, 1032, 671, 395, 1032, 1032, 371, 1032, 1032, 374,
- 812, 374, 518, 1034, 429, 386, 375, 1414, 375, 115,
- 748, 115, 1047, 376, 898, 557, 430, 95, 756, 1080,
- 1066, 371, 387, 755, 1082, 759, 1329, 1082, 558, 759,
- 1276, 1132, 95, 761, 198, 326, 253, 812, 373, 821,
- 597, 1415, 1099, 756, 1109, 559, 374, 302, 755, 303,
- 198, 720, 756, 375, 759, 115, 1554, 755, 115, 208,
- 386, 374, 946, 759, 116, 502, 116, 198, 375, 947,
- 926, 198, 1179, 1439, 1181, 1032, 1182, 462, 812, 95,
- 812, 1141, 927, 812, 203, 1439, 1034, 1145, 419, 420,
- 326, 1034, 1028, 1034, 119, 1131, 1034, 1034, 1408, 1034,
- 1034, 326, 421, 422, 605, 1420, 952, 341, 497, 476,
- 116, 606, 847, 116, 1136, 748, 1378, 597, 1607, 1256,
- 847, 1197, 1138, 607, 1139, 425, 1140, 821, 1443, 364,
- 522, 364, 1465, 1198, 364, 364, 302, 1411, 302, 198,
- 1443, 427, 364, 302, 1411, 683, 364, 683, 1107, 1465,
- 893, 1283, 1284, 292, 292, 1629, 426, 198, 198, 364,
- 1387, 228, 292, 233, 428, 853, 550, 812, 1497, 812,
- 1498, 812, 119, 431, 1183, 1028, 1252, 1034, 1650, 1651,
- 1028, 1188, 1028, 1189, 303, 1028, 1028, 844, 1028, 1028,
- 864, 364, 464, 844, 864, 844, 864, 469, 864, 119,
- 853, 1190, 498, 844, 853, 844, 853, 844, 853, 848,
- 1287, 502, 1082, 848, 69, 69, 518, 848, 69, 417,
- 418, 364, 364, 198, 364, 364, 62, 596, 764, 1217,
- 821, 598, 765, 183, 853, 183, 549, 183, 196, 471,
- 196, 1131, 196, 1228, 198, 799, 810, 344, 518, 800,
- 537, 518, 198, 238, 352, 1259, 460, 1075, 1260, 1075,
- 963, 369, 520, 1325, 964, 369, 1028, 364, 369, 596,
- 369, 812, 521, 598, 984, 369, 562, 1255, 985, 496,
- 236, 238, 1010, 1376, 460, 24, 765, 25, 1087, 855,
- 26, 855, 985, 1231, 518, 27, 1058, 1232, 115, 28,
- 685, 687, 689, 691, 399, 812, 1183, 45, 30, 369,
- 911, 546, 915, 70, 911, 32, 915, 70, 117, 1259,
- 33, 171, 1260, 171, 34, 400, 401, 402, 403, 404,
- 405, 406, 407, 408, 409, 551, 36, 847, 37, 502,
- 387, 847, 38, 1283, 1284, 1340, 1359, 555, 1260, 739,
- 39, 40, 575, 116, 41, 1032, 1033, 563, 812, 552,
- 178, 117, 178, 596, 556, 117, 199, 598, 1340, 640,
- 119, 1260, 119, 410, 411, 412, 578, 179, 812, 179,
- 518, 983, 72, 983, 72, 1335, 115, 1221, 1222, 338,
- 338, 131, 586, 131, 602, 1359, 1394, 202, 739, 202,
- 172, 617, 172, 24, 618, 25, 723, 308, 26, 308,
- 338, 632, 138, 27, 138, 380, 119, 28, 1340, 119,
- 1656, 1260, 315, 115, 315, 974, 30, 976, 115, 1292,
- 236, 726, 115, 32, 199, 199, 198, 743, 33, 380,
- 596, 116, 34, 766, 598, 1419, 374, 1335, 763, 374,
- 469, 1617, 1618, 768, 36, 199, 37, 965, 965, 795,
- 38, 115, 117, 732, 732, 1424, 1425, 790, 39, 40,
- 676, 678, 41, 681, 683, 85, 693, 695, 116, 796,
- 364, 797, 798, 116, 835, 836, 836, 116, 364, 843,
- 364, 836, 845, 1457, 846, 847, 1460, 848, 836, 1477,
- 867, 198, 868, 1419, 338, 338, 871, 872, 887, 364,
- 364, 888, 874, 878, 907, 909, 116, 913, 924, 925,
- 462, 115, 115, 198, 934, 935, 938, 43, 956, 364,
- 200, 1534, 957, 950, 739, 958, 959, 364, 965, 983,
- 364, 986, 893, 989, 987, 1002, 836, 1008, 1561, 199,
- 199, 739, 1022, 1027, 1029, 1034, 1037, 380, 38, 1042,
- 1045, 1573, 1575, 1043, 739, 739, 1048, 1046, 821, 338,
- 1051, 1053, 1059, 1419, 1071, 1072, 116, 116, 1075, 1081,
- 518, 1090, 540, 1104, 1097, 198, 1105, 198, 1561, 1561,
- 1124, 739, 739, 117, 198, 338, 1134, 1583, 1148, 115,
- 364, 1149, 1142, 198, 198, 1150, 198, 338, 1158, 1160,
- 1161, 1171, 1442, 1172, 199, 338, 1177, 1174, 1178, 549,
- 1180, 338, 1192, 1196, 1442, 1200, 117, 1199, 1201, 1442,
- 821, 198, 1209, 1205, 198, 1202, 661, 1204, 1213, 1220,
- 199, 1223, 1224, 1442, 1232, 1561, 1231, 1241, 739, 338,
- 338, 829, 199, 1251, 116, 117, 1258, 1286, 1289, 119,
- 199, 1270, 502, 502, 1295, 1442, 199, 821, 1291, 1294,
- 1298, 1299, 1307, 1304, 1312, 338, 1314, 1328, 1320, 1321,
- 338, 1329, 1635, 1635, 1372, 1374, 1373, 1381, 1431, 1644,
- 1644, 1445, 640, 640, 199, 199, 1379, 1377, 1380, 1384,
- 1391, 1396, 1449, 1462, 1655, 1471, 1463, 1472, 1480, 1474,
- 1482, 1485, 1453, 1483, 338, 117, 1487, 1491, 1494, 661,
- 199, 1493, 1414, 1489, 661, 199, 661, 661, 661, 661,
- 661, 661, 661, 661, 661, 661, 661, 1500, 1501, 1507,
- 1510, 1514, 338, 338, 1515, 1513, 1544, 119, 1525, 661,
- 1517, 661, 1526, 661, 1556, 661, 661, 661, 1529, 199,
- 1539, 1555, 1546, 1558, 1559, 1565, 1568, 1579, 1582, 1569,
- 1580, 661, 1584, 1585, 1587, 1600, 1604, 1609, 1611, 1593,
- 1608, 1619, 1603, 1602, 119, 1627, 1628, 199, 199, 119,
- 353, 1647, 1649, 119, 357, 359, 361, 363, 365, 367,
- 369, 371, 1653, 1654, 1658, 9, 1071, 199, 573, 950,
- 661, 533, 951, 1063, 685, 38, 534, 117, 489, 38,
- 199, 965, 119, 686, 532, 33, 33, 767, 857, 490,
- 38, 34, 337, 364, 232, 38, 106, 34, 958, 38,
- 858, 881, 38, 849, 850, 882, 916, 755, 918, 341,
- 917, 920, 780, 732, 38, 38, 364, 732, 755, 38,
- 38, 364, 364, 134, 116, 38, 311, 38, 38, 38,
- 38, 141, 135, 117, 312, 38, 142, 235, 54, 38,
- 21, 38, 119, 119, 364, 1125, 338, 1041, 1226, 24,
- 1227, 38, 1422, 38, 38, 117, 38, 364, 364, 1385,
- 38, 1423, 364, 1275, 1601, 364, 1570, 364, 1557, 364,
- 364, 364, 364, 338, 1475, 1610, 1586, 364, 1552, 1068,
- 38, 364, 117, 1064, 1069, 364, 1070, 38, 38, 953,
- 1455, 199, 1389, 364, 1646, 1392, 364, 1476, 364, 364,
- 1638, 1581, 1576, 364, 364, 1574, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 199, 1637,
- 119, 1315, 364, 364, 1499, 1038, 565, 1316, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 672, 364,
- 364, 1089, 886, 364, 364, 364, 364, 364, 1015, 1162,
- 364, 364, 305, 477, 949, 364, 364, 364, 364, 364,
- 364, 364, 364, 971, 353, 37, 584, 1100, 697, 701,
- 699, 706, 1239, 703, 364, 705, 478, 364, 850, 364,
- 1007, 364, 1301, 1397, 364, 1211, 433, 1203, 1154, 479,
- 364, 1218, 338, 1173, 481, 1143, 1210, 581, 1281, 482,
- 1212, 483, 484, 485, 486, 834, 1249, 353, 721, 487,
- 1102, 722, 1395, 488, 1288, 1039, 1036, 1434, 338, 0,
- 0, 0, 0, 0, 0, 489, 0, 0, 490, 0,
- 491, 0, 0, 917, 0, 0, 0, 199, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 117, 492, 117, 36, 0, 0, 0,
- 0, 1435, 0, 199, 0, 0, 659, 661, 663, 0,
- 0, 581, 581, 581, 581, 581, 581, 581, 581, 581,
- 581, 581, 581, 581, 581, 581, 581, 0, 0, 0,
- 0, 338, 0, 0, 0, 0, 0, 0, 0, 117,
- 0, 0, 117, 0, 0, 0, 24, 338, 0, 0,
- 24, 1436, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 0, 0, 338, 0, 24, 0, 338, 0,
- 24, 0, 0, 24, 0, 0, 199, 1044, 0, 0,
- 0, 0, 0, 0, 0, 24, 24, 0, 0, 0,
- 24, 24, 199, 0, 0, 0, 24, 0, 24, 24,
- 24, 24, 0, 0, 0, 0, 24, 0, 0, 199,
- 24, 0, 24, 199, 0, 0, 0, 833, 0, 0,
- 0, 0, 24, 0, 0, 24, 0, 24, 0, 0,
- 0, 24, 0, 0, 0, 0, 581, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 24, 0, 0, 338, 338, 0, 21, 24, 24,
- 1044, 0, 37, 0, 0, 1044, 37, 1044, 1044, 1044,
- 1044, 1044, 1044, 1044, 1044, 1044, 1044, 37, 0, 0,
- 0, 199, 37, 0, 0, 0, 37, 0, 0, 37,
- 1044, 0, 1044, 0, 1044, 0, 1044, 1044, 1044, 199,
- 199, 37, 37, 0, 0, 0, 37, 37, 0, 0,
- 0, 0, 37, 870, 37, 37, 37, 37, 0, 0,
- 338, 0, 37, 0, 0, 0, 37, 0, 37, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
- 37, 37, 0, 37, 0, 0, 0, 37, 0, 338,
- 0, 1044, 0, 36, 0, 0, 0, 36, 0, 0,
- 0, 444, 0, 894, 895, 199, 541, 37, 36, 444,
- 0, 444, 541, 36, 0, 37, 353, 36, 0, 0,
- 36, 0, 117, 0, 0, 0, 199, 0, 0, 0,
- 444, 444, 36, 36, 199, 0, 0, 36, 36, 0,
- 0, 0, 0, 36, 0, 36, 36, 36, 36, 0,
- 444, 0, 0, 36, 0, 0, 0, 36, 444, 36,
- 0, 444, 0, 0, 0, 0, 0, 541, 664, 36,
- 0, 0, 36, 0, 36, 0, 0, 24, 36, 25,
- 0, 0, 26, 0, 0, 0, 0, 27, 0, 0,
- 0, 28, 0, 545, 0, 0, 0, 0, 36, 0,
- 30, 0, 0, 0, 0, 36, 36, 32, 0, 0,
- 117, 0, 33, 833, 0, 0, 34, 0, 833, 833,
- 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
- 37, 0, 0, 0, 38, 0, 0, 353, 0, 0,
- 0, 833, 39, 40, 0, 0, 41, 117, 0, 85,
- 0, 0, 117, 0, 833, 833, 117, 0, 0, 833,
- 0, 0, 833, 0, 833, 0, 833, 833, 833, 833,
- 0, 0, 0, 338, 833, 0, 0, 0, 833, 0,
- 0, 0, 833, 0, 0, 117, 0, 0, 0, 0,
- 833, 0, 0, 833, 0, 833, 833, 0, 0, 0,
- 833, 833, 0, 833, 833, 833, 833, 833, 833, 833,
- 833, 833, 833, 833, 0, 0, 0, 0, 199, 833,
- 833, 0, 0, 0, 0, 833, 833, 833, 833, 833,
- 833, 380, 833, 833, 833, 0, 833, 833, 338, 0,
- 833, 833, 833, 833, 0, 117, 117, 833, 833, 0,
- 0, 0, 833, 833, 833, 833, 833, 833, 833, 833,
- 338, 0, 952, 24, 0, 25, 0, 0, 26, 0,
- 1332, 833, 0, 27, 833, 0, 833, 28, 833, 0,
- 0, 833, 0, 199, 0, 0, 30, 833, 0, 0,
- 0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
- 1333, 0, 34, 0, 0, 199, 0, 0, 0, 0,
- 0, 0, 0, 0, 36, 0, 37, 581, 0, 0,
- 38, 1334, 338, 117, 338, 0, 0, 0, 39, 40,
- 0, 338, 41, 0, 0, 85, 0, 0, 0, 0,
- 338, 338, 0, 338, 0, 0, 0, 0, 0, 545,
- 0, 0, 0, 0, 545, 545, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 199, 338, 199,
- 0, 338, 0, 0, 0, 0, 199, 545, 0, 0,
- 0, 0, 0, 0, 0, 199, 199, 0, 199, 0,
- 545, 545, 0, 0, 0, 545, 0, 0, 545, 0,
- 545, 0, 545, 545, 545, 545, 0, 0, 0, 0,
- 545, 0, 0, 199, 545, 0, 199, 380, 545, 0,
- 0, 0, 0, 0, 0, 0, 545, 0, 0, 545,
- 875, 545, 545, 0, 0, 0, 545, 545, 0, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 0, 0, 0, 0, 0, 545, 545, 545, 0, 0,
- 0, 545, 545, 0, 545, 545, 545, 545, 545, 545,
- 545, 0, 545, 545, 0, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 0, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
- 545, 545, 545, 545, 545, 545, 545, 545, 0, 0,
- 545, 0, 545, 0, 545, 0, 0, 545, 952, 952,
- 0, 0, 0, 545, 0, 0, 952, 952, 952, 952,
- 952, 0, 952, 952, 0, 952, 952, 952, 952, 952,
- 952, 952, 952, 0, 0, 0, 0, 952, 0, 952,
- 952, 952, 952, 952, 952, 0, 0, 952, 0, 0,
- 354, 952, 952, 0, 952, 952, 952, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 952, 0, 952, 0,
- 952, 952, 0, 0, 952, 0, 952, 952, 952, 952,
- 952, 952, 952, 952, 952, 952, 952, 952, 0, 952,
- 0, 0, 952, 952, 0, 0, 952, 952, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 952, 952, 952, 952, 952, 0, 0, 0, 0,
- 952, 952, 0, 0, 952, 0, 0, 0, 0, 952,
- 952, 952, 952, 952, 0, 0, 0, 952, 0, 952,
- 0, 0, 0, 0, 0, 952, 952, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 952, 952, 952, 952, 0, 952, 875, 875, 0, 0,
- 0, 394, 952, 0, 875, 875, 875, 875, 875, 0,
- 875, 875, 0, 875, 875, 875, 875, 875, 875, 875,
- 0, 0, 0, 0, 0, 875, 0, 875, 875, 875,
- 875, 875, 875, 0, 0, 875, 0, 0, 0, 875,
- 875, 0, 875, 875, 875, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 875, 0, 875, 0, 875, 875,
- 0, 0, 875, 0, 875, 875, 875, 875, 875, 875,
- 875, 875, 875, 875, 875, 875, 0, 875, 0, 0,
- 875, 875, 0, 0, 875, 875, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 875,
- 875, 875, 875, 875, 0, 0, 364, 0, 875, 875,
- 0, 0, 875, 0, 0, 0, 0, 875, 875, 875,
- 875, 875, 0, 0, 0, 875, 354, 875, 0, 0,
- 0, 354, 354, 875, 875, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 354, 0, 0, 0, 875, 875,
- 875, 875, 0, 875, 0, 0, 0, 354, 354, 0,
- 875, 0, 354, 0, 0, 354, 0, 354, 0, 354,
- 354, 354, 354, 0, 0, 0, 0, 354, 0, 0,
- 0, 354, 0, 0, 0, 354, 0, 0, 0, 0,
- 0, 0, 0, 354, 0, 0, 354, 0, 354, 354,
- 0, 399, 0, 354, 354, 0, 354, 354, 354, 354,
- 354, 354, 354, 354, 354, 354, 354, 0, 0, 0,
- 0, 0, 354, 354, 0, 0, 0, 0, 354, 354,
- 354, 354, 354, 354, 0, 354, 354, 354, 0, 354,
- 354, 0, 0, 354, 354, 354, 354, 394, 0, 0,
- 354, 354, 394, 394, 0, 354, 354, 354, 354, 354,
- 354, 354, 354, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 354, 394, 0, 354, 0, 354,
- 0, 354, 0, 0, 354, 0, 0, 0, 394, 394,
- 354, 0, 0, 394, 0, 0, 394, 0, 394, 0,
- 394, 394, 394, 394, 0, 0, 0, 0, 394, 0,
- 0, 0, 394, 0, 0, 0, 394, 0, 0, 0,
- 0, 0, 0, 0, 394, 0, 0, 394, 0, 394,
- 394, 0, 0, 0, 394, 394, 0, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 0, 0,
- 0, 0, 364, 394, 394, 0, 0, 0, 364, 394,
- 394, 0, 394, 394, 394, 0, 394, 394, 394, 0,
- 394, 394, 31, 0, 394, 394, 394, 394, 0, 0,
- 0, 394, 394, 0, 0, 0, 394, 394, 394, 394,
- 394, 394, 394, 394, 364, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 394, 0, 0, 394, 0,
- 394, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 394, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 364, 0, 0, 0, 364,
- 364, 0, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 0, 0, 0, 399, 0, 364,
- 0, 0, 0, 399, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 0, 364, 364, 0, 0, 364,
- 364, 364, 364, 364, 0, 0, 364, 364, 25, 0,
- 0, 364, 364, 364, 364, 364, 364, 364, 364, 399,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 364, 0, 0, 364, 0, 364, 0, 364, 0, 0,
- 364, 0, 0, 0, 0, 0, 364, 0, 0, 0,
- 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,
- 399, 0, 0, 0, 399, 399, 0, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399, 0, 0,
- 0, 0, 0, 0, 399, 0, 0, 0, 0, 399,
- 399, 399, 399, 399, 399, 0, 399, 399, 399, 0,
- 399, 399, 0, 0, 399, 399, 399, 399, 0, 0,
- 0, 399, 399, 0, 0, 0, 399, 399, 399, 399,
- 399, 399, 399, 399, 0, 0, 0, 0, 0, 0,
- 0, 5, 0, 0, 0, 399, 0, 0, 399, 0,
- 399, 0, 399, 0, 0, 399, 0, 0, 31, 31,
- 0, 399, 0, 31, 0, 0, 0, 31, 0, 31,
- 0, 0, 31, 0, 31, 31, 0, 31, 0, 31,
- 0, 31, 0, 31, 31, 31, 31, 0, 1052, 31,
- 31, 0, 0, 0, 0, 31, 0, 31, 31, 31,
- 0, 0, 31, 31, 31, 0, 31, 0, 0, 31,
- 0, 31, 31, 31, 31, 0, 0, 0, 31, 31,
- 31, 0, 0, 31, 31, 31, 0, 0, 0, 0,
- 0, 0, 31, 31, 0, 31, 31, 0, 31, 31,
- 31, 0, 0, 0, 31, 0, 0, 0, 0, 0,
- 0, 51, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
- 31, 31, 31, 0, 0, 25, 0, 0, 0, 25,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 25, 0, 0, 0, 7, 25, 0, 0, 0, 25,
- 0, 0, 25, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 25, 0, 0, 35, 25,
- 25, 31, 35, 0, 0, 25, 0, 25, 25, 25,
- 25, 0, 0, 35, 0, 25, 0, 1053, 35, 25,
- 0, 25, 35, 0, 0, 35, 0, 0, 0, 0,
- 0, 25, 0, 0, 25, 0, 25, 35, 35, 0,
- 25, 0, 35, 35, 0, 0, 0, 0, 35, 0,
- 35, 35, 35, 35, 0, 0, 0, 0, 35, 0,
- 25, 0, 35, 0, 35, 0, 0, 25, 25, 0,
- 0, 0, 0, 0, 35, 0, 0, 35, 5, 35,
- 52, 0, 51, 35, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 51, 0, 0, 0, 0, 51, 0,
- 0, 0, 51, 35, 0, 51, 0, 0, 0, 0,
- 0, 35, 0, 0, 0, 0, 0, 51, 51, 0,
- 0, 0, 51, 51, 0, 1052, 0, 0, 51, 51,
- 51, 51, 51, 51, 0, 0, 0, 0, 51, 0,
- 51, 0, 51, 0, 51, 51, 0, 0, 0, 51,
- 0, 0, 51, 0, 51, 0, 0, 51, 0, 51,
- 0, 0, 0, 51, 51, 51, 0, 0, 0, 51,
- 51, 0, 0, 0, 0, 51, 0, 51, 51, 51,
- 51, 0, 0, 51, 0, 51, 0, 0, 51, 51,
- 0, 51, 51, 0, 0, 0, 0, 0, 0, 0,
- 0, 51, 0, 51, 51, 0, 51, 0, 51, 0,
- 51, 0, 51, 0, 0, 51, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 51, 51, 0,
- 51, 7, 51, 51, 0, 52, 0, 0, 51, 0,
- 51, 51, 51, 51, 0, 0, 52, 0, 51, 0,
- 0, 52, 51, 0, 51, 52, 0, 0, 52, 0,
- 0, 0, 0, 0, 51, 0, 0, 51, 0, 51,
- 52, 52, 0, 51, 1053, 52, 52, 0, 51, 0,
- 0, 52, 0, 52, 52, 52, 52, 0, 0, 51,
- 0, 52, 0, 51, 51, 52, 0, 52, 51, 0,
- 0, 51, 0, 0, 0, 0, 0, 52, 0, 0,
- 52, 0, 52, 51, 51, 0, 52, 0, 51, 51,
- 0, 0, 0, 0, 51, 0, 51, 51, 51, 51,
- 0, 0, 0, 0, 51, 0, 52, 52, 51, 0,
- 51, 52, 0, 0, 0, 0, 0, 0, 0, 0,
- 51, 0, 52, 51, 0, 51, 0, 52, 0, 51,
- 0, 52, 0, 0, 52, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 52, 52, 0, 51,
- 0, 52, 52, 0, 0, 0, 0, 52, 0, 52,
- 52, 52, 52, 0, 0, 0, 0, 52, 0, 0,
- 0, 52, 0, 52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 52, 0, 56, 52, 0, 52, 0,
- 0, 0, 52, 57, 24, 58, 25, 0, 0, 26,
+ protected static readonly short [] yyTable = { 112,
+ 18, 163, 552, 196, 239, 555, 114, 831, 524, 502,
+ 481, 775, 837, 466, 608, 469, 266, 164, 265, 465,
+ 797, 506, 300, 577, 240, 550, 548, 881, 569, 587,
+ 440, 684, 882, 536, 404, 685, 654, 1010, 319, 1298,
+ 686, 333, 343, 44, 1152, 1091, 350, 910, 258, 623,
+ 990, 634, 991, 645, 893, 928, 311, 1127, 877, 1334,
+ 318, 584, 886, 396, 233, 405, 745, 235, 392, 320,
+ 1215, 323, 1555, 921, 1526, 633, 522, 358, 168, 1216,
+ 362, 1305, 1216, 918, 255, 1142, 1075, 805, 758, 53,
+ 1170, 14, 477, 624, 322, 1390, 1017, 197, 406, 1019,
+ 1363, 53, 1443, 768, 267, 1157, 751, 444, 802, 1662,
+ 1563, 255, 390, 322, 759, 1371, 169, 170, 380, 751,
+ 380, 1450, 1368, 1198, 349, 1510, 1196, 1512, 1078, 1204,
+ 349, 1343, 1344, 296, 296, 71, 71, 350, 955, 71,
+ 1447, 381, 296, 381, 1518, 379, 760, 112, 239, 163,
+ 382, 751, 339, 339, 114, 1204, 171, 383, 390, 751,
+ 445, 1663, 198, 172, 725, 164, 930, 173, 467, 1075,
+ 506, 935, 936, 174, 1075, 339, 1075, 921, 929, 1075,
+ 1075, 383, 1075, 1075, 944, 1171, 745, 776, 745, 43,
+ 480, 175, 176, 1527, 1506, 177, 522, 380, 522, 97,
+ 178, 1681, 1508, 256, 1306, 504, 507, 806, 1075, 97,
+ 467, 1078, 919, 256, 1116, 298, 1078, 53, 1078, 511,
+ 381, 1078, 1078, 237, 1078, 1078, 168, 382, 268, 823,
+ 256, 921, 256, 298, 383, 505, 502, 1217, 481, 1564,
+ 1217, 510, 860, 745, 829, 579, 1369, 472, 1091, 520,
+ 1078, 265, 257, 522, 761, 623, 535, 15, 608, 1562,
+ 1157, 265, 257, 1075, 169, 170, 859, 339, 339, 769,
+ 992, 478, 1265, 576, 299, 118, 580, 380, 523, 257,
+ 873, 257, 575, 527, 529, 608, 396, 582, 1027, 1199,
+ 897, 1511, 299, 1513, 977, 762, 1631, 586, 559, 624,
+ 381, 900, 1091, 1037, 171, 1078, 572, 382, 574, 597,
+ 1519, 172, 527, 1378, 573, 173, 6, 389, 118, 1649,
+ 895, 174, 118, 1655, 298, 899, 901, 1533, 589, 590,
+ 624, 916, 2, 339, 296, 1665, 1002, 1666, 1356, 175,
+ 176, 1287, 297, 177, 1593, 607, 348, 637, 178, 807,
+ 631, 642, 1702, 869, 839, 507, 507, 1307, 872, 339,
+ 1293, 609, 841, 851, 1091, 390, 1211, 1620, 1657, 1658,
+ 1091, 554, 630, 1627, 854, 767, 1244, 421, 687, 339,
+ 265, 1325, 902, 299, 505, 651, 1114, 393, 515, 659,
+ 660, 661, 662, 663, 664, 665, 666, 667, 668, 669,
+ 1329, 727, 729, 20, 1398, 733, 872, 506, 381, 945,
+ 1096, 237, 16, 422, 1106, 382, 339, 339, 239, 1676,
+ 327, 724, 1384, 118, 1534, 1693, 752, 767, 49, 298,
+ 391, 1108, 298, 334, 344, 269, 1379, 383, 467, 293,
+ 294, 295, 1650, 301, 302, 339, 753, 1134, 315, 316,
+ 1321, 1699, 624, 917, 321, 324, 388, 326, 1003, 330,
+ 1357, 237, 1488, 237, 346, 347, 843, 97, 97, 808,
+ 1137, 872, 516, 795, 840, 803, 1703, 796, 569, 610,
+ 397, 1, 842, 852, 237, 339, 1120, 982, 299, 743,
+ 744, 299, 349, 403, 855, 756, 783, 423, 424, 1458,
+ 903, 200, 507, 793, 779, 1166, 1115, 1168, 1304, 878,
+ 1173, 965, 339, 339, 913, 1021, 1321, 1310, 437, 1399,
+ 383, 237, 502, 1486, 383, 999, 638, 20, 853, 826,
+ 438, 651, 883, 835, 684, 966, 611, 1672, 685, 1020,
+ 344, 536, 504, 686, 1040, 1673, 1337, 506, 470, 471,
+ 623, 118, 383, 846, 544, 502, 383, 943, 383, 383,
+ 383, 383, 967, 857, 298, 505, 383, 861, 1229, 446,
+ 879, 914, 1487, 6, 884, 885, 639, 1203, 952, 1035,
+ 874, 784, 358, 2, 118, 870, 1000, 397, 767, 607,
+ 53, 896, 507, 767, 624, 55, 404, 767, 397, 504,
+ 397, 870, 397, 908, 908, 609, 1674, 1237, 1383, 1239,
+ 201, 1240, 767, 237, 512, 1548, 607, 298, 379, 118,
+ 953, 505, 505, 635, 771, 1141, 767, 405, 772, 905,
+ 905, 767, 609, 636, 324, 767, 373, 1104, 403, 767,
+ 522, 926, 201, 560, 1581, 1582, 397, 1274, 1584, 560,
+ 767, 446, 447, 3, 4, 5, 6, 448, 767, 449,
+ 558, 1603, 450, 451, 1610, 452, 453, 1163, 1099, 545,
+ 380, 546, 815, 256, 490, 816, 640, 767, 549, 1626,
+ 118, 932, 624, 934, 203, 1042, 641, 823, 1004, 773,
+ 346, 881, 942, 381, 204, 491, 767, 594, 595, 754,
+ 382, 517, 1474, 1648, 560, 229, 872, 383, 826, 518,
+ 256, 843, 872, 826, 826, 97, 938, 1312, 250, 872,
+ 446, 256, 257, 373, 1475, 547, 614, 1132, 1136, 97,
+ 1680, 754, 507, 815, 447, 490, 816, 1489, 1389, 448,
+ 53, 449, 555, 379, 450, 451, 339, 452, 453, 984,
+ 251, 373, 1421, 1347, 252, 373, 491, 368, 129, 257,
+ 129, 505, 519, 383, 535, 129, 677, 872, 684, 265,
+ 257, 684, 685, 762, 684, 685, 527, 686, 685, 118,
+ 686, 1422, 1423, 686, 1424, 997, 1490, 765, 1425, 425,
+ 426, 835, 1426, 728, 730, 380, 375, 766, 826, 373,
+ 826, 1421, 797, 447, 253, 237, 1385, 1427, 448, 964,
+ 449, 765, 1207, 450, 451, 988, 452, 453, 381, 735,
+ 254, 766, 1401, 1420, 375, 382, 1436, 1162, 454, 829,
+ 1422, 1423, 383, 1424, 1015, 1391, 1016, 1425, 765, 1032,
+ 1022, 1426, 393, 380, 1023, 1401, 380, 1069, 766, 578,
+ 383, 1184, 742, 989, 1028, 1025, 1427, 870, 562, 786,
+ 908, 1038, 394, 118, 507, 1428, 381, 948, 756, 381,
+ 507, 563, 1420, 382, 608, 327, 382, 1052, 383, 949,
+ 383, 687, 383, 265, 368, 383, 362, 383, 564, 794,
+ 118, 786, 383, 651, 871, 1401, 762, 464, 1175, 651,
+ 756, 835, 447, 379, 752, 118, 118, 448, 339, 449,
+ 1154, 1064, 450, 451, 1428, 452, 453, 757, 1155, 968,
+ 1514, 794, 608, 1126, 753, 794, 969, 339, 1266, 1007,
+ 1069, 393, 741, 1474, 1528, 1069, 844, 1069, 791, 270,
+ 1069, 1069, 380, 1069, 1069, 1245, 790, 339, 788, 757,
+ 1099, 578, 826, 794, 523, 380, 1546, 368, 121, 337,
+ 337, 97, 794, 368, 327, 381, 791, 926, 97, 1301,
+ 1475, 1121, 382, 368, 790, 791, 1123, 368, 381, 1123,
+ 788, 563, 337, 790, 788, 382, 327, 616, 1071, 826,
+ 368, 835, 383, 211, 617, 1255, 736, 1468, 847, 1087,
+ 1153, 121, 393, 345, 1480, 121, 618, 1256, 229, 926,
+ 232, 775, 1336, 993, 45, 1184, 924, 993, 608, 993,
+ 925, 206, 368, 433, 1069, 119, 541, 923, 427, 428,
+ 542, 616, 1499, 974, 1503, 327, 507, 1614, 617, 229,
+ 339, 234, 429, 430, 1499, 1065, 1503, 826, 882, 826,
+ 618, 1160, 826, 1193, 899, 879, 882, 1161, 899, 1197,
+ 899, 879, 899, 879, 118, 1183, 118, 434, 119, 883,
+ 337, 1071, 119, 883, 337, 337, 1071, 883, 1071, 778,
+ 435, 1071, 1071, 779, 1071, 1071, 888, 555, 481, 502,
+ 888, 436, 888, 555, 888, 608, 342, 342, 835, 1667,
+ 1438, 527, 306, 1316, 306, 439, 121, 813, 554, 306,
+ 118, 814, 824, 118, 1052, 687, 542, 265, 687, 342,
+ 265, 687, 1223, 265, 431, 432, 985, 1190, 1065, 1191,
+ 986, 1192, 1230, 1065, 304, 1065, 1689, 870, 1065, 1065,
+ 337, 1065, 1065, 368, 368, 468, 368, 368, 64, 826,
+ 1471, 826, 339, 826, 474, 368, 1241, 1471, 1710, 1711,
+ 555, 368, 118, 1289, 476, 1071, 337, 1290, 879, 503,
+ 879, 368, 879, 119, 718, 368, 718, 348, 337, 1525,
+ 186, 1248, 186, 118, 186, 356, 337, 1006, 368, 1014,
+ 525, 1007, 337, 1036, 1123, 373, 1525, 779, 523, 373,
+ 507, 368, 373, 1128, 373, 607, 946, 1007, 1024, 373,
+ 946, 342, 342, 1275, 835, 1557, 870, 1558, 501, 237,
+ 368, 609, 1065, 337, 337, 303, 950, 304, 1031, 1183,
+ 950, 397, 578, 1286, 121, 1075, 523, 72, 239, 523,
+ 1319, 72, 256, 373, 398, 882, 199, 551, 199, 882,
+ 199, 368, 337, 607, 368, 598, 599, 337, 467, 826,
+ 1320, 600, 601, 399, 400, 1315, 526, 121, 239, 609,
+ 702, 704, 706, 708, 1151, 1233, 917, 342, 1235, 418,
+ 419, 420, 523, 401, 1099, 1246, 556, 1247, 467, 1343,
+ 1344, 257, 337, 394, 402, 826, 1241, 1112, 890, 1112,
+ 890, 119, 121, 342, 557, 174, 1319, 174, 181, 182,
+ 181, 182, 1071, 1072, 368, 342, 1020, 560, 1020, 337,
+ 337, 1107, 871, 342, 561, 368, 1320, 368, 871, 342,
+ 507, 581, 1400, 1419, 119, 871, 74, 205, 74, 205,
+ 175, 583, 175, 134, 585, 134, 368, 368, 826, 607,
+ 337, 628, 1320, 753, 339, 1400, 312, 593, 312, 651,
+ 342, 342, 141, 683, 141, 609, 368, 643, 826, 119,
+ 523, 319, 629, 319, 368, 1320, 739, 368, 1279, 1280,
+ 118, 777, 1419, 871, 996, 1140, 998, 1454, 757, 342,
+ 1352, 237, 381, 474, 342, 1677, 1678, 459, 459, 460,
+ 460, 780, 753, 1001, 1001, 1400, 767, 767, 1716, 693,
+ 695, 782, 698, 700, 710, 712, 381, 118, 810, 804,
+ 118, 339, 811, 118, 812, 1320, 607, 809, 849, 342,
+ 119, 850, 856, 1188, 858, 1479, 567, 862, 863, 864,
+ 449, 865, 609, 339, 887, 24, 888, 25, 561, 891,
+ 26, 449, 892, 449, 561, 27, 342, 342, 894, 28,
+ 898, 911, 121, 337, 39, 912, 931, 933, 30, 937,
+ 387, 946, 449, 449, 947, 32, 578, 956, 957, 118,
+ 33, 960, 972, 978, 34, 1005, 43, 979, 980, 1537,
+ 981, 987, 449, 1479, 337, 200, 36, 1008, 37, 1011,
+ 449, 917, 38, 449, 1009, 339, 1026, 1034, 1029, 561,
+ 39, 40, 1030, 1047, 41, 1051, 1066, 568, 1594, 1068,
+ 1073, 1082, 118, 339, 339, 1077, 554, 118, 1083, 119,
+ 1085, 118, 1086, 1088, 1091, 1621, 1093, 1100, 753, 1112,
+ 1113, 1116, 1122, 1131, 1145, 545, 121, 1138, 1633, 1635,
+ 1146, 339, 1149, 337, 339, 753, 407, 1159, 835, 1164,
+ 118, 1176, 1150, 1479, 1165, 1186, 1200, 1201, 753, 753,
+ 523, 1194, 1202, 121, 1210, 1621, 1621, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 1643, 121, 121,
+ 1212, 1213, 1224, 1231, 1226, 753, 753, 1232, 1238, 1228,
+ 342, 1250, 387, 338, 338, 1254, 1257, 1258, 1259, 1260,
+ 1262, 1263, 337, 119, 1267, 1271, 337, 1278, 1281, 1282,
+ 835, 1299, 118, 118, 1289, 1290, 338, 1311, 1318, 1330,
+ 1346, 342, 1621, 1349, 1354, 1351, 1355, 1359, 1358, 1367,
+ 119, 1364, 337, 1372, 1374, 1380, 1381, 1389, 1432, 1388,
+ 1434, 1433, 753, 507, 507, 119, 119, 835, 1491, 1505,
+ 1440, 1437, 1439, 1522, 1444, 5, 1441, 1451, 1509, 1456,
+ 1531, 1540, 1695, 1695, 1523, 1551, 1532, 1534, 1542, 1704,
+ 1704, 1543, 651, 651, 1545, 1547, 1553, 1549, 1513, 1554,
+ 342, 1474, 1560, 1561, 1715, 1570, 1574, 1567, 1573, 357,
+ 118, 1575, 1577, 1585, 1586, 364, 366, 368, 370, 372,
+ 374, 376, 378, 1589, 338, 337, 1599, 1604, 338, 338,
+ 1606, 39, 1618, 1616, 1395, 39, 1615, 1628, 1639, 1619,
+ 1625, 1663, 1653, 1664, 337, 1629, 39, 1640, 1642, 1645,
+ 1647, 39, 1660, 1668, 1669, 39, 1679, 121, 39, 121,
+ 1644, 1671, 1662, 342, 337, 1687, 1688, 1707, 337, 1713,
+ 39, 39, 1709, 9, 1714, 39, 39, 21, 1108, 1718,
+ 593, 39, 985, 39, 39, 39, 39, 553, 986, 342,
+ 720, 39, 1100, 554, 338, 39, 1395, 39, 504, 1001,
+ 721, 802, 341, 121, 35, 552, 121, 39, 505, 39,
+ 39, 35, 39, 656, 1484, 1485, 39, 36, 235, 36,
+ 338, 993, 657, 109, 119, 884, 119, 916, 893, 885,
+ 951, 952, 338, 917, 790, 953, 39, 345, 337, 368,
+ 338, 815, 1517, 955, 790, 1520, 338, 39, 137, 767,
+ 119, 767, 613, 315, 236, 121, 337, 337, 144, 138,
+ 120, 24, 342, 25, 316, 145, 26, 54, 21, 1177,
+ 119, 27, 1081, 119, 1284, 28, 683, 338, 338, 1482,
+ 1285, 342, 1445, 1483, 30, 26, 1335, 1661, 1630, 1670,
+ 1617, 32, 1646, 1612, 1515, 1535, 33, 1109, 1706, 1110,
+ 34, 342, 1452, 1111, 1449, 342, 338, 1536, 1698, 975,
+ 1105, 338, 36, 1636, 37, 1641, 1634, 1697, 38, 1375,
+ 1559, 1078, 119, 570, 357, 337, 39, 40, 1376, 876,
+ 41, 1043, 5, 85, 1130, 971, 53, 1214, 306, 993,
+ 591, 688, 689, 119, 1234, 1236, 338, 53, 714, 718,
+ 716, 723, 53, 720, 1033, 722, 53, 1297, 1361, 53,
+ 588, 337, 867, 1457, 441, 909, 1206, 1269, 1261, 337,
+ 357, 53, 53, 338, 338, 1225, 53, 53, 1195, 1276,
+ 1268, 1341, 53, 848, 53, 53, 53, 53, 1270, 1308,
+ 1143, 941, 53, 342, 342, 737, 53, 738, 53, 1455,
+ 1079, 1348, 1076, 0, 338, 0, 0, 0, 53, 0,
+ 0, 53, 0, 53, 0, 0, 0, 53, 387, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 671, 673, 675, 0, 53, 588, 588,
+ 588, 588, 588, 588, 588, 588, 588, 588, 588, 588,
+ 588, 588, 588, 588, 0, 0, 0, 0, 0, 0,
+ 676, 0, 342, 0, 0, 0, 0, 0, 0, 24,
+ 0, 25, 0, 121, 26, 0, 0, 0, 0, 27,
+ 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,
+ 0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
+ 0, 0, 0, 0, 33, 0, 342, 0, 34, 0,
+ 683, 0, 0, 683, 0, 0, 683, 338, 0, 0,
+ 36, 0, 37, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 0, 0, 39, 40, 0, 0, 41, 0,
+ 119, 85, 26, 0, 0, 0, 26, 0, 338, 0,
+ 0, 0, 0, 0, 0, 0, 0, 26, 0, 0,
+ 588, 0, 26, 0, 0, 0, 26, 0, 0, 26,
+ 0, 337, 121, 0, 40, 0, 0, 119, 0, 0,
+ 119, 26, 26, 119, 0, 0, 26, 26, 0, 0,
+ 0, 0, 26, 0, 26, 26, 26, 26, 0, 0,
+ 0, 0, 26, 0, 0, 0, 26, 338, 26, 0,
+ 0, 0, 0, 482, 0, 121, 0, 0, 26, 0,
+ 121, 26, 0, 26, 121, 0, 387, 26, 0, 0,
+ 0, 0, 0, 0, 0, 0, 483, 0, 337, 119,
+ 0, 0, 1089, 890, 0, 0, 0, 26, 0, 484,
+ 0, 0, 0, 121, 486, 0, 23, 26, 26, 487,
+ 337, 488, 489, 490, 491, 0, 338, 0, 0, 492,
+ 338, 0, 0, 493, 0, 0, 0, 1494, 0, 0,
+ 0, 0, 119, 0, 0, 494, 0, 119, 495, 0,
+ 496, 119, 0, 0, 921, 922, 338, 0, 0, 0,
+ 0, 0, 0, 0, 0, 565, 0, 0, 342, 0,
+ 0, 0, 357, 0, 497, 121, 121, 0, 0, 0,
+ 119, 0, 337, 0, 337, 0, 0, 0, 0, 0,
+ 0, 337, 0, 0, 0, 0, 0, 0, 0, 0,
+ 337, 337, 0, 337, 0, 0, 0, 0, 0, 1502,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1502, 0, 0, 0, 0, 1502, 1013, 337, 338,
+ 0, 337, 0, 0, 1496, 342, 24, 0, 25, 0,
+ 1502, 26, 119, 119, 0, 0, 27, 0, 338, 0,
+ 28, 0, 0, 121, 0, 0, 0, 342, 0, 30,
+ 0, 0, 1502, 0, 0, 0, 32, 0, 338, 0,
+ 0, 33, 338, 0, 0, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 357, 40, 0, 38, 0, 40, 0, 0, 0, 0,
+ 0, 39, 40, 0, 0, 41, 40, 0, 85, 0,
+ 0, 40, 0, 0, 0, 40, 0, 0, 40, 342,
+ 119, 342, 0, 0, 0, 0, 0, 0, 342, 0,
+ 40, 40, 0, 0, 0, 40, 40, 342, 342, 987,
+ 342, 40, 338, 40, 40, 40, 40, 0, 0, 0,
+ 0, 40, 0, 0, 0, 40, 0, 40, 0, 1089,
+ 338, 338, 0, 53, 0, 342, 0, 40, 342, 40,
+ 40, 0, 40, 0, 53, 0, 40, 0, 0, 53,
+ 0, 0, 0, 53, 0, 0, 53, 0, 0, 0,
+ 0, 0, 0, 387, 0, 0, 40, 0, 53, 53,
+ 0, 0, 0, 53, 53, 0, 40, 40, 0, 53,
+ 0, 53, 53, 53, 53, 0, 0, 0, 0, 53,
+ 0, 565, 0, 53, 0, 53, 565, 565, 0, 338,
+ 0, 0, 0, 0, 0, 53, 0, 0, 53, 0,
+ 53, 0, 0, 0, 53, 0, 0, 0, 0, 565,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 565, 565, 53, 338, 0, 565, 0, 0,
+ 565, 0, 565, 338, 565, 565, 565, 565, 588, 0,
+ 0, 0, 565, 0, 0, 0, 565, 0, 0, 0,
+ 565, 0, 0, 0, 38, 0, 0, 0, 565, 0,
+ 0, 565, 0, 565, 565, 0, 0, 0, 565, 565,
+ 0, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 0, 0, 0, 0, 1158, 565, 565, 565,
+ 0, 565, 565, 0, 0, 0, 565, 565, 0, 565,
+ 565, 565, 565, 565, 565, 565, 0, 565, 565, 0,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 0, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 0, 0, 565, 0, 565, 0, 565,
+ 0, 0, 565, 0, 0, 987, 987, 0, 565, 0,
+ 0, 0, 0, 987, 987, 987, 987, 987, 0, 987,
+ 987, 0, 987, 987, 987, 987, 987, 987, 987, 987,
+ 910, 0, 0, 0, 987, 0, 987, 987, 987, 987,
+ 987, 987, 0, 0, 987, 0, 0, 0, 987, 987,
+ 0, 987, 987, 987, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 987, 0, 987, 0, 987, 987, 0,
+ 0, 987, 0, 987, 987, 987, 987, 987, 987, 987,
+ 987, 987, 987, 987, 987, 338, 987, 0, 0, 987,
+ 987, 0, 0, 987, 987, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 987, 987,
+ 987, 987, 987, 0, 0, 987, 987, 0, 0, 0,
+ 987, 987, 0, 0, 987, 0, 0, 0, 0, 987,
+ 987, 987, 987, 987, 0, 0, 0, 987, 0, 987,
+ 0, 0, 0, 0, 0, 987, 987, 0, 0, 0,
+ 0, 0, 338, 0, 0, 0, 0, 0, 0, 0,
+ 368, 38, 0, 0, 0, 38, 0, 0, 0, 0,
+ 987, 987, 987, 987, 338, 987, 38, 0, 0, 0,
+ 0, 38, 987, 0, 0, 38, 0, 0, 38, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 38, 0, 0, 0, 38, 38, 0, 0, 0,
+ 0, 38, 0, 38, 38, 38, 38, 0, 0, 0,
+ 0, 38, 0, 0, 0, 38, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 338, 38, 338, 0,
+ 38, 0, 38, 0, 0, 338, 38, 0, 0, 0,
+ 0, 0, 0, 0, 338, 338, 0, 338, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 38, 0, 0,
+ 0, 0, 338, 0, 0, 338, 910, 910, 0, 0,
+ 0, 0, 0, 0, 910, 910, 910, 910, 910, 0,
+ 910, 910, 0, 910, 910, 910, 910, 910, 910, 910,
+ 868, 0, 0, 0, 0, 910, 0, 910, 910, 910,
+ 910, 910, 910, 0, 0, 910, 0, 0, 0, 910,
+ 910, 0, 910, 910, 910, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 910, 0, 910, 0, 910, 910,
+ 0, 0, 910, 0, 910, 910, 910, 910, 910, 910,
+ 910, 910, 910, 910, 910, 910, 0, 910, 0, 0,
+ 910, 910, 0, 0, 910, 910, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 910,
+ 910, 910, 910, 910, 0, 0, 910, 910, 0, 0,
+ 0, 910, 910, 0, 0, 910, 0, 0, 0, 0,
+ 910, 910, 910, 910, 910, 0, 368, 0, 910, 0,
+ 910, 368, 368, 0, 0, 0, 910, 910, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 368, 0, 0, 0, 0, 0,
+ 0, 910, 910, 910, 910, 0, 910, 368, 368, 0,
+ 358, 0, 368, 910, 0, 368, 0, 368, 0, 368,
+ 368, 368, 368, 0, 0, 0, 0, 368, 0, 0,
+ 0, 368, 0, 0, 0, 368, 0, 0, 0, 0,
+ 0, 0, 0, 368, 0, 0, 368, 0, 368, 368,
+ 0, 0, 0, 368, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 0, 0,
+ 0, 0, 368, 368, 0, 0, 368, 368, 0, 0,
+ 0, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 0, 368, 368, 0, 0, 368, 368, 368, 368,
+ 368, 0, 0, 368, 368, 0, 0, 0, 368, 368,
+ 368, 368, 368, 368, 368, 368, 868, 0, 0, 0,
+ 0, 868, 868, 0, 0, 0, 0, 368, 0, 0,
+ 368, 0, 368, 0, 368, 368, 0, 368, 0, 0,
+ 0, 368, 368, 368, 868, 0, 0, 0, 0, 368,
+ 0, 368, 0, 368, 368, 368, 368, 868, 868, 0,
+ 398, 0, 868, 0, 0, 868, 0, 868, 368, 868,
+ 868, 868, 868, 0, 368, 368, 0, 868, 0, 0,
+ 0, 868, 0, 0, 0, 868, 0, 0, 0, 0,
+ 0, 0, 0, 868, 368, 0, 868, 0, 868, 868,
+ 368, 0, 368, 868, 868, 368, 868, 868, 868, 868,
+ 868, 868, 868, 868, 868, 868, 868, 0, 0, 0,
+ 0, 0, 868, 868, 0, 0, 868, 868, 0, 0,
+ 0, 868, 868, 868, 868, 868, 868, 0, 868, 868,
+ 868, 0, 868, 868, 0, 0, 868, 868, 868, 868,
+ 0, 0, 0, 868, 868, 0, 0, 0, 868, 868,
+ 868, 868, 868, 868, 868, 868, 358, 0, 368, 0,
+ 0, 358, 358, 0, 0, 0, 0, 868, 0, 0,
+ 868, 0, 868, 0, 868, 0, 0, 868, 0, 0,
+ 0, 0, 0, 868, 358, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 358, 358, 0,
+ 0, 0, 358, 0, 0, 358, 0, 358, 0, 358,
+ 358, 358, 358, 0, 0, 0, 0, 358, 0, 0,
+ 0, 358, 0, 0, 0, 358, 0, 0, 0, 0,
+ 0, 0, 0, 358, 0, 0, 358, 0, 358, 358,
+ 0, 0, 0, 358, 358, 0, 358, 358, 358, 358,
+ 358, 358, 358, 358, 358, 358, 358, 0, 0, 0,
+ 0, 0, 358, 358, 0, 0, 358, 358, 0, 0,
+ 0, 358, 358, 358, 358, 358, 358, 0, 358, 358,
+ 358, 0, 358, 358, 0, 0, 358, 358, 358, 358,
+ 0, 0, 0, 358, 358, 0, 0, 0, 358, 358,
+ 358, 358, 358, 358, 358, 358, 398, 0, 403, 0,
+ 0, 398, 398, 0, 0, 0, 0, 358, 0, 0,
+ 358, 0, 358, 0, 358, 0, 0, 358, 0, 0,
+ 0, 0, 0, 358, 398, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 398, 398, 0,
+ 0, 0, 398, 0, 0, 398, 0, 398, 0, 398,
+ 398, 398, 398, 0, 0, 0, 0, 398, 0, 0,
+ 0, 398, 0, 0, 0, 398, 0, 0, 0, 0,
+ 0, 0, 0, 398, 0, 0, 398, 0, 398, 398,
+ 0, 0, 0, 398, 398, 0, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 0, 0, 0,
+ 0, 0, 398, 398, 368, 0, 398, 398, 0, 0,
+ 368, 398, 398, 0, 398, 398, 398, 0, 398, 398,
+ 398, 0, 398, 398, 0, 0, 398, 398, 398, 398,
+ 0, 0, 0, 398, 398, 0, 0, 0, 398, 398,
+ 398, 398, 398, 398, 398, 398, 368, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 398, 0, 0,
+ 398, 0, 398, 0, 0, 0, 0, 33, 0, 0,
+ 0, 0, 0, 398, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 368, 0, 0,
+ 0, 368, 368, 0, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 0, 0, 0, 0,
+ 0, 368, 698, 0, 368, 368, 0, 0, 0, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 0,
+ 368, 368, 0, 0, 368, 368, 368, 368, 368, 0,
+ 0, 368, 368, 0, 0, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 403, 0, 0, 0, 0, 0,
+ 403, 0, 0, 0, 0, 368, 0, 0, 368, 27,
+ 368, 0, 368, 0, 0, 368, 0, 0, 0, 0,
+ 0, 368, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 698, 403, 0, 0, 0,
+ 698, 0, 698, 698, 698, 698, 698, 698, 698, 698,
+ 698, 698, 698, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 698, 698, 0, 0, 0, 0, 698, 0,
+ 698, 0, 698, 0, 698, 698, 698, 403, 0, 0,
+ 0, 403, 403, 0, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 0, 0, 0, 0, 0,
+ 0, 403, 0, 53, 403, 403, 0, 0, 0, 403,
+ 403, 403, 403, 403, 403, 0, 403, 403, 403, 0,
+ 403, 403, 0, 0, 403, 403, 403, 403, 0, 698,
+ 0, 403, 403, 0, 0, 0, 403, 403, 403, 403,
+ 403, 403, 403, 403, 0, 0, 0, 0, 0, 0,
+ 7, 0, 0, 0, 0, 403, 0, 0, 403, 0,
+ 403, 0, 403, 33, 33, 403, 0, 0, 33, 0,
+ 0, 403, 33, 0, 33, 0, 0, 33, 0, 33,
+ 33, 0, 33, 0, 33, 0, 33, 0, 33, 33,
+ 33, 33, 0, 0, 33, 33, 0, 1090, 0, 0,
+ 33, 0, 33, 33, 33, 0, 0, 33, 33, 33,
+ 0, 33, 0, 0, 33, 0, 33, 33, 33, 33,
+ 0, 0, 0, 33, 33, 33, 0, 0, 33, 33,
+ 33, 0, 0, 0, 0, 0, 0, 33, 33, 0,
+ 33, 33, 0, 33, 33, 33, 0, 0, 0, 33,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 54, 0, 0, 0, 0, 0, 27, 0, 0, 33,
+ 27, 0, 0, 0, 0, 0, 0, 0, 33, 33,
+ 33, 27, 0, 0, 0, 0, 27, 0, 33, 0,
+ 27, 0, 0, 27, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 27, 27, 0, 0, 0,
+ 27, 27, 0, 37, 0, 0, 27, 37, 27, 27,
+ 27, 27, 0, 0, 0, 0, 27, 0, 37, 33,
+ 27, 0, 27, 37, 0, 0, 0, 37, 0, 0,
+ 37, 0, 27, 0, 0, 27, 0, 27, 0, 0,
+ 0, 27, 37, 37, 0, 0, 0, 37, 37, 0,
+ 53, 0, 0, 37, 53, 37, 37, 37, 37, 0,
+ 0, 27, 0, 37, 0, 53, 0, 37, 0, 37,
+ 53, 27, 27, 0, 53, 0, 0, 53, 0, 37,
+ 0, 0, 37, 0, 37, 0, 0, 0, 37, 53,
+ 53, 0, 0, 0, 53, 53, 0, 7, 0, 0,
+ 53, 54, 53, 53, 53, 53, 0, 0, 37, 0,
+ 53, 0, 54, 0, 53, 0, 53, 54, 0, 37,
+ 0, 54, 0, 0, 54, 0, 53, 0, 0, 53,
+ 0, 53, 0, 0, 0, 53, 54, 54, 0, 0,
+ 0, 54, 54, 0, 1090, 0, 0, 54, 53, 54,
+ 54, 54, 54, 0, 0, 53, 0, 54, 0, 53,
+ 0, 54, 0, 54, 53, 0, 0, 0, 53, 0,
+ 0, 53, 0, 54, 0, 0, 54, 0, 54, 0,
+ 0, 0, 54, 53, 53, 0, 0, 0, 53, 53,
+ 0, 0, 0, 0, 53, 0, 53, 53, 53, 53,
+ 0, 0, 54, 0, 53, 0, 0, 54, 53, 0,
+ 53, 54, 0, 0, 0, 0, 0, 0, 0, 0,
+ 53, 0, 54, 53, 0, 53, 0, 54, 0, 53,
+ 0, 54, 0, 0, 54, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 54, 54, 0, 53,
+ 0, 54, 54, 0, 0, 0, 0, 54, 0, 54,
+ 54, 54, 54, 0, 0, 0, 0, 54, 0, 0,
+ 0, 54, 0, 54, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 54, 0, 56, 54, 0, 54, 0,
+ 0, 0, 54, 57, 24, 58, 25, 0, 0, 26,
59, 0, 60, 61, 27, 62, 63, 64, 28, 0,
- 0, 0, 52, 0, 65, 0, 66, 30, 67, 68,
+ 0, 0, 54, 0, 65, 0, 66, 30, 67, 68,
69, 70, 0, 0, 32, 0, 0, 0, 71, 33,
0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
0, 0, 0, 74, 0, 36, 0, 37, 75, 0,
0, 38, 0, 76, 77, 78, 79, 80, 81, 39,
40, 82, 83, 41, 84, 0, 85, 0, 0, 86,
- 87, 0, 0, 88, 89, 836, 0, 0, 0, 477,
- 0, 836, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 93, 94, 0, 0, 0, 0, 95, 0, 0,
- 0, 96, 478, 0, 0, 0, 97, 98, 99, 100,
- 101, 0, 0, 0, 102, 479, 103, 836, 0, 0,
- 481, 0, 104, 105, 0, 482, 0, 483, 484, 485,
- 486, 0, 0, 0, 0, 487, 0, 0, 0, 488,
- 0, 0, 0, 1434, 0, 0, 0, 106, 107, 108,
- 109, 489, 0, 0, 490, 0, 491, 0, 836, 200,
- 0, 0, 0, 836, 627, 836, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 836, 836, 0, 0, 0,
- 492, 0, 836, 836, 0, 0, 0, 0, 836, 836,
- 836, 836, 836, 836, 836, 836, 836, 0, 836, 836,
- 0, 836, 836, 836, 836, 836, 836, 836, 836, 836,
- 836, 0, 836, 836, 836, 836, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 0, 836, 1436, 836, 0,
- 836, 836, 836, 836, 0, 0, 0, 627, 0, 836,
- 0, 0, 627, 0, 627, 627, 627, 627, 627, 627,
- 627, 627, 627, 627, 627, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 627, 836, 627,
- 0, 627, 0, 627, 627, 627, 0, 0, 0, 0,
- 0, 627, 627, 627, 627, 0, 0, 0, 627, 627,
- 0, 0, 0, 627, 627, 627, 627, 627, 627, 627,
- 627, 0, 0, 0, 0, 0, 0, 0, 0, 836,
- 0, 0, 627, 0, 836, 0, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 836, 836, 836, 627, 0,
- 0, 0, 0, 836, 836, 0, 0, 0, 0, 836,
- 836, 836, 836, 836, 836, 836, 836, 836, 0, 836,
- 836, 0, 836, 836, 836, 836, 836, 836, 836, 836,
- 836, 836, 0, 836, 836, 836, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
- 836, 836, 836, 836, 836, 836, 364, 991, 0, 836,
- 0, 836, 364, 0, 836, 0, 24, 0, 25, 0,
- 836, 26, 0, 0, 0, 0, 27, 0, 0, 0,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 32, 0, 364, 0,
- 0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
- 0, 39, 40, 0, 0, 41, 0, 0, 85, 364,
- 0, 0, 0, 0, 364, 0, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 0, 0,
- 0, 0, 0, 364, 364, 0, 0, 0, 0, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 0, 364,
- 364, 0, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 0, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 0, 547, 1135, 0, 364,
- 380, 364, 547, 0, 364, 0, 24, 0, 25, 0,
- 364, 26, 0, 0, 0, 0, 27, 0, 0, 0,
+ 87, 0, 0, 88, 89, 0, 871, 0, 0, 0,
+ 0, 0, 871, 0, 0, 0, 0, 0, 90, 91,
+ 92, 93, 94, 0, 0, 95, 96, 0, 0, 0,
+ 97, 0, 0, 0, 98, 0, 0, 0, 0, 99,
+ 100, 101, 102, 103, 0, 0, 0, 104, 871, 105,
+ 0, 0, 0, 0, 0, 106, 107, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 426, 0, 0, 0, 0, 0, 426,
+ 108, 109, 110, 111, 0, 0, 0, 0, 0, 871,
+ 0, 0, 200, 0, 871, 0, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 0, 0,
+ 0, 0, 0, 871, 871, 426, 871, 871, 0, 0,
+ 0, 871, 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 0, 871, 871, 0, 871, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 0, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 0,
+ 871, 0, 871, 0, 871, 871, 871, 871, 0, 0,
+ 358, 426, 0, 871, 0, 0, 0, 0, 0, 426,
+ 358, 0, 426, 426, 426, 426, 0, 426, 0, 426,
+ 426, 0, 426, 426, 426, 426, 426, 0, 426, 426,
+ 426, 426, 871, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 0, 0, 0, 0, 358,
+ 0, 426, 0, 0, 426, 0, 0, 0, 0, 0,
+ 426, 0, 0, 871, 0, 0, 0, 0, 871, 0,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 871, 0, 0, 0, 0, 0, 871, 871, 0,
+ 871, 871, 0, 0, 0, 871, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 1081, 871, 871, 0, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 0,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 871, 871, 871, 871, 871, 871, 871, 871, 871,
+ 871, 871, 871, 368, 0, 0, 871, 0, 871, 368,
+ 0, 871, 0, 0, 0, 0, 0, 871, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 368, 0, 0, 1081, 0,
+ 0, 0, 0, 1081, 0, 1081, 1081, 1081, 1081, 1081,
+ 1081, 1081, 1081, 1081, 1081, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1081, 1081, 0, 0, 0,
+ 0, 1081, 0, 1081, 0, 1081, 368, 1081, 1081, 1081,
+ 0, 368, 0, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 0, 0, 0, 0, 0,
+ 368, 368, 0, 368, 368, 0, 0, 0, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 0, 368,
+ 368, 0, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 1081, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 0, 368, 1187, 0, 368,
+ 0, 368, 368, 0, 368, 0, 24, 0, 25, 0,
+ 368, 26, 0, 0, 0, 0, 27, 0, 0, 0,
28, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 32, 0, 547, 0,
+ 0, 0, 0, 0, 0, 0, 32, 0, 368, 0,
0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
- 0, 39, 40, 0, 0, 41, 0, 0, 85, 547,
- 0, 0, 0, 0, 547, 0, 547, 547, 547, 547,
- 547, 547, 547, 547, 547, 547, 547, 0, 0, 0,
- 0, 0, 0, 547, 547, 0, 0, 0, 547, 547,
- 547, 547, 547, 547, 547, 547, 547, 547, 0, 547,
- 547, 0, 547, 547, 547, 547, 547, 547, 547, 547,
- 547, 547, 0, 547, 547, 547, 547, 547, 547, 547,
- 547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
- 547, 547, 547, 547, 547, 0, 543, 0, 0, 547,
- 380, 547, 543, 0, 0, 477, 0, 0, 0, 0,
- 547, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 478, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 543, 0,
- 0, 479, 0, 0, 0, 0, 481, 0, 0, 0,
- 0, 482, 0, 483, 484, 485, 486, 0, 0, 0,
- 0, 487, 0, 0, 0, 488, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 489, 0, 543,
- 490, 0, 491, 0, 543, 0, 543, 543, 543, 543,
- 543, 543, 543, 543, 543, 543, 543, 0, 0, 0,
- 0, 0, 0, 543, 543, 0, 492, 0, 543, 543,
- 0, 543, 543, 543, 543, 543, 543, 543, 0, 543,
- 543, 0, 543, 543, 543, 543, 543, 543, 543, 543,
- 543, 543, 0, 543, 543, 543, 543, 543, 543, 543,
- 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
- 543, 543, 543, 543, 543, 0, 551, 0, 0, 543,
- 386, 543, 551, 1453, 543, 0, 0, 0, 0, 0,
- 543, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 386, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 386, 0, 551, 0,
- 0, 386, 0, 0, 254, 0, 386, 0, 386, 386,
- 386, 386, 0, 0, 0, 0, 386, 0, 0, 0,
- 386, 0, 0, 0, 386, 0, 0, 0, 0, 0,
- 0, 0, 386, 0, 0, 386, 0, 386, 0, 551,
- 0, 0, 0, 0, 551, 0, 551, 551, 551, 551,
- 551, 551, 551, 551, 551, 551, 551, 0, 0, 0,
- 0, 386, 0, 551, 551, 0, 0, 0, 386, 551,
- 0, 551, 551, 551, 551, 551, 551, 551, 0, 551,
- 551, 0, 551, 551, 551, 551, 551, 551, 551, 551,
- 551, 551, 0, 551, 551, 551, 551, 551, 551, 551,
- 551, 551, 551, 551, 551, 551, 551, 551, 551, 551,
- 551, 551, 551, 551, 551, 0, 364, 0, 386, 551,
- 385, 551, 364, 0, 551, 0, 0, 0, 0, 0,
- 551, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 385, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 385, 0, 364, 0,
- 0, 385, 0, 0, 253, 0, 385, 0, 385, 385,
- 385, 385, 0, 0, 0, 0, 385, 0, 0, 0,
- 385, 0, 0, 0, 385, 0, 0, 0, 0, 0,
- 0, 0, 385, 0, 0, 385, 0, 385, 0, 364,
- 0, 0, 0, 0, 364, 0, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 0, 0, 0,
- 0, 385, 0, 364, 364, 0, 0, 0, 385, 364,
- 0, 364, 364, 364, 364, 364, 364, 364, 0, 364,
- 364, 0, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 0, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 0, 471, 0, 385, 364,
- 0, 364, 471, 0, 364, 0, 732, 0, 732, 0,
- 364, 732, 0, 732, 732, 0, 732, 0, 732, 0,
- 732, 0, 732, 732, 732, 0, 0, 0, 732, 732,
- 0, 0, 0, 0, 732, 0, 732, 732, 471, 0,
- 0, 732, 0, 0, 0, 732, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 732, 0, 732,
- 0, 0, 0, 732, 732, 0, 0, 0, 0, 0,
- 0, 732, 732, 0, 0, 732, 0, 0, 732, 471,
- 0, 0, 0, 732, 471, 0, 471, 471, 471, 471,
- 471, 471, 471, 471, 471, 471, 471, 0, 0, 0,
- 0, 0, 0, 471, 471, 0, 0, 0, 0, 471,
- 0, 471, 471, 471, 471, 471, 471, 471, 0, 471,
- 471, 0, 471, 471, 471, 471, 471, 471, 471, 471,
- 471, 471, 0, 471, 471, 471, 471, 471, 471, 471,
- 471, 471, 471, 471, 471, 471, 471, 471, 471, 471,
- 471, 471, 471, 471, 471, 0, 578, 0, 0, 471,
- 732, 471, 578, 0, 471, 0, 24, 0, 25, 0,
- 471, 26, 0, 0, 1399, 0, 27, 0, 757, 0,
- 28, 0, 758, 1400, 1401, 0, 0, 0, 1402, 30,
- 0, 0, 0, 0, 1403, 0, 32, 0, 578, 0,
- 0, 33, 0, 0, 0, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 364, 0, 0, 38, 0, 0, 364, 0, 0, 0,
- 836, 39, 40, 0, 0, 41, 0, 0, 1404, 578,
- 0, 0, 0, 1405, 578, 0, 578, 578, 578, 578,
- 578, 578, 578, 578, 578, 578, 578, 0, 0, 0,
- 0, 0, 364, 578, 0, 0, 0, 0, 0, 578,
- 0, 578, 0, 578, 0, 578, 578, 578, 836, 578,
- 578, 0, 578, 578, 578, 578, 578, 578, 578, 578,
- 578, 578, 0, 0, 0, 578, 578, 578, 578, 578,
- 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
- 578, 578, 578, 0, 578, 663, 0, 0, 0, 578,
- 1407, 364, 0, 0, 0, 0, 0, 364, 364, 0,
- 578, 0, 0, 364, 364, 364, 364, 364, 364, 364,
- 836, 364, 0, 364, 364, 205, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 0, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 0,
- 354, 0, 0, 364, 0, 364, 354, 206, 364, 0,
- 0, 0, 0, 0, 364, 0, 0, 0, 663, 0,
- 0, 0, 0, 663, 0, 663, 663, 663, 663, 663,
- 663, 663, 663, 663, 663, 663, 0, 0, 0, 0,
- 0, 0, 354, 0, 0, 0, 0, 0, 663, 0,
- 663, 0, 663, 0, 663, 663, 663, 0, 207, 208,
- 209, 210, 0, 211, 212, 213, 214, 215, 216, 217,
- 218, 0, 0, 219, 220, 221, 222, 223, 224, 225,
- 226, 0, 0, 354, 0, 0, 0, 0, 354, 0,
- 354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
- 354, 0, 0, 0, 0, 620, 0, 354, 422, 663,
- 0, 620, 0, 354, 354, 354, 422, 354, 422, 354,
- 354, 354, 0, 354, 354, 0, 0, 354, 354, 354,
- 354, 0, 0, 0, 354, 354, 0, 422, 422, 354,
- 354, 354, 354, 354, 354, 354, 354, 620, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 422, 354, 0,
- 0, 0, 0, 354, 422, 422, 0, 0, 422, 0,
- 422, 0, 0, 0, 354, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 620, 0,
- 0, 0, 0, 620, 0, 620, 620, 620, 620, 620,
- 620, 620, 620, 620, 620, 620, 422, 0, 0, 0,
- 0, 0, 620, 423, 0, 0, 0, 0, 620, 0,
- 620, 423, 620, 423, 620, 620, 620, 0, 620, 620,
- 0, 0, 620, 620, 620, 620, 0, 0, 0, 620,
- 620, 0, 423, 423, 620, 620, 620, 620, 620, 620,
- 620, 620, 0, 354, 0, 0, 0, 0, 0, 354,
- 0, 0, 423, 620, 0, 0, 0, 0, 620, 0,
- 423, 354, 422, 423, 0, 0, 0, 422, 354, 620,
- 422, 422, 422, 422, 0, 422, 0, 422, 422, 0,
- 422, 422, 422, 422, 422, 354, 422, 422, 422, 422,
- 0, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
- 422, 422, 422, 0, 0, 0, 0, 354, 0, 422,
- 0, 0, 422, 0, 0, 0, 354, 0, 422, 0,
- 0, 354, 0, 354, 354, 354, 354, 354, 354, 354,
- 354, 354, 354, 354, 0, 0, 0, 0, 600, 0,
- 354, 0, 0, 0, 600, 0, 354, 354, 354, 0,
- 354, 0, 354, 354, 354, 0, 354, 354, 0, 0,
- 354, 354, 354, 354, 0, 0, 0, 354, 354, 0,
- 0, 0, 354, 354, 354, 354, 354, 354, 354, 354,
- 600, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 354, 0, 0, 0, 0, 354, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 354, 0, 0,
- 618, 0, 0, 0, 0, 0, 618, 0, 0, 0,
- 0, 600, 0, 0, 0, 0, 600, 0, 600, 600,
- 600, 600, 600, 600, 600, 600, 600, 600, 600, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 600, 618, 600, 0, 600, 0, 600, 600, 600,
- 0, 600, 600, 0, 0, 600, 600, 600, 600, 600,
- 600, 600, 600, 600, 0, 0, 0, 600, 600, 600,
- 600, 600, 600, 600, 600, 0, 0, 0, 0, 0,
- 0, 0, 0, 618, 0, 0, 600, 0, 618, 0,
- 618, 618, 618, 618, 618, 618, 618, 618, 618, 618,
- 618, 0, 600, 0, 0, 607, 0, 618, 0, 0,
- 0, 607, 0, 618, 0, 618, 0, 618, 0, 618,
- 618, 618, 0, 618, 618, 0, 0, 618, 618, 618,
- 618, 0, 0, 0, 618, 618, 0, 0, 0, 618,
- 618, 618, 618, 618, 618, 618, 618, 607, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 618, 0,
- 0, 0, 0, 618, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 618, 0, 0, 958, 0, 0,
- 0, 0, 0, 958, 0, 0, 0, 0, 607, 0,
- 0, 0, 0, 607, 0, 607, 607, 607, 607, 607,
- 607, 607, 607, 607, 607, 607, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 607, 958,
- 607, 0, 607, 0, 607, 607, 607, 0, 607, 607,
- 0, 0, 607, 607, 607, 607, 0, 0, 0, 607,
- 607, 0, 0, 0, 607, 607, 607, 607, 607, 607,
- 607, 607, 0, 0, 0, 0, 0, 0, 0, 0,
- 958, 0, 0, 607, 0, 958, 0, 958, 958, 958,
- 958, 958, 958, 958, 958, 958, 958, 958, 0, 607,
- 0, 0, 608, 0, 0, 0, 0, 0, 608, 0,
- 958, 0, 958, 0, 958, 0, 958, 958, 958, 0,
- 958, 958, 0, 0, 958, 958, 958, 958, 0, 0,
- 0, 958, 958, 0, 0, 0, 958, 958, 958, 958,
- 958, 958, 958, 958, 608, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 958, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 958, 0, 0, 609, 0, 0, 0, 0, 0,
- 609, 0, 0, 0, 0, 608, 0, 0, 0, 0,
- 608, 0, 608, 608, 608, 608, 608, 608, 608, 608,
- 608, 608, 608, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 608, 609, 608, 0, 608,
- 0, 608, 608, 608, 0, 608, 608, 0, 0, 608,
- 608, 608, 608, 0, 0, 0, 608, 608, 0, 0,
- 0, 608, 608, 608, 608, 608, 608, 608, 608, 0,
- 0, 0, 0, 0, 0, 0, 0, 609, 0, 0,
- 608, 0, 609, 0, 609, 609, 609, 609, 609, 609,
- 609, 609, 609, 609, 609, 0, 608, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 609, 0, 609,
- 0, 609, 0, 609, 609, 609, 0, 609, 609, 0,
- 0, 609, 609, 609, 609, 0, 0, 0, 609, 609,
- 0, 0, 0, 609, 609, 609, 609, 609, 609, 609,
- 609, 0, 525, 0, 628, 0, 0, 0, 0, 0,
- 57, 24, 609, 25, 0, 0, 26, 259, 0, 0,
- 0, 27, 62, 63, 0, 28, 0, 0, 609, 0,
- 0, 65, 0, 0, 30, 0, 0, 0, 0, 0,
- 0, 32, 0, 0, 0, 0, 33, 0, 72, 73,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 36, 0, 37, 75, 0, 0, 38, 0,
- 0, 77, 0, 79, 0, 81, 39, 40, 260, 0,
- 41, 0, 0, 0, 0, 0, 0, 628, 0, 629,
- 0, 0, 628, 0, 628, 628, 628, 628, 628, 628,
- 628, 628, 628, 628, 628, 90, 91, 92, 261, 526,
- 0, 0, 0, 0, 0, 0, 0, 628, 96, 628,
- 0, 628, 0, 628, 628, 628, 0, 0, 0, 0,
- 0, 628, 628, 628, 628, 0, 0, 0, 628, 628,
- 0, 0, 0, 628, 628, 628, 628, 628, 628, 628,
- 628, 0, 0, 0, 0, 0, 0, 0, 632, 0,
- 0, 0, 628, 0, 106, 527, 0, 0, 0, 0,
- 0, 0, 629, 0, 0, 528, 529, 629, 628, 629,
- 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
+ 0, 39, 40, 0, 0, 41, 0, 0, 85, 368,
+ 0, 0, 0, 0, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 0, 0,
+ 0, 0, 0, 368, 368, 0, 368, 368, 0, 0,
+ 0, 0, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 0, 368, 368, 0, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 0, 567,
+ 0, 0, 368, 387, 368, 567, 0, 368, 0, 0,
+ 0, 482, 0, 368, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 483, 0, 0, 0, 0, 0,
+ 0, 567, 0, 0, 0, 0, 0, 484, 0, 0,
+ 0, 0, 486, 0, 0, 0, 0, 487, 0, 488,
+ 489, 490, 491, 0, 0, 0, 0, 492, 0, 0,
+ 0, 493, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 567, 494, 0, 0, 495, 567, 496, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 0, 0, 693, 0, 0, 0, 0, 567, 0, 567,
+ 567, 0, 497, 0, 567, 567, 567, 567, 567, 567,
+ 567, 567, 567, 567, 0, 567, 567, 0, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 0, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 567, 567, 567, 567, 567, 567, 567, 567, 567, 567,
+ 567, 0, 563, 0, 0, 0, 0, 567, 563, 0,
+ 0, 0, 1513, 0, 0, 0, 567, 0, 0, 0,
+ 0, 0, 0, 0, 0, 693, 0, 0, 0, 0,
+ 693, 0, 693, 693, 693, 693, 693, 693, 693, 693,
+ 693, 693, 693, 0, 563, 0, 0, 0, 0, 0,
+ 0, 0, 693, 693, 0, 0, 0, 0, 693, 0,
+ 693, 0, 693, 0, 693, 693, 693, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 693, 0, 0, 0, 0, 563, 0, 0, 0, 0,
+ 563, 693, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 693, 0, 694, 0, 0, 0, 0,
+ 563, 0, 563, 563, 0, 0, 0, 563, 563, 693,
+ 563, 563, 563, 563, 563, 563, 563, 0, 563, 563,
+ 0, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 0, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 563, 0, 571, 0, 0, 0, 0,
+ 563, 571, 0, 563, 0, 0, 0, 0, 0, 563,
+ 0, 0, 0, 0, 0, 0, 0, 0, 694, 0,
+ 0, 0, 0, 694, 0, 694, 694, 694, 694, 694,
+ 694, 694, 694, 694, 694, 694, 0, 571, 0, 0,
+ 0, 0, 0, 0, 0, 694, 694, 0, 0, 0,
+ 0, 694, 0, 694, 0, 694, 0, 694, 694, 694,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 694, 0, 0, 0, 0, 571, 0,
+ 0, 0, 0, 571, 694, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 571, 571, 694, 0, 696, 0,
+ 0, 0, 0, 571, 0, 571, 571, 0, 0, 0,
+ 0, 571, 694, 571, 571, 571, 571, 571, 571, 571,
+ 0, 571, 571, 0, 571, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 0, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 571, 571, 571, 571, 571, 571,
+ 571, 571, 571, 571, 571, 571, 571, 0, 368, 0,
+ 0, 0, 0, 571, 368, 0, 571, 0, 0, 0,
+ 0, 0, 571, 0, 0, 0, 0, 0, 0, 0,
+ 0, 696, 0, 0, 0, 0, 696, 0, 696, 696,
+ 696, 696, 696, 696, 696, 696, 696, 696, 696, 0,
+ 368, 0, 0, 0, 0, 0, 0, 0, 696, 696,
+ 0, 0, 0, 0, 696, 0, 696, 0, 696, 0,
+ 696, 696, 696, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 696, 0, 0, 0,
+ 0, 368, 0, 0, 0, 0, 368, 0, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 0,
+ 0, 0, 0, 0, 0, 0, 368, 0, 368, 368,
+ 0, 0, 0, 0, 368, 696, 368, 368, 368, 368,
+ 368, 368, 368, 0, 368, 368, 0, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 0, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 0, 486, 0, 0, 390, 0, 368, 486, 0, 368,
+ 0, 0, 0, 0, 0, 368, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 390, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 390, 0, 0, 486, 0, 390, 0, 0, 257, 0,
+ 390, 0, 390, 390, 390, 390, 0, 0, 0, 0,
+ 390, 0, 0, 0, 390, 0, 0, 0, 390, 0,
+ 0, 0, 0, 0, 0, 0, 390, 0, 0, 390,
+ 0, 390, 0, 0, 486, 0, 0, 0, 0, 486,
+ 0, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 486, 0, 0, 0, 390, 0, 0, 0, 486,
+ 0, 486, 486, 0, 0, 390, 0, 486, 0, 486,
+ 486, 486, 486, 486, 486, 486, 0, 486, 486, 0,
+ 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 0, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 486, 486, 0, 598, 390, 389, 0, 0, 486,
+ 598, 0, 486, 0, 0, 0, 0, 0, 486, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 389,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 389, 0, 0, 0, 598, 389, 0, 0,
+ 256, 0, 389, 0, 389, 389, 389, 389, 0, 0,
+ 0, 0, 389, 0, 0, 0, 389, 368, 0, 0,
+ 389, 0, 0, 368, 0, 0, 0, 871, 389, 0,
+ 0, 389, 0, 389, 0, 0, 0, 598, 0, 0,
+ 0, 0, 598, 0, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 0, 0, 389, 0, 368,
+ 0, 0, 0, 0, 598, 598, 0, 389, 0, 0,
+ 598, 0, 598, 0, 598, 871, 598, 598, 598, 0,
+ 598, 598, 0, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 0, 0, 0, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 358, 598, 0, 389, 368, 0,
+ 358, 0, 0, 0, 368, 368, 0, 0, 0, 0,
+ 0, 598, 0, 368, 368, 368, 368, 368, 368, 368,
+ 871, 368, 0, 368, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 358, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 0,
+ 0, 0, 0, 368, 0, 368, 0, 0, 368, 0,
+ 0, 0, 0, 0, 368, 0, 0, 358, 0, 0,
+ 0, 0, 358, 0, 358, 358, 358, 358, 358, 358,
+ 358, 358, 358, 358, 358, 0, 0, 0, 0, 0,
+ 0, 358, 426, 640, 358, 358, 0, 0, 0, 640,
+ 358, 358, 358, 0, 358, 426, 358, 358, 358, 0,
+ 358, 358, 0, 0, 358, 358, 358, 358, 0, 0,
+ 0, 358, 358, 0, 426, 426, 358, 358, 358, 358,
+ 358, 358, 358, 358, 0, 640, 0, 0, 0, 0,
+ 0, 0, 0, 0, 426, 358, 0, 0, 0, 0,
+ 358, 0, 426, 0, 0, 426, 0, 0, 0, 0,
+ 0, 358, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 640, 0, 0, 0,
+ 0, 640, 0, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 0, 0, 0, 0, 0, 0,
+ 0, 427, 644, 640, 640, 0, 0, 0, 644, 640,
+ 0, 640, 427, 640, 427, 640, 640, 640, 0, 640,
+ 640, 0, 0, 640, 640, 640, 640, 0, 0, 0,
+ 640, 640, 0, 427, 427, 640, 640, 640, 640, 640,
+ 640, 640, 640, 0, 644, 0, 0, 0, 0, 0,
+ 0, 0, 0, 427, 640, 0, 0, 0, 0, 0,
+ 0, 427, 0, 0, 427, 0, 0, 0, 0, 0,
+ 640, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 644, 0, 0, 0, 0,
+ 644, 0, 644, 644, 644, 644, 644, 644, 644, 644,
+ 644, 644, 644, 0, 0, 0, 0, 0, 0, 0,
+ 430, 643, 644, 644, 0, 0, 0, 643, 644, 0,
+ 644, 430, 644, 430, 644, 644, 644, 0, 644, 644,
+ 0, 0, 644, 644, 644, 644, 0, 0, 0, 644,
+ 644, 0, 430, 430, 644, 644, 644, 644, 644, 644,
+ 644, 644, 0, 643, 0, 0, 0, 0, 0, 0,
+ 0, 0, 430, 644, 0, 0, 0, 0, 0, 0,
+ 430, 0, 0, 430, 0, 0, 0, 0, 0, 644,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 629, 0, 629, 0, 629, 0, 629, 629,
- 629, 0, 0, 0, 0, 0, 629, 629, 629, 629,
- 0, 0, 0, 629, 629, 0, 0, 633, 629, 629,
- 629, 629, 629, 629, 629, 629, 0, 0, 0, 0,
- 0, 632, 0, 0, 0, 0, 632, 629, 632, 632,
- 632, 632, 632, 632, 632, 632, 632, 632, 632, 0,
- 0, 0, 0, 629, 0, 0, 0, 0, 0, 0,
- 0, 632, 0, 632, 0, 632, 0, 632, 632, 632,
- 0, 0, 0, 0, 0, 632, 632, 632, 632, 0,
- 0, 0, 632, 632, 0, 0, 634, 0, 0, 632,
- 632, 632, 632, 632, 632, 0, 0, 0, 0, 0,
- 633, 0, 0, 0, 0, 633, 632, 633, 633, 633,
- 633, 633, 633, 633, 633, 633, 633, 633, 0, 0,
- 0, 0, 632, 0, 0, 0, 0, 0, 0, 0,
- 633, 0, 633, 0, 633, 0, 633, 633, 633, 0,
- 0, 0, 0, 0, 633, 633, 633, 633, 0, 0,
- 0, 633, 633, 0, 0, 635, 0, 0, 633, 633,
- 633, 633, 633, 633, 0, 0, 0, 0, 0, 634,
- 0, 0, 0, 0, 634, 633, 634, 634, 634, 634,
- 634, 634, 634, 634, 634, 634, 634, 0, 0, 0,
- 0, 633, 0, 0, 0, 0, 0, 0, 0, 634,
- 0, 634, 0, 634, 0, 634, 634, 634, 0, 0,
- 0, 0, 0, 634, 634, 634, 634, 0, 0, 0,
- 634, 634, 0, 0, 636, 0, 0, 634, 634, 634,
- 634, 634, 634, 0, 0, 0, 0, 0, 635, 0,
- 0, 0, 0, 635, 634, 635, 635, 635, 635, 635,
- 635, 635, 635, 635, 635, 635, 0, 0, 0, 0,
- 634, 0, 0, 0, 0, 0, 0, 0, 635, 0,
- 635, 0, 635, 0, 635, 635, 635, 0, 0, 0,
- 0, 0, 635, 635, 635, 635, 364, 0, 0, 635,
- 635, 0, 364, 0, 0, 0, 635, 635, 635, 635,
- 635, 635, 0, 0, 0, 0, 0, 636, 0, 0,
- 0, 0, 636, 635, 636, 636, 636, 636, 636, 636,
- 636, 636, 636, 636, 636, 0, 0, 0, 364, 635,
- 0, 0, 0, 0, 0, 0, 0, 636, 0, 636,
- 0, 636, 0, 636, 636, 636, 0, 0, 0, 0,
- 0, 636, 636, 636, 636, 0, 0, 0, 636, 636,
- 0, 0, 0, 0, 0, 636, 636, 636, 636, 636,
- 636, 0, 0, 641, 0, 0, 0, 0, 0, 0,
- 0, 0, 636, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 364, 0, 0, 0, 636, 364,
- 0, 0, 364, 0, 364, 364, 0, 0, 0, 364,
- 364, 0, 0, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 0, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 642, 364, 364, 0, 0, 0, 0, 0,
- 0, 364, 0, 0, 364, 0, 641, 0, 0, 0,
- 364, 641, 0, 641, 641, 641, 641, 641, 641, 641,
- 641, 641, 641, 641, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 641, 0, 641, 0,
- 641, 0, 641, 641, 641, 0, 0, 0, 0, 0,
- 0, 0, 641, 641, 0, 0, 0, 641, 641, 0,
- 0, 643, 0, 0, 0, 0, 641, 641, 641, 641,
- 0, 0, 0, 0, 0, 642, 0, 0, 0, 0,
- 642, 641, 642, 642, 642, 642, 642, 642, 642, 642,
- 642, 642, 642, 0, 0, 0, 0, 641, 0, 0,
- 0, 0, 0, 0, 0, 642, 0, 642, 0, 642,
- 0, 642, 642, 642, 0, 0, 0, 0, 0, 0,
- 0, 642, 642, 0, 0, 0, 642, 642, 0, 0,
- 646, 0, 0, 0, 0, 642, 642, 642, 642, 0,
0, 0, 0, 0, 643, 0, 0, 0, 0, 643,
- 642, 643, 643, 643, 643, 643, 643, 643, 643, 643,
- 643, 643, 0, 0, 0, 0, 642, 0, 0, 0,
- 0, 0, 0, 0, 643, 0, 643, 0, 643, 0,
- 643, 643, 643, 0, 0, 0, 0, 0, 0, 0,
- 643, 643, 0, 0, 0, 643, 643, 0, 0, 647,
- 0, 0, 0, 0, 643, 643, 643, 643, 0, 0,
- 0, 0, 0, 646, 0, 0, 0, 0, 646, 643,
- 646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
- 646, 0, 0, 0, 0, 643, 0, 0, 0, 0,
- 0, 0, 0, 646, 0, 646, 0, 646, 0, 646,
- 646, 646, 0, 0, 0, 0, 0, 0, 0, 646,
- 646, 0, 0, 0, 646, 646, 0, 0, 649, 0,
- 0, 0, 0, 0, 0, 646, 646, 0, 0, 0,
- 0, 0, 647, 0, 0, 0, 0, 647, 646, 647,
- 647, 647, 647, 647, 647, 647, 647, 647, 647, 647,
- 0, 0, 0, 0, 646, 0, 0, 0, 0, 0,
- 0, 0, 647, 0, 647, 0, 647, 0, 647, 647,
- 647, 0, 0, 0, 0, 0, 0, 0, 647, 647,
- 0, 0, 0, 647, 647, 0, 0, 650, 0, 0,
- 0, 0, 0, 0, 647, 647, 0, 0, 0, 0,
- 0, 649, 0, 0, 0, 0, 649, 647, 649, 649,
- 649, 649, 649, 649, 649, 649, 649, 649, 649, 0,
- 0, 0, 0, 647, 0, 0, 0, 0, 0, 0,
- 0, 649, 0, 649, 0, 649, 0, 649, 649, 649,
- 0, 0, 0, 0, 0, 0, 0, 0, 649, 0,
- 0, 0, 649, 649, 0, 0, 652, 0, 0, 0,
- 0, 0, 0, 649, 649, 0, 0, 0, 0, 0,
- 650, 0, 0, 0, 0, 650, 649, 650, 650, 650,
- 650, 650, 650, 650, 650, 650, 650, 650, 0, 0,
- 0, 0, 649, 0, 0, 0, 0, 0, 0, 0,
- 650, 0, 650, 0, 650, 0, 650, 650, 650, 0,
- 0, 0, 0, 0, 0, 0, 0, 650, 0, 0,
- 0, 650, 650, 0, 0, 653, 0, 0, 0, 0,
- 0, 0, 650, 650, 0, 0, 0, 0, 0, 652,
- 0, 0, 0, 0, 652, 650, 652, 652, 652, 652,
- 652, 652, 652, 652, 652, 652, 652, 0, 0, 0,
- 0, 650, 0, 0, 0, 0, 0, 0, 0, 652,
- 0, 652, 0, 652, 0, 652, 652, 652, 0, 0,
- 0, 0, 0, 0, 0, 0, 652, 0, 0, 0,
- 0, 652, 0, 0, 655, 0, 0, 0, 0, 0,
- 0, 652, 652, 0, 0, 0, 0, 0, 653, 0,
- 0, 0, 0, 653, 652, 653, 653, 653, 653, 653,
- 653, 653, 653, 653, 653, 653, 0, 0, 0, 0,
- 652, 0, 0, 0, 0, 0, 0, 0, 653, 0,
- 653, 0, 653, 0, 653, 653, 653, 0, 0, 0,
- 0, 0, 0, 0, 0, 653, 0, 0, 0, 0,
- 653, 0, 0, 656, 0, 0, 0, 0, 0, 0,
- 653, 653, 0, 0, 0, 0, 0, 655, 0, 0,
- 0, 0, 655, 653, 655, 655, 655, 655, 655, 655,
- 655, 655, 655, 655, 655, 0, 0, 0, 0, 653,
- 0, 0, 0, 0, 0, 0, 0, 655, 0, 655,
- 0, 655, 0, 655, 655, 655, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
- 0, 0, 658, 0, 0, 0, 0, 0, 0, 655,
- 655, 0, 0, 0, 0, 0, 656, 0, 0, 0,
- 0, 656, 655, 656, 656, 656, 656, 656, 656, 656,
- 656, 656, 656, 656, 0, 0, 0, 0, 655, 0,
- 0, 0, 0, 0, 0, 0, 656, 0, 656, 0,
- 656, 0, 656, 656, 656, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 656, 0,
- 0, 659, 0, 0, 0, 0, 0, 0, 656, 656,
- 0, 0, 0, 0, 0, 658, 0, 0, 0, 0,
- 658, 656, 658, 658, 658, 658, 658, 658, 658, 658,
- 658, 658, 658, 0, 0, 0, 0, 656, 0, 0,
- 0, 0, 0, 0, 0, 658, 0, 658, 0, 658,
- 0, 658, 658, 658, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 658, 0, 0,
- 0, 364, 0, 0, 0, 836, 0, 0, 658, 0,
- 0, 0, 0, 0, 659, 0, 0, 0, 0, 659,
- 658, 659, 659, 659, 659, 659, 659, 659, 659, 659,
- 659, 659, 0, 0, 0, 0, 658, 364, 0, 0,
- 0, 0, 0, 0, 659, 0, 659, 0, 659, 0,
- 659, 659, 659, 836, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 659, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 659, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 659,
- 0, 0, 0, 0, 0, 0, 364, 0, 0, 0,
- 0, 0, 364, 364, 0, 659, 0, 0, 364, 364,
- 0, 364, 0, 364, 0, 836, 364, 0, 364, 364,
- 0, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 0, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 0, 0, 591, 0, 364, 0,
- 364, 0, 0, 364, 57, 24, 58, 25, 1164, 364,
- 26, 59, 0, 60, 61, 27, 62, 63, 64, 28,
- 0, 0, 0, 0, 0, 65, 0, 66, 30, 67,
- 68, 69, 70, 0, 0, 32, 0, 0, 0, 71,
- 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 74, 0, 36, 0, 37, 75,
- 0, 0, 38, 0, 76, 77, 78, 79, 80, 81,
- 39, 40, 82, 83, 41, 84, 0, 85, 0, 0,
- 86, 87, 0, 0, 88, 89, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 91, 92, 93, 94, 0, 0, 0, 0, 95, 0,
- 0, 0, 96, 0, 0, 0, 0, 97, 98, 99,
- 100, 101, 0, 0, 0, 102, 0, 103, 0, 0,
- 0, 0, 0, 104, 105, 0, 0, 0, 0, 0,
+ 0, 643, 643, 643, 643, 643, 643, 643, 643, 643,
+ 643, 643, 0, 0, 0, 0, 0, 0, 0, 440,
+ 358, 643, 643, 0, 0, 0, 358, 643, 0, 643,
+ 440, 643, 440, 643, 643, 643, 0, 643, 643, 0,
+ 0, 643, 643, 643, 643, 0, 0, 0, 643, 643,
+ 0, 440, 440, 643, 643, 643, 643, 643, 643, 643,
+ 643, 0, 358, 0, 0, 0, 0, 0, 0, 0,
+ 0, 440, 643, 0, 0, 0, 0, 0, 0, 440,
+ 0, 0, 440, 0, 0, 0, 0, 0, 643, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 56, 0, 106, 592,
- 108, 109, 0, 1165, 57, 24, 58, 25, 0, 0,
- 26, 59, 0, 60, 61, 27, 62, 63, 64, 28,
- 0, 0, 0, 0, 0, 65, 0, 66, 30, 67,
- 68, 69, 70, 0, 0, 32, 0, 0, 0, 71,
- 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 74, 0, 36, 0, 37, 75,
- 0, 0, 38, 0, 76, 77, 78, 79, 80, 81,
- 39, 40, 82, 83, 41, 84, 0, 85, 0, 0,
- 86, 87, 0, 0, 88, 89, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 91, 92, 93, 94, 0, 0, 0, 0, 95, 0,
- 0, 0, 96, 0, 0, 0, 0, 97, 98, 99,
- 100, 101, 0, 0, 0, 102, 0, 103, 0, 0,
- 0, 0, 0, 104, 105, 0, 0, 0, 0, 0,
+ 0, 0, 0, 358, 0, 0, 0, 0, 358, 0,
+ 358, 358, 358, 358, 358, 358, 358, 358, 358, 358,
+ 358, 0, 0, 0, 0, 0, 0, 358, 620, 0,
+ 358, 358, 0, 0, 620, 0, 358, 358, 358, 0,
+ 358, 0, 358, 358, 358, 0, 358, 358, 0, 0,
+ 358, 358, 358, 358, 0, 0, 0, 358, 358, 0,
+ 0, 0, 358, 358, 358, 358, 358, 358, 358, 358,
+ 620, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 358, 0, 0, 0, 0, 358, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 358, 0, 0,
+ 862, 0, 0, 0, 0, 0, 862, 0, 0, 0,
+ 0, 620, 0, 0, 0, 0, 620, 0, 620, 620,
+ 620, 620, 620, 620, 620, 620, 620, 620, 620, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 620, 620,
+ 0, 0, 862, 0, 620, 0, 620, 0, 620, 0,
+ 620, 620, 620, 0, 620, 620, 0, 0, 620, 620,
+ 620, 620, 620, 620, 620, 620, 620, 0, 0, 0,
+ 620, 620, 620, 620, 620, 620, 620, 620, 0, 0,
+ 0, 0, 0, 862, 0, 0, 0, 0, 862, 620,
+ 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
+ 862, 0, 0, 0, 0, 620, 0, 862, 627, 0,
+ 862, 862, 0, 0, 627, 0, 862, 0, 862, 0,
+ 862, 0, 862, 862, 862, 0, 862, 862, 0, 0,
+ 862, 862, 862, 862, 0, 0, 0, 862, 862, 0,
+ 0, 0, 862, 862, 862, 862, 862, 862, 862, 862,
+ 627, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 862, 0, 0, 0, 0, 862, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 862, 0, 0,
+ 993, 0, 0, 0, 0, 0, 993, 0, 0, 0,
+ 0, 627, 0, 0, 0, 0, 627, 0, 627, 627,
+ 627, 627, 627, 627, 627, 627, 627, 627, 627, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 627, 627,
+ 0, 0, 993, 0, 627, 0, 627, 0, 627, 0,
+ 627, 627, 627, 0, 627, 627, 0, 0, 627, 627,
+ 627, 627, 0, 0, 0, 627, 627, 0, 0, 0,
+ 627, 627, 627, 627, 627, 627, 627, 627, 0, 0,
+ 0, 0, 0, 993, 0, 0, 0, 0, 993, 627,
+ 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
+ 993, 0, 0, 0, 0, 627, 0, 0, 628, 0,
+ 993, 993, 0, 0, 628, 0, 993, 0, 993, 0,
+ 993, 0, 993, 993, 993, 0, 993, 993, 0, 0,
+ 993, 993, 993, 993, 0, 0, 0, 993, 993, 0,
+ 0, 0, 993, 993, 993, 993, 993, 993, 993, 993,
+ 628, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 993, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 993, 0, 0,
+ 629, 0, 0, 0, 0, 0, 629, 0, 0, 0,
+ 0, 628, 0, 0, 0, 0, 628, 0, 628, 628,
+ 628, 628, 628, 628, 628, 628, 628, 628, 628, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 628, 628,
+ 0, 0, 629, 0, 628, 0, 628, 0, 628, 0,
+ 628, 628, 628, 0, 628, 628, 0, 0, 628, 628,
+ 628, 628, 0, 0, 0, 628, 628, 0, 0, 0,
+ 628, 628, 628, 628, 628, 628, 628, 628, 0, 0,
+ 0, 0, 0, 629, 0, 0, 0, 0, 629, 628,
+ 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
+ 629, 0, 0, 0, 0, 628, 0, 0, 0, 0,
+ 629, 629, 0, 0, 0, 0, 629, 0, 629, 0,
+ 629, 0, 629, 629, 629, 0, 629, 629, 0, 0,
+ 629, 629, 629, 629, 0, 0, 0, 629, 629, 0,
+ 0, 0, 629, 629, 629, 629, 629, 629, 629, 629,
+ 0, 530, 0, 662, 0, 0, 0, 0, 0, 57,
+ 24, 629, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 629, 0, 0,
+ 65, 0, 0, 30, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 272, 0, 0, 0, 106, 107,
- 108, 109, 57, 24, 58, 25, 0, 0, 26, 59,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
+ 0, 0, 0, 0, 0, 0, 662, 0, 0, 0,
+ 0, 662, 0, 662, 662, 662, 662, 662, 662, 662,
+ 662, 662, 662, 662, 90, 91, 92, 262, 531, 663,
+ 0, 95, 96, 662, 662, 0, 0, 0, 0, 662,
+ 98, 662, 0, 662, 0, 662, 662, 662, 0, 0,
+ 0, 0, 0, 662, 662, 662, 662, 0, 0, 0,
+ 662, 662, 0, 0, 0, 662, 662, 662, 662, 662,
+ 662, 662, 662, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 662, 0, 108, 532, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 533, 534, 0,
+ 662, 664, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 663, 0, 0, 0, 0, 663, 0, 663,
+ 663, 663, 663, 663, 663, 663, 663, 663, 663, 663,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 663,
+ 663, 0, 0, 0, 0, 663, 0, 663, 0, 663,
+ 0, 663, 663, 663, 0, 0, 0, 0, 0, 663,
+ 663, 663, 663, 0, 0, 0, 663, 663, 0, 0,
+ 0, 663, 663, 663, 663, 663, 663, 663, 663, 0,
+ 0, 0, 0, 0, 664, 0, 0, 0, 0, 664,
+ 663, 664, 664, 664, 664, 664, 664, 664, 664, 664,
+ 664, 664, 667, 0, 0, 0, 663, 0, 0, 0,
+ 0, 664, 664, 0, 0, 0, 0, 664, 0, 664,
+ 0, 664, 0, 664, 664, 664, 0, 0, 0, 0,
+ 0, 664, 664, 664, 664, 0, 0, 0, 664, 664,
+ 0, 0, 0, 664, 664, 664, 664, 664, 664, 664,
+ 664, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 664, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 668, 0, 0, 0, 664, 0,
+ 0, 0, 0, 0, 0, 667, 0, 0, 0, 0,
+ 667, 0, 667, 667, 667, 667, 667, 667, 667, 667,
+ 667, 667, 667, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 667, 667, 0, 0, 0, 0, 667, 0,
+ 667, 0, 667, 0, 667, 667, 667, 0, 0, 0,
+ 0, 0, 667, 667, 667, 667, 0, 0, 0, 667,
+ 667, 0, 0, 0, 0, 0, 667, 667, 667, 667,
+ 667, 667, 0, 0, 0, 0, 0, 668, 0, 0,
+ 0, 0, 668, 667, 668, 668, 668, 668, 668, 668,
+ 668, 668, 668, 668, 668, 669, 0, 0, 0, 667,
+ 0, 0, 0, 0, 668, 668, 0, 0, 0, 0,
+ 668, 0, 668, 0, 668, 0, 668, 668, 668, 0,
+ 0, 0, 0, 0, 668, 668, 668, 668, 0, 0,
+ 0, 668, 668, 0, 0, 0, 0, 0, 668, 668,
+ 668, 668, 668, 668, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 668, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 670, 0, 0,
+ 0, 668, 0, 0, 0, 0, 0, 0, 669, 0,
+ 0, 0, 0, 669, 0, 669, 669, 669, 669, 669,
+ 669, 669, 669, 669, 669, 669, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 669, 669, 0, 0, 0,
+ 0, 669, 0, 669, 0, 669, 0, 669, 669, 669,
+ 0, 0, 0, 0, 0, 669, 669, 669, 669, 0,
+ 0, 0, 669, 669, 0, 0, 0, 0, 0, 669,
+ 669, 669, 669, 669, 669, 0, 0, 0, 0, 0,
+ 670, 0, 0, 0, 0, 670, 669, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670, 671, 0,
+ 0, 0, 669, 0, 0, 0, 0, 670, 670, 0,
+ 0, 0, 0, 670, 0, 670, 0, 670, 0, 670,
+ 670, 670, 0, 0, 0, 0, 0, 670, 670, 670,
+ 670, 0, 0, 0, 670, 670, 0, 0, 0, 0,
+ 0, 670, 670, 670, 670, 670, 670, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 368, 670, 0,
+ 0, 0, 0, 368, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 670, 0, 0, 0, 0, 0,
+ 0, 671, 0, 0, 0, 0, 671, 0, 671, 671,
+ 671, 671, 671, 671, 671, 671, 671, 671, 671, 368,
+ 0, 0, 0, 0, 0, 0, 0, 0, 671, 671,
+ 0, 0, 0, 0, 671, 0, 671, 0, 671, 0,
+ 671, 671, 671, 0, 0, 0, 0, 0, 671, 671,
+ 671, 671, 0, 0, 0, 671, 671, 0, 0, 0,
+ 0, 0, 671, 671, 671, 671, 671, 671, 676, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 671,
+ 0, 0, 0, 0, 0, 368, 0, 0, 0, 0,
+ 0, 0, 0, 368, 0, 671, 368, 0, 368, 368,
+ 0, 0, 0, 368, 368, 0, 0, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 0, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 368, 368, 0,
+ 677, 0, 0, 0, 0, 368, 0, 0, 368, 0,
+ 0, 676, 0, 0, 368, 0, 676, 0, 676, 676,
+ 676, 676, 676, 676, 676, 676, 676, 676, 676, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 676, 676,
+ 0, 0, 0, 0, 676, 0, 676, 0, 676, 0,
+ 676, 676, 676, 0, 0, 0, 0, 0, 0, 0,
+ 676, 676, 0, 0, 0, 676, 676, 0, 0, 0,
+ 0, 0, 678, 0, 676, 676, 676, 676, 0, 0,
+ 0, 0, 0, 677, 0, 0, 0, 0, 677, 676,
+ 677, 677, 677, 677, 677, 677, 677, 677, 677, 677,
+ 677, 0, 0, 0, 0, 676, 0, 0, 0, 0,
+ 677, 677, 0, 0, 0, 0, 677, 0, 677, 0,
+ 677, 0, 677, 677, 677, 0, 0, 0, 0, 0,
+ 0, 0, 677, 677, 0, 0, 0, 677, 677, 0,
+ 0, 0, 0, 0, 681, 0, 677, 677, 677, 677,
+ 0, 0, 0, 0, 0, 678, 0, 0, 0, 0,
+ 678, 677, 678, 678, 678, 678, 678, 678, 678, 678,
+ 678, 678, 678, 0, 0, 0, 0, 677, 0, 0,
+ 0, 0, 678, 678, 0, 0, 0, 0, 678, 0,
+ 678, 0, 678, 0, 678, 678, 678, 0, 0, 0,
+ 0, 0, 0, 0, 678, 678, 0, 0, 0, 678,
+ 678, 0, 0, 0, 0, 0, 682, 0, 678, 678,
+ 678, 678, 0, 0, 0, 0, 0, 681, 0, 0,
+ 0, 0, 681, 678, 681, 681, 681, 681, 681, 681,
+ 681, 681, 681, 681, 681, 0, 0, 0, 0, 678,
+ 0, 0, 0, 0, 681, 681, 0, 0, 0, 0,
+ 681, 0, 681, 0, 681, 0, 681, 681, 681, 0,
+ 0, 0, 0, 0, 0, 0, 681, 681, 0, 0,
+ 0, 681, 681, 0, 0, 0, 0, 0, 684, 0,
+ 0, 0, 681, 681, 0, 0, 0, 0, 0, 682,
+ 0, 0, 0, 0, 682, 681, 682, 682, 682, 682,
+ 682, 682, 682, 682, 682, 682, 682, 0, 0, 0,
+ 0, 681, 0, 0, 0, 0, 682, 682, 0, 0,
+ 0, 0, 682, 0, 682, 0, 682, 0, 682, 682,
+ 682, 0, 0, 0, 0, 0, 0, 0, 682, 682,
+ 0, 0, 0, 682, 682, 0, 0, 0, 0, 0,
+ 685, 0, 0, 0, 682, 682, 0, 0, 0, 0,
+ 0, 684, 0, 0, 0, 0, 684, 682, 684, 684,
+ 684, 684, 684, 684, 684, 684, 684, 684, 684, 0,
+ 0, 0, 0, 682, 0, 0, 0, 0, 684, 684,
+ 0, 0, 0, 0, 684, 0, 684, 0, 684, 0,
+ 684, 684, 684, 0, 0, 0, 0, 0, 0, 0,
+ 0, 684, 0, 0, 0, 684, 684, 0, 0, 0,
+ 0, 0, 687, 0, 0, 0, 684, 684, 0, 0,
+ 0, 0, 0, 685, 0, 0, 0, 0, 685, 684,
+ 685, 685, 685, 685, 685, 685, 685, 685, 685, 685,
+ 685, 0, 0, 0, 0, 684, 0, 0, 0, 0,
+ 685, 685, 0, 0, 0, 0, 685, 0, 685, 0,
+ 685, 0, 685, 685, 685, 0, 0, 0, 0, 0,
+ 0, 0, 0, 685, 0, 0, 0, 685, 685, 0,
+ 0, 0, 0, 0, 688, 0, 0, 0, 685, 685,
+ 0, 0, 0, 0, 0, 687, 0, 0, 0, 0,
+ 687, 685, 687, 687, 687, 687, 687, 687, 687, 687,
+ 687, 687, 687, 0, 0, 0, 0, 685, 0, 0,
+ 0, 0, 687, 687, 0, 0, 0, 0, 687, 0,
+ 687, 0, 687, 0, 687, 687, 687, 0, 0, 0,
+ 0, 0, 0, 0, 0, 687, 0, 0, 0, 0,
+ 687, 0, 0, 0, 0, 0, 690, 0, 0, 0,
+ 687, 687, 0, 0, 0, 0, 0, 688, 0, 0,
+ 0, 0, 688, 687, 688, 688, 688, 688, 688, 688,
+ 688, 688, 688, 688, 688, 0, 0, 0, 0, 687,
+ 0, 0, 0, 0, 688, 688, 0, 0, 0, 0,
+ 688, 0, 688, 0, 688, 0, 688, 688, 688, 0,
+ 0, 0, 0, 0, 0, 0, 0, 688, 0, 0,
+ 0, 0, 688, 0, 0, 0, 0, 0, 691, 0,
+ 0, 0, 688, 688, 0, 0, 0, 0, 0, 690,
+ 0, 0, 0, 0, 690, 688, 690, 690, 690, 690,
+ 690, 690, 690, 690, 690, 690, 690, 0, 0, 0,
+ 0, 688, 0, 0, 0, 0, 690, 690, 0, 0,
+ 0, 0, 690, 0, 690, 0, 690, 0, 690, 690,
+ 690, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 368, 690, 0, 0, 871, 0, 0,
+ 0, 0, 0, 0, 690, 690, 0, 0, 0, 0,
+ 0, 691, 0, 0, 0, 0, 691, 690, 691, 691,
+ 691, 691, 691, 691, 691, 691, 691, 691, 691, 368,
+ 0, 0, 0, 690, 0, 0, 0, 0, 691, 691,
+ 0, 0, 0, 0, 691, 871, 691, 0, 691, 0,
+ 691, 691, 691, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 691, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 691, 691, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 368, 691,
+ 0, 0, 0, 0, 368, 368, 0, 0, 0, 0,
+ 0, 0, 0, 368, 368, 691, 368, 0, 368, 0,
+ 871, 368, 0, 368, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 0, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 0,
+ 0, 602, 0, 368, 0, 368, 0, 0, 368, 57,
+ 24, 58, 25, 1216, 368, 26, 59, 0, 60, 61,
+ 27, 62, 63, 64, 28, 0, 0, 0, 0, 0,
+ 65, 0, 66, 30, 67, 68, 69, 70, 0, 0,
+ 32, 0, 0, 0, 71, 33, 0, 72, 73, 34,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 76,
+ 77, 78, 79, 80, 81, 39, 40, 82, 83, 41,
+ 84, 0, 85, 0, 0, 86, 87, 0, 0, 88,
+ 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 93, 94, 0,
+ 0, 95, 96, 0, 0, 0, 97, 0, 0, 0,
+ 98, 0, 0, 0, 0, 99, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 0, 0, 0, 0,
+ 0, 106, 107, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 56, 0, 108, 603, 110, 111,
+ 0, 1217, 57, 24, 58, 25, 0, 0, 26, 59,
0, 60, 61, 27, 62, 63, 64, 28, 0, 0,
0, 0, 0, 65, 0, 66, 30, 67, 68, 69,
70, 0, 0, 32, 0, 0, 0, 71, 33, 0,
@@ -12077,1373 +12457,1436 @@ void case_1078()
82, 83, 41, 84, 0, 85, 0, 0, 86, 87,
0, 0, 88, 89, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 90, 91, 92,
- 93, 94, 0, 0, 0, 0, 95, 0, 0, 0,
- 96, 0, 0, 0, 0, 97, 98, 99, 100, 101,
- 0, 0, 0, 102, 0, 103, 0, 0, 0, 0,
- 0, 104, 105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 591, 0, 0, 0, 106, 107, 108, 109,
- 57, 24, 58, 25, 0, 0, 26, 59, 0, 60,
- 61, 27, 62, 63, 64, 28, 0, 0, 0, 0,
- 0, 65, 0, 66, 30, 67, 68, 69, 70, 0,
- 0, 32, 0, 0, 0, 71, 33, 0, 72, 73,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 74, 0, 36, 0, 37, 75, 0, 0, 38, 0,
- 76, 77, 78, 79, 80, 81, 39, 40, 82, 83,
- 41, 84, 0, 85, 0, 0, 86, 87, 0, 0,
- 88, 89, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 90, 91, 92, 93, 94,
- 0, 0, 0, 0, 95, 0, 0, 0, 96, 0,
- 0, 0, 0, 97, 98, 99, 100, 101, 0, 0,
- 0, 102, 0, 103, 0, 0, 0, 0, 0, 104,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1049, 0, 0, 0, 106, 592, 108, 109, 1049, 1049,
- 1049, 1049, 0, 0, 1049, 1049, 0, 1049, 1049, 1049,
- 1049, 1049, 1049, 1049, 0, 0, 0, 0, 0, 1049,
- 0, 1049, 1049, 1049, 1049, 1049, 1049, 0, 0, 1049,
- 0, 0, 0, 1049, 1049, 0, 1049, 1049, 1049, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1049, 0,
- 1049, 0, 1049, 1049, 0, 0, 1049, 0, 1049, 1049,
- 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049,
- 0, 1049, 0, 0, 1049, 1049, 0, 0, 1049, 1049,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1049, 1049, 1049, 1049, 1049, 0, 0,
- 0, 0, 1049, 0, 0, 0, 1049, 0, 0, 0,
- 0, 1049, 1049, 1049, 1049, 1049, 0, 0, 0, 1049,
- 0, 1049, 0, 0, 0, 0, 0, 1049, 1049, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 635, 0,
- 0, 0, 1049, 1049, 1049, 1049, 57, 24, 0, 25,
- 0, 0, 26, 259, 0, 0, 0, 27, 62, 63,
- 0, 28, 0, 0, 189, 0, 189, 65, 0, 189,
- 30, 0, 0, 0, 189, 0, 0, 32, 189, 0,
- 0, 0, 33, 0, 72, 73, 34, 189, 636, 0,
- 0, 0, 0, 0, 189, 637, 0, 0, 36, 189,
- 37, 75, 0, 189, 38, 0, 0, 77, 0, 79,
- 0, 81, 39, 40, 260, 189, 41, 189, 0, 0,
- 0, 189, 0, 638, 0, 0, 88, 89, 0, 189,
- 189, 0, 0, 189, 0, 0, 189, 0, 0, 0,
- 0, 90, 91, 92, 93, 94, 0, 0, 0, 0,
- 0, 0, 0, 0, 96, 0, 0, 639, 0, 0,
- 98, 99, 100, 101, 0, 0, 0, 102, 0, 103,
- 0, 0, 1074, 0, 0, 104, 105, 0, 0, 0,
- 0, 0, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 106, 107, 108, 109, 65, 0, 0, 30, 0, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 189, 33,
+ 93, 94, 0, 0, 95, 96, 0, 0, 0, 97,
+ 0, 0, 0, 98, 0, 0, 0, 0, 99, 100,
+ 101, 102, 103, 0, 0, 0, 104, 0, 105, 0,
+ 0, 0, 0, 0, 106, 107, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 273, 0, 0, 0, 108,
+ 109, 110, 111, 57, 24, 58, 25, 0, 0, 26,
+ 59, 0, 60, 61, 27, 62, 63, 64, 28, 0,
+ 0, 0, 0, 0, 65, 0, 66, 30, 67, 68,
+ 69, 70, 0, 0, 32, 0, 0, 0, 71, 33,
+ 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 74, 0, 36, 0, 37, 75, 0,
+ 0, 38, 0, 76, 77, 78, 79, 80, 81, 39,
+ 40, 82, 83, 41, 84, 0, 85, 0, 0, 86,
+ 87, 0, 0, 88, 89, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
+ 92, 93, 94, 0, 0, 95, 96, 0, 0, 0,
+ 97, 0, 0, 0, 98, 0, 0, 0, 0, 99,
+ 100, 101, 102, 103, 0, 0, 0, 104, 0, 105,
+ 0, 0, 0, 0, 0, 106, 107, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 602, 0, 0, 0,
+ 108, 109, 110, 111, 57, 24, 58, 25, 0, 0,
+ 26, 59, 0, 60, 61, 27, 62, 63, 64, 28,
+ 0, 0, 0, 0, 0, 65, 0, 66, 30, 67,
+ 68, 69, 70, 0, 0, 32, 0, 0, 0, 71,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 74, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 76, 77, 78, 79, 80, 81,
+ 39, 40, 82, 83, 41, 84, 0, 85, 0, 0,
+ 86, 87, 0, 0, 88, 89, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 93, 94, 0, 0, 95, 96, 0, 0,
+ 0, 97, 0, 0, 0, 98, 0, 0, 0, 0,
+ 99, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 0, 0, 0, 0, 0, 106, 107, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1086, 0, 0,
+ 0, 108, 603, 110, 111, 1086, 1086, 1086, 1086, 0,
+ 0, 1086, 1086, 0, 1086, 1086, 1086, 1086, 1086, 1086,
+ 1086, 0, 0, 0, 0, 0, 1086, 0, 1086, 1086,
+ 1086, 1086, 1086, 1086, 0, 0, 1086, 0, 0, 0,
+ 1086, 1086, 0, 1086, 1086, 1086, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1086, 0, 1086, 0, 1086,
+ 1086, 0, 0, 1086, 0, 1086, 1086, 1086, 1086, 1086,
+ 1086, 1086, 1086, 1086, 1086, 1086, 1086, 0, 1086, 0,
+ 0, 1086, 1086, 0, 0, 1086, 1086, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1086, 1086, 1086, 1086, 1086, 0, 0, 1086, 1086, 0,
+ 0, 0, 1086, 0, 0, 0, 1086, 0, 0, 0,
+ 0, 1086, 1086, 1086, 1086, 1086, 0, 0, 0, 1086,
+ 0, 1086, 0, 0, 0, 0, 0, 1086, 1086, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 646, 0,
+ 0, 0, 1086, 1086, 1086, 1086, 57, 24, 0, 25,
+ 0, 0, 26, 260, 0, 0, 0, 27, 62, 63,
+ 0, 28, 0, 0, 24, 0, 25, 65, 0, 26,
+ 30, 0, 0, 0, 27, 0, 0, 32, 28, 0,
+ 0, 0, 33, 0, 72, 73, 34, 30, 647, 0,
+ 0, 0, 0, 0, 32, 648, 0, 0, 36, 33,
+ 37, 75, 0, 34, 38, 0, 0, 77, 0, 79,
+ 0, 81, 39, 40, 261, 36, 41, 37, 0, 0,
+ 0, 38, 0, 649, 0, 0, 88, 89, 0, 39,
+ 40, 0, 0, 41, 0, 0, 85, 0, 0, 0,
+ 0, 90, 91, 92, 93, 94, 0, 0, 95, 96,
+ 0, 0, 0, 0, 0, 0, 0, 98, 0, 0,
+ 650, 0, 298, 100, 101, 102, 103, 0, 0, 0,
+ 104, 0, 105, 0, 0, 0, 0, 0, 106, 107,
+ 0, 0, 0, 0, 0, 0, 57, 24, 0, 25,
+ 0, 0, 26, 260, 0, 0, 0, 27, 62, 63,
+ 0, 28, 0, 108, 109, 110, 111, 65, 0, 0,
+ 30, 0, 0, 0, 0, 0, 0, 32, 0, 0,
+ 0, 331, 33, 0, 72, 73, 34, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
+ 37, 75, 0, 0, 38, 0, 0, 77, 0, 79,
+ 0, 81, 39, 40, 261, 0, 41, 0, 0, 0,
+ 0, 0, 0, 87, 0, 0, 88, 89, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 90, 91, 92, 93, 815, 0, 0, 95, 96,
+ 0, 0, 0, 816, 1129, 0, 0, 98, 0, 0,
+ 0, 0, 0, 100, 101, 102, 103, 0, 0, 0,
+ 104, 0, 105, 0, 0, 0, 0, 0, 106, 107,
+ 0, 0, 0, 0, 0, 0, 57, 24, 0, 25,
+ 0, 0, 26, 260, 0, 0, 0, 27, 62, 63,
+ 0, 28, 0, 108, 817, 110, 111, 65, 0, 818,
+ 30, 0, 0, 0, 819, 0, 0, 32, 0, 0,
+ 0, 0, 33, 0, 72, 73, 34, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
+ 37, 75, 0, 0, 38, 0, 0, 77, 0, 79,
+ 0, 81, 39, 40, 261, 0, 41, 0, 0, 0,
+ 0, 0, 0, 87, 0, 0, 88, 89, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 90, 91, 92, 93, 815, 0, 0, 95, 96,
+ 0, 0, 0, 816, 0, 0, 0, 98, 0, 0,
+ 0, 0, 0, 100, 101, 102, 103, 0, 0, 0,
+ 104, 0, 105, 0, 0, 0, 0, 0, 106, 107,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 833, 108, 817, 110, 111, 0, 0, 818,
+ 57, 24, 0, 25, 819, 0, 26, 260, 0, 0,
+ 0, 27, 62, 63, 0, 28, 0, 0, 192, 0,
+ 192, 65, 0, 192, 30, 0, 0, 0, 192, 0,
+ 0, 32, 192, 0, 0, 0, 33, 0, 72, 73,
+ 34, 192, 0, 0, 0, 0, 0, 0, 192, 0,
+ 0, 0, 36, 192, 37, 75, 0, 192, 38, 0,
+ 0, 77, 0, 79, 0, 81, 39, 40, 261, 192,
+ 41, 192, 0, 0, 0, 192, 0, 87, 0, 0,
+ 88, 89, 0, 192, 192, 0, 0, 192, 0, 0,
+ 192, 0, 0, 0, 0, 90, 91, 92, 93, 309,
+ 0, 0, 95, 96, 0, 0, 0, 551, 834, 0,
+ 0, 98, 0, 0, 0, 0, 0, 100, 101, 102,
+ 103, 0, 0, 0, 104, 0, 105, 0, 0, 1111,
+ 0, 0, 106, 107, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1041, 0, 0, 0, 108, 310, 110,
+ 111, 57, 24, 0, 25, 0, 0, 26, 260, 0,
+ 0, 0, 27, 62, 63, 192, 28, 0, 0, 192,
+ 0, 192, 65, 0, 192, 30, 0, 0, 0, 192,
+ 0, 0, 32, 192, 0, 0, 0, 33, 0, 72,
+ 73, 34, 192, 647, 0, 0, 0, 0, 0, 192,
+ 648, 0, 0, 36, 192, 37, 75, 0, 192, 38,
+ 0, 0, 77, 0, 79, 0, 81, 39, 40, 261,
+ 192, 41, 192, 0, 0, 0, 192, 0, 649, 0,
+ 0, 88, 89, 0, 192, 192, 0, 0, 192, 0,
+ 0, 192, 0, 0, 0, 0, 90, 91, 92, 93,
+ 94, 0, 0, 95, 96, 0, 0, 0, 0, 0,
+ 0, 0, 98, 0, 0, 0, 0, 0, 100, 101,
+ 102, 103, 0, 0, 0, 104, 0, 105, 1111, 0,
+ 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 833, 0, 0, 0, 108, 109,
+ 110, 111, 57, 24, 0, 25, 0, 0, 26, 260,
+ 0, 0, 0, 27, 62, 63, 192, 28, 0, 0,
+ 24, 0, 25, 65, 0, 26, 30, 0, 0, 0,
+ 27, 0, 0, 32, 28, 0, 0, 0, 33, 0,
+ 72, 73, 34, 30, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 36, 33, 37, 75, 1044, 34,
+ 38, 0, 0, 77, 0, 79, 0, 81, 39, 40,
+ 261, 36, 41, 37, 0, 0, 0, 38, 0, 87,
+ 0, 0, 88, 89, 0, 39, 40, 0, 0, 41,
+ 0, 0, 85, 0, 0, 0, 0, 90, 91, 92,
+ 93, 309, 0, 0, 95, 96, 0, 0, 0, 551,
+ 0, 0, 0, 98, 0, 0, 0, 0, 0, 100,
+ 101, 102, 103, 0, 0, 0, 104, 0, 105, 0,
+ 0, 0, 0, 0, 106, 107, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 833, 0, 0, 0, 108,
+ 310, 110, 111, 57, 24, 0, 25, 0, 0, 26,
+ 260, 0, 0, 0, 27, 62, 63, 387, 28, 0,
+ 0, 0, 0, 0, 65, 0, 0, 30, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 40, 261, 0, 41, 0, 0, 0, 0, 0, 0,
87, 0, 0, 88, 89, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 93, 801, 0, 0, 0, 0, 802, 1088, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 0, 0, 0,
- 0, 0, 104, 105, 0, 0, 0, 0, 0, 0,
- 57, 24, 0, 25, 0, 0, 26, 259, 0, 0,
- 0, 27, 62, 63, 0, 28, 0, 106, 803, 108,
- 109, 65, 0, 804, 30, 0, 0, 0, 805, 0,
- 0, 32, 0, 0, 0, 0, 33, 0, 72, 73,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 36, 0, 37, 75, 0, 0, 38, 0,
- 0, 77, 0, 79, 0, 81, 39, 40, 260, 0,
- 41, 0, 0, 0, 0, 0, 0, 87, 0, 0,
- 88, 89, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 90, 91, 92, 93, 801,
- 0, 0, 0, 0, 802, 0, 0, 0, 96, 0,
- 0, 0, 0, 0, 98, 99, 100, 101, 0, 0,
- 0, 102, 0, 103, 0, 0, 0, 0, 0, 104,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 819, 106, 803, 108, 109, 0, 0,
- 804, 57, 24, 0, 25, 805, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 189,
- 0, 189, 65, 0, 189, 30, 0, 0, 0, 189,
- 0, 0, 32, 189, 0, 0, 0, 33, 0, 72,
- 73, 34, 189, 0, 0, 0, 0, 0, 0, 189,
- 0, 0, 0, 36, 189, 37, 75, 0, 189, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 189, 41, 189, 0, 0, 0, 189, 0, 87, 0,
- 0, 88, 89, 0, 189, 189, 0, 0, 189, 0,
- 0, 189, 0, 0, 0, 0, 90, 91, 92, 93,
- 308, 0, 0, 0, 0, 546, 820, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 1074, 0, 0, 0, 0,
- 104, 105, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1013, 0, 0, 0, 106, 309, 108, 109, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
- 27, 62, 63, 189, 28, 0, 0, 24, 0, 25,
- 65, 0, 26, 30, 0, 0, 0, 27, 0, 0,
- 32, 28, 0, 0, 0, 33, 0, 72, 73, 34,
- 30, 636, 0, 0, 0, 0, 0, 32, 637, 0,
- 0, 36, 33, 37, 75, 0, 34, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 36, 41,
- 37, 0, 0, 0, 38, 0, 638, 0, 0, 88,
- 89, 0, 39, 40, 0, 0, 41, 0, 0, 85,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 0, 0, 0, 0, 0, 104, 105,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 819,
- 0, 0, 0, 106, 107, 108, 109, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 380, 28, 0, 0, 24, 0, 25, 65, 0,
- 26, 30, 0, 0, 0, 27, 0, 0, 32, 28,
- 0, 0, 0, 33, 0, 72, 73, 34, 30, 0,
- 0, 0, 0, 0, 0, 32, 0, 0, 0, 36,
- 33, 37, 75, 1019, 34, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 36, 41, 37, 0,
- 0, 0, 38, 0, 87, 0, 0, 88, 89, 0,
- 39, 40, 0, 0, 41, 0, 0, 608, 0, 0,
- 0, 0, 90, 91, 92, 93, 308, 0, 0, 0,
- 0, 546, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 0, 0, 0, 0, 0, 104, 105, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 819, 0, 0,
- 0, 106, 309, 108, 109, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 380,
- 28, 0, 0, 0, 0, 0, 65, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
- 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
+ 92, 93, 309, 0, 0, 95, 96, 0, 0, 0,
+ 551, 0, 0, 0, 98, 0, 0, 0, 0, 0,
+ 100, 101, 102, 103, 0, 0, 0, 104, 0, 105,
+ 0, 0, 0, 0, 0, 106, 107, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 93, 308, 0, 0, 0, 0, 546,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 0,
- 0, 0, 0, 0, 104, 105, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 351, 0,
+ 108, 310, 110, 111, 352, 0, 57, 24, 0, 25,
+ 0, 0, 26, 260, 0, 0, 0, 27, 62, 63,
+ 0, 28, 0, 0, 0, 0, 0, 65, 0, 0,
+ 30, 0, 0, 0, 0, 0, 0, 32, 0, 0,
+ 353, 0, 33, 0, 72, 73, 34, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
+ 37, 75, 0, 0, 38, 0, 0, 77, 0, 79,
+ 0, 81, 39, 40, 261, 0, 41, 0, 0, 0,
+ 0, 0, 0, 0, 0, 354, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 347, 0, 106,
- 309, 108, 109, 348, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 349,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
- 0, 0, 0, 0, 350, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 351, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 352, 0, 0, 0, 98,
- 99, 100, 101, 972, 0, 0, 102, 0, 103, 811,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
- 0, 0, 0, 0, 87, 0, 0, 88, 89, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 93, 308, 0, 0, 0,
- 0, 0, 973, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 0, 0, 0, 0, 0, 104, 105, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1016, 0, 0,
- 0, 106, 309, 108, 109, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 24, 0, 25, 65, 0, 26, 30,
- 0, 0, 0, 27, 0, 0, 32, 28, 0, 0,
- 0, 33, 0, 72, 73, 34, 30, 0, 0, 0,
- 0, 0, 0, 32, 0, 0, 0, 36, 33, 37,
- 75, 0, 34, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 36, 41, 37, 0, 0, 0,
- 38, 0, 87, 0, 0, 88, 89, 0, 39, 40,
- 0, 0, 41, 0, 0, 563, 0, 0, 0, 0,
- 90, 91, 92, 93, 308, 0, 0, 0, 0, 0,
- 1017, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 0,
- 0, 0, 0, 0, 104, 105, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 307, 0, 0, 0, 106,
- 309, 108, 109, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 380, 28, 0,
- 0, 527, 0, 527, 65, 0, 527, 30, 0, 0,
- 0, 527, 0, 0, 32, 527, 0, 0, 0, 33,
- 0, 72, 73, 34, 527, 0, 0, 0, 0, 0,
- 0, 527, 0, 0, 0, 36, 527, 37, 75, 0,
- 527, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 527, 41, 527, 0, 0, 0, 527, 0,
- 87, 0, 0, 88, 89, 0, 527, 527, 0, 0,
- 527, 0, 0, 527, 0, 0, 0, 0, 90, 91,
- 92, 93, 308, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 0, 0, 0,
- 0, 0, 104, 105, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 316, 0, 0, 0, 106, 309, 108,
- 109, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 527, 28, 0, 0, 0,
- 0, 0, 65, 0, 0, 30, 0, 0, 0, 0,
+ 0, 90, 91, 92, 262, 355, 0, 0, 95, 96,
+ 0, 0, 0, 0, 0, 0, 0, 98, 0, 356,
+ 0, 0, 0, 100, 101, 102, 103, 994, 0, 0,
+ 104, 0, 105, 825, 0, 0, 0, 0, 106, 107,
+ 0, 57, 24, 0, 25, 0, 0, 26, 260, 0,
+ 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
+ 0, 0, 65, 108, 264, 30, 111, 0, 0, 0,
0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
+ 0, 0, 77, 0, 79, 0, 81, 39, 40, 261,
0, 41, 0, 0, 0, 0, 0, 0, 87, 0,
0, 88, 89, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 90, 91, 92, 93,
- 308, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 0, 0, 0, 0, 0,
- 104, 105, 0, 0, 0, 0, 0, 0, 0, 0,
+ 309, 0, 0, 95, 96, 0, 0, 0, 0, 995,
+ 0, 0, 98, 0, 0, 0, 0, 0, 100, 101,
+ 102, 103, 0, 0, 0, 104, 0, 105, 0, 0,
+ 0, 0, 0, 106, 107, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 347, 0, 106, 309, 108, 109, 348,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 0, 0, 30, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 349, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 350, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 351, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 352, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 633, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
- 87, 0, 0, 88, 89, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 93, 94, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 0, 0, 0,
- 0, 0, 104, 105, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 811, 0, 0, 0, 106, 107, 108,
- 109, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 190,
- 0, 190, 65, 0, 190, 30, 0, 0, 0, 190,
- 0, 0, 32, 190, 0, 0, 0, 33, 0, 72,
- 73, 34, 190, 0, 0, 0, 0, 0, 0, 190,
- 0, 0, 0, 36, 190, 37, 75, 0, 190, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 190, 41, 190, 0, 0, 0, 190, 0, 87, 0,
- 0, 88, 89, 0, 190, 190, 0, 0, 190, 0,
- 0, 190, 0, 0, 0, 0, 90, 91, 92, 93,
- 308, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 0, 0, 0, 0, 0,
- 104, 105, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1126, 0, 0, 0, 106, 309, 108, 109, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
- 27, 62, 63, 190, 28, 0, 0, 189, 0, 189,
- 65, 0, 189, 30, 0, 0, 0, 189, 0, 0,
- 32, 189, 0, 0, 0, 33, 0, 72, 73, 34,
- 189, 0, 0, 0, 0, 0, 0, 189, 0, 0,
- 0, 36, 189, 37, 75, 0, 189, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 189, 41,
- 189, 0, 0, 0, 189, 0, 87, 0, 0, 88,
- 89, 0, 189, 189, 0, 0, 189, 0, 0, 189,
- 0, 0, 0, 0, 90, 91, 92, 93, 94, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 0, 0, 0, 0, 0, 104, 105,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1278,
- 0, 0, 0, 106, 1127, 108, 109, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 189, 28, 0, 0, 199, 0, 199, 65, 0,
- 199, 30, 0, 0, 0, 199, 0, 0, 32, 199,
- 0, 0, 0, 33, 0, 72, 73, 34, 199, 0,
- 0, 0, 0, 0, 0, 199, 0, 0, 0, 36,
- 199, 37, 75, 0, 199, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 199, 41, 199, 0,
- 0, 0, 199, 0, 87, 0, 0, 88, 89, 0,
- 199, 199, 0, 0, 199, 0, 0, 199, 0, 0,
- 0, 0, 90, 91, 92, 93, 308, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 0, 0, 0, 0, 0, 104, 105, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 83, 0, 0,
- 0, 106, 309, 108, 109, 83, 83, 0, 83, 0,
- 0, 83, 83, 0, 0, 0, 83, 83, 83, 199,
- 83, 0, 0, 0, 0, 0, 83, 0, 0, 83,
- 0, 0, 0, 0, 0, 0, 83, 0, 0, 0,
- 0, 83, 0, 83, 83, 83, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 83, 0, 83,
- 83, 0, 0, 83, 0, 0, 83, 0, 83, 0,
- 83, 83, 83, 83, 0, 83, 0, 0, 0, 0,
- 0, 0, 83, 0, 0, 83, 83, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 83, 83, 83, 83, 0, 0, 0, 0, 0,
- 0, 0, 0, 83, 0, 0, 0, 0, 0, 83,
- 83, 83, 83, 0, 0, 0, 83, 0, 83, 0,
- 0, 0, 0, 0, 83, 83, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 347, 0, 83,
- 83, 83, 83, 348, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 349,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1062, 0, 0, 0, 108, 310,
+ 110, 111, 57, 24, 0, 25, 0, 0, 26, 260,
+ 0, 0, 0, 27, 62, 63, 0, 28, 0, 0,
+ 24, 0, 25, 65, 0, 26, 30, 0, 0, 0,
+ 27, 0, 0, 32, 28, 0, 0, 0, 33, 0,
+ 72, 73, 34, 30, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 36, 33, 37, 75, 0, 34,
+ 38, 0, 0, 77, 0, 79, 0, 81, 39, 40,
+ 261, 36, 41, 37, 0, 0, 0, 38, 0, 87,
+ 0, 0, 88, 89, 0, 39, 40, 0, 0, 41,
+ 0, 0, 619, 0, 0, 0, 0, 90, 91, 92,
+ 93, 309, 0, 0, 95, 96, 0, 0, 0, 0,
+ 1063, 0, 0, 98, 0, 0, 0, 0, 0, 100,
+ 101, 102, 103, 0, 0, 0, 104, 0, 105, 0,
+ 0, 0, 0, 0, 106, 107, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 308, 0, 0, 0, 108,
+ 310, 110, 111, 57, 24, 0, 25, 0, 0, 26,
+ 260, 0, 0, 0, 27, 62, 63, 387, 28, 0,
+ 0, 24, 0, 25, 65, 0, 26, 30, 0, 0,
+ 0, 27, 0, 0, 32, 28, 0, 0, 0, 33,
+ 0, 72, 73, 34, 30, 0, 0, 0, 0, 0,
+ 0, 32, 0, 0, 0, 36, 33, 37, 75, 0,
+ 34, 38, 0, 0, 77, 0, 79, 0, 81, 39,
+ 40, 261, 36, 41, 37, 0, 0, 0, 38, 0,
+ 87, 0, 0, 88, 89, 0, 39, 40, 0, 0,
+ 41, 0, 0, 568, 0, 0, 0, 0, 90, 91,
+ 92, 93, 309, 0, 0, 95, 96, 0, 0, 0,
+ 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
+ 100, 101, 102, 103, 0, 0, 0, 104, 0, 105,
+ 0, 0, 0, 0, 0, 106, 107, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 351, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 352, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 347,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
+ 0, 0, 0, 0, 0, 0, 317, 0, 0, 0,
+ 108, 310, 110, 111, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 387, 28,
+ 0, 0, 0, 0, 0, 65, 0, 0, 30, 0,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
+ 0, 87, 0, 0, 88, 89, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 93, 309, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 0, 0, 0, 0, 0, 106, 107, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 351,
+ 0, 108, 310, 110, 111, 352, 0, 57, 24, 0,
+ 25, 0, 0, 26, 260, 0, 0, 0, 27, 62,
+ 63, 0, 28, 0, 0, 0, 0, 0, 65, 0,
+ 0, 30, 0, 0, 0, 0, 0, 0, 32, 0,
+ 0, 353, 0, 33, 0, 72, 73, 34, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
+ 79, 0, 81, 39, 40, 261, 0, 41, 0, 0,
+ 0, 0, 0, 0, 0, 0, 354, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 90, 91, 92, 262, 355, 0, 0, 95,
+ 96, 0, 0, 0, 0, 0, 0, 0, 98, 0,
+ 356, 0, 0, 0, 100, 101, 102, 103, 0, 0,
+ 0, 104, 0, 105, 644, 0, 0, 0, 0, 106,
+ 107, 0, 57, 24, 0, 25, 0, 0, 26, 260,
+ 0, 0, 0, 27, 62, 63, 0, 28, 0, 0,
+ 0, 0, 0, 65, 108, 264, 30, 111, 0, 0,
+ 0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
+ 72, 73, 34, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 36, 0, 37, 75, 0, 0,
+ 38, 0, 0, 77, 0, 79, 0, 81, 39, 40,
+ 261, 0, 41, 0, 0, 0, 0, 0, 0, 87,
+ 0, 0, 88, 89, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 90, 91, 92,
+ 93, 94, 0, 0, 95, 96, 0, 0, 0, 0,
+ 0, 0, 0, 98, 0, 0, 0, 0, 0, 100,
+ 101, 102, 103, 0, 0, 0, 104, 0, 105, 0,
+ 0, 0, 0, 0, 106, 107, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 825, 0, 0, 0, 108,
+ 109, 110, 111, 57, 24, 0, 25, 0, 0, 26,
+ 260, 0, 0, 0, 27, 62, 63, 0, 28, 0,
+ 0, 547, 0, 547, 65, 0, 547, 30, 0, 0,
+ 0, 547, 0, 0, 32, 547, 0, 0, 0, 33,
+ 0, 72, 73, 34, 547, 0, 0, 0, 0, 0,
+ 0, 547, 0, 0, 0, 36, 547, 37, 75, 0,
+ 547, 38, 0, 0, 77, 0, 79, 0, 81, 39,
+ 40, 261, 547, 41, 547, 0, 0, 0, 547, 0,
+ 87, 0, 0, 88, 89, 0, 547, 547, 0, 0,
+ 547, 0, 0, 547, 0, 0, 0, 0, 90, 91,
+ 92, 93, 309, 0, 0, 95, 96, 0, 0, 0,
+ 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
+ 100, 101, 102, 103, 0, 0, 0, 104, 0, 105,
+ 0, 0, 0, 0, 0, 106, 107, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1178, 0, 0, 0,
+ 108, 310, 110, 111, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 547, 28,
+ 0, 0, 193, 0, 193, 65, 0, 193, 30, 0,
+ 0, 0, 193, 0, 0, 32, 193, 0, 0, 0,
+ 33, 0, 72, 73, 34, 193, 0, 0, 0, 0,
+ 0, 0, 193, 0, 0, 0, 36, 193, 37, 75,
+ 0, 193, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 193, 41, 193, 0, 0, 0, 193,
+ 0, 87, 0, 0, 88, 89, 0, 193, 193, 0,
+ 0, 193, 0, 0, 193, 0, 0, 0, 0, 90,
+ 91, 92, 93, 94, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 0, 0, 0, 0, 0, 106, 107, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1338, 0, 0,
+ 0, 108, 1179, 110, 111, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 193,
+ 28, 0, 0, 192, 0, 192, 65, 0, 192, 30,
+ 0, 0, 0, 192, 0, 0, 32, 192, 0, 0,
+ 0, 33, 0, 72, 73, 34, 192, 0, 0, 0,
+ 0, 0, 0, 192, 0, 0, 0, 36, 192, 37,
+ 75, 0, 192, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 192, 41, 192, 0, 0, 0,
+ 192, 0, 87, 0, 0, 88, 89, 0, 192, 192,
+ 0, 0, 192, 0, 0, 192, 0, 0, 0, 0,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
+ 0, 0, 108, 310, 110, 111, 86, 86, 0, 86,
+ 0, 0, 86, 86, 0, 0, 0, 86, 86, 86,
+ 192, 86, 0, 0, 0, 0, 0, 86, 0, 0,
+ 86, 0, 0, 0, 0, 0, 0, 86, 0, 0,
+ 0, 0, 86, 0, 86, 86, 86, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 86, 0,
+ 86, 86, 0, 0, 86, 0, 0, 86, 0, 86,
+ 0, 86, 86, 86, 86, 0, 86, 0, 0, 0,
+ 0, 0, 0, 86, 0, 0, 86, 86, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 86, 86, 86, 86, 86, 0, 0, 86, 86,
+ 0, 0, 0, 0, 0, 0, 0, 86, 0, 0,
+ 0, 0, 0, 86, 86, 86, 86, 0, 0, 0,
+ 86, 0, 86, 0, 0, 0, 0, 0, 86, 86,
+ 0, 0, 0, 0, 205, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 206, 0, 0,
+ 0, 351, 0, 86, 86, 86, 86, 352, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 207, 0, 0, 0,
+ 65, 0, 0, 30, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 353, 0, 33, 0, 72, 73, 34,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
+ 208, 209, 210, 211, 0, 212, 213, 214, 215, 216,
+ 217, 218, 219, 0, 0, 220, 221, 222, 223, 224,
+ 225, 226, 227, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 356, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 351, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 33, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 33, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 33, 41, 0, 0, 0, 33, 0,
+ 0, 0, 0, 33, 0, 33, 33, 33, 33, 0,
+ 0, 33, 0, 33, 0, 0, 0, 33, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 33,
+ 0, 0, 33, 0, 33, 98, 0, 356, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 363, 0, 0, 0, 0, 106, 107, 33, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 33, 33,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 33, 0, 33, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 33, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 33, 41,
+ 0, 0, 0, 33, 0, 0, 0, 0, 33, 0,
+ 33, 33, 33, 33, 0, 0, 0, 0, 33, 0,
+ 0, 0, 33, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 33, 0, 0, 33, 0, 33,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 365, 0, 0, 0,
+ 0, 106, 107, 33, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 33, 33, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 53, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 53, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 53, 41, 0, 0, 0, 53, 0,
+ 0, 0, 0, 53, 0, 53, 53, 53, 53, 0,
+ 0, 53, 0, 53, 0, 0, 0, 53, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 53,
+ 0, 0, 53, 0, 53, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 367, 0, 0, 0, 0, 106, 107, 53, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 326, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 53, 0, 53, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 351, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 352, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 356, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 36, 0, 37, 75, 53, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 53, 41,
+ 0, 0, 0, 53, 0, 0, 0, 0, 53, 0,
+ 53, 53, 53, 53, 0, 0, 0, 0, 53, 0,
+ 0, 0, 53, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 53, 0, 0, 53, 0, 53,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 369, 0, 0, 0,
+ 0, 106, 107, 53, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 327, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 53, 0, 53,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 53, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 53, 41, 0, 0, 0, 53, 0,
+ 0, 0, 0, 53, 0, 53, 53, 53, 53, 0,
+ 0, 53, 0, 53, 0, 0, 0, 53, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 53,
+ 0, 0, 53, 0, 53, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 371, 0, 0, 0, 0, 106, 107, 53, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 482, 0, 0, 33, 0, 72, 73, 34,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 483, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 484, 41,
+ 0, 0, 485, 486, 0, 0, 0, 0, 487, 0,
+ 488, 489, 490, 491, 0, 0, 0, 0, 492, 0,
+ 0, 0, 493, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 494, 0, 0, 495, 0, 496,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 373, 0, 0, 0,
+ 0, 106, 107, 497, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 482, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 483, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 484, 41, 0, 0, 0, 486, 0,
+ 0, 0, 0, 487, 0, 488, 489, 490, 491, 0,
+ 0, 0, 0, 492, 0, 0, 0, 493, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 494,
+ 0, 0, 495, 0, 496, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 375, 0, 0, 0, 0, 106, 107, 497, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 351, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 358, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 351, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 360, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 377, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 261, 351, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 362, 0, 0,
- 0, 0, 104, 105, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 106, 263, 30,
- 109, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 670, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 351, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 364,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 672, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 351, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 366, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 674, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 351, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 368, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 351, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 370, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 692, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 261, 351, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 658, 0, 0,
- 0, 0, 104, 105, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 106, 263, 30,
- 109, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 355, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 694, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 351, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 660,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 696, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 351, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 662, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 699, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 351, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 675, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 351, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 677, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 701, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 261, 351, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 679, 0, 0,
- 0, 0, 104, 105, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 106, 263, 30,
- 109, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 703, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 680, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 682,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 705, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 680, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 684, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 707, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 680, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 686, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 680, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 688, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 709, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 261, 680, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 690, 0, 0,
- 0, 0, 104, 105, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 106, 263, 30,
- 109, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 711, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 680, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 692,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 713, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 680, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 694, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 715, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 680, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 696, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 680, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 698, 0, 0, 0, 0,
- 104, 105, 0, 57, 24, 0, 25, 0, 0, 26,
- 259, 0, 0, 0, 27, 62, 63, 0, 28, 0,
- 0, 0, 0, 0, 65, 106, 263, 30, 109, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
- 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
- 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
- 40, 260, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 717, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
- 92, 261, 680, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 98, 99, 100,
- 101, 0, 0, 0, 102, 0, 103, 700, 0, 0,
- 0, 0, 104, 105, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 0, 0, 0, 0, 65, 106, 263, 30,
- 109, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
- 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 719, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
+ 27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 261, 680, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 702,
- 0, 0, 0, 0, 104, 105, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 0, 0, 0, 0, 65, 106,
- 263, 30, 109, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 90, 91, 92, 262, 697, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 721, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
+ 0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
+ 39, 40, 261, 0, 41, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 680, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 704, 0, 0, 0, 0, 104, 105, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
+ 91, 92, 262, 697, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 100, 101, 102, 103, 0, 0, 0, 104, 0,
+ 105, 889, 0, 0, 0, 0, 106, 107, 0, 57,
+ 24, 0, 25, 0, 0, 26, 260, 0, 0, 0,
27, 62, 63, 0, 28, 0, 0, 0, 0, 0,
- 65, 106, 263, 30, 109, 0, 0, 0, 0, 0,
+ 65, 108, 264, 30, 111, 0, 0, 0, 0, 0,
32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
+ 77, 0, 79, 0, 81, 39, 40, 261, 0, 41,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 261, 680, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 869, 0, 0, 0, 0, 104, 105,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 106, 263, 30, 109, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 351, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 0, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 0, 0, 0, 0, 0,
- 104, 105, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 210, 0, 0, 0, 0, 210, 0,
- 0, 0, 210, 0, 210, 106, 263, 210, 109, 210,
- 210, 0, 210, 0, 210, 0, 210, 0, 210, 210,
- 210, 210, 0, 0, 210, 210, 0, 0, 0, 0,
- 210, 0, 210, 210, 210, 0, 0, 210, 0, 210,
- 0, 210, 0, 0, 210, 0, 210, 210, 210, 210,
- 0, 0, 0, 210, 210, 210, 0, 0, 210, 210,
- 210, 0, 0, 0, 0, 0, 0, 210, 210, 0,
- 210, 210, 666, 210, 210, 210, 0, 0, 0, 210,
- 57, 24, 0, 25, 0, 0, 26, 259, 0, 0,
- 0, 27, 62, 63, 0, 28, 0, 0, 0, 210,
- 0, 65, 0, 0, 30, 210, 210, 210, 0, 0,
- 0, 32, 0, 0, 0, 210, 33, 0, 72, 73,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 36, 0, 37, 75, 0, 0, 38, 0,
- 0, 77, 0, 79, 0, 81, 39, 40, 260, 0,
- 41, 0, 0, 85, 0, 0, 210, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 90, 91, 92, 261, 262,
- 0, 0, 0, 525, 0, 0, 0, 0, 96, 0,
- 364, 57, 24, 0, 25, 667, 668, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
- 0, 0, 65, 0, 0, 30, 0, 0, 0, 51,
- 0, 51, 32, 0, 0, 0, 364, 33, 0, 72,
- 73, 34, 0, 0, 106, 263, 0, 0, 0, 0,
- 0, 0, 51, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 51, 81, 39, 40, 260,
- 51, 41, 0, 0, 0, 51, 0, 51, 51, 51,
- 51, 0, 0, 51, 0, 51, 0, 0, 0, 51,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 261,
- 526, 51, 364, 0, 51, 0, 51, 0, 0, 96,
- 364, 364, 364, 364, 836, 0, 0, 364, 364, 0,
- 0, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 51, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 0, 0, 106, 527, 0, 0, 364,
- 0, 52, 364, 52, 0, 52, 0, 52, 0, 0,
- 52, 0, 52, 52, 0, 52, 0, 52, 0, 52,
- 0, 52, 52, 52, 52, 0, 0, 52, 52, 0,
- 0, 0, 0, 52, 52, 52, 52, 52, 0, 0,
- 52, 0, 52, 0, 52, 0, 52, 52, 0, 52,
- 52, 52, 52, 0, 0, 52, 52, 52, 52, 0,
- 0, 52, 52, 52, 0, 0, 0, 0, 0, 0,
- 52, 52, 0, 52, 52, 0, 52, 52, 52, 0,
- 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 52, 0, 0, 52, 52, 51, 0, 0,
- 0, 51, 0, 51, 0, 0, 51, 0, 51, 51,
- 0, 51, 0, 51, 0, 51, 0, 51, 51, 51,
- 51, 0, 0, 51, 51, 0, 0, 0, 0, 51,
- 0, 51, 51, 51, 0, 0, 51, 0, 51, 0,
- 51, 0, 0, 51, 0, 51, 51, 51, 51, 52,
- 0, 0, 51, 51, 51, 0, 0, 51, 51, 51,
- 0, 0, 0, 0, 0, 0, 51, 51, 0, 51,
- 51, 0, 51, 51, 51, 0, 0, 0, 51, 0,
- 0, 51, 0, 0, 0, 51, 0, 51, 0, 0,
- 51, 0, 51, 51, 0, 51, 0, 51, 51, 51,
- 0, 51, 51, 51, 51, 86, 0, 51, 51, 0,
- 0, 0, 0, 51, 51, 51, 51, 51, 0, 0,
- 51, 0, 51, 0, 51, 0, 0, 51, 0, 51,
- 51, 51, 51, 0, 0, 0, 51, 51, 51, 0,
- 0, 51, 51, 51, 0, 0, 0, 0, 0, 0,
- 51, 51, 0, 51, 51, 51, 51, 51, 51, 0,
- 0, 0, 51, 0, 0, 52, 0, 0, 0, 52,
- 0, 52, 0, 0, 52, 0, 52, 52, 0, 52,
- 0, 52, 51, 52, 0, 52, 52, 52, 52, 87,
- 0, 52, 52, 0, 0, 0, 0, 52, 51, 52,
- 52, 52, 0, 0, 52, 0, 52, 0, 52, 0,
- 0, 52, 0, 52, 52, 52, 52, 0, 0, 0,
- 52, 52, 52, 0, 0, 52, 52, 52, 0, 0,
- 0, 0, 0, 0, 52, 52, 0, 52, 52, 51,
- 52, 52, 52, 0, 0, 0, 52, 0, 0, 51,
- 0, 0, 0, 51, 0, 51, 0, 0, 51, 0,
- 51, 51, 0, 51, 0, 51, 52, 51, 0, 51,
- 51, 51, 51, 0, 0, 51, 51, 0, 0, 0,
- 0, 51, 52, 51, 51, 51, 0, 0, 51, 0,
- 51, 0, 51, 0, 0, 51, 0, 51, 51, 51,
- 51, 0, 0, 0, 51, 51, 51, 0, 0, 51,
- 51, 51, 0, 0, 0, 0, 0, 0, 51, 51,
- 0, 51, 51, 52, 51, 51, 51, 0, 0, 0,
- 51, 0, 0, 51, 0, 0, 0, 51, 0, 51,
- 0, 0, 51, 0, 51, 51, 0, 51, 0, 51,
- 51, 51, 0, 51, 51, 51, 51, 238, 0, 51,
- 51, 0, 0, 0, 0, 51, 0, 51, 51, 51,
- 0, 0, 51, 0, 51, 364, 51, 0, 0, 51,
- 0, 51, 51, 51, 51, 0, 0, 0, 51, 51,
- 51, 0, 0, 51, 51, 51, 0, 0, 364, 0,
- 0, 0, 51, 51, 0, 51, 51, 51, 51, 51,
- 51, 364, 0, 0, 51, 0, 364, 0, 0, 364,
- 0, 364, 0, 364, 364, 364, 364, 0, 0, 0,
- 0, 364, 0, 0, 51, 364, 0, 0, 0, 364,
- 0, 239, 0, 0, 0, 0, 0, 364, 0, 0,
- 364, 0, 364, 0, 57, 24, 0, 25, 0, 0,
- 26, 259, 0, 0, 0, 27, 62, 63, 0, 28,
- 0, 364, 0, 0, 0, 65, 364, 0, 30, 0,
- 0, 0, 0, 364, 364, 32, 287, 0, 364, 0,
- 33, 51, 72, 73, 34, 0, 636, 0, 0, 0,
- 0, 364, 0, 637, 0, 0, 36, 0, 37, 75,
+ 0, 0, 0, 0, 90, 91, 92, 262, 355, 0,
+ 0, 95, 96, 0, 0, 0, 0, 0, 0, 0,
+ 98, 0, 0, 0, 0, 0, 100, 101, 102, 103,
+ 0, 0, 0, 104, 0, 105, 678, 0, 0, 0,
+ 0, 106, 107, 0, 57, 24, 0, 25, 0, 0,
+ 26, 260, 0, 0, 0, 27, 62, 63, 0, 28,
+ 0, 0, 0, 0, 0, 65, 108, 264, 30, 111,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 72, 73, 34, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 36, 0, 37, 75,
0, 0, 38, 0, 0, 77, 0, 79, 0, 81,
- 39, 40, 260, 0, 41, 0, 0, 0, 0, 0,
- 0, 638, 0, 364, 88, 89, 0, 0, 0, 0,
+ 39, 40, 261, 0, 41, 0, 0, 85, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 91, 92, 93, 94, 0, 0, 0, 0, 0, 0,
- 0, 0, 96, 1011, 0, 639, 0, 0, 98, 99,
- 100, 101, 0, 0, 0, 102, 0, 103, 0, 0,
- 0, 0, 0, 104, 105, 0, 0, 0, 0, 0,
- 0, 57, 24, 0, 25, 0, 0, 26, 259, 0,
- 0, 0, 27, 62, 63, 0, 28, 0, 106, 107,
- 108, 109, 65, 0, 0, 30, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 0, 0, 33, 0, 72,
- 73, 34, 0, 636, 0, 0, 0, 0, 0, 0,
- 637, 0, 0, 36, 0, 37, 75, 0, 0, 38,
- 0, 0, 77, 0, 79, 0, 81, 39, 40, 260,
- 0, 41, 0, 0, 0, 0, 0, 0, 638, 0,
- 0, 88, 89, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 90, 91, 92, 93,
- 94, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 639, 0, 0, 98, 99, 100, 101, 0,
- 0, 0, 102, 0, 103, 0, 0, 0, 0, 0,
- 104, 105, 0, 0, 0, 0, 0, 0, 57, 24,
- 0, 25, 0, 0, 26, 259, 0, 0, 0, 27,
- 62, 63, 0, 28, 0, 106, 107, 108, 109, 65,
- 0, 0, 30, 0, 0, 0, 0, 0, 0, 32,
- 0, 0, 0, 0, 33, 0, 72, 73, 34, 0,
+ 91, 92, 262, 263, 0, 0, 95, 96, 0, 0,
+ 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
+ 0, 0, 679, 680, 0, 0, 213, 0, 0, 0,
+ 681, 213, 0, 0, 0, 213, 0, 213, 0, 0,
+ 213, 0, 213, 213, 0, 213, 0, 213, 0, 213,
+ 0, 213, 213, 213, 213, 0, 0, 213, 213, 0,
+ 0, 108, 264, 213, 682, 213, 213, 213, 0, 0,
+ 213, 0, 213, 0, 213, 0, 0, 213, 0, 213,
+ 213, 213, 213, 0, 0, 0, 213, 213, 213, 0,
+ 0, 213, 213, 213, 0, 0, 0, 0, 0, 0,
+ 213, 213, 0, 213, 213, 0, 213, 213, 213, 0,
+ 0, 0, 213, 0, 0, 530, 0, 0, 0, 0,
+ 0, 0, 368, 57, 24, 0, 25, 0, 0, 26,
+ 260, 0, 213, 0, 27, 62, 63, 0, 28, 0,
+ 0, 213, 213, 213, 65, 0, 0, 30, 0, 0,
+ 0, 213, 0, 0, 32, 0, 0, 0, 368, 33,
+ 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
+ 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
+ 40, 261, 213, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
+ 92, 262, 531, 0, 368, 95, 96, 0, 0, 0,
+ 0, 0, 0, 0, 98, 368, 368, 368, 368, 871,
+ 0, 0, 368, 368, 0, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 0, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 368, 368, 368, 368, 368, 368, 368, 0, 0,
+ 108, 532, 0, 0, 368, 0, 54, 368, 54, 0,
+ 54, 0, 54, 0, 0, 54, 0, 54, 54, 0,
+ 54, 0, 54, 0, 54, 0, 54, 54, 54, 54,
+ 0, 0, 54, 54, 0, 0, 0, 0, 54, 54,
+ 54, 54, 54, 0, 0, 54, 0, 54, 0, 54,
+ 0, 54, 54, 0, 54, 54, 54, 54, 0, 0,
+ 54, 54, 54, 54, 0, 0, 54, 54, 54, 0,
+ 0, 0, 0, 0, 0, 54, 54, 0, 54, 54,
+ 0, 54, 54, 54, 0, 0, 0, 54, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 54, 0, 0,
+ 0, 0, 0, 54, 54, 53, 0, 0, 0, 53,
+ 0, 53, 0, 0, 53, 0, 53, 53, 0, 53,
+ 0, 53, 0, 53, 0, 53, 53, 53, 53, 0,
+ 0, 53, 53, 0, 0, 0, 0, 53, 0, 53,
+ 53, 53, 0, 0, 53, 0, 53, 0, 53, 0,
+ 0, 53, 0, 53, 53, 53, 53, 54, 0, 0,
+ 53, 53, 53, 0, 0, 53, 53, 53, 0, 0,
+ 0, 0, 0, 0, 53, 53, 0, 53, 53, 0,
+ 53, 53, 53, 0, 0, 0, 53, 53, 0, 0,
+ 0, 53, 0, 53, 0, 0, 53, 0, 53, 53,
+ 0, 53, 0, 53, 0, 53, 53, 53, 53, 53,
+ 53, 0, 0, 53, 53, 0, 89, 0, 0, 53,
+ 0, 53, 53, 53, 0, 53, 53, 0, 53, 0,
+ 53, 0, 0, 53, 0, 53, 53, 53, 53, 0,
+ 0, 0, 53, 53, 53, 0, 0, 53, 53, 53,
+ 0, 0, 0, 0, 0, 0, 53, 53, 0, 53,
+ 53, 0, 53, 53, 53, 0, 53, 0, 53, 54,
+ 0, 0, 0, 54, 0, 54, 0, 0, 54, 0,
+ 54, 54, 0, 54, 0, 54, 0, 54, 53, 54,
+ 54, 54, 54, 0, 0, 54, 54, 0, 90, 0,
+ 0, 54, 0, 54, 54, 54, 0, 53, 54, 0,
+ 54, 0, 54, 0, 0, 54, 0, 54, 54, 54,
+ 54, 0, 0, 0, 54, 54, 54, 0, 0, 54,
+ 54, 54, 0, 0, 0, 0, 0, 0, 54, 54,
+ 0, 54, 54, 0, 54, 54, 54, 0, 53, 0,
+ 54, 53, 0, 0, 0, 53, 0, 53, 0, 0,
+ 53, 0, 53, 53, 0, 53, 0, 53, 0, 53,
+ 54, 53, 53, 53, 53, 0, 0, 53, 53, 0,
+ 0, 0, 0, 53, 0, 53, 53, 53, 0, 54,
+ 53, 0, 53, 0, 53, 0, 0, 53, 0, 53,
+ 53, 53, 53, 0, 0, 0, 53, 53, 53, 0,
+ 0, 53, 53, 53, 0, 0, 0, 0, 0, 0,
+ 53, 53, 0, 53, 53, 0, 53, 53, 53, 0,
+ 54, 0, 53, 53, 0, 0, 0, 53, 0, 53,
+ 0, 0, 53, 0, 53, 53, 0, 53, 0, 53,
+ 0, 53, 53, 53, 53, 53, 53, 0, 0, 53,
+ 53, 0, 241, 0, 0, 53, 0, 53, 53, 53,
+ 0, 0, 53, 0, 53, 368, 53, 0, 0, 53,
+ 0, 53, 53, 53, 53, 0, 0, 0, 53, 53,
+ 53, 0, 0, 53, 53, 53, 0, 0, 368, 0,
+ 0, 0, 53, 53, 0, 53, 53, 0, 53, 53,
+ 53, 368, 53, 482, 53, 0, 368, 0, 0, 368,
+ 0, 368, 0, 368, 368, 368, 368, 0, 0, 0,
+ 0, 368, 0, 0, 53, 368, 483, 0, 0, 368,
+ 0, 0, 0, 0, 242, 0, 0, 368, 0, 484,
+ 368, 0, 368, 0, 486, 0, 0, 0, 0, 487,
+ 0, 488, 489, 490, 491, 0, 0, 0, 0, 492,
+ 0, 368, 0, 493, 0, 0, 368, 1494, 0, 0,
+ 0, 0, 0, 0, 0, 494, 368, 368, 495, 291,
+ 496, 368, 0, 0, 53, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 368, 0, 27, 62, 63, 0,
+ 28, 0, 0, 0, 497, 0, 65, 0, 0, 30,
+ 0, 0, 0, 0, 1495, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 368, 647, 0, 0,
+ 0, 0, 0, 0, 648, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 649, 0, 1496, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 36, 0, 37, 75, 0, 0, 38, 0, 0, 77,
- 0, 79, 0, 81, 39, 40, 260, 0, 41, 0,
- 0, 85, 0, 0, 0, 87, 0, 0, 88, 89,
+ 90, 91, 92, 93, 94, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 1039, 0, 650,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 109, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 647, 0, 0,
+ 0, 0, 0, 0, 648, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 649, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 90, 91, 92, 93, 308, 0, 0,
- 0, 0, 0, 0, 0, 0, 96, 0, 0, 0,
- 0, 0, 98, 99, 100, 101, 0, 0, 0, 102,
- 0, 103, 0, 0, 0, 0, 0, 104, 105, 0,
+ 90, 91, 92, 93, 94, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 650,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
- 0, 26, 259, 0, 0, 0, 27, 62, 63, 0,
- 28, 0, 106, 309, 108, 109, 65, 0, 0, 30,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 109, 110, 111, 65, 0, 0, 30,
0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
- 81, 39, 40, 260, 0, 41, 0, 0, 0, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 85, 0,
0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 91, 92, 93, 308, 0, 0, 0, 0, 546,
- 0, 0, 0, 96, 0, 0, 0, 0, 0, 98,
- 99, 100, 101, 0, 0, 0, 102, 0, 103, 0,
- 0, 0, 0, 0, 104, 105, 0, 0, 0, 0,
- 0, 0, 57, 24, 0, 25, 0, 0, 26, 259,
- 0, 0, 0, 27, 62, 63, 0, 28, 0, 106,
- 309, 108, 109, 65, 0, 0, 30, 0, 0, 0,
- 0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
- 72, 73, 34, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 36, 0, 37, 75, 0, 0,
- 38, 0, 0, 77, 0, 79, 0, 81, 39, 40,
- 260, 0, 41, 0, 0, 0, 0, 0, 0, 87,
- 0, 0, 88, 89, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 91, 92,
- 93, 308, 0, 0, 0, 0, 540, 0, 0, 0,
- 96, 0, 0, 0, 0, 0, 98, 99, 100, 101,
- 0, 0, 0, 102, 0, 103, 0, 0, 0, 0,
- 0, 104, 105, 0, 0, 0, 0, 0, 0, 57,
- 24, 0, 25, 0, 0, 26, 259, 0, 0, 0,
- 27, 62, 63, 0, 28, 0, 106, 309, 108, 109,
- 65, 0, 0, 30, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 33, 0, 72, 73, 34,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 310, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 85, 0,
+ 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 36, 0, 37, 75, 0, 0, 38, 0, 0,
- 77, 0, 79, 0, 81, 39, 40, 260, 0, 41,
- 0, 0, 0, 0, 0, 0, 87, 0, 0, 88,
- 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 90, 91, 92, 93, 308, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 98, 99, 100, 101, 0, 0, 0,
- 102, 0, 103, 0, 0, 0, 0, 0, 104, 105,
- 0, 0, 0, 0, 0, 0, 57, 24, 0, 25,
- 0, 0, 26, 259, 0, 0, 0, 27, 62, 63,
- 0, 28, 0, 106, 309, 108, 109, 65, 0, 0,
- 30, 0, 0, 0, 0, 0, 0, 32, 0, 0,
- 0, 0, 33, 0, 72, 73, 34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
- 37, 75, 0, 0, 38, 0, 0, 77, 0, 79,
- 0, 81, 39, 40, 260, 0, 41, 0, 0, 0,
- 0, 0, 0, 87, 0, 0, 88, 89, 0, 0,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 904, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 310, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 90, 91, 92, 93, 94, 0, 0, 0, 0,
- 0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
- 98, 99, 100, 101, 0, 0, 0, 102, 0, 103,
- 0, 0, 0, 0, 0, 104, 105, 0, 0, 0,
- 0, 0, 0, 687, 687, 0, 687, 0, 0, 687,
- 687, 0, 0, 0, 687, 687, 687, 0, 687, 0,
- 106, 107, 108, 109, 687, 0, 0, 687, 0, 0,
- 0, 0, 0, 0, 687, 0, 0, 0, 0, 687,
- 0, 687, 687, 687, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 687, 0, 687, 687, 0,
- 0, 687, 0, 0, 687, 0, 687, 0, 687, 687,
- 687, 687, 0, 687, 0, 0, 0, 0, 0, 0,
- 687, 0, 0, 687, 687, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 687, 687,
- 687, 687, 687, 0, 0, 0, 0, 0, 0, 0,
- 0, 687, 0, 0, 0, 0, 0, 687, 687, 687,
- 687, 0, 0, 0, 687, 0, 687, 0, 0, 0,
- 0, 0, 687, 687, 0, 0, 0, 0, 0, 0,
- 146, 146, 0, 146, 0, 0, 146, 146, 0, 0,
- 0, 146, 146, 146, 0, 146, 0, 687, 687, 687,
- 687, 146, 0, 0, 146, 0, 0, 0, 0, 0,
- 0, 146, 0, 0, 0, 0, 146, 0, 146, 146,
- 146, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 146, 0, 146, 146, 0, 0, 146, 0,
- 0, 146, 0, 146, 0, 146, 146, 146, 146, 0,
- 146, 0, 0, 0, 0, 0, 0, 146, 0, 0,
- 146, 146, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 146, 146, 146, 146, 146,
- 0, 0, 0, 0, 0, 0, 0, 0, 146, 0,
- 0, 0, 0, 0, 146, 146, 146, 146, 0, 0,
- 0, 146, 0, 146, 0, 0, 0, 0, 0, 146,
- 146, 0, 0, 0, 0, 0, 0, 57, 24, 0,
- 25, 0, 0, 26, 259, 0, 0, 0, 27, 62,
- 63, 0, 28, 0, 146, 146, 146, 146, 65, 0,
- 0, 30, 0, 0, 0, 0, 0, 0, 32, 0,
- 0, 0, 0, 33, 0, 72, 73, 34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 37, 75, 0, 0, 38, 0, 0, 77, 0,
- 79, 0, 81, 39, 40, 260, 0, 41, 0, 0,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 551, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 310, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 545, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 310, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 90, 91, 92, 261, 680, 0, 0, 0,
- 0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
- 0, 98, 99, 100, 101, 0, 0, 0, 102, 0,
- 103, 0, 57, 24, 0, 25, 104, 105, 26, 259,
- 0, 0, 0, 27, 62, 63, 0, 28, 0, 0,
- 0, 0, 0, 65, 0, 0, 30, 0, 0, 0,
- 0, 106, 263, 32, 109, 0, 0, 0, 33, 0,
- 72, 73, 34, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 36, 0, 37, 75, 0, 0,
- 38, 0, 0, 77, 0, 79, 0, 81, 39, 40,
- 260, 0, 41, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 92, 93, 309, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 108, 310, 110, 111, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 87, 0, 0, 88, 89, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 91, 92,
- 261, 351, 0, 0, 0, 0, 0, 0, 0, 0,
- 96, 0, 0, 0, 0, 0, 98, 99, 100, 101,
- 0, 0, 0, 102, 0, 103, 0, 0, 0, 0,
- 0, 104, 105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 733, 0, 733, 0, 733, 106, 263, 733, 109,
- 733, 733, 0, 733, 0, 733, 0, 733, 0, 733,
- 733, 733, 0, 0, 0, 733, 733, 0, 0, 0,
- 0, 733, 0, 733, 733, 0, 0, 0, 733, 0,
- 0, 0, 733, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 733, 733, 0, 733, 0, 0, 0,
- 733, 733, 0, 0, 0, 0, 0, 0, 733, 733,
- 57, 24, 733, 25, 0, 733, 26, 259, 0, 0,
- 733, 27, 62, 63, 0, 28, 0, 0, 0, 0,
+ 90, 91, 92, 93, 94, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 0, 0, 0, 0, 106, 107, 0,
+ 0, 0, 0, 0, 0, 722, 722, 0, 722, 0,
+ 0, 722, 722, 0, 0, 0, 722, 722, 722, 0,
+ 722, 0, 108, 109, 110, 111, 722, 0, 0, 722,
+ 0, 0, 0, 0, 0, 0, 722, 0, 0, 0,
+ 0, 722, 0, 722, 722, 722, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 722, 0, 722,
+ 722, 0, 0, 722, 0, 0, 722, 0, 722, 0,
+ 722, 722, 722, 722, 0, 722, 0, 0, 0, 0,
+ 0, 0, 722, 0, 0, 722, 722, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 722, 722, 722, 722, 722, 0, 0, 722, 722, 0,
+ 0, 0, 0, 0, 0, 0, 722, 0, 0, 0,
+ 0, 0, 722, 722, 722, 722, 0, 0, 0, 722,
+ 0, 722, 0, 0, 0, 0, 0, 722, 722, 0,
+ 0, 0, 0, 0, 0, 149, 149, 0, 149, 0,
+ 0, 149, 149, 0, 0, 0, 149, 149, 149, 0,
+ 149, 0, 722, 722, 722, 722, 149, 0, 0, 149,
+ 0, 0, 0, 0, 0, 0, 149, 0, 0, 0,
+ 0, 149, 0, 149, 149, 149, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 149, 0, 149,
+ 149, 0, 0, 149, 0, 0, 149, 0, 149, 0,
+ 149, 149, 149, 149, 0, 149, 0, 0, 0, 0,
+ 0, 0, 149, 0, 0, 149, 149, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 149, 149, 149, 149, 149, 0, 0, 149, 149, 0,
+ 0, 0, 0, 0, 0, 0, 149, 0, 0, 0,
+ 0, 0, 149, 149, 149, 149, 0, 0, 0, 149,
+ 0, 149, 0, 0, 0, 0, 0, 149, 149, 0,
+ 0, 0, 0, 0, 0, 57, 24, 0, 25, 0,
+ 0, 26, 260, 0, 0, 0, 27, 62, 63, 0,
+ 28, 0, 149, 149, 149, 149, 65, 0, 0, 30,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 72, 73, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 36, 0, 37,
+ 75, 0, 0, 38, 0, 0, 77, 0, 79, 0,
+ 81, 39, 40, 261, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 92, 262, 697, 0, 0, 95, 96, 0,
+ 0, 0, 0, 0, 0, 0, 98, 0, 0, 0,
+ 0, 0, 100, 101, 102, 103, 0, 0, 0, 104,
+ 0, 105, 0, 57, 24, 0, 25, 106, 107, 26,
+ 260, 0, 0, 0, 27, 62, 63, 0, 28, 0,
+ 0, 0, 0, 0, 65, 0, 0, 30, 0, 0,
+ 0, 0, 108, 264, 32, 111, 0, 0, 0, 33,
+ 0, 72, 73, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 36, 0, 37, 75, 0,
+ 0, 38, 0, 0, 77, 0, 79, 0, 81, 39,
+ 40, 261, 0, 41, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 90, 91,
+ 92, 262, 355, 0, 0, 95, 96, 0, 0, 0,
+ 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
+ 100, 101, 102, 103, 0, 0, 0, 104, 0, 105,
+ 0, 57, 24, 0, 25, 106, 107, 26, 260, 0,
+ 0, 0, 27, 62, 63, 0, 28, 0, 0, 0,
+ 0, 0, 65, 0, 0, 30, 0, 0, 0, 0,
+ 108, 264, 32, 111, 0, 0, 0, 33, 0, 72,
+ 73, 34, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 36, 0, 37, 75, 0, 0, 38,
+ 0, 0, 77, 0, 79, 0, 81, 39, 40, 261,
+ 0, 41, 0, 0, 85, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 90, 91, 92, 262,
+ 263, 0, 0, 95, 96, 0, 0, 0, 0, 0,
+ 57, 24, 98, 25, 0, 0, 26, 260, 0, 679,
+ 680, 27, 62, 63, 0, 28, 0, 681, 0, 0,
0, 65, 0, 0, 30, 0, 0, 0, 0, 0,
- 0, 32, 0, 733, 733, 0, 33, 0, 72, 73,
- 34, 0, 0, 0, 0, 0, 733, 0, 0, 0,
+ 0, 32, 0, 53, 0, 0, 33, 0, 72, 73,
+ 34, 0, 0, 0, 0, 0, 0, 0, 108, 1055,
+ 0, 682, 36, 0, 37, 75, 53, 0, 38, 0,
+ 0, 77, 0, 79, 0, 81, 39, 40, 261, 53,
+ 41, 0, 0, 85, 53, 0, 0, 0, 0, 53,
+ 0, 53, 53, 53, 53, 0, 0, 0, 0, 53,
+ 0, 0, 0, 53, 0, 90, 91, 92, 262, 263,
+ 0, 0, 95, 96, 0, 53, 0, 0, 53, 0,
+ 53, 98, 0, 768, 0, 768, 0, 768, 679, 680,
+ 768, 0, 768, 768, 0, 768, 681, 768, 0, 768,
+ 0, 768, 768, 768, 53, 0, 0, 768, 768, 0,
+ 53, 53, 0, 768, 223, 768, 768, 0, 0, 0,
+ 768, 0, 0, 0, 768, 0, 0, 108, 264, 0,
+ 682, 0, 0, 0, 0, 768, 768, 0, 768, 0,
+ 0, 0, 768, 768, 0, 0, 0, 0, 0, 0,
+ 768, 768, 0, 0, 768, 0, 0, 768, 0, 0,
+ 57, 24, 768, 25, 0, 0, 26, 260, 0, 0,
+ 0, 27, 62, 63, 0, 28, 0, 0, 0, 0,
+ 0, 65, 0, 0, 30, 0, 0, 0, 768, 768,
+ 0, 32, 0, 0, 0, 0, 33, 0, 72, 73,
+ 34, 768, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 36, 0, 37, 75, 0, 0, 38, 0,
- 0, 77, 0, 79, 0, 81, 39, 40, 260, 0,
+ 0, 77, 0, 79, 0, 81, 39, 40, 261, 0,
41, 0, 0, 85, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 733, 0, 0,
- 0, 0, 0, 0, 0, 90, 91, 92, 261, 262,
- 0, 0, 0, 0, 0, 732, 0, 732, 96, 0,
- 732, 0, 732, 732, 0, 732, 0, 732, 0, 732,
- 0, 732, 732, 732, 0, 0, 0, 732, 732, 0,
- 0, 0, 0, 732, 0, 732, 732, 0, 0, 0,
- 732, 0, 0, 0, 732, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 106, 263, 732, 0, 732, 0,
- 0, 0, 732, 732, 0, 0, 0, 0, 0, 0,
- 732, 732, 0, 24, 732, 25, 0, 732, 26, 0,
- 0, 1399, 732, 27, 0, 757, 0, 28, 0, 758,
- 1400, 1401, 0, 0, 0, 1402, 30, 0, 0, 0,
- 0, 1403, 0, 32, 0, 51, 0, 51, 33, 0,
- 51, 0, 34, 0, 0, 51, 0, 0, 732, 51,
- 0, 0, 0, 0, 36, 0, 37, 0, 51, 0,
- 38, 0, 0, 0, 0, 51, 0, 0, 39, 40,
- 51, 0, 41, 0, 51, 1404, 51, 0, 51, 0,
- 1405, 0, 0, 51, 0, 0, 51, 0, 51, 732,
- 0, 0, 51, 0, 0, 51, 0, 0, 0, 0,
- 51, 51, 0, 51, 51, 51, 0, 51, 51, 0,
- 0, 0, 0, 51, 0, 0, 1406, 51, 0, 0,
- 0, 0, 0, 0, 0, 0, 51, 0, 0, 0,
- 0, 0, 0, 51, 0, 24, 0, 25, 51, 0,
- 26, 0, 51, 169, 51, 27, 51, 0, 0, 28,
- 0, 51, 0, 0, 51, 0, 51, 1407, 30, 0,
- 51, 0, 0, 51, 0, 32, 0, 0, 51, 51,
- 33, 0, 51, 0, 34, 51, 605, 0, 0, 0,
- 0, 0, 0, 606, 0, 0, 36, 0, 37, 51,
- 0, 0, 38, 0, 0, 607, 0, 0, 0, 0,
- 39, 40, 0, 0, 41, 0, 0, 608, 52, 169,
- 52, 0, 0, 52, 0, 0, 0, 0, 52, 0,
- 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,
- 0, 52, 0, 609, 0, 0, 0, 0, 52, 0,
- 51, 0, 51, 52, 0, 51, 0, 52, 0, 52,
- 51, 52, 0, 0, 51, 0, 52, 51, 0, 52,
- 0, 52, 0, 51, 0, 52, 0, 0, 52, 0,
- 51, 0, 0, 52, 52, 51, 0, 52, 0, 51,
- 52, 51, 0, 51, 0, 24, 0, 25, 51, 610,
- 26, 51, 0, 51, 0, 27, 0, 51, 0, 28,
- 51, 0, 0, 29, 0, 51, 51, 0, 30, 51,
- 0, 0, 51, 31, 0, 32, 0, 24, 0, 25,
- 33, 0, 26, 0, 34, 35, 0, 27, 0, 0,
- 0, 28, 0, 0, 0, 0, 36, 0, 37, 0,
- 30, 0, 38, 0, 0, 0, 0, 32, 0, 0,
- 39, 40, 33, 0, 41, 0, 34, 42, 0, 0,
- 0, 37, 52, 0, 0, 0, 0, 0, 36, 0,
- 37, 0, 37, 0, 38, 0, 0, 37, 0, 0,
- 0, 37, 39, 40, 37, 0, 41, 0, 0, 85,
- 0, 0, 0, 0, 51, 0, 37, 37, 0, 0,
- 0, 37, 37, 0, 0, 0, 0, 37, 0, 37,
- 37, 37, 37, 0, 0, 297, 0, 37, 0, 0,
- 0, 37, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 35, 37, 0, 37, 37, 0, 37, 43,
- 0, 0, 37, 35, 0, 0, 0, 0, 35, 0,
- 0, 0, 35, 0, 0, 35, 0, 0, 0, 0,
- 0, 0, 37, 0, 0, 0, 0, 35, 35, 37,
- 37, 330, 35, 35, 31, 0, 0, 0, 35, 0,
- 35, 35, 35, 35, 0, 0, 0, 0, 35, 0,
- 0, 0, 35, 0, 35, 0, 0, 31, 0, 0,
- 0, 0, 0, 0, 35, 0, 0, 35, 0, 35,
- 31, 0, 31, 35, 31, 31, 0, 0, 0, 0,
- 31, 0, 31, 31, 31, 31, 0, 0, 31, 0,
- 31, 0, 0, 35, 31, 31, 0, 0, 0, 0,
- 35, 35, 0, 0, 0, 0, 31, 0, 31, 31,
- 0, 31, 0, 31, 0, 0, 0, 0, 31, 0,
- 31, 31, 31, 31, 0, 0, 0, 0, 31, 0,
- 0, 0, 31, 0, 0, 31, 0, 0, 0, 0,
- 0, 0, 31, 31, 31, 0, 0, 31, 51, 31,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
- 0, 0, 0, 0, 51, 0, 0, 0, 51, 0,
- 0, 51, 0, 31, 0, 0, 0, 0, 0, 0,
- 31, 31, 0, 51, 51, 0, 0, 0, 51, 51,
- 0, 51, 0, 0, 51, 0, 51, 51, 51, 51,
- 0, 0, 51, 0, 51, 0, 0, 51, 51, 0,
- 51, 51, 0, 0, 51, 0, 0, 0, 0, 0,
- 51, 0, 0, 51, 0, 51, 51, 51, 0, 51,
- 0, 51, 51, 0, 51, 0, 0, 51, 0, 51,
- 51, 51, 51, 0, 0, 0, 0, 51, 0, 51,
- 0, 51, 0, 51, 0, 0, 39, 51, 0, 0,
- 0, 0, 0, 51, 0, 0, 51, 0, 51, 0,
- 51, 0, 51, 0, 51, 51, 0, 0, 0, 0,
- 51, 0, 51, 51, 51, 51, 0, 0, 0, 0,
- 51, 0, 51, 0, 51, 0, 0, 51, 0, 40,
- 0, 0, 0, 0, 0, 0, 51, 0, 0, 51,
- 51, 51, 0, 0, 51, 51, 0, 0, 0, 0,
- 51, 0, 51, 51, 51, 51, 0, 0, 0, 0,
- 51, 0, 0, 0, 51, 51, 0, 51, 51, 51,
- 0, 0, 220, 0, 0, 0, 51, 0, 0, 51,
- 51, 51, 0, 0, 51, 51, 51, 0, 0, 0,
- 51, 0, 51, 51, 51, 51, 0, 0, 51, 0,
- 51, 0, 0, 0, 51, 51, 0, 51, 51, 51,
- 0, 0, 222, 0, 51, 0, 51, 0, 0, 51,
- 51, 51, 0, 0, 0, 51, 0, 0, 0, 0,
- 51, 0, 51, 51, 51, 51, 0, 51, 0, 0,
- 51, 0, 0, 0, 51, 51, 0, 0, 0, 0,
- 51, 0, 322, 0, 477, 51, 51, 0, 0, 51,
- 51, 51, 51, 51, 51, 51, 0, 0, 0, 0,
- 51, 0, 0, 0, 51, 0, 0, 478, 0, 0,
- 0, 0, 0, 0, 477, 51, 51, 0, 0, 51,
- 479, 51, 323, 0, 480, 481, 0, 0, 0, 0,
- 482, 0, 483, 484, 485, 486, 0, 478, 0, 0,
- 487, 0, 0, 0, 488, 51, 0, 0, 51, 51,
- 479, 0, 0, 0, 0, 481, 489, 0, 0, 490,
- 482, 491, 483, 484, 485, 486, 0, 0, 0, 0,
- 487, 0, 0, 0, 488, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 492, 489, 0, 0, 490,
- 0, 491, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 492,
+ 0, 0, 768, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 90, 91, 92, 262, 263,
+ 0, 0, 95, 96, 0, 0, 0, 0, 767, 0,
+ 767, 98, 0, 767, 0, 767, 767, 0, 767, 0,
+ 767, 0, 767, 0, 767, 767, 767, 0, 0, 0,
+ 767, 767, 0, 0, 0, 0, 767, 0, 767, 767,
+ 0, 0, 0, 767, 0, 0, 0, 767, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 108, 264, 767,
+ 0, 767, 0, 0, 0, 767, 767, 0, 0, 0,
+ 0, 0, 0, 767, 767, 0, 767, 767, 767, 0,
+ 767, 767, 0, 767, 767, 767, 767, 0, 767, 0,
+ 767, 0, 767, 767, 767, 0, 0, 0, 767, 767,
+ 0, 0, 0, 0, 767, 0, 767, 767, 0, 0,
+ 0, 767, 0, 0, 0, 767, 0, 0, 0, 0,
+ 0, 0, 0, 0, 767, 0, 0, 767, 0, 767,
+ 0, 0, 0, 767, 767, 0, 0, 0, 0, 0,
+ 0, 767, 767, 0, 24, 767, 25, 0, 767, 26,
+ 0, 0, 1459, 767, 27, 0, 771, 0, 28, 0,
+ 772, 1460, 1461, 0, 0, 767, 1462, 30, 0, 0,
+ 0, 0, 1463, 0, 32, 0, 0, 0, 0, 33,
+ 0, 0, 0, 34, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 36, 0, 37, 0, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 39,
+ 40, 0, 24, 41, 25, 0, 1464, 26, 0, 0,
+ 1459, 1465, 27, 0, 771, 0, 28, 0, 772, 1460,
+ 1461, 0, 0, 767, 1462, 30, 0, 0, 0, 0,
+ 1463, 0, 32, 0, 0, 0, 0, 33, 0, 0,
+ 0, 34, 53, 0, 53, 0, 0, 53, 0, 0,
+ 1466, 0, 53, 36, 0, 37, 53, 0, 0, 38,
+ 0, 0, 0, 0, 0, 53, 0, 39, 40, 0,
+ 0, 41, 53, 0, 1464, 0, 0, 53, 0, 1465,
+ 0, 53, 53, 53, 53, 53, 0, 53, 0, 0,
+ 53, 1467, 53, 53, 0, 53, 53, 0, 0, 53,
+ 0, 0, 53, 0, 0, 53, 0, 53, 53, 0,
+ 0, 53, 53, 0, 53, 0, 0, 53, 0, 0,
+ 0, 53, 0, 53, 0, 53, 0, 0, 0, 0,
+ 53, 0, 0, 53, 0, 53, 0, 0, 0, 53,
+ 0, 0, 53, 0, 0, 0, 0, 53, 53, 0,
+ 0, 53, 0, 172, 53, 24, 0, 25, 0, 1467,
+ 26, 0, 0, 0, 0, 27, 0, 0, 0, 28,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 172, 0, 0, 34, 54, 616, 54, 0, 53,
+ 54, 0, 0, 617, 0, 54, 36, 0, 37, 54,
+ 0, 0, 38, 0, 0, 618, 0, 0, 54, 0,
+ 39, 40, 0, 0, 41, 54, 0, 619, 0, 0,
+ 54, 0, 0, 0, 54, 53, 54, 53, 54, 53,
+ 53, 0, 0, 54, 0, 53, 54, 0, 54, 53,
+ 0, 0, 54, 620, 0, 54, 0, 0, 53, 0,
+ 54, 54, 0, 0, 54, 53, 0, 54, 0, 0,
+ 53, 0, 0, 0, 53, 24, 53, 25, 53, 0,
+ 26, 0, 0, 53, 0, 27, 53, 0, 53, 28,
+ 0, 0, 53, 29, 0, 53, 0, 0, 30, 0,
+ 53, 53, 0, 31, 53, 32, 0, 53, 0, 0,
+ 33, 0, 621, 0, 34, 35, 0, 0, 0, 202,
+ 0, 202, 0, 0, 202, 0, 36, 0, 37, 202,
+ 0, 0, 38, 202, 0, 0, 0, 0, 0, 0,
+ 39, 40, 202, 24, 41, 25, 0, 42, 26, 202,
+ 1392, 0, 54, 27, 202, 0, 0, 28, 202, 0,
+ 0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
+ 202, 0, 202, 32, 0, 0, 202, 0, 33, 0,
+ 1393, 0, 34, 0, 202, 202, 0, 39, 202, 0,
+ 0, 202, 53, 0, 36, 0, 37, 0, 39, 0,
+ 38, 1394, 0, 39, 0, 0, 0, 39, 39, 40,
+ 39, 0, 41, 0, 0, 85, 0, 0, 0, 0,
+ 0, 0, 39, 39, 0, 0, 0, 39, 39, 0,
+ 0, 0, 43, 39, 37, 39, 39, 39, 39, 0,
+ 0, 0, 0, 39, 0, 37, 0, 39, 0, 39,
+ 37, 0, 0, 0, 37, 0, 0, 37, 0, 39,
+ 0, 39, 39, 0, 39, 0, 0, 0, 39, 37,
+ 37, 0, 0, 0, 37, 37, 202, 0, 0, 0,
+ 37, 53, 37, 37, 37, 37, 0, 0, 39, 0,
+ 37, 0, 53, 0, 37, 0, 37, 53, 39, 39,
+ 387, 53, 0, 0, 53, 0, 37, 0, 0, 37,
+ 0, 37, 0, 0, 0, 37, 53, 53, 0, 0,
+ 0, 53, 53, 0, 0, 0, 0, 53, 53, 53,
+ 53, 53, 53, 0, 0, 37, 0, 53, 0, 53,
+ 0, 53, 0, 53, 53, 37, 37, 0, 53, 0,
+ 0, 53, 0, 53, 0, 0, 53, 0, 53, 0,
+ 0, 0, 53, 53, 53, 0, 53, 0, 53, 53,
+ 0, 0, 0, 0, 53, 0, 53, 53, 53, 53,
+ 0, 0, 53, 0, 53, 0, 0, 0, 53, 53,
+ 53, 0, 41, 0, 0, 0, 0, 0, 0, 0,
+ 53, 0, 53, 53, 53, 53, 0, 53, 0, 53,
+ 0, 0, 53, 0, 53, 53, 53, 53, 0, 0,
+ 0, 0, 53, 0, 0, 0, 53, 53, 0, 53,
+ 0, 0, 0, 0, 0, 0, 0, 0, 53, 42,
+ 53, 53, 0, 53, 0, 53, 0, 0, 0, 0,
+ 53, 0, 53, 53, 53, 53, 0, 0, 0, 0,
+ 53, 0, 0, 0, 53, 0, 0, 53, 0, 0,
+ 0, 0, 0, 53, 53, 0, 53, 225, 0, 53,
+ 0, 53, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 53, 0, 0, 0, 0,
+ 0, 53, 53,
};
protected static readonly short [] yyCheck = { 17,
- 306, 18, 4, 305, 320, 17, 17, 52, 6, 17,
- 52, 385, 544, 295, 193, 192, 546, 239, 494, 354,
- 237, 69, 329, 304, 252, 20, 516, 341, 161, 304,
- 594, 601, 119, 1019, 302, 117, 60, 119, 60, 612,
- 88, 89, 379, 396, 1196, 93, 78, 975, 59, 824,
- 256, 395, 1236, 256, 256, 0, 74, 621, 268, 268,
- 78, 336, 256, 379, 17, 113, 268, 292, 256, 80,
- 256, 82, 256, 1470, 256, 256, 335, 1230, 96, 45,
- 385, 1340, 48, 0, 88, 89, 256, 294, 282, 62,
- 464, 1275, 1024, 66, 67, 68, 369, 70, 71, 306,
- 1359, 17, 75, 76, 256, 109, 1290, 17, 81, 82,
- 256, 84, 256, 86, 256, 369, 1076, 1305, 91, 92,
- 314, 269, 357, 21, 325, 499, 369, 17, 176, 792,
- 256, 794, 256, 374, 377, 256, 377, 256, 286, 375,
- 256, 1294, 1102, 161, 17, 118, 256, 372, 193, 161,
- 161, 193, 387, 161, 20, 53, 1314, 430, 731, 464,
- 369, 436, 256, 256, 17, 419, 372, 395, 256, 339,
- 373, 430, 375, 17, 344, 838, 346, 268, 841, 349,
- 350, 417, 352, 353, 368, 276, 368, 256, 372, 17,
- 372, 17, 237, 256, 1382, 237, 421, 17, 256, 203,
- 204, 382, 1599, 251, 252, 375, 392, 60, 161, 17,
- 17, 64, 419, 423, 423, 421, 590, 265, 419, 17,
- 1152, 423, 88, 89, 368, 419, 540, 430, 256, 415,
- 372, 419, 1160, 377, 252, 233, 422, 421, 460, 421,
- 258, 543, 459, 109, 331, 161, 328, 363, 585, 331,
- 343, 161, 626, 363, 302, 1413, 338, 631, 632, 594,
- 430, 227, 60, 1421, 268, 795, 64, 419, 292, 585,
- 292, 161, 363, 419, 368, 1534, 370, 295, 372, 421,
- 302, 851, 300, 301, 628, 333, 621, 260, 161, 358,
- 294, 264, 340, 419, 382, 419, 612, 315, 419, 392,
- 419, 325, 1561, 419, 352, 323, 0, 325, 161, 419,
- 314, 329, 257, 324, 1573, 256, 1575, 161, 376, 382,
- 1478, 256, 415, 256, 342, 343, 631, 421, 419, 422,
- 424, 304, 256, 161, 1191, 161, 429, 203, 204, 387,
- 257, 161, 354, 391, 348, 349, 354, 395, 396, 377,
- 1125, 383, 726, 161, 161, 272, 425, 426, 427, 428,
- 277, 256, 256, 161, 281, 383, 375, 256, 256, 256,
- 374, 256, 256, 277, 1231, 369, 1528, 395, 396, 296,
- 953, 399, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 414, 441, 442, 732, 256, 445, 256, 674,
- 628, 256, 268, 392, 256, 256, 323, 256, 417, 413,
- 1594, 256, 363, 431, 459, 731, 1402, 459, 1081, 256,
- 256, 726, 363, 256, 469, 342, 415, 469, 294, 256,
- 371, 256, 373, 368, 375, 370, 430, 441, 442, 292,
- 306, 757, 1626, 256, 377, 257, 256, 256, 314, 266,
- 256, 339, 376, 306, 320, 266, 344, 987, 346, 363,
- 256, 349, 350, 256, 352, 353, 461, 515, 419, 517,
- 262, 264, 325, 780, 256, 965, 370, 325, 419, 474,
- 305, 376, 348, 349, 373, 369, 371, 375, 363, 376,
- 375, 375, 516, 292, 292, 340, 544, 314, 509, 465,
- 466, 354, 876, 314, 341, 471, 298, 257, 374, 372,
- 370, 256, 256, 379, 372, 419, 420, 739, 358, 370,
- 375, 370, 570, 375, 542, 17, 544, 325, 546, 797,
- 867, 277, 325, 370, 887, 281, 1106, 765, 511, 375,
- 373, 351, 430, 1206, 419, 1075, 373, 413, 559, 294,
- 772, 867, 1215, 305, 429, 368, 354, 575, 421, 376,
- 578, 414, 256, 611, 373, 376, 369, 373, 60, 368,
- 369, 419, 64, 377, 343, 441, 442, 373, 589, 627,
- 628, 1244, 594, 369, 671, 558, 594, 379, 380, 671,
- 601, 373, 335, 369, 373, 461, 342, 710, 369, 343,
- 363, 369, 715, 716, 375, 1175, 1463, 375, 474, 621,
- 628, 1320, 1321, 621, 382, 952, 414, 374, 636, 637,
- 377, 363, 373, 392, 368, 673, 430, 430, 372, 369,
- 374, 375, 256, 377, 1343, 1492, 1493, 953, 382, 1496,
- 419, 1304, 373, 369, 430, 339, 415, 1211, 950, 343,
- 373, 377, 1509, 422, 430, 1512, 419, 1563, 1564, 430,
- 429, 1370, 430, 516, 712, 893, 714, 981, 372, 161,
- 1527, 263, 416, 256, 368, 723, 809, 419, 372, 430,
- 374, 375, 376, 377, 1393, 373, 263, 429, 382, 374,
- 430, 370, 710, 256, 1551, 374, 294, 715, 716, 430,
- 718, 369, 339, 272, 430, 986, 272, 430, 277, 984,
- 369, 341, 281, 1019, 1620, 339, 375, 765, 516, 585,
- 344, 419, 346, 315, 339, 349, 350, 296, 352, 353,
- 296, 368, 256, 1321, 782, 372, 399, 400, 315, 424,
- 370, 594, 430, 1321, 1321, 424, 612, 765, 1193, 797,
- 272, 419, 305, 368, 323, 1245, 339, 323, 256, 357,
- 758, 344, 780, 346, 343, 363, 349, 350, 621, 352,
- 353, 1078, 370, 342, 296, 797, 374, 795, 272, 1321,
- 343, 305, 1370, 1321, 802, 1317, 804, 339, 1233, 387,
- 1092, 306, 1370, 1370, 1425, 1321, 594, 372, 313, 374,
- 292, 323, 296, 382, 1321, 368, 430, 256, 1439, 372,
- 325, 374, 375, 392, 377, 1043, 368, 1321, 866, 382,
- 831, 419, 833, 621, 376, 843, 830, 845, 1370, 323,
- 1461, 256, 1370, 325, 1169, 948, 415, 855, 849, 887,
- 851, 339, 846, 422, 1370, 893, 344, 430, 346, 339,
- 429, 349, 350, 1370, 352, 353, 829, 343, 1035, 863,
- 339, 369, 354, 364, 370, 731, 1370, 375, 368, 887,
- 339, 372, 985, 374, 382, 893, 1211, 377, 368, 392,
- 343, 369, 1164, 372, 902, 930, 904, 375, 930, 368,
- 339, 757, 393, 394, 1196, 344, 382, 346, 382, 368,
- 349, 350, 415, 352, 353, 368, 392, 371, 392, 422,
- 377, 375, 413, 1026, 339, 1028, 429, 1199, 1031, 344,
- 421, 346, 414, 424, 349, 350, 343, 352, 353, 415,
- 948, 415, 950, 256, 402, 357, 422, 343, 422, 792,
- 935, 794, 940, 429, 992, 256, 414, 368, 343, 967,
- 954, 368, 374, 343, 972, 339, 377, 975, 269, 343,
- 1242, 1189, 368, 1439, 830, 387, 377, 985, 392, 987,
- 1305, 377, 990, 368, 1022, 286, 415, 368, 368, 370,
- 846, 430, 377, 422, 368, 838, 1516, 377, 841, 343,
- 357, 415, 306, 377, 792, 1043, 794, 863, 422, 313,
- 294, 867, 1115, 1408, 1117, 430, 1119, 374, 1026, 368,
- 1028, 1059, 306, 1031, 368, 1420, 339, 1065, 383, 384,
- 387, 344, 256, 346, 516, 1043, 349, 350, 1383, 352,
- 353, 387, 397, 398, 306, 1390, 308, 372, 1260, 1256,
- 838, 313, 369, 841, 1048, 1040, 1328, 1382, 1578, 1228,
- 377, 370, 1050, 325, 1052, 385, 1054, 1075, 1408, 357,
- 1078, 374, 1436, 382, 377, 363, 375, 1383, 377, 935,
- 1420, 386, 370, 382, 1390, 373, 374, 375, 373, 1453,
- 375, 368, 369, 368, 369, 1615, 390, 953, 954, 387,
- 377, 372, 377, 374, 401, 1106, 1402, 1115, 1472, 1117,
- 1474, 1119, 594, 391, 1122, 339, 1219, 430, 1640, 1641,
- 344, 373, 346, 375, 370, 349, 350, 369, 352, 353,
- 369, 419, 419, 375, 373, 377, 375, 416, 377, 621,
- 369, 1133, 256, 373, 373, 375, 375, 377, 377, 369,
- 1253, 1189, 1160, 373, 371, 372, 1164, 377, 375, 395,
- 396, 371, 372, 1019, 374, 375, 376, 1169, 371, 1177,
- 1178, 1169, 375, 371, 1175, 373, 1019, 375, 371, 419,
- 373, 1189, 375, 1190, 1040, 371, 371, 277, 1196, 375,
- 375, 1199, 1048, 1228, 374, 1230, 1228, 371, 1230, 373,
- 373, 368, 377, 1306, 377, 372, 430, 374, 375, 1211,
- 377, 1219, 377, 1211, 371, 382, 256, 1225, 375, 369,
- 370, 1256, 371, 1326, 1256, 265, 375, 267, 371, 375,
- 270, 377, 375, 372, 1242, 275, 1528, 376, 1081, 279,
- 419, 420, 421, 422, 382, 1253, 1254, 6, 288, 416,
- 373, 368, 373, 371, 377, 295, 377, 375, 17, 1294,
- 300, 371, 1294, 373, 304, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 256, 316, 373, 318, 1317,
- 374, 377, 322, 368, 369, 1320, 1321, 256, 1320, 1321,
- 330, 331, 294, 1081, 334, 354, 355, 337, 1306, 377,
- 371, 60, 373, 1305, 377, 64, 20, 1305, 1343, 1317,
- 792, 1343, 794, 387, 388, 389, 294, 371, 1326, 373,
- 1328, 373, 373, 375, 375, 1319, 1169, 354, 355, 88,
- 89, 375, 343, 377, 256, 1370, 1374, 371, 1370, 373,
- 371, 373, 373, 265, 377, 267, 356, 375, 270, 377,
- 109, 419, 375, 275, 377, 419, 838, 279, 1393, 841,
- 1652, 1393, 375, 1206, 377, 802, 288, 804, 1211, 369,
- 370, 419, 1215, 295, 88, 89, 1232, 370, 300, 419,
- 1382, 1169, 304, 373, 1382, 1386, 415, 1381, 376, 415,
- 416, 365, 366, 373, 316, 109, 318, 368, 369, 382,
- 322, 1244, 161, 365, 366, 1399, 1400, 377, 330, 331,
- 415, 416, 334, 417, 418, 337, 423, 424, 1206, 369,
- 364, 375, 430, 1211, 373, 369, 373, 1215, 372, 294,
- 374, 375, 294, 1427, 375, 373, 1430, 373, 382, 1447,
- 375, 1297, 373, 1444, 203, 204, 256, 377, 372, 393,
- 394, 256, 429, 429, 294, 294, 1244, 382, 373, 375,
- 374, 1304, 1305, 1319, 376, 375, 374, 419, 373, 413,
- 430, 1506, 375, 382, 1506, 375, 375, 421, 375, 424,
- 424, 373, 375, 368, 375, 373, 430, 343, 1523, 203,
- 204, 1523, 375, 294, 294, 375, 419, 419, 0, 371,
- 419, 1536, 1537, 372, 1536, 1537, 376, 368, 1516, 268,
- 256, 256, 375, 1514, 256, 256, 1304, 1305, 382, 280,
- 1528, 256, 368, 373, 369, 1381, 343, 1383, 1563, 1564,
- 371, 1563, 1564, 292, 1390, 294, 372, 1545, 375, 1382,
- 0, 375, 377, 1399, 1400, 377, 1402, 306, 373, 382,
- 371, 373, 1408, 373, 268, 314, 424, 373, 382, 1402,
- 347, 320, 368, 382, 1420, 256, 325, 382, 256, 1425,
- 1578, 1427, 369, 377, 1430, 373, 256, 373, 256, 347,
- 294, 375, 371, 1439, 376, 1620, 372, 371, 1620, 348,
- 349, 292, 306, 371, 1382, 354, 373, 348, 369, 1081,
- 314, 339, 1640, 1641, 373, 1461, 320, 1615, 419, 375,
- 372, 419, 348, 373, 256, 374, 369, 382, 368, 368,
- 379, 377, 1623, 1624, 368, 356, 369, 375, 337, 1630,
- 1631, 305, 1640, 1641, 348, 349, 373, 377, 372, 369,
- 369, 373, 369, 419, 1652, 370, 372, 419, 368, 419,
- 372, 372, 419, 377, 413, 414, 372, 374, 368, 339,
- 374, 372, 343, 382, 344, 379, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 372, 377, 382,
- 370, 373, 441, 442, 373, 372, 256, 1169, 374, 369,
- 375, 371, 374, 373, 377, 375, 376, 377, 375, 413,
- 375, 419, 375, 373, 373, 371, 419, 419, 373, 377,
- 377, 391, 419, 377, 373, 373, 369, 371, 373, 382,
- 382, 369, 315, 263, 1206, 372, 372, 441, 442, 1211,
- 94, 382, 369, 1215, 98, 99, 100, 101, 102, 103,
- 104, 105, 373, 373, 377, 0, 0, 461, 368, 377,
- 430, 369, 377, 0, 373, 257, 369, 516, 373, 261,
- 474, 368, 1244, 373, 369, 371, 369, 419, 377, 373,
- 272, 371, 368, 374, 419, 277, 419, 369, 373, 281,
- 377, 369, 284, 373, 373, 369, 377, 368, 373, 369,
- 377, 373, 369, 315, 296, 297, 256, 263, 377, 301,
- 302, 261, 262, 377, 377, 307, 377, 309, 310, 311,
- 312, 377, 377, 377, 377, 317, 377, 51, 12, 321,
- 5, 323, 1304, 1305, 284, 1040, 585, 935, 1189, 0,
- 1189, 333, 1393, 335, 336, 594, 338, 297, 298, 1343,
- 342, 1398, 302, 1238, 1568, 305, 1531, 307, 1519, 309,
- 310, 311, 312, 612, 1444, 1584, 1548, 317, 1514, 957,
- 362, 321, 621, 952, 957, 325, 957, 369, 370, 771,
- 1425, 585, 1358, 333, 1631, 1370, 336, 1445, 338, 339,
- 1625, 1541, 1537, 343, 344, 1536, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 612, 1624,
- 1382, 1294, 362, 363, 1474, 930, 320, 1297, 368, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, 414, 379,
- 380, 981, 637, 383, 384, 385, 386, 387, 893, 1092,
- 390, 391, 72, 261, 765, 395, 396, 397, 398, 399,
- 400, 401, 402, 797, 308, 0, 344, 992, 425, 427,
- 426, 430, 1195, 428, 414, 429, 284, 417, 585, 419,
- 867, 421, 1272, 1381, 424, 1169, 161, 1154, 1077, 297,
- 430, 1178, 731, 1102, 302, 1061, 1167, 341, 1245, 307,
- 1169, 309, 310, 311, 312, 560, 1214, 351, 450, 317,
- 996, 450, 1376, 321, 1254, 932, 925, 325, 757, -1,
- -1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
- 338, -1, -1, 721, -1, -1, -1, 731, -1, -1,
+ 4, 17, 306, 18, 52, 307, 17, 549, 296, 240,
+ 238, 499, 551, 196, 361, 199, 60, 17, 60, 195,
+ 521, 253, 69, 330, 52, 305, 305, 605, 321, 345,
+ 165, 422, 612, 303, 121, 422, 403, 838, 78, 1254,
+ 422, 88, 89, 6, 1044, 0, 93, 648, 59, 386,
+ 806, 392, 808, 402, 632, 256, 74, 997, 256, 1294,
+ 78, 340, 623, 119, 45, 121, 256, 48, 115, 80,
+ 256, 82, 1530, 268, 256, 392, 256, 95, 17, 268,
+ 98, 256, 268, 256, 256, 256, 256, 256, 256, 294,
+ 256, 256, 325, 386, 256, 1374, 852, 256, 145, 855,
+ 1335, 306, 1400, 256, 256, 1049, 256, 380, 256, 263,
+ 256, 256, 376, 256, 282, 1350, 17, 17, 395, 339,
+ 395, 1419, 256, 256, 372, 256, 256, 256, 256, 1117,
+ 378, 371, 372, 371, 372, 374, 375, 385, 256, 378,
+ 380, 418, 380, 418, 256, 343, 314, 165, 196, 165,
+ 425, 371, 88, 89, 165, 1143, 17, 432, 422, 379,
+ 433, 315, 321, 17, 443, 165, 726, 17, 196, 339,
+ 402, 731, 732, 17, 344, 111, 346, 372, 379, 349,
+ 350, 0, 352, 353, 745, 351, 376, 504, 378, 422,
+ 238, 17, 17, 375, 1473, 17, 376, 395, 378, 371,
+ 17, 1659, 1481, 375, 379, 252, 253, 376, 378, 371,
+ 238, 339, 385, 375, 385, 363, 344, 422, 346, 266,
+ 418, 349, 350, 373, 352, 353, 165, 425, 380, 545,
+ 375, 426, 375, 363, 432, 253, 467, 426, 466, 385,
+ 426, 259, 583, 433, 548, 332, 380, 228, 256, 293,
+ 378, 293, 424, 433, 422, 592, 303, 422, 605, 1538,
+ 1204, 303, 424, 433, 165, 165, 583, 203, 204, 422,
+ 809, 234, 1212, 329, 422, 17, 332, 395, 296, 424,
+ 597, 424, 326, 301, 302, 632, 342, 334, 868, 422,
+ 639, 422, 422, 422, 256, 479, 1594, 344, 316, 592,
+ 418, 642, 257, 904, 165, 433, 324, 425, 326, 356,
+ 422, 165, 330, 256, 325, 165, 0, 266, 60, 256,
+ 637, 165, 64, 1621, 363, 642, 643, 325, 346, 347,
+ 623, 256, 358, 269, 268, 1633, 256, 1635, 256, 165,
+ 165, 1249, 276, 165, 256, 361, 277, 394, 165, 256,
+ 390, 398, 256, 256, 256, 402, 403, 256, 266, 295,
+ 1251, 361, 256, 256, 372, 314, 1122, 256, 1623, 1624,
+ 378, 307, 390, 1588, 256, 263, 1177, 262, 422, 315,
+ 422, 1289, 256, 422, 402, 403, 256, 357, 256, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ 1291, 448, 449, 335, 256, 452, 314, 639, 418, 746,
+ 970, 373, 257, 298, 975, 425, 352, 353, 466, 1654,
+ 390, 439, 1365, 165, 422, 1680, 474, 315, 257, 363,
+ 379, 341, 363, 88, 89, 62, 379, 256, 466, 66,
+ 67, 68, 379, 70, 71, 381, 474, 1007, 75, 76,
+ 1288, 1686, 745, 378, 81, 82, 111, 84, 378, 86,
+ 378, 373, 1462, 373, 91, 92, 365, 371, 371, 376,
+ 1009, 379, 340, 520, 376, 522, 380, 521, 771, 376,
+ 256, 256, 376, 376, 373, 421, 987, 794, 422, 470,
+ 471, 422, 423, 120, 376, 476, 256, 382, 383, 1442,
+ 374, 433, 549, 514, 378, 1065, 376, 1067, 1264, 372,
+ 1070, 272, 448, 449, 376, 856, 1354, 1273, 405, 371,
+ 339, 373, 753, 256, 343, 372, 377, 335, 575, 547,
+ 417, 549, 378, 551, 925, 296, 433, 256, 925, 856,
+ 372, 811, 376, 925, 911, 264, 1302, 779, 203, 204,
+ 887, 293, 371, 564, 256, 786, 375, 741, 377, 378,
+ 379, 380, 323, 581, 363, 376, 385, 585, 1148, 256,
+ 433, 433, 305, 257, 420, 622, 427, 1116, 378, 896,
+ 598, 341, 600, 358, 326, 596, 433, 363, 272, 605,
+ 422, 638, 639, 277, 887, 422, 683, 281, 374, 433,
+ 376, 612, 378, 647, 648, 605, 325, 1167, 1364, 1169,
+ 21, 1171, 296, 373, 269, 1523, 632, 363, 343, 361,
+ 420, 639, 433, 422, 277, 1014, 272, 683, 281, 647,
+ 648, 277, 632, 432, 261, 281, 256, 974, 265, 323,
+ 295, 688, 53, 372, 1552, 1553, 422, 1227, 1556, 378,
+ 296, 256, 339, 428, 429, 430, 431, 344, 342, 346,
+ 315, 1569, 349, 350, 1572, 352, 353, 1056, 972, 371,
+ 395, 373, 372, 375, 372, 372, 422, 323, 305, 1587,
+ 422, 728, 975, 730, 305, 917, 432, 1003, 823, 342,
+ 372, 1269, 739, 418, 305, 372, 342, 352, 353, 339,
+ 425, 372, 343, 1611, 433, 375, 372, 432, 726, 380,
+ 375, 365, 378, 731, 732, 371, 734, 1277, 380, 385,
+ 256, 375, 424, 343, 380, 427, 381, 1006, 1008, 371,
+ 371, 371, 779, 433, 339, 433, 433, 256, 380, 344,
+ 422, 346, 1044, 343, 349, 350, 682, 352, 353, 796,
+ 373, 371, 1381, 1313, 377, 375, 433, 377, 378, 424,
+ 380, 779, 433, 256, 811, 385, 421, 433, 1159, 811,
+ 424, 1162, 1159, 957, 1165, 1162, 794, 1159, 1165, 521,
+ 1162, 1381, 1381, 1165, 1381, 385, 305, 272, 1381, 398,
+ 399, 809, 1381, 448, 449, 395, 343, 272, 816, 419,
+ 818, 1430, 1303, 339, 427, 373, 1366, 1381, 344, 772,
+ 346, 296, 1119, 349, 350, 256, 352, 353, 418, 256,
+ 380, 296, 1380, 1381, 371, 425, 1386, 379, 433, 1133,
+ 1430, 1430, 432, 1430, 845, 1377, 847, 1430, 323, 886,
+ 858, 1430, 357, 395, 862, 1403, 395, 256, 323, 377,
+ 343, 1083, 380, 294, 872, 866, 1430, 868, 256, 339,
+ 904, 908, 377, 605, 911, 1381, 418, 294, 339, 418,
+ 917, 269, 1430, 425, 1221, 390, 425, 924, 371, 306,
+ 432, 925, 375, 925, 377, 378, 904, 380, 286, 516,
+ 632, 371, 385, 911, 294, 1453, 1080, 433, 1074, 917,
+ 371, 919, 339, 343, 952, 647, 648, 344, 844, 346,
+ 372, 929, 349, 350, 1430, 352, 353, 339, 380, 306,
+ 1485, 339, 1269, 372, 952, 343, 313, 863, 1216, 378,
+ 339, 357, 385, 343, 1499, 344, 563, 346, 343, 375,
+ 349, 350, 395, 352, 353, 385, 343, 883, 339, 371,
+ 1254, 377, 970, 371, 972, 395, 1521, 357, 17, 88,
+ 89, 371, 380, 363, 390, 418, 371, 1014, 371, 1257,
+ 380, 989, 425, 373, 371, 380, 994, 377, 418, 997,
+ 371, 269, 111, 380, 375, 425, 390, 306, 256, 1007,
+ 390, 1009, 432, 343, 313, 373, 433, 1443, 286, 962,
+ 1047, 60, 357, 375, 1450, 64, 325, 385, 375, 1056,
+ 377, 1499, 1300, 372, 6, 1247, 371, 376, 1365, 378,
+ 375, 371, 422, 388, 433, 17, 374, 682, 386, 387,
+ 378, 306, 1468, 308, 1468, 390, 1083, 1576, 313, 375,
+ 976, 377, 400, 401, 1480, 256, 1480, 1065, 372, 1067,
+ 325, 372, 1070, 1100, 372, 372, 380, 378, 376, 1106,
+ 378, 378, 380, 380, 806, 1083, 808, 393, 60, 372,
+ 199, 339, 64, 376, 203, 204, 344, 380, 346, 374,
+ 389, 349, 350, 378, 352, 353, 372, 372, 1316, 1320,
+ 376, 404, 378, 378, 380, 1442, 88, 89, 1116, 1638,
+ 1388, 1119, 378, 1286, 380, 394, 165, 374, 1044, 385,
+ 852, 378, 374, 855, 1161, 1159, 378, 1159, 1162, 111,
+ 1162, 1165, 1140, 1165, 402, 403, 376, 1090, 339, 1092,
+ 380, 1094, 1150, 344, 373, 346, 1675, 1148, 349, 350,
+ 269, 352, 353, 374, 375, 422, 377, 378, 379, 1167,
+ 1443, 1169, 1088, 1171, 419, 357, 1174, 1450, 1700, 1701,
+ 1462, 363, 904, 375, 422, 433, 295, 379, 376, 256,
+ 378, 373, 380, 165, 376, 377, 378, 277, 307, 1496,
+ 374, 1185, 376, 925, 378, 377, 315, 374, 390, 844,
+ 380, 378, 321, 374, 1212, 371, 1513, 378, 1216, 375,
+ 1247, 377, 378, 374, 380, 1221, 376, 378, 863, 385,
+ 380, 203, 204, 1231, 1232, 1532, 1227, 1534, 372, 373,
+ 422, 1221, 433, 352, 353, 371, 376, 373, 883, 1247,
+ 380, 364, 377, 1248, 293, 380, 1254, 374, 1286, 1257,
+ 1288, 378, 375, 419, 377, 376, 374, 371, 376, 380,
+ 378, 377, 381, 1269, 380, 378, 379, 386, 1286, 1277,
+ 1288, 366, 367, 396, 397, 1283, 380, 326, 1316, 1269,
+ 427, 428, 429, 430, 376, 1159, 378, 269, 1162, 390,
+ 391, 392, 1300, 416, 1588, 376, 256, 378, 1316, 371,
+ 372, 424, 421, 377, 427, 1313, 1314, 374, 378, 376,
+ 380, 293, 361, 295, 380, 374, 1354, 376, 374, 374,
+ 376, 376, 354, 355, 364, 307, 376, 256, 378, 448,
+ 449, 976, 372, 315, 380, 375, 1354, 377, 378, 321,
+ 1377, 294, 1380, 1381, 326, 385, 376, 374, 378, 376,
+ 374, 422, 376, 378, 294, 380, 396, 397, 1366, 1365,
+ 479, 376, 1380, 1381, 1290, 1403, 378, 343, 380, 1377,
+ 352, 353, 378, 422, 380, 1365, 416, 422, 1386, 361,
+ 1388, 378, 380, 380, 424, 1403, 356, 427, 354, 355,
+ 1122, 379, 1430, 433, 816, 1012, 818, 1434, 373, 381,
+ 372, 373, 418, 419, 386, 368, 369, 366, 367, 366,
+ 367, 376, 1430, 371, 372, 1453, 368, 369, 1712, 423,
+ 424, 376, 425, 426, 431, 432, 418, 1159, 372, 380,
+ 1162, 1357, 378, 1165, 433, 1453, 1442, 385, 376, 421,
+ 422, 376, 422, 1088, 294, 1446, 256, 294, 378, 376,
+ 364, 376, 1442, 1379, 378, 265, 376, 267, 372, 256,
+ 270, 375, 380, 377, 378, 275, 448, 449, 432, 279,
+ 432, 375, 521, 592, 0, 256, 294, 294, 288, 385,
+ 422, 376, 396, 397, 378, 295, 377, 379, 378, 1221,
+ 300, 377, 385, 376, 304, 427, 422, 378, 378, 1507,
+ 378, 378, 416, 1504, 623, 433, 316, 376, 318, 371,
+ 424, 378, 322, 427, 378, 1441, 376, 343, 379, 433,
+ 330, 331, 421, 378, 334, 376, 294, 337, 1566, 294,
+ 378, 374, 1264, 1459, 1460, 422, 1462, 1269, 375, 521,
+ 422, 1273, 371, 379, 256, 1583, 256, 378, 1566, 256,
+ 256, 385, 280, 256, 376, 371, 605, 372, 1596, 1597,
+ 343, 1487, 376, 682, 1490, 1583, 385, 298, 1576, 376,
+ 1302, 374, 385, 1574, 378, 375, 378, 378, 1596, 1597,
+ 1588, 380, 380, 632, 376, 1623, 1624, 406, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 1605, 647, 648,
+ 385, 374, 376, 427, 376, 1623, 1624, 385, 347, 421,
+ 592, 371, 422, 88, 89, 385, 385, 256, 256, 376,
+ 376, 380, 741, 605, 372, 376, 745, 347, 378, 374,
+ 1638, 374, 1364, 1365, 375, 379, 111, 374, 376, 339,
+ 348, 623, 1680, 372, 378, 422, 376, 422, 375, 348,
+ 632, 376, 771, 256, 372, 371, 371, 380, 371, 385,
+ 356, 372, 1680, 1700, 1701, 647, 648, 1675, 337, 305,
+ 375, 380, 376, 422, 372, 0, 378, 372, 372, 376,
+ 373, 371, 1683, 1684, 375, 377, 422, 422, 375, 1690,
+ 1691, 380, 1700, 1701, 375, 375, 375, 385, 422, 371,
+ 682, 343, 375, 380, 1712, 373, 376, 385, 375, 94,
+ 1442, 376, 378, 377, 377, 100, 101, 102, 103, 104,
+ 105, 106, 107, 378, 199, 844, 378, 256, 203, 204,
+ 378, 257, 376, 380, 1379, 261, 422, 422, 422, 376,
+ 374, 315, 385, 372, 863, 380, 272, 380, 376, 380,
+ 376, 277, 376, 385, 374, 281, 372, 806, 284, 808,
+ 422, 376, 263, 745, 883, 375, 375, 385, 887, 376,
+ 296, 297, 372, 0, 376, 301, 302, 422, 0, 380,
+ 371, 307, 380, 309, 310, 311, 312, 372, 380, 771,
+ 376, 317, 0, 372, 269, 321, 1441, 323, 376, 371,
+ 376, 422, 371, 852, 374, 372, 855, 333, 376, 335,
+ 336, 372, 338, 376, 1459, 1460, 342, 374, 422, 372,
+ 295, 376, 376, 422, 806, 376, 808, 372, 380, 376,
+ 380, 380, 307, 372, 371, 376, 362, 372, 957, 377,
+ 315, 372, 1487, 376, 380, 1490, 321, 373, 380, 315,
+ 380, 263, 256, 380, 51, 904, 975, 976, 380, 380,
+ 380, 265, 844, 267, 380, 380, 270, 12, 5, 1080,
+ 852, 275, 957, 855, 1247, 279, 925, 352, 353, 1453,
+ 1247, 863, 1403, 1458, 288, 0, 1296, 1628, 1591, 1644,
+ 1579, 295, 1608, 1574, 1485, 1504, 300, 979, 1691, 979,
+ 304, 883, 1430, 979, 1418, 887, 381, 1505, 1685, 785,
+ 974, 386, 316, 1597, 318, 1601, 1596, 1684, 322, 1354,
+ 1534, 952, 904, 321, 309, 1044, 330, 331, 1357, 600,
+ 334, 917, 257, 337, 1003, 779, 261, 1133, 72, 811,
+ 348, 422, 422, 925, 1161, 1165, 421, 272, 433, 435,
+ 434, 438, 277, 436, 887, 437, 281, 1253, 1332, 284,
+ 345, 1080, 592, 1441, 165, 648, 1118, 1221, 1206, 1088,
+ 355, 296, 297, 448, 449, 1143, 301, 302, 1102, 1232,
+ 1219, 1303, 307, 565, 309, 310, 311, 312, 1221, 1272,
+ 1018, 737, 317, 975, 976, 457, 321, 457, 323, 1436,
+ 954, 1314, 947, -1, 479, -1, -1, -1, 333, -1,
+ -1, 336, -1, 338, -1, -1, -1, 342, 422, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 792, 362, 794, 0, -1, -1, -1,
- -1, 369, -1, 757, -1, -1, 410, 411, 412, -1,
- -1, 415, 416, 417, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 429, 430, -1, -1, -1,
- -1, 830, -1, -1, -1, -1, -1, -1, -1, 838,
- -1, -1, 841, -1, -1, -1, 257, 846, -1, -1,
- 261, 419, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 272, -1, -1, 863, -1, 277, -1, 867, -1,
- 281, -1, -1, 284, -1, -1, 830, 256, -1, -1,
- -1, -1, -1, -1, -1, 296, 297, -1, -1, -1,
- 301, 302, 846, -1, -1, -1, 307, -1, 309, 310,
- 311, 312, -1, -1, -1, -1, 317, -1, -1, 863,
- 321, -1, 323, 867, -1, -1, -1, 0, -1, -1,
- -1, -1, 333, -1, -1, 336, -1, 338, -1, -1,
- -1, 342, -1, -1, -1, -1, 540, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 362, -1, -1, 953, 954, -1, 368, 369, 370,
- 339, -1, 257, -1, -1, 344, 261, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 272, -1, -1,
- -1, 935, 277, -1, -1, -1, 281, -1, -1, 284,
- 369, -1, 371, -1, 373, -1, 375, 376, 377, 953,
- 954, 296, 297, -1, -1, -1, 301, 302, -1, -1,
- -1, -1, 307, 617, 309, 310, 311, 312, -1, -1,
- 1019, -1, 317, -1, -1, -1, 321, -1, 323, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 333, -1,
- 335, 336, -1, 338, -1, -1, -1, 342, -1, 1048,
- -1, 430, -1, 257, -1, -1, -1, 261, -1, -1,
- -1, 364, -1, 667, 668, 1019, 369, 362, 272, 372,
- -1, 374, 375, 277, -1, 370, 680, 281, -1, -1,
- 284, -1, 1081, -1, -1, -1, 1040, -1, -1, -1,
- 393, 394, 296, 297, 1048, -1, -1, 301, 302, -1,
- -1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
- 413, -1, -1, 317, -1, -1, -1, 321, 421, 323,
- -1, 424, -1, -1, -1, -1, -1, 430, 256, 333,
- -1, -1, 336, -1, 338, -1, -1, 265, 342, 267,
- -1, -1, 270, -1, -1, -1, -1, 275, -1, -1,
- -1, 279, -1, 0, -1, -1, -1, -1, 362, -1,
- 288, -1, -1, -1, -1, 369, 370, 295, -1, -1,
- 1169, -1, 300, 256, -1, -1, 304, -1, 261, 262,
- -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
- 318, -1, -1, -1, 322, -1, -1, 801, -1, -1,
- -1, 284, 330, 331, -1, -1, 334, 1206, -1, 337,
- -1, -1, 1211, -1, 297, 298, 1215, -1, -1, 302,
- -1, -1, 305, -1, 307, -1, 309, 310, 311, 312,
- -1, -1, -1, 1232, 317, -1, -1, -1, 321, -1,
- -1, -1, 325, -1, -1, 1244, -1, -1, -1, -1,
- 333, -1, -1, 336, -1, 338, 339, -1, -1, -1,
- 343, 344, -1, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, -1, -1, -1, -1, 1232, 362,
- 363, -1, -1, -1, -1, 368, 369, 370, 371, 372,
- 373, 419, 375, 376, 377, -1, 379, 380, 1297, -1,
- 383, 384, 385, 386, -1, 1304, 1305, 390, 391, -1,
- -1, -1, 395, 396, 397, 398, 399, 400, 401, 402,
- 1319, -1, 0, 265, -1, 267, -1, -1, 270, -1,
- 272, 414, -1, 275, 417, -1, 419, 279, 421, -1,
- -1, 424, -1, 1297, -1, -1, 288, 430, -1, -1,
- -1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
- 302, -1, 304, -1, -1, 1319, -1, -1, -1, -1,
- -1, -1, -1, -1, 316, -1, 318, 981, -1, -1,
- 322, 323, 1381, 1382, 1383, -1, -1, -1, 330, 331,
- -1, 1390, 334, -1, -1, 337, -1, -1, -1, -1,
- 1399, 1400, -1, 1402, -1, -1, -1, -1, -1, 256,
- -1, -1, -1, -1, 261, 262, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 1381, 1427, 1383,
- -1, 1430, -1, -1, -1, -1, 1390, 284, -1, -1,
- -1, -1, -1, -1, -1, 1399, 1400, -1, 1402, -1,
- 297, 298, -1, -1, -1, 302, -1, -1, 305, -1,
- 307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
- 317, -1, -1, 1427, 321, -1, 1430, 419, 325, -1,
- -1, -1, -1, -1, -1, -1, 333, -1, -1, 336,
- 0, 338, 339, -1, -1, -1, 343, 344, -1, 346,
- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- -1, -1, -1, -1, -1, 362, 363, 364, -1, -1,
- -1, 368, 369, -1, 371, 372, 373, 374, 375, 376,
- 377, -1, 379, 380, -1, 382, 383, 384, 385, 386,
- 387, 388, 389, 390, 391, -1, 393, 394, 395, 396,
- 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 412, 413, 414, -1, -1,
- 417, -1, 419, -1, 421, -1, -1, 424, 256, 257,
- -1, -1, -1, 430, -1, -1, 264, 265, 266, 267,
- 268, -1, 270, 271, -1, 273, 274, 275, 276, 277,
- 278, 279, 280, -1, -1, -1, -1, 285, -1, 287,
- 288, 289, 290, 291, 292, -1, -1, 295, -1, -1,
- 0, 299, 300, -1, 302, 303, 304, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 314, -1, 316, -1,
- 318, 319, -1, -1, 322, -1, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
- -1, -1, 340, 341, -1, -1, 344, 345, -1, -1,
+ -1, -1, -1, 418, 419, 420, -1, 362, 423, 424,
+ 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, -1, -1, -1, -1, -1, -1,
+ 256, -1, 1044, -1, -1, -1, -1, -1, -1, 265,
+ -1, 267, -1, 1122, 270, -1, -1, -1, -1, 275,
+ -1, -1, -1, 279, -1, -1, -1, -1, -1, -1,
+ -1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
+ -1, -1, -1, -1, 300, -1, 1088, -1, 304, -1,
+ 1159, -1, -1, 1162, -1, -1, 1165, 592, -1, -1,
+ 316, -1, 318, -1, -1, -1, 322, -1, -1, -1,
+ -1, -1, -1, -1, 330, 331, -1, -1, 334, -1,
+ 1122, 337, 257, -1, -1, -1, 261, -1, 623, -1,
+ -1, -1, -1, -1, -1, -1, -1, 272, -1, -1,
+ 545, -1, 277, -1, -1, -1, 281, -1, -1, 284,
+ -1, 1290, 1221, -1, 0, -1, -1, 1159, -1, -1,
+ 1162, 296, 297, 1165, -1, -1, 301, 302, -1, -1,
+ -1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
+ -1, -1, 317, -1, -1, -1, 321, 682, 323, -1,
+ -1, -1, -1, 261, -1, 1264, -1, -1, 333, -1,
+ 1269, 336, -1, 338, 1273, -1, 422, 342, -1, -1,
+ -1, -1, -1, -1, -1, -1, 284, -1, 1357, 1221,
+ -1, -1, 0, 628, -1, -1, -1, 362, -1, 297,
+ -1, -1, -1, 1302, 302, -1, 371, 372, 373, 307,
+ 1379, 309, 310, 311, 312, -1, 741, -1, -1, 317,
+ 745, -1, -1, 321, -1, -1, -1, 325, -1, -1,
+ -1, -1, 1264, -1, -1, 333, -1, 1269, 336, -1,
+ 338, 1273, -1, -1, 679, 680, 771, -1, -1, -1,
+ -1, -1, -1, -1, -1, 0, -1, -1, 1290, -1,
+ -1, -1, 697, -1, 362, 1364, 1365, -1, -1, -1,
+ 1302, -1, 1441, -1, 1443, -1, -1, -1, -1, -1,
+ -1, 1450, -1, -1, -1, -1, -1, -1, -1, -1,
+ 1459, 1460, -1, 1462, -1, -1, -1, -1, -1, 1468,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
- 368, 369, -1, -1, 372, -1, -1, -1, -1, 377,
- 378, 379, 380, 381, -1, -1, -1, 385, -1, 387,
- -1, -1, -1, -1, -1, 393, 394, -1, -1, -1,
+ -1, 1480, -1, -1, -1, -1, 1485, 256, 1487, 844,
+ -1, 1490, -1, -1, 422, 1357, 265, -1, 267, -1,
+ 1499, 270, 1364, 1365, -1, -1, 275, -1, 863, -1,
+ 279, -1, -1, 1442, -1, -1, -1, 1379, -1, 288,
+ -1, -1, 1521, -1, -1, -1, 295, -1, 883, -1,
+ -1, 300, 887, -1, -1, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 815, 257, -1, 322, -1, 261, -1, -1, -1, -1,
+ -1, 330, 331, -1, -1, 334, 272, -1, 337, -1,
+ -1, 277, -1, -1, -1, 281, -1, -1, 284, 1441,
+ 1442, 1443, -1, -1, -1, -1, -1, -1, 1450, -1,
+ 296, 297, -1, -1, -1, 301, 302, 1459, 1460, 0,
+ 1462, 307, 957, 309, 310, 311, 312, -1, -1, -1,
+ -1, 317, -1, -1, -1, 321, -1, 323, -1, 257,
+ 975, 976, -1, 261, -1, 1487, -1, 333, 1490, 335,
+ 336, -1, 338, -1, 272, -1, 342, -1, -1, 277,
+ -1, -1, -1, 281, -1, -1, 284, -1, -1, -1,
+ -1, -1, -1, 422, -1, -1, 362, -1, 296, 297,
+ -1, -1, -1, 301, 302, -1, 372, 373, -1, 307,
+ -1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
+ -1, 256, -1, 321, -1, 323, 261, 262, -1, 1044,
+ -1, -1, -1, -1, -1, 333, -1, -1, 336, -1,
+ 338, -1, -1, -1, 342, -1, -1, -1, -1, 284,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 297, 298, 362, 1080, -1, 302, -1, -1,
+ 305, -1, 307, 1088, 309, 310, 311, 312, 1003, -1,
+ -1, -1, 317, -1, -1, -1, 321, -1, -1, -1,
+ 325, -1, -1, -1, 0, -1, -1, -1, 333, -1,
+ -1, 336, -1, 338, 339, -1, -1, -1, 343, 344,
+ -1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, -1, -1, -1, -1, 1051, 362, 363, 364,
+ -1, 366, 367, -1, -1, -1, 371, 372, -1, 374,
+ 375, 376, 377, 378, 379, 380, -1, 382, 383, -1,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ -1, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, -1, -1, 420, -1, 422, -1, 424,
+ -1, -1, 427, -1, -1, 256, 257, -1, 433, -1,
+ -1, -1, -1, 264, 265, 266, 267, 268, -1, 270,
+ 271, -1, 273, 274, 275, 276, 277, 278, 279, 280,
+ 0, -1, -1, -1, 285, -1, 287, 288, 289, 290,
+ 291, 292, -1, -1, 295, -1, -1, -1, 299, 300,
+ -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 314, -1, 316, -1, 318, 319, -1,
+ -1, 322, -1, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, 335, 1290, 337, -1, -1, 340,
+ 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ 371, 372, -1, -1, 375, -1, -1, -1, -1, 380,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
+ -1, -1, 1357, -1, -1, -1, -1, -1, -1, -1,
+ 0, 257, -1, -1, -1, 261, -1, -1, -1, -1,
+ 421, 422, 423, 424, 1379, 426, 272, -1, -1, -1,
+ -1, 277, 433, -1, -1, 281, -1, -1, 284, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 418, 419, 420, 421, -1, 423, 256, 257, -1, -1,
- -1, 0, 430, -1, 264, 265, 266, 267, 268, -1,
+ 296, 297, -1, -1, -1, 301, 302, -1, -1, -1,
+ -1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
+ -1, 317, -1, -1, -1, 321, -1, 323, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1441, 333, 1443, -1,
+ 336, -1, 338, -1, -1, 1450, 342, -1, -1, -1,
+ -1, -1, -1, -1, 1459, 1460, -1, 1462, -1, -1,
+ -1, -1, -1, -1, -1, -1, 362, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 372, 373, -1, -1,
+ -1, -1, 1487, -1, -1, 1490, 256, 257, -1, -1,
+ -1, -1, -1, -1, 264, 265, 266, 267, 268, -1,
270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
- -1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
+ 0, -1, -1, -1, -1, 285, -1, 287, 288, 289,
290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
@@ -13451,110 +13894,132 @@ void case_1078()
330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
- 360, 361, 362, 363, -1, -1, 0, -1, 368, 369,
- -1, -1, 372, -1, -1, -1, -1, 377, 378, 379,
- 380, 381, -1, -1, -1, 385, 256, 387, -1, -1,
- -1, 261, 262, 393, 394, -1, -1, -1, -1, -1,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, 371, 372, -1, -1, 375, -1, -1, -1, -1,
+ 380, 381, 382, 383, 384, -1, 256, -1, 388, -1,
+ 390, 261, 262, -1, -1, -1, 396, 397, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 284, -1, -1, -1, 418, 419,
- 420, 421, -1, 423, -1, -1, -1, 297, 298, -1,
- 430, -1, 302, -1, -1, 305, -1, 307, -1, 309,
+ -1, -1, -1, -1, 284, -1, -1, -1, -1, -1,
+ -1, 421, 422, 423, 424, -1, 426, 297, 298, -1,
+ 0, -1, 302, 433, -1, 305, -1, 307, -1, 309,
310, 311, 312, -1, -1, -1, -1, 317, -1, -1,
-1, 321, -1, -1, -1, 325, -1, -1, -1, -1,
-1, -1, -1, 333, -1, -1, 336, -1, 338, 339,
- -1, 0, -1, 343, 344, -1, 346, 347, 348, 349,
+ -1, -1, -1, 343, 344, -1, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, 357, -1, -1,
+ -1, -1, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, -1, 382, 383, -1, -1, 386, 387, 388, 389,
+ 390, -1, -1, 393, 394, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, 404, 405, 256, -1, -1, -1,
+ -1, 261, 262, -1, -1, -1, -1, 417, -1, -1,
+ 420, -1, 422, -1, 424, 357, -1, 427, -1, -1,
+ -1, 363, 364, 433, 284, -1, -1, -1, -1, 371,
+ -1, 373, -1, 375, 376, 377, 378, 297, 298, -1,
+ 0, -1, 302, -1, -1, 305, -1, 307, 390, 309,
+ 310, 311, 312, -1, 396, 397, -1, 317, -1, -1,
+ -1, 321, -1, -1, -1, 325, -1, -1, -1, -1,
+ -1, -1, -1, 333, 416, -1, 336, -1, 338, 339,
+ 422, -1, 424, 343, 344, 427, 346, 347, 348, 349,
350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, -1, 362, 363, -1, -1, -1, -1, 368, 369,
- 370, 371, 372, 373, -1, 375, 376, 377, -1, 379,
- 380, -1, -1, 383, 384, 385, 386, 256, -1, -1,
- 390, 391, 261, 262, -1, 395, 396, 397, 398, 399,
- 400, 401, 402, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 414, 284, -1, 417, -1, 419,
- -1, 421, -1, -1, 424, -1, -1, -1, 297, 298,
- 430, -1, -1, 302, -1, -1, 305, -1, 307, -1,
- 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
- -1, -1, 321, -1, -1, -1, 325, -1, -1, -1,
- -1, -1, -1, -1, 333, -1, -1, 336, -1, 338,
- 339, -1, -1, -1, 343, 344, -1, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
- -1, -1, 256, 362, 363, -1, -1, -1, 262, 368,
- 369, -1, 371, 372, 373, -1, 375, 376, 377, -1,
- 379, 380, 0, -1, 383, 384, 385, 386, -1, -1,
- -1, 390, 391, -1, -1, -1, 395, 396, 397, 398,
- 399, 400, 401, 402, 298, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 414, -1, -1, 417, -1,
- 419, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 430, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 339, -1, -1, -1, 343,
+ -1, -1, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, -1, 378, 379,
+ 380, -1, 382, 383, -1, -1, 386, 387, 388, 389,
+ -1, -1, -1, 393, 394, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, 404, 405, 256, -1, 0, -1,
+ -1, 261, 262, -1, -1, -1, -1, 417, -1, -1,
+ 420, -1, 422, -1, 424, -1, -1, 427, -1, -1,
+ -1, -1, -1, 433, 284, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 297, 298, -1,
+ -1, -1, 302, -1, -1, 305, -1, 307, -1, 309,
+ 310, 311, 312, -1, -1, -1, -1, 317, -1, -1,
+ -1, 321, -1, -1, -1, 325, -1, -1, -1, -1,
+ -1, -1, -1, 333, -1, -1, 336, -1, 338, 339,
+ -1, -1, -1, 343, 344, -1, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
+ -1, -1, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, -1, 378, 379,
+ 380, -1, 382, 383, -1, -1, 386, 387, 388, 389,
+ -1, -1, -1, 393, 394, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, 404, 405, 256, -1, 0, -1,
+ -1, 261, 262, -1, -1, -1, -1, 417, -1, -1,
+ 420, -1, 422, -1, 424, -1, -1, 427, -1, -1,
+ -1, -1, -1, 433, 284, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 297, 298, -1,
+ -1, -1, 302, -1, -1, 305, -1, 307, -1, 309,
+ 310, 311, 312, -1, -1, -1, -1, 317, -1, -1,
+ -1, 321, -1, -1, -1, 325, -1, -1, -1, -1,
+ -1, -1, -1, 333, -1, -1, 336, -1, 338, 339,
+ -1, -1, -1, 343, 344, -1, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
+ -1, -1, 362, 363, 256, -1, 366, 367, -1, -1,
+ 262, 371, 372, -1, 374, 375, 376, -1, 378, 379,
+ 380, -1, 382, 383, -1, -1, 386, 387, 388, 389,
+ -1, -1, -1, 393, 394, -1, -1, -1, 398, 399,
+ 400, 401, 402, 403, 404, 405, 298, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 417, -1, -1,
+ 420, -1, 422, -1, -1, -1, -1, 0, -1, -1,
+ -1, -1, -1, 433, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 339, -1, -1,
+ -1, 343, 344, -1, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, 357, -1, -1, -1, -1,
+ -1, 363, 256, -1, 366, 367, -1, -1, -1, 371,
+ 372, 373, 374, 375, 376, 377, 378, 379, 380, -1,
+ 382, 383, -1, -1, 386, 387, 388, 389, 390, -1,
+ -1, 393, 394, -1, -1, -1, 398, 399, 400, 401,
+ 402, 403, 404, 405, 256, -1, -1, -1, -1, -1,
+ 262, -1, -1, -1, -1, 417, -1, -1, 420, 0,
+ 422, -1, 424, -1, -1, 427, -1, -1, -1, -1,
+ -1, 433, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 339, 298, -1, -1, -1,
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, 357, -1, -1, -1, 256, -1, 363,
- -1, -1, -1, 262, 368, 369, 370, 371, 372, 373,
- 374, 375, 376, 377, -1, 379, 380, -1, -1, 383,
- 384, 385, 386, 387, -1, -1, 390, 391, 0, -1,
- -1, 395, 396, 397, 398, 399, 400, 401, 402, 298,
+ 354, 355, 356, -1, -1, -1, 0, -1, -1, -1,
+ -1, -1, 366, 367, -1, -1, -1, -1, 372, -1,
+ 374, -1, 376, -1, 378, 379, 380, 339, -1, -1,
+ -1, 343, 344, -1, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, -1, -1, -1, -1, -1,
+ -1, 363, -1, 0, 366, 367, -1, -1, -1, 371,
+ 372, 373, 374, 375, 376, -1, 378, 379, 380, -1,
+ 382, 383, -1, -1, 386, 387, 388, 389, -1, 433,
+ -1, 393, 394, -1, -1, -1, 398, 399, 400, 401,
+ 402, 403, 404, 405, -1, -1, -1, -1, -1, -1,
+ 0, -1, -1, -1, -1, 417, -1, -1, 420, -1,
+ 422, -1, 424, 256, 257, 427, -1, -1, 261, -1,
+ -1, 433, 265, -1, 267, -1, -1, 270, -1, 272,
+ 273, -1, 275, -1, 277, -1, 279, -1, 281, 282,
+ 283, 284, -1, -1, 287, 288, -1, 0, -1, -1,
+ 293, -1, 295, 296, 297, -1, -1, 300, 301, 302,
+ -1, 304, -1, -1, 307, -1, 309, 310, 311, 312,
+ -1, -1, -1, 316, 317, 318, -1, -1, 321, 322,
+ 323, -1, -1, -1, -1, -1, -1, 330, 331, -1,
+ 333, 334, -1, 336, 337, 338, -1, -1, -1, 342,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 414, -1, -1, 417, -1, 419, -1, 421, -1, -1,
- 424, -1, -1, -1, -1, -1, 430, -1, -1, -1,
- -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
- 339, -1, -1, -1, 343, 344, -1, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
- -1, -1, -1, -1, 363, -1, -1, -1, -1, 368,
- 369, 370, 371, 372, 373, -1, 375, 376, 377, -1,
- 379, 380, -1, -1, 383, 384, 385, 386, -1, -1,
- -1, 390, 391, -1, -1, -1, 395, 396, 397, 398,
- 399, 400, 401, 402, -1, -1, -1, -1, -1, -1,
- -1, 0, -1, -1, -1, 414, -1, -1, 417, -1,
- 419, -1, 421, -1, -1, 424, -1, -1, 256, 257,
- -1, 430, -1, 261, -1, -1, -1, 265, -1, 267,
- -1, -1, 270, -1, 272, 273, -1, 275, -1, 277,
- -1, 279, -1, 281, 282, 283, 284, -1, 0, 287,
- 288, -1, -1, -1, -1, 293, -1, 295, 296, 297,
- -1, -1, 300, 301, 302, -1, 304, -1, -1, 307,
- -1, 309, 310, 311, 312, -1, -1, -1, 316, 317,
- 318, -1, -1, 321, 322, 323, -1, -1, -1, -1,
- -1, -1, 330, 331, -1, 333, 334, -1, 336, 337,
- 338, -1, -1, -1, 342, -1, -1, -1, -1, -1,
- -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 362, -1, -1, -1, -1, -1,
- 368, 369, 370, -1, -1, 257, -1, -1, -1, 261,
- 378, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 272, -1, -1, -1, 0, 277, -1, -1, -1, 281,
- -1, -1, 284, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 296, 297, -1, -1, 257, 301,
- 302, 419, 261, -1, -1, 307, -1, 309, 310, 311,
- 312, -1, -1, 272, -1, 317, -1, 0, 277, 321,
- -1, 323, 281, -1, -1, 284, -1, -1, -1, -1,
- -1, 333, -1, -1, 336, -1, 338, 296, 297, -1,
- 342, -1, 301, 302, -1, -1, -1, -1, 307, -1,
- 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
- 362, -1, 321, -1, 323, -1, -1, 369, 370, -1,
- -1, -1, -1, -1, 333, -1, -1, 336, 257, 338,
- 0, -1, 261, 342, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 272, -1, -1, -1, -1, 277, -1,
- -1, -1, 281, 362, -1, 284, -1, -1, -1, -1,
- -1, 370, -1, -1, -1, -1, -1, 296, 297, -1,
- -1, -1, 301, 302, -1, 257, -1, -1, 307, 261,
- 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
- 272, -1, 321, -1, 323, 277, -1, -1, -1, 281,
- -1, -1, 284, -1, 333, -1, -1, 336, -1, 338,
- -1, -1, -1, 342, 296, 297, -1, -1, -1, 301,
- 302, -1, -1, -1, -1, 307, -1, 309, 310, 311,
- 312, -1, -1, 362, -1, 317, -1, -1, 257, 321,
- -1, 323, 261, -1, -1, -1, -1, -1, -1, -1,
- -1, 333, -1, 272, 336, -1, 338, -1, 277, -1,
- 342, -1, 281, -1, -1, 284, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 296, 297, -1,
- 362, 257, 301, 302, -1, 261, -1, -1, 307, -1,
- 309, 310, 311, 312, -1, -1, 272, -1, 317, -1,
- -1, 277, 321, -1, 323, 281, -1, -1, 284, -1,
- -1, -1, -1, -1, 333, -1, -1, 336, -1, 338,
- 296, 297, -1, 342, 257, 301, 302, -1, 261, -1,
- -1, 307, -1, 309, 310, 311, 312, -1, -1, 272,
- -1, 317, -1, 362, 277, 321, -1, 323, 281, -1,
- -1, 284, -1, -1, -1, -1, -1, 333, -1, -1,
- 336, -1, 338, 296, 297, -1, 342, -1, 301, 302,
+ 0, -1, -1, -1, -1, -1, 257, -1, -1, 362,
+ 261, -1, -1, -1, -1, -1, -1, -1, 371, 372,
+ 373, 272, -1, -1, -1, -1, 277, -1, 381, -1,
+ 281, -1, -1, 284, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 296, 297, -1, -1, -1,
+ 301, 302, -1, 257, -1, -1, 307, 261, 309, 310,
+ 311, 312, -1, -1, -1, -1, 317, -1, 272, 422,
+ 321, -1, 323, 277, -1, -1, -1, 281, -1, -1,
+ 284, -1, 333, -1, -1, 336, -1, 338, -1, -1,
+ -1, 342, 296, 297, -1, -1, -1, 301, 302, -1,
+ 257, -1, -1, 307, 261, 309, 310, 311, 312, -1,
+ -1, 362, -1, 317, -1, 272, -1, 321, -1, 323,
+ 277, 372, 373, -1, 281, -1, -1, 284, -1, 333,
+ -1, -1, 336, -1, 338, -1, -1, -1, 342, 296,
+ 297, -1, -1, -1, 301, 302, -1, 257, -1, -1,
+ 307, 261, 309, 310, 311, 312, -1, -1, 362, -1,
+ 317, -1, 272, -1, 321, -1, 323, 277, -1, 373,
+ -1, 281, -1, -1, 284, -1, 333, -1, -1, 336,
+ -1, 338, -1, -1, -1, 342, 296, 297, -1, -1,
+ -1, 301, 302, -1, 257, -1, -1, 307, 261, 309,
+ 310, 311, 312, -1, -1, 362, -1, 317, -1, 272,
+ -1, 321, -1, 323, 277, -1, -1, -1, 281, -1,
+ -1, 284, -1, 333, -1, -1, 336, -1, 338, -1,
+ -1, -1, 342, 296, 297, -1, -1, -1, 301, 302,
-1, -1, -1, -1, 307, -1, 309, 310, 311, 312,
- -1, -1, -1, -1, 317, -1, 362, 257, 321, -1,
+ -1, -1, 362, -1, 317, -1, -1, 257, 321, -1,
323, 261, -1, -1, -1, -1, -1, -1, -1, -1,
333, -1, 272, 336, -1, 338, -1, 277, -1, 342,
-1, 281, -1, -1, 284, -1, -1, -1, -1, -1,
@@ -13571,57 +14036,58 @@ void case_1078()
-1, -1, -1, 314, -1, 316, -1, 318, 319, -1,
-1, 322, -1, 324, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, -1, 337, -1, -1, 340,
- 341, -1, -1, 344, 345, 256, -1, -1, -1, 261,
- -1, 262, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, 368, -1, -1,
- -1, 372, 284, -1, -1, -1, 377, 378, 379, 380,
- 381, -1, -1, -1, 385, 297, 387, 298, -1, -1,
- 302, -1, 393, 394, -1, 307, -1, 309, 310, 311,
- 312, -1, -1, -1, -1, 317, -1, -1, -1, 321,
- -1, -1, -1, 325, -1, -1, -1, 418, 419, 420,
- 421, 333, -1, -1, 336, -1, 338, -1, 339, 430,
- -1, -1, -1, 344, 256, 346, 347, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, 357, -1, -1, -1,
- 362, -1, 363, 364, -1, -1, -1, -1, 369, 370,
- 371, 372, 373, 374, 375, 376, 377, -1, 379, 380,
- -1, 382, 383, 384, 385, 386, 387, 388, 389, 390,
- 391, -1, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, 415, -1, 256, 419, 419, -1,
- 421, 422, 262, 424, -1, -1, -1, 339, -1, 430,
- -1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 369, 298, 371,
- -1, 373, -1, 375, 376, 377, -1, -1, -1, -1,
- -1, 383, 384, 385, 386, -1, -1, -1, 390, 391,
- -1, -1, -1, 395, 396, 397, 398, 399, 400, 401,
- 402, -1, -1, -1, -1, -1, -1, -1, -1, 339,
- -1, -1, 414, -1, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 430, -1,
- -1, -1, -1, 363, 364, -1, -1, -1, -1, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, 415, 256, 256, -1, 419,
- -1, 421, 262, -1, 424, -1, 265, -1, 267, -1,
- 430, 270, -1, -1, -1, -1, 275, -1, -1, -1,
- 279, -1, -1, -1, -1, -1, -1, -1, -1, 288,
- -1, -1, -1, -1, -1, -1, 295, -1, 298, -1,
- -1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- -1, -1, -1, 322, -1, -1, -1, -1, -1, -1,
- -1, 330, 331, -1, -1, 334, -1, -1, 337, 339,
- -1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
+ 341, -1, -1, 344, 345, -1, 256, -1, -1, -1,
+ -1, -1, 262, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ 371, -1, -1, -1, 375, -1, -1, -1, -1, 380,
+ 381, 382, 383, 384, -1, -1, -1, 388, 298, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 256, -1, -1, -1, -1, -1, 262,
+ 421, 422, 423, 424, -1, -1, -1, -1, -1, 339,
+ -1, -1, 433, -1, 344, -1, 346, 347, 348, 349,
350, 351, 352, 353, 354, 355, 356, 357, -1, -1,
- -1, -1, -1, 363, 364, -1, -1, -1, -1, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
+ -1, -1, -1, 363, 364, 298, 366, 367, -1, -1,
+ -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, -1, 382, 383, -1, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, -1, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, 256, -1, 419,
- 419, 421, 262, -1, 424, -1, 265, -1, 267, -1,
- 430, 270, -1, -1, -1, -1, 275, -1, -1, -1,
+ 410, 411, 412, 413, 414, 415, 416, 417, 418, -1,
+ 256, -1, 422, -1, 424, 425, 262, 427, -1, -1,
+ 363, 364, -1, 433, -1, -1, -1, -1, -1, 372,
+ 373, -1, 375, 376, 377, 378, -1, 380, -1, 382,
+ 383, -1, 385, 386, 387, 388, 389, -1, 391, 392,
+ 393, 394, 298, 396, 397, 398, 399, 400, 401, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, -1, -1, -1, -1, 422,
+ -1, 424, -1, -1, 427, -1, -1, -1, -1, -1,
+ 433, -1, -1, 339, -1, -1, -1, -1, 344, -1,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, 357, -1, -1, -1, -1, -1, 363, 364, -1,
+ 366, 367, -1, -1, -1, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 256, 382, 383, -1, 385,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, -1,
+ 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
+ 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
+ 416, 417, 418, 256, -1, -1, 422, -1, 424, 262,
+ -1, 427, -1, -1, -1, -1, -1, 433, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 298, -1, -1, 339, -1,
+ -1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 366, 367, -1, -1, -1,
+ -1, 372, -1, 374, -1, 376, 339, 378, 379, 380,
+ -1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 357, -1, -1, -1, -1, -1,
+ 363, 364, -1, 366, 367, -1, -1, -1, 371, 372,
+ 373, 374, 375, 376, 377, 378, 379, 380, -1, 382,
+ 383, -1, 385, 386, 387, 388, 389, 390, 391, 392,
+ 393, 394, 433, 396, 397, 398, 399, 400, 401, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 414, 415, 416, 417, -1, 256, 256, -1, 422,
+ -1, 424, 262, -1, 427, -1, 265, -1, 267, -1,
+ 433, 270, -1, -1, -1, -1, 275, -1, -1, -1,
279, -1, -1, -1, -1, -1, -1, -1, -1, 288,
-1, -1, -1, -1, -1, -1, 295, -1, 298, -1,
-1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
@@ -13629,389 +14095,413 @@ void case_1078()
-1, -1, -1, 322, -1, -1, -1, -1, -1, -1,
-1, 330, 331, -1, -1, 334, -1, -1, 337, 339,
-1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, -1, -1, 363, 364, -1, -1, -1, 368, 369,
- 370, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, -1, -1, 419,
- 419, 421, 262, -1, -1, 261, -1, -1, -1, -1,
- 430, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 284, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 298, -1,
- -1, 297, -1, -1, -1, -1, 302, -1, -1, -1,
- -1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
- -1, 317, -1, -1, -1, 321, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 333, -1, 339,
- 336, -1, 338, -1, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, -1, -1, 363, 364, -1, 362, -1, 368, 369,
- -1, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, -1, -1, 419,
- 261, 421, 262, 419, 424, -1, -1, -1, -1, -1,
- 430, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 284, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 297, -1, 298, -1,
- -1, 302, -1, -1, 305, -1, 307, -1, 309, 310,
- 311, 312, -1, -1, -1, -1, 317, -1, -1, -1,
- 321, -1, -1, -1, 325, -1, -1, -1, -1, -1,
- -1, -1, 333, -1, -1, 336, -1, 338, -1, 339,
- -1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, 362, -1, 363, 364, -1, -1, -1, 369, 369,
- -1, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, -1, 419, 419,
- 261, 421, 262, -1, 424, -1, -1, -1, -1, -1,
- 430, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 284, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 297, -1, 298, -1,
- -1, 302, -1, -1, 305, -1, 307, -1, 309, 310,
- 311, 312, -1, -1, -1, -1, 317, -1, -1, -1,
- 321, -1, -1, -1, 325, -1, -1, -1, -1, -1,
- -1, -1, 333, -1, -1, 336, -1, 338, -1, 339,
- -1, -1, -1, -1, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, 362, -1, 363, 364, -1, -1, -1, 369, 369,
- -1, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, -1, 419, 419,
- -1, 421, 262, -1, 424, -1, 265, -1, 267, -1,
- 430, 270, -1, 272, 273, -1, 275, -1, 277, -1,
- 279, -1, 281, 282, 283, -1, -1, -1, 287, 288,
- -1, -1, -1, -1, 293, -1, 295, 296, 298, -1,
- -1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- -1, -1, -1, 322, 323, -1, -1, -1, -1, -1,
- -1, 330, 331, -1, -1, 334, -1, -1, 337, 339,
- -1, -1, -1, 342, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, -1, -1, 363, 364, -1, -1, -1, -1, 369,
- -1, 371, 372, 373, 374, 375, 376, 377, -1, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, 414, -1, 256, -1, -1, 419,
- 419, 421, 262, -1, 424, -1, 265, -1, 267, -1,
- 430, 270, -1, -1, 273, -1, 275, -1, 277, -1,
- 279, -1, 281, 282, 283, -1, -1, -1, 287, 288,
- -1, -1, -1, -1, 293, -1, 295, -1, 298, -1,
- -1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 256, -1, -1, 322, -1, -1, 262, -1, -1, -1,
- 266, 330, 331, -1, -1, 334, -1, -1, 337, 339,
- -1, -1, -1, 342, 344, -1, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, -1, 298, 363, -1, -1, -1, -1, -1, 369,
- -1, 371, -1, 373, -1, 375, 376, 377, 314, 379,
- 380, -1, 382, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, -1, -1, 395, 396, 397, 398, 399,
+ 350, 351, 352, 353, 354, 355, 356, 357, -1, -1,
+ -1, -1, -1, 363, 364, -1, 366, 367, -1, -1,
+ -1, -1, 372, 373, 374, 375, 376, 377, 378, 379,
+ 380, -1, 382, 383, -1, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, -1, 396, 397, 398, 399,
400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, -1, 414, 256, -1, -1, -1, 419,
- 419, 357, -1, -1, -1, -1, -1, 363, 364, -1,
- 430, -1, -1, 369, 370, 371, 372, 373, 374, 375,
- 376, 377, -1, 379, 380, 285, 382, 383, 384, 385,
- 386, 387, 388, 389, 390, 391, -1, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
- 406, 407, 408, 409, 410, 411, 412, 413, 414, -1,
- 256, -1, -1, 419, -1, 421, 262, 327, 424, -1,
- -1, -1, -1, -1, 430, -1, -1, -1, 339, -1,
- -1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
- -1, -1, 298, -1, -1, -1, -1, -1, 369, -1,
- 371, -1, 373, -1, 375, 376, 377, -1, 378, 379,
- 380, 381, -1, 383, 384, 385, 386, 387, 388, 389,
- 390, -1, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, -1, -1, 339, -1, -1, -1, -1, 344, -1,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, -1, -1, -1, -1, 256, -1, 363, 364, 430,
- -1, 262, -1, 369, 370, 371, 372, 373, 374, 375,
- 376, 377, -1, 379, 380, -1, -1, 383, 384, 385,
- 386, -1, -1, -1, 390, 391, -1, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 298, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 413, 414, -1,
- -1, -1, -1, 419, 256, 421, -1, -1, 424, -1,
- 262, -1, -1, -1, 430, -1, -1, -1, -1, -1,
+ 410, 411, 412, 413, 414, 415, 416, 417, -1, 256,
+ -1, -1, 422, 422, 424, 262, -1, 427, -1, -1,
+ -1, 261, -1, 433, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 284, -1, -1, -1, -1, -1,
+ -1, 298, -1, -1, -1, -1, -1, 297, -1, -1,
+ -1, -1, 302, -1, -1, -1, -1, 307, -1, 309,
+ 310, 311, 312, -1, -1, -1, -1, 317, -1, -1,
+ -1, 321, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 339, 333, -1, -1, 336, 344, 338, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ -1, -1, 256, -1, -1, -1, -1, 364, -1, 366,
+ 367, -1, 362, -1, 371, 372, 373, 374, 375, 376,
+ 377, 378, 379, 380, -1, 382, 383, -1, 385, 386,
+ 387, 388, 389, 390, 391, 392, 393, 394, -1, 396,
+ 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
+ 417, -1, 256, -1, -1, -1, -1, 424, 262, -1,
+ -1, -1, 422, -1, -1, -1, 433, -1, -1, -1,
+ -1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
+ 344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, -1, 298, -1, -1, -1, -1, -1,
+ -1, -1, 366, 367, -1, -1, -1, -1, 372, -1,
+ 374, -1, 376, -1, 378, 379, 380, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 394, -1, -1, -1, -1, 339, -1, -1, -1, -1,
+ 344, 405, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, 417, -1, 256, -1, -1, -1, -1,
+ 364, -1, 366, 367, -1, -1, -1, 371, 372, 433,
+ 374, 375, 376, 377, 378, 379, 380, -1, 382, 383,
+ -1, 385, 386, 387, 388, 389, 390, 391, 392, 393,
+ 394, -1, 396, 397, 398, 399, 400, 401, 402, 403,
+ 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
+ 414, 415, 416, 417, -1, 256, -1, -1, -1, -1,
+ 424, 262, -1, 427, -1, -1, -1, -1, -1, 433,
-1, -1, -1, -1, -1, -1, -1, -1, 339, -1,
-1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, 298, -1, -1, -1,
- -1, -1, 363, 364, -1, -1, -1, -1, 369, -1,
- 371, 372, 373, 374, 375, 376, 377, -1, 379, 380,
- -1, -1, 383, 384, 385, 386, -1, -1, -1, 390,
- 391, -1, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 402, -1, 256, -1, -1, -1, -1, -1, 262,
- -1, -1, 413, 414, -1, -1, -1, -1, 419, -1,
- 421, 363, 364, 424, -1, -1, -1, 369, 370, 430,
- 372, 373, 374, 375, -1, 377, -1, 379, 380, -1,
- 382, 383, 384, 385, 386, 298, 388, 389, 390, 391,
- -1, 393, 394, 395, 396, 397, 398, 399, 400, 401,
+ 351, 352, 353, 354, 355, 356, -1, 298, -1, -1,
+ -1, -1, -1, -1, -1, 366, 367, -1, -1, -1,
+ -1, 372, -1, 374, -1, 376, -1, 378, 379, 380,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 394, -1, -1, -1, -1, 339, -1,
+ -1, -1, -1, 344, 405, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 356, 417, -1, 256, -1,
+ -1, -1, -1, 364, -1, 366, 367, -1, -1, -1,
+ -1, 372, 433, 374, 375, 376, 377, 378, 379, 380,
+ -1, 382, 383, -1, 385, 386, 387, 388, 389, 390,
+ 391, 392, 393, 394, -1, 396, 397, 398, 399, 400,
+ 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, -1, 256, -1,
+ -1, -1, -1, 424, 262, -1, 427, -1, -1, -1,
+ -1, -1, 433, -1, -1, -1, -1, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
+ 298, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, -1, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 394, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
+ -1, -1, -1, -1, -1, -1, 364, -1, 366, 367,
+ -1, -1, -1, -1, 372, 433, 374, 375, 376, 377,
+ 378, 379, 380, -1, 382, 383, -1, 385, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, -1, 396, 397,
+ 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
+ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
+ -1, 256, -1, -1, 261, -1, 424, 262, -1, 427,
+ -1, -1, -1, -1, -1, 433, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 284, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 297, -1, -1, 298, -1, 302, -1, -1, 305, -1,
+ 307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
+ 317, -1, -1, -1, 321, -1, -1, -1, 325, -1,
+ -1, -1, -1, -1, -1, -1, 333, -1, -1, 336,
+ -1, 338, -1, -1, 339, -1, -1, -1, -1, 344,
+ -1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, -1, -1, -1, 362, -1, -1, -1, 364,
+ -1, 366, 367, -1, -1, 372, -1, 372, -1, 374,
+ 375, 376, 377, 378, 379, 380, -1, 382, 383, -1,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ -1, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
+ 415, 416, 417, -1, 256, 422, 261, -1, -1, 424,
+ 262, -1, 427, -1, -1, -1, -1, -1, 433, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 284,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 297, -1, -1, -1, 298, 302, -1, -1,
+ 305, -1, 307, -1, 309, 310, 311, 312, -1, -1,
+ -1, -1, 317, -1, -1, -1, 321, 256, -1, -1,
+ 325, -1, -1, 262, -1, -1, -1, 266, 333, -1,
+ -1, 336, -1, 338, -1, -1, -1, 339, -1, -1,
+ -1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, -1, -1, 362, -1, 298,
+ -1, -1, -1, -1, 366, 367, -1, 372, -1, -1,
+ 372, -1, 374, -1, 376, 314, 378, 379, 380, -1,
+ 382, 383, -1, 385, 386, 387, 388, 389, 390, 391,
+ 392, 393, 394, -1, -1, -1, 398, 399, 400, 401,
402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
- 412, 413, 414, -1, -1, -1, -1, 419, -1, 421,
- -1, -1, 424, -1, -1, -1, 339, -1, 430, -1,
+ 412, 413, 414, 415, 256, 417, -1, 422, 357, -1,
+ 262, -1, -1, -1, 363, 364, -1, -1, -1, -1,
+ -1, 433, -1, 372, 373, 374, 375, 376, 377, 378,
+ 379, 380, -1, 382, 383, -1, 385, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, 298, 396, 397, 398,
+ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, -1,
+ -1, -1, -1, 422, -1, 424, -1, -1, 427, -1,
+ -1, -1, -1, -1, 433, -1, -1, 339, -1, -1,
+ -1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, -1, -1, -1, -1, -1,
+ -1, 363, 364, 256, 366, 367, -1, -1, -1, 262,
+ 372, 373, 374, -1, 376, 377, 378, 379, 380, -1,
+ 382, 383, -1, -1, 386, 387, 388, 389, -1, -1,
+ -1, 393, 394, -1, 396, 397, 398, 399, 400, 401,
+ 402, 403, 404, 405, -1, 298, -1, -1, -1, -1,
+ -1, -1, -1, -1, 416, 417, -1, -1, -1, -1,
+ 422, -1, 424, -1, -1, 427, -1, -1, -1, -1,
+ -1, 433, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 339, -1, -1, -1,
-1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, -1, -1, -1, -1, 256, -1,
- 363, -1, -1, -1, 262, -1, 369, 370, 371, -1,
- 373, -1, 375, 376, 377, -1, 379, 380, -1, -1,
- 383, 384, 385, 386, -1, -1, -1, 390, 391, -1,
- -1, -1, 395, 396, 397, 398, 399, 400, 401, 402,
+ 353, 354, 355, 356, -1, -1, -1, -1, -1, -1,
+ -1, 364, 256, 366, 367, -1, -1, -1, 262, 372,
+ -1, 374, 375, 376, 377, 378, 379, 380, -1, 382,
+ 383, -1, -1, 386, 387, 388, 389, -1, -1, -1,
+ 393, 394, -1, 396, 397, 398, 399, 400, 401, 402,
+ 403, 404, 405, -1, 298, -1, -1, -1, -1, -1,
+ -1, -1, -1, 416, 417, -1, -1, -1, -1, -1,
+ -1, 424, -1, -1, 427, -1, -1, -1, -1, -1,
+ 433, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
+ 344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, -1, -1, -1, -1, -1, -1, -1,
+ 364, 256, 366, 367, -1, -1, -1, 262, 372, -1,
+ 374, 375, 376, 377, 378, 379, 380, -1, 382, 383,
+ -1, -1, 386, 387, 388, 389, -1, -1, -1, 393,
+ 394, -1, 396, 397, 398, 399, 400, 401, 402, 403,
+ 404, 405, -1, 298, -1, -1, -1, -1, -1, -1,
+ -1, -1, 416, 417, -1, -1, -1, -1, -1, -1,
+ 424, -1, -1, 427, -1, -1, -1, -1, -1, 433,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
+ -1, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, -1, -1, -1, -1, -1, -1, -1, 364,
+ 256, 366, 367, -1, -1, -1, 262, 372, -1, 374,
+ 375, 376, 377, 378, 379, 380, -1, 382, 383, -1,
+ -1, 386, 387, 388, 389, -1, -1, -1, 393, 394,
+ -1, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, -1, 298, -1, -1, -1, -1, -1, -1, -1,
+ -1, 416, 417, -1, -1, -1, -1, -1, -1, 424,
+ -1, -1, 427, -1, -1, -1, -1, -1, 433, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, -1,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, -1, -1, -1, -1, -1, -1, 363, 256, -1,
+ 366, 367, -1, -1, 262, -1, 372, 373, 374, -1,
+ 376, -1, 378, 379, 380, -1, 382, 383, -1, -1,
+ 386, 387, 388, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, 404, 405,
298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 414, -1, -1, -1, -1, 419, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 430, -1, -1,
+ -1, 417, -1, -1, -1, -1, 422, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 433, -1, -1,
256, -1, -1, -1, -1, -1, 262, -1, -1, -1,
-1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 369, 298, 371, -1, 373, -1, 375, 376, 377,
- -1, 379, 380, -1, -1, 383, 384, 385, 386, 387,
- 388, 389, 390, 391, -1, -1, -1, 395, 396, 397,
- 398, 399, 400, 401, 402, -1, -1, -1, -1, -1,
- -1, -1, -1, 339, -1, -1, 414, -1, 344, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, 298, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, 382, 383, -1, -1, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, -1, -1, -1,
+ 398, 399, 400, 401, 402, 403, 404, 405, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, 417,
346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, -1, 430, -1, -1, 256, -1, 363, -1, -1,
- -1, 262, -1, 369, -1, 371, -1, 373, -1, 375,
- 376, 377, -1, 379, 380, -1, -1, 383, 384, 385,
- 386, -1, -1, -1, 390, 391, -1, -1, -1, 395,
- 396, 397, 398, 399, 400, 401, 402, 298, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 414, -1,
- -1, -1, -1, 419, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 430, -1, -1, 256, -1, -1,
- -1, -1, -1, 262, -1, -1, -1, -1, 339, -1,
- -1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 369, 298,
- 371, -1, 373, -1, 375, 376, 377, -1, 379, 380,
- -1, -1, 383, 384, 385, 386, -1, -1, -1, 390,
- 391, -1, -1, -1, 395, 396, 397, 398, 399, 400,
- 401, 402, -1, -1, -1, -1, -1, -1, -1, -1,
- 339, -1, -1, 414, -1, 344, -1, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, -1, 430,
- -1, -1, 256, -1, -1, -1, -1, -1, 262, -1,
- 369, -1, 371, -1, 373, -1, 375, 376, 377, -1,
- 379, 380, -1, -1, 383, 384, 385, 386, -1, -1,
- -1, 390, 391, -1, -1, -1, 395, 396, 397, 398,
- 399, 400, 401, 402, 298, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 414, -1, -1, -1, -1,
+ 356, -1, -1, -1, -1, 433, -1, 363, 256, -1,
+ 366, 367, -1, -1, 262, -1, 372, -1, 374, -1,
+ 376, -1, 378, 379, 380, -1, 382, 383, -1, -1,
+ 386, 387, 388, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, 404, 405,
+ 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 417, -1, -1, -1, -1, 422, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 433, -1, -1,
+ 256, -1, -1, -1, -1, -1, 262, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, 298, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, 382, 383, -1, -1, 386, 387,
+ 388, 389, -1, -1, -1, 393, 394, -1, -1, -1,
+ 398, 399, 400, 401, 402, 403, 404, 405, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, 417,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, -1, -1, -1, -1, 433, -1, -1, 256, -1,
+ 366, 367, -1, -1, 262, -1, 372, -1, 374, -1,
+ 376, -1, 378, 379, 380, -1, 382, 383, -1, -1,
+ 386, 387, 388, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, 404, 405,
+ 298, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 417, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 433, -1, -1,
+ 256, -1, -1, -1, -1, -1, 262, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, 298, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, 382, 383, -1, -1, 386, 387,
+ 388, 389, -1, -1, -1, 393, 394, -1, -1, -1,
+ 398, 399, 400, 401, 402, 403, 404, 405, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, 417,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, -1, -1, -1, -1, 433, -1, -1, -1, -1,
+ 366, 367, -1, -1, -1, -1, 372, -1, 374, -1,
+ 376, -1, 378, 379, 380, -1, 382, 383, -1, -1,
+ 386, 387, 388, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, 398, 399, 400, 401, 402, 403, 404, 405,
+ -1, 256, -1, 256, -1, -1, -1, -1, -1, 264,
+ 265, 417, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, 433, -1, -1,
+ 285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 430, -1, -1, 256, -1, -1, -1, -1, -1,
- 262, -1, -1, -1, -1, 339, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
+ -1, -1, -1, -1, -1, -1, 339, -1, -1, -1,
+ -1, 344, -1, 346, 347, 348, 349, 350, 351, 352,
+ 353, 354, 355, 356, 359, 360, 361, 362, 363, 256,
+ -1, 366, 367, 366, 367, -1, -1, -1, -1, 372,
+ 375, 374, -1, 376, -1, 378, 379, 380, -1, -1,
+ -1, -1, -1, 386, 387, 388, 389, -1, -1, -1,
+ 393, 394, -1, -1, -1, 398, 399, 400, 401, 402,
+ 403, 404, 405, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 417, -1, 421, 422, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 432, 433, -1,
+ 433, 256, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 339, -1, -1, -1, -1, 344, -1, 346,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 366,
+ 367, -1, -1, -1, -1, 372, -1, 374, -1, 376,
+ -1, 378, 379, 380, -1, -1, -1, -1, -1, 386,
+ 387, 388, 389, -1, -1, -1, 393, 394, -1, -1,
+ -1, 398, 399, 400, 401, 402, 403, 404, 405, -1,
+ -1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
+ 417, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 256, -1, -1, -1, 433, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, 372, -1, 374,
+ -1, 376, -1, 378, 379, 380, -1, -1, -1, -1,
+ -1, 386, 387, 388, 389, -1, -1, -1, 393, 394,
+ -1, -1, -1, 398, 399, 400, 401, 402, 403, 404,
+ 405, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 417, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, -1, -1, -1, 433, -1,
+ -1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
344, -1, 346, 347, 348, 349, 350, 351, 352, 353,
354, 355, 356, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 369, 298, 371, -1, 373,
- -1, 375, 376, 377, -1, 379, 380, -1, -1, 383,
- 384, 385, 386, -1, -1, -1, 390, 391, -1, -1,
- -1, 395, 396, 397, 398, 399, 400, 401, 402, -1,
- -1, -1, -1, -1, -1, -1, -1, 339, -1, -1,
- 414, -1, 344, -1, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, -1, 430, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 369, -1, 371,
- -1, 373, -1, 375, 376, 377, -1, 379, 380, -1,
- -1, 383, 384, 385, 386, -1, -1, -1, 390, 391,
- -1, -1, -1, 395, 396, 397, 398, 399, 400, 401,
- 402, -1, 256, -1, 256, -1, -1, -1, -1, -1,
- 264, 265, 414, 267, -1, -1, 270, 271, -1, -1,
- -1, 275, 276, 277, -1, 279, -1, -1, 430, -1,
- -1, 285, -1, -1, 288, -1, -1, -1, -1, -1,
- -1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
- -1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
- 334, -1, -1, -1, -1, -1, -1, 339, -1, 256,
- -1, -1, 344, -1, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 359, 360, 361, 362, 363,
- -1, -1, -1, -1, -1, -1, -1, 369, 372, 371,
- -1, 373, -1, 375, 376, 377, -1, -1, -1, -1,
- -1, 383, 384, 385, 386, -1, -1, -1, 390, 391,
- -1, -1, -1, 395, 396, 397, 398, 399, 400, 401,
- 402, -1, -1, -1, -1, -1, -1, -1, 256, -1,
- -1, -1, 414, -1, 418, 419, -1, -1, -1, -1,
- -1, -1, 339, -1, -1, 429, 430, 344, 430, 346,
- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 369, -1, 371, -1, 373, -1, 375, 376,
- 377, -1, -1, -1, -1, -1, 383, 384, 385, 386,
- -1, -1, -1, 390, 391, -1, -1, 256, 395, 396,
- 397, 398, 399, 400, 401, 402, -1, -1, -1, -1,
- -1, 339, -1, -1, -1, -1, 344, 414, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
- -1, -1, -1, 430, -1, -1, -1, -1, -1, -1,
- -1, 369, -1, 371, -1, 373, -1, 375, 376, 377,
- -1, -1, -1, -1, -1, 383, 384, 385, 386, -1,
- -1, -1, 390, 391, -1, -1, 256, -1, -1, 397,
- 398, 399, 400, 401, 402, -1, -1, -1, -1, -1,
- 339, -1, -1, -1, -1, 344, 414, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
- -1, -1, 430, -1, -1, -1, -1, -1, -1, -1,
- 369, -1, 371, -1, 373, -1, 375, 376, 377, -1,
- -1, -1, -1, -1, 383, 384, 385, 386, -1, -1,
- -1, 390, 391, -1, -1, 256, -1, -1, 397, 398,
- 399, 400, 401, 402, -1, -1, -1, -1, -1, 339,
- -1, -1, -1, -1, 344, 414, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, 430, -1, -1, -1, -1, -1, -1, -1, 369,
- -1, 371, -1, 373, -1, 375, 376, 377, -1, -1,
- -1, -1, -1, 383, 384, 385, 386, -1, -1, -1,
- 390, 391, -1, -1, 256, -1, -1, 397, 398, 399,
- 400, 401, 402, -1, -1, -1, -1, -1, 339, -1,
- -1, -1, -1, 344, 414, 346, 347, 348, 349, 350,
+ -1, -1, 366, 367, -1, -1, -1, -1, 372, -1,
+ 374, -1, 376, -1, 378, 379, 380, -1, -1, -1,
+ -1, -1, 386, 387, 388, 389, -1, -1, -1, 393,
+ 394, -1, -1, -1, -1, -1, 400, 401, 402, 403,
+ 404, 405, -1, -1, -1, -1, -1, 339, -1, -1,
+ -1, -1, 344, 417, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, 256, -1, -1, -1, 433,
+ -1, -1, -1, -1, 366, 367, -1, -1, -1, -1,
+ 372, -1, 374, -1, 376, -1, 378, 379, 380, -1,
+ -1, -1, -1, -1, 386, 387, 388, 389, -1, -1,
+ -1, 393, 394, -1, -1, -1, -1, -1, 400, 401,
+ 402, 403, 404, 405, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 417, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
+ -1, 433, -1, -1, -1, -1, -1, -1, 339, -1,
+ -1, -1, -1, 344, -1, 346, 347, 348, 349, 350,
351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
- 430, -1, -1, -1, -1, -1, -1, -1, 369, -1,
- 371, -1, 373, -1, 375, 376, 377, -1, -1, -1,
- -1, -1, 383, 384, 385, 386, 256, -1, -1, 390,
- 391, -1, 262, -1, -1, -1, 397, 398, 399, 400,
- 401, 402, -1, -1, -1, -1, -1, 339, -1, -1,
- -1, -1, 344, 414, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, -1, -1, -1, 298, 430,
- -1, -1, -1, -1, -1, -1, -1, 369, -1, 371,
- -1, 373, -1, 375, 376, 377, -1, -1, -1, -1,
- -1, 383, 384, 385, 386, -1, -1, -1, 390, 391,
- -1, -1, -1, -1, -1, 397, 398, 399, 400, 401,
- 402, -1, -1, 256, -1, -1, -1, -1, -1, -1,
- -1, -1, 414, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 364, -1, -1, -1, 430, 369,
- -1, -1, 372, -1, 374, 375, -1, -1, -1, 379,
- 380, -1, -1, 383, 384, 385, 386, 387, 388, 389,
- 390, 391, -1, 393, 394, 395, 396, 397, 398, 399,
- 400, 401, 402, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 256, 413, 414, -1, -1, -1, -1, -1,
- -1, 421, -1, -1, 424, -1, 339, -1, -1, -1,
- 430, 344, -1, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 369, -1, 371, -1,
- 373, -1, 375, 376, 377, -1, -1, -1, -1, -1,
- -1, -1, 385, 386, -1, -1, -1, 390, 391, -1,
- -1, 256, -1, -1, -1, -1, 399, 400, 401, 402,
- -1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
- 344, 414, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, -1, -1, -1, -1, 430, -1, -1,
- -1, -1, -1, -1, -1, 369, -1, 371, -1, 373,
- -1, 375, 376, 377, -1, -1, -1, -1, -1, -1,
- -1, 385, 386, -1, -1, -1, 390, 391, -1, -1,
- 256, -1, -1, -1, -1, 399, 400, 401, 402, -1,
- -1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
- 414, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, -1, -1, -1, -1, 430, -1, -1, -1,
- -1, -1, -1, -1, 369, -1, 371, -1, 373, -1,
- 375, 376, 377, -1, -1, -1, -1, -1, -1, -1,
- 385, 386, -1, -1, -1, 390, 391, -1, -1, 256,
- -1, -1, -1, -1, 399, 400, 401, 402, -1, -1,
- -1, -1, -1, 339, -1, -1, -1, -1, 344, 414,
- 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, -1, -1, -1, -1, 430, -1, -1, -1, -1,
- -1, -1, -1, 369, -1, 371, -1, 373, -1, 375,
- 376, 377, -1, -1, -1, -1, -1, -1, -1, 385,
- 386, -1, -1, -1, 390, 391, -1, -1, 256, -1,
- -1, -1, -1, -1, -1, 401, 402, -1, -1, -1,
- -1, -1, 339, -1, -1, -1, -1, 344, 414, 346,
- 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- -1, -1, -1, -1, 430, -1, -1, -1, -1, -1,
- -1, -1, 369, -1, 371, -1, 373, -1, 375, 376,
- 377, -1, -1, -1, -1, -1, -1, -1, 385, 386,
- -1, -1, -1, 390, 391, -1, -1, 256, -1, -1,
- -1, -1, -1, -1, 401, 402, -1, -1, -1, -1,
- -1, 339, -1, -1, -1, -1, 344, 414, 346, 347,
+ -1, -1, -1, -1, -1, 366, 367, -1, -1, -1,
+ -1, 372, -1, 374, -1, 376, -1, 378, 379, 380,
+ -1, -1, -1, -1, -1, 386, 387, 388, 389, -1,
+ -1, -1, 393, 394, -1, -1, -1, -1, -1, 400,
+ 401, 402, 403, 404, 405, -1, -1, -1, -1, -1,
+ 339, -1, -1, -1, -1, 344, 417, 346, 347, 348,
+ 349, 350, 351, 352, 353, 354, 355, 356, 256, -1,
+ -1, -1, 433, -1, -1, -1, -1, 366, 367, -1,
+ -1, -1, -1, 372, -1, 374, -1, 376, -1, 378,
+ 379, 380, -1, -1, -1, -1, -1, 386, 387, 388,
+ 389, -1, -1, -1, 393, 394, -1, -1, -1, -1,
+ -1, 400, 401, 402, 403, 404, 405, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 256, 417, -1,
+ -1, -1, -1, 262, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 433, -1, -1, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, -1, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, 298,
+ -1, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, -1, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, -1, -1, -1, -1, 386, 387,
+ 388, 389, -1, -1, -1, 393, 394, -1, -1, -1,
+ -1, -1, 400, 401, 402, 403, 404, 405, 256, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 417,
+ -1, -1, -1, -1, -1, 364, -1, -1, -1, -1,
+ -1, -1, -1, 372, -1, 433, 375, -1, 377, 378,
+ -1, -1, -1, 382, 383, -1, -1, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, -1, 396, 397, 398,
+ 399, 400, 401, 402, 403, 404, 405, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 416, 417, -1,
+ 256, -1, -1, -1, -1, 424, -1, -1, 427, -1,
+ -1, 339, -1, -1, 433, -1, 344, -1, 346, 347,
348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
- -1, -1, -1, 430, -1, -1, -1, -1, -1, -1,
- -1, 369, -1, 371, -1, 373, -1, 375, 376, 377,
- -1, -1, -1, -1, -1, -1, -1, -1, 386, -1,
- -1, -1, 390, 391, -1, -1, 256, -1, -1, -1,
- -1, -1, -1, 401, 402, -1, -1, -1, -1, -1,
- 339, -1, -1, -1, -1, 344, 414, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, -1, -1,
- -1, -1, 430, -1, -1, -1, -1, -1, -1, -1,
- 369, -1, 371, -1, 373, -1, 375, 376, 377, -1,
- -1, -1, -1, -1, -1, -1, -1, 386, -1, -1,
- -1, 390, 391, -1, -1, 256, -1, -1, -1, -1,
- -1, -1, 401, 402, -1, -1, -1, -1, -1, 339,
- -1, -1, -1, -1, 344, 414, 346, 347, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
- -1, 430, -1, -1, -1, -1, -1, -1, -1, 369,
- -1, 371, -1, 373, -1, 375, 376, 377, -1, -1,
- -1, -1, -1, -1, -1, -1, 386, -1, -1, -1,
- -1, 391, -1, -1, 256, -1, -1, -1, -1, -1,
- -1, 401, 402, -1, -1, -1, -1, -1, 339, -1,
- -1, -1, -1, 344, 414, 346, 347, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, -1, -1, -1, -1,
- 430, -1, -1, -1, -1, -1, -1, -1, 369, -1,
- 371, -1, 373, -1, 375, 376, 377, -1, -1, -1,
- -1, -1, -1, -1, -1, 386, -1, -1, -1, -1,
- 391, -1, -1, 256, -1, -1, -1, -1, -1, -1,
- 401, 402, -1, -1, -1, -1, -1, 339, -1, -1,
- -1, -1, 344, 414, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, -1, -1, -1, -1, 430,
- -1, -1, -1, -1, -1, -1, -1, 369, -1, 371,
- -1, 373, -1, 375, 376, 377, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 391,
- -1, -1, 256, -1, -1, -1, -1, -1, -1, 401,
- 402, -1, -1, -1, -1, -1, 339, -1, -1, -1,
- -1, 344, 414, 346, 347, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, -1, -1, -1, -1, 430, -1,
- -1, -1, -1, -1, -1, -1, 369, -1, 371, -1,
- 373, -1, 375, 376, 377, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 391, -1,
- -1, 256, -1, -1, -1, -1, -1, -1, 401, 402,
+ -1, -1, -1, -1, -1, -1, -1, -1, 366, 367,
+ -1, -1, -1, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, -1, -1, -1, -1, -1, -1,
+ 388, 389, -1, -1, -1, 393, 394, -1, -1, -1,
+ -1, -1, 256, -1, 402, 403, 404, 405, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, 417,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, -1, -1, -1, -1, 433, -1, -1, -1, -1,
+ 366, 367, -1, -1, -1, -1, 372, -1, 374, -1,
+ 376, -1, 378, 379, 380, -1, -1, -1, -1, -1,
+ -1, -1, 388, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, -1, -1, 256, -1, 402, 403, 404, 405,
-1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
- 344, 414, 346, 347, 348, 349, 350, 351, 352, 353,
- 354, 355, 356, -1, -1, -1, -1, 430, -1, -1,
- -1, -1, -1, -1, -1, 369, -1, 371, -1, 373,
- -1, 375, 376, 377, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 391, -1, -1,
- -1, 262, -1, -1, -1, 266, -1, -1, 402, -1,
- -1, -1, -1, -1, 339, -1, -1, -1, -1, 344,
- 414, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, -1, -1, -1, -1, 430, 298, -1, -1,
- -1, -1, -1, -1, 369, -1, 371, -1, 373, -1,
- 375, 376, 377, 314, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 391, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 402, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 414,
- -1, -1, -1, -1, -1, -1, 357, -1, -1, -1,
- -1, -1, 363, 364, -1, 430, -1, -1, 369, 370,
- -1, 372, -1, 374, -1, 376, 377, -1, 379, 380,
- -1, 382, 383, 384, 385, 386, 387, 388, 389, 390,
- 391, -1, 393, 394, 395, 396, 397, 398, 399, 400,
- 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
- 411, 412, 413, 414, -1, -1, 256, -1, 419, -1,
- 421, -1, -1, 424, 264, 265, 266, 267, 268, 430,
- 270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
- -1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
- 290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
- 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
- -1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
- 340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
- 360, 361, 362, 363, -1, -1, -1, -1, 368, -1,
- -1, -1, 372, -1, -1, -1, -1, 377, 378, 379,
- 380, 381, -1, -1, -1, 385, -1, 387, -1, -1,
- -1, -1, -1, 393, 394, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 256, -1, 418, 419,
- 420, 421, -1, 423, 264, 265, 266, 267, -1, -1,
- 270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
- -1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
- 290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
- 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
- -1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
- 340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
- 360, 361, 362, 363, -1, -1, -1, -1, 368, -1,
- -1, -1, 372, -1, -1, -1, -1, 377, 378, 379,
- 380, 381, -1, -1, -1, 385, -1, 387, -1, -1,
+ 344, 417, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, -1, -1, -1, -1, 433, -1, -1,
+ -1, -1, 366, 367, -1, -1, -1, -1, 372, -1,
+ 374, -1, 376, -1, 378, 379, 380, -1, -1, -1,
+ -1, -1, -1, -1, 388, 389, -1, -1, -1, 393,
+ 394, -1, -1, -1, -1, -1, 256, -1, 402, 403,
+ 404, 405, -1, -1, -1, -1, -1, 339, -1, -1,
+ -1, -1, 344, 417, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, -1, -1, -1, -1, 433,
+ -1, -1, -1, -1, 366, 367, -1, -1, -1, -1,
+ 372, -1, 374, -1, 376, -1, 378, 379, 380, -1,
+ -1, -1, -1, -1, -1, -1, 388, 389, -1, -1,
+ -1, 393, 394, -1, -1, -1, -1, -1, 256, -1,
+ -1, -1, 404, 405, -1, -1, -1, -1, -1, 339,
+ -1, -1, -1, -1, 344, 417, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
+ -1, 433, -1, -1, -1, -1, 366, 367, -1, -1,
+ -1, -1, 372, -1, 374, -1, 376, -1, 378, 379,
+ 380, -1, -1, -1, -1, -1, -1, -1, 388, 389,
-1, -1, -1, 393, 394, -1, -1, -1, -1, -1,
+ 256, -1, -1, -1, 404, 405, -1, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, 417, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, -1,
+ -1, -1, -1, 433, -1, -1, -1, -1, 366, 367,
+ -1, -1, -1, -1, 372, -1, 374, -1, 376, -1,
+ 378, 379, 380, -1, -1, -1, -1, -1, -1, -1,
+ -1, 389, -1, -1, -1, 393, 394, -1, -1, -1,
+ -1, -1, 256, -1, -1, -1, 404, 405, -1, -1,
+ -1, -1, -1, 339, -1, -1, -1, -1, 344, 417,
+ 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
+ 356, -1, -1, -1, -1, 433, -1, -1, -1, -1,
+ 366, 367, -1, -1, -1, -1, 372, -1, 374, -1,
+ 376, -1, 378, 379, 380, -1, -1, -1, -1, -1,
+ -1, -1, -1, 389, -1, -1, -1, 393, 394, -1,
+ -1, -1, -1, -1, 256, -1, -1, -1, 404, 405,
+ -1, -1, -1, -1, -1, 339, -1, -1, -1, -1,
+ 344, 417, 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 356, -1, -1, -1, -1, 433, -1, -1,
+ -1, -1, 366, 367, -1, -1, -1, -1, 372, -1,
+ 374, -1, 376, -1, 378, 379, 380, -1, -1, -1,
+ -1, -1, -1, -1, -1, 389, -1, -1, -1, -1,
+ 394, -1, -1, -1, -1, -1, 256, -1, -1, -1,
+ 404, 405, -1, -1, -1, -1, -1, 339, -1, -1,
+ -1, -1, 344, 417, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 356, -1, -1, -1, -1, 433,
+ -1, -1, -1, -1, 366, 367, -1, -1, -1, -1,
+ 372, -1, 374, -1, 376, -1, 378, 379, 380, -1,
+ -1, -1, -1, -1, -1, -1, -1, 389, -1, -1,
+ -1, -1, 394, -1, -1, -1, -1, -1, 256, -1,
+ -1, -1, 404, 405, -1, -1, -1, -1, -1, 339,
+ -1, -1, -1, -1, 344, 417, 346, 347, 348, 349,
+ 350, 351, 352, 353, 354, 355, 356, -1, -1, -1,
+ -1, 433, -1, -1, -1, -1, 366, 367, -1, -1,
+ -1, -1, 372, -1, 374, -1, 376, -1, 378, 379,
+ 380, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 262, 394, -1, -1, 266, -1, -1,
+ -1, -1, -1, -1, 404, 405, -1, -1, -1, -1,
+ -1, 339, -1, -1, -1, -1, 344, 417, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, 356, 298,
+ -1, -1, -1, 433, -1, -1, -1, -1, 366, 367,
+ -1, -1, -1, -1, 372, 314, 374, -1, 376, -1,
+ 378, 379, 380, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 394, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 404, 405, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 357, 417,
+ -1, -1, -1, -1, 363, 364, -1, -1, -1, -1,
+ -1, -1, -1, 372, 373, 433, 375, -1, 377, -1,
+ 379, 380, -1, 382, 383, -1, 385, 386, 387, 388,
+ 389, 390, 391, 392, 393, 394, -1, 396, 397, 398,
+ 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, 416, 417, -1,
+ -1, 256, -1, 422, -1, 424, -1, -1, 427, 264,
+ 265, 266, 267, 268, 433, 270, 271, -1, 273, 274,
+ 275, 276, 277, 278, 279, -1, -1, -1, -1, -1,
+ 285, -1, 287, 288, 289, 290, 291, 292, -1, -1,
+ 295, -1, -1, -1, 299, 300, -1, 302, 303, 304,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 314,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, -1, 337, -1, -1, 340, 341, -1, -1, 344,
+ 345, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, 371, -1, -1, -1,
+ 375, -1, -1, -1, -1, 380, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, -1, -1, -1, -1,
+ -1, 396, 397, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 256, -1, -1, -1, 418, 419,
- 420, 421, 264, 265, 266, 267, -1, -1, 270, 271,
+ -1, -1, -1, -1, 256, -1, 421, 422, 423, 424,
+ -1, 426, 264, 265, 266, 267, -1, -1, 270, 271,
-1, 273, 274, 275, 276, 277, 278, 279, -1, -1,
-1, -1, -1, 285, -1, 287, 288, 289, 290, 291,
292, -1, -1, 295, -1, -1, -1, 299, 300, -1,
@@ -14021,44 +14511,61 @@ void case_1078()
332, 333, 334, 335, -1, 337, -1, -1, 340, 341,
-1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
- 362, 363, -1, -1, -1, -1, 368, -1, -1, -1,
- 372, -1, -1, -1, -1, 377, 378, 379, 380, 381,
- -1, -1, -1, 385, -1, 387, -1, -1, -1, -1,
- -1, 393, 394, -1, -1, -1, -1, -1, -1, -1,
+ 362, 363, -1, -1, 366, 367, -1, -1, -1, 371,
+ -1, -1, -1, 375, -1, -1, -1, -1, 380, 381,
+ 382, 383, 384, -1, -1, -1, 388, -1, 390, -1,
+ -1, -1, -1, -1, 396, 397, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 256, -1, -1, -1, 418, 419, 420, 421,
- 264, 265, 266, 267, -1, -1, 270, 271, -1, 273,
- 274, 275, 276, 277, 278, 279, -1, -1, -1, -1,
- -1, 285, -1, 287, 288, 289, 290, 291, 292, -1,
- -1, 295, -1, -1, -1, 299, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 314, -1, 316, -1, 318, 319, -1, -1, 322, -1,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- 334, 335, -1, 337, -1, -1, 340, 341, -1, -1,
- 344, 345, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
- -1, -1, -1, -1, 368, -1, -1, -1, 372, -1,
- -1, -1, -1, 377, 378, 379, 380, 381, -1, -1,
- -1, 385, -1, 387, -1, -1, -1, -1, -1, 393,
- 394, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 256, -1, -1, -1, 421,
+ 422, 423, 424, 264, 265, 266, 267, -1, -1, 270,
+ 271, -1, 273, 274, 275, 276, 277, 278, 279, -1,
+ -1, -1, -1, -1, 285, -1, 287, 288, 289, 290,
+ 291, 292, -1, -1, 295, -1, -1, -1, 299, 300,
+ -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 314, -1, 316, -1, 318, 319, -1,
+ -1, 322, -1, 324, 325, 326, 327, 328, 329, 330,
+ 331, 332, 333, 334, 335, -1, 337, -1, -1, 340,
+ 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ 371, -1, -1, -1, 375, -1, -1, -1, -1, 380,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 256, -1, -1, -1, 418, 419, 420, 421, 264, 265,
- 266, 267, -1, -1, 270, 271, -1, 273, 274, 275,
- 276, 277, 278, 279, -1, -1, -1, -1, -1, 285,
- -1, 287, 288, 289, 290, 291, 292, -1, -1, 295,
- -1, -1, -1, 299, 300, -1, 302, 303, 304, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
- 316, -1, 318, 319, -1, -1, 322, -1, 324, 325,
- 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
- -1, 337, -1, -1, 340, 341, -1, -1, 344, 345,
+ -1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
+ 421, 422, 423, 424, 264, 265, 266, 267, -1, -1,
+ 270, 271, -1, 273, 274, 275, 276, 277, 278, 279,
+ -1, -1, -1, -1, -1, 285, -1, 287, 288, 289,
+ 290, 291, 292, -1, -1, 295, -1, -1, -1, 299,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 314, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, -1, 337, -1, -1,
+ 340, 341, -1, -1, 344, 345, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, 371, -1, -1, -1, 375, -1, -1, -1, -1,
+ 380, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, -1, -1, -1, -1, -1, 396, 397, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
- -1, -1, 368, -1, -1, -1, 372, -1, -1, -1,
- -1, 377, 378, 379, 380, 381, -1, -1, -1, 385,
- -1, 387, -1, -1, -1, -1, -1, 393, 394, -1,
+ -1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
+ -1, 421, 422, 423, 424, 264, 265, 266, 267, -1,
+ -1, 270, 271, -1, 273, 274, 275, 276, 277, 278,
+ 279, -1, -1, -1, -1, -1, 285, -1, 287, 288,
+ 289, 290, 291, 292, -1, -1, 295, -1, -1, -1,
+ 299, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 314, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, 335, -1, 337, -1,
+ -1, 340, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, 371, -1, -1, -1, 375, -1, -1, -1,
+ -1, 380, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
- -1, -1, 418, 419, 420, 421, 264, 265, -1, 267,
+ -1, -1, 421, 422, 423, 424, 264, 265, -1, 267,
-1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
-1, 279, -1, -1, 265, -1, 267, 285, -1, 270,
288, -1, -1, -1, 275, -1, -1, 295, 279, -1,
@@ -14068,150 +14575,215 @@ void case_1078()
-1, 329, 330, 331, 332, 316, 334, 318, -1, -1,
-1, 322, -1, 341, -1, -1, 344, 345, -1, 330,
331, -1, -1, 334, -1, -1, 337, -1, -1, -1,
- -1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
- -1, -1, -1, -1, 372, -1, -1, 375, -1, -1,
- 378, 379, 380, 381, -1, -1, -1, 385, -1, 387,
- -1, -1, 373, -1, -1, 393, 394, -1, -1, -1,
- -1, -1, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- 418, 419, 420, 421, 285, -1, -1, 288, -1, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, 419, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
- 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, 368, 369, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, -1, -1, -1,
- -1, -1, 393, 394, -1, -1, -1, -1, -1, -1,
- 264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
- -1, 275, 276, 277, -1, 279, -1, 418, 419, 420,
- 421, 285, -1, 424, 288, -1, -1, -1, 429, -1,
- -1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
- -1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
- 334, -1, -1, -1, -1, -1, -1, 341, -1, -1,
- 344, 345, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
- -1, -1, -1, -1, 368, -1, -1, -1, 372, -1,
- -1, -1, -1, -1, 378, 379, 380, 381, -1, -1,
- -1, 385, -1, 387, -1, -1, -1, -1, -1, 393,
- 394, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 359, 360, 361, 362, 363, -1, -1, 366, 367,
+ -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
+ 378, -1, 363, 381, 382, 383, 384, -1, -1, -1,
+ 388, -1, 390, -1, -1, -1, -1, -1, 396, 397,
+ -1, -1, -1, -1, -1, -1, 264, 265, -1, 267,
+ -1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
+ -1, 279, -1, 421, 422, 423, 424, 285, -1, -1,
+ 288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
+ -1, 422, 300, -1, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
+ 318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
+ -1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
+ -1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 359, 360, 361, 362, 363, -1, -1, 366, 367,
+ -1, -1, -1, 371, 372, -1, -1, 375, -1, -1,
+ -1, -1, -1, 381, 382, 383, 384, -1, -1, -1,
+ 388, -1, 390, -1, -1, -1, -1, -1, 396, 397,
+ -1, -1, -1, -1, -1, -1, 264, 265, -1, 267,
+ -1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
+ -1, 279, -1, 421, 422, 423, 424, 285, -1, 427,
+ 288, -1, -1, -1, 432, -1, -1, 295, -1, -1,
+ -1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
+ 318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
+ -1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
+ -1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 359, 360, 361, 362, 363, -1, -1, 366, 367,
+ -1, -1, -1, 371, -1, -1, -1, 375, -1, -1,
+ -1, -1, -1, 381, 382, 383, 384, -1, -1, -1,
+ 388, -1, 390, -1, -1, -1, -1, -1, 396, 397,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 256, 418, 419, 420, 421, -1, -1,
- 424, 264, 265, -1, 267, 429, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, 265,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 256, 421, 422, 423, 424, -1, -1, 427,
+ 264, 265, -1, 267, 432, -1, 270, 271, -1, -1,
+ -1, 275, 276, 277, -1, 279, -1, -1, 265, -1,
+ 267, 285, -1, 270, 288, -1, -1, -1, 275, -1,
+ -1, 295, 279, -1, -1, -1, 300, -1, 302, 303,
+ 304, 288, -1, -1, -1, -1, -1, -1, 295, -1,
+ -1, -1, 316, 300, 318, 319, -1, 304, 322, -1,
+ -1, 325, -1, 327, -1, 329, 330, 331, 332, 316,
+ 334, 318, -1, -1, -1, 322, -1, 341, -1, -1,
+ 344, 345, -1, 330, 331, -1, -1, 334, -1, -1,
+ 337, -1, -1, -1, -1, 359, 360, 361, 362, 363,
+ -1, -1, 366, 367, -1, -1, -1, 371, 372, -1,
+ -1, 375, -1, -1, -1, -1, -1, 381, 382, 383,
+ 384, -1, -1, -1, 388, -1, 390, -1, -1, 376,
+ -1, -1, 396, 397, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 256, -1, -1, -1, 421, 422, 423,
+ 424, 264, 265, -1, 267, -1, -1, 270, 271, -1,
+ -1, -1, 275, 276, 277, 422, 279, -1, -1, 265,
-1, 267, 285, -1, 270, 288, -1, -1, -1, 275,
-1, -1, 295, 279, -1, -1, -1, 300, -1, 302,
- 303, 304, 288, -1, -1, -1, -1, -1, -1, 295,
- -1, -1, -1, 316, 300, 318, 319, -1, 304, 322,
+ 303, 304, 288, 306, -1, -1, -1, -1, -1, 295,
+ 313, -1, -1, 316, 300, 318, 319, -1, 304, 322,
-1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
316, 334, 318, -1, -1, -1, 322, -1, 341, -1,
-1, 344, 345, -1, 330, 331, -1, -1, 334, -1,
-1, 337, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, 368, 369, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 371, -1, -1, -1, -1,
- 393, 394, -1, -1, -1, -1, -1, -1, -1, -1,
+ 363, -1, -1, 366, 367, -1, -1, -1, -1, -1,
+ -1, -1, 375, -1, -1, -1, -1, -1, 381, 382,
+ 383, 384, -1, -1, -1, 388, -1, 390, 374, -1,
+ -1, -1, -1, 396, 397, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 256, -1, -1, -1, 418, 419, 420, 421, 264,
- 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
- 275, 276, 277, 419, 279, -1, -1, 265, -1, 267,
- 285, -1, 270, 288, -1, -1, -1, 275, -1, -1,
- 295, 279, -1, -1, -1, 300, -1, 302, 303, 304,
- 288, 306, -1, -1, -1, -1, -1, 295, 313, -1,
- -1, 316, 300, 318, 319, -1, 304, 322, -1, -1,
- 325, -1, 327, -1, 329, 330, 331, 332, 316, 334,
- 318, -1, -1, -1, 322, -1, 341, -1, -1, 344,
- 345, -1, 330, 331, -1, -1, 334, -1, -1, 337,
- -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, -1, -1, -1, -1, -1, 393, 394,
+ -1, -1, -1, -1, 256, -1, -1, -1, 421, 422,
+ 423, 424, 264, 265, -1, 267, -1, -1, 270, 271,
+ -1, -1, -1, 275, 276, 277, 422, 279, -1, -1,
+ 265, -1, 267, 285, -1, 270, 288, -1, -1, -1,
+ 275, -1, -1, 295, 279, -1, -1, -1, 300, -1,
+ 302, 303, 304, 288, -1, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, 316, 300, 318, 319, 320, 304,
+ 322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
+ 332, 316, 334, 318, -1, -1, -1, 322, -1, 341,
+ -1, -1, 344, 345, -1, 330, 331, -1, -1, 334,
+ -1, -1, 337, -1, -1, -1, -1, 359, 360, 361,
+ 362, 363, -1, -1, 366, 367, -1, -1, -1, 371,
+ -1, -1, -1, 375, -1, -1, -1, -1, -1, 381,
+ 382, 383, 384, -1, -1, -1, 388, -1, 390, -1,
+ -1, -1, -1, -1, 396, 397, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
- -1, -1, -1, 418, 419, 420, 421, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, 419, 279, -1, -1, 265, -1, 267, 285, -1,
- 270, 288, -1, -1, -1, 275, -1, -1, 295, 279,
- -1, -1, -1, 300, -1, 302, 303, 304, 288, -1,
- -1, -1, -1, -1, -1, 295, -1, -1, -1, 316,
- 300, 318, 319, 320, 304, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, 316, 334, 318, -1,
- -1, -1, 322, -1, 341, -1, -1, 344, 345, -1,
- 330, 331, -1, -1, 334, -1, -1, 337, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, 368, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, -1, -1, -1, -1, -1, 393, 394, -1, -1,
+ -1, -1, -1, -1, -1, 256, -1, -1, -1, 421,
+ 422, 423, 424, 264, 265, -1, 267, -1, -1, 270,
+ 271, -1, -1, -1, 275, 276, 277, 422, 279, -1,
+ -1, -1, -1, -1, 285, -1, -1, 288, -1, -1,
+ -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
+ -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
+ -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
+ 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ 371, -1, -1, -1, 375, -1, -1, -1, -1, -1,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
- -1, 418, 419, 420, 421, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, 419,
- 279, -1, -1, -1, -1, -1, 285, -1, -1, 288,
- -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
- -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
+ 421, 422, 423, 424, 262, -1, 264, 265, -1, 267,
+ -1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
+ -1, 279, -1, -1, -1, -1, -1, 285, -1, -1,
+ 288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
+ 298, -1, 300, -1, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
+ 318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
+ -1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
+ -1, -1, -1, -1, -1, 343, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, 368,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, -1,
- -1, -1, -1, -1, 393, 394, -1, -1, -1, -1,
+ -1, 359, 360, 361, 362, 363, -1, -1, 366, 367,
+ -1, -1, -1, -1, -1, -1, -1, 375, -1, 377,
+ -1, -1, -1, 381, 382, 383, 384, 385, -1, -1,
+ 388, -1, 390, 256, -1, -1, -1, -1, 396, 397,
+ -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
+ -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
+ -1, -1, 285, 421, 422, 288, 424, -1, -1, -1,
+ -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
+ 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
+ -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
+ -1, 334, -1, -1, -1, -1, -1, -1, 341, -1,
+ -1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
+ 363, -1, -1, 366, 367, -1, -1, -1, -1, 372,
+ -1, -1, 375, -1, -1, -1, -1, -1, 381, 382,
+ 383, 384, -1, -1, -1, 388, -1, 390, -1, -1,
+ -1, -1, -1, 396, 397, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 256, -1, 418,
- 419, 420, 421, 262, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, -1, -1, 288,
- -1, -1, -1, -1, -1, -1, 295, -1, -1, 298,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
- -1, -1, -1, -1, 343, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 256, -1, -1, -1, 421, 422,
+ 423, 424, 264, 265, -1, 267, -1, -1, 270, 271,
+ -1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
+ 265, -1, 267, 285, -1, 270, 288, -1, -1, -1,
+ 275, -1, -1, 295, 279, -1, -1, -1, 300, -1,
+ 302, 303, 304, 288, -1, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, 316, 300, 318, 319, -1, 304,
+ 322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
+ 332, 316, 334, 318, -1, -1, -1, 322, -1, 341,
+ -1, -1, 344, 345, -1, 330, 331, -1, -1, 334,
+ -1, -1, 337, -1, -1, -1, -1, 359, 360, 361,
+ 362, 363, -1, -1, 366, 367, -1, -1, -1, -1,
+ 372, -1, -1, 375, -1, -1, -1, -1, -1, 381,
+ 382, 383, 384, -1, -1, -1, 388, -1, 390, -1,
+ -1, -1, -1, -1, 396, 397, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 256, -1, -1, -1, 421,
+ 422, 423, 424, 264, 265, -1, 267, -1, -1, 270,
+ 271, -1, -1, -1, 275, 276, 277, 422, 279, -1,
+ -1, 265, -1, 267, 285, -1, 270, 288, -1, -1,
+ -1, 275, -1, -1, 295, 279, -1, -1, -1, 300,
+ -1, 302, 303, 304, 288, -1, -1, -1, -1, -1,
+ -1, 295, -1, -1, -1, 316, 300, 318, 319, -1,
+ 304, 322, -1, -1, 325, -1, 327, -1, 329, 330,
+ 331, 332, 316, 334, 318, -1, -1, -1, 322, -1,
+ 341, -1, -1, 344, 345, -1, 330, 331, -1, -1,
+ 334, -1, -1, 337, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ -1, -1, -1, -1, 375, -1, -1, -1, -1, -1,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, 374, -1, -1, -1, 378,
- 379, 380, 381, 382, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
+ -1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
+ 421, 422, 423, 424, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, 422, 279,
+ -1, -1, -1, -1, -1, 285, -1, -1, 288, -1,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
+ -1, 341, -1, -1, 344, 345, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, -1, -1, -1, -1, -1, 396, 397, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
+ -1, 421, 422, 423, 424, 262, -1, 264, 265, -1,
267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
+ 277, -1, 279, -1, -1, -1, -1, -1, 285, -1,
+ -1, 288, -1, -1, -1, -1, -1, -1, 295, -1,
+ -1, 298, -1, 300, -1, 302, 303, 304, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
-1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
- -1, -1, -1, -1, 341, -1, -1, 344, 345, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, 369, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, -1, -1, -1, -1, -1, 393, 394, -1, -1,
+ -1, -1, -1, -1, -1, -1, 343, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
- -1, 418, 419, 420, 421, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, 265, -1, 267, 285, -1, 270, 288,
- -1, -1, -1, 275, -1, -1, 295, 279, -1, -1,
- -1, 300, -1, 302, 303, 304, 288, -1, -1, -1,
- -1, -1, -1, 295, -1, -1, -1, 316, 300, 318,
- 319, -1, 304, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, 316, 334, 318, -1, -1, -1,
- 322, -1, 341, -1, -1, 344, 345, -1, 330, 331,
- -1, -1, 334, -1, -1, 337, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- 369, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, -1,
- -1, -1, -1, -1, 393, 394, -1, -1, -1, -1,
+ -1, -1, 359, 360, 361, 362, 363, -1, -1, 366,
+ 367, -1, -1, -1, -1, -1, -1, -1, 375, -1,
+ 377, -1, -1, -1, 381, 382, 383, 384, -1, -1,
+ -1, 388, -1, 390, 256, -1, -1, -1, -1, 396,
+ 397, -1, 264, 265, -1, 267, -1, -1, 270, 271,
+ -1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
+ -1, -1, -1, 285, 421, 422, 288, 424, -1, -1,
+ -1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
+ 302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
+ 322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
+ 332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
+ -1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
+ 362, 363, -1, -1, 366, 367, -1, -1, -1, -1,
+ -1, -1, -1, 375, -1, -1, -1, -1, -1, 381,
+ 382, 383, 384, -1, -1, -1, 388, -1, 390, -1,
+ -1, -1, -1, -1, 396, 397, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 256, -1, -1, -1, 418,
- 419, 420, 421, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, 419, 279, -1,
+ -1, -1, -1, -1, -1, 256, -1, -1, -1, 421,
+ 422, 423, 424, 264, 265, -1, 267, -1, -1, 270,
+ 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
-1, 265, -1, 267, 285, -1, 270, 288, -1, -1,
-1, 275, -1, -1, 295, 279, -1, -1, -1, 300,
-1, 302, 303, 304, 288, -1, -1, -1, -1, -1,
@@ -14220,150 +14792,172 @@ void case_1078()
331, 332, 316, 334, 318, -1, -1, -1, 322, -1,
341, -1, -1, 344, 345, -1, 330, 331, -1, -1,
334, -1, -1, 337, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, -1, -1, -1,
- -1, -1, 393, 394, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 256, -1, -1, -1, 418, 419, 420,
- 421, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, 419, 279, -1, -1, -1,
- -1, -1, 285, -1, -1, 288, -1, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, 341, -1,
- -1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, -1, -1, -1, -1, -1,
- 393, 394, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 256, -1, 418, 419, 420, 421, 262,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, -1, -1, 288, -1, -1, -1, -1,
- -1, -1, 295, -1, -1, 298, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- 343, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, 374, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
- 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, -1, -1, -1,
- -1, -1, 393, 394, -1, -1, -1, -1, -1, -1,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ -1, -1, -1, -1, 375, -1, -1, -1, -1, -1,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, -1, -1, -1, -1, 396, 397, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 256, -1, -1, -1, 418, 419, 420,
- 421, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, 265,
- -1, 267, 285, -1, 270, 288, -1, -1, -1, 275,
- -1, -1, 295, 279, -1, -1, -1, 300, -1, 302,
- 303, 304, 288, -1, -1, -1, -1, -1, -1, 295,
- -1, -1, -1, 316, 300, 318, 319, -1, 304, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- 316, 334, 318, -1, -1, -1, 322, -1, 341, -1,
- -1, 344, 345, -1, 330, 331, -1, -1, 334, -1,
- -1, 337, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, -1, -1, -1, -1, -1,
- 393, 394, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 256, -1, -1, -1, 418, 419, 420, 421, 264,
- 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
- 275, 276, 277, 419, 279, -1, -1, 265, -1, 267,
- 285, -1, 270, 288, -1, -1, -1, 275, -1, -1,
- 295, 279, -1, -1, -1, 300, -1, 302, 303, 304,
- 288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
- -1, 316, 300, 318, 319, -1, 304, 322, -1, -1,
- 325, -1, 327, -1, 329, 330, 331, 332, 316, 334,
- 318, -1, -1, -1, 322, -1, 341, -1, -1, 344,
- 345, -1, 330, 331, -1, -1, 334, -1, -1, 337,
- -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, -1, -1, -1, -1, -1, 393, 394,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
- -1, -1, -1, 418, 419, 420, 421, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, 419, 279, -1, -1, 265, -1, 267, 285, -1,
- 270, 288, -1, -1, -1, 275, -1, -1, 295, 279,
- -1, -1, -1, 300, -1, 302, 303, 304, 288, -1,
- -1, -1, -1, -1, -1, 295, -1, -1, -1, 316,
- 300, 318, 319, -1, 304, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, 316, 334, 318, -1,
- -1, -1, 322, -1, 341, -1, -1, 344, 345, -1,
- 330, 331, -1, -1, 334, -1, -1, 337, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, -1, -1, -1, -1, -1, 393, 394, -1, -1,
+ -1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
+ 421, 422, 423, 424, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, 422, 279,
+ -1, -1, 265, -1, 267, 285, -1, 270, 288, -1,
+ -1, -1, 275, -1, -1, 295, 279, -1, -1, -1,
+ 300, -1, 302, 303, 304, 288, -1, -1, -1, -1,
+ -1, -1, 295, -1, -1, -1, 316, 300, 318, 319,
+ -1, 304, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, 316, 334, 318, -1, -1, -1, 322,
+ -1, 341, -1, -1, 344, 345, -1, 330, 331, -1,
+ -1, 334, -1, -1, 337, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, -1, -1, -1, -1, -1, 396, 397, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 256, -1, -1,
- -1, 418, 419, 420, 421, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, 419,
- 279, -1, -1, -1, -1, -1, 285, -1, -1, 288,
- -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
- -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, 421, 422, 423, 424, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, 422,
+ 279, -1, -1, 265, -1, 267, 285, -1, 270, 288,
+ -1, -1, -1, 275, -1, -1, 295, 279, -1, -1,
+ -1, 300, -1, 302, 303, 304, 288, -1, -1, -1,
+ -1, -1, -1, 295, -1, -1, -1, 316, 300, 318,
+ 319, -1, 304, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, 316, 334, 318, -1, -1, -1,
+ 322, -1, 341, -1, -1, 344, 345, -1, 330, 331,
+ -1, -1, 334, -1, -1, 337, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, -1,
- -1, -1, -1, -1, 393, 394, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
+ -1, -1, 421, 422, 423, 424, 264, 265, -1, 267,
+ -1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
+ 422, 279, -1, -1, -1, -1, -1, 285, -1, -1,
+ 288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
+ -1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
+ 318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
+ -1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
+ -1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 256, -1, 418,
- 419, 420, 421, 262, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, -1, -1, 288,
- -1, -1, -1, -1, -1, -1, 295, -1, -1, 298,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, 359, 360, 361, 362, 363, -1, -1, 366, 367,
+ -1, -1, -1, -1, -1, -1, -1, 375, -1, -1,
+ -1, -1, -1, 381, 382, 383, 384, -1, -1, -1,
+ 388, -1, 390, -1, -1, -1, -1, -1, 396, 397,
+ -1, -1, -1, -1, 285, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 298, -1, -1,
+ -1, 256, -1, 421, 422, 423, 424, 262, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, 327, -1, -1, -1,
+ 285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
+ 295, -1, -1, 298, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
+ 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
+ 391, 392, 393, -1, -1, 396, 397, 398, 399, 400,
+ 401, 402, 403, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, 377, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, 261, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ 284, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, 297, 334, -1, -1, -1, 302, -1,
+ -1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
+ -1, 315, -1, 317, -1, -1, -1, 321, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, 333,
+ -1, -1, 336, -1, 338, 375, -1, 377, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, 362, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, 372, 373,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, 261, -1, 263, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, 374, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
+ -1, 316, -1, 318, 319, 284, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, 297, 334,
+ -1, -1, -1, 302, -1, -1, -1, -1, 307, -1,
+ 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
+ -1, -1, 321, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, 333, -1, -1, 336, -1, 338,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, 362, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, 372, 373, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, 261, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ 284, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, 297, 334, -1, -1, -1, 302, -1,
+ -1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
+ -1, 315, -1, 317, -1, -1, -1, 321, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, 333,
+ -1, -1, 336, -1, 338, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, 362, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, 372, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, 261, -1, 263, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, 284, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, 297, 334,
+ -1, -1, -1, 302, -1, -1, -1, -1, 307, -1,
+ 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
+ -1, -1, 321, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, 333, -1, -1, 336, -1, 338,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, 362, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, 372, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, 261, -1, 263,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ 284, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, 297, 334, -1, -1, -1, 302, -1,
+ -1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
+ -1, 315, -1, 317, -1, -1, -1, 321, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, 333,
+ -1, -1, 336, -1, 338, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, 362, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, 261, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, 374, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, 316, -1, 318, 319, 284, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, 297, 334,
+ -1, -1, 301, 302, -1, -1, -1, -1, 307, -1,
+ 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
+ -1, -1, 321, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, 333, -1, -1, 336, -1, 338,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, 362, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, 261, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ 284, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, 297, 334, -1, -1, -1, 302, -1,
+ -1, -1, -1, 307, -1, 309, 310, 311, 312, -1,
+ -1, -1, -1, 317, -1, -1, -1, 321, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, 333,
+ -1, -1, 336, -1, 338, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, 362, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14371,65 +14965,53 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, 256, -1, -1,
- -1, -1, 393, 394, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, 418, 419, 288,
- 421, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14437,65 +15019,53 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, 256, -1, -1,
- -1, -1, 393, 394, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, 418, 419, 288,
- 421, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14503,65 +15073,53 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, 256, -1, -1,
- -1, -1, 393, 394, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, 418, 419, 288,
- 421, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14569,65 +15127,53 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, 256, -1, -1,
- -1, -1, 393, 394, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, 418, 419, 288,
- 421, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14635,65 +15181,53 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, 256, -1, -1, -1, -1,
- 393, 394, -1, 264, 265, -1, 267, -1, -1, 270,
- 271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- -1, -1, -1, -1, 285, 418, 419, 288, 421, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
- -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
- -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
- 331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, 256, -1, -1,
- -1, -1, 393, 394, -1, 264, 265, -1, 267, -1,
- -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, -1, -1, -1, -1, 285, 418, 419, 288,
- 421, -1, -1, -1, -1, -1, 295, -1, -1, -1,
- -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
- 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
- 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
+ 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
+ 275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
+ 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
+ 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, -1,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, 256,
- -1, -1, -1, -1, 393, 394, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, -1, -1, -1, -1, 285, 418,
- 419, 288, 421, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, 256, -1, -1, -1, -1, 393, 394, -1, 264,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, 381, 382, 383, 384, -1, -1, -1, 388, -1,
+ 390, 256, -1, -1, -1, -1, 396, 397, -1, 264,
265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
275, 276, 277, -1, 279, -1, -1, -1, -1, -1,
- 285, 418, 419, 288, 421, -1, -1, -1, -1, -1,
+ 285, 421, 422, 288, 424, -1, -1, -1, -1, -1,
295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
@@ -14701,159 +15235,166 @@ void case_1078()
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, 256, -1, -1, -1, -1, 393, 394,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, 418, 419, 288, 421, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, -1, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, -1, -1, -1, -1, -1,
- 393, 394, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 256, -1, -1, -1, -1, 261, -1,
- -1, -1, 265, -1, 267, 418, 419, 270, 421, 272,
- 273, -1, 275, -1, 277, -1, 279, -1, 281, 282,
- 283, 284, -1, -1, 287, 288, -1, -1, -1, -1,
- 293, -1, 295, 296, 297, -1, -1, 300, -1, 302,
- -1, 304, -1, -1, 307, -1, 309, 310, 311, 312,
- -1, -1, -1, 316, 317, 318, -1, -1, 321, 322,
- 323, -1, -1, -1, -1, -1, -1, 330, 331, -1,
- 333, 334, 256, 336, 337, 338, -1, -1, -1, 342,
- 264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
- -1, 275, 276, 277, -1, 279, -1, -1, -1, 362,
- -1, 285, -1, -1, 288, 368, 369, 370, -1, -1,
- -1, 295, -1, -1, -1, 378, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
- -1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
- 334, -1, -1, 337, -1, -1, 419, -1, -1, -1,
+ -1, 366, 367, -1, -1, -1, -1, -1, -1, -1,
+ 375, -1, -1, -1, -1, -1, 381, 382, 383, 384,
+ -1, -1, -1, 388, -1, 390, 256, -1, -1, -1,
+ -1, 396, 397, -1, 264, 265, -1, 267, -1, -1,
+ 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
+ -1, -1, -1, -1, -1, 285, 421, 422, 288, 424,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, -1, 302, 303, 304, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 316, -1, 318, 319,
+ -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
+ 330, 331, 332, -1, 334, -1, -1, 337, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
- -1, -1, -1, 256, -1, -1, -1, -1, 372, -1,
- 262, 264, 265, -1, 267, 379, 380, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
- -1, -1, 285, -1, -1, 288, -1, -1, -1, 261,
- -1, 263, 295, -1, -1, -1, 298, 300, -1, 302,
- 303, 304, -1, -1, 418, 419, -1, -1, -1, -1,
- -1, -1, 284, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, 297, 329, 330, 331, 332,
- 302, 334, -1, -1, -1, 307, -1, 309, 310, 311,
- 312, -1, -1, 315, -1, 317, -1, -1, -1, 321,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, 333, 364, -1, 336, -1, 338, -1, -1, 372,
- 372, 373, 374, 375, 376, -1, -1, 379, 380, -1,
- -1, 383, 384, 385, 386, 387, 388, 389, 390, 391,
- 362, 393, 394, 395, 396, 397, 398, 399, 400, 401,
- 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
- 412, 413, 414, -1, -1, 418, 419, -1, -1, 421,
- -1, 261, 424, 263, -1, 265, -1, 267, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
+ 360, 361, 362, 363, -1, -1, 366, 367, -1, -1,
+ -1, -1, -1, -1, -1, 375, -1, -1, -1, -1,
+ -1, -1, 382, 383, -1, -1, 256, -1, -1, -1,
+ 390, 261, -1, -1, -1, 265, -1, 267, -1, -1,
270, -1, 272, 273, -1, 275, -1, 277, -1, 279,
-1, 281, 282, 283, 284, -1, -1, 287, 288, -1,
- -1, -1, -1, 293, 294, 295, 296, 297, -1, -1,
- 300, -1, 302, -1, 304, -1, 306, 307, -1, 309,
- 310, 311, 312, -1, -1, 315, 316, 317, 318, -1,
- -1, 321, 322, 323, -1, -1, -1, -1, -1, -1,
- 330, 331, -1, 333, 334, -1, 336, 337, 338, -1,
- -1, -1, 342, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 362, -1, -1, 365, 366, 261, -1, -1,
- -1, 265, -1, 267, -1, -1, 270, -1, 272, 273,
- -1, 275, -1, 277, -1, 279, -1, 281, 282, 283,
- 284, -1, -1, 287, 288, -1, -1, -1, -1, 293,
- -1, 295, 296, 297, -1, -1, 300, -1, 302, -1,
- 304, -1, -1, 307, -1, 309, 310, 311, 312, 419,
- -1, -1, 316, 317, 318, -1, -1, 321, 322, 323,
- -1, -1, -1, -1, -1, -1, 330, 331, -1, 333,
- 334, -1, 336, 337, 338, -1, -1, -1, 342, -1,
- -1, 261, -1, -1, -1, 265, -1, 267, -1, -1,
- 270, -1, 272, 273, -1, 275, -1, 277, 362, 279,
- -1, 281, 282, 283, 284, 369, -1, 287, 288, -1,
- -1, -1, -1, 293, 378, 295, 296, 297, -1, -1,
+ -1, 421, 422, 293, 424, 295, 296, 297, -1, -1,
300, -1, 302, -1, 304, -1, -1, 307, -1, 309,
310, 311, 312, -1, -1, -1, 316, 317, 318, -1,
-1, 321, 322, 323, -1, -1, -1, -1, -1, -1,
- 330, 331, -1, 333, 334, 419, 336, 337, 338, -1,
- -1, -1, 342, -1, -1, 261, -1, -1, -1, 265,
+ 330, 331, -1, 333, 334, -1, 336, 337, 338, -1,
+ -1, -1, 342, -1, -1, 256, -1, -1, -1, -1,
+ -1, -1, 262, 264, 265, -1, 267, -1, -1, 270,
+ 271, -1, 362, -1, 275, 276, 277, -1, 279, -1,
+ -1, 371, 372, 373, 285, -1, -1, 288, -1, -1,
+ -1, 381, -1, -1, 295, -1, -1, -1, 298, 300,
+ -1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
+ -1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
+ 331, 332, 422, 334, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, 364, 366, 367, -1, -1, -1,
+ -1, -1, -1, -1, 375, 375, 376, 377, 378, 379,
+ -1, -1, 382, 383, -1, -1, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, -1, 396, 397, 398, 399,
+ 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
+ 410, 411, 412, 413, 414, 415, 416, 417, -1, -1,
+ 421, 422, -1, -1, 424, -1, 261, 427, 263, -1,
+ 265, -1, 267, -1, -1, 270, -1, 272, 273, -1,
+ 275, -1, 277, -1, 279, -1, 281, 282, 283, 284,
+ -1, -1, 287, 288, -1, -1, -1, -1, 293, 294,
+ 295, 296, 297, -1, -1, 300, -1, 302, -1, 304,
+ -1, 306, 307, -1, 309, 310, 311, 312, -1, -1,
+ 315, 316, 317, 318, -1, -1, 321, 322, 323, -1,
+ -1, -1, -1, -1, -1, 330, 331, -1, 333, 334,
+ -1, 336, 337, 338, -1, -1, -1, 342, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 362, -1, -1,
+ -1, -1, -1, 368, 369, 261, -1, -1, -1, 265,
-1, 267, -1, -1, 270, -1, 272, 273, -1, 275,
- -1, 277, 362, 279, -1, 281, 282, 283, 284, 369,
- -1, 287, 288, -1, -1, -1, -1, 293, 378, 295,
+ -1, 277, -1, 279, -1, 281, 282, 283, 284, -1,
+ -1, 287, 288, -1, -1, -1, -1, 293, -1, 295,
296, 297, -1, -1, 300, -1, 302, -1, 304, -1,
- -1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
+ -1, 307, -1, 309, 310, 311, 312, 422, -1, -1,
316, 317, 318, -1, -1, 321, 322, 323, -1, -1,
- -1, -1, -1, -1, 330, 331, -1, 333, 334, 419,
- 336, 337, 338, -1, -1, -1, 342, -1, -1, 261,
+ -1, -1, -1, -1, 330, 331, -1, 333, 334, -1,
+ 336, 337, 338, -1, -1, -1, 342, 261, -1, -1,
+ -1, 265, -1, 267, -1, -1, 270, -1, 272, 273,
+ -1, 275, -1, 277, -1, 279, 362, 281, 282, 283,
+ 284, -1, -1, 287, 288, -1, 372, -1, -1, 293,
+ -1, 295, 296, 297, -1, 381, 300, -1, 302, -1,
+ 304, -1, -1, 307, -1, 309, 310, 311, 312, -1,
+ -1, -1, 316, 317, 318, -1, -1, 321, 322, 323,
+ -1, -1, -1, -1, -1, -1, 330, 331, -1, 333,
+ 334, -1, 336, 337, 338, -1, 422, -1, 342, 261,
-1, -1, -1, 265, -1, 267, -1, -1, 270, -1,
- 272, 273, -1, 275, -1, 277, 362, 279, -1, 281,
- 282, 283, 284, -1, -1, 287, 288, -1, -1, -1,
- -1, 293, 378, 295, 296, 297, -1, -1, 300, -1,
+ 272, 273, -1, 275, -1, 277, -1, 279, 362, 281,
+ 282, 283, 284, -1, -1, 287, 288, -1, 372, -1,
+ -1, 293, -1, 295, 296, 297, -1, 381, 300, -1,
302, -1, 304, -1, -1, 307, -1, 309, 310, 311,
312, -1, -1, -1, 316, 317, 318, -1, -1, 321,
322, 323, -1, -1, -1, -1, -1, -1, 330, 331,
- -1, 333, 334, 419, 336, 337, 338, -1, -1, -1,
- 342, -1, -1, 261, -1, -1, -1, 265, -1, 267,
+ -1, 333, 334, -1, 336, 337, 338, -1, 422, -1,
+ 342, 261, -1, -1, -1, 265, -1, 267, -1, -1,
+ 270, -1, 272, 273, -1, 275, -1, 277, -1, 279,
+ 362, 281, 282, 283, 284, -1, -1, 287, 288, -1,
+ -1, -1, -1, 293, -1, 295, 296, 297, -1, 381,
+ 300, -1, 302, -1, 304, -1, -1, 307, -1, 309,
+ 310, 311, 312, -1, -1, -1, 316, 317, 318, -1,
+ -1, 321, 322, 323, -1, -1, -1, -1, -1, -1,
+ 330, 331, -1, 333, 334, -1, 336, 337, 338, -1,
+ 422, -1, 342, 261, -1, -1, -1, 265, -1, 267,
-1, -1, 270, -1, 272, 273, -1, 275, -1, 277,
- 362, 279, -1, 281, 282, 283, 284, 369, -1, 287,
- 288, -1, -1, -1, -1, 293, -1, 295, 296, 297,
+ -1, 279, 362, 281, 282, 283, 284, -1, -1, 287,
+ 288, -1, 372, -1, -1, 293, -1, 295, 296, 297,
-1, -1, 300, -1, 302, 261, 304, -1, -1, 307,
-1, 309, 310, 311, 312, -1, -1, -1, 316, 317,
318, -1, -1, 321, 322, 323, -1, -1, 284, -1,
- -1, -1, 330, 331, -1, 333, 334, 419, 336, 337,
- 338, 297, -1, -1, 342, -1, 302, -1, -1, 305,
+ -1, -1, 330, 331, -1, 333, 334, -1, 336, 337,
+ 338, 297, 422, 261, 342, -1, 302, -1, -1, 305,
-1, 307, -1, 309, 310, 311, 312, -1, -1, -1,
- -1, 317, -1, -1, 362, 321, -1, -1, -1, 325,
- -1, 369, -1, -1, -1, -1, -1, 333, -1, -1,
- 336, -1, 338, -1, 264, 265, -1, 267, -1, -1,
- 270, 271, -1, -1, -1, 275, 276, 277, -1, 279,
- -1, 357, -1, -1, -1, 285, 362, -1, 288, -1,
- -1, -1, -1, 369, 370, 295, 372, -1, 374, -1,
- 300, 419, 302, 303, 304, -1, 306, -1, -1, -1,
- -1, 387, -1, 313, -1, -1, 316, -1, 318, 319,
- -1, -1, 322, -1, -1, 325, -1, 327, -1, 329,
- 330, 331, 332, -1, 334, -1, -1, -1, -1, -1,
- -1, 341, -1, 419, 344, 345, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 359,
- 360, 361, 362, 363, -1, -1, -1, -1, -1, -1,
- -1, -1, 372, 373, -1, 375, -1, -1, 378, 379,
- 380, 381, -1, -1, -1, 385, -1, 387, -1, -1,
- -1, -1, -1, 393, 394, -1, -1, -1, -1, -1,
- -1, 264, 265, -1, 267, -1, -1, 270, 271, -1,
- -1, -1, 275, 276, 277, -1, 279, -1, 418, 419,
- 420, 421, 285, -1, -1, 288, -1, -1, -1, -1,
- -1, -1, 295, -1, -1, -1, -1, 300, -1, 302,
- 303, 304, -1, 306, -1, -1, -1, -1, -1, -1,
- 313, -1, -1, 316, -1, 318, 319, -1, -1, 322,
- -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
- -1, 334, -1, -1, -1, -1, -1, -1, 341, -1,
- -1, 344, 345, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
- 363, -1, -1, -1, -1, -1, -1, -1, -1, 372,
- -1, -1, 375, -1, -1, 378, 379, 380, 381, -1,
- -1, -1, 385, -1, 387, -1, -1, -1, -1, -1,
- 393, 394, -1, -1, -1, -1, -1, -1, 264, 265,
- -1, 267, -1, -1, 270, 271, -1, -1, -1, 275,
- 276, 277, -1, 279, -1, 418, 419, 420, 421, 285,
- -1, -1, 288, -1, -1, -1, -1, -1, -1, 295,
- -1, -1, -1, -1, 300, -1, 302, 303, 304, -1,
+ -1, 317, -1, -1, 362, 321, 284, -1, -1, 325,
+ -1, -1, -1, -1, 372, -1, -1, 333, -1, 297,
+ 336, -1, 338, -1, 302, -1, -1, -1, -1, 307,
+ -1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
+ -1, 357, -1, 321, -1, -1, 362, 325, -1, -1,
+ -1, -1, -1, -1, -1, 333, 372, 373, 336, 375,
+ 338, 377, -1, -1, 422, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, 390, -1, 275, 276, 277, -1,
+ 279, -1, -1, -1, 362, -1, 285, -1, -1, 288,
+ -1, -1, -1, -1, 372, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, 422, 306, -1, -1,
+ -1, -1, -1, -1, 313, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, 422, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, 376, -1, 378,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, 306, -1, -1,
+ -1, -1, -1, -1, 313, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, 378,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, 337, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 316, -1, 318, 319, -1, -1, 322, -1, -1, 325,
- -1, 327, -1, 329, 330, 331, 332, -1, 334, -1,
- -1, 337, -1, -1, -1, 341, -1, -1, 344, 345,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, 337, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 359, 360, 361, 362, 363, -1, -1,
- -1, -1, -1, -1, -1, -1, 372, -1, -1, -1,
- -1, -1, 378, 379, 380, 381, -1, -1, -1, 385,
- -1, 387, -1, -1, -1, -1, -1, 393, 394, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
-1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
-1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
- 279, -1, 418, 419, 420, 421, 285, -1, -1, 288,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
-1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
-1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
@@ -14861,233 +15402,242 @@ void case_1078()
329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
-1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 359, 360, 361, 362, 363, -1, -1, -1, -1, 368,
- -1, -1, -1, 372, -1, -1, -1, -1, -1, 378,
- 379, 380, 381, -1, -1, -1, 385, -1, 387, -1,
- -1, -1, -1, -1, 393, 394, -1, -1, -1, -1,
- -1, -1, 264, 265, -1, 267, -1, -1, 270, 271,
- -1, -1, -1, 275, 276, 277, -1, 279, -1, 418,
- 419, 420, 421, 285, -1, -1, 288, -1, -1, -1,
- -1, -1, -1, 295, -1, -1, -1, -1, 300, -1,
- 302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
- 322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
- 332, -1, 334, -1, -1, -1, -1, -1, -1, 341,
- -1, -1, 344, 345, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
- 362, 363, -1, -1, -1, -1, 368, -1, -1, -1,
- 372, -1, -1, -1, -1, -1, 378, 379, 380, 381,
- -1, -1, -1, 385, -1, 387, -1, -1, -1, -1,
- -1, 393, 394, -1, -1, -1, -1, -1, -1, 264,
- 265, -1, 267, -1, -1, 270, 271, -1, -1, -1,
- 275, 276, 277, -1, 279, -1, 418, 419, 420, 421,
- 285, -1, -1, 288, -1, -1, -1, -1, -1, -1,
- 295, -1, -1, -1, -1, 300, -1, 302, 303, 304,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, 371, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, 371, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
+ -1, -1, 341, -1, -1, 344, 345, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, -1, -1, -1, -1, 396, 397, -1,
+ -1, -1, -1, -1, -1, 264, 265, -1, 267, -1,
+ -1, 270, 271, -1, -1, -1, 275, 276, 277, -1,
+ 279, -1, 421, 422, 423, 424, 285, -1, -1, 288,
+ -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
+ -1, 300, -1, 302, 303, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 316, -1, 318,
+ 319, -1, -1, 322, -1, -1, 325, -1, 327, -1,
+ 329, 330, 331, 332, -1, 334, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 316, -1, 318, 319, -1, -1, 322, -1, -1,
- 325, -1, 327, -1, 329, 330, 331, 332, -1, 334,
- -1, -1, -1, -1, -1, -1, 341, -1, -1, 344,
- 345, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 359, 360, 361, 362, 363, -1,
- -1, -1, -1, -1, -1, -1, -1, 372, -1, -1,
- -1, -1, -1, 378, 379, 380, 381, -1, -1, -1,
- 385, -1, 387, -1, -1, -1, -1, -1, 393, 394,
- -1, -1, -1, -1, -1, -1, 264, 265, -1, 267,
- -1, -1, 270, 271, -1, -1, -1, 275, 276, 277,
- -1, 279, -1, 418, 419, 420, 421, 285, -1, -1,
- 288, -1, -1, -1, -1, -1, -1, 295, -1, -1,
- -1, -1, 300, -1, 302, 303, 304, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
- 318, 319, -1, -1, 322, -1, -1, 325, -1, 327,
- -1, 329, 330, 331, 332, -1, 334, -1, -1, -1,
- -1, -1, -1, 341, -1, -1, 344, 345, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 359, 360, 361, 362, 363, -1, -1, -1, -1,
- -1, -1, -1, -1, 372, -1, -1, -1, -1, -1,
- 378, 379, 380, 381, -1, -1, -1, 385, -1, 387,
- -1, -1, -1, -1, -1, 393, 394, -1, -1, -1,
- -1, -1, -1, 264, 265, -1, 267, -1, -1, 270,
+ 359, 360, 361, 362, 363, -1, -1, 366, 367, -1,
+ -1, -1, -1, -1, -1, -1, 375, -1, -1, -1,
+ -1, -1, 381, 382, 383, 384, -1, -1, -1, 388,
+ -1, 390, -1, 264, 265, -1, 267, 396, 397, 270,
271, -1, -1, -1, 275, 276, 277, -1, 279, -1,
- 418, 419, 420, 421, 285, -1, -1, 288, -1, -1,
- -1, -1, -1, -1, 295, -1, -1, -1, -1, 300,
+ -1, -1, -1, -1, 285, -1, -1, 288, -1, -1,
+ -1, -1, 421, 422, 295, 424, -1, -1, -1, 300,
-1, 302, 303, 304, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 316, -1, 318, 319, -1,
-1, 322, -1, -1, 325, -1, 327, -1, 329, 330,
331, 332, -1, 334, -1, -1, -1, -1, -1, -1,
- 341, -1, -1, 344, 345, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
- 361, 362, 363, -1, -1, -1, -1, -1, -1, -1,
- -1, 372, -1, -1, -1, -1, -1, 378, 379, 380,
- 381, -1, -1, -1, 385, -1, 387, -1, -1, -1,
- -1, -1, 393, 394, -1, -1, -1, -1, -1, -1,
- 264, 265, -1, 267, -1, -1, 270, 271, -1, -1,
- -1, 275, 276, 277, -1, 279, -1, 418, 419, 420,
- 421, 285, -1, -1, 288, -1, -1, -1, -1, -1,
- -1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
- -1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
- 334, -1, -1, -1, -1, -1, -1, 341, -1, -1,
- 344, 345, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
- -1, -1, -1, -1, -1, -1, -1, -1, 372, -1,
- -1, -1, -1, -1, 378, 379, 380, 381, -1, -1,
- -1, 385, -1, 387, -1, -1, -1, -1, -1, 393,
- 394, -1, -1, -1, -1, -1, -1, 264, 265, -1,
- 267, -1, -1, 270, 271, -1, -1, -1, 275, 276,
- 277, -1, 279, -1, 418, 419, 420, 421, 285, -1,
- -1, 288, -1, -1, -1, -1, -1, -1, 295, -1,
- -1, -1, -1, 300, -1, 302, 303, 304, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 316,
- -1, 318, 319, -1, -1, 322, -1, -1, 325, -1,
- 327, -1, 329, 330, 331, 332, -1, 334, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, 360, 361, 362, 363, -1, -1, -1,
- -1, -1, -1, -1, -1, 372, -1, -1, -1, -1,
- -1, 378, 379, 380, 381, -1, -1, -1, 385, -1,
- 387, -1, 264, 265, -1, 267, 393, 394, 270, 271,
- -1, -1, -1, 275, 276, 277, -1, 279, -1, -1,
- -1, -1, -1, 285, -1, -1, 288, -1, -1, -1,
- -1, 418, 419, 295, 421, -1, -1, -1, 300, -1,
- 302, 303, 304, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 316, -1, 318, 319, -1, -1,
- 322, -1, -1, 325, -1, 327, -1, 329, 330, 331,
- 332, -1, 334, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 359, 360, 361,
- 362, 363, -1, -1, -1, -1, -1, -1, -1, -1,
- 372, -1, -1, -1, -1, -1, 378, 379, 380, 381,
- -1, -1, -1, 385, -1, 387, -1, -1, -1, -1,
- -1, 393, 394, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 359, 360,
+ 361, 362, 363, -1, -1, 366, 367, -1, -1, -1,
+ -1, -1, -1, -1, 375, -1, -1, -1, -1, -1,
+ 381, 382, 383, 384, -1, -1, -1, 388, -1, 390,
+ -1, 264, 265, -1, 267, 396, 397, 270, 271, -1,
+ -1, -1, 275, 276, 277, -1, 279, -1, -1, -1,
+ -1, -1, 285, -1, -1, 288, -1, -1, -1, -1,
+ 421, 422, 295, 424, -1, -1, -1, 300, -1, 302,
+ 303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 316, -1, 318, 319, -1, -1, 322,
+ -1, -1, 325, -1, 327, -1, 329, 330, 331, 332,
+ -1, 334, -1, -1, 337, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 263, -1, 265, -1, 267, 418, 419, 270, 421,
- 272, 273, -1, 275, -1, 277, -1, 279, -1, 281,
- 282, 283, -1, -1, -1, 287, 288, -1, -1, -1,
- -1, 293, -1, 295, 296, -1, -1, -1, 300, -1,
- -1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 315, 316, -1, 318, -1, -1, -1,
- 322, 323, -1, -1, -1, -1, -1, -1, 330, 331,
- 264, 265, 334, 267, -1, 337, 270, 271, -1, -1,
- 342, 275, 276, 277, -1, 279, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 359, 360, 361, 362,
+ 363, -1, -1, 366, 367, -1, -1, -1, -1, -1,
+ 264, 265, 375, 267, -1, -1, 270, 271, -1, 382,
+ 383, 275, 276, 277, -1, 279, -1, 390, -1, -1,
-1, 285, -1, -1, 288, -1, -1, -1, -1, -1,
- -1, 295, -1, 365, 366, -1, 300, -1, 302, 303,
- 304, -1, -1, -1, -1, -1, 378, -1, -1, -1,
+ -1, 295, -1, 261, -1, -1, 300, -1, 302, 303,
+ 304, -1, -1, -1, -1, -1, -1, -1, 421, 422,
+ -1, 424, 316, -1, 318, 319, 284, -1, 322, -1,
+ -1, 325, -1, 327, -1, 329, 330, 331, 332, 297,
+ 334, -1, -1, 337, 302, -1, -1, -1, -1, 307,
+ -1, 309, 310, 311, 312, -1, -1, -1, -1, 317,
+ -1, -1, -1, 321, -1, 359, 360, 361, 362, 363,
+ -1, -1, 366, 367, -1, 333, -1, -1, 336, -1,
+ 338, 375, -1, 263, -1, 265, -1, 267, 382, 383,
+ 270, -1, 272, 273, -1, 275, 390, 277, -1, 279,
+ -1, 281, 282, 283, 362, -1, -1, 287, 288, -1,
+ 368, 369, -1, 293, 372, 295, 296, -1, -1, -1,
+ 300, -1, -1, -1, 304, -1, -1, 421, 422, -1,
+ 424, -1, -1, -1, -1, 315, 316, -1, 318, -1,
+ -1, -1, 322, 323, -1, -1, -1, -1, -1, -1,
+ 330, 331, -1, -1, 334, -1, -1, 337, -1, -1,
+ 264, 265, 342, 267, -1, -1, 270, 271, -1, -1,
+ -1, 275, 276, 277, -1, 279, -1, -1, -1, -1,
+ -1, 285, -1, -1, 288, -1, -1, -1, 368, 369,
+ -1, 295, -1, -1, -1, -1, 300, -1, 302, 303,
+ 304, 381, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 316, -1, 318, 319, -1, -1, 322, -1,
-1, 325, -1, 327, -1, 329, 330, 331, 332, -1,
334, -1, -1, 337, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 419, -1, -1,
+ -1, -1, 422, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 359, 360, 361, 362, 363,
- -1, -1, -1, -1, -1, 265, -1, 267, 372, -1,
- 270, -1, 272, 273, -1, 275, -1, 277, -1, 279,
- -1, 281, 282, 283, -1, -1, -1, 287, 288, -1,
- -1, -1, -1, 293, -1, 295, 296, -1, -1, -1,
- 300, -1, -1, -1, 304, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 418, 419, 316, -1, 318, -1,
- -1, -1, 322, 323, -1, -1, -1, -1, -1, -1,
- 330, 331, -1, 265, 334, 267, -1, 337, 270, -1,
- -1, 273, 342, 275, -1, 277, -1, 279, -1, 281,
- 282, 283, -1, -1, -1, 287, 288, -1, -1, -1,
- -1, 293, -1, 295, -1, 265, -1, 267, 300, -1,
- 270, -1, 304, -1, -1, 275, -1, -1, 378, 279,
- -1, -1, -1, -1, 316, -1, 318, -1, 288, -1,
- 322, -1, -1, -1, -1, 295, -1, -1, 330, 331,
- 300, -1, 334, -1, 304, 337, 306, -1, 308, -1,
- 342, -1, -1, 313, -1, -1, 316, -1, 318, 419,
- -1, -1, 322, -1, -1, 325, -1, -1, -1, -1,
- 330, 331, -1, 265, 334, 267, -1, 337, 270, -1,
- -1, -1, -1, 275, -1, -1, 378, 279, -1, -1,
+ -1, -1, 366, 367, -1, -1, -1, -1, 265, -1,
+ 267, 375, -1, 270, -1, 272, 273, -1, 275, -1,
+ 277, -1, 279, -1, 281, 282, 283, -1, -1, -1,
+ 287, 288, -1, -1, -1, -1, 293, -1, 295, 296,
+ -1, -1, -1, 300, -1, -1, -1, 304, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 421, 422, 316,
+ -1, 318, -1, -1, -1, 322, 323, -1, -1, -1,
+ -1, -1, -1, 330, 331, -1, 265, 334, 267, -1,
+ 337, 270, -1, 272, 273, 342, 275, -1, 277, -1,
+ 279, -1, 281, 282, 283, -1, -1, -1, 287, 288,
+ -1, -1, -1, -1, 293, -1, 295, 296, -1, -1,
+ -1, 300, -1, -1, -1, 304, -1, -1, -1, -1,
+ -1, -1, -1, -1, 381, -1, -1, 316, -1, 318,
+ -1, -1, -1, 322, 323, -1, -1, -1, -1, -1,
+ -1, 330, 331, -1, 265, 334, 267, -1, 337, 270,
+ -1, -1, 273, 342, 275, -1, 277, -1, 279, -1,
+ 281, 282, 283, -1, -1, 422, 287, 288, -1, -1,
+ -1, -1, 293, -1, 295, -1, -1, -1, -1, 300,
+ -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 316, -1, 318, -1, -1,
+ -1, 322, -1, -1, -1, -1, -1, -1, -1, 330,
+ 331, -1, 265, 334, 267, -1, 337, 270, -1, -1,
+ 273, 342, 275, -1, 277, -1, 279, -1, 281, 282,
+ 283, -1, -1, 422, 287, 288, -1, -1, -1, -1,
+ 293, -1, 295, -1, -1, -1, -1, 300, -1, -1,
+ -1, 304, 265, -1, 267, -1, -1, 270, -1, -1,
+ 381, -1, 275, 316, -1, 318, 279, -1, -1, 322,
+ -1, -1, -1, -1, -1, 288, -1, 330, 331, -1,
+ -1, 334, 295, -1, 337, -1, -1, 300, -1, 342,
+ -1, 304, 265, 306, 267, 308, -1, 270, -1, -1,
+ 313, 422, 275, 316, -1, 318, 279, -1, -1, 322,
+ -1, -1, 325, -1, -1, 288, -1, 330, 331, -1,
+ -1, 334, 295, -1, 337, -1, -1, 300, -1, -1,
+ -1, 304, -1, 306, -1, 308, -1, -1, -1, -1,
+ 313, -1, -1, 316, -1, 318, -1, -1, -1, 322,
+ -1, -1, 325, -1, -1, -1, -1, 330, 331, -1,
+ -1, 334, -1, 376, 337, 265, -1, 267, -1, 422,
+ 270, -1, -1, -1, -1, 275, -1, -1, -1, 279,
+ -1, -1, -1, -1, -1, -1, -1, -1, 288, -1,
+ -1, -1, -1, -1, -1, 295, -1, -1, -1, -1,
+ 300, 374, -1, -1, 304, 265, 306, 267, -1, 422,
+ 270, -1, -1, 313, -1, 275, 316, -1, 318, 279,
+ -1, -1, 322, -1, -1, 325, -1, -1, 288, -1,
+ 330, 331, -1, -1, 334, 295, -1, 337, -1, -1,
+ 300, -1, -1, -1, 304, 265, 306, 267, 308, 422,
+ 270, -1, -1, 313, -1, 275, 316, -1, 318, 279,
+ -1, -1, 322, 363, -1, 325, -1, -1, 288, -1,
+ 330, 331, -1, -1, 334, 295, -1, 337, -1, -1,
+ 300, -1, -1, -1, 304, 265, 306, 267, 308, -1,
+ 270, -1, -1, 313, -1, 275, 316, -1, 318, 279,
+ -1, -1, 322, 283, -1, 325, -1, -1, 288, -1,
+ 330, 331, -1, 293, 334, 295, -1, 337, -1, -1,
+ 300, -1, 422, -1, 304, 305, -1, -1, -1, 265,
+ -1, 267, -1, -1, 270, -1, 316, -1, 318, 275,
+ -1, -1, 322, 279, -1, -1, -1, -1, -1, -1,
+ 330, 331, 288, 265, 334, 267, -1, 337, 270, 295,
+ 272, -1, 422, 275, 300, -1, -1, 279, 304, -1,
-1, -1, -1, -1, -1, -1, 288, -1, -1, -1,
- -1, -1, -1, 295, -1, 265, -1, 267, 300, -1,
- 270, -1, 304, 373, 306, 275, 308, -1, -1, 279,
- -1, 313, -1, -1, 316, -1, 318, 419, 288, -1,
- 322, -1, -1, 325, -1, 295, -1, -1, 330, 331,
- 300, -1, 334, -1, 304, 337, 306, -1, -1, -1,
- -1, -1, -1, 313, -1, -1, 316, -1, 318, 419,
- -1, -1, 322, -1, -1, 325, -1, -1, -1, -1,
- 330, 331, -1, -1, 334, -1, -1, 337, 265, 371,
- 267, -1, -1, 270, -1, -1, -1, -1, 275, -1,
- -1, -1, 279, -1, -1, -1, -1, -1, -1, -1,
- -1, 288, -1, 363, -1, -1, -1, -1, 295, -1,
- 265, -1, 267, 300, -1, 270, -1, 304, -1, 306,
- 275, 308, -1, -1, 279, -1, 313, 419, -1, 316,
- -1, 318, -1, 288, -1, 322, -1, -1, 325, -1,
- 295, -1, -1, 330, 331, 300, -1, 334, -1, 304,
- 337, 306, -1, 308, -1, 265, -1, 267, 313, 419,
- 270, 316, -1, 318, -1, 275, -1, 322, -1, 279,
- 325, -1, -1, 283, -1, 330, 331, -1, 288, 334,
- -1, -1, 337, 293, -1, 295, -1, 265, -1, 267,
- 300, -1, 270, -1, 304, 305, -1, 275, -1, -1,
- -1, 279, -1, -1, -1, -1, 316, -1, 318, -1,
- 288, -1, 322, -1, -1, -1, -1, 295, -1, -1,
- 330, 331, 300, -1, 334, -1, 304, 337, -1, -1,
- -1, 261, 419, -1, -1, -1, -1, -1, 316, -1,
- 318, -1, 272, -1, 322, -1, -1, 277, -1, -1,
- -1, 281, 330, 331, 284, -1, 334, -1, -1, 337,
- -1, -1, -1, -1, 419, -1, 296, 297, -1, -1,
- -1, 301, 302, -1, -1, -1, -1, 307, -1, 309,
- 310, 311, 312, -1, -1, 363, -1, 317, -1, -1,
- -1, 321, -1, 323, -1, -1, -1, -1, -1, -1,
- -1, -1, 261, 333, -1, 335, 336, -1, 338, 419,
- -1, -1, 342, 272, -1, -1, -1, -1, 277, -1,
- -1, -1, 281, -1, -1, 284, -1, -1, -1, -1,
- -1, -1, 362, -1, -1, -1, -1, 296, 297, 369,
- 370, 419, 301, 302, 261, -1, -1, -1, 307, -1,
- 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
- -1, -1, 321, -1, 323, -1, -1, 284, -1, -1,
- -1, -1, -1, -1, 333, -1, -1, 336, -1, 338,
- 297, -1, 261, 342, 263, 302, -1, -1, -1, -1,
- 307, -1, 309, 310, 311, 312, -1, -1, 315, -1,
- 317, -1, -1, 362, 321, 284, -1, -1, -1, -1,
- 369, 370, -1, -1, -1, -1, 333, -1, 297, 336,
- -1, 338, -1, 302, -1, -1, -1, -1, 307, -1,
- 309, 310, 311, 312, -1, -1, -1, -1, 317, -1,
- -1, -1, 321, -1, -1, 362, -1, -1, -1, -1,
- -1, -1, 369, 370, 333, -1, -1, 336, 261, 338,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 272,
- -1, -1, -1, -1, 277, -1, -1, -1, 281, -1,
- -1, 284, -1, 362, -1, -1, -1, -1, -1, -1,
- 369, 370, -1, 296, 297, -1, -1, -1, 301, 302,
- -1, 261, -1, -1, 307, -1, 309, 310, 311, 312,
- -1, -1, 272, -1, 317, -1, -1, 277, 321, -1,
- 323, 281, -1, -1, 284, -1, -1, -1, -1, -1,
- 333, -1, -1, 336, -1, 338, 296, 297, -1, 342,
- -1, 301, 302, -1, 261, -1, -1, 307, -1, 309,
- 310, 311, 312, -1, -1, -1, -1, 317, -1, 362,
- -1, 321, -1, 323, -1, -1, 369, 284, -1, -1,
- -1, -1, -1, 333, -1, -1, 336, -1, 338, -1,
- 297, -1, 342, -1, 261, 302, -1, -1, -1, -1,
- 307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
- 317, -1, 362, -1, 321, -1, -1, 284, -1, 369,
- -1, -1, -1, -1, -1, -1, 333, -1, -1, 336,
- 297, 338, -1, -1, 261, 302, -1, -1, -1, -1,
+ 316, -1, 318, 295, -1, -1, 322, -1, 300, -1,
+ 302, -1, 304, -1, 330, 331, -1, 261, 334, -1,
+ -1, 337, 422, -1, 316, -1, 318, -1, 272, -1,
+ 322, 323, -1, 277, -1, -1, -1, 281, 330, 331,
+ 284, -1, 334, -1, -1, 337, -1, -1, -1, -1,
+ -1, -1, 296, 297, -1, -1, -1, 301, 302, -1,
+ -1, -1, 422, 307, 261, 309, 310, 311, 312, -1,
+ -1, -1, -1, 317, -1, 272, -1, 321, -1, 323,
+ 277, -1, -1, -1, 281, -1, -1, 284, -1, 333,
+ -1, 335, 336, -1, 338, -1, -1, -1, 342, 296,
+ 297, -1, -1, -1, 301, 302, 422, -1, -1, -1,
+ 307, 261, 309, 310, 311, 312, -1, -1, 362, -1,
+ 317, -1, 272, -1, 321, -1, 323, 277, 372, 373,
+ 422, 281, -1, -1, 284, -1, 333, -1, -1, 336,
+ -1, 338, -1, -1, -1, 342, 296, 297, -1, -1,
+ -1, 301, 302, -1, -1, -1, -1, 307, 261, 309,
+ 310, 311, 312, -1, -1, 362, -1, 317, -1, 272,
+ -1, 321, -1, 323, 277, 372, 373, -1, 281, -1,
+ -1, 284, -1, 333, -1, -1, 336, -1, 338, -1,
+ -1, -1, 342, 296, 297, -1, 261, -1, 301, 302,
+ -1, -1, -1, -1, 307, -1, 309, 310, 311, 312,
+ -1, -1, 362, -1, 317, -1, -1, -1, 321, 284,
+ 323, -1, 372, -1, -1, -1, -1, -1, -1, -1,
+ 333, -1, 297, 336, 261, 338, -1, 302, -1, 342,
+ -1, -1, 307, -1, 309, 310, 311, 312, -1, -1,
+ -1, -1, 317, -1, -1, -1, 321, 284, -1, 362,
+ -1, -1, -1, -1, -1, -1, -1, -1, 333, 372,
+ 297, 336, -1, 338, -1, 302, -1, -1, -1, -1,
307, -1, 309, 310, 311, 312, -1, -1, -1, -1,
- 317, -1, -1, -1, 321, 362, -1, 284, 365, 366,
- -1, -1, 369, -1, -1, -1, 333, -1, -1, 336,
- 297, 338, -1, -1, 261, 302, 263, -1, -1, -1,
- 307, -1, 309, 310, 311, 312, -1, -1, 315, -1,
- 317, -1, -1, -1, 321, 362, -1, 284, 365, 366,
- -1, -1, 369, -1, 261, -1, 333, -1, -1, 336,
- 297, 338, -1, -1, -1, 302, -1, -1, -1, -1,
- 307, -1, 309, 310, 311, 312, -1, 284, -1, -1,
- 317, -1, -1, -1, 321, 362, -1, -1, -1, -1,
- 297, -1, 369, -1, 261, 302, 333, -1, -1, 336,
- 307, 338, 309, 310, 311, 312, -1, -1, -1, -1,
- 317, -1, -1, -1, 321, -1, -1, 284, -1, -1,
- -1, -1, -1, -1, 261, 362, 333, -1, -1, 336,
- 297, 338, 369, -1, 301, 302, -1, -1, -1, -1,
- 307, -1, 309, 310, 311, 312, -1, 284, -1, -1,
- 317, -1, -1, -1, 321, 362, -1, -1, 365, 366,
- 297, -1, -1, -1, -1, 302, 333, -1, -1, 336,
- 307, 338, 309, 310, 311, 312, -1, -1, -1, -1,
- 317, -1, -1, -1, 321, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 362, 333, -1, -1, 336,
+ 317, -1, -1, -1, 321, -1, -1, 362, -1, -1,
+ -1, -1, -1, 368, 369, -1, 333, 372, -1, 336,
-1, 338, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 362,
+ -1, -1, -1, -1, -1, 362, -1, -1, -1, -1,
+ -1, 368, 369,
};
-#line 7338 "cs-parser.jay"
+#line 7571 "cs-parser.jay"
// <summary>
// A class used to hold info about an operator declarator
@@ -15850,7 +16400,13 @@ static string GetTokenName (int token)
return ";";
case Token.TILDE:
return "~";
-
+ case Token.WHEN:
+ return "when";
+ case Token.INTERPOLATED_STRING_END:
+ return "}";
+ case Token.INTERPOLATED_STRING:
+ return "${";
+
case Token.PLUS:
case Token.UMINUS:
case Token.MINUS:
@@ -15885,6 +16441,7 @@ static string GetTokenName (int token)
case Token.OP_AND_ASSIGN:
case Token.OP_XOR_ASSIGN:
case Token.OP_OR_ASSIGN:
+ case Token.INTERR_OPERATOR:
return "<operator>";
case Token.BOOL:
@@ -16131,73 +16688,76 @@ namespace yydebug {
public const int ASYNC = 362;
public const int AWAIT = 363;
public const int INTERR_OPERATOR = 364;
- public const int GET = 365;
- public const int SET = 366;
- public const int LAST_KEYWORD = 367;
- public const int OPEN_BRACE = 368;
- public const int CLOSE_BRACE = 369;
- public const int OPEN_BRACKET = 370;
- public const int CLOSE_BRACKET = 371;
- public const int OPEN_PARENS = 372;
- public const int CLOSE_PARENS = 373;
- public const int DOT = 374;
- public const int COMMA = 375;
- public const int COLON = 376;
- public const int SEMICOLON = 377;
- public const int TILDE = 378;
- public const int PLUS = 379;
- public const int MINUS = 380;
- public const int BANG = 381;
- public const int ASSIGN = 382;
- public const int OP_LT = 383;
- public const int OP_GT = 384;
- public const int BITWISE_AND = 385;
- public const int BITWISE_OR = 386;
- public const int STAR = 387;
- public const int PERCENT = 388;
- public const int DIV = 389;
- public const int CARRET = 390;
- public const int INTERR = 391;
- public const int DOUBLE_COLON = 392;
- public const int OP_INC = 393;
- public const int OP_DEC = 394;
- public const int OP_SHIFT_LEFT = 395;
- public const int OP_SHIFT_RIGHT = 396;
- public const int OP_LE = 397;
- public const int OP_GE = 398;
- public const int OP_EQ = 399;
- public const int OP_NE = 400;
- public const int OP_AND = 401;
- public const int OP_OR = 402;
- public const int OP_MULT_ASSIGN = 403;
- public const int OP_DIV_ASSIGN = 404;
- public const int OP_MOD_ASSIGN = 405;
- public const int OP_ADD_ASSIGN = 406;
- public const int OP_SUB_ASSIGN = 407;
- public const int OP_SHIFT_LEFT_ASSIGN = 408;
- public const int OP_SHIFT_RIGHT_ASSIGN = 409;
- public const int OP_AND_ASSIGN = 410;
- public const int OP_XOR_ASSIGN = 411;
- public const int OP_OR_ASSIGN = 412;
- public const int OP_PTR = 413;
- public const int OP_COALESCING = 414;
- public const int OP_GENERICS_LT = 415;
- public const int OP_GENERICS_LT_DECL = 416;
- public const int OP_GENERICS_GT = 417;
- public const int LITERAL = 418;
- public const int IDENTIFIER = 419;
- public const int OPEN_PARENS_LAMBDA = 420;
- public const int OPEN_PARENS_CAST = 421;
- public const int GENERIC_DIMENSION = 422;
- public const int DEFAULT_COLON = 423;
- public const int OPEN_BRACKET_EXPR = 424;
- public const int EVAL_STATEMENT_PARSER = 425;
- public const int EVAL_COMPILATION_UNIT_PARSER = 426;
- public const int EVAL_USING_DECLARATIONS_UNIT_PARSER = 427;
- public const int DOC_SEE = 428;
- public const int GENERATE_COMPLETION = 429;
- public const int COMPLETE_COMPLETION = 430;
- public const int UMINUS = 431;
+ public const int WHEN = 365;
+ public const int INTERPOLATED_STRING = 366;
+ public const int INTERPOLATED_STRING_END = 367;
+ public const int GET = 368;
+ public const int SET = 369;
+ public const int LAST_KEYWORD = 370;
+ public const int OPEN_BRACE = 371;
+ public const int CLOSE_BRACE = 372;
+ public const int OPEN_BRACKET = 373;
+ public const int CLOSE_BRACKET = 374;
+ public const int OPEN_PARENS = 375;
+ public const int CLOSE_PARENS = 376;
+ public const int DOT = 377;
+ public const int COMMA = 378;
+ public const int COLON = 379;
+ public const int SEMICOLON = 380;
+ public const int TILDE = 381;
+ public const int PLUS = 382;
+ public const int MINUS = 383;
+ public const int BANG = 384;
+ public const int ASSIGN = 385;
+ public const int OP_LT = 386;
+ public const int OP_GT = 387;
+ public const int BITWISE_AND = 388;
+ public const int BITWISE_OR = 389;
+ public const int STAR = 390;
+ public const int PERCENT = 391;
+ public const int DIV = 392;
+ public const int CARRET = 393;
+ public const int INTERR = 394;
+ public const int DOUBLE_COLON = 395;
+ public const int OP_INC = 396;
+ public const int OP_DEC = 397;
+ public const int OP_SHIFT_LEFT = 398;
+ public const int OP_SHIFT_RIGHT = 399;
+ public const int OP_LE = 400;
+ public const int OP_GE = 401;
+ public const int OP_EQ = 402;
+ public const int OP_NE = 403;
+ public const int OP_AND = 404;
+ public const int OP_OR = 405;
+ public const int OP_MULT_ASSIGN = 406;
+ public const int OP_DIV_ASSIGN = 407;
+ public const int OP_MOD_ASSIGN = 408;
+ public const int OP_ADD_ASSIGN = 409;
+ public const int OP_SUB_ASSIGN = 410;
+ public const int OP_SHIFT_LEFT_ASSIGN = 411;
+ public const int OP_SHIFT_RIGHT_ASSIGN = 412;
+ public const int OP_AND_ASSIGN = 413;
+ public const int OP_XOR_ASSIGN = 414;
+ public const int OP_OR_ASSIGN = 415;
+ public const int OP_PTR = 416;
+ public const int OP_COALESCING = 417;
+ public const int OP_GENERICS_LT = 418;
+ public const int OP_GENERICS_LT_DECL = 419;
+ public const int OP_GENERICS_GT = 420;
+ public const int LITERAL = 421;
+ public const int IDENTIFIER = 422;
+ public const int OPEN_PARENS_LAMBDA = 423;
+ public const int OPEN_PARENS_CAST = 424;
+ public const int GENERIC_DIMENSION = 425;
+ public const int DEFAULT_COLON = 426;
+ public const int OPEN_BRACKET_EXPR = 427;
+ public const int EVAL_STATEMENT_PARSER = 428;
+ public const int EVAL_COMPILATION_UNIT_PARSER = 429;
+ public const int EVAL_USING_DECLARATIONS_UNIT_PARSER = 430;
+ public const int DOC_SEE = 431;
+ public const int GENERATE_COMPLETION = 432;
+ public const int COMPLETE_COMPLETION = 433;
+ public const int UMINUS = 434;
public const int yyErrorCode = 256;
}
namespace yyParser {
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay
index 25df449f..e6eb1b07 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-parser.jay
@@ -266,6 +266,9 @@ namespace Mono.CSharp
%token ASYNC
%token AWAIT
%token INTERR_OPERATOR
+%token WHEN
+%token INTERPOLATED_STRING
+%token INTERPOLATED_STRING_END
/* C# keywords which are not really keywords */
%token GET
@@ -468,24 +471,38 @@ using_directive
;
using_namespace
- : USING namespace_or_type_expr SEMICOLON
+ : USING opt_static namespace_or_type_expr SEMICOLON
{
- var un = new UsingNamespace ((ATypeNameExpression) $2, GetLocation ($1));
- current_namespace.AddUsing (un);
-
- lbag.AddLocation (un, GetLocation ($3));
+ UsingClause uc;
+ if ($2 != null) {
+ if (lang_version <= LanguageVersion.V_5)
+ FeatureIsNotAvailable (GetLocation ($2), "using static");
+
+ uc = new UsingType ((ATypeNameExpression) $3, GetLocation ($1));
+ lbag.AddLocation (uc, GetLocation ($2), GetLocation ($4));
+ } else {
+ uc = new UsingNamespace ((ATypeNameExpression) $3, GetLocation ($1));
+ lbag.AddLocation (uc, GetLocation ($4));
+ }
+
+ current_namespace.AddUsing (uc);
}
- | USING IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON
+ | USING opt_static IDENTIFIER ASSIGN namespace_or_type_expr SEMICOLON
{
- var lt = (LocatedToken) $2;
+ var lt = (LocatedToken) $3;
if (lang_version != LanguageVersion.ISO_1 && lt.Value == "global") {
report.Warning (440, 2, lt.Location,
"An alias named `global' will not be used when resolving `global::'. The global namespace will be used instead");
}
- var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) $4, GetLocation ($1));
+ if ($2 != null) {
+ report.Error (8085, GetLocation ($2), "A `using static' directive cannot be used to declare an alias");
+ }
+
+ var un = new UsingAliasNamespace (new SimpleMemberName (lt.Value, lt.Location), (ATypeNameExpression) $5, GetLocation ($1));
current_namespace.AddUsing (un);
- lbag.AddLocation (un, GetLocation ($3), GetLocation ($5));
+
+ lbag.AddLocation (un, GetLocation ($4), GetLocation ($6));
}
| USING error
{
@@ -494,6 +511,11 @@ using_namespace
}
;
+opt_static
+ :
+ | STATIC
+ ;
+
//
// Strictly speaking, namespaces don't have attributes but
// we parse global attributes along with namespace declarations and then
@@ -748,7 +770,9 @@ attribute_section_cont
}
| error
{
- CheckAttributeTarget (yyToken, GetTokenName (yyToken), GetLocation ($1));
+ if (CheckAttributeTarget (yyToken, GetTokenName (yyToken), GetLocation ($1)).Length > 0)
+ Error_SyntaxError (yyToken);
+
$$ = null;
}
;
@@ -893,7 +917,7 @@ named_attribute_argument
;
named_argument
- : identifier_inside_body COLON opt_named_modifier expression_or_error
+ : identifier_inside_body COLON opt_named_modifier named_argument_expr
{
if (lang_version <= LanguageVersion.V_3)
FeatureIsNotAvailable (GetLocation ($1), "named argument");
@@ -906,6 +930,11 @@ named_argument
lbag.AddLocation ($$, GetLocation($2));
}
;
+
+named_argument_expr
+ : expression_or_error
+// | declaration_expression
+ ;
opt_named_modifier
: /* empty */ { $$ = null; }
@@ -2230,6 +2259,8 @@ operator_declarator
: operator_type OPERATOR overloadable_operator OPEN_PARENS
{
valid_param_mod = ParameterModifierType.DefaultValue;
+ if ((Operator.OpType) $3 == Operator.OpType.Is)
+ valid_param_mod |= ParameterModifierType.Out;
}
opt_formal_parameter_list CLOSE_PARENS
{
@@ -2254,6 +2285,8 @@ operator_declarator
report.Error (1535, loc, "Overloaded unary operator `{0}' takes one parameter",
Operator.GetName (op));
}
+ } else if (op == Operator.OpType.Is) {
+ // TODO: Special checks for is operator
} else {
if (p_count == 1) {
report.Error (1019, loc, "Overloadable unary operator expected");
@@ -2300,6 +2333,13 @@ overloadable_operator
| OP_LT { $$ = Operator.OpType.LessThan; savedOperatorLocation = GetLocation ($1); }
| OP_GE { $$ = Operator.OpType.GreaterThanOrEqual; savedOperatorLocation = GetLocation ($1); }
| OP_LE { $$ = Operator.OpType.LessThanOrEqual; savedOperatorLocation = GetLocation ($1); }
+ | IS
+ {
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation ($1), "is user operator");
+ savedOperatorLocation = GetLocation ($1);
+ $$ = Operator.OpType.Is;
+ }
;
conversion_operator_declarator
@@ -2403,11 +2443,25 @@ constructor_declarator
if (lt.Value != current_container.MemberName.Name) {
report.Error (1520, c.Location, "Class, struct, or interface method must have a return type");
} else if ((mods & Modifiers.STATIC) != 0) {
+ if (!current_local_parameters.IsEmpty) {
+ report.Error (132, c.Location, "`{0}': The static constructor must be parameterless",
+ c.GetSignatureForError ());
+ }
+
if ((mods & Modifiers.AccessibilityMask) != 0){
report.Error (515, c.Location,
"`{0}': static constructor cannot have an access modifier",
c.GetSignatureForError ());
}
+ } else {
+ if (current_type.Kind == MemberKind.Struct && current_local_parameters.IsEmpty) {
+ if (lang_version < LanguageVersion.V_6)
+ FeatureIsNotAvailable (GetLocation ($3), "struct parameterless instance constructor");
+
+ if ((mods & Modifiers.PUBLIC) == 0) {
+ report.Error (8075, c.Location, "`{0}': Structs parameterless instance constructor must be public", c.GetSignatureForError ());
+ }
+ }
}
current_type.AddConstructor (c);
@@ -2972,9 +3026,8 @@ namespace_or_type_expr
{
var lt1 = (LocatedToken) $1;
var lt2 = (LocatedToken) $2;
- var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) $3, lt1.Location);
- lbag.AddLocation (qam.TypeArguments, Lexer.GenericDimensionLocations);
- $$ = qam;
+
+ $$ = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) $3, lt1.Location);
lbag.AddLocation ($$, GetLocation ($2));
}
;
@@ -2990,9 +3043,7 @@ member_name
| namespace_or_type_expr DOT IDENTIFIER generic_dimension
{
var lt = (LocatedToken) $3;
- var ma = new MemberAccess ((Expression) $1, lt.Value, (int) $4, lt.Location);
- lbag.AddLocation (ma.TypeArguments, Lexer.GenericDimensionLocations);
- $$ = ma;
+ $$ = new MemberAccess ((Expression) $1, lt.Value, (int) $4, lt.Location);
lbag.AddLocation ($$, GetLocation ($2));
}
;
@@ -3006,9 +3057,7 @@ simple_name_expr
| IDENTIFIER generic_dimension
{
var lt = (LocatedToken) $1;
- var sn = new SimpleName (lt.Value, (int) $2, lt.Location);
- lbag.AddLocation (sn.TypeArguments, Lexer.GenericDimensionLocations);
- $$ = sn;
+ $$ = new SimpleName (lt.Value, (int) $2, lt.Location);
}
;
@@ -3023,7 +3072,7 @@ opt_type_argument_list
FeatureIsNotAvailable (GetLocation ($1), "generics");
var list = locationListStack.Pop ();
list.Add (GetLocation ($1));
- list.Add (GetLocation ($2));
+ list.Add (GetLocation ($3));
lbag.AddLocation ($2, list);
$$ = $2;;
@@ -3326,7 +3375,7 @@ integral_type
primary_expression
- : primary_expression_or_type
+ : type_name_expression
| literal
| array_creation_expression
| parenthesized_expression
@@ -3346,9 +3395,10 @@ primary_expression
| pointer_member_access
| anonymous_method_expression
| undocumented_expressions
+ | interpolated_string
;
-primary_expression_or_type
+type_name_expression
: simple_name_expr
| IDENTIFIER GENERATE_COMPLETION {
var lt = (LocatedToken) $1;
@@ -3368,6 +3418,71 @@ boolean_literal
| FALSE { $$ = new BoolLiteral (compiler.BuiltinTypes, false, GetLocation ($1)); }
;
+interpolated_string
+ : INTERPOLATED_STRING interpolations INTERPOLATED_STRING_END
+ {
+ $$ = new InterpolatedString ((StringLiteral) $1, (List<Expression>) $2, (StringLiteral) $3);
+ }
+ | INTERPOLATED_STRING_END
+ {
+ $$ = new InterpolatedString ((StringLiteral) $1, null, null);
+ }
+ ;
+
+interpolations
+ : interpolation
+ {
+ var list = new List<Expression> ();
+ list.Add ((InterpolatedStringInsert) $1);
+ $$ = list;
+ }
+ | interpolations INTERPOLATED_STRING interpolation
+ {
+ var list = (List<Expression>) $1;
+ list.Add ((StringLiteral) $2);
+ list.Add ((InterpolatedStringInsert) $3);
+ $$ = list;
+ }
+ ;
+
+interpolation
+ : expression
+ {
+ $$ = new InterpolatedStringInsert ((Expression) $1);
+ }
+ | expression COMMA expression
+ {
+ $$ = new InterpolatedStringInsert ((Expression) $1) {
+ Alignment = (Expression)$3
+ };
+ }
+ | expression COLON
+ {
+ lexer.parsing_interpolation_format = true;
+ }
+ LITERAL
+ {
+ lexer.parsing_interpolation_format = false;
+
+ $$ = new InterpolatedStringInsert ((Expression) $1) {
+ Format = (string)$4
+ };
+ }
+ | expression COMMA expression COLON
+ {
+ lexer.parsing_interpolation_format = true;
+ }
+ LITERAL
+ {
+ lexer.parsing_interpolation_format = false;
+
+ $$ = new InterpolatedStringInsert ((Expression) $1) {
+ Alignment = (Expression)$3,
+ Format = (string) $6
+ };
+ }
+ ;
+
//
// Here is the trick, tokenizer may think that parens is a special but
@@ -3411,9 +3526,7 @@ member_access
| primary_expression DOT identifier_inside_body generic_dimension
{
var lt = (LocatedToken) $3;
- var ma = new MemberAccess ((Expression) $1, lt.Value, (int) $4, lt.Location);
- lbag.AddLocation (ma.TypeArguments, Lexer.GenericDimensionLocations);
- $$ = ma;
+ $$ = new MemberAccess ((Expression) $1, lt.Value, (int) $4, lt.Location);
lbag.AddLocation ($$, GetLocation ($2));
}
| primary_expression INTERR_OPERATOR DOT identifier_inside_body opt_type_argument_list
@@ -3455,9 +3568,8 @@ member_access
{
var lt1 = (LocatedToken) $1;
var lt2 = (LocatedToken) $2;
- var qam = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) $3, lt1.Location);
- lbag.AddLocation (qam.TypeArguments, Lexer.GenericDimensionLocations);
- $$ = qam;
+
+ $$ = new QualifiedAliasMember (lt1.Value, lt2.Value, (int) $3, lt1.Location);
lbag.AddLocation ($$, GetLocation ($2));
}
| primary_expression DOT GENERATE_COMPLETION {
@@ -3674,11 +3786,19 @@ non_simple_argument
$$ = new Argument ((Expression) $2, Argument.AType.Ref);
lbag.AddLocation ($$, GetLocation ($1));
}
+ | REF declaration_expression
+ {
+ $$ = new Argument ((Expression) $2, Argument.AType.Ref);
+ }
| OUT variable_reference
{
$$ = new Argument ((Expression) $2, Argument.AType.Out);
lbag.AddLocation ($$, GetLocation ($1));
}
+ | OUT declaration_expression
+ {
+ $$ = new Argument ((Expression) $2, Argument.AType.Out);
+ }
| ARGLIST OPEN_PARENS argument_list CLOSE_PARENS
{
$$ = new Argument (new Arglist ((Arguments) $3, GetLocation ($1)));
@@ -3691,6 +3811,48 @@ non_simple_argument
}
;
+declaration_expression
+ : OPEN_PARENS declaration_expression CLOSE_PARENS
+ {
+ $$ = new ParenthesizedExpression ((Expression) $2, GetLocation ($1));
+ lbag.AddLocation ($$, GetLocation ($1), GetLocation ($3));
+ }
+/*
+ | CHECKED open_parens_any declaration_expression CLOSE_PARENS
+ {
+ $$ = new CheckedExpr ((Expression) $3, GetLocation ($1));
+ lbag.AddLocation ($$, GetLocation ($2), GetLocation ($4));
+ }
+ | UNCHECKED open_parens_any declaration_expression CLOSE_PARENS
+ {
+ $$ = new UnCheckedExpr ((Expression) $3, GetLocation ($1));
+ lbag.AddLocation ($$, GetLocation ($2), GetLocation ($4));
+ }
+*/
+ | variable_type identifier_inside_body
+ {
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation ($1), "declaration expression");
+
+ var lt = (LocatedToken) $2;
+ var lv = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (lv);
+ $$ = new DeclarationExpression ((FullNamedExpression) $1, lv);
+ }
+ | variable_type identifier_inside_body ASSIGN expression
+ {
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation ($1), "declaration expression");
+
+ var lt = (LocatedToken) $2;
+ var lv = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (lv);
+ $$ = new DeclarationExpression ((FullNamedExpression) $1, lv) {
+ Initializer = (Expression) $4
+ };
+ }
+ ;
+
variable_reference
: expression
;
@@ -4391,7 +4553,7 @@ additive_expression
{
$$ = new As ((Expression) $1, (Expression) $3, GetLocation ($2));
}
- | additive_expression IS is_match_expr opt_identifier
+ | additive_expression IS pattern_type_expr opt_identifier
{
var is_expr = new Is ((Expression) $1, (Expression) $3, GetLocation ($2));
if ($4 != null) {
@@ -4405,6 +4567,14 @@ additive_expression
$$ = is_expr;
}
+ | additive_expression IS pattern_expr
+ {
+ var is_expr = new Is ((Expression) $1, (Expression) $3, GetLocation ($2));
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation ($2), "pattern matching");
+
+ $$ = is_expr;
+ }
| additive_expression AS error
{
Error_SyntaxError (yyToken);
@@ -4429,16 +4599,12 @@ additive_expression
}
;
-is_match_expr
- : match_type
- | match_type rank_specifiers
- {
- if ($1 is VarExpr)
- $1 = new SimpleName ("var", ((VarExpr) $1).Location);
+pattern_type_expr
+ : variable_type
+ ;
- $$ = new ComposedCast ((FullNamedExpression) $1, (ComposedTypeSpecifier) $2);
- }
- | literal
+pattern_expr
+ : literal
| PLUS prefixed_unary_expression
{
$$ = new Unary (Unary.Operator.UnaryPlus, (Expression) $2, GetLocation ($1));
@@ -4447,38 +4613,106 @@ is_match_expr
{
$$ = new Unary (Unary.Operator.UnaryNegation, (Expression) $2, GetLocation ($1));
}
+ | sizeof_expression
+ | default_value_expression
+ | OPEN_PARENS_CAST type CLOSE_PARENS prefixed_unary_expression
+ {
+ $$ = new Cast ((FullNamedExpression) $2, (Expression) $4, GetLocation ($1));
+ lbag.AddLocation ($$, GetLocation ($3));
+ }
+ | STAR
+ {
+ $$ = new WildcardPattern (GetLocation ($1));
+ }
+ | pattern_expr_invocation
+ | pattern_property
;
-match_type
- : primary_expression_or_type opt_nullable
+pattern_expr_invocation
+ : type_name_expression OPEN_PARENS opt_pattern_list CLOSE_PARENS
{
- Expression expr = (Expression) $1;
- if ($2 == null) {
- SimpleName sn = expr as SimpleName;
- if (sn != null && sn.Name == "var")
- $$ = new VarExpr (sn.Location);
- else
- $$ = $1;
- } else if (expr is ATypeNameExpression) {
- $$ = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) $2);
- } else {
- Error_ExpectingTypeName (expr);
- $$ = null;
- }
+ $$ = new RecursivePattern ((ATypeNameExpression) $1, (Arguments) $3, GetLocation ($2));
}
- | primary_expression_or_type pointer_stars
+ ;
+
+pattern_property
+ : type_name_expression OPEN_BRACE pattern_property_list CLOSE_BRACE
{
- ATypeNameExpression expr = $1 as ATypeNameExpression;
+ $$ = new PropertyPattern ((ATypeNameExpression) $1, (List<PropertyPatternMember>) $3, GetLocation ($2));
+ }
+ ;
- if (expr != null) {
- $$ = new ComposedCast (expr, (ComposedTypeSpecifier) $2);
- } else {
- Error_ExpectingTypeName ((Expression)$1);
- $$ = expr;
+pattern_property_list
+ : pattern_property_entry
+ {
+ var list = new List<PropertyPatternMember> ();
+ list.Add ((PropertyPatternMember) $1);
+ $$ = list;
+ }
+ | pattern_property_list COMMA pattern_property_entry
+ {
+ var list = (List<PropertyPatternMember>) $1;
+ list.Add ((PropertyPatternMember) $3);
+ $$ = list;
+ }
+ ;
+
+pattern_property_entry
+ : identifier_inside_body IS pattern
+ {
+ var lt = (LocatedToken) $1;
+ $$ = new PropertyPatternMember (lt.Value, (Expression) $3, lt.Location);
+ }
+ ;
+
+pattern
+ : pattern_expr
+ | pattern_type_expr opt_identifier
+ {
+ if ($2 != null) {
+ var lt = (LocatedToken) $2;
+ var variable = new LocalVariable (current_block, lt.Value, lt.Location);
+ current_block.AddLocalName (variable);
}
}
- | builtin_type_expression
- | void_invalid
+ ;
+
+opt_pattern_list
+ : /* empty */
+ {
+ $$ = new Arguments (0);
+ }
+ | pattern_list
+ ;
+
+pattern_list
+ : pattern_argument
+ {
+ Arguments args = new Arguments (4);
+ args.Add ((Argument) $1);
+ $$ = args;
+ }
+ | pattern_list COMMA pattern_argument
+ {
+ Arguments args = (Arguments) $1;
+ if (args [args.Count - 1] is NamedArgument && !($3 is NamedArgument))
+ Error_NamedArgumentExpected ((NamedArgument) args [args.Count - 1]);
+
+ args.Add ((Argument) $3);
+ $$ = args;
+ }
+ ;
+
+pattern_argument
+ : pattern
+ {
+ $$ = new Argument ((Expression) $1);
+ }
+ | IDENTIFIER COLON pattern
+ {
+ var lt = (LocatedToken) $1;
+ $$ = new NamedArgument (lt.Value, lt.Location, (Expression) $3);
+ }
;
shift_expression
@@ -4983,7 +5217,7 @@ primary_parameters
// Cannot use opt_formal_parameter_list because it can be shared instance for empty parameters
lbag.AppendToMember (current_container, GetLocation ($1), GetLocation ($3));
- if (lang_version < LanguageVersion.V_6)
+ if (lang_version != LanguageVersion.Experimental)
FeatureIsNotAvailable (GetLocation ($1), "primary constructor");
}
;
@@ -5572,7 +5806,7 @@ variable_type
* > The expressions are converted into types during semantic analysis.
*/
variable_type_simple
- : primary_expression_or_type opt_nullable
+ : type_name_expression opt_nullable
{
// Ok, the above "primary_expression" is there to get rid of
// both reduce/reduce and shift/reduces in the grammar, it should
@@ -5588,30 +5822,20 @@ variable_type_simple
// SimpleName is when you have
// Blah i;
- Expression expr = (Expression) $1;
+ var expr = (ATypeNameExpression) $1;
if ($2 == null) {
- SimpleName sn = expr as SimpleName;
- if (sn != null && sn.Name == "var")
- $$ = new VarExpr (sn.Location);
+ if (expr.Name == "var" && expr is SimpleName)
+ $$ = new VarExpr (expr.Location);
else
$$ = $1;
- } else if (expr is ATypeNameExpression) {
- $$ = new ComposedCast ((ATypeNameExpression)expr, (ComposedTypeSpecifier) $2);
} else {
- Error_ExpectingTypeName (expr);
- $$ = null;
+ $$ = new ComposedCast (expr, (ComposedTypeSpecifier) $2);
}
}
- | primary_expression_or_type pointer_stars
+ | type_name_expression pointer_stars
{
- ATypeNameExpression expr = $1 as ATypeNameExpression;
-
- if (expr != null) {
- $$ = new ComposedCast (expr, (ComposedTypeSpecifier) $2);
- } else {
- Error_ExpectingTypeName ((Expression)$1);
- $$ = expr;
- }
+ var expr = (ATypeNameExpression) $1;
+ $$ = new ComposedCast (expr, (ComposedTypeSpecifier) $2);
}
| builtin_type_expression
| void_invalid
@@ -5946,6 +6170,18 @@ switch_label
Error_SyntaxError (yyToken);
$$ = new SwitchLabel ((Expression) $2, GetLocation ($1));
}
+/*
+ | CASE pattern_expr_invocation COLON
+ {
+ if (lang_version != LanguageVersion.Experimental)
+ FeatureIsNotAvailable (GetLocation ($2), "pattern matching");
+
+ $$ = new SwitchLabel ((Expression) $2, GetLocation ($1)) {
+ PatternMatching = true
+ };
+ lbag.AddLocation ($$, GetLocation ($3));
+ }
+*/
| DEFAULT_COLON
{
$$ = new SwitchLabel (null, GetLocation ($1));
@@ -6422,8 +6658,9 @@ catch_clause
lbag.AddLocation (c, GetLocation ($2), GetLocation ($5));
$$ = c;
+ lexer.parsing_catch_when = true;
}
- opt_catch_filter block_prepared
+ opt_catch_filter_or_error
{
((Catch) $6).Filter = (CatchFilterExpression) $7;
$$ = $6;
@@ -6439,40 +6676,36 @@ catch_clause
$$ = new Catch (null, GetLocation ($1));
}
- | CATCH open_parens_any type opt_identifier CLOSE_PARENS error
+ ;
+
+opt_catch_filter_or_error
+ : opt_catch_filter block_prepared
{
+ $$ = $1;
+ }
+ | error
+ {
+ end_block (Location.Null);
Error_SyntaxError (yyToken);
-
- // Required otherwise missing block could not be detected because
- // start_block is run early
- var c = new Catch (null, GetLocation ($1));
- c.TypeExpression = (FullNamedExpression) $3;
-
- if ($4 != null) {
- var lt = (LocatedToken) $4;
- c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
- }
-
- if ($4 != null) {
- var lt = (LocatedToken) $4;
- c.Variable = new LocalVariable (current_block, lt.Value, lt.Location);
- }
-
- lbag.AddLocation (c, GetLocation ($2), GetLocation ($5));
-
- $$ = c;
+ $$ = null;
}
;
opt_catch_filter
- : /* empty */
- | IF open_parens_any expression CLOSE_PARENS
+ : {
+ lexer.parsing_catch_when = false;
+ }
+ | WHEN
+ {
+ lexer.parsing_catch_when = false;
+ }
+ open_parens_any expression CLOSE_PARENS
{
if (lang_version <= LanguageVersion.V_5)
FeatureIsNotAvailable (GetLocation ($1), "exception filter");
- $$ = new CatchFilterExpression ((Expression) $3, GetLocation ($1));
- lbag.AddLocation ($$, GetLocation ($2), GetLocation ($4));
+ $$ = new CatchFilterExpression ((Expression) $4, GetLocation ($1));
+ lbag.AddLocation ($$, GetLocation ($3), GetLocation ($5));
}
;
@@ -8097,7 +8330,13 @@ static string GetTokenName (int token)
return ";";
case Token.TILDE:
return "~";
-
+ case Token.WHEN:
+ return "when";
+ case Token.INTERPOLATED_STRING_END:
+ return "}";
+ case Token.INTERPOLATED_STRING:
+ return "${";
+
case Token.PLUS:
case Token.UMINUS:
case Token.MINUS:
@@ -8132,6 +8371,7 @@ static string GetTokenName (int token)
case Token.OP_AND_ASSIGN:
case Token.OP_XOR_ASSIGN:
case Token.OP_OR_ASSIGN:
+ case Token.INTERR_OPERATOR:
return "<operator>";
case Token.BOOL:
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs
index a423eb50..1d2ae3a9 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/cs-tokenizer.cs
@@ -236,6 +236,12 @@ namespace Mono.CSharp
public bool parsing_modifiers;
+ public bool parsing_catch_when;
+
+ int parsing_string_interpolation;
+
+ public bool parsing_interpolation_format;
+
//
// The special characters to inject on streams to run the unit parser
// in the special expression mode. Using private characters from
@@ -638,6 +644,9 @@ namespace Mono.CSharp
AddKeyword ("async", Token.ASYNC);
AddKeyword ("await", Token.AWAIT);
+ // Contextual filter catch keyword
+ AddKeyword ("when", Token.WHEN);
+
keywords_preprocessor = new KeywordEntry<PreprocessorDirective>[10][];
AddPreprocessorKeyword ("region", PreprocessorDirective.Region);
@@ -711,6 +720,10 @@ namespace Mono.CSharp
res = Token.DEFAULT_COLON;
}
break;
+ case Token.WHEN:
+ if (current_token != Token.CATCH && !parsing_catch_when)
+ res = -1;
+ break;
case Token.WHERE:
if (!(handle_where && current_token != Token.COLON) && !query_parsing)
res = -1;
@@ -1048,6 +1061,7 @@ namespace Mono.CSharp
case Token.BYTE:
case Token.DECIMAL:
case Token.BOOL:
+ case Token.STRING:
return Token.OPEN_PARENS_CAST;
}
}
@@ -1152,21 +1166,9 @@ namespace Mono.CSharp
return true;
}
- Stack<List<Location>> genericDimensionLocations = new Stack<List<Location>> ();
-
- public List<Location> GenericDimensionLocations {
- get {
- if (genericDimensionLocations.Count == 0)
- return null;
- return genericDimensionLocations.Pop ();
- }
- }
-
bool parse_less_than (ref int genericDimension)
{
- genericDimensionLocations.Push (new List<Location> ());
- genericDimensionLocations.Peek ().Add (Location);
- start:
+ start:
int the_token = token ();
if (the_token == Token.OPEN_BRACKET) {
while (true) {
@@ -1202,65 +1204,51 @@ namespace Mono.CSharp
break;
case Token.OP_GENERICS_GT:
genericDimension = 1;
- genericDimensionLocations.Peek ().Add (Location);
return true;
case Token.IN:
case Token.OUT:
- genericDimensionLocations.Pop ();
return true;
case Token.COMMA:
do {
++genericDimension;
- if (genericDimensionLocations.Count > 0)
- genericDimensionLocations.Peek ().Add (Location);
the_token = token ();
} while (the_token == Token.COMMA);
if (the_token == Token.OP_GENERICS_GT) {
++genericDimension;
- if (genericDimensionLocations.Count > 0)
- genericDimensionLocations.Peek ().Add (Location);
return true;
}
- genericDimensionLocations.Pop ();
return false;
default:
- genericDimensionLocations.Pop ();
return false;
}
- again:
+ again:
the_token = token ();
- if (the_token == Token.OP_GENERICS_GT) {
- genericDimensionLocations.Peek ().Add (Location);
+
+ if (the_token == Token.OP_GENERICS_GT)
return true;
- }
else if (the_token == Token.COMMA || the_token == Token.DOT || the_token == Token.DOUBLE_COLON)
goto start;
else if (the_token == Token.INTERR_NULLABLE || the_token == Token.STAR)
goto again;
else if (the_token == Token.OP_GENERICS_LT) {
- if (!parse_less_than (ref genericDimension)) {
- genericDimensionLocations.Pop ();
+ if (!parse_less_than (ref genericDimension))
return false;
- }
goto again;
} else if (the_token == Token.OPEN_BRACKET) {
- rank_specifiers:
+ rank_specifiers:
the_token = token ();
if (the_token == Token.CLOSE_BRACKET)
goto again;
else if (the_token == Token.COMMA)
goto rank_specifiers;
- genericDimensionLocations.Pop ();
return false;
}
- genericDimensionLocations.Pop ();
return false;
}
-
public int peek_token ()
{
int the_token;
@@ -1309,6 +1297,7 @@ namespace Mono.CSharp
int next_token;
int parens = 0;
int generics = 0;
+ int brackets = 0;
var nt = xtoken ();
switch (nt) {
@@ -1374,6 +1363,11 @@ namespace Mono.CSharp
++parens;
goto default;
+ case Token.OPEN_BRACKET:
+ case Token.OPEN_BRACKET_EXPR:
+ ++brackets;
+ goto default;
+
case Token.CLOSE_PARENS:
--parens;
goto default;
@@ -1389,7 +1383,6 @@ namespace Mono.CSharp
int interrs = 1;
int colons = 0;
int braces = 0;
- int brackets = 0;
//
// All shorcuts failed, do it hard way
//
@@ -2030,7 +2023,7 @@ namespace Mono.CSharp
return current_token;
}
- int TokenizePreprocessorIdentifier (out int c)
+ int TokenizePreprocessorKeyword (out int c)
{
int startCol, endLine, endCol;
return TokenizePreprocessorIdentifier (out c, out startCol, out endLine, out endCol);
@@ -2159,7 +2152,7 @@ namespace Mono.CSharp
int c;
- int length = TokenizePreprocessorIdentifier (out c);
+ int length = TokenizePreprocessorKeyword (out c);
if (length == line_default.Length) {
if (!IsTokenIdentifierEqual (line_default))
return false;
@@ -2498,16 +2491,60 @@ namespace Mono.CSharp
return string_builder.ToString ();
}
- int TokenizePragmaNumber (ref int c)
+ int TokenizePragmaWarningIdentifier (ref int c, ref bool identifier)
{
- number_pos = 0;
- int number;
+ if ((c >= '0' && c <= '9') || is_identifier_start_character (c)) {
+ int number;
- if (c >= '0' && c <= '9') {
- number = TokenizeNumber (c);
+ if (c >= '0' && c <= '9') {
+ number_pos = 0;
+ number = TokenizeNumber (c);
- c = get_char ();
+ c = get_char ();
+
+ if (c != ' ' && c != '\t' && c != ',' && c != '\n' && c != -1 && c != UnicodeLS && c != UnicodePS) {
+ return ReadPragmaWarningComment (c);
+ }
+ } else {
+ //
+ // LAMESPEC v6: No spec what identifier really is in this context, it seems keywords are allowed too
+ //
+ int pos = 0;
+ number = -1;
+ id_builder [pos++] = (char)c;
+ while (c < MaxIdentifierLength) {
+ c = reader.Read ();
+ id_builder [pos] = (char)c;
+
+ if (c >= '0' && c <= '9') {
+ if (pos == 6 && id_builder [0] == 'C' && id_builder [1] == 'S') {
+ // Recognize CSXXXX as C# XXXX warning
+ number = 0;
+ int pow = 1000;
+ for (int i = 0; i < 4; ++i) {
+ var ch = id_builder [i + 2];
+ if (ch < '0' || ch > '9') {
+ number = -1;
+ break;
+ }
+
+ number += (ch - '0') * pow;
+ pow /= 10;
+ }
+ }
+ } else if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && c != '_') {
+ break;
+ }
+
+ ++pos;
+ }
+
+ if (number < 0) {
+ identifier = true;
+ number = pos;
+ }
+ }
// skip over white space
while (c == ' ' || c == '\t')
@@ -2520,19 +2557,25 @@ namespace Mono.CSharp
// skip over white space
while (c == ' ' || c == '\t')
c = get_char ();
+
+ return number;
+ }
+
+ return ReadPragmaWarningComment (c);
+ }
+
+ int ReadPragmaWarningComment (int c)
+ {
+ if (c == '/') {
+ ReadSingleLineComment ();
} else {
- number = -1;
- if (c == '/') {
- ReadSingleLineComment ();
- } else {
- Report.Warning (1692, 1, Location, "Invalid number");
+ Report.Warning (1692, 1, Location, "Invalid number");
- // Read everything till the end of the line or file
- ReadToEndOfLine ();
- }
+ // Read everything till the end of the line or file
+ ReadToEndOfLine ();
}
- return number;
+ return -1;
}
void ReadToEndOfLine ()
@@ -2617,10 +2660,8 @@ namespace Mono.CSharp
int code;
do {
var startLoc = loc;
- #if FULL_AST
- // int read_start = reader.Position;
- #endif
- code = TokenizePragmaNumber (ref c);
+ bool identifier = false;
+ code = TokenizePragmaWarningIdentifier (ref c, ref identifier);
if (code > 0) {
#if FULL_AST
var literal = new IntConstant(context.BuiltinTypes, code, startLoc);
@@ -2628,7 +2669,9 @@ namespace Mono.CSharp
pragmaDirective.Codes.Add (literal);
// literal.ParsedValue = reader.ReadChars (read_start, reader.Position + 1);
#endif
- if (disable) {
+ if (identifier) {
+ // no-op, custom warnings cannot occur in mcs
+ } else if (disable) {
Report.RegisterWarningRegion (loc).WarningDisable (loc, code, context.Report);
} else {
Report.RegisterWarningRegion (loc).WarningEnable (loc, code, context);
@@ -3076,7 +3119,7 @@ namespace Mono.CSharp
throw new NotImplementedException (directive.ToString ());
}
- private int consume_string (bool quoted)
+ int consume_string (bool quoted)
{
int c;
int pos = 0;
@@ -3111,15 +3154,7 @@ namespace Mono.CSharp
continue;
}
- string s;
- if (pos == 0)
- s = string.Empty;
- else if (pos <= 4)
- s = InternIdentifier (value_builder, pos);
- else
- s = new string (value_builder, 0, pos);
-
- ILiteralConstant res = new StringLiteral (context.BuiltinTypes, s, start_location);
+ ILiteralConstant res = new StringLiteral (context.BuiltinTypes, CreateStringFromBuilder (pos), start_location);
val = res;
#if FULL_AST
res.ParsedValue = quoted ?
@@ -3310,6 +3345,10 @@ namespace Mono.CSharp
public int xtoken ()
{
+ if (parsing_interpolation_format) {
+ return TokenizeInterpolationFormat ();
+ }
+
int d, c;
// Whether we have seen comments on the current line
@@ -3347,6 +3386,15 @@ namespace Mono.CSharp
val = ltb.Create (current_source, ref_line, col);
return Token.OPEN_BRACE;
case '}':
+ if (parsing_string_interpolation > 0) {
+ if (peek_char () != '}') {
+ --parsing_string_interpolation;
+ return TokenizeInterpolatedString ();
+ }
+
+ continue;
+ }
+
val = ltb.Create (current_source, ref_line, col);
return Token.CLOSE_BRACE;
case '[':
@@ -3571,7 +3619,12 @@ namespace Mono.CSharp
return Token.OP_DIV_ASSIGN;
}
// Handle double-slash comments.
- if (d == '/') {
+ if (d == '/'){
+ if (parsing_string_interpolation > 0) {
+ Report.Error (8077, Location, "A single-line comment may not be used in an interpolated string");
+ goto case '}';
+ }
+
get_char ();
if (doc_processing) {
if (peek_char () == '/') {
@@ -3780,6 +3833,13 @@ namespace Mono.CSharp
return Token.EOF;
case '"':
+ if (parsing_string_interpolation > 0) {
+ parsing_string_interpolation = 0;
+ Report.Error (8076, Location, "Missing close delimiter `}' for interpolated expression");
+ val = null;
+ return Token.INTERPOLATED_STRING_END;
+ }
+
return consume_string (false);
case '\'':
@@ -3799,6 +3859,13 @@ namespace Mono.CSharp
Report.Error (1646, Location, "Keyword, identifier, or string expected after verbatim specifier: @");
return Token.ERROR;
+ case '$':
+ if (peek_char () == '"') {
+ get_char ();
+ return TokenizeInterpolatedString ();
+ }
+
+ break;
case EvalStatementParserCharacter:
return Token.EVAL_STATEMENT_PARSER;
case EvalCompilationUnitParserCharacter:
@@ -3924,6 +3991,120 @@ namespace Mono.CSharp
return Token.OP_LT;
}
+ int TokenizeInterpolatedString ()
+ {
+ int pos = 0;
+ var start_location = Location;
+
+ while (true) {
+ var ch = get_char ();
+ switch (ch) {
+ case '"':
+ val = new StringLiteral (context.BuiltinTypes, CreateStringFromBuilder (pos), start_location);
+ return Token.INTERPOLATED_STRING_END;
+ case '{':
+ if (peek_char () == '{') {
+ value_builder [pos++] = (char)ch;
+ get_char ();
+ break;
+ }
+
+ ++parsing_string_interpolation;
+ val = new StringLiteral (context.BuiltinTypes, CreateStringFromBuilder (pos), start_location);
+ return Token.INTERPOLATED_STRING;
+ case '\\':
+ ++col;
+ int surrogate;
+ ch = escape (ch, out surrogate);
+ if (ch == -1)
+ return Token.ERROR;
+
+ if (ch == '{' || ch == '}') {
+ Report.Error (8087, Location, "A `{0}' character may only be escaped by doubling `{0}{0}' in an interpolated string", ((char) ch).ToString ());
+ }
+
+ if (surrogate != 0) {
+ if (pos == value_builder.Length)
+ Array.Resize (ref value_builder, pos * 2);
+
+ value_builder [pos++] = (char)ch;
+ ch = surrogate;
+ }
+
+ break;
+ case -1:
+ return Token.EOF;
+ }
+
+ ++col;
+ value_builder[pos++] = (char) ch;
+ }
+ }
+
+ int TokenizeInterpolationFormat ()
+ {
+ int pos = 0;
+ int braces = 0;
+ while (true) {
+ var ch = get_char ();
+ switch (ch) {
+ case '{':
+ ++braces;
+ break;
+ case '}':
+ if (braces == 0) {
+ putback_char = ch;
+ if (pos == 0) {
+ Report.Error (8089, Location, "Empty interpolated expression format specifier");
+ } else if (Array.IndexOf (simple_whitespaces, value_builder [pos - 1]) >= 0) {
+ Report.Error (8088, Location, "A interpolated expression format specifier may not contain trailing whitespace");
+ }
+
+ val = CreateStringFromBuilder (pos);
+ return Token.LITERAL;
+ }
+
+ --braces;
+ break;
+ case '\\':
+ ++col;
+ int surrogate;
+ ch = escape (ch, out surrogate);
+ if (ch == -1)
+ return Token.ERROR;
+
+ if (ch == '{' || ch == '}') {
+ Report.Error (8087, Location, "A `{0}' character may only be escaped by doubling `{0}{0}' in an interpolated string", ((char) ch).ToString ());
+ }
+
+ if (surrogate != 0) {
+ if (pos == value_builder.Length)
+ Array.Resize (ref value_builder, pos * 2);
+
+ value_builder [pos++] = (char)ch;
+ ch = surrogate;
+ }
+
+ break;
+ case -1:
+ return Token.EOF;
+ }
+
+ ++col;
+ value_builder[pos++] = (char) ch;
+ }
+ }
+
+ string CreateStringFromBuilder (int pos)
+ {
+ if (pos == 0)
+ return string.Empty;
+ if (pos <= 4)
+ return InternIdentifier (value_builder, pos);
+
+ return new string (value_builder, 0, pos);
+ }
+
//
// Handles one line xml comment
//
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs
index 56d423ad..16f8bcb3 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/decl.cs
@@ -195,11 +195,6 @@ namespace Mono.CSharp {
return name + "`" + args.Count;
}
-
- public static string MakeName (string name, int count)
- {
- return name + "`" + count;
- }
}
public class SimpleMemberName
@@ -675,13 +670,13 @@ namespace Mono.CSharp {
// Does extension methods look up to find a method which matches name and extensionType.
// Search starts from this namespace and continues hierarchically up to top level.
//
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
var m = Parent;
do {
var ns = m as NamespaceContainer;
if (ns != null)
- return ns.LookupExtensionMethod (this, extensionType, name, arity, 0);
+ return ns.LookupExtensionMethod (this, name, arity, 0);
m = m.Parent;
} while (m != null);
@@ -1130,7 +1125,7 @@ namespace Mono.CSharp {
public virtual string GetSignatureForError ()
{
- var bf = MemberDefinition as Property.BackingField;
+ var bf = MemberDefinition as Property.BackingFieldDeclaration;
string name;
if (bf == null) {
name = Name;
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/delegate.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/delegate.cs
index 612d1163..2582f200 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/delegate.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/delegate.cs
@@ -294,6 +294,9 @@ namespace Mono.CSharp {
public override void PrepareEmit ()
{
+ if ((caching_flags & Flags.CloseTypeCreated) != 0)
+ return;
+
if (!Parameters.IsEmpty) {
parameters.ResolveDefaultValues (this);
}
@@ -646,7 +649,8 @@ namespace Mono.CSharp {
var invoke = Delegate.GetInvokeMethod (target_type);
Arguments arguments = CreateDelegateMethodArguments (ec, invoke.Parameters, invoke.Parameters.Types, mg.Location);
- return mg.OverloadResolve (ec, ref arguments, null, OverloadResolver.Restrictions.CovariantDelegate | OverloadResolver.Restrictions.ProbingOnly) != null;
+ mg = mg.OverloadResolve (ec, ref arguments, null, OverloadResolver.Restrictions.CovariantDelegate | OverloadResolver.Restrictions.ProbingOnly);
+ return mg != null && Delegate.IsTypeCovariant (ec, mg.BestCandidateReturnType, invoke.ReturnType);
}
#region IErrorHandler Members
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/doc.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/doc.cs
index 35fe5852..adf6ea08 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/doc.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/doc.cs
@@ -695,7 +695,7 @@ namespace Mono.CSharp
return host.GetSignatureForError ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
return null;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/dynamic.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/dynamic.cs
index 5604a3fc..33fb4555 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/dynamic.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/dynamic.cs
@@ -289,6 +289,13 @@ namespace Mono.CSharp
protected bool DoResolveCore (ResolveContext rc)
{
+ foreach (var arg in arguments) {
+ if (arg.Type == InternalType.VarOutType) {
+ // Should be special error message about dynamic dispatch
+ rc.Report.Error (8047, arg.Expr.Location, "Declaration expression cannot be used in this context");
+ }
+ }
+
if (rc.CurrentTypeParameters != null && rc.CurrentTypeParameters[0].IsMethodTypeParameter)
context_mvars = rc.CurrentTypeParameters;
@@ -780,7 +787,7 @@ namespace Mono.CSharp
if (member != null && member.HasTypeArguments) {
TypeArguments ta = member.TypeArguments;
- if (ta.Resolve (ec)) {
+ if (ta.Resolve (ec, false)) {
var targs = new ArrayInitializer (ta.Count, loc);
foreach (TypeSpec t in ta.Arguments)
targs.Add (new TypeOf (t, loc));
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs
index d1e2c3b8..c581a748 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/ecore.cs
@@ -230,10 +230,10 @@ namespace Mono.CSharp {
//
public virtual TypeSpec ResolveAsType (IMemberContext mc, bool allowUnboundTypeArguments = false)
{
- ResolveContext ec = new ResolveContext (mc);
- Expression e = Resolve (ec);
+ var rc = mc as ResolveContext ?? new ResolveContext (mc);
+ Expression e = Resolve (rc);
if (e != null)
- e.Error_UnexpectedKind (ec, ResolveFlags.Type, loc);
+ e.Error_UnexpectedKind (rc, ResolveFlags.Type, loc);
return null;
}
@@ -345,7 +345,7 @@ namespace Mono.CSharp {
exprType, name);
}
- protected virtual void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
+ public virtual void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
{
Error_TypeDoesNotContainDefinition (ec, loc, type, name);
}
@@ -457,6 +457,8 @@ namespace Mono.CSharp {
return false;
case MemberKind.InternalCompilerType:
return type.BuiltinType == BuiltinTypeSpec.Type.Dynamic;
+ case MemberKind.TypeParameter:
+ return !((TypeParameterSpec) type).IsValueType;
default:
return true;
}
@@ -764,6 +766,10 @@ namespace Mono.CSharp {
if (ctors == null) {
switch (type.Kind) {
case MemberKind.Struct:
+ // Every struct has implicit default constructor if not provided by user
+ if (args == null)
+ return null;
+
rc.Report.SymbolRelatedToPreviousError (type);
// Report meaningful error for struct as they always have default ctor in C# context
OverloadResolver.Error_ConstructorMismatch (rc, type, args == null ? 0 : args.Count, loc);
@@ -784,6 +790,18 @@ namespace Mono.CSharp {
return null;
}
+ if (args == null && type.IsStruct) {
+ bool includes_empty = false;
+ foreach (MethodSpec ctor in ctors) {
+ if (ctor.Parameters.IsEmpty) {
+ includes_empty = true;
+ }
+ }
+
+ if (!includes_empty)
+ return null;
+ }
+
var r = new OverloadResolver (ctors, OverloadResolver.Restrictions.NoBaseMembers, loc);
if (!rc.HasSet (ResolveContext.Options.BaseInitializer)) {
r.InstanceQualifier = new ConstructorInstanceQualifier (type);
@@ -801,7 +819,8 @@ namespace Mono.CSharp {
ReadAccess = 1 << 3,
EmptyArguments = 1 << 4,
IgnoreArity = 1 << 5,
- IgnoreAmbiguity = 1 << 6
+ IgnoreAmbiguity = 1 << 6,
+ NameOfExcluded = 1 << 7,
}
//
@@ -814,107 +833,117 @@ namespace Mono.CSharp {
if (members == null)
return null;
- MemberSpec non_method = null;
- MemberSpec ambig_non_method = null;
+ Expression expr;
do {
- for (int i = 0; i < members.Count; ++i) {
- var member = members[i];
+ expr = MemberLookupToExpression (rc, members, errorMode, queried_type, name, arity, restrictions, loc);
+ if (expr != null)
+ return expr;
- // HACK: for events because +=/-= can appear at same class only, should use OverrideToBase there
- if ((member.Modifiers & Modifiers.OVERRIDE) != 0 && member.Kind != MemberKind.Event)
- continue;
+ if (members [0].DeclaringType.BaseType == null)
+ members = null;
+ else
+ members = MemberCache.FindMembers (members [0].DeclaringType.BaseType, name, false);
+ } while (members != null);
- if ((member.Modifiers & Modifiers.BACKING_FIELD) != 0 || member.Kind == MemberKind.Operator)
- continue;
+ return expr;
+ }
- if ((arity > 0 || (restrictions & MemberLookupRestrictions.ExactArity) != 0) && member.Arity != arity)
- continue;
+ public static Expression MemberLookupToExpression (IMemberContext rc, IList<MemberSpec> members, bool errorMode, TypeSpec queried_type, string name, int arity, MemberLookupRestrictions restrictions, Location loc)
+ {
+ MemberSpec non_method = null;
+ MemberSpec ambig_non_method = null;
- if (!errorMode) {
- if (!member.IsAccessible (rc))
- continue;
+ for (int i = 0; i < members.Count; ++i) {
+ var member = members [i];
- //
- // With runtime binder we can have a situation where queried type is inaccessible
- // because it came via dynamic object, the check about inconsisted accessibility
- // had no effect as the type was unknown during compilation
- //
- // class A {
- // private class N { }
- //
- // public dynamic Foo ()
- // {
- // return new N ();
- // }
- // }
- //
- if (rc.Module.Compiler.IsRuntimeBinder && !member.DeclaringType.IsAccessible (rc))
- continue;
- }
+ // HACK: for events because +=/-= can appear at same class only, should use OverrideToBase there
+ if ((member.Modifiers & Modifiers.OVERRIDE) != 0 && member.Kind != MemberKind.Event)
+ continue;
- if ((restrictions & MemberLookupRestrictions.InvocableOnly) != 0) {
- if (member is MethodSpec) {
- //
- // Interface members that are hidden by class members are removed from the set. This
- // step only has an effect if T is a type parameter and T has both an effective base
- // class other than object and a non-empty effective interface set
- //
- var tps = queried_type as TypeParameterSpec;
- if (tps != null && tps.HasTypeConstraint)
- members = RemoveHiddenTypeParameterMethods (members);
+ if ((member.Modifiers & Modifiers.BACKING_FIELD) != 0 || member.Kind == MemberKind.Operator)
+ continue;
- return new MethodGroupExpr (members, queried_type, loc);
- }
+ if ((arity > 0 || (restrictions & MemberLookupRestrictions.ExactArity) != 0) && member.Arity != arity)
+ continue;
- if (!Invocation.IsMemberInvocable (member))
- continue;
- }
+ if (!errorMode) {
+ if (!member.IsAccessible (rc))
+ continue;
- if (non_method == null || member is MethodSpec || non_method.IsNotCSharpCompatible) {
- non_method = member;
- } else if (!errorMode && !member.IsNotCSharpCompatible) {
- //
- // Interface members that are hidden by class members are removed from the set when T is a type parameter and
- // T has both an effective base class other than object and a non-empty effective interface set.
+ //
+ // With runtime binder we can have a situation where queried type is inaccessible
+ // because it came via dynamic object, the check about inconsisted accessibility
+ // had no effect as the type was unknown during compilation
+ //
+ // class A {
+ // private class N { }
+ //
+ // public dynamic Foo ()
+ // {
+ // return new N ();
+ // }
+ // }
+ //
+ if (rc.Module.Compiler.IsRuntimeBinder && !member.DeclaringType.IsAccessible (rc))
+ continue;
+ }
+
+ if ((restrictions & MemberLookupRestrictions.InvocableOnly) != 0) {
+ if (member is MethodSpec) {
//
- // The spec has more complex rules but we simply remove all members declared in an interface declaration.
+ // Interface members that are hidden by class members are removed from the set. This
+ // step only has an effect if T is a type parameter and T has both an effective base
+ // class other than object and a non-empty effective interface set
//
var tps = queried_type as TypeParameterSpec;
- if (tps != null && tps.HasTypeConstraint) {
- if (non_method.DeclaringType.IsClass && member.DeclaringType.IsInterface)
- continue;
-
- if (non_method.DeclaringType.IsInterface && member.DeclaringType.IsInterface) {
- non_method = member;
- continue;
- }
- }
+ if (tps != null && tps.HasTypeConstraint)
+ members = RemoveHiddenTypeParameterMethods (members);
- ambig_non_method = member;
+ return new MethodGroupExpr (members, queried_type, loc);
}
+
+ if (!Invocation.IsMemberInvocable (member))
+ continue;
}
- if (non_method != null) {
- if (ambig_non_method != null && rc != null && (restrictions & MemberLookupRestrictions.IgnoreAmbiguity) == 0) {
- var report = rc.Module.Compiler.Report;
- report.SymbolRelatedToPreviousError (non_method);
- report.SymbolRelatedToPreviousError (ambig_non_method);
- report.Error (229, loc, "Ambiguity between `{0}' and `{1}'",
- non_method.GetSignatureForError (), ambig_non_method.GetSignatureForError ());
+ if (non_method == null || member is MethodSpec || non_method.IsNotCSharpCompatible) {
+ non_method = member;
+ } else if (!errorMode && !member.IsNotCSharpCompatible) {
+ //
+ // Interface members that are hidden by class members are removed from the set when T is a type parameter and
+ // T has both an effective base class other than object and a non-empty effective interface set.
+ //
+ // The spec has more complex rules but we simply remove all members declared in an interface declaration.
+ //
+ var tps = queried_type as TypeParameterSpec;
+ if (tps != null && tps.HasTypeConstraint) {
+ if (non_method.DeclaringType.IsClass && member.DeclaringType.IsInterface)
+ continue;
+
+ if (non_method.DeclaringType.IsInterface && member.DeclaringType.IsInterface) {
+ non_method = member;
+ continue;
+ }
}
- if (non_method is MethodSpec)
- return new MethodGroupExpr (members, queried_type, loc);
+ ambig_non_method = member;
+ }
+ }
- return ExprClassFromMemberInfo (non_method, loc);
+ if (non_method != null) {
+ if (ambig_non_method != null && rc != null && (restrictions & MemberLookupRestrictions.IgnoreAmbiguity) == 0) {
+ var report = rc.Module.Compiler.Report;
+ report.SymbolRelatedToPreviousError (non_method);
+ report.SymbolRelatedToPreviousError (ambig_non_method);
+ report.Error (229, loc, "Ambiguity between `{0}' and `{1}'",
+ non_method.GetSignatureForError (), ambig_non_method.GetSignatureForError ());
}
- if (members[0].DeclaringType.BaseType == null)
- members = null;
- else
- members = MemberCache.FindMembers (members[0].DeclaringType.BaseType, name, false);
+ if (non_method is MethodSpec)
+ return new MethodGroupExpr (members, queried_type, loc);
- } while (members != null);
+ return ExprClassFromMemberInfo (non_method, loc);
+ }
return null;
}
@@ -1026,7 +1055,11 @@ namespace Mono.CSharp {
static Expression GetOperatorTrueOrFalse (ResolveContext ec, Expression e, bool is_true, Location loc)
{
var op = is_true ? Operator.OpType.True : Operator.OpType.False;
- var methods = MemberCache.GetUserOperator (e.type, op, false);
+ var type = e.type;
+ if (type.IsNullableType)
+ type = Nullable.NullableInfo.GetUnderlyingType (type);
+
+ var methods = MemberCache.GetUserOperator (type, op, false);
if (methods == null)
return null;
@@ -2499,13 +2532,13 @@ namespace Mono.CSharp {
}
protected ATypeNameExpression (string name, int arity, Location l)
- : this (name, new UnboundTypeArguments (arity), l)
+ : this (name, new UnboundTypeArguments (arity, l), l)
{
}
#region Properties
- protected int Arity {
+ public int Arity {
get {
return targs == null ? 0 : targs.Count;
}
@@ -2541,11 +2574,6 @@ namespace Mono.CSharp {
(targs == null || targs.Equals (atne.targs));
}
- protected void Error_OpenGenericTypeIsNotAllowed (IMemberContext mc)
- {
- mc.Module.Compiler.Report.Error (7003, Location, "Unbound generic name is not valid in this context");
- }
-
public override int GetHashCode ()
{
return Name.GetHashCode ();
@@ -2681,8 +2709,7 @@ namespace Mono.CSharp {
return ct;
}
- if (!allowUnboundTypeArguments)
- Error_OpenGenericTypeIsNotAllowed (mc);
+ targs.Resolve (mc, allowUnboundTypeArguments);
return new GenericOpenTypeExpr (fne.Type, loc);
}
@@ -2694,7 +2721,7 @@ namespace Mono.CSharp {
return fne;
}
- if (Arity == 0 && Name == "dynamic" && mc.Module.Compiler.Settings.Version > LanguageVersion.V_3) {
+ if (Arity == 0 && Name == "dynamic" && !(mc is NamespaceContainer) && mc.Module.Compiler.Settings.Version > LanguageVersion.V_3) {
if (!mc.Module.PredefinedAttributes.Dynamic.IsDefined) {
mc.Module.Compiler.Report.Error (1980, Location,
"Dynamic keyword requires `{0}' to be defined. Are you missing System.Core.dll assembly reference?",
@@ -2817,7 +2844,7 @@ namespace Mono.CSharp {
me = me.ResolveMemberAccess (rc, null, null);
if (Arity > 0) {
- targs.Resolve (rc);
+ targs.Resolve (rc, false);
me.SetTypeArguments (rc, targs);
}
@@ -2838,16 +2865,19 @@ namespace Mono.CSharp {
}
}
- var mg = NamespaceContainer.LookupStaticUsings (rc, Name, Arity, loc);
- if (mg != null) {
+ var expr = NamespaceContainer.LookupStaticUsings (rc, Name, Arity, loc);
+ if (expr != null) {
if (Arity > 0) {
- targs.Resolve (rc);
- mg.SetTypeArguments (rc, targs);
+ targs.Resolve (rc, false);
+
+ var me = expr as MemberExpr;
+ if (me != null)
+ me.SetTypeArguments (rc, targs);
}
- return mg;
+ return expr;
}
- if (Name == "nameof")
+ if ((restrictions & MemberLookupRestrictions.NameOfExcluded) == 0 && Name == "nameof")
return new NameOf (this);
if (errorMode) {
@@ -3113,7 +3143,7 @@ namespace Mono.CSharp {
return this;
}
- public void Error_NamespaceDoesNotExist (IMemberContext ctx, string name, int arity)
+ public void Error_NamespaceDoesNotExist (IMemberContext ctx, string name, int arity, Location loc)
{
var retval = Namespace.LookupType (ctx, name, arity, LookupMode.IgnoreAccessibility, loc);
if (retval != null) {
@@ -3191,6 +3221,11 @@ namespace Mono.CSharp {
{
return ns.LookupTypeOrNamespace (ctx, name, arity, mode, loc);
}
+
+ public override string ToString ()
+ {
+ return Namespace.Name;
+ }
}
/// <summary>
@@ -3704,13 +3739,49 @@ namespace Mono.CSharp {
int arity = type_arguments == null ? 0 : type_arguments.Count;
- candidates = candidates.Container.LookupExtensionMethod (candidates.Context, ExtensionExpression.Type, Name, arity, candidates.LookupIndex);
+ candidates = candidates.Container.LookupExtensionMethod (candidates.Context, Name, arity, candidates.LookupIndex);
if (candidates == null)
return null;
return candidates.Methods.Cast<MemberSpec> ().ToList ();
}
+ public static bool IsExtensionTypeCompatible (TypeSpec argType, TypeSpec extensionType)
+ {
+ //
+ // Indentity, implicit reference or boxing conversion must exist for the extension parameter
+ //
+ // LAMESPEC: or implicit type parameter conversion
+ //
+ return argType == extensionType ||
+ TypeSpecComparer.IsEqual (argType, extensionType) ||
+ Convert.ImplicitReferenceConversionExists (argType, extensionType, false) ||
+ Convert.ImplicitBoxingConversion (null, argType, extensionType) != null;
+ }
+
+ public bool ResolveNameOf (ResolveContext rc, MemberAccess ma)
+ {
+ rc.Report.Error (8093, ma.Location, "An argument to nameof operator cannot be extension method group");
+
+ // Not included in C#6
+ /*
+ ExtensionExpression = ExtensionExpression.Resolve (rc);
+ if (ExtensionExpression == null)
+ return false;
+
+ var argType = ExtensionExpression.Type;
+ foreach (MethodSpec candidate in Candidates) {
+ if (ExtensionMethodGroupExpr.IsExtensionTypeCompatible (argType, candidate.Parameters.ExtensionMethodType))
+ return true;
+ }
+
+ // TODO: Scan full hierarchy
+
+ ma.Error_TypeDoesNotContainDefinition (rc, argType, ma.Name);
+ */
+ return false;
+ }
+
public override MethodGroupExpr LookupExtensionMethod (ResolveContext rc)
{
// We are already here
@@ -3763,14 +3834,15 @@ namespace Mono.CSharp {
bool OverloadResolver.IErrorHandler.ArgumentMismatch (ResolveContext rc, MemberSpec best, Argument arg, int index)
{
rc.Report.SymbolRelatedToPreviousError (best);
- rc.Report.Error (1928, loc,
- "Type `{0}' does not contain a member `{1}' and the best extension method overload `{2}' has some invalid arguments",
- queried_type.GetSignatureForError (), Name, best.GetSignatureForError ());
if (index == 0) {
rc.Report.Error (1929, loc,
- "Extension method instance type `{0}' cannot be converted to `{1}'",
- arg.Type.GetSignatureForError (), ((MethodSpec)best).Parameters.ExtensionMethodType.GetSignatureForError ());
+ "Type `{0}' does not contain a member `{1}' and the best extension method overload `{2}' requires an instance of type `{3}'",
+ queried_type.GetSignatureForError (), Name, best.GetSignatureForError (), ((MethodSpec)best).Parameters.ExtensionMethodType.GetSignatureForError ());
+ } else {
+ rc.Report.Error (1928, loc,
+ "Type `{0}' does not contain a member `{1}' and the best extension method overload `{2}' has some invalid arguments",
+ queried_type.GetSignatureForError (), Name, best.GetSignatureForError ());
}
return true;
@@ -3978,6 +4050,16 @@ namespace Mono.CSharp {
Name, target.GetSignatureForError ());
}
+ public bool HasAccessibleCandidate (ResolveContext rc)
+ {
+ foreach (var candidate in Candidates) {
+ if (candidate.IsAccessible (rc))
+ return true;
+ }
+
+ return false;
+ }
+
public static bool IsExtensionMethodArgument (Expression expr)
{
//
@@ -4127,7 +4209,7 @@ namespace Mono.CSharp {
return null;
int arity = type_arguments == null ? 0 : type_arguments.Count;
- var methods = rc.LookupExtensionMethod (InstanceExpression.Type, Methods[0].Name, arity);
+ var methods = rc.LookupExtensionMethod (Methods[0].Name, arity);
if (methods == null)
return null;
@@ -4596,8 +4678,17 @@ namespace Mono.CSharp {
//
// Tie-breaking rules are applied only for equivalent parameter types
//
- if (!are_equivalent)
+ if (!are_equivalent) {
+ //
+ // LAMESPEC: A candidate with less default parameters is still better when there
+ // is no better expression conversion
+ //
+ if (candidate_pd.Count < best_pd.Count && !candidate_params && best_pd.FixedParameters [j].HasDefaultValue) {
+ return true;
+ }
+
return false;
+ }
//
// If candidate is applicable in its normal form and best has a params array and is applicable
@@ -4724,11 +4815,23 @@ namespace Mono.CSharp {
// one being the virtual base for the parameter types and modifiers.
//
// A return value rates candidate method compatibility,
- // 0 = the best, int.MaxValue = the worst
// -1 = fatal error
+ // 0 = the best, int.MaxValue = the worst
//
int IsApplicable (ResolveContext ec, ref Arguments arguments, int arg_count, ref MemberSpec candidate, IParametersMember pm, ref bool params_expanded_form, ref bool dynamicArgument, ref TypeSpec returnType, bool errorMode)
{
+ //
+ // Each step has allocated 10 values, it can overflow for
+ // more than 10 arguments but that's ok as it's used for
+ // better error reporting only
+ //
+ const int ArgumentCountMismatch = 1000000000;
+ const int NamedArgumentsMismatch = 100000000;
+ const int DefaultArgumentMismatch = 10000000;
+ const int UnexpectedTypeArguments = 1000000;
+ const int TypeArgumentsMismatch = 100000;
+ const int InflatedTypesMismatch = 10000;
+
// Parameters of most-derived type used mainly for named and optional parameters
var pd = pm.Parameters;
@@ -4761,17 +4864,17 @@ namespace Mono.CSharp {
param_count--;
} else if (arg_count > param_count) {
int args_gap = System.Math.Abs (arg_count - param_count);
- return int.MaxValue - 10000 + args_gap;
+ return ArgumentCountMismatch + args_gap;
} else if (arg_count < param_count - optional_count) {
int args_gap = System.Math.Abs (param_count - optional_count - arg_count);
- return int.MaxValue - 10000 + args_gap;
+ return ArgumentCountMismatch + args_gap;
}
} else if (arg_count != param_count) {
int args_gap = System.Math.Abs (arg_count - param_count);
if (!cpd.HasParams)
- return int.MaxValue - 10000 + args_gap;
+ return ArgumentCountMismatch + args_gap;
if (arg_count < param_count - 1)
- return int.MaxValue - 10000 + args_gap;
+ return ArgumentCountMismatch + args_gap;
}
// Resize to fit optional arguments
@@ -4808,7 +4911,7 @@ namespace Mono.CSharp {
// Named parameter not found
if (index < 0)
- return (i + 1) * 3;
+ return NamedArgumentsMismatch - i;
// already reordered
if (index == i)
@@ -4824,8 +4927,8 @@ namespace Mono.CSharp {
++arg_count;
temp = null;
} else {
- if (index == arg_count)
- return (i + 1) * 3;
+ if (index == arg_count)
+ return NamedArgumentsMismatch - i - 1;
temp = arguments [index];
@@ -4862,7 +4965,7 @@ namespace Mono.CSharp {
// Don't do any expensive checks when the candidate cannot succeed
//
if (arg_count != param_count && !cpd.HasParams)
- return (param_count - arg_count) * 2 + 1;
+ return DefaultArgumentMismatch - System.Math.Abs (param_count - arg_count);
var dep = candidate.GetMissingDependencies ();
if (dep != null) {
@@ -4879,7 +4982,7 @@ namespace Mono.CSharp {
if (type_arguments != null) {
var g_args_count = ms.Arity;
if (g_args_count != type_arguments.Count)
- return int.MaxValue - 20000 + System.Math.Abs (type_arguments.Count - g_args_count);
+ return TypeArgumentsMismatch - System.Math.Abs (type_arguments.Count - g_args_count);
if (type_arguments.Arguments != null)
ms = ms.MakeGenericMethod (ec, type_arguments.Arguments);
@@ -4911,7 +5014,7 @@ namespace Mono.CSharp {
TypeSpec[] i_args = ti.InferMethodArguments (ec, ms);
if (i_args == null)
- return ti.InferenceScore - 20000;
+ return TypeArgumentsMismatch - ti.InferenceScore;
//
// Clear any error messages when the result was success
@@ -4921,9 +5024,10 @@ namespace Mono.CSharp {
if (i_args.Length != 0) {
if (!errorMode) {
- foreach (var ta in i_args) {
+ for (int i = 0; i < i_args.Length; ++i) {
+ var ta = i_args [i];
if (!ta.IsAccessible (ec))
- return ti.InferenceScore - 10000;
+ return TypeArgumentsMismatch - i;
}
}
@@ -4936,7 +5040,7 @@ namespace Mono.CSharp {
//
if (!CheckInflatedArguments (ms)) {
candidate = ms;
- return int.MaxValue - 25000;
+ return InflatedTypesMismatch;
}
//
@@ -4959,7 +5063,7 @@ namespace Mono.CSharp {
ptypes = pd.Types;
} else {
if (type_arguments != null)
- return int.MaxValue - 15000;
+ return UnexpectedTypeArguments;
ptypes = cpd.Types;
}
@@ -5025,15 +5129,7 @@ namespace Mono.CSharp {
score = 1;
if (!params_expanded_form) {
if (a.IsExtensionType) {
- //
- // Indentity, implicit reference or boxing conversion must exist for the extension parameter
- //
- // LAMESPEC: or implicit type parameter conversion
- //
- var at = a.Type;
- if (at == pt || TypeSpecComparer.IsEqual (at, pt) ||
- Convert.ImplicitReferenceConversionExists (at, pt, false) ||
- Convert.ImplicitBoxingConversion (null, at, pt) != null) {
+ if (ExtensionMethodGroupExpr.IsExtensionTypeCompatible (a.Type, pt)) {
score = 0;
continue;
}
@@ -5120,31 +5216,36 @@ namespace Mono.CSharp {
// is used and argument is not of dynamic type
//
if (((argument.Modifier | param_mod) & Parameter.Modifier.RefOutMask) != 0) {
- if (argument.Type != parameter) {
+ var arg_type = argument.Type;
+
+ if ((argument.Modifier & Parameter.Modifier.RefOutMask) != (param_mod & Parameter.Modifier.RefOutMask)) {
+ //
+ // Using dynamic for ref/out parameter can still succeed at runtime
+ //
+ if (arg_type.BuiltinType == BuiltinTypeSpec.Type.Dynamic && (argument.Modifier & Parameter.Modifier.RefOutMask) == 0 && (restrictions & Restrictions.CovariantDelegate) == 0)
+ return -1;
+
+ return 1;
+ }
+
+ if (arg_type != parameter) {
+ if (arg_type == InternalType.VarOutType)
+ return 0;
+
//
// Do full equality check after quick path
//
- if (!TypeSpecComparer.IsEqual (argument.Type, parameter)) {
+ if (!TypeSpecComparer.IsEqual (arg_type, parameter)) {
//
// Using dynamic for ref/out parameter can still succeed at runtime
//
- if (argument.Type.BuiltinType == BuiltinTypeSpec.Type.Dynamic && (argument.Modifier & Parameter.Modifier.RefOutMask) == 0 && (restrictions & Restrictions.CovariantDelegate) == 0)
+ if (arg_type.BuiltinType == BuiltinTypeSpec.Type.Dynamic && (argument.Modifier & Parameter.Modifier.RefOutMask) == 0 && (restrictions & Restrictions.CovariantDelegate) == 0)
return -1;
return 2;
}
}
- if ((argument.Modifier & Parameter.Modifier.RefOutMask) != (param_mod & Parameter.Modifier.RefOutMask)) {
- //
- // Using dynamic for ref/out parameter can still succeed at runtime
- //
- if (argument.Type.BuiltinType == BuiltinTypeSpec.Type.Dynamic && (argument.Modifier & Parameter.Modifier.RefOutMask) == 0 && (restrictions & Restrictions.CovariantDelegate) == 0)
- return -1;
-
- return 1;
- }
-
} else {
if (argument.Type.BuiltinType == BuiltinTypeSpec.Type.Dynamic && (restrictions & Restrictions.CovariantDelegate) == 0)
return -1;
@@ -5717,10 +5818,20 @@ namespace Mono.CSharp {
if ((a.Modifier & Parameter.Modifier.RefOutMask) != (p_mod & Parameter.Modifier.RefOutMask))
break;
- if (a.Expr.Type == pt || TypeSpecComparer.IsEqual (a.Expr.Type, pt))
+ var arg_type = a.Type;
+ if (arg_type == pt)
continue;
- break;
+ if (arg_type == InternalType.VarOutType) {
+ //
+ // Set underlying variable type based on parameter type
+ //
+ ((DeclarationExpression)a.Expr).Variable.Type = pt;
+ continue;
+ }
+
+ if (!TypeSpecComparer.IsEqual (arg_type, pt))
+ break;
}
NamedArgument na = a as NamedArgument;
@@ -5754,7 +5865,14 @@ namespace Mono.CSharp {
continue;
if ((restrictions & Restrictions.CovariantDelegate) != 0 && !Delegate.IsTypeCovariant (ec, a.Expr.Type, pt)) {
- custom_errors.NoArgumentMatch (ec, member);
+ if (a.IsExtensionType) {
+ // TODO: Should report better message type, something similar to CS1928/1929 instead of
+ // CS1061 but that still better than confusing CS0123
+ var ma = new MemberAccess (a.Expr, member.Name, loc);
+ ma.Error_TypeDoesNotContainDefinition (ec, a.Expr.Type, ma.Name);
+ } else {
+ custom_errors.NoArgumentMatch (ec, member);
+ }
return false;
}
@@ -5792,6 +5910,20 @@ namespace Mono.CSharp {
}
if (a_idx != arg_count) {
+ //
+ // Convert all var out argument to error type for less confusing error reporting
+ // when no matching overload is found
+ //
+ for (; a_idx < arg_count; a_idx++) {
+ var arg = args [a_idx];
+ if (arg == null)
+ continue;
+
+ if (arg.Type == InternalType.VarOutType) {
+ ((DeclarationExpression)arg.Expr).Variable.Type = InternalType.ErrorType;
+ }
+ }
+
ReportArgumentMismatch (ec, a_pos, member, a, pd, pt);
return false;
}
@@ -6525,6 +6657,7 @@ namespace Mono.CSharp {
sealed class PropertyExpr : PropertyOrIndexerExpr<PropertySpec>
{
Arguments arguments;
+ FieldExpr backing_field;
public PropertyExpr (PropertySpec spec, Location l)
: base (l)
@@ -6556,6 +6689,13 @@ namespace Mono.CSharp {
}
}
+ public bool IsAutoPropertyAccess {
+ get {
+ var prop = best_candidate.MemberDefinition as Property;
+ return prop != null && prop.BackingField != null;
+ }
+ }
+
public override bool IsInstance {
get {
return !IsStatic;
@@ -6697,6 +6837,11 @@ namespace Mono.CSharp {
public override void EmitAssign (EmitContext ec, Expression source, bool leave_copy, bool isCompound)
{
+ if (backing_field != null) {
+ backing_field.EmitAssign (ec, source, false, false);
+ return;
+ }
+
Arguments args;
LocalTemporary await_source_arg = null;
@@ -6766,6 +6911,21 @@ namespace Mono.CSharp {
public override void FlowAnalysis (FlowAnalysisContext fc)
{
+ var prop = best_candidate.MemberDefinition as Property;
+ if (prop != null && prop.BackingField != null) {
+ var var = InstanceExpression as IVariableReference;
+ if (var != null) {
+ var vi = var.VariableInfo;
+ if (vi != null && !fc.IsStructFieldDefinitelyAssigned (vi, prop.BackingField.Name)) {
+ fc.Report.Error (8079, loc, "Use of possibly unassigned auto-implemented property `{0}'", Name);
+ return;
+ }
+
+ if (TypeSpec.IsValueType (InstanceExpression.Type) && InstanceExpression is VariableReference)
+ return;
+ }
+ }
+
base.FlowAnalysis (fc);
if (conditional_access_receiver)
@@ -6810,6 +6970,52 @@ namespace Mono.CSharp {
return this;
}
+ protected override bool ResolveAutopropertyAssignment (ResolveContext rc, Expression rhs)
+ {
+ var prop = best_candidate.MemberDefinition as Property;
+ if (prop == null)
+ return false;
+
+ if (!rc.HasSet (ResolveContext.Options.ConstructorScope))
+ return false;
+
+ var spec = prop.BackingField;
+ if (spec == null)
+ return false;
+
+ if (rc.IsStatic != spec.IsStatic)
+ return false;
+
+ if (!spec.IsStatic && (!(InstanceExpression is This) || InstanceExpression is BaseThis))
+ return false;
+
+ backing_field = new FieldExpr (prop.BackingField, loc);
+ backing_field.ResolveLValue (rc, rhs);
+ return true;
+ }
+
+ public void SetBackingFieldAssigned (FlowAnalysisContext fc)
+ {
+ if (backing_field != null) {
+ backing_field.SetFieldAssigned (fc);
+ return;
+ }
+
+ if (!IsAutoPropertyAccess)
+ return;
+
+ var prop = best_candidate.MemberDefinition as Property;
+ if (prop != null && prop.BackingField != null) {
+ bool lvalue_instance = best_candidate.DeclaringType.IsStruct;
+ if (lvalue_instance) {
+ var var = InstanceExpression as IVariableReference;
+ if (var != null && var.VariableInfo != null) {
+ fc.SetStructFieldAssigned (var.VariableInfo, prop.BackingField.Name);
+ }
+ }
+ }
+ }
+
public override void SetTypeArguments (ResolveContext ec, TypeArguments ta)
{
Error_TypeArgumentsCannotBeUsed (ec, "property", GetSignatureForError (), loc);
@@ -6879,7 +7085,7 @@ namespace Mono.CSharp {
return this;
}
- public override Expression DoResolveLValue (ResolveContext ec, Expression right_side)
+ public override Expression DoResolveLValue (ResolveContext rc, Expression right_side)
{
if (ConditionalAccess)
throw new NotSupportedException ("null propagating operator assignment");
@@ -6887,29 +7093,50 @@ namespace Mono.CSharp {
if (right_side == EmptyExpression.OutAccess) {
// TODO: best_candidate can be null at this point
INamedBlockVariable variable = null;
- if (best_candidate != null && ec.CurrentBlock.ParametersBlock.TopBlock.GetLocalName (best_candidate.Name, ec.CurrentBlock, ref variable) && variable is Linq.RangeVariable) {
- ec.Report.Error (1939, loc, "A range variable `{0}' may not be passes as `ref' or `out' parameter",
+ if (best_candidate != null && rc.CurrentBlock.ParametersBlock.TopBlock.GetLocalName (best_candidate.Name, rc.CurrentBlock, ref variable) && variable is Linq.RangeVariable) {
+ rc.Report.Error (1939, loc, "A range variable `{0}' may not be passes as `ref' or `out' parameter",
best_candidate.Name);
} else {
- right_side.DoResolveLValue (ec, this);
+ right_side.DoResolveLValue (rc, this);
}
return null;
}
if (eclass == ExprClass.Unresolved) {
- var expr = OverloadResolve (ec, right_side);
+ var expr = OverloadResolve (rc, right_side);
if (expr == null)
return null;
if (expr != this)
- return expr.ResolveLValue (ec, right_side);
+ return expr.ResolveLValue (rc, right_side);
} else {
- ResolveInstanceExpression (ec, right_side);
+ ResolveInstanceExpression (rc, right_side);
}
- if (!ResolveSetter (ec))
+ if (!best_candidate.HasSet) {
+ if (ResolveAutopropertyAssignment (rc, right_side))
+ return this;
+
+ rc.Report.Error (200, loc, "Property or indexer `{0}' cannot be assigned to (it is read-only)",
+ GetSignatureForError ());
return null;
+ }
+ if (!best_candidate.Set.IsAccessible (rc) || !best_candidate.Set.DeclaringType.IsAccessible (rc)) {
+ if (best_candidate.HasDifferentAccessibility) {
+ rc.Report.SymbolRelatedToPreviousError (best_candidate.Set);
+ rc.Report.Error (272, loc, "The property or indexer `{0}' cannot be used in this context because the set accessor is inaccessible",
+ GetSignatureForError ());
+ } else {
+ rc.Report.SymbolRelatedToPreviousError (best_candidate.Set);
+ ErrorIsInaccesible (rc, best_candidate.GetSignatureForError (), loc);
+ }
+ }
+
+ if (best_candidate.HasDifferentAccessibility)
+ CheckProtectedMemberAccess (rc, best_candidate.Set);
+
+ setter = CandidateToBaseOverride (rc, best_candidate.Set);
return this;
}
@@ -6999,30 +7226,9 @@ namespace Mono.CSharp {
return true;
}
- bool ResolveSetter (ResolveContext rc)
+ protected virtual bool ResolveAutopropertyAssignment (ResolveContext rc, Expression rhs)
{
- if (!best_candidate.HasSet) {
- rc.Report.Error (200, loc, "Property or indexer `{0}' cannot be assigned to (it is read-only)",
- GetSignatureForError ());
- return false;
- }
-
- if (!best_candidate.Set.IsAccessible (rc) || !best_candidate.Set.DeclaringType.IsAccessible (rc)) {
- if (best_candidate.HasDifferentAccessibility) {
- rc.Report.SymbolRelatedToPreviousError (best_candidate.Set);
- rc.Report.Error (272, loc, "The property or indexer `{0}' cannot be used in this context because the set accessor is inaccessible",
- GetSignatureForError ());
- } else {
- rc.Report.SymbolRelatedToPreviousError (best_candidate.Set);
- ErrorIsInaccesible (rc, best_candidate.GetSignatureForError (), loc);
- }
- }
-
- if (best_candidate.HasDifferentAccessibility)
- CheckProtectedMemberAccess (rc, best_candidate.Set);
-
- setter = CandidateToBaseOverride (rc, best_candidate.Set);
- return true;
+ return false;
}
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/eval.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/eval.cs
index aac77eee..af6bb33b 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/eval.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/eval.cs
@@ -860,13 +860,19 @@ namespace Mono.CSharp
public string GetUsing ()
{
+ if (source_file == null || source_file.Usings == null)
+ return string.Empty;
+
StringBuilder sb = new StringBuilder ();
// TODO:
//foreach (object x in ns.using_alias_list)
// sb.AppendFormat ("using {0};\n", x);
foreach (var ue in source_file.Usings) {
- sb.AppendFormat ("using {0};", ue.ToString ());
+ if (ue.Alias != null || ue.ResolvedExpression == null)
+ continue;
+
+ sb.AppendFormat("using {0};", ue.ToString ());
sb.Append (Environment.NewLine);
}
@@ -877,7 +883,11 @@ namespace Mono.CSharp
{
var res = new List<string> ();
- foreach (var ue in source_file.Usings) {
+ if (source_file == null || source_file.Usings == null)
+ return res;
+
+ foreach (var ue in source_file.Usings)
+ {
if (ue.Alias != null || ue.ResolvedExpression == null)
continue;
@@ -1274,7 +1284,7 @@ namespace Mono.CSharp
if (current_container.Containers != null)
{
- var existing = current_container.Containers.FirstOrDefault (l => l.Basename == tc.Basename);
+ var existing = current_container.Containers.FirstOrDefault (l => l.MemberName.Basename == tc.MemberName.Basename);
if (existing != null) {
current_container.RemoveContainer (existing);
undo_actions.Add (() => current_container.AddTypeContainer (existing));
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs
index 3a076077..821efe63 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/expression.cs
@@ -14,6 +14,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using SLE = System.Linq.Expressions;
+using System.Text;
#if STATIC
using MetaType = IKVM.Reflection.Type;
@@ -1541,7 +1542,12 @@ namespace Mono.CSharp
public override void Emit (EmitContext ec)
{
if (probe_type_expr == null) {
- EmitConstantMatch (ec);
+ if (ProbeType is WildcardPattern) {
+ expr.EmitSideEffect (ec);
+ ProbeType.Emit (ec);
+ } else {
+ EmitPatternMatch (ec);
+ }
return;
}
@@ -1556,7 +1562,7 @@ namespace Mono.CSharp
public override void EmitBranchable (EmitContext ec, Label target, bool on_true)
{
if (probe_type_expr == null) {
- EmitConstantMatch (ec);
+ EmitPatternMatch (ec);
} else {
EmitLoad (ec);
}
@@ -1564,7 +1570,7 @@ namespace Mono.CSharp
ec.Emit (on_true ? OpCodes.Brtrue : OpCodes.Brfalse, target);
}
- void EmitConstantMatch (EmitContext ec)
+ void EmitPatternMatch (EmitContext ec)
{
var no_match = ec.DefineLabel ();
var end = ec.DefineLabel ();
@@ -1595,22 +1601,42 @@ namespace Mono.CSharp
return;
}
+ var probe_type = ProbeType.Type;
+
Expr.Emit (ec);
- ec.Emit (OpCodes.Isinst, ProbeType.Type);
+ ec.Emit (OpCodes.Isinst, probe_type);
ec.Emit (OpCodes.Dup);
ec.Emit (OpCodes.Brfalse, no_match);
+ bool complex_pattern = ProbeType is ComplexPatternExpression;
+ Label prev = ec.RecursivePatternLabel;
+ if (complex_pattern)
+ ec.RecursivePatternLabel = ec.DefineLabel ();
+
if (number_mg != null) {
var ce = new CallEmitter ();
ce.Emit (ec, number_mg, number_args, loc);
} else {
+ if (TypeSpec.IsValueType (probe_type))
+ ec.Emit (OpCodes.Unbox_Any, probe_type);
+
ProbeType.Emit (ec);
- ec.Emit (OpCodes.Ceq);
+ if (complex_pattern) {
+ ec.EmitInt (1);
+ } else {
+ ec.Emit (OpCodes.Ceq);
+ }
}
ec.Emit (OpCodes.Br_S, end);
ec.MarkLabel (no_match);
ec.Emit (OpCodes.Pop);
+
+ if (complex_pattern)
+ ec.MarkLabel (ec.RecursivePatternLabel);
+
+ ec.RecursivePatternLabel = prev;
+
ec.EmitInt (0);
ec.MarkLabel (end);
}
@@ -1696,14 +1722,48 @@ namespace Mono.CSharp
protected override void ResolveProbeType (ResolveContext rc)
{
if (!(ProbeType is TypeExpr) && rc.Module.Compiler.Settings.Version == LanguageVersion.Experimental) {
- ProbeType = ProbeType.Resolve (rc, ResolveFlags.VariableOrValue | ResolveFlags.MethodGroup | ResolveFlags.Type);
- if (ProbeType == null)
+ if (ProbeType is PatternExpression) {
+ ProbeType.Resolve (rc);
+ return;
+ }
+
+ //
+ // Have to use session recording because we don't have reliable type probing
+ // mechanism (similar issue as in attributes resolving)
+ //
+ // TODO: This is still wrong because ResolveAsType can be destructive
+ //
+ var type_printer = new SessionReportPrinter ();
+ var prev_recorder = rc.Report.SetPrinter (type_printer);
+
+ probe_type_expr = ProbeType.ResolveAsType (rc);
+ type_printer.EndSession ();
+
+ if (probe_type_expr != null) {
+ type_printer.Merge (rc.Report.Printer);
+ rc.Report.SetPrinter (prev_recorder);
+ return;
+ }
+
+ var vexpr = ProbeType as VarExpr;
+ if (vexpr != null && vexpr.InferType (rc, expr)) {
+ probe_type_expr = vexpr.Type;
+ rc.Report.SetPrinter (prev_recorder);
return;
+ }
+
+ var expr_printer = new SessionReportPrinter ();
+ rc.Report.SetPrinter (expr_printer);
+ ProbeType = ProbeType.Resolve (rc);
+ expr_printer.EndSession ();
- if (ProbeType.eclass == ExprClass.Type) {
- probe_type_expr = ProbeType.Type;
+ if (ProbeType != null) {
+ expr_printer.Merge (rc.Report.Printer);
+ } else {
+ type_printer.Merge (rc.Report.Printer);
}
+ rc.Report.SetPrinter (prev_recorder);
return;
}
@@ -1732,6 +1792,10 @@ namespace Mono.CSharp
if (Expr.Type.IsNullableType) {
expr_unwrap = new Nullable.Unwrap (Expr);
expr_unwrap.Resolve (rc);
+ ProbeType = Convert.ImplicitConversion (rc, ProbeType, expr_unwrap.Type, loc);
+ } else if (ProbeType.Type == Expr.Type) {
+ // TODO: Better error handling
+ return new Binary (Binary.Operator.Equality, Expr, mc, loc).Resolve (rc);
} else if (ProbeType.Type.IsEnum || (ProbeType.Type.BuiltinType >= BuiltinTypeSpec.Type.Byte && ProbeType.Type.BuiltinType <= BuiltinTypeSpec.Type.Decimal)) {
var helper = rc.Module.CreatePatterMatchingHelper ();
number_mg = helper.NumberMatcher.Spec;
@@ -1750,7 +1814,17 @@ namespace Mono.CSharp
return this;
}
- throw new NotImplementedException ();
+ if (ProbeType is PatternExpression) {
+ if (!(ProbeType is WildcardPattern) && !Convert.ImplicitConversionExists (rc, ProbeType, Expr.Type)) {
+ ProbeType.Error_ValueCannotBeConverted (rc, Expr.Type, false);
+ }
+
+ return this;
+ }
+
+ // TODO: Better error message
+ rc.Report.Error (150, ProbeType.Location, "A constant value is expected");
+ return this;
}
Expression ResolveResultExpression (ResolveContext ec)
@@ -1899,6 +1973,339 @@ namespace Mono.CSharp
}
}
+ class WildcardPattern : PatternExpression
+ {
+ public WildcardPattern (Location loc)
+ : base (loc)
+ {
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ eclass = ExprClass.Value;
+ type = rc.BuiltinTypes.Object;
+ return this;
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ ec.EmitInt (1);
+ }
+ }
+
+ class RecursivePattern : ComplexPatternExpression
+ {
+ MethodGroupExpr operator_mg;
+ Arguments operator_args;
+
+ public RecursivePattern (ATypeNameExpression typeExpresion, Arguments arguments, Location loc)
+ : base (typeExpresion, loc)
+ {
+ Arguments = arguments;
+ }
+
+ public Arguments Arguments { get; private set; }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ type = TypeExpression.ResolveAsType (rc);
+ if (type == null)
+ return null;
+
+ var operators = MemberCache.GetUserOperator (type, Operator.OpType.Is, true);
+ if (operators == null) {
+ Error_TypeDoesNotContainDefinition (rc, type, Operator.GetName (Operator.OpType.Is) + " operator");
+ return null;
+ }
+
+ var ops = FindMatchingOverloads (operators);
+ if (ops == null) {
+ // TODO: better error message
+ Error_TypeDoesNotContainDefinition (rc, type, Operator.GetName (Operator.OpType.Is) + " operator");
+ return null;
+ }
+
+ bool dynamic_args;
+ Arguments.Resolve (rc, out dynamic_args);
+ if (dynamic_args)
+ throw new NotImplementedException ("dynamic argument");
+
+ var op = FindBestOverload (rc, ops);
+ if (op == null) {
+ // TODO: better error message
+ Error_TypeDoesNotContainDefinition (rc, type, Operator.GetName (Operator.OpType.Is) + " operator");
+ return null;
+ }
+
+ var op_types = op.Parameters.Types;
+ operator_args = new Arguments (op_types.Length);
+ operator_args.Add (new Argument (new EmptyExpression (type)));
+
+ for (int i = 0; i < Arguments.Count; ++i) {
+ // TODO: Needs releasing optimization
+ var lt = new LocalTemporary (op_types [i + 1]);
+ operator_args.Add (new Argument (lt, Argument.AType.Out));
+
+ if (comparisons == null)
+ comparisons = new Expression[Arguments.Count];
+
+ int arg_comp_index;
+ Expression expr;
+
+ var arg = Arguments [i];
+ var named = arg as NamedArgument;
+ if (named != null) {
+ arg_comp_index = op.Parameters.GetParameterIndexByName (named.Name) - 1;
+ expr = Arguments [arg_comp_index].Expr;
+ } else {
+ arg_comp_index = i;
+ expr = arg.Expr;
+ }
+
+ comparisons [arg_comp_index] = ResolveComparison (rc, expr, lt);
+ }
+
+ operator_mg = MethodGroupExpr.CreatePredefined (op, type, loc);
+
+ eclass = ExprClass.Value;
+ return this;
+ }
+
+ List<MethodSpec> FindMatchingOverloads (IList<MemberSpec> members)
+ {
+ int arg_count = Arguments.Count + 1;
+ List<MethodSpec> best = null;
+ foreach (MethodSpec method in members) {
+ var pm = method.Parameters;
+ if (pm.Count != arg_count)
+ continue;
+
+ // TODO: Needs more thorough operator checks elsewhere to avoid doing this every time
+ bool ok = true;
+ for (int ii = 1; ii < pm.Count; ++ii) {
+ if ((pm.FixedParameters [ii].ModFlags & Parameter.Modifier.OUT) == 0) {
+ ok = false;
+ break;
+ }
+ }
+
+ if (!ok)
+ continue;
+
+ if (best == null)
+ best = new List<MethodSpec> ();
+
+ best.Add (method);
+ }
+
+ return best;
+ }
+
+ MethodSpec FindBestOverload (ResolveContext rc, List<MethodSpec> methods)
+ {
+ for (int ii = 0; ii < Arguments.Count; ++ii) {
+ var arg = Arguments [ii];
+ var expr = arg.Expr;
+ if (expr is WildcardPattern)
+ continue;
+
+ var na = arg as NamedArgument;
+ for (int i = 0; i < methods.Count; ++i) {
+ var pd = methods [i].Parameters;
+
+ int index;
+ if (na != null) {
+ index = pd.GetParameterIndexByName (na.Name);
+ if (index < 1) {
+ methods.RemoveAt (i--);
+ continue;
+ }
+ } else {
+ index = ii + 1;
+ }
+
+ var m = pd.Types [index];
+ if (!Convert.ImplicitConversionExists (rc, expr, m))
+ methods.RemoveAt (i--);
+ }
+ }
+
+ if (methods.Count != 1)
+ return null;
+
+ return methods [0];
+ }
+
+ public override void EmitBranchable (EmitContext ec, Label target, bool on_true)
+ {
+ operator_mg.EmitCall (ec, operator_args, false);
+ ec.Emit (OpCodes.Brfalse, target);
+
+ base.EmitBranchable (ec, target, on_true);
+ }
+
+ static Expression ResolveComparison (ResolveContext rc, Expression expr, LocalTemporary lt)
+ {
+ if (expr is WildcardPattern)
+ return new EmptyExpression (expr.Type);
+
+ var recursive = expr as RecursivePattern;
+ expr = Convert.ImplicitConversionRequired (rc, expr, lt.Type, expr.Location);
+ if (expr == null)
+ return null;
+
+ if (recursive != null) {
+ recursive.SetParentInstance (lt);
+ return expr;
+ }
+
+ // TODO: Better error handling
+ return new Binary (Binary.Operator.Equality, lt, expr, expr.Location).Resolve (rc);
+ }
+
+ public void SetParentInstance (Expression instance)
+ {
+ operator_args [0] = new Argument (instance);
+ }
+ }
+
+ class PropertyPattern : ComplexPatternExpression
+ {
+ LocalTemporary instance;
+
+ public PropertyPattern (ATypeNameExpression typeExpresion, List<PropertyPatternMember> members, Location loc)
+ : base (typeExpresion, loc)
+ {
+ Members = members;
+ }
+
+ public List<PropertyPatternMember> Members { get; private set; }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ type = TypeExpression.ResolveAsType (rc);
+ if (type == null)
+ return null;
+
+ comparisons = new Expression[Members.Count];
+
+ // TODO: optimize when source is VariableReference, it'd save dup+pop
+ instance = new LocalTemporary (type);
+
+ for (int i = 0; i < Members.Count; i++) {
+ var lookup = Members [i];
+
+ var member = MemberLookup (rc, false, type, lookup.Name, 0, Expression.MemberLookupRestrictions.ExactArity, loc);
+ if (member == null) {
+ member = MemberLookup (rc, true, type, lookup.Name, 0, Expression.MemberLookupRestrictions.ExactArity, loc);
+ if (member != null) {
+ Expression.ErrorIsInaccesible (rc, member.GetSignatureForError (), loc);
+ continue;
+ }
+ }
+
+ if (member == null) {
+ Expression.Error_TypeDoesNotContainDefinition (rc, Location, Type, lookup.Name);
+ continue;
+ }
+
+ var pe = member as PropertyExpr;
+ if (pe == null || member is FieldExpr) {
+ rc.Report.Error (-2001, lookup.Location, "`{0}' is not a valid pattern member", lookup.Name);
+ continue;
+ }
+
+ // TODO: Obsolete checks
+ // TODO: check accessibility
+ if (pe != null && !pe.PropertyInfo.HasGet) {
+ rc.Report.Error (-2002, lookup.Location, "Property `{0}.get' accessor is required", pe.GetSignatureForError ());
+ continue;
+ }
+
+ var expr = lookup.Expr.Resolve (rc);
+ if (expr == null)
+ continue;
+
+ var me = (MemberExpr)member;
+ me.InstanceExpression = instance;
+
+ comparisons [i] = ResolveComparison (rc, expr, me);
+ }
+
+ eclass = ExprClass.Value;
+ return this;
+ }
+
+ static Expression ResolveComparison (ResolveContext rc, Expression expr, Expression instance)
+ {
+ if (expr is WildcardPattern)
+ return new EmptyExpression (expr.Type);
+
+ return new Is (instance, expr, expr.Location).Resolve (rc);
+ }
+
+ public override void EmitBranchable (EmitContext ec, Label target, bool on_true)
+ {
+ instance.Store (ec);
+
+ base.EmitBranchable (ec, target, on_true);
+ }
+ }
+
+ class PropertyPatternMember
+ {
+ public PropertyPatternMember (string name, Expression expr, Location loc)
+ {
+ Name = name;
+ Expr = expr;
+ Location = loc;
+ }
+
+ public string Name { get; private set; }
+ public Expression Expr { get; private set; }
+ public Location Location { get; private set; }
+ }
+
+ abstract class PatternExpression : Expression
+ {
+ protected PatternExpression (Location loc)
+ {
+ this.loc = loc;
+ }
+
+ public override Expression CreateExpressionTree (ResolveContext ec)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ abstract class ComplexPatternExpression : PatternExpression
+ {
+ protected Expression[] comparisons;
+
+ protected ComplexPatternExpression (ATypeNameExpression typeExpresion, Location loc)
+ : base (loc)
+ {
+ TypeExpression = typeExpresion;
+ }
+
+ public ATypeNameExpression TypeExpression { get; private set; }
+
+ public override void Emit (EmitContext ec)
+ {
+ EmitBranchable (ec, ec.RecursivePatternLabel, false);
+ }
+
+ public override void EmitBranchable (EmitContext ec, Label target, bool on_true)
+ {
+ if (comparisons != null) {
+ foreach (var comp in comparisons) {
+ comp.EmitBranchable (ec, target, false);
+ }
+ }
+ }
+ }
+
/// <summary>
/// Implementation of the `as' operator.
/// </summary>
@@ -2087,6 +2494,96 @@ namespace Mono.CSharp
return expr;
}
}
+
+ public class DeclarationExpression : Expression, IMemoryLocation
+ {
+ LocalVariableReference lvr;
+
+ public DeclarationExpression (FullNamedExpression variableType, LocalVariable variable)
+ {
+ VariableType = variableType;
+ Variable = variable;
+ this.loc = variable.Location;
+ }
+
+ public LocalVariable Variable { get; set; }
+ public Expression Initializer { get; set; }
+ public FullNamedExpression VariableType { get; set; }
+
+ public void AddressOf (EmitContext ec, AddressOp mode)
+ {
+ Variable.CreateBuilder (ec);
+
+ if (Initializer != null) {
+ lvr.EmitAssign (ec, Initializer, false, false);
+ }
+
+ lvr.AddressOf (ec, mode);
+ }
+
+ protected override void CloneTo (CloneContext clonectx, Expression t)
+ {
+ var target = (DeclarationExpression) t;
+
+ target.VariableType = (FullNamedExpression) VariableType.Clone (clonectx);
+
+ if (Initializer != null)
+ target.Initializer = Initializer.Clone (clonectx);
+ }
+
+ public override Expression CreateExpressionTree (ResolveContext rc)
+ {
+ rc.Report.Error (8046, loc, "An expression tree cannot contain a declaration expression");
+ return null;
+ }
+
+ bool DoResolveCommon (ResolveContext rc)
+ {
+ var var_expr = VariableType as VarExpr;
+ if (var_expr != null) {
+ type = InternalType.VarOutType;
+ } else {
+ type = VariableType.ResolveAsType (rc);
+ if (type == null)
+ return false;
+ }
+
+ if (Initializer != null) {
+ Initializer = Initializer.Resolve (rc);
+
+ if (var_expr != null && Initializer != null && var_expr.InferType (rc, Initializer)) {
+ type = var_expr.Type;
+ }
+ }
+
+ Variable.Type = type;
+ lvr = new LocalVariableReference (Variable, loc);
+
+ eclass = ExprClass.Variable;
+ return true;
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ if (DoResolveCommon (rc))
+ lvr.Resolve (rc);
+
+ return this;
+ }
+
+ public override Expression DoResolveLValue (ResolveContext rc, Expression right_side)
+ {
+ if (lvr == null && DoResolveCommon (rc))
+ lvr.ResolveLValue (rc, right_side);
+
+ return this;
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ throw new NotImplementedException ();
+ }
+ }
//
// C# 2.0 Default value expression
@@ -2683,11 +3180,16 @@ namespace Mono.CSharp
}
public Binary (Operator oper, Expression left, Expression right)
+ : this (oper, left, right, left.Location)
+ {
+ }
+
+ public Binary (Operator oper, Expression left, Expression right, Location loc)
{
this.oper = oper;
this.left = left;
this.right = right;
- this.loc = left.Location;
+ this.loc = loc;
}
#region Properties
@@ -4100,7 +4602,15 @@ namespace Mono.CSharp
return expr;
}
- enum_type = rc.Module.PredefinedTypes.Nullable.TypeSpec.MakeGenericType (rc.Module, new[] { enum_type });
+ var nullable = rc.Module.PredefinedTypes.Nullable;
+
+ //
+ // Don't try nullable version when nullable type is undefined
+ //
+ if (!nullable.IsDefined)
+ return null;
+
+ enum_type = nullable.TypeSpec.MakeGenericType (rc.Module, new[] { enum_type });
}
expr = ResolveOperatorPredefined (rc, rc.Module.GetPredefinedEnumAritmeticOperators (enum_type, true), false);
@@ -5703,9 +6213,11 @@ namespace Mono.CSharp
} else if ((conv = Convert.ImplicitConversion (ec, false_expr, true_type, loc)) != null) {
false_expr = conv;
} else {
- ec.Report.Error (173, true_expr.Location,
- "Type of conditional expression cannot be determined because there is no implicit conversion between `{0}' and `{1}'",
- true_type.GetSignatureForError (), false_type.GetSignatureForError ());
+ if (false_type != InternalType.ErrorType) {
+ ec.Report.Error (173, true_expr.Location,
+ "Type of conditional expression cannot be determined because there is no implicit conversion between `{0}' and `{1}'",
+ true_type.GetSignatureForError (), false_type.GetSignatureForError ());
+ }
return null;
}
}
@@ -5762,11 +6274,11 @@ namespace Mono.CSharp
var expr_true = fc.DefiniteAssignmentOnTrue;
var expr_false = fc.DefiniteAssignmentOnFalse;
- fc.DefiniteAssignment = new DefiniteAssignmentBitSet (expr_true);
+ fc.BranchDefiniteAssignment (expr_true);
true_expr.FlowAnalysis (fc);
var true_fc = fc.DefiniteAssignment;
- fc.DefiniteAssignment = new DefiniteAssignmentBitSet (expr_false);
+ fc.BranchDefiniteAssignment (expr_false);
false_expr.FlowAnalysis (fc);
fc.DefiniteAssignment &= true_fc;
@@ -6066,6 +6578,9 @@ namespace Mono.CSharp
void DoResolveBase (ResolveContext ec)
{
+ eclass = ExprClass.Variable;
+ type = local_info.Type;
+
//
// If we are referencing a variable from the external block
// flag it for capturing
@@ -6084,9 +6599,6 @@ namespace Mono.CSharp
storey.CaptureLocalVariable (ec, local_info);
}
}
-
- eclass = ExprClass.Variable;
- type = local_info.Type;
}
protected override Expression DoResolve (ResolveContext ec)
@@ -6094,6 +6606,14 @@ namespace Mono.CSharp
local_info.SetIsUsed ();
DoResolveBase (ec);
+
+ if (local_info.Type == InternalType.VarOutType) {
+ ec.Report.Error (8048, loc, "Cannot use uninitialized variable `{0}'",
+ GetSignatureForError ());
+
+ type = InternalType.ErrorType;
+ }
+
return this;
}
@@ -6782,11 +7302,11 @@ namespace Mono.CSharp
}
//
- // Returns true for resolved `new S()'
+ // Returns true for resolved `new S()' when S does not declare parameterless constructor
//
- public bool IsDefaultStruct {
+ public bool IsGeneratedStructConstructor {
get {
- return arguments == null && type.IsStruct && GetType () == typeof (New);
+ return arguments == null && method == null && type.IsStruct && GetType () == typeof (New);
}
}
@@ -6946,12 +7466,6 @@ namespace Mono.CSharp
return null;
}
- //
- // Any struct always defines parameterless constructor
- //
- if (type.IsStruct && arguments == null)
- return this;
-
bool dynamic;
if (arguments != null) {
arguments.Resolve (ec, out dynamic);
@@ -6969,46 +7483,14 @@ namespace Mono.CSharp
return this;
}
- bool DoEmitTypeParameter (EmitContext ec)
+ void DoEmitTypeParameter (EmitContext ec)
{
var m = ec.Module.PredefinedMembers.ActivatorCreateInstance.Resolve (loc);
if (m == null)
- return true;
+ return;
var ctor_factory = m.MakeGenericMethod (ec.MemberContext, type);
- var tparam = (TypeParameterSpec) type;
-
- if (tparam.IsReferenceType) {
- ec.Emit (OpCodes.Call, ctor_factory);
- return true;
- }
-
- // Allow DoEmit() to be called multiple times.
- // We need to create a new LocalTemporary each time since
- // you can't share LocalBuilders among ILGeneators.
- LocalTemporary temp = new LocalTemporary (type);
-
- Label label_activator = ec.DefineLabel ();
- Label label_end = ec.DefineLabel ();
-
- temp.AddressOf (ec, AddressOp.Store);
- ec.Emit (OpCodes.Initobj, type);
-
- temp.Emit (ec);
- ec.Emit (OpCodes.Box, type);
- ec.Emit (OpCodes.Brfalse, label_activator);
-
- temp.AddressOf (ec, AddressOp.Store);
- ec.Emit (OpCodes.Initobj, type);
- temp.Emit (ec);
- temp.Release (ec);
- ec.Emit (OpCodes.Br_S, label_end);
-
- ec.MarkLabel (label_activator);
-
ec.Emit (OpCodes.Call, ctor_factory);
- ec.MarkLabel (label_end);
- return true;
}
//
@@ -7040,7 +7522,7 @@ namespace Mono.CSharp
//
public virtual bool Emit (EmitContext ec, IMemoryLocation target)
{
- bool is_value_type = TypeSpec.IsValueType (type);
+ bool is_value_type = type.IsStructOrEnum;
VariableReference vr = target as VariableReference;
if (target != null && is_value_type && (vr != null || method == null)) {
@@ -7069,8 +7551,10 @@ namespace Mono.CSharp
}
}
- if (type is TypeParameterSpec)
- return DoEmitTypeParameter (ec);
+ if (type is TypeParameterSpec) {
+ DoEmitTypeParameter (ec);
+ return true;
+ }
ec.MarkCallEntry (loc);
ec.Emit (OpCodes.Newobj, method);
@@ -7080,7 +7564,7 @@ namespace Mono.CSharp
public override void Emit (EmitContext ec)
{
LocalTemporary v = null;
- if (method == null && TypeSpec.IsValueType (type)) {
+ if (method == null && type.IsStructOrEnum) {
// TODO: Use temporary variable from pool
v = new LocalTemporary (type);
}
@@ -8461,7 +8945,7 @@ namespace Mono.CSharp
}
}
- public class RefValueExpr : ShimExpression, IAssignMethod
+ public class RefValueExpr : ShimExpression, IAssignMethod, IMemoryLocation
{
FullNamedExpression texpr;
@@ -8487,6 +8971,12 @@ namespace Mono.CSharp
return false;
}
+ public void AddressOf (EmitContext ec, AddressOp mode)
+ {
+ expr.Emit (ec);
+ ec.Emit (OpCodes.Refanyval, type);
+ }
+
protected override Expression DoResolve (ResolveContext rc)
{
expr = expr.Resolve (rc);
@@ -8495,7 +8985,7 @@ namespace Mono.CSharp
return null;
expr = Convert.ImplicitConversionRequired (rc, expr, rc.Module.PredefinedTypes.TypedReference.Resolve (), loc);
- eclass = ExprClass.Value;
+ eclass = ExprClass.Variable;
return this;
}
@@ -9200,12 +9690,16 @@ namespace Mono.CSharp
var retval = ns.LookupTypeOrNamespace (rc, Name, Arity, LookupMode.Normal, loc);
if (retval == null) {
- ns.Error_NamespaceDoesNotExist (rc, Name, Arity);
+ ns.Error_NamespaceDoesNotExist (rc, Name, Arity, loc);
return null;
}
- if (HasTypeArguments)
- return new GenericTypeExpr (retval.Type, targs, loc);
+ if (Arity > 0) {
+ if (HasTypeArguments)
+ return new GenericTypeExpr (retval.Type, targs, loc);
+
+ targs.Resolve (rc, false);
+ }
return retval;
}
@@ -9250,11 +9744,11 @@ namespace Mono.CSharp
// Try to look for extension method when member lookup failed
//
if (MethodGroupExpr.IsExtensionMethodArgument (expr)) {
- var methods = rc.LookupExtensionMethod (expr_type, Name, lookup_arity);
+ var methods = rc.LookupExtensionMethod (Name, lookup_arity);
if (methods != null) {
var emg = new ExtensionMethodGroupExpr (methods, expr, loc);
if (HasTypeArguments) {
- if (!targs.Resolve (rc))
+ if (!targs.Resolve (rc, false))
return null;
emg.SetTypeArguments (rc, targs);
@@ -9333,7 +9827,7 @@ namespace Mono.CSharp
me = me.ResolveMemberAccess (rc, expr, sn);
if (Arity > 0) {
- if (!targs.Resolve (rc))
+ if (!targs.Resolve (rc, false))
return null;
me.SetTypeArguments (rc, targs);
@@ -9360,15 +9854,14 @@ namespace Mono.CSharp
FullNamedExpression retval = ns.LookupTypeOrNamespace (rc, Name, Arity, LookupMode.Normal, loc);
if (retval == null) {
- ns.Error_NamespaceDoesNotExist (rc, Name, Arity);
+ ns.Error_NamespaceDoesNotExist (rc, Name, Arity, loc);
} else if (Arity > 0) {
if (HasTypeArguments) {
retval = new GenericTypeExpr (retval.Type, targs, loc);
if (retval.ResolveAsType (rc) == null)
return null;
} else {
- if (!allowUnboundTypeArguments)
- Error_OpenGenericTypeIsNotAllowed (rc);
+ targs.Resolve (rc, allowUnboundTypeArguments);
retval = new GenericOpenTypeExpr (retval.Type, loc);
}
@@ -9429,8 +9922,7 @@ namespace Mono.CSharp
if (HasTypeArguments) {
texpr = new GenericTypeExpr (nested, targs, loc);
} else {
- if (!allowUnboundTypeArguments || expr_resolved is GenericTypeExpr) // && HasTypeArguments
- Error_OpenGenericTypeIsNotAllowed (rc);
+ targs.Resolve (rc, allowUnboundTypeArguments && !(expr_resolved is GenericTypeExpr));
texpr = new GenericOpenTypeExpr (nested, loc);
}
@@ -9470,7 +9962,7 @@ namespace Mono.CSharp
base.Error_InvalidExpressionStatement (report, LeftExpression.Location);
}
- protected override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
+ public override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
{
if (ec.Module.Compiler.Settings.Version > LanguageVersion.ISO_2 && !ec.IsRuntimeBinder && MethodGroupExpr.IsExtensionMethodArgument (expr)) {
ec.Report.SymbolRelatedToPreviousError (type);
@@ -9971,6 +10463,11 @@ namespace Mono.CSharp
ea.FlowAnalysis (fc);
}
+ public override bool HasConditionalAccess ()
+ {
+ return ConditionalAccess || ea.Expr.HasConditionalAccess ();
+ }
+
//
// Load the array arguments into the stack.
//
@@ -10552,6 +11049,10 @@ namespace Mono.CSharp
// nothing, as we only exist to not do anything.
}
+ public override void EmitBranchable (EmitContext ec, Label target, bool on_true)
+ {
+ }
+
public override void EmitSideEffect (EmitContext ec)
{
}
@@ -10695,6 +11196,9 @@ namespace Mono.CSharp
get {
return source;
}
+ set {
+ source = value;
+ }
}
public override bool ContainsEmitWithAwait ()
@@ -11250,7 +11754,7 @@ namespace Mono.CSharp
{
}
- protected override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
+ public override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
{
if (TypeManager.HasElementType (type))
return;
@@ -11335,6 +11839,11 @@ namespace Mono.CSharp
var init = rc.CurrentInitializerVariable;
var type = init.Type;
+ if (type.IsArray) {
+ target = new ArrayAccess (new ElementAccess (init, args, loc), loc);
+ return true;
+ }
+
var indexers = MemberCache.FindMembers (type, MemberCache.IndexerNameAlias, false);
if (indexers == null && type.BuiltinType != BuiltinTypeSpec.Type.Dynamic) {
ElementAccess.Error_CannotApplyIndexing (rc, type, loc);
@@ -11918,4 +12427,178 @@ namespace Mono.CSharp
this.loc = loc;
}
}
+
+ public class InterpolatedString : Expression
+ {
+ readonly StringLiteral start, end;
+ readonly List<Expression> interpolations;
+ Arguments arguments;
+
+ public InterpolatedString (StringLiteral start, List<Expression> interpolations, StringLiteral end)
+ {
+ this.start = start;
+ this.end = end;
+ this.interpolations = interpolations;
+ loc = start.Location;
+ }
+
+ public Expression ConvertTo (ResolveContext rc, TypeSpec type)
+ {
+ var factory = rc.Module.PredefinedTypes.FormattableStringFactory.Resolve ();
+ if (factory == null)
+ return null;
+
+ var ma = new MemberAccess (new TypeExpression (factory, loc), "Create", loc);
+ var res = new Invocation (ma, arguments).Resolve (rc);
+ if (res != null && res.Type != type)
+ res = Convert.ExplicitConversion (rc, res, type, loc);
+
+ return res;
+ }
+
+ public override bool ContainsEmitWithAwait ()
+ {
+ if (interpolations == null)
+ return false;
+
+ foreach (var expr in interpolations) {
+ if (expr.ContainsEmitWithAwait ())
+ return true;
+ }
+
+ return false;
+ }
+
+ public override Expression CreateExpressionTree (ResolveContext rc)
+ {
+ var best = ResolveBestFormatOverload (rc);
+ if (best == null)
+ return null;
+
+ Expression instance = new NullLiteral (loc);
+ var args = Arguments.CreateForExpressionTree (rc, arguments, instance, new TypeOfMethod (best, loc));
+ return CreateExpressionFactoryCall (rc, "Call", args);
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ string str;
+
+ if (interpolations == null) {
+ str = start.Value;
+ arguments = new Arguments (1);
+ } else {
+ for (int i = 0; i < interpolations.Count; i += 2) {
+ var ipi = (InterpolatedStringInsert)interpolations [i];
+ ipi.Resolve (rc);
+ }
+
+ arguments = new Arguments (interpolations.Count);
+
+ var sb = new StringBuilder (start.Value);
+ for (int i = 0; i < interpolations.Count; ++i) {
+ if (i % 2 == 0) {
+ sb.Append ('{').Append (i / 2);
+ var isi = (InterpolatedStringInsert)interpolations [i];
+ if (isi.Alignment != null) {
+ sb.Append (',');
+ var value = isi.ResolveAligment (rc);
+ if (value != null)
+ sb.Append (value.Value);
+ }
+
+ if (isi.Format != null) {
+ sb.Append (':');
+ sb.Append (isi.Format);
+ }
+
+ sb.Append ('}');
+ arguments.Add (new Argument (interpolations [i]));
+ } else {
+ sb.Append (((StringLiteral)interpolations [i]).Value);
+ }
+ }
+
+ sb.Append (end.Value);
+ str = sb.ToString ();
+ }
+
+ arguments.Insert (0, new Argument (new StringLiteral (rc.BuiltinTypes, str, start.Location)));
+
+ eclass = ExprClass.Value;
+ type = rc.BuiltinTypes.String;
+ return this;
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ // No interpolation, convert to simple string result (needs to match string.Format unescaping)
+ if (interpolations == null) {
+ var str = start.Value.Replace ("{{", "{").Replace ("}}", "}");
+ if (str != start.Value)
+ new StringConstant (ec.BuiltinTypes, str, loc).Emit (ec);
+ else
+ start.Emit (ec);
+
+ return;
+ }
+
+ var best = ResolveBestFormatOverload (new ResolveContext (ec.MemberContext));
+ if (best == null)
+ return;
+
+ var ca = new CallEmitter ();
+ ca.Emit (ec, best, arguments, loc);
+ }
+
+ MethodSpec ResolveBestFormatOverload (ResolveContext rc)
+ {
+ var members = MemberCache.FindMembers (rc.BuiltinTypes.String, "Format", true);
+ var res = new OverloadResolver (members, OverloadResolver.Restrictions.NoBaseMembers, loc);
+ return res.ResolveMember<MethodSpec> (rc, ref arguments);
+ }
+ }
+
+ public class InterpolatedStringInsert : CompositeExpression
+ {
+ public InterpolatedStringInsert (Expression expr)
+ : base (expr)
+ {
+ }
+
+ public Expression Alignment { get; set; }
+ public string Format { get; set; }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ var expr = base.DoResolve (rc);
+ if (expr == null)
+ return null;
+
+ //
+ // For better error reporting, assumes the built-in implementation uses object
+ // as argument(s)
+ //
+ return Convert.ImplicitConversionRequired (rc, expr, rc.BuiltinTypes.Object, expr.Location);
+ }
+
+ public int? ResolveAligment (ResolveContext rc)
+ {
+ var c = Alignment.ResolveLabelConstant (rc);
+ if (c == null)
+ return null;
+
+ c = c.ImplicitConversionRequired (rc, rc.BuiltinTypes.Int);
+ if (c == null)
+ return null;
+
+ var value = (int) c.GetValueAsLong ();
+ if (value > 32767 || value < -32767) {
+ rc.Report.Warning (8094, 1, Alignment.Location,
+ "Alignment value has a magnitude greater than 32767 and may result in a large formatted string");
+ }
+
+ return value;
+ }
+ }
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/field.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/field.cs
index 265e4362..c73426c5 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/field.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/field.cs
@@ -424,7 +424,7 @@ namespace Mono.CSharp
}
// Create nested fixed buffer container
- string name = String.Format ("<{0}>__FixedBuffer{1}", Name, GlobalCounter++);
+ string name = String.Format ("<{0}>__FixedBuffer{1}", TypeDefinition.FilterNestedName (Name), GlobalCounter++);
fixed_buffer_type = Parent.TypeBuilder.DefineNestedType (name,
TypeAttributes.NestedPublic | TypeAttributes.Sealed | TypeAttributes.BeforeFieldInit,
Compiler.BuiltinTypes.ValueType.GetMetaInfo ());
@@ -609,9 +609,23 @@ namespace Mono.CSharp
if (TypeSpec.IsReferenceType (MemberType))
return true;
- if (MemberType.IsEnum)
+ if (MemberType.IsPointer)
return true;
+ if (MemberType.IsEnum) {
+ switch (EnumSpec.GetUnderlyingType (MemberType).BuiltinType) {
+ case BuiltinTypeSpec.Type.SByte:
+ case BuiltinTypeSpec.Type.Byte:
+ case BuiltinTypeSpec.Type.Short:
+ case BuiltinTypeSpec.Type.UShort:
+ case BuiltinTypeSpec.Type.Int:
+ case BuiltinTypeSpec.Type.UInt:
+ return true;
+ default:
+ return false;
+ }
+ }
+
return false;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/flowanalysis.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/flowanalysis.cs
index dbb74a75..da30a3e5 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/flowanalysis.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/flowanalysis.cs
@@ -105,7 +105,7 @@ namespace Mono.CSharp
return struct_info.GetStructField (name);
}
- public static TypeInfo GetTypeInfo (TypeSpec type)
+ public static TypeInfo GetTypeInfo (TypeSpec type, IMemberContext context)
{
if (!type.IsStruct)
return simple_type;
@@ -114,7 +114,7 @@ namespace Mono.CSharp
if (type_hash.TryGetValue (type, out info))
return info;
- var struct_info = StructInfo.GetStructInfo (type);
+ var struct_info = StructInfo.GetStructInfo (type, context);
if (struct_info != null) {
info = new TypeInfo (struct_info, 0);
} else {
@@ -139,7 +139,7 @@ namespace Mono.CSharp
var field = struct_info.Fields[i];
if (!fc.IsStructFieldDefinitelyAssigned (vi, field.Name)) {
- var bf = field.MemberDefinition as Property.BackingField;
+ var bf = field.MemberDefinition as Property.BackingFieldDeclaration;
if (bf != null) {
if (bf.Initializer != null)
continue;
@@ -184,11 +184,11 @@ namespace Mono.CSharp
//
// We only need one instance per type
//
- StructInfo (TypeSpec type)
+ StructInfo (TypeSpec type, IMemberContext context)
{
field_type_hash.Add (type, this);
- fields = MemberCache.GetAllFieldsForDefiniteAssignment (type);
+ fields = MemberCache.GetAllFieldsForDefiniteAssignment (type, context);
struct_field_hash = new Dictionary<string, TypeInfo> ();
field_hash = new Dictionary<string, int> (fields.Count);
@@ -202,7 +202,7 @@ namespace Mono.CSharp
var field = fields [i];
if (field.MemberType.IsStruct)
- sinfo [i] = GetStructInfo (field.MemberType);
+ sinfo [i] = GetStructInfo (field.MemberType, context);
if (sinfo [i] == null)
field_hash.Add (field.Name, ++Length);
@@ -260,7 +260,7 @@ namespace Mono.CSharp
return null;
}
- public static StructInfo GetStructInfo (TypeSpec type)
+ public static StructInfo GetStructInfo (TypeSpec type, IMemberContext context)
{
if (type.BuiltinType > 0)
return null;
@@ -269,7 +269,7 @@ namespace Mono.CSharp
if (field_type_hash.TryGetValue (type, out info))
return info;
- return new StructInfo (type);
+ return new StructInfo (type, context);
}
}
}
@@ -305,11 +305,11 @@ namespace Mono.CSharp
VariableInfo[] sub_info;
- VariableInfo (string name, TypeSpec type, int offset)
+ VariableInfo (string name, TypeSpec type, int offset, IMemberContext context)
{
this.Name = name;
this.Offset = offset;
- this.TypeInfo = TypeInfo.GetTypeInfo (type);
+ this.TypeInfo = TypeInfo.GetTypeInfo (type, context);
Length = TypeInfo.TotalLength;
@@ -343,14 +343,14 @@ namespace Mono.CSharp
public static VariableInfo Create (BlockContext bc, LocalVariable variable)
{
- var info = new VariableInfo (variable.Name, variable.Type, bc.AssignmentInfoOffset);
+ var info = new VariableInfo (variable.Name, variable.Type, bc.AssignmentInfoOffset, bc);
bc.AssignmentInfoOffset += info.Length;
return info;
}
public static VariableInfo Create (BlockContext bc, Parameter parameter)
{
- var info = new VariableInfo (parameter.Name, parameter.Type, bc.AssignmentInfoOffset) {
+ var info = new VariableInfo (parameter.Name, parameter.Type, bc.AssignmentInfoOffset, bc) {
IsParameter = true
};
@@ -669,7 +669,7 @@ namespace Mono.CSharp
large_bits[index >> 5] |= (1 << (index & 31));
}
- static bool AreEqual (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
+ public static bool AreEqual (DefiniteAssignmentBitSet a, DefiniteAssignmentBitSet b)
{
if (a.large_bits == null)
return (a.bits & ~copy_on_write_flag) == (b.bits & ~copy_on_write_flag);
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/generic.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/generic.cs
index f6d594fd..021fcbf6 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/generic.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/generic.cs
@@ -1068,8 +1068,11 @@ namespace Mono.CSharp {
return effective_base = Convert.FindMostEncompassedType (types);
}
- public override string GetSignatureForDocumentation ()
+ public override string GetSignatureForDocumentation (bool explicitName)
{
+ if (explicitName)
+ return Name;
+
var prefix = IsMethodOwned ? "``" : "`";
return prefix + DeclaredPosition;
}
@@ -1331,16 +1334,22 @@ namespace Mono.CSharp {
foreach (var ta in targs) {
var tps = ta as TypeParameterSpec;
IList<TypeSpec> ifaces;
+ TypeSpec b_type;
if (tps != null) {
- var b_type = tps.GetEffectiveBase ();
- if (b_type != null && b_type.BuiltinType != BuiltinTypeSpec.Type.Object && b_type.BuiltinType != BuiltinTypeSpec.Type.ValueType)
- cache.AddBaseType (b_type);
-
+ b_type = tps.GetEffectiveBase ();
ifaces = tps.InterfacesDefined;
} else {
+ b_type = ta;
ifaces = ta.Interfaces;
}
+ //
+ // Don't add base type which was inflated from base constraints but it's not valid
+ // in C# context
+ //
+ if (b_type != null && b_type.BuiltinType != BuiltinTypeSpec.Type.Object && b_type.BuiltinType != BuiltinTypeSpec.Type.ValueType && !b_type.IsStructOrEnum)
+ cache.AddBaseType (b_type);
+
if (ifaces != null) {
foreach (var iface_type in ifaces) {
cache.AddInterface (iface_type);
@@ -2190,7 +2199,7 @@ namespace Mono.CSharp {
/// <summary>
/// Resolve the type arguments.
/// </summary>
- public virtual bool Resolve (IMemberContext ec)
+ public virtual bool Resolve (IMemberContext ec, bool allowUnbound)
{
if (atypes != null)
return true;
@@ -2243,9 +2252,12 @@ namespace Mono.CSharp {
public class UnboundTypeArguments : TypeArguments
{
- public UnboundTypeArguments (int arity)
+ Location loc;
+
+ public UnboundTypeArguments (int arity, Location loc)
: base (new FullNamedExpression[arity])
{
+ this.loc = loc;
}
public override bool IsEmpty {
@@ -2254,8 +2266,12 @@ namespace Mono.CSharp {
}
}
- public override bool Resolve (IMemberContext ec)
+ public override bool Resolve (IMemberContext mc, bool allowUnbound)
{
+ if (!allowUnbound) {
+ mc.Module.Compiler.Report.Error (7003, loc, "Unbound generic name is not valid in this context");
+ }
+
// Nothing to be resolved
return true;
}
@@ -2441,7 +2457,7 @@ namespace Mono.CSharp {
if (eclass != ExprClass.Unresolved)
return type;
- if (!args.Resolve (mc))
+ if (!args.Resolve (mc, allowUnboundTypeArguments))
return null;
TypeSpec[] atypes = args.Arguments;
@@ -2768,7 +2784,7 @@ namespace Mono.CSharp {
//
// Tracks successful rate of type inference
//
- int score = int.MaxValue;
+ int score;
readonly Arguments arguments;
readonly int arg_count;
@@ -2841,12 +2857,12 @@ namespace Mono.CSharp {
AnonymousMethodExpression am = a.Expr as AnonymousMethodExpression;
if (am != null) {
if (am.ExplicitTypeInference (tic, method_parameter))
- --score;
+ ++score;
continue;
}
if (a.IsByRef) {
- score -= tic.ExactInference (a.Type, method_parameter);
+ score += tic.ExactInference (a.Type, method_parameter);
continue;
}
@@ -2854,14 +2870,14 @@ namespace Mono.CSharp {
continue;
if (TypeSpec.IsValueType (method_parameter)) {
- score -= tic.LowerBoundInference (a.Type, method_parameter);
+ score += tic.LowerBoundInference (a.Type, method_parameter);
continue;
}
//
// Otherwise an output type inference is made
//
- score -= tic.OutputTypeInference (ec, a.Expr, method_parameter);
+ score += tic.OutputTypeInference (ec, a.Expr, method_parameter);
}
//
@@ -2911,7 +2927,7 @@ namespace Mono.CSharp {
if (arguments[i] == null)
continue;
- score -= tic.OutputTypeInference (ec, arguments[i].Expr, t_i);
+ score += tic.OutputTypeInference (ec, arguments[i].Expr, t_i);
}
}
@@ -3018,7 +3034,7 @@ namespace Mono.CSharp {
// Some types cannot be used as type arguments
//
if ((bound.Type.Kind == MemberKind.Void && !voidAllowed) || bound.Type.IsPointer || bound.Type.IsSpecialRuntimeType ||
- bound.Type == InternalType.MethodGroup || bound.Type == InternalType.AnonymousMethod)
+ bound.Type == InternalType.MethodGroup || bound.Type == InternalType.AnonymousMethod || bound.Type == InternalType.VarOutType)
return;
var a = bounds [index];
@@ -3044,8 +3060,8 @@ namespace Mono.CSharp {
continue;
}
- if (TypeManager.IsGenericType (t))
- return AllTypesAreFixed (TypeManager.GetTypeArguments (t));
+ if (t.IsGeneric && !AllTypesAreFixed (t.TypeArguments))
+ return false;
}
return true;
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/linq.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/linq.cs
index 11f01009..170d231e 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/linq.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/linq.cs
@@ -69,7 +69,7 @@ namespace Mono.CSharp.Linq
{
}
- protected override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
+ public override void Error_TypeDoesNotContainDefinition (ResolveContext ec, TypeSpec type, string name)
{
ec.Report.Error (1935, loc, "An implementation of `{0}' query expression pattern could not be found. " +
"Are you missing `System.Linq' using directive or `System.Core.dll' assembly reference?",
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/membercache.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/membercache.cs
index 3837af2c..042a15b6 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/membercache.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/membercache.cs
@@ -686,9 +686,10 @@ namespace Mono.CSharp {
throw new NotImplementedException (member.GetType ().ToString ());
}
- public static List<FieldSpec> GetAllFieldsForDefiniteAssignment (TypeSpec container)
+ public static List<FieldSpec> GetAllFieldsForDefiniteAssignment (TypeSpec container, IMemberContext context)
{
List<FieldSpec> fields = null;
+ bool imported = container.MemberDefinition.IsImported;
foreach (var entry in container.MemberCache.member_hash) {
foreach (var name_entry in entry.Value) {
if (name_entry.Kind != MemberKind.Field)
@@ -704,13 +705,7 @@ namespace Mono.CSharp {
continue;
var fs = (FieldSpec) name_entry;
-
- //
- // LAMESPEC: Very bizzare hack, definitive assignment is not done
- // for imported non-public reference fields except array. No idea what the
- // actual csc rule is
- //
- if (!fs.IsPublic && container.MemberDefinition.IsImported && (!fs.MemberType.IsArray && TypeSpec.IsReferenceType (fs.MemberType)))
+ if (imported && ShouldIgnoreFieldForDefiniteAssignment (fs, context))
continue;
//if ((fs.Modifiers & (Modifiers.BACKING_FIELD) != 0)
@@ -727,6 +722,29 @@ namespace Mono.CSharp {
return fields ?? new List<FieldSpec> (0);
}
+ static bool ShouldIgnoreFieldForDefiniteAssignment (FieldSpec fs, IMemberContext context)
+ {
+ //
+ // LAMESPEC: This mimics csc quirk where definitive assignment is not done
+ // for all kinds of imported non-public struct fields
+ //
+ var mod = fs.Modifiers;
+ if ((mod & Modifiers.PRIVATE) == 0 && ((mod & Modifiers.INTERNAL) != 0 && fs.DeclaringType.MemberDefinition.IsInternalAsPublic (context.Module.DeclaringAssembly)))
+ return false;
+
+ //
+ // Ignore reference type fields except when type is an array or type parameter
+ //
+ var type = fs.MemberType;
+ switch (type.Kind) {
+ case MemberKind.ArrayType:
+ case MemberKind.TypeParameter:
+ return false;
+ default:
+ return TypeSpec.IsReferenceType (type);
+ }
+ }
+
public static IList<MemberSpec> GetCompletitionMembers (IMemberContext ctx, TypeSpec container, string name)
{
var matches = new List<MemberSpec> ();
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs
index 7c42dbc8..96ed9e42 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/method.cs
@@ -1498,15 +1498,6 @@ namespace Mono.CSharp {
"`{0}': Struct constructors cannot call base constructors", caller_builder.GetSignatureForError ());
return this;
}
- } else {
- //
- // It is legal to have "this" initializers that take no arguments
- // in structs
- //
- // struct D { public D (int a) : this () {}
- //
- if (ec.CurrentType.IsStruct && argument_list == null)
- return this;
}
base_ctor = ConstructorLookup (ec, type, ref argument_list, loc);
@@ -1663,12 +1654,6 @@ namespace Mono.CSharp {
protected override bool CheckBase ()
{
if ((ModFlags & Modifiers.STATIC) != 0) {
- if (!parameters.IsEmpty) {
- Report.Error (132, Location, "`{0}': The static constructor must be parameterless",
- GetSignatureForError ());
- return false;
- }
-
if ((caching_flags & Flags.MethodOverloadsExist) != 0)
Parent.MemberCache.CheckExistingMembersOverloads (this, parameters);
@@ -1683,12 +1668,6 @@ namespace Mono.CSharp {
if ((caching_flags & Flags.MethodOverloadsExist) != 0)
Parent.MemberCache.CheckExistingMembersOverloads (this, parameters);
- if (Parent.PartialContainer.Kind == MemberKind.Struct && parameters.IsEmpty) {
- Report.Error (568, Location,
- "Structs cannot contain explicit parameterless constructors");
- return false;
- }
-
CheckProtectedModifier ();
return true;
@@ -1719,6 +1698,11 @@ namespace Mono.CSharp {
}
}
+ if ((ModFlags & Modifiers.EXTERN) != 0 && Initializer != null) {
+ Report.Error (8091, Location, "`{0}': Contructors cannot be extern and have a constructor initializer",
+ GetSignatureForError ());
+ }
+
var ca = ModifiersExtensions.MethodAttr (ModFlags) | MethodAttributes.RTSpecialName | MethodAttributes.SpecialName;
ConstructorBuilder = Parent.TypeBuilder.DefineConstructor (
@@ -2576,6 +2560,9 @@ namespace Mono.CSharp {
Implicit,
Explicit,
+ // Pattern matching
+ Is,
+
// Just because of enum
TOP
};
@@ -2613,6 +2600,7 @@ namespace Mono.CSharp {
names [(int) OpType.LessThanOrEqual] = new string [] { "<=", "op_LessThanOrEqual" };
names [(int) OpType.Implicit] = new string [] { "implicit", "op_Implicit" };
names [(int) OpType.Explicit] = new string [] { "explicit", "op_Explicit" };
+ names [(int) OpType.Is] = new string[] { "is", "op_Is" };
}
public Operator (TypeDefinition parent, OpType type, FullNamedExpression ret_type, Modifiers mod_flags, ParametersCompiled parameters,
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/module.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/module.cs
index 68f1b8ec..138ec616 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/module.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/module.cs
@@ -181,6 +181,7 @@ namespace Mono.CSharp
var system_convert = new MemberAccess (new QualifiedAliasMember ("global", "System", loc), "Convert", loc);
+ var expl_block = new ExplicitBlock (top_block, loc, loc);
//
// var converted = System.Convert.ChangeType (obj, System.Convert.GetTypeCode (value));
@@ -198,7 +199,7 @@ namespace Mono.CSharp
var changetype = new Invocation (new MemberAccess (system_convert, "ChangeType", loc), arguments_changetype);
- top_block.AddStatement (new StatementExpression (new SimpleAssign (new LocalVariableReference (lv_converted, loc), changetype, loc)));
+ expl_block.AddStatement (new StatementExpression (new SimpleAssign (new LocalVariableReference (lv_converted, loc), changetype, loc)));
//
@@ -207,7 +208,13 @@ namespace Mono.CSharp
var equals_arguments = new Arguments (1);
equals_arguments.Add (new Argument (top_block.GetParameterReference (1, loc)));
var equals_invocation = new Invocation (new MemberAccess (new LocalVariableReference (lv_converted, loc), "Equals"), equals_arguments);
- top_block.AddStatement (new Return (equals_invocation, loc));
+ expl_block.AddStatement (new Return (equals_invocation, loc));
+
+ var catch_block = new ExplicitBlock (top_block, loc, loc);
+ catch_block.AddStatement (new Return (new BoolLiteral (Compiler.BuiltinTypes, false, loc), loc));
+ top_block.AddStatement (new TryCatch (expl_block, new List<Catch> () {
+ new Catch (catch_block, loc)
+ }, loc, false));
m.Define ();
m.PrepareEmit ();
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/namespace.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/namespace.cs
index f4c5aba5..c37f1ad1 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/namespace.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/namespace.cs
@@ -70,6 +70,9 @@ namespace Mono.CSharp {
List<string> res = null;
foreach (var ns in all_namespaces) {
+ if (ns.Key.Length == 0)
+ continue;
+
var methods = ns.Value.LookupExtensionMethod (ctx, name, arity);
if (methods != null) {
if (res == null)
@@ -249,7 +252,7 @@ namespace Mono.CSharp {
return null;
foreach (var ts in found) {
- if (ts.Arity == arity || mode == LookupMode.NameOf) {
+ if (ts.Arity == arity) {
if (best == null) {
if ((ts.Modifiers & Modifiers.INTERNAL) != 0 && !ts.MemberDefinition.IsInternalAsPublic (ctx.Module.DeclaringAssembly) && mode != LookupMode.IgnoreAccessibility)
continue;
@@ -488,8 +491,22 @@ namespace Mono.CSharp {
public void RemoveContainer (TypeContainer tc)
{
- types.Remove (tc.Basename);
- cached_types.Remove (tc.Basename);
+ IList<TypeSpec> found;
+ if (types.TryGetValue (tc.MemberName.Name, out found)) {
+ for (int i = 0; i < found.Count; ++i) {
+ if (tc.MemberName.Arity != found [i].Arity)
+ continue;
+
+ if (found.Count == 1)
+ types.Remove (tc.MemberName.Name);
+ else
+ found.RemoveAt (i);
+
+ break;
+ }
+ }
+
+ cached_types.Remove (tc.MemberName.Basename);
}
public void SetBuiltinType (BuiltinTypeSpec pts)
@@ -689,7 +706,7 @@ namespace Mono.CSharp {
public new readonly NamespaceContainer Parent;
- List<UsingNamespace> clauses;
+ List<UsingClause> clauses;
// Used by parsed to check for parser errors
public bool DeclarationFound;
@@ -736,7 +753,7 @@ namespace Mono.CSharp {
}
}
- public List<UsingNamespace> Usings {
+ public List<UsingClause> Usings {
get {
return clauses;
}
@@ -750,14 +767,14 @@ namespace Mono.CSharp {
#endregion
- public void AddUsing (UsingNamespace un)
+ public void AddUsing (UsingClause un)
{
if (DeclarationFound){
Compiler.Report.Error (1529, un.Location, "A using clause must precede all other namespace elements except extern alias declarations");
}
if (clauses == null)
- clauses = new List<UsingNamespace> ();
+ clauses = new List<UsingClause> ();
clauses.Add (un);
}
@@ -774,7 +791,7 @@ namespace Mono.CSharp {
void AddAlias (UsingAliasNamespace un)
{
if (clauses == null) {
- clauses = new List<UsingNamespace> ();
+ clauses = new List<UsingClause> ();
} else {
foreach (var entry in clauses) {
var a = entry as UsingAliasNamespace;
@@ -798,9 +815,8 @@ namespace Mono.CSharp {
public override void AddTypeContainer (TypeContainer tc)
{
- string name = tc.Basename;
-
var mn = tc.MemberName;
+ var name = mn.Basename;
while (mn.Left != null) {
mn = mn.Left;
name = mn.Name;
@@ -865,7 +881,7 @@ namespace Mono.CSharp {
base.EmitContainer ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (IMemberContext invocationContext, TypeSpec extensionType, string name, int arity, int position)
+ public ExtensionMethodCandidates LookupExtensionMethod (IMemberContext invocationContext, string name, int arity, int position)
{
//
// Here we try to resume the search for extension method at the point
@@ -946,22 +962,18 @@ namespace Mono.CSharp {
candidates.AddRange (a);
}
- if (candidates != null)
- return new ExtensionMethodCandidates (invocationContext, candidates, this, position);
- }
+ if (types_using_table != null) {
+ foreach (var t in types_using_table) {
- // LAMESPEC: TODO no spec about priority over normal extension methods yet
- if (types_using_table != null) {
- foreach (var t in types_using_table) {
-
- var res = t.MemberCache.FindExtensionMethods (invocationContext, name, arity);
- if (res == null)
- continue;
+ var res = t.MemberCache.FindExtensionMethods (invocationContext, name, arity);
+ if (res == null)
+ continue;
- if (candidates == null)
- candidates = res;
- else
- candidates.AddRange (res);
+ if (candidates == null)
+ candidates = res;
+ else
+ candidates.AddRange (res);
+ }
}
if (candidates != null)
@@ -1149,7 +1161,7 @@ namespace Mono.CSharp {
return match;
}
- public static MethodGroupExpr LookupStaticUsings (IMemberContext mc, string name, int arity, Location loc)
+ public static Expression LookupStaticUsings (IMemberContext mc, string name, int arity, Location loc)
{
for (var m = mc.CurrentMemberDefinition; m != null; m = m.Parent) {
@@ -1163,8 +1175,15 @@ namespace Mono.CSharp {
var members = MemberCache.FindMembers (using_type, name, true);
if (members != null) {
foreach (var member in members) {
- if ((member.Modifiers & Modifiers.METHOD_EXTENSION) != 0)
- continue;
+ if ((member.Kind & MemberKind.NestedMask) != 0) {
+ // non-static nested type is included with using static
+ } else {
+ if ((member.Modifiers & Modifiers.STATIC) == 0)
+ continue;
+
+ if ((member.Modifiers & Modifiers.METHOD_EXTENSION) != 0)
+ continue;
+ }
if (arity > 0 && member.Arity != arity)
continue;
@@ -1178,8 +1197,11 @@ namespace Mono.CSharp {
}
}
- if (candidates != null)
- return new MethodGroupExpr (candidates, null, loc);
+ if (candidates != null) {
+ var expr = Expression.MemberLookupToExpression (mc, candidates, false, null, name, arity, Expression.MemberLookupRestrictions.None, loc);
+ if (expr != null)
+ return expr;
+ }
}
return null;
@@ -1241,7 +1263,7 @@ namespace Mono.CSharp {
var using_ns = entry.ResolvedExpression as NamespaceExpression;
if (using_ns == null) {
- var type = ((TypeExpr)entry.ResolvedExpression).Type;
+ var type = entry.ResolvedExpression.Type;
if (types == null)
types = new List<TypeSpec> ();
@@ -1325,7 +1347,7 @@ namespace Mono.CSharp {
return false;
}
- void Warning_DuplicateEntry (UsingNamespace entry)
+ void Warning_DuplicateEntry (UsingClause entry)
{
Compiler.Report.Warning (105, 3, entry.Location,
"The using directive for `{0}' appeared previously in this namespace",
@@ -1338,13 +1360,71 @@ namespace Mono.CSharp {
}
}
- public class UsingNamespace
+ public class UsingNamespace : UsingClause
+ {
+ public UsingNamespace (ATypeNameExpression expr, Location loc)
+ : base (expr, loc)
+ {
+ }
+
+ public override void Define (NamespaceContainer ctx)
+ {
+ base.Define (ctx);
+
+ var ns = resolved as NamespaceExpression;
+ if (ns != null)
+ return;
+
+ if (resolved != null) {
+ var compiler = ctx.Module.Compiler;
+ var type = resolved.Type;
+
+ compiler.Report.SymbolRelatedToPreviousError (type);
+ compiler.Report.Error (138, Location,
+ "A `using' directive can only be applied to namespaces but `{0}' denotes a type. Consider using a `using static' instead",
+ type.GetSignatureForError ());
+ }
+ }
+ }
+
+ public class UsingType : UsingClause
+ {
+ public UsingType (ATypeNameExpression expr, Location loc)
+ : base (expr, loc)
+ {
+ }
+
+ public override void Define (NamespaceContainer ctx)
+ {
+ base.Define (ctx);
+
+ if (resolved == null)
+ return;
+
+ var ns = resolved as NamespaceExpression;
+ if (ns != null) {
+ var compiler = ctx.Module.Compiler;
+ compiler.Report.Error (7007, Location,
+ "A 'using static' directive can only be applied to types but `{0}' denotes a namespace. Consider using a `using' directive instead",
+ ns.GetSignatureForError ());
+ return;
+ }
+
+ // TODO: Need to move it to post_process_using_aliases
+ //ObsoleteAttribute obsolete_attr = resolved.Type.GetAttributeObsolete ();
+ //if (obsolete_attr != null) {
+ // AttributeTester.Report_ObsoleteMessage (obsolete_attr, resolved.GetSignatureForError (), Location, ctx.Compiler.Report);
+ //}
+ }
+ }
+
+ public class UsingClause
{
readonly ATypeNameExpression expr;
readonly Location loc;
protected FullNamedExpression resolved;
- public UsingNamespace (ATypeNameExpression expr, Location loc)
+ public UsingClause (ATypeNameExpression expr, Location loc)
{
this.expr = expr;
this.loc = loc;
@@ -1386,29 +1466,6 @@ namespace Mono.CSharp {
public virtual void Define (NamespaceContainer ctx)
{
resolved = expr.ResolveAsTypeOrNamespace (ctx, false);
- var ns = resolved as NamespaceExpression;
- if (ns != null)
- return;
-
- if (resolved != null) {
- var compiler = ctx.Module.Compiler;
- var type = resolved.Type;
- if (compiler.Settings.Version >= LanguageVersion.V_6) {
- if (!type.IsClass || !type.IsStatic) {
- compiler.Report.SymbolRelatedToPreviousError (type);
- compiler.Report.Error (7007, Location,
- "`{0}' is not a static class. A using namespace directive can only be applied to static classes or namespace",
- GetSignatureForError ());
- }
-
- return;
- }
-
- compiler.Report.SymbolRelatedToPreviousError (type);
- compiler.Report.Error (138, Location,
- "`{0}' is a type not a namespace. A using namespace directive can only be applied to namespaces",
- GetSignatureForError ());
- }
}
public virtual void Accept (StructuralVisitor visitor)
@@ -1508,7 +1565,7 @@ namespace Mono.CSharp {
throw new NotImplementedException ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
return null;
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/nullable.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/nullable.cs
index e857e365..f3ed348c 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/nullable.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/nullable.cs
@@ -1220,12 +1220,6 @@ namespace Mono.CSharp.Nullable
return ReducedExpression.Create (right, this, false).Resolve (ec);
left = Convert.ImplicitConversion (ec, unwrap ?? left, rtype, loc);
-
- if (TypeSpec.IsValueType (left.Type) && !left.Type.IsNullableType) {
- Warning_UnreachableExpression (ec, right.Location);
- return ReducedExpression.Create (left, this, false).Resolve (ec);
- }
-
type = rtype;
return this;
}
@@ -1285,16 +1279,52 @@ namespace Mono.CSharp.Nullable
return;
}
- left.Emit (ec);
- ec.Emit (OpCodes.Dup);
+ //
+ // Null check is done on original expression not after expression is converted to
+ // result type. This is in most cases same but when user conversion is involved
+ // we can end up in situation when use operator does the null handling which is
+ // not what the operator is supposed to do
+ //
+ var op_expr = left as UserCast;
+ if (op_expr != null) {
+ op_expr.Source.Emit (ec);
+ LocalTemporary temp;
+
+ // TODO: More load kinds can be special cased
+ if (!(op_expr.Source is VariableReference)) {
+ temp = new LocalTemporary (op_expr.Source.Type);
+ temp.Store (ec);
+ temp.Emit (ec);
+ op_expr.Source = temp;
+ } else {
+ temp = null;
+ }
- // Only to make verifier happy
- if (left.Type.IsGenericParameter)
- ec.Emit (OpCodes.Box, left.Type);
+ var right_label = ec.DefineLabel ();
+ ec.Emit (OpCodes.Brfalse_S, right_label);
+ left.Emit (ec);
+ ec.Emit (OpCodes.Br, end_label);
+ ec.MarkLabel (right_label);
- ec.Emit (OpCodes.Brtrue, end_label);
+ if (temp != null)
+ temp.Release (ec);
+ } else {
+ //
+ // Common case where expression is not modified before null check and
+ // we generate better/smaller code
+ //
+ left.Emit (ec);
+ ec.Emit (OpCodes.Dup);
+
+ // Only to make verifier happy
+ if (left.Type.IsGenericParameter)
+ ec.Emit (OpCodes.Box, left.Type);
+
+ ec.Emit (OpCodes.Brtrue, end_label);
+
+ ec.Emit (OpCodes.Pop);
+ }
- ec.Emit (OpCodes.Pop);
right.Emit (ec);
ec.MarkLabel (end_label);
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/outline.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/outline.cs
index 1104b1c1..db055e72 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/outline.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/outline.cs
@@ -88,9 +88,7 @@ public class Outline {
OutlineParams (method.GetParameters ());
o.Write (")");
-#if NET_2_0
WriteGenericConstraints (t.GetGenericArguments ());
-#endif
o.WriteLine (";");
return;
@@ -119,9 +117,7 @@ public class Outline {
if (underlyingType != typeof (int))
o.Write (" : {0}", FormatType (underlyingType));
}
-#if NET_2_0
WriteGenericConstraints (t.GetGenericArguments ());
-#endif
o.WriteLine (" {");
o.Indent++;
@@ -396,15 +392,11 @@ public class Outline {
}
o.Write (mi.Name);
-#if NET_2_0
o.Write (FormatGenericParams (mi.GetGenericArguments ()));
-#endif
o.Write (" (");
OutlineParams (mi.GetParameters ());
o.Write (")");
-#if NET_2_0
WriteGenericConstraints (mi.GetGenericArguments ());
-#endif
o.Write (";");
}
@@ -563,7 +555,6 @@ public class Outline {
}
}
-#if NET_2_0
string FormatGenericParams (Type [] args)
{
StringBuilder sb = new StringBuilder ();
@@ -579,7 +570,6 @@ public class Outline {
sb.Append (">");
return sb.ToString ();
}
-#endif
// TODO: fine tune this so that our output is less verbose. We need to figure
// out a way to do this while not making things confusing.
@@ -679,9 +669,7 @@ public class Outline {
void GetTypeName (StringBuilder sb, Type t)
{
sb.Append (RemoveGenericArity (t.Name));
-#if NET_2_0
sb.Append (FormatGenericParams (t.GetGenericArguments ()));
-#endif
}
string GetFullName (Type t)
@@ -693,12 +681,10 @@ public class Outline {
void GetFullName_recursed (StringBuilder sb, Type t, bool recursed)
{
-#if NET_2_0
if (t.IsGenericParameter) {
sb.Append (t.Name);
return;
}
-#endif
if (t.DeclaringType != null) {
GetFullName_recursed (sb, t.DeclaringType, true);
@@ -716,7 +702,6 @@ public class Outline {
GetTypeName (sb, t);
}
-#if NET_2_0
void WriteGenericConstraints (Type [] args)
{
@@ -772,7 +757,6 @@ public class Outline {
}
}
}
-#endif
string OperatorFromName (string name)
{
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs
index 1a30ae38..adac136f 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/parameter.cs
@@ -1418,7 +1418,7 @@ namespace Mono.CSharp {
expr = Child;
- if (!(expr is Constant || expr is DefaultValueExpression || (expr is New && ((New) expr).IsDefaultStruct))) {
+ if (!(expr is Constant || expr is DefaultValueExpression || (expr is New && ((New) expr).IsGeneratedStructConstructor))) {
if (!(expr is ErrorExpression)) {
rc.Report.Error (1736, Location,
"The expression being assigned to optional parameter `{0}' must be a constant or default value",
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/pending.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/pending.cs
index 0f863a7b..66114282 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/pending.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/pending.cs
@@ -108,7 +108,7 @@ namespace Mono.CSharp {
throw new NotImplementedException ();
}
- public ExtensionMethodCandidates LookupExtensionMethod (TypeSpec extensionType, string name, int arity)
+ public ExtensionMethodCandidates LookupExtensionMethod (string name, int arity)
{
throw new NotImplementedException ();
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/property.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/property.cs
index 979a8e83..1407603f 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/property.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/property.cs
@@ -337,18 +337,22 @@ namespace Mono.CSharp
ModFlags |= method.ModFlags;
flags = method.flags;
} else {
- if (container.Kind == MemberKind.Interface)
+ CheckModifiers (ModFlags);
+ ModFlags |= (method.ModFlags & (~Modifiers.AccessibilityMask));
+ ModFlags |= Modifiers.PROPERTY_CUSTOM;
+
+ if (container.Kind == MemberKind.Interface) {
Report.Error (275, Location, "`{0}': accessibility modifiers may not be used on accessors in an interface",
GetSignatureForError ());
- else if ((method.ModFlags & Modifiers.ABSTRACT) != 0 && (ModFlags & Modifiers.PRIVATE) != 0) {
- Report.Error (442, Location, "`{0}': abstract properties cannot have private accessors", GetSignatureForError ());
+ } else if ((ModFlags & Modifiers.PRIVATE) != 0) {
+ if ((method.ModFlags & Modifiers.ABSTRACT) != 0) {
+ Report.Error (442, Location, "`{0}': abstract properties cannot have private accessors", GetSignatureForError ());
+ }
+
+ ModFlags &= ~Modifiers.VIRTUAL;
}
- CheckModifiers (ModFlags);
- ModFlags |= (method.ModFlags & (~Modifiers.AccessibilityMask));
- ModFlags |= Modifiers.PROPERTY_CUSTOM;
- flags = ModifiersExtensions.MethodAttr (ModFlags);
- flags |= (method.flags & (~MethodAttributes.MemberAccessMask));
+ flags = ModifiersExtensions.MethodAttr (ModFlags) | MethodAttributes.SpecialName;
}
CheckAbstractAndExtern (block != null);
@@ -531,7 +535,12 @@ namespace Mono.CSharp
ok = false;
}
} else if (Get.HasCustomAccessModifier || base_prop.HasDifferentAccessibility) {
- if (!CheckAccessModifiers (Get, base_prop.Get)) {
+ if (!base_prop.Get.IsAccessible (this)) {
+ // Same as csc but it should be different error code
+ Report.Error (115, Get.Location, "`{0}' is marked as an override but no accessible `get' accessor found to override",
+ GetSignatureForError ());
+ ok = false;
+ } else if (!CheckAccessModifiers (Get, base_prop.Get)) {
Error_CannotChangeAccessModifiers (Get, base_prop.Get);
ok = false;
}
@@ -547,6 +556,12 @@ namespace Mono.CSharp
GetSignatureForError (), base_prop.GetSignatureForError ());
ok = false;
}
+
+ if (Get.IsCompilerGenerated) {
+ Report.Error (8080, Location, "`{0}': Auto-implemented properties must override all accessors of the overridden property",
+ GetSignatureForError ());
+ ok = false;
+ }
} else {
if (!base_prop.HasSet) {
if (ok) {
@@ -557,7 +572,12 @@ namespace Mono.CSharp
ok = false;
}
} else if (Set.HasCustomAccessModifier || base_prop.HasDifferentAccessibility) {
- if (!CheckAccessModifiers (Set, base_prop.Set)) {
+ if (!base_prop.Set.IsAccessible (this)) {
+ // Same as csc but it should be different error code
+ Report.Error (115, Set.Location, "`{0}' is marked as an override but no accessible `set' accessor found to override",
+ GetSignatureForError ());
+ ok = false;
+ } else if (!CheckAccessModifiers (Set, base_prop.Set)) {
Error_CannotChangeAccessModifiers (Set, base_prop.Set);
ok = false;
}
@@ -728,12 +748,12 @@ namespace Mono.CSharp
public class Property : PropertyBase
{
- public sealed class BackingField : Field
+ public sealed class BackingFieldDeclaration : Field
{
readonly Property property;
const Modifiers DefaultModifiers = Modifiers.BACKING_FIELD | Modifiers.COMPILER_GENERATED | Modifiers.PRIVATE | Modifiers.DEBUGGER_HIDDEN;
- public BackingField (Property p, bool readOnly)
+ public BackingFieldDeclaration (Property p, bool readOnly)
: base (p.Parent, p.type_expr, DefaultModifiers | (p.ModFlags & (Modifiers.STATIC | Modifiers.UNSAFE)),
new MemberName ("<" + p.GetFullName (p.MemberName) + ">k__BackingField", p.Location), null)
{
@@ -756,8 +776,6 @@ namespace Mono.CSharp
static readonly string[] attribute_target_auto = new string[] { "property", "field" };
- Field backing_field;
-
public Property (TypeDefinition parent, FullNamedExpression type, Modifiers mod,
MemberName name, Attributes attrs)
: base (parent, type, mod,
@@ -768,6 +786,8 @@ namespace Mono.CSharp
{
}
+ public BackingFieldDeclaration BackingField { get; private set; }
+
public Expression Initializer { get; set; }
public override void Accept (StructuralVisitor visitor)
@@ -778,7 +798,7 @@ namespace Mono.CSharp
public override void ApplyAttributeBuilder (Attribute a, MethodSpec ctor, byte[] cdata, PredefinedAttributes pa)
{
if (a.Target == AttributeTargets.Field) {
- backing_field.ApplyAttributeBuilder (a, ctor, cdata, pa);
+ BackingField.ApplyAttributeBuilder (a, ctor, cdata, pa);
return;
}
@@ -788,20 +808,20 @@ namespace Mono.CSharp
void CreateAutomaticProperty ()
{
// Create backing field
- backing_field = new BackingField (this, Initializer != null && Set == null);
- if (!backing_field.Define ())
+ BackingField = new BackingFieldDeclaration (this, Initializer == null && Set == null);
+ if (!BackingField.Define ())
return;
if (Initializer != null) {
- backing_field.Initializer = Initializer;
- Parent.RegisterFieldForInitialization (backing_field, new FieldInitializer (backing_field, Initializer, Location));
- backing_field.ModFlags |= Modifiers.READONLY;
+ BackingField.Initializer = Initializer;
+ Parent.RegisterFieldForInitialization (BackingField, new FieldInitializer (BackingField, Initializer, Location));
+ BackingField.ModFlags |= Modifiers.READONLY;
}
- Parent.PartialContainer.Members.Add (backing_field);
+ Parent.PartialContainer.Members.Add (BackingField);
- FieldExpr fe = new FieldExpr (backing_field, Location);
- if ((backing_field.ModFlags & Modifiers.STATIC) == 0)
+ FieldExpr fe = new FieldExpr (BackingField, Location);
+ if ((BackingField.ModFlags & Modifiers.STATIC) == 0)
fe.InstanceExpression = new CompilerGeneratedThis (Parent.CurrentType, Location);
//
@@ -839,7 +859,7 @@ namespace Mono.CSharp
GetSignatureForError ());
if (IsInterface)
- Report.Error (8053, Location, "`{0}': Properties inside interfaces cannot have initializers",
+ Report.Error (8052, Location, "`{0}': Properties inside interfaces cannot have initializers",
GetSignatureForError ());
if (Compiler.Settings.Version < LanguageVersion.V_6)
@@ -848,16 +868,11 @@ namespace Mono.CSharp
if (auto) {
if (Get == null) {
- Report.Error (8052, Location, "Auto-implemented property `{0}' must have get accessor",
+ Report.Error (8051, Location, "Auto-implemented property `{0}' must have get accessor",
GetSignatureForError ());
return false;
}
- if (Initializer == null && AccessorSecond == null) {
- Report.Error (8051, Location, "Auto-implemented property `{0}' must have set accessor or initializer",
- GetSignatureForError ());
- }
-
if (Compiler.Settings.Version < LanguageVersion.V_3 && Initializer == null)
Report.FeatureIsNotAvailable (Compiler, Location, "auto-implemented properties");
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/report.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/report.cs
index e9b16d1c..74bbb46c 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/report.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/report.cs
@@ -58,7 +58,7 @@ namespace Mono.CSharp {
3021, 3022, 3023, 3024, 3026, 3027,
4014, 4024, 4025, 4026,
7035, 7080, 7081, 7082, 7095,
- 8009,
+ 8009, 8094
};
static HashSet<int> AllWarningsHashSet;
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs
index 18249431..69be5921 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/statement.cs
@@ -1135,7 +1135,7 @@ namespace Mono.CSharp {
var block_return_type = ec.ReturnType;
if (expr == null) {
- if (block_return_type.Kind == MemberKind.Void)
+ if (block_return_type.Kind == MemberKind.Void || block_return_type == InternalType.ErrorType)
return true;
//
@@ -1408,15 +1408,10 @@ namespace Mono.CSharp {
protected override bool DoFlowAnalysis (FlowAnalysisContext fc)
{
- if (fc.LabelStack == null) {
- fc.LabelStack = new List<LabeledStatement> ();
- } else if (fc.LabelStack.Contains (label)) {
+ if (fc.AddReachedLabel (label))
return true;
- }
- fc.LabelStack.Add (label);
label.Block.ScanGotoJump (label, fc);
- fc.LabelStack.Remove (label);
return true;
}
@@ -2966,6 +2961,7 @@ namespace Mono.CSharp {
bool DoFlowAnalysis (FlowAnalysisContext fc, int startIndex)
{
bool end_unreachable = !reachable;
+ bool goto_flow_analysis = startIndex != 0;
for (; startIndex < statements.Count; ++startIndex) {
var s = statements[startIndex];
@@ -2989,10 +2985,14 @@ namespace Mono.CSharp {
// this for flow-analysis only to carry variable info correctly.
//
if (end_unreachable) {
+ bool after_goto_case = goto_flow_analysis && s is GotoCase;
+
for (++startIndex; startIndex < statements.Count; ++startIndex) {
s = statements[startIndex];
if (s is SwitchLabel) {
- s.FlowAnalysis (fc);
+ if (!after_goto_case)
+ s.FlowAnalysis (fc);
+
break;
}
@@ -3001,7 +3001,20 @@ namespace Mono.CSharp {
statements [startIndex] = RewriteUnreachableStatement (s);
}
}
+
+ //
+ // Idea is to stop after goto case because goto case will always have at least same
+ // variable assigned as switch case label. This saves a lot for complex goto case tests
+ //
+ if (after_goto_case)
+ break;
+
+ continue;
}
+
+ var lb = s as LabeledStatement;
+ if (lb != null && fc.AddReachedLabel (lb))
+ break;
}
//
@@ -3025,7 +3038,7 @@ namespace Mono.CSharp {
// L:
// v = 1;
- if (s is BlockVariable)
+ if (s is BlockVariable || s is EmptyStatement)
return s;
return new EmptyStatement (s.loc);
@@ -3206,15 +3219,15 @@ namespace Mono.CSharp {
public override void Emit (EmitContext ec)
{
+ if (Parent != null)
+ ec.BeginScope ();
+
EmitScopeInitialization (ec);
if (ec.EmitAccurateDebugInfo && !IsCompilerGenerated && ec.Mark (StartLocation)) {
ec.Emit (OpCodes.Nop);
}
- if (Parent != null)
- ec.BeginScope ();
-
DoEmit (ec);
if (Parent != null)
@@ -3266,7 +3279,7 @@ namespace Mono.CSharp {
//
// We are the first storey on path and 'this' has to be hoisted
//
- if (storey.HoistedThis == null) {
+ if (storey.HoistedThis == null || !(storey.Parent is HoistedStoreyClass)) {
foreach (ExplicitBlock ref_block in Original.ParametersBlock.TopBlock.ThisReferencesFromChildrenBlock) {
//
// ThisReferencesFromChildrenBlock holds all reference even if they
@@ -4471,6 +4484,8 @@ namespace Mono.CSharp {
}
}
+ public bool PatternMatching { get; set; }
+
public bool SectionStart { get; set; }
public Label GetILLabel (EmitContext ec)
@@ -4492,7 +4507,7 @@ namespace Mono.CSharp {
if (!SectionStart)
return false;
- fc.DefiniteAssignment = new DefiniteAssignmentBitSet (fc.SwitchInitialDefinitiveAssignment);
+ fc.BranchDefiniteAssignment (fc.SwitchInitialDefinitiveAssignment);
return false;
}
@@ -4508,21 +4523,33 @@ namespace Mono.CSharp {
// Resolves the expression, reduces it to a literal if possible
// and then converts it to the requested type.
//
- bool ResolveAndReduce (BlockContext rc)
+ bool ResolveAndReduce (BlockContext bc)
{
if (IsDefault)
return true;
- var c = label.ResolveLabelConstant (rc);
+ var switch_statement = bc.Switch;
+
+ if (PatternMatching) {
+ label = new Is (switch_statement.ExpressionValue, label, loc).Resolve (bc);
+ return label != null;
+ }
+
+ var c = label.ResolveLabelConstant (bc);
if (c == null)
return false;
- if (rc.Switch.IsNullable && c is NullLiteral) {
+ if (switch_statement.IsNullable && c is NullLiteral) {
converted = c;
return true;
}
- converted = c.ImplicitConversionRequired (rc, rc.Switch.SwitchType);
+ if (switch_statement.IsPatternMatching) {
+ label = new Is (switch_statement.ExpressionValue, label, loc).Resolve (bc);
+ return true;
+ }
+
+ converted = c.ImplicitConversionRequired (bc, switch_statement.SwitchType);
return converted != null;
}
@@ -4728,12 +4755,24 @@ namespace Mono.CSharp {
}
}
+ public bool IsPatternMatching {
+ get {
+ return new_expr == null && SwitchType != null;
+ }
+ }
+
public List<SwitchLabel> RegisteredLabels {
get {
return case_labels;
}
}
+ public VariableReference ExpressionValue {
+ get {
+ return value;
+ }
+ }
+
//
// Determines the governing type for a switch. The returned
// expression might be the expression from the switch, or an
@@ -4843,6 +4882,9 @@ namespace Mono.CSharp {
return;
}
+ if (sl.Converted == null)
+ return;
+
try {
if (string_labels != null) {
string string_value = sl.Converted.GetValue () as string;
@@ -4851,7 +4893,7 @@ namespace Mono.CSharp {
else
string_labels.Add (string_value, sl);
} else {
- if (sl.Converted is NullLiteral) {
+ if (sl.Converted.IsNull) {
case_null = sl;
} else {
labels.Add (sl.Converted.GetValueAsLong (), sl);
@@ -5015,7 +5057,17 @@ namespace Mono.CSharp {
}
}
- return sl;
+ if (sl == null || sl.SectionStart)
+ return sl;
+
+ //
+ // Always return section start, it simplifies handling of switch labels
+ //
+ for (int idx = case_labels.IndexOf (sl); ; --idx) {
+ var cs = case_labels [idx];
+ if (cs.SectionStart)
+ return cs;
+ }
}
protected override bool DoFlowAnalysis (FlowAnalysisContext fc)
@@ -5066,39 +5118,44 @@ namespace Mono.CSharp {
}
}
+ Expression switch_expr;
if (new_expr == null) {
- if (Expr.Type != InternalType.ErrorType) {
- ec.Report.Error (151, loc,
- "A switch expression of type `{0}' cannot be converted to an integral type, bool, char, string, enum or nullable type",
- Expr.Type.GetSignatureForError ());
- }
+ if (ec.Module.Compiler.Settings.Version != LanguageVersion.Experimental) {
+ if (Expr.Type != InternalType.ErrorType) {
+ ec.Report.Error (151, loc,
+ "A switch expression of type `{0}' cannot be converted to an integral type, bool, char, string, enum or nullable type",
+ Expr.Type.GetSignatureForError ());
+ }
- return false;
- }
+ return false;
+ }
- SwitchType = new_expr.Type;
- if (SwitchType.IsNullableType) {
- new_expr = unwrap = Nullable.Unwrap.Create (new_expr, true);
- SwitchType = Nullable.NullableInfo.GetUnderlyingType (SwitchType);
- }
+ switch_expr = Expr;
+ SwitchType = Expr.Type;
+ } else {
+ switch_expr = new_expr;
+ SwitchType = new_expr.Type;
+ if (SwitchType.IsNullableType) {
+ new_expr = unwrap = Nullable.Unwrap.Create (new_expr, true);
+ SwitchType = Nullable.NullableInfo.GetUnderlyingType (SwitchType);
+ }
- if (SwitchType.BuiltinType == BuiltinTypeSpec.Type.Bool && ec.Module.Compiler.Settings.Version == LanguageVersion.ISO_1) {
- ec.Report.FeatureIsNotAvailable (ec.Module.Compiler, loc, "switch expression of boolean type");
- return false;
- }
+ if (SwitchType.BuiltinType == BuiltinTypeSpec.Type.Bool && ec.Module.Compiler.Settings.Version == LanguageVersion.ISO_1) {
+ ec.Report.FeatureIsNotAvailable (ec.Module.Compiler, loc, "switch expression of boolean type");
+ return false;
+ }
- if (block.Statements.Count == 0)
- return true;
+ if (block.Statements.Count == 0)
+ return true;
- if (SwitchType.BuiltinType == BuiltinTypeSpec.Type.String) {
- string_labels = new Dictionary<string, SwitchLabel> ();
- } else {
- labels = new Dictionary<long, SwitchLabel> ();
+ if (SwitchType.BuiltinType == BuiltinTypeSpec.Type.String) {
+ string_labels = new Dictionary<string, SwitchLabel> ();
+ } else {
+ labels = new Dictionary<long, SwitchLabel> ();
+ }
}
- case_labels = new List<SwitchLabel> ();
-
- var constant = new_expr as Constant;
+ var constant = switch_expr as Constant;
//
// Don't need extra variable for constant switch or switch with
@@ -5108,7 +5165,7 @@ namespace Mono.CSharp {
//
// Store switch expression for comparison purposes
//
- value = new_expr as VariableReference;
+ value = switch_expr as VariableReference;
if (value == null && !HasOnlyDefaultSection ()) {
var current_block = ec.CurrentBlock;
ec.CurrentBlock = Block;
@@ -5119,6 +5176,8 @@ namespace Mono.CSharp {
}
}
+ case_labels = new List<SwitchLabel> ();
+
Switch old_switch = ec.Switch;
ec.Switch = this;
var parent_los = ec.EnclosingLoopOrSwitch;
@@ -5411,6 +5470,11 @@ namespace Mono.CSharp {
var constant = label.Converted;
+ if (constant == null) {
+ label.Label.EmitBranchable (ec, label.GetILLabel (ec), true);
+ continue;
+ }
+
if (equal_method != null) {
value.Emit (ec);
constant.Emit (ec);
@@ -5436,6 +5500,11 @@ namespace Mono.CSharp {
void EmitDispatch (EmitContext ec)
{
+ if (IsPatternMatching) {
+ EmitShortSwitch (ec);
+ return;
+ }
+
if (value == null) {
//
// Constant switch, we've already done the work if there is only 1 label
@@ -5483,12 +5552,14 @@ namespace Mono.CSharp {
if (value != null) {
ec.Mark (loc);
+
+ var switch_expr = new_expr ?? Expr;
if (IsNullable) {
unwrap.EmitCheck (ec);
ec.Emit (OpCodes.Brfalse, nullLabel);
- value.EmitAssign (ec, new_expr, false, false);
- } else if (new_expr != value) {
- value.EmitAssign (ec, new_expr, false, false);
+ value.EmitAssign (ec, switch_expr, false, false);
+ } else if (switch_expr != value) {
+ value.EmitAssign (ec, switch_expr, false, false);
}
@@ -6428,6 +6499,31 @@ namespace Mono.CSharp {
public class Catch : Statement
{
+ class CatchVariableStore : Statement
+ {
+ readonly Catch ctch;
+
+ public CatchVariableStore (Catch ctch)
+ {
+ this.ctch = ctch;
+ }
+
+ protected override void CloneTo (CloneContext clonectx, Statement target)
+ {
+ }
+
+ protected override void DoEmit (EmitContext ec)
+ {
+ // Emits catch variable debug information inside correct block
+ ctch.EmitCatchVariableStore (ec);
+ }
+
+ protected override bool DoFlowAnalysis (FlowAnalysisContext fc)
+ {
+ return true;
+ }
+ }
+
class FilterStatement : Statement
{
readonly Catch ctch;
@@ -6557,9 +6653,6 @@ namespace Mono.CSharp {
ec.BeginExceptionFilterBlock ();
ec.Emit (OpCodes.Isinst, IsGeneral ? ec.BuiltinTypes.Object : CatchType);
- if (li != null)
- EmitCatchVariableStore (ec);
-
if (Block.HasAwait) {
Block.EmitScopeInitialization (ec);
} else {
@@ -6574,14 +6667,15 @@ namespace Mono.CSharp {
else
ec.BeginCatchBlock (CatchType);
- if (li != null) {
- EmitCatchVariableStore (ec);
- } else {
+ if (li == null)
ec.Emit (OpCodes.Pop);
- }
- if (!Block.HasAwait)
+ if (Block.HasAwait) {
+ if (li != null)
+ EmitCatchVariableStore (ec);
+ } else {
Block.Emit (ec);
+ }
}
void EmitCatchVariableStore (EmitContext ec)
@@ -6589,9 +6683,9 @@ namespace Mono.CSharp {
li.CreateBuilder (ec);
//
- // Special case hoisted catch variable, we have to use a temporary variable
- // to pass via anonymous storey initialization with the value still on top
- // of the stack
+ // For hoisted catch variable we have to use a temporary local variable
+ // for captured variable initialization during storey setup because variable
+ // needs to be on the stack after storey instance for stfld operation
//
if (li.HoistedVariant != null) {
hoisted_temp = new LocalTemporary (li.Type);
@@ -6607,6 +6701,9 @@ namespace Mono.CSharp {
using (bc.Set (ResolveContext.Options.CatchScope)) {
if (type_expr == null) {
if (CreateExceptionVariable (bc.Module.Compiler.BuiltinTypes.Object)) {
+ if (!block.HasAwait || Filter != null)
+ block.AddScopeStatement (new CatchVariableStore (this));
+
Expression source = new EmptyExpression (li.Type);
assign = new CompilerAssign (new LocalVariableReference (li, Location.Null), source, Location.Null);
Block.AddScopeStatement (new StatementExpression (assign, Location.Null));
@@ -6630,6 +6727,9 @@ namespace Mono.CSharp {
if (li.Type.IsGenericParameter)
source = new UnboxCast (source, li.Type);
+ if (!block.HasAwait || Filter != null)
+ block.AddScopeStatement (new CatchVariableStore (this));
+
//
// Uses Location.Null to hide from symbol file
//
@@ -7143,7 +7243,7 @@ namespace Mono.CSharp {
DefiniteAssignmentBitSet try_fc = res ? null : fc.DefiniteAssignment;
foreach (var c in clauses) {
- fc.DefiniteAssignment = new DefiniteAssignmentBitSet (start_fc);
+ fc.BranchDefiniteAssignment (start_fc);
if (!c.FlowAnalysis (fc)) {
if (try_fc == null)
try_fc = fc.DefiniteAssignment;
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/typemanager.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/typemanager.cs
index 6e785dfc..b16e2f38 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/typemanager.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/typemanager.cs
@@ -233,6 +233,11 @@ namespace Mono.CSharp
public readonly PredefinedType INotifyCompletion;
public readonly PredefinedType ICriticalNotifyCompletion;
+ // C# 6.0
+ public readonly PredefinedType IFormattable;
+ public readonly PredefinedType FormattableString;
+ public readonly PredefinedType FormattableStringFactory;
+
public PredefinedTypes (ModuleContainer module)
{
TypedReference = new PredefinedType (module, MemberKind.Struct, "System", "TypedReference");
@@ -286,6 +291,10 @@ namespace Mono.CSharp
INotifyCompletion = new PredefinedType (module, MemberKind.Interface, "System.Runtime.CompilerServices", "INotifyCompletion");
ICriticalNotifyCompletion = new PredefinedType (module, MemberKind.Interface, "System.Runtime.CompilerServices", "ICriticalNotifyCompletion");
+ IFormattable = new PredefinedType (module, MemberKind.Interface, "System", "IFormattable");
+ FormattableString = new PredefinedType (module, MemberKind.Class, "System", "FormattableString");
+ FormattableStringFactory = new PredefinedType (module, MemberKind.Class, "System.Runtime.CompilerServices", "FormattableStringFactory");
+
//
// Define types which are used for comparison. It does not matter
// if they don't exist as no error report is needed
@@ -322,6 +331,9 @@ namespace Mono.CSharp
TaskGeneric.TypeSpec.IsGenericTask = true;
SwitchUserTypes = Switch.CreateSwitchUserTypes (module, Nullable.TypeSpec);
+
+ IFormattable.Define ();
+ FormattableString.Define ();
}
}
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/typespec.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/typespec.cs
index a33159d8..aec01995 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/typespec.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/typespec.cs
@@ -490,17 +490,22 @@ namespace Mono.CSharp
//
// Text representation of type used by documentation writer
//
- public override string GetSignatureForDocumentation ()
+ public sealed override string GetSignatureForDocumentation ()
+ {
+ return GetSignatureForDocumentation (false);
+ }
+
+ public virtual string GetSignatureForDocumentation (bool explicitName)
{
StringBuilder sb = new StringBuilder ();
if (IsNested) {
- sb.Append (DeclaringType.GetSignatureForDocumentation ());
- } else {
- sb.Append (MemberDefinition.Namespace);
+ sb.Append (DeclaringType.GetSignatureForDocumentation (explicitName));
+ } else if (MemberDefinition.Namespace != null) {
+ sb.Append (explicitName ? MemberDefinition.Namespace.Replace ('.', '#') : MemberDefinition.Namespace);
}
if (sb.Length != 0)
- sb.Append (".");
+ sb.Append (explicitName ? "#" : ".");
sb.Append (Name);
if (Arity > 0) {
@@ -510,7 +515,7 @@ namespace Mono.CSharp
if (i > 0)
sb.Append (",");
- sb.Append (TypeArguments[i].GetSignatureForDocumentation ());
+ sb.Append (TypeArguments[i].GetSignatureForDocumentation (explicitName));
}
sb.Append ("}");
} else {
@@ -522,33 +527,6 @@ namespace Mono.CSharp
return sb.ToString ();
}
- public string GetExplicitNameSignatureForDocumentation ()
- {
- StringBuilder sb = new StringBuilder ();
- if (IsNested) {
- sb.Append (DeclaringType.GetExplicitNameSignatureForDocumentation ());
- } else if (MemberDefinition.Namespace != null) {
- sb.Append (MemberDefinition.Namespace.Replace ('.', '#'));
- }
-
- if (sb.Length != 0)
- sb.Append ("#");
-
- sb.Append (Name);
- if (Arity > 0) {
- sb.Append ("{");
- for (int i = 0; i < Arity; ++i) {
- if (i > 0)
- sb.Append (",");
-
- sb.Append (TypeArguments[i].GetExplicitNameSignatureForDocumentation ());
- }
- sb.Append ("}");
- }
-
- return sb.ToString ();
- }
-
public override string GetSignatureForError ()
{
string s;
@@ -1446,6 +1424,7 @@ namespace Mono.CSharp
public static readonly InternalType FakeInternalType = new InternalType ("<fake$type>");
public static readonly InternalType Namespace = new InternalType ("<namespace>");
public static readonly InternalType ErrorType = new InternalType ("<error>");
+ public static readonly InternalType VarOutType = new InternalType ("var out");
readonly string name;
@@ -1658,9 +1637,9 @@ namespace Mono.CSharp
return null;
}
- public override string GetSignatureForDocumentation ()
+ public override string GetSignatureForDocumentation (bool explicitName)
{
- return Element.GetSignatureForDocumentation () + GetPostfixSignature ();
+ return Element.GetSignatureForDocumentation (explicitName) + GetPostfixSignature ();
}
public override string GetSignatureForError ()
@@ -1893,29 +1872,33 @@ namespace Mono.CSharp
return sb.ToString ();
}
- public override string GetSignatureForDocumentation ()
+ public override string GetSignatureForDocumentation (bool explicitName)
{
StringBuilder sb = new StringBuilder ();
- GetElementSignatureForDocumentation (sb);
+ GetElementSignatureForDocumentation (sb, explicitName);
return sb.ToString ();
}
- void GetElementSignatureForDocumentation (StringBuilder sb)
+ void GetElementSignatureForDocumentation (StringBuilder sb, bool explicitName)
{
var ac = Element as ArrayContainer;
if (ac == null)
- sb.Append (Element.GetSignatureForDocumentation ());
+ sb.Append (Element.GetSignatureForDocumentation (explicitName));
else
- ac.GetElementSignatureForDocumentation (sb);
+ ac.GetElementSignatureForDocumentation (sb, explicitName);
- sb.Append ("[");
- for (int i = 1; i < rank; i++) {
- if (i == 1)
- sb.Append ("0:");
+ if (explicitName) {
+ sb.Append (GetPostfixSignature (rank));
+ } else {
+ sb.Append ("[");
+ for (int i = 1; i < rank; i++) {
+ if (i == 1)
+ sb.Append ("0:");
- sb.Append (",0:");
+ sb.Append (",0:");
+ }
+ sb.Append ("]");
}
- sb.Append ("]");
}
public static ArrayContainer MakeType (ModuleContainer module, TypeSpec element)
diff --git a/ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs b/ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs
index 446f56be..11783f74 100644
--- a/ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs
+++ b/ICSharpCode.NRefactory.CSharp/Parser/mcs/visit.cs
@@ -52,6 +52,10 @@ namespace Mono.CSharp
{
}
+ public virtual void Visit (UsingClause usingClause)
+ {
+ }
+
public virtual void Visit (CompilationSourceFile csf)
{
}