public CodeParameterDeclarationExpressionCollection(CodeParameterDeclarationExpressionCollection value)
		{
			AddRange(value);
		}
		public void AddRange(CodeParameterDeclarationExpressionCollection value)
		{
			if (value == null)
			{
				throw new ArgumentNullException("value");
			}

			int count = value.Count;
			for (int i = 0; i < count; i++)
			{
				Add(value[i]);
			}
		}
		public void RequestParameters(InstructionArg arg, bool hasSizeArg, CodeParameterDeclarationExpressionCollection prs)
		{
			if (hasSizeArg)
			{
				switch (ID)
				{
					case None_ID:
						return;
					case Imm8_ID:
					case Imm16_ID:
					case Imm32_ID:
						prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.UInt, arg.Name + ImmArgSuffix) 
							{
								DefaultValueExpression = (arg.DefaultValue.HasValue ? new CodePrimitiveExpression(arg.DefaultValue.Value) : null) 
							}
						);
						return;
						
					default:
						break;
				}
			}
			switch (ID)
			{
				case None_ID:
					break;
				case Dis8_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.SByte, arg.Name + DisArgSuffix));
					break;
				case Dis16_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.Short, arg.Name + DisArgSuffix));
					break;
				case Dis32_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.Int, arg.Name + DisArgSuffix));
					break;

				case Imm8_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.Byte, arg.Name + ImmArgSuffix) 
						{
							DefaultValueExpression = (arg.DefaultValue.HasValue ? new CodePrimitiveExpression(arg.DefaultValue.Value) : null) 
						}
					);
					return;
				case Imm16_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.UShort, arg.Name + ImmArgSuffix) 
						{
							DefaultValueExpression = (arg.DefaultValue.HasValue ? new CodePrimitiveExpression(arg.DefaultValue.Value) : null) 
						}
					);
					return;
				case Imm32_ID:
					prs.Add(new CodeParameterDeclarationExpression(StaticTypeReferences.UInt, arg.Name + ImmArgSuffix) 
						{
							DefaultValueExpression = (arg.DefaultValue.HasValue ? new CodePrimitiveExpression(arg.DefaultValue.Value) : null) 
						}
					);
					return;

				default:
					foreach (CustomInstructionArgParameter p in mParameters.Values)
					{
						prs.Add(new CodeParameterDeclarationExpression(FieldTypeRegistry.Fields[p.ArgType].CodeType, arg.Name + p.ArgNameSuffix));
					}
					return;
			}
		}