public static IBlockFormula Block( IBlockFormula parentBlock, ReadOnlyCollection<IBlockFormula> childBlocks, ReadOnlyCollection<IFormula> variables, ReadOnlyCollection<IFormula> formulas, IFormula result, ITypeDeclaration type, IFormula parent) { return new BlockFormula(parentBlock, childBlocks, variables, formulas, result, type, parent); }
protected internal BlockFormula( string name, INode referrers, ITerminal<ITypeDeclaration> type, IBlockFormula parentBlock, IBlockFormula childBlocks, INonterminal variables, INonterminal formulas, INonterminal result) : this(name, referrers, IBlockFormulaMixin.ToReadOnlyProperties(type, parentBlock, childBlocks, variables, formulas, result)) { }
public static ReadOnlyCollection<INode> ToReadOnlyProperties( ITerminal<ITypeDeclaration> type, IBlockFormula parentBlock, IBlockFormula childBlocks, INonterminal variables, INonterminal formulas, INonterminal result) { var list = (IList<INode>)new List<INode>(); INonterminalMixin.InsertToProperties(new NodeType(NonterminalType.Block), type, ref list); list.Insert(ParentBlockIndex, parentBlock); list.Insert(ChildBlocksIndex, childBlocks); list.Insert(VariablesIndex, variables); list.Insert(FormulasIndex, formulas); list.Insert(ResultIndex, result); return new ReadOnlyCollection<INode>(list); }