// Compiles a method signature for a named method or setter. private static void NamedSignature(Compiler c, Signature signature) { signature.Type = SignatureType.Getter; // If it's a setter, it can't also have a parameter list. if (c.MaybeSetter(signature)) return; // Regular named method with an optional parameter list. c.ParameterList(signature); }
// Compiles a method signature for a subscript operator. private static void SubscriptSignature(Compiler c, Signature signature) { signature.Type = SignatureType.Subscript; // The signature currently has "[" as its name since that was the token that // matched it. Clear that out. signature.Length = 0; signature.Name = ""; // Parse the parameters inside the subscript. c.FinishParameterList(signature); c.Consume(TokenType.RightBracket, "Expect ']' after parameters."); c.MaybeSetter(signature); }