TagStack(TagElement tag,TagStack next){
  this.tag=tag;
  this.elem=tag.getElement();
  this.next=next;
  Element elem=tag.getElement();
  if (elem.getContent() != null) {
    this.state=new ContentModelState(elem.getContent());
  }
  if (next != null) {
    inclusions=next.inclusions;
    exclusions=next.exclusions;
    pre=next.pre;
  }
  if (tag.isPreformatted()) {
    pre=true;
  }
  if (elem.inclusions != null) {
    if (inclusions != null) {
      inclusions=(BitSet)inclusions.clone();
      inclusions.or(elem.inclusions);
    }
 else {
      inclusions=elem.inclusions;
    }
  }
  if (elem.exclusions != null) {
    if (exclusions != null) {
      exclusions=(BitSet)exclusions.clone();
      exclusions.or(elem.exclusions);
    }
 else {
      exclusions=elem.exclusions;
    }
  }
}

TagStack ( TagElement tag , TagStack next ) { this . tag = tag ; this . elem = tag . getElement ( ) ; this . next = next ; Element elem = tag . getElement ( ) ; if ( elem . getContent ( ) != null ) { this . state = new ContentModelState ( elem . getContent ( ) ) ; } if ( next != null ) { inclusions = next . inclusions ; exclusions = next . exclusions ; pre = next . pre ; } if ( tag . isPreformatted ( ) ) { pre = true ; } if ( elem . inclusions != null ) { if ( inclusions != null ) { inclusions = ( BitSet ) inclusions . clone ( ) ; inclusions . or ( elem . inclusions ) ; } else { inclusions = elem . inclusions ; } } if ( elem . exclusions != null ) { if ( exclusions != null ) { exclusions = ( BitSet ) exclusions . clone ( ) ; exclusions . or ( elem . exclusions ) ; } else { exclusions = elem . exclusions ; } } }
construct a stack element .
