コード例 #1
0
        public BoogieVerb(IContextGeneratingVerb context, BuildObject bplInput, VerificationRequest.SymDiffMode symdiff)
        {
            if (bplInput.getExtension().Equals(BPL_EXTN))
            {
                this.bplInput = bplInput;
                upstreamVerbs = new List <IVerb>();
                // TODO this will probably break, since we don't know where this bplInput came from. Maybe that's okay, since the verb had to already exist to reach this point.
            }
            else if (symdiff == VerificationRequest.SymDiffMode.NoSymDiff)
            {
                IVerb boogieAsmVerb = new BoogieAsmVerifyVerb(context, bplInput, false);
                this.bplInput = boogieAsmVerb.getOutputs().First();
                upstreamVerbs = new IVerb[] { boogieAsmVerb };
            }
            else
            {
                IVerb workerVerb;
                SymDiffEngine.BuildPipeline(context, bplInput, out this.bplInput, out workerVerb);
                upstreamVerbs = new IVerb[] { workerVerb };
            }

            this.abstractId = new AbstractId(
                this.GetType().Name,
                version,
                bplInput.ToString(),
                concrete: symdiff.ToString());
        }
コード例 #2
0
ファイル: BoogieVerb.cs プロジェクト: jango2015/Ironclad
        public BoogieVerb(IContextGeneratingVerb context, BuildObject bplInput, VerificationRequest.SymDiffMode symdiff)
        {
            if (bplInput.getExtension().Equals(BPL_EXTN))
            {
                this.bplInput = bplInput;
                upstreamVerbs = new List<IVerb>();
                // TODO this will probably break, since we don't know where this bplInput came from. Maybe that's okay, since the verb had to already exist to reach this point.
            }
            else if (symdiff == VerificationRequest.SymDiffMode.NoSymDiff)
            {
                IVerb boogieAsmVerb = new BoogieAsmVerifyVerb(context, bplInput, false);
                this.bplInput = boogieAsmVerb.getOutputs().First();
                upstreamVerbs = new IVerb[] { boogieAsmVerb };
            }
            else
            {
                IVerb workerVerb;
                SymDiffEngine.BuildPipeline(context, bplInput, out this.bplInput, out workerVerb);
                upstreamVerbs = new IVerb[] { workerVerb };
            }

            this.abstractId = new AbstractId(
                this.GetType().Name,
                version,
                bplInput.ToString(),
                concrete: symdiff.ToString());
        }
コード例 #3
0
ファイル: BeatVerb.cs プロジェクト: Paul1nh0/Singularity
        BuildObject outputFile()
        {
            string outputAppLabel = (appLabel == null ? "" : appLabel) + contextVerb.getPoundDefines().ToString();
            string extn           = beatobj.getExtension().Equals(BeatExtensions.BEATIFC_EXTN) ? BoogieAsmVerifyVerb.BASMIFC_EXTN : BoogieAsmVerifyVerb.BASMIMP_EXTN;

            return(beatobj.makeLabeledOutputObject(outputAppLabel, extn));
        }
コード例 #4
0
        public VerificationResultSummaryVerb(IObligationsProducer producer)
        {
            this.producer = producer;
            BuildObject id = producer.getObligationSet(); //-producer.getIdentifier();

            outputObject         = id.makeOutputObject(id.getExtension() + SUMMARY_EXTN);
            abstractId           = new AbstractId(this.GetType().Name, version, id.ToString());
            verification_results = null;
        }
コード例 #5
0
ファイル: BeatExtensions.cs プロジェクト: jango2015/Ironclad
 internal static BuildObject makeLabeledOutputObject(BuildObject input, string appLabel, string typeExtn)
 {
     ModPart part = whichPart(input);
     if (part == ModPart.Unknown)
     {
         // Input must be a raw boogie file.
         Util.Assert(input.getExtension().EndsWith(BoogieVerb.BPL_EXTN));
         return input.makeLabeledOutputObject(appLabel, typeExtn);
     }
     else
     {
         return input.makeLabeledOutputObject(appLabel, part.ExtnStr() + typeExtn);
     }
 }
コード例 #6
0
        internal static BuildObject makeLabeledOutputObject(BuildObject input, string appLabel, string typeExtn)
        {
            ModPart part = whichPart(input);

            if (part == ModPart.Unknown)
            {
                //- input must be a raw boogie file.
                Util.Assert(input.getExtension().EndsWith(BoogieVerb.BPL_EXTN));
                return(input.makeLabeledOutputObject(appLabel, typeExtn));
            }
            else
            {
                return(input.makeLabeledOutputObject(appLabel, part.ExtnStr() + typeExtn));
            }
        }
コード例 #7
0
 public static bool isBeat(BuildObject obj)
 {
     return(obj.getExtension().Equals(BeatExtensions.BEATIFC_EXTN) ||
            obj.getExtension().Equals(BeatExtensions.BEATIMP_EXTN));
 }
コード例 #8
0
 public static bool isBasm(BuildObject obj)
 {
     return(obj.getExtension().Equals(BASMIFC_EXTN) ||
            obj.getExtension().Equals(BASMIMP_EXTN));
 }
コード例 #9
0
 public static ModPart whichPart(BuildObject obj)
 {
     return(whichPart(obj.getExtension()));
 }
コード例 #10
0
ファイル: BeatVerb.cs プロジェクト: jango2015/Ironclad
 public static bool isBeat(BuildObject obj)
 {
     return obj.getExtension().Equals(BeatExtensions.BEATIFC_EXTN)
         || obj.getExtension().Equals(BeatExtensions.BEATIMP_EXTN);
 }
コード例 #11
0
 public static bool isBasm(BuildObject obj)
 {
     return obj.getExtension().Equals(BASMIFC_EXTN)
         || obj.getExtension().Equals(BASMIMP_EXTN);
 }
コード例 #12
0
ファイル: BeatExtensions.cs プロジェクト: jango2015/Ironclad
 public static ModPart whichPart(BuildObject obj)
 {
     return whichPart(obj.getExtension());
 }