public new static TParenExpression Claim(StringClaimer claimer)
        {
            Claim lb = claimer.Claim(LeftBracket);

            if (!lb.Success)
            {
                return(null);
            }
            TParenExpression ptoken = new TParenExpression {
                _realExpression = TExpression.Claim(claimer)
            };

            if (ptoken._realExpression == null)
            {
                lb.Fail();
                return(null);
            }
            lb.Pass();
            Claim rb = claimer.Claim(RightBracket);

            if (rb.Success)
            {
                rb.Pass();            // right bracket is optional. So just pass it if we get it.
            }
            return(ptoken);
        }
示例#2
0
 private static TExpression pre_claim(StringClaimer claimer)
 {
     return(TAssignment.Claim(claimer) ??
            TIf.Claim(claimer) ??
            TFor.Claim(claimer) ??
            TWhile.Claim(claimer) ??
            TVariable.Claim(claimer) ??
            TLiteral.Claim(claimer) ??
            TParenExpression.Claim(claimer) ??
            TBlock.Claim(claimer)               as TExpression);
 }