main: chrono(s) chrono: '>>' name id(?) nl metadate(s?) event(s?) event: date date(?) name(?) id(?) nl metadate(s?) description name: /[\w\t\/\.()"'<> -]*\w/ nl: /\s*\n/ word: /\w+/ id: '{' word '}' metadate: "!!" metainfo nl metainfo: 'keyword' ':' name(s /[;,]/) | 'author' ':' name(s /[;,]/) | 'lang' ':' word | 'local' ':' name | 'ref' ':' ref(s /[;,]/) | 'isa' ':' class(s /[;,]/) class: '[' name '|' name ']' ref: '[' name '|' ref2 ']' ref2: url | idref idref: '{' /\w+\:\w+/ '}' url: 'http://' path | 'ftp://' path | 'img://' path | 'file://' path path: m![\w~\.\/=\-&]+! date: '[' approx(?) era(?) /\d{1,4}/ date1 ']' era: /bc/i approx: /~/ n2: /\d{1,2}/ sepdate: '/' | '-' | ':' sephour: ':' sepdt: 'T' date1: sepdate n2 date2 | date2: sepdate n2 date3 | date3: sepdt(?) n2 sephour n2 | description: line(s) line: "\n" | text1 text(s?) "\n" text1: format | /[^!>\[\n\t ][^\n\t ]*/ text: format | /[^\n\t ]+/ format: '**' /(?:\\\*|[^\n*])+/ '**' | '*' /(?:\\\*|[^\n*])+/ '*' | ref | class