public MethodStatement( StatementPosition position, Type returnType, string name, IList<Variable> variables, string code) : base(position) { this.returnType = returnType; this.name = name; this.variables = variables; this.code = code; }
void Type(out WolfGenerator.Core.AST.Type type) { StringBuilder name = new StringBuilder(); List<WolfGenerator.Core.AST.Type> genericParameters = null; Expect(1); Token start = t; name.Append( t.val ); while (la.kind == 20) { Get(); Expect(1); name.Append( '.' ); name.Append( t.val ); } if (la.kind == 26) { genericParameters = new List<WolfGenerator.Core.AST.Type>(); WolfGenerator.Core.AST.Type generic; Get(); Type(out generic); genericParameters.Add( generic ); while (WeakSeparator(21,4,13) ) { Type(out generic); genericParameters.Add( generic ); } Expect(27); } type = new WolfGenerator.Core.AST.Type( new StatementPosition( start, t ), name.ToString(), genericParameters ); }