Пример #1
0
        public new static TBlock Claim(StringClaimer claimer)
        {
            Claim c = claimer.Claim(LeftBracket);

            if (!c.Success)
            {
                return(null);
            }
            c.Pass();
            TBlock      newBlock = new TBlock();
            TExpression nExp;

            while ((nExp = TExpression.Claim(claimer)) != null)
            {
                newBlock._expressions.Add(nExp);
                claimer.Claim(SemiColon);
                if (!(c = claimer.Claim(RightBracket)).Success)
                {
                    continue;
                }
                c.Pass();
                return(newBlock);
            }
            return(newBlock);
        }
Пример #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);
 }