123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System.IO;
- using System.Text;
- using System.Text.RegularExpressions;
- namespace ResBuilder
- {
- static class LuaFileTools
- {
- static readonly Regex mlc = new Regex(@"--\[(=*)\[(.|\n)*?\]\1\]", RegexOptions.Multiline);
- static Regex slc = new Regex("--(.*?)\r?\n", RegexOptions.Singleline);
- internal static string RemoveLuaFileComment(string filePath, StringBuilder changes)
- {
- changes.AppendLine("=====================================" + filePath);
- var str = File.ReadAllText(filePath, Tools.UTF8);
- str = str.TrimEnd() + '\n';
- str = mlc.Replace(str, (m) =>
- {
- var mstr = m.Value;
- changes.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
- changes.AppendLine(mstr);
- StringBuilder ret = new StringBuilder();
- foreach (var c in mstr)
- {
- if (c == '\n')
- {
- ret.Append(c);
- }
- }
- return ret.ToString();
- });
- str = slc.Replace(str, (m) =>
- {
- var mstr = m.Value;
- changes.AppendLine(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
- changes.AppendLine(mstr);
- if (mstr.IndexOf('\"') >= 0 && Tools.ExistCharInLineBefore(str, m.Index, '\"'))
- {
- return mstr;
- }
- if (mstr.IndexOf('\'') >= 0 && Tools.ExistCharInLineBefore(str, m.Index, '\''))
- {
- return mstr;
- }
- return "\n";
- });
- return str;
- }
- }
- }
|