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); }
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); }