public override bool Parse(ParseContext context, IAstNode parent) { if (ParseKeyword(context, parent)) { this.OpenBrace = RParser.ParseOpenBraceSequence(context, this); if (this.OpenBrace != null) { this.ParseExpression(context, this); // Even if expression is broken but we are at // the closing brace we want to recover and continue. if (context.Tokens.CurrentToken.TokenType == Tokens.RTokenType.CloseBrace) { this.CloseBrace = RParser.ParseCloseBraceSequence(context, this); if (this.CloseBrace != null) { this.Parent = parent; return(true); } } } } return(false); }