Esempio n. 1
0
        public bool ConstructedValue()    /*[13]^^ConstructedValue
                                           * {
                                           * internal _ConstructedValue(BERTree ber)
                                           * {
                                           * parent = ber; len = 0; begEnd.posBeg_ = 0; begEnd.posEnd_ = 0;
                                           * }
                                           * BERTree parent;
                                           * int len;
                                           * PegBegEnd  begEnd;
                                           * bool save_() { len = parent.top.length; return true; }
                                           * bool at_end_() { return len <= 0; }
                                           * bool decr_()
                                           * {
                                           * len -= begEnd.posEnd_ - begEnd.posBeg_;
                                           * return len >= 0;
                                           * }
                                           * }:                      save_
                                           * (!at_end_ TLV:begEnd (decr_/FATAL<"illegal length">))*;*/
        {
            var _sem = new _ConstructedValue(this);

            return(TreeNT((int)EBERTree.ConstructedValue, () =>
                          And(() =>
                              _sem.save_() &&
                              OptRepeat(() =>
                                        And(() =>
                                            Not(() => _sem.at_end_()) &&
                                            Into(() => TLV(), out _sem.begEnd) &&
                                            (_sem.decr_() || Fatal("illegal length")))))));
        }
Esempio n. 2
0
        public bool ConstructedValue()    /*[13]^^ConstructedValue
{
    internal _ConstructedValue(BERTree ber)
    {
        parent = ber; len = 0; begEnd.posBeg_ = 0; begEnd.posEnd_ = 0;
    }
    BERTree parent;
    int len;
    PegBegEnd  begEnd;
    bool save_() { len = parent.top.length; return true; }
    bool at_end_() { return len <= 0; }
    bool decr_()
    {
        len -= begEnd.posEnd_ - begEnd.posBeg_;
        return len >= 0;
    } 
}:                      save_
                        (!at_end_ TLV:begEnd (decr_/FATAL<"illegal length">))*;*/
        {

             var _sem= new _ConstructedValue(this);

           return TreeNT((int)EBERTree.ConstructedValue,()=>
                And(()=>  
                     _sem.save_()
                  && OptRepeat(()=>    
                      And(()=>      
                               Not(()=> _sem.at_end_() )
                            && Into(()=> TLV(),out _sem.begEnd)
                            && (    _sem.decr_() || Fatal("illegal length")) ) ) ) );
		}
Esempio n. 3
0
        /*[13]^^ConstructedValue
        {
        internal _ConstructedValue(BERTree ber)
        {
        parent = ber; len = 0; begEnd.posBeg_ = 0; begEnd.posEnd_ = 0;
        }
        BERTree parent;
        int len;
        PegBegEnd  begEnd;
        bool save_() { len = parent.top.length; return true; }
        bool at_end_() { return len <= 0; }
        bool decr_()
        {
        len -= begEnd.posEnd_ - begEnd.posBeg_;
        return len >= 0;
        }
        }:                      save_
                        (!at_end_ TLV:begEnd (decr_/FATAL<"illegal length">))*;*/
        public bool ConstructedValue()
        {
            var _sem= new _ConstructedValue(this);

               return TreeNT((int)EBERTree.ConstructedValue,()=>
                And(()=>
                     _sem.save_()
                  && OptRepeat(()=>
                      And(()=>
                               Not(()=> _sem.at_end_() )
                            && Into(()=> TLV(),out _sem.begEnd)
                            && (    _sem.decr_() || Fatal("illegal length")) ) ) ) );
        }