public IEnumerable<string> Parse(string css)
{
var files = new List<string>();
var parser = new Parser();
var stylesheet = parser.Parse(css);
var file = new StringBuilder();
var index = 0;
foreach (var rule in stylesheet.Rules)
{
if (index >= MaxSelectorCount)
{
index = 0;
files.Add(file.ToString());
file = new StringBuilder();
}
file.AppendLine(rule.ToString());
index++;
}
files.Add(file.ToString().TrimEnd());
return files;
}
}
static void Main(string[] args) { IEnumerable<string> files; using (var streamReader = new StreamReader(args[0])) { var parser = new BlessParser(); files = parser.Parse(streamReader.ReadToEnd()); } var dir = Path.GetDirectoryName(args[1]); var baseFileName = Path.GetFileName(args[1]); var fileAssembler = new FileAssembler(); var builtFiles = fileAssembler.BuildFiles(files, baseFileName); builtFiles[builtFiles.Last().Key] = fileAssembler.AddImportsToBaseFile(builtFiles.Take(builtFiles.Count - 1).Select(x => x.Key), builtFiles.Last().Value); foreach (var file in builtFiles) { File.WriteAllText(Path.Combine(dir, file.Key), file.Value); } }