protected override bool InitializeTemplates() { Templates.Clear(); var codeTemplate1 = new ParametricComposer("<@", "@>"); codeTemplate1.SetTemplateText( @"public Multivector() { } public Multivector(params double[] coefs) { int i = 0; foreach (var coef in coefs.Take(<@gadim@>)) Coef[i++] = coef; } public Multivector(IEnumerable<double> coefs) { int i = 0; foreach (var coef in coefs.Take(<@gadim@>)) Coef[i++] = coef; } " ); Templates.Add("multivector", codeTemplate1); return(true); }
/// <summary> /// Generate the given template text from the supplied parameters values and add its output to /// the given text builder at the given index /// </summary> /// <param name="textBuilder"></param> /// <param name="index"></param> /// <param name="template"></param> /// <param name="paramsValues"></param> public static void Insert(this ListComposer textBuilder, int index, ParametricComposer template, IParametericComposerValueSource paramsValues) { template.SetParametersValues(paramsValues); var text = template.GenerateText(); textBuilder.Insert(index, new StructuredTextItem(text)); }
/// <summary> /// Generate the given template text from the supplied parameters values and add its output to /// the given text builder /// </summary> /// <param name="textBuilder"></param> /// <param name="template"></param> /// <param name="paramsValues"></param> public static void Add(this ListComposer textBuilder, ParametricComposer template, IParametericComposerValueSource paramsValues) { template.SetParametersValues(paramsValues); var text = template.GenerateText(); textBuilder.Add(text); }
/// <summary> /// Generate the given template text from the supplied parameters values and add its output to /// the given text builder /// </summary> /// <param name="textBuilder"></param> /// <param name="template"></param> /// <param name="paramsValues"></param> public static void Add(this ListComposer textBuilder, ParametricComposer template, IDictionary <string, string> paramsValues) { template.SetParametersValues(paramsValues); var text = template.GenerateText(); textBuilder.Add(text); }
internal GMacScriptInterpreter(AstRoot rootAst) { Root = rootAst; Shortcuts = new GMacScriptShortcuts(); Output = new GMacScriptOutput(); _substituteComposer = new ParametricComposer("|{", "}|"); _symbolsCache = new Dictionary <string, LanguageSymbol>(); _expressionCompiler = new GMacDynamicCompiler(); _tempSymbolsCompiler = new GMacTempSymbolCompiler(); }
public override void Generate() { var declareCoefsText = GenerateDeclareCoefsText(); var template = new ParametricComposer("#", "#", ClassCodeTemplateText); TextComposer.Append( template, "frame", CurrentFrameName, "double", GMacLanguage.ScalarTypeName, "zero_class_name", MvLibraryGenerator.MultivectorClassesData[0].ClassName, "declare_coefs", declareCoefsText ); FileComposer.FinalizeText(); }
private string GenerateIsEqualMethod() { var codeText = GenerateIsEqualMethodCode(); var template = new ParametricComposer("#", "#", BilinearTemplateText); var composer = new LinearComposer(); composer.Append( template, "result_type", "bool", "op_name", "IsEqual", "mv_class_name", CalcClassData.ClassName, "code", codeText ); return(composer.ToString()); }
public FormEditTemplate(string templateName, ParametricComposer template) { InitializeComponent(); _templateName = templateName; _template = template; textBoxLeftDelimiter.Text = _template.LeftDelimiter; textBoxRightDelimiter.Text = _template.RightDelimiter; textBoxTemplateCode.Text = _template.TemplateText; foreach (var parameter in _template.Parameters) { listBoxParameters.Items.Add(parameter); } _updateRequired = false; }
private string GenerateProductMethod(string macroName) { string resultClassName; var codeText = GenerateProductMethodCode(macroName, out resultClassName); var template = new ParametricComposer("#", "#", BilinearTemplateText); var composer = new LinearComposer(); composer.Append( template, "result_type", resultClassName, "op_name", BaseMacro.Name, "mv_class_name", CalcClassData.ClassName, "code", codeText ); return(composer.ToString()); }
private string GenerateDeclareCoefsText() { var s = new StringBuilder(); var template = new ParametricComposer("#", "#", "public abstract #double# #coef_name# { get; }") { ["double"] = GMacLanguage.ScalarTypeName }; for (var id = 0; id < CurrentFrame.GaSpaceDimension; id++) { //var coefName = "Coef" + GaUtils.ID_To_BinaryString(CurrentFrame.VSpaceDimension, id); var coefName = "Coef" + id; s.AppendLine(template.GenerateText("coef_name", coefName)); } return(s.ToString()); }
private string GenerateSubtractMethod() { var resultId = ClassData.ClassId | CalcClassData.ClassId; var resultClassData = MvLibraryGenerator.MultivectorClassesData[resultId]; var codeText = GenerateSubtractMethodCode(resultClassData); var template = new ParametricComposer("#", "#", BilinearTemplateText); var composer = new LinearComposer(); composer.Append( template, "result_type", resultClassData.ClassName, "op_name", "Subtract", "mv_class_name", CalcClassData.ClassName, "code", codeText ); return(composer.ToString()); }
public static LinearComposer AppendAtNewLine(this LinearComposer textBuilder, ParametricComposer template, params string[] parametersValues) { var text = template.GenerateText(parametersValues); return(textBuilder.AppendAtNewLine(text)); }
public static LinearComposer AppendNewLine(this LinearComposer textBuilder, ParametricComposer template, IParametericComposerValueSource parametersValues) { var text = template.GenerateText(parametersValues); return(textBuilder.AppendNewLine(text)); }
public static LinearComposer AppendNewLine(this LinearComposer textBuilder, ParametricComposer template, IDictionary <string, string> parametersValues) { var text = template.GenerateText(parametersValues); return(textBuilder.AppendNewLine(text)); }