public NamedBlockAst(IScriptExtent extent, TokenKind blockName, StatementBlockAst statementBlock, bool unnamed) : base(extent) { if (!blockName.HasTrait(TokenFlags.ScriptBlockBlockName) || (unnamed && ((blockName == TokenKind.Begin) || (blockName == TokenKind.Dynamicparam)))) { throw PSTraceSource.NewArgumentException("blockName"); } if (statementBlock == null) { throw PSTraceSource.NewArgumentNullException("statementBlock"); } this.Unnamed = unnamed; this.BlockKind = blockName; ReadOnlyCollection <StatementAst> statements = statementBlock.Statements; this.Statements = statements; foreach (StatementAst ast in statements) { ast.ClearParent(); } base.SetParents((IEnumerable <Ast>)statements); ReadOnlyCollection <TrapStatementAst> traps = statementBlock.Traps; if ((traps != null) && traps.Any <TrapStatementAst>()) { this.Traps = traps; foreach (TrapStatementAst ast2 in traps) { ast2.ClearParent(); } base.SetParents((IEnumerable <Ast>)traps); } if (!unnamed) { InternalScriptExtent extent2 = statementBlock.Extent as InternalScriptExtent; if (extent2 != null) { this.OpenCurlyExtent = new InternalScriptExtent(extent2.PositionHelper, extent2.StartOffset, extent2.StartOffset + 1); this.CloseCurlyExtent = new InternalScriptExtent(extent2.PositionHelper, extent2.EndOffset - 1, extent2.EndOffset); } } }
public NamedBlockAst(IScriptExtent extent, TokenKind blockName, StatementBlockAst statementBlock, bool unnamed) : base(extent) { if (!blockName.HasTrait(TokenFlags.ScriptBlockBlockName) || (unnamed && ((blockName == TokenKind.Begin) || (blockName == TokenKind.Dynamicparam)))) { throw PSTraceSource.NewArgumentException("blockName"); } if (statementBlock == null) { throw PSTraceSource.NewArgumentNullException("statementBlock"); } this.Unnamed = unnamed; this.BlockKind = blockName; ReadOnlyCollection<StatementAst> statements = statementBlock.Statements; this.Statements = statements; foreach (StatementAst ast in statements) { ast.ClearParent(); } base.SetParents((IEnumerable<Ast>) statements); ReadOnlyCollection<TrapStatementAst> traps = statementBlock.Traps; if ((traps != null) && traps.Any<TrapStatementAst>()) { this.Traps = traps; foreach (TrapStatementAst ast2 in traps) { ast2.ClearParent(); } base.SetParents((IEnumerable<Ast>) traps); } if (!unnamed) { InternalScriptExtent extent2 = statementBlock.Extent as InternalScriptExtent; if (extent2 != null) { this.OpenCurlyExtent = new InternalScriptExtent(extent2.PositionHelper, extent2.StartOffset, extent2.StartOffset + 1); this.CloseCurlyExtent = new InternalScriptExtent(extent2.PositionHelper, extent2.EndOffset - 1, extent2.EndOffset); } } }