private void AddMacroParameterBinding(string line) { var eqIndex = line.IndexOf('='); if (eqIndex < 0) { MacroBinding.BindToVariables(line); return; } var lhs = line.Substring(0, eqIndex - 1).Trim(); var rhs = line.Substring(eqIndex + 1).Trim(); MacroBinding.BindScalarToConstant(lhs, rhs); }
private void GenerateMacro() { listBoxGenerationStage.Items.Clear(); textBoxDisplay.Text = String.Empty; Graph = null; if (UpdateMacroBindingTextData() == false) { return; } GMacSystemUtils.ResetProgress(); MacroBinding = GMacMacroBinding.Create(SelectedMacro); MacroCodeGenerator = new SingleMacroGen(MacroBinding) { MacroGenDefaults = { AllowGenerateMacroCode = true } }; foreach (var bindingData in BindingTextData.Bindings) { if (bindingData.IsConstantBinding) { MacroBinding.BindScalarToConstant( bindingData.ValueAccessName, bindingData.ConstantValueText ); continue; } var testValueExpr = bindingData.HasTestValue ? bindingData.TestValueText.ToExpr(SymbolicUtils.Cas) : null; MacroBinding.BindToVariables(bindingData.ValueAccessName, testValueExpr); if (bindingData.HasTargetVariableName) { MacroCodeGenerator .TargetVariablesNamesDictionary.Add( bindingData.ValueAccessName, bindingData.TargetVariableName ); } } GenerateMacro_DslCode(); GenerateMacro_ParsedBody(); GenerateMacro_CompiledBody(); GenerateMacro_OptimizedBody(); GenerateMacro_RawBodyCallCode(); GenerateMacro_ParsedBodyCallCode(); GenerateMacro_CompiledBodyCallCode(); GenerateMacro_OptimizedBodyCallCode(); GenerateMacro_SampleTargetCode(); ProgressHistory = MacroCodeGenerator .Progress .History .ReadHistory() .ToDictionary(item => item.ProgressId); foreach (var item in ProgressHistory) { listBoxGenerationStage.Items.Add(item.Value.FullTitle); } Graph = MacroCodeGenerator.Graph; }