Exemple #1
0
        protected async void SaveAsButton_Click(object sender, RoutedEventArgs e)
        {
            FileSavePicker savePicker = new FileSavePicker();

            savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;

            // Dropdown of file types the user can save the file as
            if (CurrentFile.Language != null)
            {
                CurrentFile.Language.AddLanguageSupport(savePicker);
            }
            else
            {
                LanguageSupport.AddLanguageSupport(savePicker);
            }

            // Default file name if the user does not type one in or select a file to replace
            savePicker.SuggestedFileName = "New Document";

            StorageFile file = await savePicker.PickSaveFileAsync();

            if (file != null)
            {
                CurrentFile = await FileStorage.RegisterFile(storageFile : file);
                await SaveFile();
            }
        }
Exemple #2
0
        private void StartVericut()
        {
            try
            {
                if (!File.Exists(Variables.vericut_fpath))
                {
                    MessageDisplay.ShowError(
                        LanguageSupport.Translate("Vericut path {0} is invalid. The file doesn't exist."), Variables.vericut_fpath);
                    return;
                }
                if (!File.Exists(Variables.vcproj_fpath))
                {
                    MessageDisplay.ShowError(
                        LanguageSupport.Translate("Vericut project {0} doesn't exist. Can't open it in VERICUT."), Variables.vcproj_fpath);
                    return;
                }

                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName    = Variables.vericut_fpath;
                    proc.StartInfo.Arguments   = String.Format("\"{0}\"", Variables.vcproj_fpath);
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    proc.Start();
                    proc.WaitForExit(0);
                    if (proc != null)
                    {
                        proc.Dispose();
                    }
                }
            }
            catch (Exception Ex)
            {
                LogFile.WriteException(Ex, "StartVericut");
            }
        }
Exemple #3
0
    // Use this for initialization
    void Start()
    {
        LanguageSupport ls = new LanguageSupport();

        ls.LoadLanguage(LanguageSupport.Language.RU);
        Debug.logger.Log(ls.GetString("d_exit"));
    }
    //private GameOverCanvas gameOverCanvas;

    void Start()
    {
        optionsMainCanvas.gameObject.SetActive(false);

        helpCanvas.gameObject.SetActive(false);

        helpVideo.gameObject.SetActive(false);

        bgObject.gameObject.SetActive(false);

        langSupport = FindObjectOfType <LanguageSupport>();

        helpCanvas.gameObject.SetActive(false);

        gameCanvas = FindObjectOfType <UIHandler>();

        startGameCanvas = FindObjectOfType <StartGameCanvas>();

        //gameOverCanvas = FindObjectOfType<GameOverCanvas>();

        gameEngine = FindObjectOfType <GameEngine>();

        audioSource = Camera.main.GetComponent <AudioSource>();

        storageEngine = FindObjectOfType <StorageEngine>();
    }
Exemple #5
0
        static void Main(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder <AdventureWorksContext>();

            optionsBuilder.UseSqlServer(Settings.Adventure);
            AdventureWorksContext context = new AdventureWorksContext(optionsBuilder.Options);

            new IntroAnimation().Play();

            History history = new History(context);

            history.Presenter();

            LanguageSupport language = new LanguageSupport(context);

            language.Presenter();

            QueryOperators queryOperators = new QueryOperators();

            queryOperators.Presenter();

            DeferredExecution deferred = new DeferredExecution(context);

            deferred.Presenter();

            Performance perf = new Performance(context);

            perf.PerformancePresenter();

            Console.ReadLine();
        }
Exemple #6
0
    public void ConfirmCatPurchase(Cat cat)
    {
        /*
         *  Buy <catType> for <X> gold?
         *  Yes     No
         */

        if (cat.getCatAsset().price > GameControl.control.playerData.gold)
        {
            GameControl.control.NotEnoughGoldPrompt(GameControl.control.transform);
            return;
        }
        GameControl.control.YesNoPrompt(LanguageSupport.BuyPrompt(cat.Name,
                                                                  CatIAP.goldStr + cat.getCatAsset().price.ToString()), GameControl.control.transform,
                                        () =>
        {
            GameControl.control.checkDeckAvailability(GameControl.control.transform,
                                                      (bool deckAvailable) =>
            {
                if (deckAvailable)
                {
                    buyCat(cat);
                }
            });
        }).RewardBackground();
    }
Exemple #7
0
    public void NotEnoughGoldPrompt(Transform t, UnityAction onComplete = null)
    {
        getSoundManager().playError();
        Notification n = GameObject.Instantiate(notificationPrefab, t, false).GetComponent <Notification>();

        if (n == null)
        {
            return;
        }
        n.YesNoPrompt(LanguageSupport.NotEnoughGold(), () =>
        {
            Transform shop = Instantiate(Resources.Load <GameObject>("miscPrefabs/CoinShop"), t, false).transform;
            Button exit    = null;
            if (onComplete != null)
            {
                exit = shop.GetChild(0).Find("exit").GetComponent <Button>();
                exit.onClick.AddListener(onComplete);
            }
            if (exit != null && t != transform)
            {
                GetComponent <Canvas>().enabled = true;
                transform.GetChild(0).gameObject.SetActive(false);
                exit.onClick.AddListener(() => transform.GetChild(0).gameObject.SetActive(true));
            }
        }, onComplete, "Buy Gold");
        n.RewardBackground();
    }
Exemple #8
0
        private static void CheckTLBCompatibility()
        {
            Version vnum = new Version(1, 0, 0, 0);

            try
            {
                try
                {
                    vnum = new Version(FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion);
                }
                catch { }

                // the featurecam tlb version is a property on the app now adays...
                // if the app doesn't have that propety, the next line will throw a com exception
                if (fc.MajorTLBVersionNum != vnum.Build)
                {
                    MessageDisplay.ShowWarning(
                        LanguageSupport.Translate("Warning: This dll add-in was compiled against v{0} of FeatureCAM tlb."), vnum.Build.ToString());
                }
            }
            catch
            {
                // must be tlb version 1?
                MessageDisplay.ShowWarning(
                    LanguageSupport.Translate("Warning: This dll add-in was compiled against v{0} of FeatureCAM tlb, and should not be run with older versions of FeatureCAM."), vnum.Build.ToString());
            }
        }
Exemple #9
0
        private async Task NewFile(NewFileItem item)
        {
            try
            {
                FileSavePicker savePicker = new FileSavePicker();
                savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;

                // Dropdown of file types the user can save the file as
                if (item != null)
                {
                    item.Language.AddLanguageSupport(savePicker);
                }
                else
                {
                    LanguageSupport.AddLanguageSupport(savePicker);
                }

                // Default file name if the user does not type one in or select a file to replace
                savePicker.SuggestedFileName = "New Document";

                StorageFile storageFile = await savePicker.PickSaveFileAsync();

                if (storageFile != null)
                {
                    await FileIO.WriteTextAsync(storageFile, string.Empty);

                    RecentFile file = await FileStorage.RegisterFile(storageFile : storageFile, overrideEntry : true);
                    await OpenFile(Frame, file);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
            }
        }
        private void btn_OK_Click(object sender, EventArgs e)
        {
            if (cb_solids.CheckedItems.Count == 0)
            {
                return;
            }

            if (cb_export_as.SelectedItem == null)
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("You have to select whether to export selected solids as clamps or design."));
                return;
            }
            if (cb_attach_to.SelectedItem == null)
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("You have to select attach component."));
                return;
            }

            selected_solids = new List <string>();
            for (int i = 0; i < cb_solids.CheckedItems.Count; i++)
            {
                selected_solids.Add(cb_solids.CheckedItems[i].ToString());
            }
            attach_to       = cb_attach_to.SelectedItem.ToString();
            export_as_clamp = (cb_export_as.SelectedIndex == 0);

            fm_doc = null;
            this.Close();
        }
Exemple #11
0
        private static void InsertIntoBnrachAndComparison(
            CoverageInfo info, XElement root, LanguageSupport support, string relativePath)
        {
            var analyzer                  = support.AstAnalyzer;
            var branchNodes               = analyzer.FindBranches(root);
            var startBranchIndex          = info.Targets.Count;
            var startBranchConditionIndex = info.TargetGroups.Count;

            foreach (var branchNode in branchNodes.ToList())
            {
                // 全ての論理項を列挙
                var condNodeList = analyzer.FindConditions(branchNode).ToList();
                // 論理項に測定用コードを埋め込み,カバレッジ情報を生成
                var condElements = InsertIntoConditionCoverage(info, condNodeList, support,
                                                               relativePath);

                // 条件分岐のカバレッジ情報を生成
                var element = new CoverageElement(relativePath, branchNode, support.Tagger);
                // 条件分岐と論理項のカバレッジ情報をまとめる
                var elementGroup = new CoverageElementGroup(element, condElements);
                info.TargetGroups.Add(elementGroup);

                // 論理項を含む条件式か否かを判断
                support.AstTransformer.InsertPredicate(
                    branchNode, info.Targets.Count,
                    elementGroup.Targets.Count > 0
                                ? ElementType.Decision
                                : ElementType.DecisionAndCondition);
                info.Targets.Add(element);
            }
            info.BranchConditionRanges.Add(Tuple.Create(startBranchConditionIndex,
                                                        info.TargetGroups.Count));
            info.BranchRanges.Add(Tuple.Create(startBranchIndex, info.Targets.Count));
        }
Exemple #12
0
        private static void InsertIntoSwitchCase(
            CoverageInfo info, XElement node, LanguageSupport support, string relativePath)
        {
            var analyzer         = support.AstAnalyzer;
            var startSwitchIndex = info.TargetGroups.Count;
            var switchNodes      = analyzer.FindSwitches(node);

            foreach (var switchNode in switchNodes.ToList())
            {
                var caseElements = new List <CoverageElement>();
                var caseNodes    = analyzer.FindCaseLabelTails(switchNode);
                foreach (var caseNode in caseNodes.ToList())
                {
                    // ステートメントに測定用コードを埋め込む
                    support.AstTransformer.InsertStatementAfter(
                        caseNode, info.Targets.Count, Done, ElementType.SwitchCase);
                    // カバレッジ情報を生成
                    var covElem = new CoverageElement(relativePath, caseNode, support.Tagger);
                    info.Targets.Add(covElem);
                    caseElements.Add(covElem);
                }
                // switchのカバレッジ情報を生成
                var element = new CoverageElement(relativePath, switchNode, support.Tagger);
                // 条件分岐と論理項のカバレッジ情報をまとめる
                var elementGroup = new CoverageElementGroup(element, caseElements);
                info.TargetGroups.Add(elementGroup);
            }
            info.SwitchRanges.Add(Tuple.Create(startSwitchIndex, info.TargetGroups.Count));
        }
Exemple #13
0
        protected async override Task LoadState(LoadStateEventArgs e)
        {
            // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]

            var newFiles = new ObservableCollection <IDataItem>();

            newFiles.Add(new OpenFileItem());
            foreach (var item in LanguageSupport.GetItemsNewFile())
            {
                newFiles.Add(item);
            }
            this.DefaultViewModel["NewFiles"] = newFiles;


            var recentFiles = new ObservableCollection <IDataItem>();

            // recentFiles.Add(new RecentFile(fullPath: "C:/test/abc.txt", printErrors: true));
            foreach (RecentFile file in FileStorage.RecentFiles)
            {
                file.PrintErrors = true;
                await file.Check();

                recentFiles.Add(file);
            }
            this.DefaultViewModel["RecentFiles"] = recentFiles;
        }
Exemple #14
0
        public static string GetCoveragedCode(
            FileInfo codeFile, CoverageInfo info, LanguageSupport support)
        {
            string relativePath;

            return(GetCoveragedCode(codeFile, info, support, out relativePath));
        }
        /// <summary>
        ///   Instruments production code for measuring code coverage and returns the modifieid code.
        /// </summary>
        /// <param name="support">A support to measure coverage.</param>
        /// <param name="fileInfo">A <c>FileInfo</c> instance to be instrumented.</param>
        /// <returns>The modified production code.</returns>
        public string InstrumentStatementAndPredicate(
            LanguageSupport support, FileInfo fileInfo)
        {
            var root     = support.CodeToXml.GenerateFromFile(fileInfo.FullName);
            var inserter = support.AstTransformer;

            var fileId = RegisterFile(fileInfo);

            // ステートメントを挿入できるようにブロックを補う
            inserter.SupplementBlock(root);

            // switch文を正しく測定できるようにdefault節を追加する
            inserter.SupplementDefaultCase(root);

            var analyzer = support.AstAnalyzer;
            var funcs    = analyzer.FindFunctions(root);

            foreach (var func in funcs)
            {
                var funcName = analyzer.GetFunctionName(func);
                var funcId   = RegisterFunction(fileId, funcName, CodeRange.Locate(func));

                InstrumentStatement(support, fileId, funcId, inserter, func);
                InstrumentBranch(support, fileId, funcId, inserter, func);
            }

            // Add import for logging executed items
            inserter.InsertImport(root);

            return(support.XmlToCode.Generate(root));
        }
Exemple #16
0
        public static string WriteCoveragedCode(
            LanguageSupport support, CoverageInfo info, FileInfo codeFile, DirectoryInfo outDir)
        {
            string relativePath;
            var    code = GetCoveragedCode(codeFile, info, support, out relativePath);

            return(WriteCode(relativePath, outDir, code));
        }
Exemple #17
0
        public static string AnalyzeAndWriteIdentifiedTest(
            LanguageSupport support, TestInfo info, FileInfo fullPath, DirectoryInfo outDirPath)
        {
            string relativePath;
            var    code = GetIdentifiedTest(fullPath, info, support, out relativePath);

            return(WriteCode(relativePath, outDirPath, code));
        }
Exemple #18
0
        public void WriteInstrumentedTestCode(LanguageSupport mode, FileInfo inFileInfo)
        {
            var relativePath = ParaibaPath.GetRelativePath(inFileInfo.FullName, BaseDirInfo.FullName);
            var outFileInfo  = OutDirInfo.GetFile(relativePath);
            var code         = InstrumentTestCase(mode, inFileInfo, BaseDirInfo);

            outFileInfo.Directory.Create();
            File.WriteAllText(outFileInfo.FullName, code);
        }
Exemple #19
0
        public async Task Check()
        {
            if (StorageFile == null)
            {
                if (string.IsNullOrWhiteSpace(Token))
                {
                    Log.Error("File has no token!");
                }
                else
                {
                    try
                    {
                        StorageFile = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(token : Token);

                        // StorageFile = await Windows.Storage.StorageFile.GetFileFromPathAsync(FullPath);
                    }
                    catch (Exception e)
                    {
                        if (PrintErrors)
                        {
                            Log.Error("Check:StorageFile: ", e);
                        }
                        else
                        {
                            Log.Debug("Check:StorageFile: ", e);
                        }
                    }
                }
            }

            if (string.IsNullOrWhiteSpace(FullPath))
            {
                if (StorageFile != null)
                {
                    FullPath = StorageFile.Path;
                }
                else
                {
                    Log.Error("Bug! Both StorageFile and FullPath are null!");
                }
            }

            IsFullPathSupported = FullPath != null;
            IsValid             = StorageFile != null && Token != null;

            Language = LanguageSupport.FindByExtension(fullPath: FullPath);
            if (Language != null)
            {
                BackgroundColor = Language.Color;
            }
            else
            {
                BackgroundColor = "#ffffffff";
            }
            //Log._Test(BackgroundColor);
        }
Exemple #20
0
        public UCSsDlg_TurnMill(int selected_setup_index)
        {
            setup_index = selected_setup_index;
            InitializeComponent();

            this.Text       = LanguageSupport.Translate(this.Text);
            label2.Text     = LanguageSupport.Translate(label2.Text);
            label7.Text     = LanguageSupport.Translate(label7.Text);
            label4.Text     = LanguageSupport.Translate(label4.Text);
            label5.Text     = LanguageSupport.Translate(label5.Text);
            label1.Text     = LanguageSupport.Translate(label1.Text);
            label3.Text     = LanguageSupport.Translate(label3.Text);
            btn_OK.Text     = LanguageSupport.Translate(btn_OK.Text);
            btn_Cancel.Text = LanguageSupport.Translate(btn_Cancel.Text);

            cb_attach_ucss_to_subspindle.Enabled = !Variables.are_all_setups_milling;
            label3.Enabled = !Variables.are_all_setups_milling;
            /* Attach axis */
            cb_attach_ucss_to.Items.Clear();
            cb_attach_ucss_to_subspindle.Items.Clear();
            if (Variables.setups_info[setup_index].attach_components != null)
            {
                foreach (string attach_comp in Variables.setups_info[setup_index].attach_components)
                {
                    cb_attach_ucss_to.Items.Add(attach_comp);
                    cb_attach_ucss_to_subspindle.Items.Add(attach_comp);
                }
            }
            if (Variables.setups_info[setup_index].attach_ucss_to != "" && cb_attach_ucss_to.Items.Contains(Variables.setups_info[setup_index].attach_ucss_to))
            {
                cb_attach_ucss_to.SelectedItem = Variables.setups_info[setup_index].attach_ucss_to;
            }
            if (Variables.setups_info[setup_index].attach_ucss_to_subspindle != "" && cb_attach_ucss_to_subspindle.Items.Contains(Variables.setups_info[setup_index].attach_ucss_to_subspindle))
            {
                cb_attach_ucss_to_subspindle.SelectedItem = Variables.setups_info[setup_index].attach_ucss_to_subspindle;
            }

            cb_ucs_location.Items.Clear();
            cb_ucs_location_subspindle.Items.Clear();
            if (Variables.all_ucss != null)
            {
                foreach (UCS ucs in Variables.all_ucss)
                {
                    cb_ucs_location.Items.Add(ucs.name);
                    cb_ucs_location_subspindle.Items.Add(ucs.name);
                }
            }
            if (Variables.setups_info[setup_index].attach_ucs != "" && cb_ucs_location.Items.Contains(Variables.setups_info[setup_index].attach_ucs))
            {
                cb_ucs_location.SelectedItem = Variables.setups_info[setup_index].attach_ucs;
            }
            if (Variables.setups_info[setup_index].attach_ucs_subspindle != "" && cb_ucs_location.Items.Contains(Variables.setups_info[setup_index].attach_ucs_subspindle))
            {
                cb_ucs_location_subspindle.SelectedItem = Variables.setups_info[setup_index].attach_ucs_subspindle;
            }
        }
        public static void VerifyCodeInsertion(LanguageSupport mode, string fileName)
        {
            var code    = InsertInstrumentationCode(mode, fileName);
            var expPath = Path.Combine(Fixture.GetCoverageExpectationPath(), fileName);

            using (var reader = new StreamReader(expPath)) {
                var expected = reader.ReadToEnd();
                Assert.That(code, Is.EqualTo(expected));
            }
        }
        public static string InsertInstrumentationCode(LanguageSupport mode, string fileName)
        {
            var info = new CoverageInfo(
                Fixture.GetCoverageInputPath(), mode.Name, SharingMethod.SharedMemory);
            var inPath = Path.Combine(Fixture.GetCoverageInputPath(), fileName);
            var code   = OccfCodeGenerator.GetCoveragedCode(new FileInfo(inPath), info, mode);

            File.WriteAllText(Fixture.GetOutputPath(fileName), code);
            return(code);
        }
Exemple #23
0
 private void b_select_output_dir_Click(object sender, EventArgs e)
 {
     outputDirBrowserDialog1.Description  = LanguageSupport.Translate("Select output directory");
     outputDirBrowserDialog1.SelectedPath = Variables.doc_options.output_dirpath;
     if (outputDirBrowserDialog1.ShowDialog() == DialogResult.OK)
     {
         tb_output_dir.Text = outputDirBrowserDialog1.SelectedPath;
         Variables.doc_options.output_dirpath = tb_output_dir.Text;
     }
 }
Exemple #24
0
    void Start()
    {
        langSupport = FindObjectOfType <LanguageSupport>();

        textSpawner = FindObjectOfType <TextSpawner>();
        DontDestroyOnLoad(textSpawner);

        continueText.text = langSupport.GetText("continue");

        continueCanvas.gameObject.SetActive(false);
    }
        public static void TransofrmStatement(
                CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
            // ステートメントを挿入できるようにブロックを補う
            support.AstTransformer.SupplementBlock(root);

            InsertIntoStatement(info, root, support, relativePath);
            InsertIntoVariableInitializer(info, root, support, relativePath);

            // Add import for loggin executed items
            support.AstTransformer.InsertImport(root);
        }
Exemple #26
0
        public static void TransofrmStatement(
            CoverageInfo info, XElement root, LanguageSupport support, string relativePath)
        {
            // ステートメントを挿入できるようにブロックを補う
            support.AstTransformer.SupplementBlock(root);

            InsertIntoStatement(info, root, support, relativePath);
            InsertIntoVariableInitializer(info, root, support, relativePath);

            // Add import for loggin executed items
            support.AstTransformer.InsertImport(root);
        }
        private void InstrumentStatement(
            LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func)
        {
            var stmts = support.AstAnalyzer.FindStatements(func);

            foreach (var stmt in stmts)
            {
                var position = CodeRange.Locate(stmt);
                var stmtId   = RegisterStatement(fileId, funcId, position);
                inserter.InsertStatementBefore(stmt, stmtId, CodeTransformer.Done, ElementType.Statement);
            }
        }
        private void InstrumentBranch(
            LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func)
        {
            var branches = support.AstAnalyzer.FindBranches(func);

            foreach (var branch in branches)
            {
                var position = CodeRange.Locate(branch);
                var branchId = RegisterBranch(fileId, funcId, position);
                inserter.InsertPredicate(branch, branchId, ElementType.Decision);
            }
        }
Exemple #29
0
        public static string GetIdentifiedTest(
            FileInfo testFile, TestInfo info, LanguageSupport support, out string relativePath)
        {
            relativePath = ParaibaPath.GetRelativePath(testFile.FullName, info.BasePath);
            var ast = support.CodeToXml.GenerateFromFile(testFile.FullName);

            // テストケース識別用コードの埋め込み
            CodeTransformer.InsertIntoTestCase(info, ast, support, relativePath);

            // コード生成
            return(support.XmlToCode.Generate(ast));
        }
        public static void TransformPredicate(
                CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
            // switch文を正しく測定できるようにdefault節を追加する
            support.AstTransformer.SupplementDefaultCase(root);

            InsertIntoBranchAndCondition(info, root, support, relativePath);
            InsertIntoSwitchCase(info, root, support, relativePath);
            InsertIntoForeach(info, root, support, relativePath);

            // Add import for loggin executed items
            support.AstTransformer.InsertImport(root);
        }
Exemple #31
0
 private void b_select_setup_template_Click(object sender, EventArgs e)
 {
     openSetupTemplateFileDialog1.Filter          = LanguageSupport.Translate("VCPROJECT file (*.vcproject)|*.vcproject");
     openSetupTemplateFileDialog1.FileName        = "";
     openSetupTemplateFileDialog1.CheckFileExists = true;
     openSetupTemplateFileDialog1.Title           = LanguageSupport.Translate("Select template VERICUT project for the setup");
     if (openSetupTemplateFileDialog1.ShowDialog() == DialogResult.OK)
     {
         tb_setup_template_fpath.Text = openSetupTemplateFileDialog1.FileName;
         Variables.setups_info[cb_setups.SelectedIndex].options.template_fpath = tb_setup_template_fpath.Text;
     }
 }
Exemple #32
0
        public static void TransformPredicate(
            CoverageInfo info, XElement root, LanguageSupport support, string relativePath)
        {
            // switch文を正しく測定できるようにdefault節を追加する
            support.AstTransformer.SupplementDefaultCase(root);

            InsertIntoBranchAndCondition(info, root, support, relativePath);
            InsertIntoSwitchCase(info, root, support, relativePath);
            InsertIntoForeach(info, root, support, relativePath);

            // Add import for loggin executed items
            support.AstTransformer.InsertImport(root);
        }
		/// <summary>
		///   Instruments test code for measuring code coverage and returns the modifieid code.
		/// </summary>
		/// <param name="support">A support to measure coverage.</param>
		/// <param name="fileInfo">A <c>FileInfo</c> instance to be instrumented.</param>
		/// <param name="baseDirInfo">A <c>DirectoryInfo</c> instance of base directory.</param>
		/// <returns>The modified test code.</returns>
		public string InstrumentTestCase(
				LanguageSupport support, FileInfo fileInfo, DirectoryInfo baseDirInfo) {
			var relativePath = ParaibaPath.GetRelativePath(fileInfo.FullName, baseDirInfo.FullName);

			var root = support.CodeToXml.GenerateFromFile(fileInfo.FullName);
			var inserter = support.AstTransformer;

			var fileId = RegisterFile(fileInfo);

			var targets = support.AstAnalyzer.FindTestCases(root);
			foreach (var target in targets) {
				var testCaseId = RegisterTestCase(fileId);
				inserter.InsertTestCaseId(target, testCaseId, relativePath);
			}

			// Add import for logging executed items
			inserter.InsertImport(root);

			return support.XmlToCode.Generate(root);
		}
        public static void InstrumentStatementAndPredicate(
                CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
            // ステートメントを挿入できるようにブロックを補う
            support.AstTransformer.SupplementBlock(root);

            // switch文を正しく測定できるようにdefault節を追加する
            support.AstTransformer.SupplementDefaultCase(root);

            InsertIntoStatement(info, root, support, relativePath);
            //InsertIntoBranchAndCondition(info, root, support, relativePath);

            // Add the measurement code as a statement into switch and foreach
            // after inserting the measurement code into statements
            //InsertIntoSwitchCase(info, root, support, relativePath);
            //InsertIntoForeach(info, root, support, relativePath);

            // Add the measurement code as a prediction into variable initializers
            // after inserting the measurement code into predictions
            //InsertIntoVariableInitializer(info, root, support, relativePath);

            // Add import for logging executed items
            support.AstTransformer.InsertImport(root);
        }
		/// <summary>
		///   Instruments production code for measuring code coverage and returns the modifieid code.
		/// </summary>
		/// <param name="support">A support to measure coverage.</param>
		/// <param name="fileInfo">A <c>FileInfo</c> instance to be instrumented.</param>
		/// <returns>The modified production code.</returns>
		public string InstrumentStatementAndPredicate(
				LanguageSupport support, FileInfo fileInfo) {
			var root = support.CodeToXml.GenerateFromFile(fileInfo.FullName);
			var inserter = support.AstTransformer;

			var fileId = RegisterFile(fileInfo);

			// ステートメントを挿入できるようにブロックを補う
			inserter.SupplementBlock(root);

			// switch文を正しく測定できるようにdefault節を追加する
			inserter.SupplementDefaultCase(root);

			var analyzer = support.AstAnalyzer;
			var funcs = analyzer.FindFunctions(root);
			foreach (var func in funcs) {
				var funcName = analyzer.GetFunctionName(func);
				var funcId = RegisterFunction(fileId, funcName, CodeRange.Locate(func));

				InstrumentStatement(support, fileId, funcId, inserter, func);
				InstrumentBranch(support, fileId, funcId, inserter, func);
			}

			// Add import for logging executed items
			inserter.InsertImport(root);

			return support.XmlToCode.Generate(root);
		}
		private void InstrumentStatement(
				LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func) {
			var stmts = support.AstAnalyzer.FindStatements(func);
			foreach (var stmt in stmts) {
				var position = CodeRange.Locate(stmt);
				var stmtId = RegisterStatement(fileId, funcId, position);
				inserter.InsertStatementBefore(stmt, stmtId, CodeTransformer.Done, ElementType.Statement);
			}
		}
		private void InstrumentBranch(
				LanguageSupport support, long fileId, long funcId, AstTransformer inserter, XElement func) {
			var branches = support.AstAnalyzer.FindBranches(func);
			foreach (var branch in branches) {
				var position = CodeRange.Locate(branch);
				var branchId = RegisterBranch(fileId, funcId, position);
				inserter.InsertPredicate(branch, branchId, ElementType.Decision);
			}
		}
        private static List<CoverageElement> InsertIntoConditionCoverage(
                CoverageInfo info, ICollection<XElement> condNodeList, LanguageSupport support,
                string relativePath) {
            return condNodeList.SelectToList(
                    node => {
                        support.AstTransformer.InsertPredicate(node, info.Targets.Count,
                                ElementType.Condition);

                        var covElem = new CoverageElement(relativePath, node, support.Tagger);
                        info.Targets.Add(covElem);
                        return covElem;
                    });
        }
 private static void InsertIntoVariableInitializer(
         CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
     var statemetIndex = info.Targets.Count;
     var nodes = support.AstAnalyzer.FindVariableInitializers(root);
     foreach (var node in nodes.ToList()) {
         // ステートメントに測定用コードを埋め込む
         support.AstTransformer.InsertInitializer(node, info.Targets.Count,
                 ElementType.Statement);
         // カバレッジ情報を生成
         var covElem = new CoverageElement(relativePath, node, support.Tagger);
         info.Targets.Add(covElem);
     }
     info.StatementRanges.Add(Tuple.Create(statemetIndex, info.Targets.Count));
 }
        private static void InsertIntoBnrachAndComparison(
                CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
            var analyzer = support.AstAnalyzer;
            var branchNodes = analyzer.FindBranches(root);
            var startBranchIndex = info.Targets.Count;
            var startBranchConditionIndex = info.TargetGroups.Count;
            foreach (var branchNode in branchNodes.ToList()) {
                // 全ての論理項を列挙
                var condNodeList = analyzer.FindConditions(branchNode).ToList();
                // 論理項に測定用コードを埋め込み,カバレッジ情報を生成
                var condElements = InsertIntoConditionCoverage(info, condNodeList, support,
                        relativePath);

                // 条件分岐のカバレッジ情報を生成
                var element = new CoverageElement(relativePath, branchNode, support.Tagger);
                // 条件分岐と論理項のカバレッジ情報をまとめる
                var elementGroup = new CoverageElementGroup(element, condElements);
                info.TargetGroups.Add(elementGroup);

                // 論理項を含む条件式か否かを判断
                support.AstTransformer.InsertPredicate(
                        branchNode, info.Targets.Count,
                        elementGroup.Targets.Count > 0
                                ? ElementType.Decision
                                : ElementType.DecisionAndCondition);
                info.Targets.Add(element);
            }
            info.BranchConditionRanges.Add(Tuple.Create(startBranchConditionIndex,
                    info.TargetGroups.Count));
            info.BranchRanges.Add(Tuple.Create(startBranchIndex, info.Targets.Count));
        }
 public static void InsertIntoTestCase(
         TestInfo info, XElement root, LanguageSupport support, string relativePath) {
     var nodes = support.AstAnalyzer.FindTestCases(root);
     var trans = support.AstTransformer;
     foreach (var node in nodes.ToList()) {
         var id = info.TestCases.Count;
         var testCase = trans.InsertTestCaseId(node, id, relativePath);
         info.TestCases.Add(testCase);
     }
     // Add import for loggin executed items
     support.AstTransformer.InsertImport(root);
 }
        private static List<CoverageElement> InsertIntoConditionAndComparison(
                CoverageInfo info, ICollection<XElement> condNodeList, LanguageSupport support,
                string relativePath) {
            return condNodeList.SelectToList(
                    node => {
                        var elemsAndType = support.AstAnalyzer.GetComparedElements(node);
                        if (elemsAndType != null) {
                            var leftElement = elemsAndType.Item1;
                            var rightElement = elemsAndType.Item2;
                            var type = elemsAndType.Item3;
                            switch (type) {
                            case ComparatorType.Equal:
                                support.AstTransformer.InsertEqual(node, leftElement, rightElement,
                                        info.Targets.Count, ElementType.Condition);
                                break;
                            case ComparatorType.NotEqual:
                                support.AstTransformer.InsertNotEqual(node, leftElement,
                                        rightElement, info.Targets.Count, ElementType.Condition);
                                break;
                            case ComparatorType.LessThan:
                                support.AstTransformer.InsertLessThan(node, leftElement,
                                        rightElement, info.Targets.Count, ElementType.Condition);
                                break;
                            case ComparatorType.GraterThan:
                                support.AstTransformer.InsertGraterThan(node, leftElement,
                                        rightElement, info.Targets.Count, ElementType.Condition);
                                break;
                            default:
                                throw new ArgumentOutOfRangeException();
                            }
                        } else {
                            support.AstTransformer.InsertPredicate(node, info.Targets.Count,
                                    ElementType.Condition);
                        }

                        var covElem = new CoverageElement(relativePath, node, support.Tagger);
                        info.Targets.Add(covElem);
                        return covElem;
                    });
        }
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            LanguageSupport LanguageMgr = new LanguageSupport();


            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));
            this.lstAccounts = new System.Windows.Forms.ListView();
            this.LiveId = new System.Windows.Forms.ColumnHeader();
            this.Password = new System.Windows.Forms.ColumnHeader();
            this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
            this.kopyalasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.tümünüKopyalaToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.btnClose = new System.Windows.Forms.Button();
            this.label2 = new System.Windows.Forms.Label();
            this.lnkGoTb = new System.Windows.Forms.LinkLabel();
            this.contextMenuStrip1.SuspendLayout();
            this.SuspendLayout();
            // 
            // lstAccounts
            // 
            this.lstAccounts.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
            this.LiveId,
            this.Password});
            this.lstAccounts.ContextMenuStrip = this.contextMenuStrip1;
            this.lstAccounts.FullRowSelect = true;
            this.lstAccounts.Location = new System.Drawing.Point(12, 12);
            this.lstAccounts.Name = "lstAccounts";
            this.lstAccounts.Size = new System.Drawing.Size(398, 119);
            this.lstAccounts.TabIndex = 0;
            this.lstAccounts.UseCompatibleStateImageBehavior = false;
            this.lstAccounts.View = System.Windows.Forms.View.Details;
            // 
            // LiveId
            // 
            this.LiveId.Text = LanguageMgr["LiveIdColumn"]; //"Live ID";
            this.LiveId.Width = 222;
            // 
            // Password
            // 
            this.Password.Text = LanguageMgr["PasswordColumn"]; //"Password";
            this.Password.Width = 169;
            // 
            // contextMenuStrip1
            // 
            this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.kopyalasToolStripMenuItem,
            this.tümünüKopyalaToolStripMenuItem});
            this.contextMenuStrip1.Name = "contextMenuStrip1";
            this.contextMenuStrip1.Size = new System.Drawing.Size(165, 48);
            // 
            // kopyalasToolStripMenuItem
            // 
            this.kopyalasToolStripMenuItem.Name = "kopyalasToolStripMenuItem";
            this.kopyalasToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
            this.kopyalasToolStripMenuItem.Text = LanguageMgr["Copy"]; //"Kopyala";
            this.kopyalasToolStripMenuItem.Click += new System.EventHandler(this.kopyalasToolStripMenuItem_Click);
            // 
            // tümünüKopyalaToolStripMenuItem
            // 
            this.tümünüKopyalaToolStripMenuItem.Name = "tümünüKopyalaToolStripMenuItem";
            this.tümünüKopyalaToolStripMenuItem.Size = new System.Drawing.Size(164, 22);
            this.tümünüKopyalaToolStripMenuItem.Text = LanguageMgr["CopyAll"]; //"Tümünü kopyala";
            this.tümünüKopyalaToolStripMenuItem.Click += new System.EventHandler(this.tümünüKopyalaToolStripMenuItem_Click);
            // 
            // btnClose
            // 
            this.btnClose.Location = new System.Drawing.Point(334, 137);
            this.btnClose.Name = "btnClose";
            this.btnClose.Size = new System.Drawing.Size(76, 23);
            this.btnClose.TabIndex = 1;
            this.btnClose.Text = LanguageMgr["Ok"]; //"Ok";
            this.btnClose.UseVisualStyleBackColor = true;
            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(13, 142);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(46, 13);
            this.label2.TabIndex = 3;
            this.label2.Text = "2009 © ";
            // 
            // lnkGoTb
            // 
            this.lnkGoTb.AutoSize = true;
            this.lnkGoTb.Location = new System.Drawing.Point(55, 142);
            this.lnkGoTb.Name = "lnkGoTb";
            this.lnkGoTb.Size = new System.Drawing.Size(62, 13);
            this.lnkGoTb.TabIndex = 4;
            this.lnkGoTb.TabStop = true;
            this.lnkGoTb.Text = "Oguz Kartal";
            this.lnkGoTb.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkGoTb_LinkClicked);
            // 
            // frmMain
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(422, 168);
            this.Controls.Add(this.btnClose);
            this.Controls.Add(this.lnkGoTb);
            this.Controls.Add(this.lstAccounts);
            this.Controls.Add(this.label2);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.MaximizeBox = false;
            this.Name = "frmMain";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = LanguageMgr["Title"]; //"Windows Live Messenger Stored Password Recover";
            this.Load += new System.EventHandler(this.frmMain_Load);
            this.contextMenuStrip1.ResumeLayout(false);
            this.ResumeLayout(false);
            this.PerformLayout();

        }
 private static void InsertIntoSwitchCase(
         CoverageInfo info, XElement node, LanguageSupport support, string relativePath) {
     var analyzer = support.AstAnalyzer;
     var startSwitchIndex = info.TargetGroups.Count;
     var switchNodes = analyzer.FindSwitches(node);
     foreach (var switchNode in switchNodes.ToList()) {
         var caseElements = new List<CoverageElement>();
         var caseNodes = analyzer.FindCaseLabelTails(switchNode);
         foreach (var caseNode in caseNodes.ToList()) {
             // ステートメントに測定用コードを埋め込む
             support.AstTransformer.InsertStatementAfter(
                     caseNode, info.Targets.Count, Done, ElementType.SwitchCase);
             // カバレッジ情報を生成
             var covElem = new CoverageElement(relativePath, caseNode, support.Tagger);
             info.Targets.Add(covElem);
             caseElements.Add(covElem);
         }
         // switchのカバレッジ情報を生成
         var element = new CoverageElement(relativePath, switchNode, support.Tagger);
         // 条件分岐と論理項のカバレッジ情報をまとめる
         var elementGroup = new CoverageElementGroup(element, caseElements);
         info.TargetGroups.Add(elementGroup);
     }
     info.SwitchRanges.Add(Tuple.Create(startSwitchIndex, info.TargetGroups.Count));
 }
 private static void InsertIntoForeach(
         CoverageInfo info, XElement node, LanguageSupport support, string relativePath) {
     var startBranchIndex = info.Targets.Count;
     var startBranchConditionIndex = info.TargetGroups.Count;
     var analyzer = support.AstAnalyzer;
     var transformer = support.AstTransformer;
     var foreachNodes = analyzer.FindForeach(node);
     foreach (var foreachNode in foreachNodes.ToList()) {
         // ステートメントに測定用コードを埋め込む
         var head = analyzer.FindForeachHead(foreachNode).First();
         var tail = analyzer.FindForeachTail(foreachNode).First();
         // 同じid( = count)を共有
         var id = info.Targets.Count;
         // Record(TrueOnly)    _lastState = TrueOnly
         // foreach() {
         //   Record(FalseOnly) ループ判定成立 (State |= FalseOnly)
         //   statement;
         //   Record(TrueOnly)  _lastState = TrueOnly
         // }
         // Record(TrueOnly)    ループ判定不成立 (State |= TrueOnly if _lastState == TrueOnly)
         transformer.InsertStatementBefore(
                 foreachNode, id, TrueOnly, ElementType.DecisionAndCondition);
         transformer.InsertStatementAfter(
                 head, id, FalseOnly, ElementType.DecisionAndCondition);
         transformer.InsertStatementBefore(
                 tail, id, TrueOnly, ElementType.DecisionAndCondition);
         transformer.InsertStatementAfter(
                 tail, id, TrueOnly, ElementType.DecisionAndCondition);
         // カバレッジ情報を生成
         var covElem = new ForeachCoverageElement(relativePath, foreachNode, support.Tagger);
         info.Targets.Add(covElem);
         var elementGroup = new CoverageElementGroup(covElem);
         info.TargetGroups.Add(elementGroup);
     }
     info.BranchRanges.Add(Tuple.Create(startBranchIndex, info.Targets.Count));
     info.BranchConditionRanges.Add(Tuple.Create(startBranchConditionIndex,
             info.TargetGroups.Count));
 }
 private static void InsertIntoStatement(
         CoverageInfo info, XElement root, LanguageSupport support, string relativePath) {
     var statemetIndex = info.Targets.Count;
     var nodes = support.AstAnalyzer.FindStatements(root);
     foreach (var node in nodes.ToList()) {
         // ステートメントに測定用コードを埋め込む
         var posNode = support.AstAnalyzer.GetBaseElementForStatement(node);
         support.AstTransformer.InsertStatementBefore(
                 posNode, info.Targets.Count, Done, ElementType.Statement);
         // カバレッジ情報を生成
         var covElem = new CoverageElement(relativePath, node, support.Tagger);
         info.Targets.Add(covElem);
     }
     info.StatementRanges.Add(Tuple.Create(statemetIndex, info.Targets.Count));
 }
        private static void InsertIntoBranch(
                CoverageInfo info, XElement node, LanguageSupport support, string relativePath) {
            var branchNodes = support.AstAnalyzer.FindBranches(node);
            var startBranchIndex = info.Targets.Count;
            foreach (var branchNode in branchNodes.ToList()) {
                support.AstTransformer.InsertPredicate(branchNode, info.Targets.Count,
                        ElementType.Decision);

                // 条件分岐のカバレッジ情報を生成
                var element = new CoverageElement(relativePath, branchNode, support.Tagger);
                info.Targets.Add(element);
            }
            info.BranchRanges.Add(Tuple.Create(startBranchIndex, info.Targets.Count));
        }