using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FormulaEditor.Interfaces;
namespace FormulaEditor.CodeCreators
{
public abstract class SeparatorCodeCreator : AbstractCodeCreator
{
#region
protected IOperationSeparatorCreator separatorCreator;
#endregion
#region Ctor
protected SeparatorCodeCreator(ObjectFormulaTree[] trees)
: base(trees)
{
}
#endregion
public override IList<string> CreateCode(ObjectFormulaTree tree, string ret,
string[] parameters, out IList<string> variables, out IList<string> initializers)
{
string[] sep = separatorCreator[tree];
if (sep == null)
{
variables = null;
initializers = null;
return null;
}
variables = new List<string>();
initializers = new List<string>();
List<string> l = new List<string>();
string s = ret;
int n = sep.Length;
int m = parameters.Length;
for (int i = 0; i < n; i++)
{
s += sep[i];
if (i < m)
{
s += parameters[i];
}
}
l.Add(s);
return l;
}
}
}