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; }
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 ) ); }