コード例 #1
0
ファイル: Generator.cs プロジェクト: werwolfby/wolfgenerator
        public CodeWriter Method( MethodStatement method, string fileName )
        {
            var writer = new CodeWriter();

            writer.Indent = 0;
            writer.Append( "public " );
            writer.AppendText( method.ReturnType.ToString() );
            writer.Indent = 0;
            writer.Append( " " );
            writer.AppendText( method.Name );
            writer.Indent = 0;
            writer.Append( "(" );
            writer.Append( this.Invoke( "MethodParamenters", method.Variables ) );
            writer.Indent = 0;
            writer.AppendLine( ")" );
            writer.AppendLine( "{" );
            writer.Indent = 1;
            writer.AppendText( method.Code );
            writer.Indent = 0;
            writer.AppendLine();
            writer.Append( "}" );

            return writer;
        }
コード例 #2
0
ファイル: Parser.cs プロジェクト: werwolfby/wolfgenerator
 void Method(out MethodStatement methodStatement)
 {
     WolfGenerator.Core.AST.Type returnType;
     List<Variable> variables = null;
     int startPos = -1; string name;
     while (!(la.kind == 0 || la.kind == 7)) {SynErr(38); Get();}
     Expect(7);
     Token start = t;
     Type(out returnType);
     Expect(1);
     name = t.val;
     Expect(22);
     Variables(out variables);
     ExpectWeak(23, 1);
     while (!(la.kind == 0 || la.kind == 10)) {SynErr(39); Get();}
     Expect(10);
     startPos = t.pos + t.val.Length;
     while (StartOf(3)) {
     Get();
     }
     while (!(la.kind == 0 || la.kind == 11)) {SynErr(40); Get();}
     Expect(11);
     methodStatement = new MethodStatement( new StatementPosition( start, t ), returnType, name, variables, ExtractString( true, false, startPos, t.pos ) );
 }