public string GenerateMatcher()
{
StringBuilder sb = new StringBuilder();
sb.Append(string.Format(@"
#include <stdio.h>
namespace {0}
{{
class {1}
{{
private:", namespacename, classname));
sb.Append(UTF8toUTF16_Method);
StringBuilder matchers = new StringBuilder();
for (int i = 0; i < automata.Length; i++)
{
matchers.AppendLine(Generate_IsMatch(i));
}
sb.Append(helper_predicates.ToString());
sb.Append(@"
public:");
sb.Append(matchers.ToString());
sb.Append(Generate_IsMatchByIndex());
sb.Append(@"
};
}");
if (exportIsMatch)
{
sb.Append(isMatchExport);
}
return(sb.ToString());
}