private List <InOutMapping> getInOutMappings()
        {
            List <InOutMapping> mapping = new List <InOutMapping>();
            Tacker tack = delegate(BuildObject dfysource, string filename)
            {
                mapping.Add(new InOutMapping(
                                dfysource,
                                this.basmOutputForDafnyModule(filename, BoogieAsmVerifyVerb.BASMIFC_EXTN),
                                this.basmOutputForDafnyModule(filename, BoogieAsmVerifyVerb.BASMIMP_EXTN)));
            };

            DependencyDisposition ddispDummy;

            foreach (SourcePath dfy in this.getAllDafnyModules(out ddispDummy))
            {
                // Trim off ".dfy" but not ".s" or ".i".
                string dfyname = dfy.getFileName();
                Util.Assert(dfyname.EndsWith(".dfy"));
                string basename = dfyname.Substring(0, dfyname.Length - 4);
                Util.Assert(basename.Equals(dfy.getFileNameWithoutExtension()));    // TODO delete prior lines.

                basename = Util.dafnySpecMungeName(basename);
                if ((this is DafnyCCVerb) &&
                    (basename.Equals("Seq") || basename.Equals("Seq_s")))
                {   // TODO undesirable workaround -- DafnyCC doesn't want 'seq.dfy' in its output list, but DafnySpec does...?
                    continue;
                }

                tack(dfy, "dafny_" + basename);
            }

            tack(null, "Trusted");    // DafnyCC doesn't really want this, but meh, it emits it, so we account for it.
            foreach (string basename in this.getExtraSpecialOutputs())
            {
                tack(null, basename);
            }

            return(mapping);
        }
示例#2
0
 public override void Execute(IList<string> parameters)
 {
     var tacker = new Tacker (Directory.GetCurrentDirectory ());
     tacker.Logger = (x,y) => Console.WriteLine (x, y);
     tacker.Tack ();
 }