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"))))))); }
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")) ) ) ) ); }
/*[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")) ) ) ) ); }