Twenty-First Century Meyer
if translation-toggle-mark 
	if translating 
		insert start-preformat-tag
		toggle translation mode
	else
		insert end-preformat-tag
		toggle translation mode
	next line

if !translating
	insert line-text (possibly blank)
	next line

parse line mark

# unmarked line... (do this in 'parse line mark'?)
if !line-mark && !pending-paragraph
	line-type=p

# end paragraph?
if blank-line || (line-type != pending-paragraph) || (line-list != pending-list)
	insert pending-paragraph-end-tag
	clear pending paragraph

# end list?
if pending-list && line-list != pending-list
	insert pending-list-end-tag
	clear pending-list

# start list?
if line-list != pending-list
	insert start-list-tag
	set pending-list

# start paragraph?
if line-type && (line-list || line-type != pending-paragraph)
	insert start-paragraph-tag
	set pending-paragraph

insert line-text (will also copy blank lines, but maybe OK, and saves 1 test) (includes symbol escape, in-line translation, definition and table row parsing)



/*****
/@
	1. end para, next para unknown
	2. end para, next para known
	3. end para, end list, next para known
	4. end para, end list, next list, para known
	5. nothing pending, next para known
	6. nothing pending, next list, para known
	7. continue curr para
@/

if pending-paragraph && ( blank-line || line-type != pending-paragraph || line-list != pending-list )
	insert pending-end-tag
	clear pending paragraph

case line-mark
else
	if translation-toggle
		insert <pre>
		toggle translation mode

	if blank-line
		if pending-paragraph
			insert pending-end-tag
			clear pending paragraph

	case line-type pending-paragraph
		"" ""
			insert <p>line-text
			pending-paragraph=p
		"" *
			insert line-text
		* ""
			if line-type is list
				insert start-list-tag
				set pending-list
			insert line-start-tag, line-text
			pending-paragraph=line-type
		* *
			if 
	if pending-paragraph && line-tag && line-type != pending-paragraph
		insert pending-end-tag
		clear pending paragraph
		if pending-list
			insert pending-end-list
			clear pending-list

	if line-tag
		if line-type != pending-paragraph
			insert pending-end-tag
			clear pending paragraph
			if pending-list
				insert pending-end-list
				clear pending-list
	
		if line-type = list-item && !pending-list
			insert start-list-tag
			set pending-list
	
		insert line-tag
	
	insert line-text (!!what about <p> tags?!!)
*****/