function HMML_parse(contents) { var l = new HMMLexer(); var state = { line: 0, annos: [], meta: {}, an: { line: 0, time: "", text: "", author: "", references: [], markers: [], quote: { id: 0, author: "" }, is_quote: false }, ref: {}, first: true }; l.setInput(contents, state); try { var r; do { r = l.next(); } while (!r); state.annos.forEach(function(a) { if (!a.is_quote) { delete a.quote; } if (a.author === "") delete a.author; delete a.is_quote; }); return { metadata: state.meta, annotations: state.annos }; } catch (e) { return { error: e }; } } function HMMLexer() {} /* generated by jison-lex 0.3.4 */ HMMLexer.prototype = {