Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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]);
        }