public LambdaFunctionExpr(SourceUnit/*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, Scope scope, NamespaceDecl ns, bool aliasReturn, List<FormalParam>/*!*/ formalParams, List<FormalParam> useParams, List<Statement>/*!*/ body) : base(position) { Debug.Assert(formalParams != null && body != null); // inject use parameters at the begining of formal parameters if (useParams != null && useParams.Count > 0) { if (formalParams.Count == 0) formalParams = useParams; // also we don't want to modify Parser.emptyFormalParamListIndex singleton. else formalParams.InsertRange(0, useParams); } //this.ns = ns; this.signature = new Signature(aliasReturn, formalParams); this.useParams = useParams; //this.typeSignature = new TypeSignature(genericParams); //this.attributes = new CustomAttributes(attributes); this.body = body; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; //QualifiedName qn = (ns != null) ? new QualifiedName(this.name, ns.QualifiedName) : new QualifiedName(this.name); //function = new PhpFunction(qn, memberAttributes, signature, typeSignature, isConditional, scope, sourceUnit, position); function = new PhpLambdaFunction(this.signature, sourceUnit, position); function.WriteUp(new TypeSignature(FormalTypeParam.EmptyList).ToPhpRoutineSignature(function)); }
public FunctionDecl(SourceUnit /*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, bool isConditional, Scope scope, PhpMemberAttributes memberAttributes, string /*!*/ name, NamespaceDecl ns, bool aliasReturn, List <FormalParam> /*!*/ formalParams, List <FormalTypeParam> /*!*/ genericParams, List <Statement> /*!*/ body, List <CustomAttribute> attributes) : base(position) { Debug.Assert(genericParams != null && name != null && formalParams != null && body != null); this.name = new Name(name); this.ns = ns; this.signature = new Signature(aliasReturn, formalParams); this.typeSignature = new TypeSignature(genericParams); this.attributes = new CustomAttributes(attributes); this.body = body; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; QualifiedName qn = (ns != null) ? new QualifiedName(this.name, ns.QualifiedName) : new QualifiedName(this.name); function = new PhpFunction(qn, memberAttributes, signature, typeSignature, isConditional, scope, sourceUnit, position); function.WriteUp(typeSignature.ToPhpRoutineSignature(function)); function.Declaration.Node = this; }
public void TestCantClosePositionBeforeOpening() { var position = new ShortPosition(); var order = GetOrderInfo(new SOrderParameters(EOrderAction.BuyToCover)); Assert.Throws <InvalidOrderException>(() => position.ValidateOrder(order)); }
public LambdaFunctionExpr(SourceUnit/*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, Scope scope, NamespaceDecl ns, bool aliasReturn, List<FormalParam>/*!*/ formalParams, List<FormalParam> useParams, List<Statement>/*!*/ body) : base(position) { Debug.Assert(formalParams != null && body != null); // inject use parameters at the begining of formal parameters if (useParams != null && useParams.Count > 0) { if (formalParams.Count == 0) formalParams = useParams; // also we don't want to modify Parser.emptyFormalParamListIndex singleton. else formalParams.InsertRange(0, useParams); } //this.ns = ns; this.signature = new Signature(aliasReturn, formalParams); this.useParams = useParams; //this.typeSignature = new TypeSignature(genericParams); //this.attributes = new CustomAttributes(attributes); this.body = body; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; }
public void TestSize() { var position = new ShortPosition(); position.UpdatePosition( GetOrderInfo(new SOrderParameters(EOrderAction.SellShort))); Assert.Equal(100, position.Size); }
public LambdaFunctionExpr(SourceUnit /*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, Scope scope, NamespaceDecl ns, bool aliasReturn, List <FormalParam> /*!*/ formalParams, List <FormalParam> useParams, List <Statement> /*!*/ body) : base(position) { Debug.Assert(formalParams != null && body != null); // inject use parameters at the begining of formal parameters if (useParams != null && useParams.Count > 0) { if (formalParams.Count == 0) { formalParams = useParams; // also we don't want to modify Parser.emptyFormalParamListIndex singleton. } else { formalParams.InsertRange(0, useParams); } } //this.ns = ns; this.signature = new Signature(aliasReturn, formalParams); this.useParams = useParams; //this.typeSignature = new TypeSignature(genericParams); //this.attributes = new CustomAttributes(attributes); this.body = body; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; //QualifiedName qn = (ns != null) ? new QualifiedName(this.name, ns.QualifiedName) : new QualifiedName(this.name); //function = new PhpFunction(qn, memberAttributes, signature, typeSignature, isConditional, scope, sourceUnit, position); function = new PhpLambdaFunction(this.signature, sourceUnit, position); function.WriteUp(new TypeSignature(FormalTypeParam.EmptyList).ToPhpRoutineSignature(function)); }
public FunctionDecl(SourceUnit/*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, bool isConditional, Scope scope, PhpMemberAttributes memberAttributes, string/*!*/ name, NamespaceDecl ns, bool aliasReturn, List<FormalParam>/*!*/ formalParams, List<FormalTypeParam>/*!*/ genericParams, List<Statement>/*!*/ body, List<CustomAttribute> attributes) : base(position) { Debug.Assert(genericParams != null && name != null && formalParams != null && body != null); this.name = new Name(name); this.ns = ns; this.signature = new Signature(aliasReturn, formalParams); this.typeSignature = new TypeSignature(genericParams); this.attributes = new CustomAttributes(attributes); this.body = body; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; QualifiedName qn = (ns != null) ? new QualifiedName(this.name, ns.QualifiedName) : new QualifiedName(this.name); function = new PhpFunction(qn, memberAttributes, signature, typeSignature, isConditional, scope, sourceUnit, position); function.WriteUp(typeSignature.ToPhpRoutineSignature(function)); function.Declaration.Node = this; }
public TraitsUse(Position position, ShortPosition headingEndPosition, List<QualifiedName>/*!*/traitsList, List<TraitAdaptation> traitAdaptationList) :base(position, null) { if (traitsList == null) throw new ArgumentNullException("traitsList"); this.traitsList = traitsList; this.traitAdaptationList = traitAdaptationList; this.headingEndPosition = headingEndPosition; }
public MethodDecl(Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, string name, bool aliasReturn, List<FormalParam>/*!*/ formalParams, List<FormalTypeParam>/*!*/ genericParams, List<Statement> body, PhpMemberAttributes modifiers, List<ActualParam> baseCtorParams, List<CustomAttribute> attributes) : base(position, attributes) { Debug.Assert(genericParams != null && formalParams != null); this.modifiers = modifiers; this.name = new Name(name); this.signature = new Signature(aliasReturn, formalParams); this.typeSignature = new TypeSignature(genericParams); this.body = body; this.baseCtorParams = baseCtorParams; this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; }
public TypeDecl(SourceUnit/*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, bool isConditional, Scope scope, PhpMemberAttributes memberAttributes, bool isPartial, Name className, Position classNamePosition, NamespaceDecl ns, List<FormalTypeParam>/*!*/ genericParams, Tuple<GenericQualifiedName, Position> baseClassName, List<KeyValuePair<GenericQualifiedName, Position>>/*!*/ implementsList, List<TypeMemberDecl>/*!*/ members, List<CustomAttribute> attributes) : base(position) { Debug.Assert(genericParams != null && implementsList != null && members != null); Debug.Assert((memberAttributes & PhpMemberAttributes.Trait) == 0 || (memberAttributes & PhpMemberAttributes.Interface) == 0, "Interface cannot be a trait"); this.name = className; this.NamePosition = classNamePosition; this.ns = ns; this.typeSignature = new TypeSignature(genericParams); if (baseClassName != null) { this.baseClassName = baseClassName.Item1; this.BaseClassNamePosition = baseClassName.Item2; } this.MemberAttributes = memberAttributes; this.Scope = scope; this.SourceUnit = sourceUnit; this.IsConditional = isConditional; this.implementsList = implementsList; this.members = members; if (attributes != null && attributes.Count != 0) this.Attributes = new CustomAttributes(attributes); this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; this.partialKeyword = isPartial; // remember current aliases: var aliases = (ns != null) ? ns.Aliases : sourceUnit.Aliases; if (aliases.Count > 0) validAliases = new Dictionary<string, QualifiedName>(aliases); }
public TypeDecl(SourceUnit/*!*/ sourceUnit, Position position, Position entireDeclarationPosition, ShortPosition headingEndPosition, ShortPosition declarationBodyPosition, bool isConditional, Scope scope, PhpMemberAttributes memberAttributes, bool isPartial, Name className, Position classNamePosition, NamespaceDecl ns, List<FormalTypeParam>/*!*/ genericParams, Tuple<GenericQualifiedName, Position> baseClassName, List<KeyValuePair<GenericQualifiedName, Position>>/*!*/ implementsList, List<TypeMemberDecl>/*!*/ members, List<CustomAttribute> attributes) : base(position) { Debug.Assert(genericParams != null && implementsList != null && members != null); Debug.Assert((memberAttributes & PhpMemberAttributes.Trait) == 0 || (memberAttributes & PhpMemberAttributes.Interface) == 0, "Interface cannot be a trait"); this.name = className; this.NamePosition = classNamePosition; this.ns = ns; this.typeSignature = new TypeSignature(genericParams); if (baseClassName != null) { this.baseClassName = baseClassName.Item1; this.BaseClassNamePosition = baseClassName.Item2; } this.implementsList = implementsList; this.members = members; this.attributes = new CustomAttributes(attributes); this.entireDeclarationPosition = entireDeclarationPosition; this.headingEndPosition = headingEndPosition; this.declarationBodyPosition = declarationBodyPosition; this.partialKeyword = isPartial; // remember current aliases: var aliases = (ns != null) ? ns.Aliases : sourceUnit.Aliases; if (aliases.Count > 0) validAliases = new Dictionary<string, QualifiedName>(aliases); // create stuff necessary for inclusion resolving process, other structures are created duirng analysis: QualifiedName qn = (ns != null) ? new QualifiedName(name, ns.QualifiedName) : new QualifiedName(name); type = new PhpType(qn, memberAttributes, isPartial, typeSignature, isConditional, scope, sourceUnit, position); //// add alias for private classes (if not added yet by partial declaration): //if (type.IsPrivate) // sourceUnit.AddTypeAlias(qn, this.name); // member-analysis needs the node: type.Declaration.Node = this; }
public ConditionalStmt(ShortPosition position, Expression condition, Statement /*!*/ statement) { this.Position = position; this.condition = condition; this.statement = statement; }
public void TestSizeNoPositions() { var position = new ShortPosition(); Assert.Equal(0, position.Size); }