public static void test_templateProc(afh.Application.Log log) { const string input = @" namespace afh{ //#include ""mwg.Controls.WB.txt"" public static partial class Math{ //#define add hello(x) //#define square(x,y) ((x+y)*(y+x)) //#define RAW(x) x //#→template ADD_ARGS<abc,efg> {args[iArgs++]=double.Parse(abc);if(iArgs==NumberOfArgs)mode=efg;} //#←template //#→template ADD_ARGS<_word> {args[iArgs++]=double.Parse(_word);if(iArgs==NumberOfArgs)mode=SKIP_MODE;} //#←template //--------------------------------------------- //#>>delete これはごみごみ!!! //#<<delete RAW(""#Hello<xxx>#"") end; RAW(abc) end; public static void Main(){ //#ADD_ARGS<""0""> //#ADD_ARGS<word> //#ADD_ARGS<word> //#ADD_ARGS<word> //#ADD_ARGS<""0""> //#ADD_ARGS<SEKAI,OHAYOU!!> add;add; square(add,add); square(""#今日は ()()()((()))#"",789); } } } " ; log.WriteLine("入力:"); log.DumpString(input); log.WriteLine(); TemplateProcessor proc = new TemplateProcessor(); GenError e = new GenError(); string output = proc.Translate(input, "test", e); log.WriteLine("出力:"); log.DumpString(output); foreach (GenError.Error err in e.errors) { log.WriteLine(err); } }
public static void test_stringLineColumn(afh.Application.Log log) { const string sample = @" 今日は 作用なら おほほほほほほほほ "; afh.Text.MultilineString mstr = new afh.Text.MultilineString(sample); log.DumpString(sample); log.WriteLine("3 行 1 列: {0}", mstr[3, 1]); }