if me.parent == prev.parent: return r.append( prev.pcstyle()) r.append( o( me.parent)) return [a for a in r if a] def pcstyle( me): return c( me.parent) def pr( p): if p: if isinstance( p, (tuple,list)): for a in p: if a: print a.rstrip() else: print p.rstrip() import sys for tt,s,i,sprev,sdif in sla( sys.stdin, State= State, newline= '\n<br>\n' ): print if 'style' in sdif: if sprev: pr( sprev.cstyle()) if 'style' in sdif: print pr( s.postyle( sprev)) pr( s.ostyle()) elif sprev.closed: pr( s.ostyle()) pr( s.open()) for t in tt[:-1]:
if not x: return last = x() stack[-1].append( last) if x is ListItem: last.append( Paragraph() ) last = last[-1] def push( x): if not x: return x = x() stack[-1].append( x) stack.append( x) def pop(): stack.pop() assert stack for tt,s,i,sprev,sdif in sla( sys.stdin, State=State ): #if 'style' in sdif: # pr( s.ostyle()) #if 'style' in sdif: # if sprev: # pr( sprev.cstyle()) x = styles.get( s.style, None) if 'style' in sdif: if sprev and s.parent != sprev.parent: if sprev.parent: pop() if not sprev or s.parent != sprev.parent: push( styles.get( s.parent))