Beispiel #1
0
        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);
        }