Wiki Markup Parsing Pseudocode 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
		toggle translation mode

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

	case line-type pending-paragraph
		"" ""
			insert 

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

tags?!!) *****/