protected void ParseParameters(Parser parser) { // Parse the parameter declarations bool isEndFirstOnLine; _parameters = ParameterDecl.ParseList(parser, this, ParseTokenStart, ParseTokenEnd, false, out isEndFirstOnLine); IsEndFirstOnLine = isEndFirstOnLine; }
protected DelegateDecl(Parser parser, CodeObject parent) : base(parser, parent) { MoveComments(parser.LastToken); // Get any comments before 'class' parser.NextToken(); // Move past 'delegate' SetField(ref _returnType, Expression.Parse(parser, this, true), true); // Parse the return type ParseNameTypeParameters(parser); // Parse the name and any optional type parameters // Parse the parameter declarations bool isEndFirstOnLine; _parameters = ParameterDecl.ParseList(parser, this, ParseTokenStart, ParseTokenEnd, false, out isEndFirstOnLine); IsEndFirstOnLine = isEndFirstOnLine; ParseModifiersAndAnnotations(parser); // Parse any attributes and/or modifiers ParseConstraintClauses(parser); // Parse any constraint clauses ParseTerminator(parser); GenerateMethods(); // Generate invoke methods and constructor }
protected AnonymousMethod(Parser parser, CodeObject parent) : base(parser, parent) { Token startingToken = parser.Token; // Get the object starting token parser.NextToken(); // Move past 'delegate' // Parse the parameter declarations bool isEndFirstOnLine; _parameters = ParameterDecl.ParseList(parser, this, ParseTokenStart, ParseTokenEnd, true, out isEndFirstOnLine); IsEndFirstOnLine = isEndFirstOnLine; // If the body is indented less than the parent object, set the NoIndentation flag to prevent it from // being formatted relative to the parent object. if (parser.CurrentTokenIndentedLessThan(startingToken)) { SetFormatFlag(FormatFlags.NoIndentation, true); } new Block(out _body, parser, this, true); // Parse the body }
protected IndexerDecl(Parser parser, CodeObject parent) : base(parser, parent, false) { // Get the ThisRef or Dot expression. If it's a Dot, replace the ThisRef with an UnresolvedThisRef, // which has an internal name of "Item", but displays as "this". Expression expression = parser.RemoveLastUnusedExpression(); SetField(ref _name, CheckUnresolvedThisRef(expression), false); Expression leftExpression = (expression is BinaryOperator ? ((BinaryOperator)expression).Left : expression); _lineNumber = leftExpression.LineNumber; _columnNumber = (ushort)leftExpression.ColumnNumber; ParseTypeModifiersAnnotations(parser); // Parse type and any modifiers and/or attributes // Parse the parameter declarations bool isEndFirstOnLine; _parameters = ParameterDecl.ParseList(parser, this, ParseTokenStart, ParseTokenEnd, false, out isEndFirstOnLine); IsEndFirstOnLine = isEndFirstOnLine; new Block(out _body, parser, this, true); // Parse the body }