コード例 #1
0
ファイル: BER.cs プロジェクト: Tigraine/PEG_GrammarExplorer
        /*[11]^^CompositeValue
        {
         int len;
         PegBegEnd begEnd;
         bool save_()  {len= 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 CompositeValue()
        {
            var _sem= new _CompositeValue(this);

               return TreeNT((int)EBER.CompositeValue,()=>
                And(()=>
                     _sem.save_()
                  && OptRepeat(()=>
                      And(()=>
                               Not(()=> _sem.at_end_() )
                            && Into(()=> TLV(),out _sem.begEnd)
                            && (    _sem.decr_() || Fatal("illegal length")) ) ) ) );
        }
コード例 #2
0
ファイル: BER.cs プロジェクト: windsurfer/dotless
        public bool CompositeValue()    /*[11]^^CompositeValue
                                         * {
                                         * int len;
                                         * PegBegEnd begEnd;
                                         * bool save_()  {len= 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 _CompositeValue(this);

            return(TreeNT((int)EBER.CompositeValue, () =>
                          And(() =>
                              _sem.save_() &&
                              OptRepeat(() =>
                                        And(() =>
                                            Not(() => _sem.at_end_()) &&
                                            Into(() => TLV(), out _sem.begEnd) &&
                                            (_sem.decr_() || Fatal("illegal length")))))));
        }
コード例 #3
0
ファイル: BER.cs プロジェクト: Ralphvanderneut/dotless
        public bool CompositeValue()    /*[11]^^CompositeValue
{
     int len;
     PegBegEnd begEnd;
     bool save_()  {len= 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 _CompositeValue(this);

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