Exemple #1
0
        public static GMacCodeBlock Process(GMacCodeBlock codeBlock)
        {
            var processor = new TcbReduceRhsExpressions(codeBlock);

            processor.BeginProcessing();

            return(codeBlock);
        }
Exemple #2
0
        internal static GMacCodeBlock Process(GMacCodeBlock codeBlock)
        {
            var processor = new TcbDependencyUpdate(codeBlock);

            processor.BeginProcessing();

            return(codeBlock);
        }
Exemple #3
0
        internal static GMacCodeBlock Process(GMacCodeBlock codeBlock, TlCodeBlockEvaluation evaluationData)
        {
            var processor = new TcbEvaluateCodeBlock(codeBlock, evaluationData);

            processor.BeginProcessing();

            return codeBlock;
        }
        internal static GMacCodeBlock Process(GMacCodeBlock codeBlock, bool orderOutputsById)
        {
            var processor = new TcbReOrderComputations(codeBlock, orderOutputsById);

            processor.BeginProcessing();

            return(codeBlock);
        }
Exemple #5
0
        internal static GMacCodeBlock Process(GMacCodeBlock codeBlock, LlDataTable dataTable)
        {
            var processor = new TcbInitialize(codeBlock, dataTable);

            processor.BeginProcessing();

            return(codeBlock);
        }
Exemple #6
0
        internal TlCodeBlockEvaluationHistory(GMacCodeBlock codeBlock, double minValue, double maxValue)
        {
            CodeBlock = codeBlock;

            _inputVarsValues =
                CodeBlock
                .InputVariables
                .ToDictionary(
                    item => item.LowLevelName,
                    item => new Expr(_randomSource.NextDouble() * (maxValue - minValue) + minValue)
                    );
        }
Exemple #7
0
        private GMacCodeBlock GenerateMacroCode(GMacMacroBinding macroBinding)
        {
            GMacCodeBlock codeBlock = null;

            ActiveFileTextComposer.AppendAtNewLine("public static ");
            GenerateTypeName(macroBinding.BaseMacro.OutputType);
            ActiveFileTextComposer.Append(" ");
            ActiveFileTextComposer.Append(macroBinding.BaseMacro.Name);
            ActiveFileTextComposer.Append("(");

            GenerateMacroInputsCode(macroBinding.BaseMacro);

            ActiveFileTextComposer.AppendLine(")");

            ActiveFileTextComposer.AppendLineAtNewLine("{");
            ActiveFileTextComposer.IncreaseIndentation();

            if (macroBinding.BaseMacro.OutputType.IsValidScalarType)
            {
                ActiveFileTextComposer.AppendAtNewLine(GMacLanguage.ScalarTypeName);
                ActiveFileTextComposer.AppendLine(" result;");
            }
            else
            {
                ActiveFileTextComposer.AppendAtNewLine("var result = ");

                GenerateTypeDefaultValue(macroBinding.BaseMacro.OutputType);

                ActiveFileTextComposer.AppendLine(";");
            }

            ActiveFileTextComposer.AppendLine();

            if (MacroGenDefaults.AllowGenerateMacroCode)
            {
                var macroGenerator = InitMacroCodeGenerator(macroBinding);

                ActiveFileTextComposer.AppendLineAtNewLine(
                    macroGenerator.Generate()
                    );

                codeBlock = macroGenerator.CodeBlock;
            }

            ActiveFileTextComposer.AppendLineAtNewLine("return result;");

            ActiveFileTextComposer.DecreaseIndentation();
            ActiveFileTextComposer.AppendLineAtNewLine("}");
            ActiveFileTextComposer.AppendLine();

            return(codeBlock);
        }
Exemple #8
0
        internal TlCodeBlockEvaluationHistory(GMacCodeBlock codeBlock, Dictionary <string, GMacMacroParameterBinding> inputsWithTestValues)
        {
            CodeBlock = codeBlock;

            _inputVarsValues = new Dictionary <string, Expr>();

            foreach (var pair in inputsWithTestValues)
            {
                GMacCbInputVariable inputParamVar;

                if (!CodeBlock.TryGetInputParameterVariable(pair.Value.ValueAccess, out inputParamVar))
                {
                    continue;
                }

                _inputVarsValues.Add(inputParamVar.LowLevelName, pair.Value.TestValueExpr);
            }
        }
Exemple #9
0
 public TlCodeBlockEvaluation(GMacCodeBlock codeBlock, string evalTitle)
 {
     EvaluationTitle = evalTitle;
     CodeBlock       = codeBlock;
 }
Exemple #10
0
 private TcbReUseTempVariables(GMacCodeBlock codeBlock)
     : base(codeBlock)
 {
 }
 internal GMacTargetVariablesNaming(GMacLanguageServer targetLanguage, GMacCodeBlock codeBlock)
 {
     GMacLanguage = targetLanguage;
     CodeBlock    = codeBlock;
 }
Exemple #12
0
        public static DotGraph ToGraphViz(this GMacCodeBlock codeBlock)
        {
            var visitor = new GMacCodeBlockToGraphViz(codeBlock);

            return(visitor.ToGraphViz());
        }
Exemple #13
0
 private TcbFactorSubExpressions(GMacCodeBlock codeBlock)
     : base(codeBlock)
 {
 }
Exemple #14
0
        public MacroBindingToGraphViz(GMacMacroBinding macroBinding, GMacCodeBlock codeBlock)
        {
            MacroBinding = macroBinding;

            OptimizedCodeBlock = codeBlock;
        }
Exemple #15
0
 private TcbReduceRhsExpressions(GMacCodeBlock codeBlock)
     : base(codeBlock)
 {
 }
 public GMacCodeBlockToGraphViz(GMacCodeBlock codeBlock)
 {
     CodeBlock = codeBlock;
 }
Exemple #17
0
 private TcbEvaluateCodeBlock(GMacCodeBlock codeBlock, TlCodeBlockEvaluation evaluationData)
     : base(codeBlock)
 {
     _evaluationData = evaluationData;
 }
Exemple #18
0
 protected TcbProcessor(GMacCodeBlock codeBlock)
 {
     CodeBlock = codeBlock;
 }
Exemple #19
0
 private TcbInitialize(GMacCodeBlock codeBlock, LlDataTable generatedDataTable)
     : base(codeBlock)
 {
     _dataTable = generatedDataTable;
 }
Exemple #20
0
 private TcbReOrderComputations(GMacCodeBlock codeBlock, bool orderOutputsById)
     : base(codeBlock)
 {
     OrderOutputsById = orderOutputsById;
 }
 private TcbRemoveDuplicateTemps(GMacCodeBlock codeBlock)
     : base(codeBlock)
 {
 }
Exemple #22
0
        //private readonly Dictionary<string, TlVariable> _variablesDictionary =
        //    new Dictionary<string, TlVariable>();


        private TcbDependencyUpdate(GMacCodeBlock codeBlock)
            : base(codeBlock)
        {
        }