public MethodCallBlock(Method calledMethod, SubroutineBase <Label> subroutine, ref int idGen, int parametersCount, bool isVirtual) : base(subroutine, ref idGen) { CalledMethod = calledMethod; ParameterCount = parametersCount; IsVirtual = isVirtual; }
public static BlockWithLabels <Label> BuildBlocks(Label entry, SubroutineBuilder <Label> subroutineBuilder) { var blockBuilder = new BlockBuilder <Label> (subroutineBuilder); blockBuilder.TraceAggregateSequentally(entry); if (blockBuilder.current_block == null) { return(null); } SubroutineBase <Label> subroutine = blockBuilder.CurrentSubroutine; subroutine.AddSuccessor(blockBuilder.current_block, EdgeTag.FallThroughReturn, subroutine.Exit); subroutine.AddReturnBlock(blockBuilder.current_block); return(blockBuilder.current_block); }
public BlockWithLabels <Label> BuildBlocks(Label entry, SubroutineBase <Label> subroutine) { this.current_subroutine = subroutine; return(base.BuildBlocks(entry)); }
public EnsuresBlock(SubroutineBase <Label> subroutine, ref int idGen) : base(subroutine, ref idGen) { }
public NewObjCallBlock(Method calledMethod, int parametersCount, SubroutineBase <Label> subroutine, ref int idGen) : base(calledMethod, subroutine, ref idGen, parametersCount, false) { }
public AssumeBlock(SubroutineBase <Label> subroutine, Label label, EdgeTag tag, ref int idGen) : base(subroutine, ref idGen) { this.BranchLabel = label; this.Tag = tag; }
public EntryExitBlock(SubroutineBase <Label> subroutine, ref int idGen) : base(subroutine, ref idGen) { }
public CatchFilterEntryBlock(SubroutineBase <Label> subroutine, ref int idGen) : base(subroutine, ref idGen) { }
public BlockWithLabels(SubroutineBase <Label> subroutine, ref int idGen) : base(subroutine, ref idGen) { this.labels = new List <Label> (); }