From 1b41c82f538047c16868afa16236913efc772b63 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 11 Oct 2024 13:44:55 +0000 Subject: [PATCH] deploy --- browser/browser.css | 50 + browser/converter.html | 25 + browser/converter.js | 6586 ++++++++++++++++++++++++++++++++++++++++ browser/converter.nim | 47 + browser/converter.nims | 3 + browser/reference.html | 143 + docs/common.html | 279 ++ docs/defs.html | 285 ++ docs/element.html | 549 ++++ docs/margrave.html | 321 ++ docs/nimdoc.out.css | 1036 +++++++ docs/parser.html | 443 +++ docs/singlexml.html | 120 + docs/utils.html | 758 +++++ 14 files changed, 10645 insertions(+) create mode 100644 browser/browser.css create mode 100644 browser/converter.html create mode 100644 browser/converter.js create mode 100644 browser/converter.nim create mode 100644 browser/converter.nims create mode 100644 browser/reference.html create mode 100644 docs/common.html create mode 100644 docs/defs.html create mode 100644 docs/element.html create mode 100644 docs/margrave.html create mode 100644 docs/nimdoc.out.css create mode 100644 docs/parser.html create mode 100644 docs/singlexml.html create mode 100644 docs/utils.html diff --git a/browser/browser.css b/browser/browser.css new file mode 100644 index 0000000..9a1770f --- /dev/null +++ b/browser/browser.css @@ -0,0 +1,50 @@ +* { font-family: Arial; } +a { text-decoration: none; } +body { background-color: #DDDDDD; } +h1 { + text-align: center; + font-size: 108px; + color: #363636; + margin: 2%; +} +h2 { + text-align: center; + font-size: 64px; + color: #404040; + margin: 2%; +} +h3 { + font-size: 28px; + margin: 1% 10%; +} +h4 { + font-size: 20px; + color: #202020; + margin: 1% 10%; +} +p, li { + font-size: 18px; + color: #232323; +} +li img { + height: 1em; + width: auto; +} +pre, code { font-family: Consolas; } +body > * { + margin-left: 0; + margin-right: 0; +} +#output > * { + margin-left: 10%; + margin-right: 10%; +} +textarea { + font-family: Consolas; + display: block; + width: 100%; +} +#head { + margin-left: 10%; + margin-right: 10%; +} diff --git a/browser/converter.html b/browser/converter.html new file mode 100644 index 0000000..9f93af3 --- /dev/null +++ b/browser/converter.html @@ -0,0 +1,25 @@ + + + + + + + + + margrave converter + + + +

margrave converter

+ +
+ + diff --git a/browser/converter.js b/browser/converter.js new file mode 100644 index 0000000..b5c9b58 --- /dev/null +++ b/browser/converter.js @@ -0,0 +1,6586 @@ +/* Generated by the Nim Compiler v2.2.0 */ +var framePtr = null; +var excHandler = 0; +var lastJSError = null; +var NTI33555173 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI134217746 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI134217747 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI687865867 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI989856101 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI989856080 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI989856090 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI1006632964 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI1258291203 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1258291204 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1258291205 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1258291206 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI1258291207 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI1224736776 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1224736774 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1224736771 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI1224736825 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1224736772 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1241514495 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI1275068421 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI1241514009 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241514008 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241514007 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241514006 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241514004 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513999 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513998 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513997 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513996 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513995 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1241513994 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI1241513993 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI1275068420 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI1207959558 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1207959564 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI1207959557 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1207959556 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1207959555 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI1207959559 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI704643119 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI33554444 = {size: 0,kind: 44,base: null,node: null,finalizer: null}; +var NTI788529527 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1157627910 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1157627907 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI989855792 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI989855822 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI989855826 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI989855827 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI754974811 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI989855747 = {size: 0,kind: 1,base: null,node: null,finalizer: null}; +var NTI536872206 = {size: 0, kind: 20, base: null, node: null, finalizer: null}; +var NTI536872205 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI754974766 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI989856089 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI704643100 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1006632968 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI33554448 = {size: 0,kind: 2,base: null,node: null,finalizer: null}; +var NTI1006632963 = {size: 0, kind: 19, base: null, node: null, finalizer: null}; +var NTI33555167 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555175 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI33554449 = {size: 0,kind: 28,base: null,node: null,finalizer: null}; +var NTI33555174 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI33555171 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI33555172 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI134217750 = {size: 0, kind: 17, base: null, node: null, finalizer: null}; +var NTI1157627919 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1157627931 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1157627928 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI1157627925 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI754974741 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI788529155 = {size: 0,kind: 31,base: null,node: null,finalizer: null}; +var NTI754974740 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI754974737 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI754974734 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI754974723 = {size: 0, kind: 14, base: null, node: null, finalizer: null}; +var NTI754974726 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI754974724 = {size: 0, kind: 22, base: null, node: null, finalizer: null}; +var NTI1157627915 = {size: 0, kind: 24, base: null, node: null, finalizer: null}; +var NTI33554435 = {size: 0,kind: 31,base: null,node: null,finalizer: null}; +var NTI33554450 = {size: 0,kind: 29,base: null,node: null,finalizer: null}; +var NTI1157627914 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1157627913 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI1157627911 = {size: 0,kind: 25,base: null,node: null,finalizer: null}; +var NTI33554466 = {size: 0,kind: 1,base: null,node: null,finalizer: null}; +var NTI1157627908 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NTI1157627909 = {size: 0, kind: 18, base: null, node: null, finalizer: null}; +var NNI1157627908 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "curlyNoHtmlEscape", len: 0, typ: NTI33554466, name: "curlyNoHtmlEscape", sons: null}, +{kind: 1, offset: "insertLineBreaks", len: 0, typ: NTI33554466, name: "insertLineBreaks", sons: null}, +{kind: 1, offset: "inlineHtmlHandler", len: 0, typ: NTI1157627911, name: "inlineHtmlHandler", sons: null}, +{kind: 1, offset: "codeBlockLanguageHandler", len: 0, typ: NTI1157627913, name: "codeBlockLanguageHandler", sons: null}, +{kind: 1, offset: "setLinkHandler", len: 0, typ: NTI1157627914, name: "setLinkHandler", sons: null}, +{kind: 1, offset: "disableTextAlignExtension", len: 0, typ: NTI33554466, name: "disableTextAlignExtension", sons: null}]}; +NTI1157627908.node = NNI1157627908; +var NNI754974723 = {kind: 2, offset: 0, typ: null, name: null, len: 29, sons: {"0": {kind: 1, offset: 0, typ: NTI754974723, name: "", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI754974723, name: "p", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI754974723, name: "br", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI754974723, name: "h1", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI754974723, name: "h2", len: 0, sons: null}, +"5": {kind: 1, offset: 5, typ: NTI754974723, name: "h3", len: 0, sons: null}, +"6": {kind: 1, offset: 6, typ: NTI754974723, name: "h4", len: 0, sons: null}, +"7": {kind: 1, offset: 7, typ: NTI754974723, name: "h5", len: 0, sons: null}, +"8": {kind: 1, offset: 8, typ: NTI754974723, name: "h6", len: 0, sons: null}, +"9": {kind: 1, offset: 9, typ: NTI754974723, name: "ul", len: 0, sons: null}, +"10": {kind: 1, offset: 10, typ: NTI754974723, name: "ol", len: 0, sons: null}, +"11": {kind: 1, offset: 11, typ: NTI754974723, name: "li", len: 0, sons: null}, +"12": {kind: 1, offset: 12, typ: NTI754974723, name: "blockquote", len: 0, sons: null}, +"13": {kind: 1, offset: 13, typ: NTI754974723, name: "sup", len: 0, sons: null}, +"14": {kind: 1, offset: 14, typ: NTI754974723, name: "sub", len: 0, sons: null}, +"15": {kind: 1, offset: 15, typ: NTI754974723, name: "em", len: 0, sons: null}, +"16": {kind: 1, offset: 16, typ: NTI754974723, name: "strong", len: 0, sons: null}, +"17": {kind: 1, offset: 17, typ: NTI754974723, name: "pre", len: 0, sons: null}, +"18": {kind: 1, offset: 18, typ: NTI754974723, name: "code", len: 0, sons: null}, +"19": {kind: 1, offset: 19, typ: NTI754974723, name: "u", len: 0, sons: null}, +"20": {kind: 1, offset: 20, typ: NTI754974723, name: "s", len: 0, sons: null}, +"21": {kind: 1, offset: 21, typ: NTI754974723, name: "img", len: 0, sons: null}, +"22": {kind: 1, offset: 22, typ: NTI754974723, name: "input", len: 0, sons: null}, +"23": {kind: 1, offset: 23, typ: NTI754974723, name: "a", len: 0, sons: null}, +"24": {kind: 1, offset: 24, typ: NTI754974723, name: "picture", len: 0, sons: null}, +"25": {kind: 1, offset: 25, typ: NTI754974723, name: "video", len: 0, sons: null}, +"26": {kind: 1, offset: 26, typ: NTI754974723, name: "audio", len: 0, sons: null}, +"27": {kind: 1, offset: 27, typ: NTI754974723, name: "source", len: 0, sons: null}, +"28": {kind: 1, offset: 28, typ: NTI754974723, name: "unknownTag", len: 0, sons: null}}}; +NTI754974723.node = NNI754974723; +var NNI754974740 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI788529155, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554435, name: "Field1", sons: null}, +{kind: 1, offset: "Field2", len: 0, typ: NTI33554450, name: "Field2", sons: null}, +{kind: 1, offset: "Field3", len: 0, typ: NTI33554450, name: "Field3", sons: null}]}; +NTI754974740.node = NNI754974740; +NTI754974737.base = NTI754974740; +var NNI754974734 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "data", len: 0, typ: NTI754974737, name: "data", sons: null}, +{kind: 1, offset: "counter", len: 0, typ: NTI33554435, name: "counter", sons: null}, +{kind: 1, offset: "first", len: 0, typ: NTI33554435, name: "first", sons: null}, +{kind: 1, offset: "last", len: 0, typ: NTI33554435, name: "last", sons: null}]}; +NTI754974734.node = NNI754974734; +NTI754974741.base = NTI754974724; +var NNI754974726 = {kind: 3, offset: "isText", len: 2, typ: NTI33554466, name: "isText", sons: [[setConstr(1), {kind: 1, offset: "str", len: 0, typ: NTI33554450, name: "str", sons: null}], +[setConstr(2), {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "tag", len: 0, typ: NTI754974723, name: "tag", sons: null}, +{kind: 1, offset: "attrs", len: 0, typ: NTI754974734, name: "attrs", sons: null}, +{kind: 1, offset: "content", len: 0, typ: NTI754974741, name: "content", sons: null}]}]]}; +NTI754974726.node = NNI754974726; +NTI754974724.base = NTI754974726; +NTI1157627915.base = NTI754974724; +NTI1157627919.base = NTI754974724; +var NNI1157627931 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI788529155, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554450, name: "Field1", sons: null}, +{kind: 1, offset: "Field2", len: 0, typ: NTI1157627919, name: "Field2", sons: null}]}; +NTI1157627931.node = NNI1157627931; +NTI1157627928.base = NTI1157627931; +var NNI1157627925 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "data", len: 0, typ: NTI1157627928, name: "data", sons: null}, +{kind: 1, offset: "counter", len: 0, typ: NTI33554435, name: "counter", sons: null}]}; +NTI1157627925.node = NNI1157627925; +var NNI1157627909 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "options", len: 0, typ: NTI1157627908, name: "options", sons: null}, +{kind: 1, offset: "str", len: 0, typ: NTI33554450, name: "str", sons: null}, +{kind: 1, offset: "pos", len: 0, typ: NTI33554435, name: "pos", sons: null}, +{kind: 1, offset: "contextStack", len: 0, typ: NTI1157627915, name: "contextStack", sons: null}, +{kind: 1, offset: "linkReferrers", len: 0, typ: NTI1157627925, name: "linkReferrers", sons: null}]}; +NTI1157627909.node = NNI1157627909; +var NNI134217750 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI134217750.node = NNI134217750; +var NNI33555172 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555172.node = NNI33555172; +NTI33555174.base = NTI33555171; +NTI33555175.base = NTI33555171; +var NNI33555171 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555174, name: "parent", sons: null}, +{kind: 1, offset: "name", len: 0, typ: NTI33554450, name: "name", sons: null}, +{kind: 1, offset: "message", len: 0, typ: NTI33554449, name: "msg", sons: null}, +{kind: 1, offset: "trace", len: 0, typ: NTI33554449, name: "trace", sons: null}, +{kind: 1, offset: "up", len: 0, typ: NTI33555175, name: "up", sons: null}]}; +NTI33555171.node = NNI33555171; +var NNI33555167 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555167.node = NNI33555167; +NTI33555171.base = NTI33555167; +NTI33555172.base = NTI33555171; +NTI134217750.base = NTI33555172; +NTI1006632963.base = NTI33554448; +NTI1006632968.base = NTI33554448; +var NNI704643100 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "a", len: 0, typ: NTI33554435, name: "a", sons: null}, +{kind: 1, offset: "b", len: 0, typ: NTI33554435, name: "b", sons: null}]}; +NTI704643100.node = NNI704643100; +NTI989856089.base = NTI754974723; +NTI754974766.base = NTI754974724; +NTI536872206.base = NTI33554435; +NTI754974811.base = NTI754974724; +var NNI536872205 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "HEX3Astate", len: 0, typ: NTI536872206, name: ":state", sons: null}, +{kind: 1, offset: "singleLine1", len: 0, typ: NTI989855747, name: "singleLine1", sons: null}, +{kind: 1, offset: "elems2", len: 0, typ: NTI754974811, name: "elems2", sons: null}, +{kind: 1, offset: "lastStr3", len: 0, typ: NTI754974724, name: "lastStr3", sons: null}, +{kind: 1, offset: "initialPos4", len: 0, typ: NTI33554435, name: "initialPos4", sons: null}]}; +NTI536872205.node = NNI536872205; +NTI536872205.base = NTI33555167; +NTI989855827.base = NTI754974724; +var NNI989855822 = {kind: 2, offset: 0, typ: null, name: null, len: 3, sons: {"0": {kind: 1, offset: 0, typ: NTI989855822, name: "frDone", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI989855822, name: "frReachedEnd", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI989855822, name: "frFailed", len: 0, sons: null}}}; +NTI989855822.node = NNI989855822; +var NNI989855826 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI989855822, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI989855827, name: "Field1", sons: null}]}; +NTI989855826.node = NNI989855826; +var NNI989855792 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554450, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554450, name: "Field1", sons: null}]}; +NTI989855792.node = NNI989855792; +NTI1157627910.base = NTI33554450; +var NNI1157627907 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "url", len: 0, typ: NTI33554450, name: "url", sons: null}, +{kind: 1, offset: "tip", len: 0, typ: NTI33554450, name: "tip", sons: null}, +{kind: 1, offset: "altUrls", len: 0, typ: NTI1157627910, name: "altUrls", sons: null}]}; +NTI1157627907.node = NNI1157627907; +var NNI788529527 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554444, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554444, name: "Field1", sons: null}]}; +NTI788529527.node = NNI788529527; +var NNI704643119 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "a", len: 0, typ: NTI33554435, name: "a", sons: null}, +{kind: 1, offset: "b", len: 0, typ: NTI33554435, name: "b", sons: null}]}; +NTI704643119.node = NNI704643119; +var NNI1207959555 = {kind: 2, offset: 0, typ: null, name: null, len: 14, sons: {"0": {kind: 1, offset: 0, typ: NTI1207959555, name: "xmlError", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1207959555, name: "xmlEof", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1207959555, name: "xmlCharData", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI1207959555, name: "xmlWhitespace", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI1207959555, name: "xmlComment", len: 0, sons: null}, +"5": {kind: 1, offset: 5, typ: NTI1207959555, name: "xmlPI", len: 0, sons: null}, +"6": {kind: 1, offset: 6, typ: NTI1207959555, name: "xmlElementStart", len: 0, sons: null}, +"7": {kind: 1, offset: 7, typ: NTI1207959555, name: "xmlElementEnd", len: 0, sons: null}, +"8": {kind: 1, offset: 8, typ: NTI1207959555, name: "xmlElementOpen", len: 0, sons: null}, +"9": {kind: 1, offset: 9, typ: NTI1207959555, name: "xmlAttribute", len: 0, sons: null}, +"10": {kind: 1, offset: 10, typ: NTI1207959555, name: "xmlElementClose", len: 0, sons: null}, +"11": {kind: 1, offset: 11, typ: NTI1207959555, name: "xmlCData", len: 0, sons: null}, +"12": {kind: 1, offset: 12, typ: NTI1207959555, name: "xmlEntity", len: 0, sons: null}, +"13": {kind: 1, offset: 13, typ: NTI1207959555, name: "xmlSpecial", len: 0, sons: null}}}; +NTI1207959555.node = NNI1207959555; +var NNI1207959556 = {kind: 2, offset: 0, typ: null, name: null, len: 10, sons: {"0": {kind: 1, offset: 0, typ: NTI1207959556, name: "errNone", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1207959556, name: "errEndOfCDataExpected", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1207959556, name: "errNameExpected", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI1207959556, name: "errSemicolonExpected", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI1207959556, name: "errQmGtExpected", len: 0, sons: null}, +"5": {kind: 1, offset: 5, typ: NTI1207959556, name: "errGtExpected", len: 0, sons: null}, +"6": {kind: 1, offset: 6, typ: NTI1207959556, name: "errEqExpected", len: 0, sons: null}, +"7": {kind: 1, offset: 7, typ: NTI1207959556, name: "errQuoteExpected", len: 0, sons: null}, +"8": {kind: 1, offset: 8, typ: NTI1207959556, name: "errEndOfCommentExpected", len: 0, sons: null}, +"9": {kind: 1, offset: 9, typ: NTI1207959556, name: "errAttributeValueExpected", len: 0, sons: null}}}; +NTI1207959556.node = NNI1207959556; +var NNI1207959557 = {kind: 2, offset: 0, typ: null, name: null, len: 5, sons: {"0": {kind: 1, offset: 0, typ: NTI1207959557, name: "stateStart", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1207959557, name: "stateNormal", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1207959557, name: "stateAttr", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI1207959557, name: "stateEmptyElementTag", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI1207959557, name: "stateError", len: 0, sons: null}}}; +NTI1207959557.node = NNI1207959557; +var NNI1207959558 = {kind: 2, offset: 0, typ: null, name: null, len: 4, sons: {"0": {kind: 1, offset: 0, typ: NTI1207959558, name: "reportWhitespace", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1207959558, name: "reportComments", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1207959558, name: "allowUnquotedAttribs", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI1207959558, name: "allowEmptyAttribs", len: 0, sons: null}}}; +NTI1207959558.node = NNI1207959558; +NTI1207959564.base = NTI1207959558; +var NNI1207959559 = {kind: 2, len: 9, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "a", len: 0, typ: NTI33554449, name: "a", sons: null}, +{kind: 1, offset: "b", len: 0, typ: NTI33554449, name: "b", sons: null}, +{kind: 1, offset: "c", len: 0, typ: NTI33554449, name: "c", sons: null}, +{kind: 1, offset: "kind", len: 0, typ: NTI1207959555, name: "kind", sons: null}, +{kind: 1, offset: "err", len: 0, typ: NTI1207959556, name: "err", sons: null}, +{kind: 1, offset: "state", len: 0, typ: NTI1207959557, name: "state", sons: null}, +{kind: 1, offset: "cIsEmpty", len: 0, typ: NTI33554466, name: "cIsEmpty", sons: null}, +{kind: 1, offset: "filename", len: 0, typ: NTI33554449, name: "filename", sons: null}, +{kind: 1, offset: "options", len: 0, typ: NTI1207959564, name: "options", sons: null}]}; +NTI1207959559.node = NNI1207959559; +var NNI1241513994 = {kind: 2, len: 10, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "closeImpl", len: 0, typ: NTI1241513995, name: "closeImpl", sons: null}, +{kind: 1, offset: "atEndImpl", len: 0, typ: NTI1241513996, name: "atEndImpl", sons: null}, +{kind: 1, offset: "setPositionImpl", len: 0, typ: NTI1241513997, name: "setPositionImpl", sons: null}, +{kind: 1, offset: "getPositionImpl", len: 0, typ: NTI1241513998, name: "getPositionImpl", sons: null}, +{kind: 1, offset: "readDataStrImpl", len: 0, typ: NTI1241513999, name: "readDataStrImpl", sons: null}, +{kind: 1, offset: "readLineImpl", len: 0, typ: NTI1241514004, name: "readLineImpl", sons: null}, +{kind: 1, offset: "readDataImpl", len: 0, typ: NTI1241514006, name: "readDataImpl", sons: null}, +{kind: 1, offset: "peekDataImpl", len: 0, typ: NTI1241514007, name: "peekDataImpl", sons: null}, +{kind: 1, offset: "writeDataImpl", len: 0, typ: NTI1241514008, name: "writeDataImpl", sons: null}, +{kind: 1, offset: "flushImpl", len: 0, typ: NTI1241514009, name: "flushImpl", sons: null}]}; +NTI1241513994.node = NNI1241513994; +NTI1241513994.base = NTI33555167; +NTI1241513993.base = NTI1241513994; +NTI1275068421.base = NTI33554448; +var NNI1275068420 = {kind: 2, len: 8, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "bufpos", len: 0, typ: NTI33554435, name: "bufpos", sons: null}, +{kind: 1, offset: "buf", len: 0, typ: NTI33554449, name: "buf", sons: null}, +{kind: 1, offset: "input", len: 0, typ: NTI1241513993, name: "input", sons: null}, +{kind: 1, offset: "lineNumber", len: 0, typ: NTI33554435, name: "lineNumber", sons: null}, +{kind: 1, offset: "sentinel", len: 0, typ: NTI33554435, name: "sentinel", sons: null}, +{kind: 1, offset: "lineStart", len: 0, typ: NTI33554435, name: "lineStart", sons: null}, +{kind: 1, offset: "offsetBase", len: 0, typ: NTI33554435, name: "offsetBase", sons: null}, +{kind: 1, offset: "refillChars", len: 0, typ: NTI1275068421, name: "refillChars", sons: null}]}; +NTI1275068420.node = NNI1275068420; +NTI1275068420.base = NTI33555167; +NTI1207959559.base = NTI1275068420; +var NNI1241514495 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "data", len: 0, typ: NTI33554449, name: "data", sons: null}, +{kind: 1, offset: "pos", len: 0, typ: NTI33554435, name: "pos", sons: null}]}; +NTI1241514495.node = NNI1241514495; +NTI1241514495.base = NTI1241513994; +var NNI1224736772 = {kind: 2, offset: 0, typ: null, name: null, len: 6, sons: {"0": {kind: 1, offset: 0, typ: NTI1224736772, name: "xnText", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1224736772, name: "xnVerbatimText", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1224736772, name: "xnElement", len: 0, sons: null}, +"3": {kind: 1, offset: 3, typ: NTI1224736772, name: "xnCData", len: 0, sons: null}, +"4": {kind: 1, offset: 4, typ: NTI1224736772, name: "xnEntity", len: 0, sons: null}, +"5": {kind: 1, offset: 5, typ: NTI1224736772, name: "xnComment", len: 0, sons: null}}}; +NTI1224736772.node = NNI1224736772; +NTI1224736776.base = NTI1224736771; +var NNI1258291204 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554449, name: "Field0", sons: null}, +{kind: 1, offset: "Field1", len: 0, typ: NTI33554449, name: "Field1", sons: null}, +{kind: 1, offset: "Field2", len: 0, typ: NTI33554466, name: "Field2", sons: null}]}; +NTI1258291204.node = NNI1258291204; +NTI1258291205.base = NTI1258291204; +var NNI1258291203 = {kind: 2, offset: 0, typ: null, name: null, len: 3, sons: {"0": {kind: 1, offset: 0, typ: NTI1258291203, name: "modeCaseSensitive", len: 0, sons: null}, +"1": {kind: 1, offset: 1, typ: NTI1258291203, name: "modeCaseInsensitive", len: 0, sons: null}, +"2": {kind: 1, offset: 2, typ: NTI1258291203, name: "modeStyleInsensitive", len: 0, sons: null}}}; +NTI1258291203.node = NNI1258291203; +var NNI1258291206 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "counter", len: 0, typ: NTI33554435, name: "counter", sons: null}, +{kind: 1, offset: "data", len: 0, typ: NTI1258291205, name: "data", sons: null}, +{kind: 1, offset: "mode", len: 0, typ: NTI1258291203, name: "mode", sons: null}]}; +NTI1258291206.node = NNI1258291206; +NTI1258291206.base = NTI33555167; +NTI1258291207.base = NTI1258291206; +var NNI1224736774 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 3, offset: "k", len: 6, typ: NTI1224736772, name: "k", sons: [[setConstr(0, 1, 5, 3, 4), {kind: 1, offset: "fText", len: 0, typ: NTI33554449, name: "fText", sons: null}], +[setConstr(2), {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "fTag", len: 0, typ: NTI33554449, name: "fTag", sons: null}, +{kind: 1, offset: "s", len: 0, typ: NTI1224736776, name: "s", sons: null}, +{kind: 1, offset: "fAttr", len: 0, typ: NTI1258291207, name: "fAttr", sons: null}]}]]}, +{kind: 1, offset: "fClientData", len: 0, typ: NTI33554435, name: "fClientData", sons: null}]}; +NTI1224736774.node = NNI1224736774; +NTI1224736771.base = NTI1224736774; +NTI1224736825.base = NTI1224736771; +NTI1006632964.base = NTI33554448; +NTI989856090.base = NTI33554448; +NTI989856080.base = NTI754974724; +NTI989856101.base = NTI754974724; +NTI687865867.base = NTI754974724; +var NNI134217747 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI134217747.node = NNI134217747; +var NNI134217746 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI134217746.node = NNI134217746; +var NNI33555173 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []}; +NTI33555173.node = NNI33555173; +NTI33555173.base = NTI33555171; +NTI134217746.base = NTI33555173; +NTI134217747.base = NTI134217746; + +function setConstr() { + var result = {}; + for (var i = 0; i < arguments.length; ++i) { + var x = arguments[i]; + if (typeof(x) == "object") { + for (var j = x[0]; j <= x[1]; ++j) { + result[j] = true; + } + } else { + result[x] = true; + } + } + return result; + + + +} +var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21); + +function nimCopy(dest_p0, src_p1, ti_p2) { + var result_33557326 = null; + + switch (ti_p2.kind) { + case 21: + case 22: + case 23: + case 5: + if (!(isFatPointer__system_u2874(ti_p2))) { + result_33557326 = src_p1; + } + else { + result_33557326 = [src_p1[0], src_p1[1]]; + } + + break; + case 19: + if (dest_p0 === null || dest_p0 === undefined) { + dest_p0 = {}; + } + else { + for (var key in dest_p0) { delete dest_p0[key]; } + } + for (var key in src_p1) { dest_p0[key] = src_p1[key]; } + result_33557326 = dest_p0; + + break; + case 18: + case 17: + if (!((ti_p2.base == null))) { + result_33557326 = nimCopy(dest_p0, src_p1, ti_p2.base); + } + else { + if ((ti_p2.kind == 17)) { + result_33557326 = (dest_p0 === null || dest_p0 === undefined) ? {m_type: ti_p2} : dest_p0; + } + else { + result_33557326 = (dest_p0 === null || dest_p0 === undefined) ? {} : dest_p0; + } + } + nimCopyAux(result_33557326, src_p1, ti_p2.node); + break; + case 4: + case 16: + if(ArrayBuffer.isView(src_p1)) { + if(dest_p0 === null || dest_p0 === undefined || dest_p0.length != src_p1.length) { + dest_p0 = new src_p1.constructor(src_p1); + } else { + dest_p0.set(src_p1, 0); + } + result_33557326 = dest_p0; + } else { + if (src_p1 === null) { + result_33557326 = null; + } + else { + if (dest_p0 === null || dest_p0 === undefined || dest_p0.length != src_p1.length) { + dest_p0 = new Array(src_p1.length); + } + result_33557326 = dest_p0; + for (var i = 0; i < src_p1.length; ++i) { + result_33557326[i] = nimCopy(result_33557326[i], src_p1[i], ti_p2.base); + } + } + } + + break; + case 24: + case 27: + if (src_p1 === null) { + result_33557326 = null; + } + else { + if (dest_p0 === null || dest_p0 === undefined || dest_p0.length != src_p1.length) { + dest_p0 = new Array(src_p1.length); + } + result_33557326 = dest_p0; + for (var i = 0; i < src_p1.length; ++i) { + result_33557326[i] = nimCopy(result_33557326[i], src_p1[i], ti_p2.base); + } + } + + break; + case 28: + if (src_p1 !== null) { + result_33557326 = src_p1.slice(0); + } + + break; + default: + result_33557326 = src_p1; + break; + } + + return result_33557326; + +} +var ConstSet2 = setConstr(true); + +function toJSStr(s_p0) { + var result_33556919 = null; + + var res_33556973 = newSeq__system_u2516((s_p0).length); + var i_33556974 = 0; + var j_33556975 = 0; + Label1: { + Label2: while (true) { + if (!(i_33556974 < (s_p0).length)) break Label2; + var c_33556976 = s_p0[i_33556974]; + if ((c_33556976 < 128)) { + res_33556973[j_33556975] = String.fromCharCode(c_33556976); + i_33556974 += 1; + } + else { + var helper_33557002 = newSeq__system_u2516(0); + Label3: { + Label4: while (true) { + if (!true) break Label4; + var code_33557003 = c_33556976.toString(16); + if ((((code_33557003) == null ? 0 : (code_33557003).length) == 1)) { + helper_33557002.push("%0");; + } + else { + helper_33557002.push("%");; + } + + helper_33557002.push(code_33557003);; + i_33556974 += 1; + if ((((s_p0).length <= i_33556974) || (s_p0[i_33556974] < 128))) { + break Label3; + } + + c_33556976 = s_p0[i_33556974]; + } + }; +++excHandler; + try { + res_33556973[j_33556975] = decodeURIComponent(helper_33557002.join("")); +--excHandler; +} catch (EXCEPTION) { + var prevJSError = lastJSError; + lastJSError = EXCEPTION; + --excHandler; + res_33556973[j_33556975] = helper_33557002.join(""); + lastJSError = prevJSError; + } finally { + } + } + + j_33556975 += 1; + } + }; + if (res_33556973.length < j_33556975) { for (var i = res_33556973.length ; i < j_33556975 ; ++i) res_33556973.push(null); } + else { res_33556973.length = j_33556975; }; + result_33556919 = res_33556973.join(""); + + return result_33556919; + +} + +function raiseException(e_p0, ename_p1) { + e_p0.name = ename_p1; + if ((excHandler == 0)) { + unhandledException(e_p0); + } + + throw e_p0; + + +} + +function raiseFieldError2(f_p0, discVal_p1) { + raiseException({message: (f_p0).concat(discVal_p1,[39]), parent: null, m_type: NTI134217750, name: null, trace: [], up: null}, "FieldDefect"); + + +} + +function makeNimstrLit(c_p0) { + var result = []; + for (var i = 0; i < c_p0.length; ++i) { + result[i] = c_p0.charCodeAt(i); + } + return result; + + + +} + +function mnewString(len_p0) { + var result = new Array(len_p0); + for (var i = 0; i < len_p0; i++) {result[i] = 0;} + return result; + + + +} + +function nimBoolToStr(x_p0) { + var result_33556454 = []; + + if (x_p0) { + result_33556454 = nimCopy(null, [116,114,117,101], NTI33554449); + } + else { + result_33556454 = nimCopy(null, [102,97,108,115,101], NTI33554449); + } + + + return result_33556454; + +} + +function reprDiscriminant(e_p0, typ_p1) { + var Temporary1; + + var result_33557659 = []; + + switch (typ_p1.kind) { + case 14: + Temporary1 = reprEnum(e_p0, typ_p1); + break; + case 1: + Temporary1 = nimBoolToStr(!((e_p0 == 0))); + break; + default: + Temporary1 = HEX24__systemZdollars_u8(e_p0); + break; + } + result_33557659 = nimCopy(null, Temporary1, NTI33554449); + + return result_33557659; + +} +var ConstSet3 = setConstr(42, 45, 43); +var ConstSet4 = setConstr(9, [11, 12], 32); + var InlineWhitespace_989855934 = nimCopy(null, ConstSet4, NTI1006632963); +var ConstSet5 = setConstr([48, 57]); + var Digits_1006632978 = nimCopy(null, ConstSet5, NTI1006632968); +var ConstSet6 = setConstr(true); +var ConstSet7 = setConstr(true); +var ConstSet8 = setConstr(9, 10, 12); + var SpecialLineTags_989855927 = nimCopy(null, ConstSet8, NTI989856089); +var ConstSet9 = setConstr(true); +var ConstSet10 = setConstr(true); +var ConstSet11 = setConstr(true); +var ConstSet12 = setConstr(true); +var ConstSet13 = setConstr(true); +var ConstSet14 = setConstr(32, 9, 11, 13, 10, 12); +var ConstSet15 = setConstr(32, 9, 11, 13, 10, 12); +var ConstSet16 = setConstr(true); +var ConstSet17 = setConstr(true); +var ConstSet18 = setConstr(32, 9, 11, 13, 10, 12); + var Whitespace_1006632973 = nimCopy(null, ConstSet18, NTI1006632963); +var ConstSet19 = setConstr(true); +var ConstSet20 = setConstr([97, 122], [65, 90], [48, 57], 45, 95, 58, 46); +var ConstSet21 = setConstr(true); +var ConstSet22 = setConstr(0); +var ConstSet23 = setConstr(2, 1); +var ConstSet24 = setConstr(0); +var ConstSet25 = setConstr(2, 1); +var ConstSet26 = setConstr(0); +var ConstSet27 = setConstr(2, 1); +var ConstSet28 = setConstr(0); +var ConstSet29 = setConstr(2, 1); +var ConstSet30 = setConstr(true); +var ConstSet31 = setConstr(true); +var ConstSet32 = setConstr(9, [11, 13], 32); +var ConstSet33 = setConstr(true); + +function cstrToNimstr(c_p0) { + var ln = c_p0.length; + var result = new Array(ln); + var r = 0; + for (var i = 0; i < ln; ++i) { + var ch = c_p0.charCodeAt(i); + + if (ch < 128) { + result[r] = ch; + } + else { + if (ch < 2048) { + result[r] = (ch >> 6) | 192; + } + else { + if (ch < 55296 || ch >= 57344) { + result[r] = (ch >> 12) | 224; + } + else { + ++i; + ch = 65536 + (((ch & 1023) << 10) | (c_p0.charCodeAt(i) & 1023)); + result[r] = (ch >> 18) | 240; + ++r; + result[r] = ((ch >> 12) & 63) | 128; + } + ++r; + result[r] = ((ch >> 6) & 63) | 128; + } + ++r; + result[r] = (ch & 63) | 128; + } + ++r; + } + return result; + + + +} +var ConstSet34 = setConstr(true); +var ConstSet35 = setConstr(true); +var ConstSet36 = setConstr(true); +var ConstSet37 = setConstr(true); +var ConstSet38 = setConstr(true); +var ConstSet39 = setConstr(true); +var ConstSet40 = setConstr(true); +var ConstSet41 = setConstr(true); +var ConstSet42 = setConstr(true); +var ConstSet43 = setConstr(true); +var ConstSet44 = setConstr(true); +var ConstSet45 = setConstr(true); +var ConstSet46 = setConstr(true); +var ConstSet47 = setConstr(true); +var ConstSet48 = setConstr(true); +var ConstSet49 = setConstr(true); +var ConstSet50 = setConstr(true); +var ConstSet51 = setConstr(true); +var ConstSet52 = setConstr(2, 1); +var ConstSet53 = setConstr(true); +var ConstSet54 = setConstr(2, 1); +var ConstSet55 = setConstr(0); +var ConstSet56 = setConstr(2, 1); +var ConstSet57 = setConstr(0, 1); +var ConstSet58 = setConstr(2, 1); +var ConstSet59 = setConstr(0); +var ConstSet60 = setConstr(2, 1); +var ConstSet61 = setConstr(0); +var ConstSet62 = setConstr(2, 1); + +function nimMin(a_p0, b_p1) { + var Temporary1; + + var result_33557149 = 0; + + BeforeRet: { + if ((a_p0 <= b_p1)) { + Temporary1 = a_p0; + } + else { + Temporary1 = b_p1; + } + + result_33557149 = Temporary1; + break BeforeRet; + }; + + return result_33557149; + +} + +function nimMax(a_p0, b_p1) { + var Temporary1; + + var result_33557153 = 0; + + BeforeRet: { + if ((b_p1 <= a_p0)) { + Temporary1 = a_p0; + } + else { + Temporary1 = b_p1; + } + + result_33557153 = Temporary1; + break BeforeRet; + }; + + return result_33557153; + +} +var ConstSet63 = setConstr(13, 10, 47); +var ConstSet64 = setConstr(2, 1); +var ConstSet65 = setConstr([65, 90], [97, 122], 95, 58, [128, 255]); + +function addChar(x_p0, c_p1) { + x_p0.push(c_p1); + + +} +var ConstSet66 = setConstr([65, 90], [97, 122], [48, 57], 46, 45, 95, 58, [128, 255]); +var ConstSet67 = setConstr([65, 90], [97, 122], 95, 58, [128, 255]); +var ConstSet68 = setConstr([48, 57]); +var ConstSet69 = setConstr(2, 4, 12); + +function eqStrings(a_p0, b_p1) { + if (a_p0 == b_p1) return true; + if (a_p0 === null && b_p1.length == 0) return true; + if (b_p1 === null && a_p0.length == 0) return true; + if ((!a_p0) || (!b_p1)) return false; + var alen = a_p0.length; + if (alen != b_p1.length) return false; + for (var i = 0; i < alen; ++i) + if (a_p0[i] != b_p1[i]) return false; + return true; + + + +} +var ConstSet70 = setConstr(39, 34); +var ConstSet71 = setConstr(34, 39, 96, 61, 60, 62, 32, 0, 9, 10, 12, 12); +var ConstSet72 = setConstr(2); +var ConstSet73 = setConstr(2); +var ConstSet74 = setConstr(2); +var ConstSet75 = setConstr(2); +var ConstSet76 = setConstr(0, 1, 5, 3, 4); +var ConstSet77 = setConstr(0, 1, 5, 3, 4); +var ConstSet78 = setConstr(2); +var ConstSet79 = setConstr([65, 90]); +var ConstSet80 = setConstr([65, 90]); +var ConstSet81 = setConstr([65, 90]); +var ConstSet82 = setConstr(2); +var ConstSet83 = setConstr(0, 1, 5, 3, 4); +var ConstSet84 = setConstr(0, 1, 5, 3, 4); +var ConstSet85 = setConstr(true); +var ConstSet86 = setConstr(true); +var ConstSet87 = setConstr(true); +var ConstSet88 = setConstr(true); +var ConstSet89 = setConstr([65, 90], [97, 122]); + var Letters_1006632974 = nimCopy(null, ConstSet89, NTI1006632964); +var ConstSet90 = setConstr(true); +var ConstSet91 = setConstr(true); +var ConstSet92 = setConstr(true); +var ConstSet93 = setConstr(true); +var ConstSet94 = setConstr(true); +var ConstSet95 = setConstr(12, 1); +var ConstSet96 = setConstr(true); +var ConstSet97 = setConstr(true); +var ConstSet98 = setConstr(40, 91, 123, 58); + var IdStarts_989855928 = nimCopy(null, ConstSet98, NTI989856090); +var ConstSet99 = setConstr([97, 122], [65, 90], [48, 57], 45, 95, 58, 46); +var ConstSet100 = setConstr(true); +var ConstSet101 = setConstr(true); +var ConstSet102 = setConstr(true); +var ConstSet103 = setConstr(true); + var defaultParserOptions_1157627941 = {curlyNoHtmlEscape: false, insertLineBreaks: false, inlineHtmlHandler: null, codeBlockLanguageHandler: null, setLinkHandler: null, disableTextAlignExtension: false}; +var ConstSet104 = setConstr(true); +var ConstSet105 = setConstr(true); +var ConstSet106 = setConstr(true); +var ConstSet107 = setConstr(true); +var ConstSet108 = setConstr(true); +var ConstSet109 = setConstr(true); +var ConstSet110 = setConstr(true); +var ConstSet111 = setConstr(true); +var objectID_788529329 = [0]; + +function input__converter_u1765() { + var result_536872678 = null; + + result_536872678 = document.getElementById("input").value; + + return result_536872678; + +} + +function isFatPointer__system_u2874(ti_p0) { + var result_33557308 = false; + + BeforeRet: { + result_33557308 = !((ConstSet1[ti_p0.base.kind] != undefined)); + break BeforeRet; + }; + + return result_33557308; + +} + +function nimCopyAux(dest_p0, src_p1, n_p2) { + switch (n_p2.kind) { + case 0: + break; + case 1: + dest_p0[n_p2.offset] = nimCopy(dest_p0[n_p2.offset], src_p1[n_p2.offset], n_p2.typ); + + break; + case 2: + for (var i = 0; i < n_p2.sons.length; i++) { + nimCopyAux(dest_p0, src_p1, n_p2.sons[i]); + } + + break; + case 3: + dest_p0[n_p2.offset] = nimCopy(dest_p0[n_p2.offset], src_p1[n_p2.offset], n_p2.typ); + for (var i = 0; i < n_p2.sons.length; ++i) { + nimCopyAux(dest_p0, src_p1, n_p2.sons[i][1]); + } + + break; + } + + +} + +function initMargraveParser__OOZsrcZmargraveZparserZdefs_u38(text_p0) { + var result_1157627944 = ({options: ({curlyNoHtmlEscape: false, insertLineBreaks: false, inlineHtmlHandler: null, codeBlockLanguageHandler: null, setLinkHandler: null, disableTextAlignExtension: false}), str: null, pos: 0, contextStack: [], linkReferrers: ({data: [], counter: 0})}); + + result_1157627944 = nimCopy(result_1157627944, {str: text_p0, pos: 0, options: ({curlyNoHtmlEscape: false, insertLineBreaks: false, inlineHtmlHandler: null, codeBlockLanguageHandler: null, setLinkHandler: null, disableTextAlignExtension: false}), contextStack: [], linkReferrers: ({data: [], counter: 0})}, NTI1157627909); + + return result_1157627944; + +} + +function add__system_u1943(x_p0, x_p0_Idx, y_p1) { + if (x_p0[x_p0_Idx] === null) { x_p0[x_p0_Idx] = []; } + var off = x_p0[x_p0_Idx].length; + x_p0[x_p0_Idx].length += y_p1.length; + for (var i = 0; i < y_p1.length; ++i) { + x_p0[x_p0_Idx][off+i] = y_p1.charCodeAt(i); + } + + + +} + +function newSeq__system_u2516(len_p0) { + var result_33556952 = []; + + result_33556952 = new Array(len_p0); for (var i = 0 ; i < len_p0 ; ++i) { result_33556952[i] = null; } + return result_33556952; + +} + +function unhandledException(e_p0) { + var buf_33556667 = [[]]; + if (!(((e_p0.message).length == 0))) { + buf_33556667[0].push.apply(buf_33556667[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110,58,32]);; + buf_33556667[0].push.apply(buf_33556667[0], e_p0.message);; + } + else { + buf_33556667[0].push.apply(buf_33556667[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110]);; + } + + buf_33556667[0].push.apply(buf_33556667[0], [32,91]);; + add__system_u1943(buf_33556667, 0, e_p0.name); + buf_33556667[0].push.apply(buf_33556667[0], [93,10]);; + var cbuf_33556668 = toJSStr(buf_33556667[0]); + if (typeof(Error) !== "undefined") { + throw new Error(cbuf_33556668); + } + else { + throw cbuf_33556668; + } + + + +} + +function addChars__stdZprivateZdigitsutils_u202(result_p0, result_p0_Idx, x_p1, start_p2, n_p3) { + var Temporary1; + + var old_301990096 = (result_p0[result_p0_Idx]).length; + if (result_p0[result_p0_Idx].length < (Temporary1 = (old_301990096 + n_p3), Temporary1)) { for (var i = result_p0[result_p0_Idx].length; i < Temporary1; ++i) result_p0[result_p0_Idx].push(0); } + else {result_p0[result_p0_Idx].length = Temporary1; }; + Label2: { + var iHEX60gensym4_301990110 = 0; + var i_536872782 = 0; + Label3: { + Label4: while (true) { + if (!(i_536872782 < n_p3)) break Label4; + iHEX60gensym4_301990110 = i_536872782; + result_p0[result_p0_Idx][(old_301990096 + iHEX60gensym4_301990110)] = x_p1.charCodeAt((start_p2 + iHEX60gensym4_301990110)); + i_536872782 += 1; + } + }; + }; + + +} + +function addChars__stdZprivateZdigitsutils_u198(result_p0, result_p0_Idx, x_p1) { + addChars__stdZprivateZdigitsutils_u202(result_p0, result_p0_Idx, x_p1, 0, ((x_p1) == null ? 0 : (x_p1).length)); + + +} + +function addInt__stdZprivateZdigitsutils_u223(result_p0, result_p0_Idx, x_p1) { + addChars__stdZprivateZdigitsutils_u198(result_p0, result_p0_Idx, ((x_p1) + "")); + + +} + +function addInt__stdZprivateZdigitsutils_u241(result_p0, result_p0_Idx, x_p1) { + addInt__stdZprivateZdigitsutils_u223(result_p0, result_p0_Idx, BigInt(x_p1)); + + +} + +function HEX24__systemZdollars_u8(x_p0) { + var result_369098762 = [[]]; + + addInt__stdZprivateZdigitsutils_u241(result_369098762, 0, x_p0); + + return result_369098762[0]; + +} + +function reprEnum(e_p0, typ_p1) { + var result_33557621 = []; + + var tmp_33557622 = false; + var item_33557623 = typ_p1.node.sons[e_p0]; + tmp_33557622 = item_33557623 !== undefined; + if (tmp_33557622) { + result_33557621 = nimCopy(null, makeNimstrLit(item_33557623.name), NTI33554449); + } + else { + result_33557621 = nimCopy(null, (HEX24__systemZdollars_u8(e_p0)).concat([32,40,105,110,118,97,108,105,100,32,100,97,116,97,33,41]), NTI33554449); + } + + + return result_33557621; + +} + +function anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, offset_p1) { + var result_1174405615 = false; + + result_1174405615 = ((parser_p0.pos + offset_p1) < ((parser_p0.str) == null ? 0 : (parser_p0.str).length)); + + return result_1174405615; + +} + +function peekMatch__OOZsrcZmargraveZparserZutils_u511(parser_p0, pat_p1, offset_p2) { + var result_1174405635 = false; + + result_1174405635 = (anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, offset_p2) && (pat_p1[parser_p0.str.charCodeAt((parser_p0.pos + offset_p2))] != undefined)); + + return result_1174405635; + +} + +function nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, pat_p1, offset_p2) { + var result_1174405745 = false; + + result_1174405745 = peekMatch__OOZsrcZmargraveZparserZutils_u511(parser_p0, pat_p1, offset_p2); + if (result_1174405745) { + parser_p0.pos += (offset_p2 + 1); + } + + + return result_1174405745; + +} + +function peekMatch__OOZsrcZmargraveZparserZutils_u506(parser_p0, pat_p1, offset_p2) { + var result_1174405630 = false; + + result_1174405630 = (anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, offset_p2) && (parser_p0.str.charCodeAt((parser_p0.pos + offset_p2)) == pat_p1)); + + return result_1174405630; + +} + +function nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, pat_p1, offset_p2) { + var result_1174405736 = false; + + result_1174405736 = peekMatch__OOZsrcZmargraveZparserZutils_u506(parser_p0, pat_p1, offset_p2); + if (result_1174405736) { + parser_p0.pos += (offset_p2 + 1); + } + + + return result_1174405736; + +} + +function HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(c_p0, ind_p1) { + var result_704643100 = null; + + result_704643100 = c_p0.substring(ind_p1.a, (ind_p1.b + 1)); + + return result_704643100; + +} + +function HEX2EHEX2E__stdZstrbasics_u48(a_p0, b_p1) { + var result_1090519093 = ({a: 0, b: 0}); + + result_1090519093 = nimCopy(result_1090519093, {a: a_p0, b: b_p1}, NTI704643100); + + return result_1090519093; + +} + +function peekMatch__OOZsrcZmargraveZparserZutils_u546(parser_p0, pat_p1, offset_p2) { + var Temporary1; + + var result_1174405670 = false; + + if (!anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, ((offset_p2 + (pat_p1).length) - 1))) Temporary1 = false; else { Temporary1 = (HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p0.str, HEX2EHEX2E__stdZstrbasics_u48((parser_p0.pos + offset_p2), ((parser_p0.pos + offset_p2) + (pat_p1).length) - 1)) == toJSStr(pat_p1)); } result_1174405670 = Temporary1; + + return result_1174405670; + +} + +function nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, pat_p1, offset_p2) { + var result_1174405774 = false; + + result_1174405774 = peekMatch__OOZsrcZmargraveZparserZutils_u546(parser_p0, pat_p1, offset_p2); + if (result_1174405774) { + parser_p0.pos += (offset_p2 + (pat_p1).length); + } + + + return result_1174405774; + +} + +function HEX5BHEX5D__OOZsrcZmargraveZelement_u2730(s_p0, i_p1) { + var result_754977454 = null; + var result_754977454_Idx = 0; + + result_754977454 = s_p0; result_754977454_Idx = ((s_p0).length - i_p1); + + return [result_754977454, result_754977454_Idx]; + +} + +function HEX5BHEX5D__OOZsrcZmargraveZelement_u2726(elem_p0, i_p1) { + var Temporary1; + var Temporary2; + + var result_754977449 = null; + + var Temporary1 = elem_p0; + if (ConstSet7[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + result_754977449 = (Temporary2 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2730(Temporary1.content, i_p1), Temporary2)[0][Temporary2[1]]; + + return result_754977449; + +} + +function add__OOZsrcZmargraveZelement_u2786(elem_p0, cont_p1) { + var Temporary1; + + var Temporary1 = elem_p0; + if (ConstSet11[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + Temporary1.content.push(cont_p1);; + + +} + +function newElem__OOZsrcZmargraveZelement_u114(tag_p0, content_p1) { + var result_754974841 = null; + + result_754974841 = {isText: false, tag: tag_p0, content: nimCopy(null, content_p1, NTI754974766), attrs: ({data: [], counter: 0, first: 0, last: 0}), str: null}; + + return result_754974841; + +} + +function newStr__OOZsrcZmargraveZelement_u57(s_p0) { + var result_754974779 = null; + + result_754974779 = {isText: true, str: s_p0, tag: 0, attrs: ({data: [], counter: 0, first: 0, last: 0}), content: []}; + + return result_754974779; + +} + +function add__OOZsrcZmargraveZelement_u2820(elem_p0, str_p1) { + var Temporary1; + + var Temporary1 = elem_p0; + if (ConstSet12[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + Temporary1.content.push(newStr__OOZsrcZmargraveZelement_u57(str_p1));; + + +} + +function addNewline__converter_u110(parser_p0, elem_p2) { + var options_536871031 = nimCopy(null, parser_p0.options, NTI1157627908); + if (options_536871031.insertLineBreaks) { + add__OOZsrcZmargraveZelement_u2786(elem_p2, newElem__OOZsrcZmargraveZelement_u114(2, [])); + } + else { + add__OOZsrcZmargraveZelement_u2820(elem_p2, "\n"); + } + + + +} + +function add__OOZsrcZmargraveZelement_u2796(x_p0, x_p0_Idx, y_p1) { + var Temporary1; + + var xl_754977524 = (x_p0[x_p0_Idx]).length; + if (x_p0[x_p0_Idx].length < (Temporary1 = (xl_754977524 + (y_p1).length), Temporary1)) { for (var i = x_p0[x_p0_Idx].length ; i < Temporary1 ; ++i) x_p0[x_p0_Idx].push(null); } + else { x_p0[x_p0_Idx].length = Temporary1; }; + Label2: { + var i_754977539 = 0; + var colontmp__536872785 = 0; + colontmp__536872785 = (y_p1).length - 1; + var res_536872786 = 0; + Label3: { + Label4: while (true) { + if (!(res_536872786 <= colontmp__536872785)) break Label4; + i_754977539 = res_536872786; + x_p0[x_p0_Idx][(xl_754977524 + i_754977539)] = y_p1[i_754977539]; + res_536872786 += 1; + } + }; + }; + + +} + +function add__OOZsrcZmargraveZelement_u2793(elem_p0, cont_p1) { + var Temporary1; + + var Temporary1 = elem_p0; + if (ConstSet13[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + add__OOZsrcZmargraveZelement_u2796(Temporary1, "content", cont_p1); + + +} + +function anyPrev__OOZsrcZmargraveZparserZutils_u496(parser_p0, offset_p1) { + var result_1174405619 = false; + + result_1174405619 = (0 <= ((parser_p0.pos + offset_p1) - 1)); + + return result_1174405619; + +} + +function peekPrevMatch__OOZsrcZmargraveZparserZutils_u586(parser_p0, pat_p1, offset_p2) { + var result_1174405711 = false; + + result_1174405711 = (anyPrev__OOZsrcZmargraveZparserZutils_u496(parser_p0, offset_p2) && peekMatch__OOZsrcZmargraveZparserZutils_u511(parser_p0, pat_p1, (offset_p2 - 1))); + + return result_1174405711; + +} + +function prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, offset_p1) { + var result_1174405705 = false; + + result_1174405705 = (!(anyPrev__OOZsrcZmargraveZparserZutils_u496(parser_p0, offset_p1)) || peekPrevMatch__OOZsrcZmargraveZparserZutils_u586(parser_p0, ConstSet14, offset_p1)); + + return result_1174405705; + +} + +function nextWhitespace__OOZsrcZmargraveZparserZutils_u592(parser_p0, offset_p1) { + var result_1174405715 = false; + + result_1174405715 = (!(anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, offset_p1)) || peekMatch__OOZsrcZmargraveZparserZutils_u511(parser_p0, ConstSet15, (offset_p1 + 1))); + + return result_1174405715; + +} + +function surroundedWhitespace__OOZsrcZmargraveZparserZutils_u596(parser_p0, offset_p1) { + var result_1174405719 = false; + + result_1174405719 = (prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, offset_p1) && nextWhitespace__OOZsrcZmargraveZparserZutils_u592(parser_p0, offset_p1)); + + return result_1174405719; + +} + +function add__converter_u899(x_p0, x_p0_Idx) { + if (null != "*") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "*"; else x_p0[x_p0_Idx] += "*"; }; + + +} + +function onlyNextWhitespace__OOZsrcZmargraveZparserZutils_u604(parser_p0, offset_p1) { + var result_1174405727 = false; + + result_1174405727 = (!(prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, offset_p1)) && nextWhitespace__OOZsrcZmargraveZparserZutils_u592(parser_p0, offset_p1)); + + return result_1174405727; + +} + +function add__converter_u930(x_p0, x_p0_Idx) { + if (null != "_") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "_"; else x_p0[x_p0_Idx] += "_"; }; + + +} + +function add__OOZsrcZmargraveZcommon_u8(x_p0, x_p0_Idx, y_p1) { + var Temporary1; + + if (null != (Temporary1 = String.fromCharCode(y_p1), Temporary1)) { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = Temporary1; else x_p0[x_p0_Idx] += Temporary1; }; + + +} + +function peekMatch__OOZsrcZmargraveZparserZutils_u520(parser_p0, pat_p1, offset_p2, len_p3) { + var Temporary1; + + var result_1174405645 = false; + + BeforeRet: { + if (anyNext__OOZsrcZmargraveZparserZutils_u492(parser_p0, ((offset_p2 + len_p3) - 1))) { + Label2: { + var i_1174405650 = 0; + var colontmp__536872910 = 0; + colontmp__536872910 = len_p3; + var i_536872911 = 0; + Label3: { + Label4: while (true) { + if (!(i_536872911 < colontmp__536872910)) break Label4; + i_1174405650 = i_536872911; + if (!((parser_p0.str.charCodeAt((parser_p0.pos + (offset_p2 + i_1174405650))) == pat_p1))) { + result_1174405645 = false; + break BeforeRet; + } + + i_536872911 += 1; + } + }; + }; + Temporary1 = true; + } + else { + Temporary1 = false; + } + + result_1174405645 = Temporary1; + }; + + return result_1174405645; + +} + +function nextMatch__OOZsrcZmargraveZparserZutils_u630(parser_p0, pat_p1, offset_p2, len_p3) { + var result_1174405755 = false; + + result_1174405755 = peekMatch__OOZsrcZmargraveZparserZutils_u520(parser_p0, pat_p1, offset_p2, len_p3); + if (result_1174405755) { + parser_p0.pos += (offset_p2 + len_p3); + } + + + return result_1174405755; + +} + +function parseCodeBlockStr__converter_u995(parser_p0, delimChar_p2) { + var Temporary10; + var Temporary11; + + var result_536871912 = {Field0: null, Field1: null}; + + BeforeRet: { + var colontmp__536872902 = ""; + var colontmp__536872903 = ""; + result_536871912 = nimCopy(result_536871912, {Field0: colontmp__536872902, Field1: colontmp__536872903}, NTI989855792); + var delimLen_536871913 = 3; + Label1: { + Label2: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, delimChar_p2, 0)) break Label2; + delimLen_536871913 += 1; + } + }; + Label3: { + Label4: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, Whitespace_1006632973, 0)) break Label4; + } + }; + var options_536871925 = nimCopy(null, parser_p0.options, NTI1157627908); + if (!((options_536871925.codeBlockLanguageHandler == null))) { + Label5: { + Label6: while (true) { + var ch_536871930 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, ConstSet20, 0)) break Label6; + add__OOZsrcZmargraveZcommon_u8(result_536871912, "Field0", ch_536871930); + } + }; + } + else { + } + + Label7: { + var ch_536871931 = 0; + Label8: { + Label9: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label9; + ch_536871931 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (nextMatch__OOZsrcZmargraveZparserZutils_u630(parser_p0, delimChar_p2, 0, delimLen_536871913)) { + parser_p0.pos -= 1; + break BeforeRet; + } + else { + switch (ch_536871931) { + case 62: + Temporary10 = ">"; + break; + case 60: + Temporary10 = "<"; + break; + case 38: + Temporary10 = "&"; + break; + default: + Temporary10 = String.fromCharCode(ch_536871931); + break; + } + if (null != (Temporary11 = Temporary10, Temporary11)) { if (null == result_536871912.Field1) result_536871912.Field1 = Temporary11; else result_536871912.Field1 += Temporary11; }; + } + + parser_p0.pos += 1; + } + }; + }; + }; + + return result_536871912; + +} + +function parseCodeBlock__converter_u989(parser_p0, delimChar_p2) { + var result_536871906 = null; + + var str_536871937 = parseCodeBlockStr__converter_u995(parser_p0, delimChar_p2); + result_536871906 = newElem__OOZsrcZmargraveZelement_u114(17, [newStr__OOZsrcZmargraveZelement_u57(str_536871937.Field1)]); + var options_536871949 = nimCopy(null, parser_p0.options, NTI1157627908); + if (!((options_536871949.codeBlockLanguageHandler == null))) { + if (!((((str_536871937.Field0) == null ? 0 : (str_536871937.Field0).length) == 0))) { + options_536871949.codeBlockLanguageHandler(result_536871906, str_536871937.Field0); + } + + } + else { + } + + + return result_536871906; + +} + +function parseAux__converter_u157(tag_p0, del_p1, parser_p2, acceptedReasons_p3) { + var Temporary1; + var Temporary2; + + var result_536871074 = 0; + + var currentPos_536871075 = parser_p2.pos; + var tmpTuple_536871082 = parseDelimed__converter_u126(parser_p2, del_p1, this.singleLine1); + var finishReason_536871083 = tmpTuple_536871082["Field0"]; + var parsedElems_536871084 = nimCopy(null, tmpTuple_536871082["Field1"], NTI989855827); + if ((acceptedReasons_p3[finishReason_536871083] != undefined)) { + this.elems2.push(newElem__OOZsrcZmargraveZelement_u114(tag_p0, parsedElems_536871084));; + this.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + this.elems2.push(this.lastStr3);; + result_536871074 = 0; + } + else { + var Temporary1 = this.lastStr3; + if (ConstSet21[Temporary1.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + if (null != (Temporary2 = HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p2.str, HEX2EHEX2E__stdZstrbasics_u48(this.initialPos4, currentPos_536871075 - 1)), Temporary2)) { if (null == Temporary1.str) Temporary1.str = Temporary2; else Temporary1.str += Temporary2; }; + add__OOZsrcZmargraveZelement_u2796(this, "elems2", parsedElems_536871084); + this.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + this.elems2.push(this.lastStr3);; + result_536871074 = finishReason_536871083; + } + + + return result_536871074; + +} + +function add__converter_u348(x_p0, x_p0_Idx) { + if (null != "(") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "("; else x_p0[x_p0_Idx] += "("; }; + + +} + +function add__converter_u361(x_p0, x_p0_Idx) { + if (null != ")") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = ")"; else x_p0[x_p0_Idx] += ")"; }; + + +} + +function add__converter_u396(x_p0, x_p0_Idx) { + if (null != "\\") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "\\"; else x_p0[x_p0_Idx] += "\\"; }; + + +} + +function parseLink__converter_u301(parser_p0, failOnNewline_p2) { + var Temporary6; + + var result_536871218 = {Field0: false, Field1: ({url: null, tip: null, altUrls: []})}; + + BeforeRet: { + var state_536871228 = 0; + var delim_536871229 = 0; + var escaped_536871230 = false; + var openparens_536871231 = 1; + var urlNum_536871232 = (-1); + result_536871218.Field1.url = ""; + Label1: { + Label2: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, ConstSet32, 0)) break Label2; + } + }; + Label3: { + var ch_536871241 = 0; + Label4: { + Label5: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label5; + ch_536871241 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + switch (state_536871228) { + case 0: + switch (ch_536871241) { + case 9: + case 11: + case 12: + case 13: + case 32: + break; + case 10: + result_536871218.Field0 = failOnNewline_p2; + break BeforeRet; + break; + default: + parser_p0.pos -= 1; + state_536871228 = 1; + break; + } + break; + case 1: + switch (ch_536871241) { + case 9: + case 11: + case 12: + case 13: + case 32: + state_536871228 = 2; + break; + case 10: + result_536871218.Field0 = failOnNewline_p2; + break BeforeRet; + break; + case 40: + openparens_536871231 += 1; + if ((urlNum_536871232 < 0)) { + add__converter_u348(result_536871218.Field1, "url"); + } + else { + add__converter_u348(result_536871218.Field1.altUrls, urlNum_536871232); + } + + break; + case 41: + openparens_536871231 -= 1; + if ((openparens_536871231 == 0)) { + result_536871218.Field0 = true; + break BeforeRet; + } + else { + if ((urlNum_536871232 < 0)) { + add__converter_u361(result_536871218.Field1, "url"); + } + else { + add__converter_u361(result_536871218.Field1.altUrls, urlNum_536871232); + } + + } + + break; + default: + if ((urlNum_536871232 < 0)) { + add__OOZsrcZmargraveZcommon_u8(result_536871218.Field1, "url", ch_536871241); + } + else { + add__OOZsrcZmargraveZcommon_u8(result_536871218.Field1.altUrls, urlNum_536871232, ch_536871241); + } + + break; + } + break; + case 2: + switch (ch_536871241) { + case 34: + case 39: + case 60: + state_536871228 = 3; + if ((ch_536871241 == 60)) { + Temporary6 = 62; + } + else { + Temporary6 = ch_536871241; + } + + delim_536871229 = Temporary6; + break; + case 124: + state_536871228 = 0; + result_536871218.Field1.altUrls.push("");; + urlNum_536871232 += 1; + break; + case 41: + result_536871218.Field0 = true; + break BeforeRet; + break; + case 10: + result_536871218.Field0 = failOnNewline_p2; + break BeforeRet; + break; + case 9: + case 11: + case 12: + case 13: + case 32: + break; + default: + parser_p0.pos -= 1; + state_536871228 = 3; + delim_536871229 = 41; + break; + } + break; + case 3: + if (!(escaped_536871230)) { + if ((ch_536871241 == 92)) { + escaped_536871230 = true; + } + else { + if ((ch_536871241 == delim_536871229)) { + if ((delim_536871229 == 41)) { + parser_p0.pos -= 1; + } + + state_536871228 = 4; + } + else { + if ((ch_536871241 == 10)) { + result_536871218.Field0 = failOnNewline_p2; + break BeforeRet; + } + else { + add__OOZsrcZmargraveZcommon_u8(result_536871218.Field1, "tip", ch_536871241); + } + }} + } + else { + if (!((setConstr(92, delim_536871229)[ch_536871241] != undefined))) { + add__converter_u396(result_536871218.Field1, "tip"); + } + + add__OOZsrcZmargraveZcommon_u8(result_536871218.Field1, "tip", ch_536871241); + escaped_536871230 = false; + } + + break; + case 4: + switch (ch_536871241) { + case 41: + result_536871218.Field0 = true; + break BeforeRet; + break; + case 10: + result_536871218.Field0 = failOnNewline_p2; + break BeforeRet; + break; + case 9: + case 11: + case 12: + case 13: + case 32: + break; + default: + result_536871218.Field0 = false; + break BeforeRet; + break; + } + break; + } + parser_p0.pos += 1; + } + }; + }; + result_536871218.Field0 = failOnNewline_p2; + }; + + return result_536871218; + +} + +function nextPowerOfTwo__pureZmath_u222(x_p0) { + var result_838861024 = 0; + + result_838861024 = (x_p0 - 1); + result_838861024 = (result_838861024 | (result_838861024 >> 16)); + result_838861024 = (result_838861024 | (result_838861024 >> 8)); + result_838861024 = (result_838861024 | (result_838861024 >> 4)); + result_838861024 = (result_838861024 | (result_838861024 >> 2)); + result_838861024 = (result_838861024 | (result_838861024 >> 1)); + result_838861024 += (1 + ((x_p0 <= 0) ? 1 : 0)); + + return result_838861024; + +} + +function slotsNeeded__pureZcollectionsZtables_u42(count_p0) { + var result_771751980 = 0; + + result_771751980 = nextPowerOfTwo__pureZmath_u222((Math.trunc((count_p0 * 3) / 2) + 4)); + + return result_771751980; + +} + +function lenU__pureZhashes_u531(s_p0) { + var result_788529685 = 0n; + + result_788529685 = BigInt.asUintN(64, BigInt((s_p0).length)); + + return result_788529685; + +} + +function load8e__pureZhashes_u491(s_p0, o_p1) { + var result_788529646 = 0n; + + result_788529646 = (((((((BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 7)]) << BigInt(56)) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 6)]) << BigInt(48))) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 5)]) << BigInt(40))) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 4)]) << BigInt(32))) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 3)]) << BigInt(24))) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 2)]) << BigInt(16))) | BigInt.asUintN(64, BigInt(s_p0[(o_p1 + 1)]) << BigInt(8))) | BigInt(s_p0[(o_p1 + 0)])); + + return result_788529646; + +} + +function load8__pureZhashes_u527(s_p0, o_p1) { + var result_788529682 = 0n; + + result_788529682 = load8e__pureZhashes_u491(s_p0, o_p1); + + return result_788529682; + +} + +function rotR__pureZhashes_u544(v_p0, bits_p1) { + var result_788529699 = 0n; + + result_788529699 = ((v_p0 >> BigInt(bits_p1)) | BigInt.asUintN(64, v_p0 << BigInt((64 - bits_p1)))); + + return result_788529699; + +} + +function len16__pureZhashes_u556(u_p0, v_p1, mul_p2) { + var result_788529712 = 0n; + + var a_788529713 = BigInt.asUintN(64, ((u_p0 ^ v_p1) * mul_p2)); + a_788529713 = (a_788529713 ^ (a_788529713 >> BigInt(47))); + var b_788529718 = BigInt.asUintN(64, ((v_p1 ^ a_788529713) * mul_p2)); + b_788529718 = (b_788529718 ^ (b_788529718 >> BigInt(47))); + result_788529712 = BigInt.asUintN(64, (b_788529718 * mul_p2)); + + return result_788529712; + +} + +function load4e__pureZhashes_u475(s_p0, o_p1) { + var result_788529630 = 0; + + result_788529630 = (((((((((s_p0[(o_p1 + 3)] >>> 0) << 24) >>> 0) | (((s_p0[(o_p1 + 2)] >>> 0) << 16) >>> 0)) >>> 0) | (((s_p0[(o_p1 + 1)] >>> 0) << 8) >>> 0)) >>> 0) | (s_p0[(o_p1 + 0)] >>> 0)) >>> 0); + + return result_788529630; + +} + +function load4__pureZhashes_u523(s_p0, o_p1) { + var result_788529678 = 0; + + result_788529678 = load4e__pureZhashes_u475(s_p0, o_p1); + + return result_788529678; + +} + +function shiftMix__pureZhashes_u537(v_p0) { + var result_788529691 = 0n; + + result_788529691 = (v_p0 ^ (v_p0 >> BigInt(47))); + + return result_788529691; + +} + +function len0_16__pureZhashes_u571(s_p0) { + var Temporary1; + + var result_788529725 = 0n; + + if ((8 <= (s_p0).length)) { + var mul_788529729 = BigInt.asUintN(64, (11160318154034397263n + BigInt.asUintN(64, (2n * lenU__pureZhashes_u531(s_p0))))); + var a_788529730 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, 0) + 11160318154034397263n)); + var b_788529734 = load8__pureZhashes_u527(s_p0, ((s_p0).length - 8)); + var c_788529735 = BigInt.asUintN(64, (BigInt.asUintN(64, (rotR__pureZhashes_u544(b_788529734, 37) * mul_788529729)) + a_788529730)); + var d_788529736 = BigInt.asUintN(64, (BigInt.asUintN(64, (rotR__pureZhashes_u544(a_788529730, 25) + b_788529734)) * mul_788529729)); + Temporary1 = len16__pureZhashes_u556(c_788529735, d_788529736, mul_788529729); + } + else { + if ((4 <= (s_p0).length)) { + var mul_788529740 = BigInt.asUintN(64, (11160318154034397263n + BigInt.asUintN(64, (2n * lenU__pureZhashes_u531(s_p0))))); + var a_788529741 = BigInt(load4__pureZhashes_u523(s_p0, 0)); + Temporary1 = len16__pureZhashes_u556(BigInt.asUintN(64, (lenU__pureZhashes_u531(s_p0) + BigInt.asUintN(64, a_788529741 << BigInt(3)))), BigInt(load4__pureZhashes_u523(s_p0, ((s_p0).length - 4))), mul_788529740); + } + else { + if ((0 < (s_p0).length)) { + var a_788529752 = (s_p0[0] >>> 0); + var b_788529760 = (s_p0[((s_p0).length >> 1)] >>> 0); + var c_788529764 = (s_p0[((s_p0).length - 1)] >>> 0); + var y_788529769 = ((a_788529752 + ((b_788529760 << 8) >>> 0)) >>> 0); + var z_788529774 = BigInt.asUintN(64, (lenU__pureZhashes_u531(s_p0) + BigInt(((c_788529764 << 2) >>> 0)))); + Temporary1 = BigInt.asUintN(64, (shiftMix__pureZhashes_u537((BigInt.asUintN(64, (BigInt(y_788529769) * 11160318154034397263n)) ^ BigInt.asUintN(64, (z_788529774 * 14097894508562428199n)))) * 11160318154034397263n)); + } + else { + Temporary1 = 11160318154034397263n; + } + }} + result_788529725 = Temporary1; + + return result_788529725; + +} + +function len17_32__pureZhashes_u623(s_p0) { + var result_788529777 = 0n; + + var mul_788529778 = BigInt.asUintN(64, (11160318154034397263n + BigInt.asUintN(64, (2n * lenU__pureZhashes_u531(s_p0))))); + var a_788529779 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, 0) * 13011662864482103923n)); + var b_788529780 = load8__pureZhashes_u527(s_p0, 8); + var c_788529784 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, ((s_p0).length - 8)) * mul_788529778)); + var d_788529788 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, ((s_p0).length - 16)) * 11160318154034397263n)); + result_788529777 = len16__pureZhashes_u556(BigInt.asUintN(64, (BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (a_788529779 + b_788529780)), 43) + rotR__pureZhashes_u544(c_788529784, 30))) + d_788529788)), BigInt.asUintN(64, (BigInt.asUintN(64, (a_788529779 + rotR__pureZhashes_u544(BigInt.asUintN(64, (b_788529780 + 11160318154034397263n)), 18))) + c_788529784)), mul_788529778); + + return result_788529777; + +} + +function len33_64__pureZhashes_u637(s_p0) { + var result_788529791 = 0n; + + var mul_788529792 = BigInt.asUintN(64, (11160318154034397263n + BigInt.asUintN(64, (2n * lenU__pureZhashes_u531(s_p0))))); + var a_788529793 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, 0) * 11160318154034397263n)); + var b_788529794 = load8__pureZhashes_u527(s_p0, 8); + var c_788529798 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, ((s_p0).length - 8)) * mul_788529792)); + var d_788529802 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, ((s_p0).length - 16)) * 11160318154034397263n)); + var y_788529803 = BigInt.asUintN(64, (BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (a_788529793 + b_788529794)), 43) + rotR__pureZhashes_u544(c_788529798, 30))) + d_788529802)); + var z_788529804 = len16__pureZhashes_u556(y_788529803, BigInt.asUintN(64, (BigInt.asUintN(64, (a_788529793 + rotR__pureZhashes_u544(BigInt.asUintN(64, (b_788529794 + 11160318154034397263n)), 18))) + c_788529798)), mul_788529792); + var e_788529805 = BigInt.asUintN(64, (load8__pureZhashes_u527(s_p0, 16) * mul_788529792)); + var f_788529806 = load8__pureZhashes_u527(s_p0, 24); + var g_788529810 = BigInt.asUintN(64, (BigInt.asUintN(64, (y_788529803 + load8__pureZhashes_u527(s_p0, ((s_p0).length - 32)))) * mul_788529792)); + var h_788529814 = BigInt.asUintN(64, (BigInt.asUintN(64, (z_788529804 + load8__pureZhashes_u527(s_p0, ((s_p0).length - 24)))) * mul_788529792)); + result_788529791 = len16__pureZhashes_u556(BigInt.asUintN(64, (BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (e_788529805 + f_788529806)), 43) + rotR__pureZhashes_u544(g_788529810, 30))) + h_788529814)), BigInt.asUintN(64, (BigInt.asUintN(64, (e_788529805 + rotR__pureZhashes_u544(BigInt.asUintN(64, (f_788529806 + a_788529793)), 18))) + g_788529810)), mul_788529792); + + return result_788529791; + +} + +function weakLen32withSeeds2__pureZhashes_u668(w_p0, x_p1, y_p2, z_p3, a_p4, b_p5) { + var result_788529827 = {Field0: 0n, Field1: 0n}; + + var a_788529828 = BigInt.asUintN(64, (a_p4 + w_p0)); + var b_788529829 = rotR__pureZhashes_u544(BigInt.asUintN(64, (BigInt.asUintN(64, (b_p5 + a_788529828)) + z_p3)), 21); + var c_788529830 = a_788529828; + a_788529828 = BigInt.asUintN(64, a_788529828 + BigInt(x_p1)); + a_788529828 = BigInt.asUintN(64, a_788529828 + BigInt(y_p2)); + b_788529829 = BigInt.asUintN(64, b_788529829 + BigInt(rotR__pureZhashes_u544(a_788529828, 44))); + result_788529827["Field0"] = BigInt.asUintN(64, (a_788529828 + z_p3)); + result_788529827["Field1"] = BigInt.asUintN(64, (b_788529829 + c_788529830)); + + return result_788529827; + +} + +function weakLen32withSeeds__pureZhashes_u691(s_p0, o_p1, a_p2, b_p3) { + var result_788529848 = {Field0: 0n, Field1: 0n}; + + result_788529848 = nimCopy(result_788529848, weakLen32withSeeds2__pureZhashes_u668(load8__pureZhashes_u527(s_p0, o_p1), load8__pureZhashes_u527(s_p0, (o_p1 + 8)), load8__pureZhashes_u527(s_p0, (o_p1 + 16)), load8__pureZhashes_u527(s_p0, (o_p1 + 24)), a_p2, b_p3), NTI788529527); + + return result_788529848; + +} + +function hashFarm__pureZhashes_u714(s_p0) { + var result_788529868 = 0n; + + BeforeRet: { + if (((s_p0).length <= 16)) { + result_788529868 = len0_16__pureZhashes_u571(s_p0); + break BeforeRet; + } + + if (((s_p0).length <= 32)) { + result_788529868 = len17_32__pureZhashes_u623(s_p0); + break BeforeRet; + } + + if (((s_p0).length <= 64)) { + result_788529868 = len33_64__pureZhashes_u637(s_p0); + break BeforeRet; + } + + var o_788529879 = 0; + var x_788529880 = 81n; + var y_788529881 = 2480279821605975764n; + var z_788529882 = BigInt.asUintN(64, (shiftMix__pureZhashes_u537(BigInt.asUintN(64, (BigInt.asUintN(64, (y_788529881 * 11160318154034397263n)) + 113n))) * 11160318154034397263n)); + var v_788529883 = {Field0: 0n, Field1: 0n}; + var w_788529884 = {Field0: 0n, Field1: 0n}; + x_788529880 = BigInt.asUintN(64, (BigInt.asUintN(64, (x_788529880 * 11160318154034397263n)) + load8__pureZhashes_u527(s_p0, 0))); + var eos_788529888 = (Math.trunc(((s_p0).length - 1) / 64) * 64); + var last64_788529892 = ((eos_788529888 + (((s_p0).length - 1) & 63)) - 63); + Label1: { + Label2: while (true) { + if (!true) break Label2; + x_788529880 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (BigInt.asUintN(64, (BigInt.asUintN(64, (x_788529880 + y_788529881)) + v_788529883["Field0"])) + load8__pureZhashes_u527(s_p0, (o_788529879 + 8)))), 37) * 13011662864482103923n)); + y_788529881 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (BigInt.asUintN(64, (y_788529881 + v_788529883["Field1"])) + load8__pureZhashes_u527(s_p0, (o_788529879 + 48)))), 42) * 13011662864482103923n)); + x_788529880 = (x_788529880 ^ w_788529884["Field1"]); + y_788529881 = BigInt.asUintN(64, y_788529881 + BigInt(BigInt.asUintN(64, (v_788529883["Field0"] + load8__pureZhashes_u527(s_p0, (o_788529879 + 40)))))); + z_788529882 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (z_788529882 + w_788529884["Field0"])), 33) * 13011662864482103923n)); + v_788529883 = nimCopy(v_788529883, weakLen32withSeeds__pureZhashes_u691(s_p0, (o_788529879 + 0), BigInt.asUintN(64, (v_788529883["Field1"] * 13011662864482103923n)), BigInt.asUintN(64, (x_788529880 + w_788529884["Field0"]))), NTI788529527); + w_788529884 = nimCopy(w_788529884, weakLen32withSeeds__pureZhashes_u691(s_p0, (o_788529879 + 32), BigInt.asUintN(64, (z_788529882 + w_788529884["Field1"])), BigInt.asUintN(64, (y_788529881 + load8__pureZhashes_u527(s_p0, (o_788529879 + 16))))), NTI788529527); + var HEX3Atmp_536872923 = z_788529882; + z_788529882 = x_788529880; + x_788529880 = HEX3Atmp_536872923; + o_788529879 += 64; + if ((o_788529879 == eos_788529888)) { + break Label1; + } + + } + }; + var mul_788529910 = BigInt.asUintN(64, (13011662864482103923n + BigInt.asUintN(64, (z_788529882 & 255n) << BigInt(1)))); + o_788529879 = last64_788529892; + w_788529884["Field0"] = BigInt.asUintN(64, w_788529884["Field0"] + BigInt((BigInt.asUintN(64, (lenU__pureZhashes_u531(s_p0) - 1n)) & 63n))); + v_788529883["Field0"] = BigInt.asUintN(64, v_788529883["Field0"] + BigInt(w_788529884["Field0"])); + w_788529884["Field0"] = BigInt.asUintN(64, w_788529884["Field0"] + BigInt(v_788529883["Field0"])); + x_788529880 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (BigInt.asUintN(64, (BigInt.asUintN(64, (x_788529880 + y_788529881)) + v_788529883["Field0"])) + load8__pureZhashes_u527(s_p0, (o_788529879 + 8)))), 37) * mul_788529910)); + y_788529881 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (BigInt.asUintN(64, (y_788529881 + v_788529883["Field1"])) + load8__pureZhashes_u527(s_p0, (o_788529879 + 48)))), 42) * mul_788529910)); + x_788529880 = (x_788529880 ^ BigInt.asUintN(64, (w_788529884["Field1"] * 9n))); + y_788529881 = BigInt.asUintN(64, y_788529881 + BigInt(BigInt.asUintN(64, (BigInt.asUintN(64, (v_788529883["Field0"] * 9n)) + load8__pureZhashes_u527(s_p0, (o_788529879 + 40)))))); + z_788529882 = BigInt.asUintN(64, (rotR__pureZhashes_u544(BigInt.asUintN(64, (z_788529882 + w_788529884["Field0"])), 33) * mul_788529910)); + v_788529883 = nimCopy(v_788529883, weakLen32withSeeds__pureZhashes_u691(s_p0, (o_788529879 + 0), BigInt.asUintN(64, (v_788529883["Field1"] * mul_788529910)), BigInt.asUintN(64, (x_788529880 + w_788529884["Field0"]))), NTI788529527); + w_788529884 = nimCopy(w_788529884, weakLen32withSeeds__pureZhashes_u691(s_p0, (o_788529879 + 32), BigInt.asUintN(64, (z_788529882 + w_788529884["Field1"])), BigInt.asUintN(64, (y_788529881 + load8__pureZhashes_u527(s_p0, (o_788529879 + 16))))), NTI788529527); + var HEX3Atmp_536872924 = z_788529882; + z_788529882 = x_788529880; + x_788529880 = HEX3Atmp_536872924; + result_788529868 = len16__pureZhashes_u556(BigInt.asUintN(64, (BigInt.asUintN(64, (len16__pureZhashes_u556(v_788529883["Field0"], w_788529884["Field0"], mul_788529910) + BigInt.asUintN(64, (shiftMix__pureZhashes_u537(y_788529881) * 14097894508562428199n)))) + z_788529882)), BigInt.asUintN(64, (len16__pureZhashes_u556(v_788529883["Field1"], w_788529884["Field1"], mul_788529910) + x_788529880)), mul_788529910); + }; + + return result_788529868; + +} + +function hash__pureZhashes_u785(x_p0) { + var result_788529939 = 0; + + var xx_788529940 = cstrToNimstr(x_p0); + result_788529939 = Number(BigInt.asIntN(32, hashFarm__pureZhashes_u714((xx_788529940.slice(0, (xx_788529940).length - 1 + 1))))); + + return result_788529939; + +} + +function isFilled__pureZcollectionsZtables_u31(hcode_p0) { + var result_771751969 = false; + + result_771751969 = !((hcode_p0 == 0)); + + return result_771751969; + +} + +function nextTry__pureZcollectionsZtables_u34(h_p0, maxHash_p1) { + var result_771751973 = 0; + + result_771751973 = ((h_p0 + 1) & maxHash_p1); + + return result_771751973; + +} + +function rawGet__OOZsrcZmargraveZelement_u710(t_p0, key_p1, hc_p2, hc_p2_Idx) { + var result_754975436 = 0; + + BeforeRet: { + hc_p2[hc_p2_Idx] = hash__pureZhashes_u785(key_p1); + if ((hc_p2[hc_p2_Idx] == 0)) { + hc_p2[hc_p2_Idx] = 314159265; + } + + if (((t_p0.data).length == 0)) { + result_754975436 = (-1); + break BeforeRet; + } + + var h_754975486 = (hc_p2[hc_p2_Idx] & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[h_754975486].Field0)) break Label2; + if (((t_p0.data[h_754975486].Field0 == hc_p2[hc_p2_Idx]) && (t_p0.data[h_754975486].Field2 == key_p1))) { + result_754975436 = h_754975486; + break BeforeRet; + } + + h_754975486 = nextTry__pureZcollectionsZtables_u34(h_754975486, (t_p0.data).length - 1); + } + }; + result_754975436 = ((-1) - h_754975486); + }; + + return result_754975436; + +} + +function mustRehash__OOZsrcZmargraveZelement_u1016(t_p0) { + var result_754975739 = false; + + result_754975739 = ((((t_p0.data).length * 2) < (t_p0.counter * 3)) || (((t_p0.data).length - t_p0.counter) < 4)); + + return result_754975739; + +} + +function rawInsert__OOZsrcZmargraveZelement_u1548(t_p0, data_p1, data_p1_Idx, key_p2, val_p3, hc_p4, h_p5) { + data_p1[data_p1_Idx][h_p5].Field2 = key_p2; + data_p1[data_p1_Idx][h_p5].Field3 = val_p3; + data_p1[data_p1_Idx][h_p5].Field0 = hc_p4; + data_p1[data_p1_Idx][h_p5].Field1 = (-1); + if ((t_p0.first < 0)) { + t_p0.first = h_p5; + } + + if ((0 <= t_p0.last)) { + data_p1[data_p1_Idx][t_p0.last].Field1 = h_p5; + } + + t_p0.last = h_p5; + + +} + +function enlarge__OOZsrcZmargraveZelement_u1165(t_p0) { + var Temporary5; + var Temporary6; + + var n_754975891 = []; + n_754975891 = new Array(((t_p0.data).length * 2)); for (var i = 0 ; i < ((t_p0.data).length * 2) ; ++i) { n_754975891[i] = {Field0: 0, Field1: 0, Field2: null, Field3: null}; } var h_754975939 = t_p0.first; + t_p0.first = (-1); + t_p0.last = (-1); + var HEX3Atmp_536872927 = nimCopy(null, t_p0.data, NTI754974737); + t_p0.data = n_754975891; + n_754975891 = HEX3Atmp_536872927; + Label1: { + Label2: while (true) { + if (!(0 <= h_754975939)) break Label2; + var nxt_754975993 = n_754975891[h_754975939].Field1; + var eh_754976043 = n_754975891[h_754975939].Field0; + if (isFilled__pureZcollectionsZtables_u31(eh_754976043)) { + var j_754976047 = (eh_754976043 & (t_p0.data).length - 1); + Label3: { + Label4: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[j_754976047].Field0)) break Label4; + j_754976047 = nextTry__pureZcollectionsZtables_u34(j_754976047, (t_p0.data).length - 1); + } + }; + Temporary5 = n_754975891[h_754975939].Field2; + n_754975891[h_754975939].Field2 = null; + Temporary6 = n_754975891[h_754975939].Field3; + n_754975891[h_754975939].Field3 = null; + rawInsert__OOZsrcZmargraveZelement_u1548(t_p0, t_p0, "data", Temporary5, Temporary6, n_754975891[h_754975939].Field0, j_754976047); + } + + h_754975939 = nxt_754975993; + } + }; + + +} + +function rawGetKnownHC__OOZsrcZmargraveZelement_u1826(t_p0, key_p1, hc_p2) { + var result_754976552 = 0; + + BeforeRet: { + if (((t_p0.data).length == 0)) { + result_754976552 = (-1); + break BeforeRet; + } + + var h_754976599 = (hc_p2 & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[h_754976599].Field0)) break Label2; + if (((t_p0.data[h_754976599].Field0 == hc_p2) && (t_p0.data[h_754976599].Field2 == key_p1))) { + result_754976552 = h_754976599; + break BeforeRet; + } + + h_754976599 = nextTry__pureZcollectionsZtables_u34(h_754976599, (t_p0.data).length - 1); + } + }; + result_754976552 = ((-1) - h_754976599); + }; + + return result_754976552; + +} + +function HEX5BHEX5DHEX3D__OOZsrcZmargraveZelement_u641(t_p0, key_p1, val_p2) { + if (((t_p0.data).length == 0)) { + var correctSizeHEX60gensym4_754975411 = slotsNeeded__pureZcollectionsZtables_u42(32); + t_p0.counter = 0; + t_p0.data = new Array(correctSizeHEX60gensym4_754975411); for (var i = 0 ; i < correctSizeHEX60gensym4_754975411 ; ++i) { t_p0.data[i] = {Field0: 0, Field1: 0, Field2: null, Field3: null}; } t_p0.first = (-1); + t_p0.last = (-1); + } + + var hc_754975421 = [0]; + var index_754975637 = rawGet__OOZsrcZmargraveZelement_u710(t_p0, key_p1, hc_754975421, 0); + if ((0 <= index_754975637)) { + t_p0.data[index_754975637].Field3 = val_p2; + } + else { + if (((t_p0.data).length == 0)) { + var correctSizeHEX60gensym9_754975731 = slotsNeeded__pureZcollectionsZtables_u42(32); + t_p0.counter = 0; + t_p0.data = new Array(correctSizeHEX60gensym9_754975731); for (var i = 0 ; i < correctSizeHEX60gensym9_754975731 ; ++i) { t_p0.data[i] = {Field0: 0, Field1: 0, Field2: null, Field3: null}; } t_p0.first = (-1); + t_p0.last = (-1); + } + + if (mustRehash__OOZsrcZmargraveZelement_u1016(t_p0)) { + enlarge__OOZsrcZmargraveZelement_u1165(t_p0); + index_754975637 = rawGetKnownHC__OOZsrcZmargraveZelement_u1826(t_p0, key_p1, hc_754975421[0]); + } + + index_754975637 = ((-1) - index_754975637); + rawInsert__OOZsrcZmargraveZelement_u1548(t_p0, t_p0, "data", key_p1, val_p2, hc_754975421[0], index_754975637); + t_p0.counter += 1; + } + + + +} + +function attr__OOZsrcZmargraveZelement_u601(elem_p0, key_p1, val_p2) { + var Temporary1; + + var Temporary1 = elem_p0; + if (ConstSet34[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'attrs\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + HEX5BHEX5DHEX3D__OOZsrcZmargraveZelement_u641(Temporary1.attrs, key_p1, val_p2); + + +} + +function attrEscaped__OOZsrcZmargraveZelement_u2055(elem_p0, key_p1, val_p2) { + var esc_754976779 = [""]; + Label1: { + var v_754976780 = 0; + var iHEX60gensym13_536872918 = 0; + var nHEX60gensym13_536872919 = ((val_p2) == null ? 0 : (val_p2).length); + Label2: { + Label3: while (true) { + if (!(iHEX60gensym13_536872918 < nHEX60gensym13_536872919)) break Label3; + v_754976780 = val_p2.charCodeAt(iHEX60gensym13_536872918); + if ((v_754976780 == 34)) { + if (null != """) { if (null == esc_754976779[0]) esc_754976779[0] = """; else esc_754976779[0] += """; }; + } + else { + add__OOZsrcZmargraveZcommon_u8(esc_754976779, 0, v_754976780); + } + + iHEX60gensym13_536872918 += 1; + } + }; + }; + attr__OOZsrcZmargraveZelement_u601(elem_p0, key_p1, esc_754976779[0]); + + +} + +function find__OOZsrcZmargraveZparserZutils_u95(a_p0, item_p1) { + var result_1174405220 = 0; + + BeforeRet: { + result_1174405220 = 0; + Label1: { + var i_1174405234 = null; + var i_536872936 = 0; + Label2: { + Label3: while (true) { + if (!(i_536872936 < (a_p0).length)) break Label3; + i_1174405234 = a_p0[i_536872936]; + if ((i_1174405234 == item_p1)) { + break BeforeRet; + } + + result_1174405220 += 1; + i_536872936 += 1; + } + }; + }; + result_1174405220 = (-1); + }; + + return result_1174405220; + +} + +function contains__OOZsrcZmargraveZparserZutils_u90(a_p0, item_p1) { + var result_1174405214 = false; + + BeforeRet: { + result_1174405214 = (0 <= find__OOZsrcZmargraveZparserZutils_u95(a_p0, item_p1)); + break BeforeRet; + }; + + return result_1174405214; + +} + +function HEX5BHEX5D__OOZsrcZmargraveZcommon_u37(c_p0, ind_p1) { + var result_704643116 = null; + + result_704643116 = c_p0.substring((((c_p0) == null ? 0 : (c_p0).length) - ind_p1.a), ((((c_p0) == null ? 0 : (c_p0).length) - ind_p1.b) + 1)); + + return result_704643116; + +} + +function HEX2EHEX2E__OOZsrcZmargraveZparserZutils_u29(a_p0, b_p1) { + var result_1174405154 = ({a: 0, b: 0}); + + result_1174405154 = nimCopy(result_1174405154, {a: a_p0, b: b_p1}, NTI704643119); + + return result_1174405154; + +} + +function del__OOZsrcZmargraveZelement_u2165(t_p0, key_p1) { + var Temporary3; + var Temporary4; + + BeforeRet: { + if ((t_p0.counter == 0)) { + break BeforeRet; + } + + var n_754976892 = []; + n_754976892 = new Array((t_p0.data).length); for (var i = 0 ; i < (t_p0.data).length ; ++i) { n_754976892[i] = {Field0: 0, Field1: 0, Field2: null, Field3: null}; } var h_754976940 = t_p0.first; + t_p0.first = (-1); + t_p0.last = (-1); + var HEX3Atmp_536872939 = nimCopy(null, t_p0.data, NTI754974737); + t_p0.data = n_754976892; + n_754976892 = HEX3Atmp_536872939; + var resHEX60gensym17_754976946 = 0; + resHEX60gensym17_754976946 = hash__pureZhashes_u785(key_p1); + if ((resHEX60gensym17_754976946 == 0)) { + resHEX60gensym17_754976946 = 314159265; + } + + var hc_754976950 = resHEX60gensym17_754976946; + Label1: { + Label2: while (true) { + if (!(0 <= h_754976940)) break Label2; + var nxt_754977000 = n_754976892[h_754976940].Field1; + if (isFilled__pureZcollectionsZtables_u31(n_754976892[h_754976940].Field0)) { + if (((n_754976892[h_754976940].Field0 == hc_754976950) && (n_754976892[h_754976940].Field2 == key_p1))) { + t_p0.counter -= 1; + } + else { + var j_754977265 = ((-1) - rawGetKnownHC__OOZsrcZmargraveZelement_u1826(t_p0, n_754976892[h_754976940].Field2, n_754976892[h_754976940].Field0)); + Temporary3 = n_754976892[h_754976940].Field2; + n_754976892[h_754976940].Field2 = null; + Temporary4 = n_754976892[h_754976940].Field3; + n_754976892[h_754976940].Field3 = null; + rawInsert__OOZsrcZmargraveZelement_u1548(t_p0, t_p0, "data", Temporary3, Temporary4, n_754976892[h_754976940].Field0, j_754977265); + } + + } + + h_754976940 = nxt_754977000; + } + }; + }; + + +} + +function pop__OOZsrcZmargraveZparserZutils_u235(t_p0, key_p1, val_p2, val_p2_Idx) { + var Temporary1; + + var result_1174405361 = false; + + var hc_1174405362 = [0]; + var index_1174405377 = rawGet__OOZsrcZmargraveZelement_u710(t_p0, key_p1, hc_1174405362, 0); + result_1174405361 = (0 <= index_1174405377); + if (result_1174405361) { + Temporary1 = t_p0.data[index_1174405377].Field3; + t_p0.data[index_1174405377].Field3 = null; + val_p2[val_p2_Idx] = Temporary1; + del__OOZsrcZmargraveZelement_u2165(t_p0, key_p1); + } + + + return result_1174405361; + +} + +function insert__OOZsrcZmargraveZparserZutils_u370(x_p0, x_p0_Idx, item_p1, i_p2) { + var it_1174405515 = null; + x_p0[x_p0_Idx] = x_p0[x_p0_Idx] || []; x_p0[x_p0_Idx].splice(i_p2, 0, it_1174405515); + x_p0[x_p0_Idx][i_p2] = item_p1; + + +} + +function setLinkDefault__OOZsrcZmargraveZparserZutils_u23(elem_p0, link_p1) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary5; + var Temporary6; + var Temporary7; + var Temporary8; + var Temporary9; + var Temporary13; + + var Temporary1 = elem_p0; + if (ConstSet36[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + switch (Temporary1.tag) { + case 23: + attrEscaped__OOZsrcZmargraveZelement_u2055(elem_p0, "href", link_p1.url); + break; + case 21: + var firstUrl_1174405146 = link_p1.url; + if ((((4 <= ((firstUrl_1174405146) == null ? 0 : (firstUrl_1174405146).length)) && contains__OOZsrcZmargraveZparserZutils_u90([".mp4", ".m4v", ".mov", ".ogv"], HEX5BHEX5D__OOZsrcZmargraveZcommon_u37(firstUrl_1174405146, HEX2EHEX2E__OOZsrcZmargraveZparserZutils_u29(4, 1)))) || ((5 <= ((firstUrl_1174405146) == null ? 0 : (firstUrl_1174405146).length)) && (HEX5BHEX5D__OOZsrcZmargraveZcommon_u37(firstUrl_1174405146, HEX2EHEX2E__OOZsrcZmargraveZparserZutils_u29(5, 1)) == ".webm")))) { + var Temporary2 = elem_p0; + if (ConstSet37[Temporary2.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary2.isText, NTI33554466)); } + Temporary2.tag = 25; + } + else { + if ((((4 <= ((firstUrl_1174405146) == null ? 0 : (firstUrl_1174405146).length)) && contains__OOZsrcZmargraveZparserZutils_u90([".mp3", ".oga", ".ogg", ".wav"], HEX5BHEX5D__OOZsrcZmargraveZcommon_u37(firstUrl_1174405146, HEX2EHEX2E__OOZsrcZmargraveZparserZutils_u29(4, 1)))) || ((5 <= ((firstUrl_1174405146) == null ? 0 : (firstUrl_1174405146).length)) && (HEX5BHEX5D__OOZsrcZmargraveZcommon_u37(firstUrl_1174405146, HEX2EHEX2E__OOZsrcZmargraveZparserZutils_u29(5, 1)) == ".flac")))) { + var Temporary3 = elem_p0; + if (ConstSet38[Temporary3.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary3.isText, NTI33554466)); } + Temporary3.tag = 26; + } + } + var Temporary4 = elem_p0; + if (ConstSet39[Temporary4.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary4.isText, NTI33554466)); } + if (!((Temporary4.tag == 21))) { + attr__OOZsrcZmargraveZelement_u601(elem_p0, "controls", ""); + var altText_1174405318 = [null]; + var Temporary5 = elem_p0; + if (ConstSet40[Temporary5.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'attrs\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary5.isText, NTI33554466)); } + if (pop__OOZsrcZmargraveZparserZutils_u235(Temporary5.attrs, "alt", altText_1174405318, 0)) { + var Temporary6 = elem_p0; + if (ConstSet41[Temporary6.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary6.isText, NTI33554466)); } + Temporary6.content = nimCopy(null, [newStr__OOZsrcZmargraveZelement_u57(altText_1174405318[0])], NTI754974811); + } + + } + + if (((link_p1.altUrls).length == 0)) { + attrEscaped__OOZsrcZmargraveZelement_u2055(elem_p0, "src", link_p1.url); + } + else { + var sourceAttr_1174405479 = null; + var Temporary7 = elem_p0; + if (ConstSet42[Temporary7.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary7.isText, NTI33554466)); } + if ((Temporary7.tag == 21)) { + var Temporary8 = elem_p0; + if (ConstSet43[Temporary8.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary8.isText, NTI33554466)); } + Temporary8.tag = 24; + sourceAttr_1174405479 = "srcset"; + } + else { + sourceAttr_1174405479 = "src"; + } + + var i_1174405484 = 0; + var srcElemHEX60gensym16_1174405489 = newElem__OOZsrcZmargraveZelement_u114(27, []); + attr__OOZsrcZmargraveZelement_u601(srcElemHEX60gensym16_1174405489, sourceAttr_1174405479, link_p1.url); + var Temporary9 = elem_p0; + if (ConstSet44[Temporary9.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary9.isText, NTI33554466)); } + insert__OOZsrcZmargraveZparserZutils_u370(Temporary9, "content", srcElemHEX60gensym16_1174405489, i_1174405484); + i_1174405484 += 1; + Label10: { + var alt_1174405540 = null; + var i_536872931 = 0; + var L_536872932 = (link_p1.altUrls).length; + Label11: { + Label12: while (true) { + if (!(i_536872931 < L_536872932)) break Label12; + alt_1174405540 = link_p1.altUrls[i_536872931]; + var srcElemHEX60gensym21_1174405542 = newElem__OOZsrcZmargraveZelement_u114(27, []); + attr__OOZsrcZmargraveZelement_u601(srcElemHEX60gensym21_1174405542, sourceAttr_1174405479, alt_1174405540); + var Temporary13 = elem_p0; + if (ConstSet45[Temporary13.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary13.isText, NTI33554466)); } + insert__OOZsrcZmargraveZparserZutils_u370(Temporary13, "content", srcElemHEX60gensym21_1174405542, i_1174405484); + i_1174405484 += 1; + i_536872931 += 1; + } + }; + }; + } + + break; + default: + attrEscaped__OOZsrcZmargraveZelement_u2055(elem_p0, "src", link_p1.url); + break; + } + + +} + +function setLink__converter_u447(parser_p0, elem_p2, link_p3) { + var options_536871371 = nimCopy(null, parser_p0.options, NTI1157627908); + if (!((options_536871371.setLinkHandler == null))) { + options_536871371.setLinkHandler(elem_p2, link_p3); + } + else { + setLinkDefault__OOZsrcZmargraveZparserZutils_u23(elem_p2, link_p3); + } + + + +} + +function add__converter_u479(x_p0, x_p0_Idx) { + if (null != "[") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "["; else x_p0[x_p0_Idx] += "["; }; + + +} + +function add__converter_u488(x_p0, x_p0_Idx) { + if (null != "]") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "]"; else x_p0[x_p0_Idx] += "]"; }; + + +} + +function escapeHtmlChar__OOZsrcZmargraveZparserZutils_u7(ch_p0) { + var Temporary1; + + var result_1174405129 = null; + + switch (ch_p0) { + case 60: + Temporary1 = "<"; + break; + case 62: + Temporary1 = ">"; + break; + case 38: + Temporary1 = "&"; + break; + default: + Temporary1 = String.fromCharCode(ch_p0); + break; + } + result_1174405129 = Temporary1; + + return result_1174405129; + +} + +function parseReferenceName__converter_u465(parser_p0, failed_p2, failed_p2_Idx) { + var Temporary4; + var Temporary5; + var Temporary6; + + var result_536871382 = [null]; + + BeforeRet: { + result_536871382[0] = ""; + var openbracks_536871383 = 1; + var escaped_536871384 = false; + Label1: { + var ch_536871385 = 0; + Label2: { + Label3: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label3; + ch_536871385 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (!(escaped_536871384)) { + switch (ch_536871385) { + case 92: + escaped_536871384 = true; + break; + case 91: + openbracks_536871383 += 1; + add__converter_u479(result_536871382, 0); + break; + case 93: + openbracks_536871383 -= 1; + if ((openbracks_536871383 == 0)) { + break BeforeRet; + } + else { + add__converter_u488(result_536871382, 0); + } + + break; + case 10: + failed_p2[failed_p2_Idx] = true; + break BeforeRet; + break; + default: + if (null != (Temporary4 = escapeHtmlChar__OOZsrcZmargraveZparserZutils_u7(ch_536871385), Temporary4)) { if (null == result_536871382[0]) result_536871382[0] = Temporary4; else result_536871382[0] += Temporary4; }; + break; + } + } + else { + switch (ch_536871385) { + case 92: + case 91: + case 93: + Temporary5 = String.fromCharCode(ch_536871385); + break; + default: + Temporary5 = ("\\\\" + escapeHtmlChar__OOZsrcZmargraveZparserZutils_u7(ch_536871385)); + break; + } + if (null != (Temporary6 = Temporary5, Temporary6)) { if (null == result_536871382[0]) result_536871382[0] = Temporary6; else result_536871382[0] += Temporary6; }; + escaped_536871384 = false; + } + + parser_p0.pos += 1; + } + }; + }; + failed_p2[failed_p2_Idx] = true; + }; + + return result_536871382[0]; + +} + +function rawGet__converter_u585(t_p0, key_p1, hc_p2, hc_p2_Idx) { + var result_536871503 = 0; + + BeforeRet: { + hc_p2[hc_p2_Idx] = hash__pureZhashes_u785(key_p1); + if ((hc_p2[hc_p2_Idx] == 0)) { + hc_p2[hc_p2_Idx] = 314159265; + } + + if (((t_p0.data).length == 0)) { + result_536871503 = (-1); + break BeforeRet; + } + + var h_536871517 = (hc_p2[hc_p2_Idx] & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[h_536871517].Field0)) break Label2; + if (((t_p0.data[h_536871517].Field0 == hc_p2[hc_p2_Idx]) && (t_p0.data[h_536871517].Field1 == key_p1))) { + result_536871503 = h_536871517; + break BeforeRet; + } + + h_536871517 = nextTry__pureZcollectionsZtables_u34(h_536871517, (t_p0.data).length - 1); + } + }; + result_536871503 = ((-1) - h_536871517); + }; + + return result_536871503; + +} + +function mustRehash__converter_u654(t_p0) { + var result_536871569 = false; + + result_536871569 = ((((t_p0.data).length * 2) < (t_p0.counter * 3)) || (((t_p0.data).length - t_p0.counter) < 4)); + + return result_536871569; + +} + +function rawInsert__converter_u729(t_p0, data_p1, data_p1_Idx, key_p2, val_p3, hc_p4, h_p5) { + data_p1[data_p1_Idx][h_p5].Field1 = key_p2; + data_p1[data_p1_Idx][h_p5].Field2 = nimCopy(null, val_p3, NTI1157627919); + data_p1[data_p1_Idx][h_p5].Field0 = hc_p4; + + +} + +function enlarge__converter_u687(t_p0) { + var n_536871605 = []; + n_536871605 = new Array(((t_p0.data).length * 2)); for (var i = 0 ; i < ((t_p0.data).length * 2) ; ++i) { n_536871605[i] = {Field0: 0, Field1: null, Field2: []}; } var HEX3Atmp_536872950 = nimCopy(null, t_p0.data, NTI1157627928); + t_p0.data = n_536871605; + n_536871605 = HEX3Atmp_536872950; + Label1: { + var i_536871629 = 0; + var colontmp__536872946 = 0; + colontmp__536872946 = (n_536871605).length - 1; + var res_536872948 = 0; + Label2: { + Label3: while (true) { + if (!(res_536872948 <= colontmp__536872946)) break Label3; + i_536871629 = res_536872948; + var eh_536871630 = n_536871605[i_536871629].Field0; + if (isFilled__pureZcollectionsZtables_u31(eh_536871630)) { + var j_536871634 = (eh_536871630 & (t_p0.data).length - 1); + Label4: { + Label5: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[j_536871634].Field0)) break Label5; + j_536871634 = nextTry__pureZcollectionsZtables_u34(j_536871634, (t_p0.data).length - 1); + } + }; + rawInsert__converter_u729(t_p0, t_p0, "data", n_536871605[i_536871629].Field1, n_536871605[i_536871629].Field2, eh_536871630, j_536871634); + } + + res_536872948 += 1; + } + }; + }; + + +} + +function rawGetKnownHC__converter_u739(t_p0, key_p1, hc_p2) { + var result_536871657 = 0; + + BeforeRet: { + if (((t_p0.data).length == 0)) { + result_536871657 = (-1); + break BeforeRet; + } + + var h_536871668 = (hc_p2 & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[h_536871668].Field0)) break Label2; + if (((t_p0.data[h_536871668].Field0 == hc_p2) && (t_p0.data[h_536871668].Field1 == key_p1))) { + result_536871657 = h_536871668; + break BeforeRet; + } + + h_536871668 = nextTry__pureZcollectionsZtables_u34(h_536871668, (t_p0.data).length - 1); + } + }; + result_536871657 = ((-1) - h_536871668); + }; + + return result_536871657; + +} + +function mgetOrPut__converter_u559(t_p0, key_p1, val_p2) { + var result_536871477 = null; + var result_536871477_Idx = 0; + + if (((t_p0.data).length == 0)) { + var correctSizeHEX60gensym30_536871487 = slotsNeeded__pureZcollectionsZtables_u42(32); + t_p0.counter = 0; + t_p0.data = new Array(correctSizeHEX60gensym30_536871487); for (var i = 0 ; i < correctSizeHEX60gensym30_536871487 ; ++i) { t_p0.data[i] = {Field0: 0, Field1: null, Field2: []}; } } + + var hc_536871496 = [0]; + var index_536871552 = rawGet__converter_u585(t_p0, key_p1, hc_536871496, 0); + if ((index_536871552 < 0)) { + if (((t_p0.data).length == 0)) { + var correctSizeHEX60gensym35_536871561 = slotsNeeded__pureZcollectionsZtables_u42(32); + t_p0.counter = 0; + t_p0.data = new Array(correctSizeHEX60gensym35_536871561); for (var i = 0 ; i < correctSizeHEX60gensym35_536871561 ; ++i) { t_p0.data[i] = {Field0: 0, Field1: null, Field2: []}; } } + + if (mustRehash__converter_u654(t_p0)) { + enlarge__converter_u687(t_p0); + index_536871552 = rawGetKnownHC__converter_u739(t_p0, key_p1, hc_536871496[0]); + } + + index_536871552 = ((-1) - index_536871552); + rawInsert__converter_u729(t_p0, t_p0, "data", key_p1, val_p2, hc_536871496[0], index_536871552); + t_p0.counter += 1; + } + + result_536871477 = t_p0.data[index_536871552]; result_536871477_Idx = "Field2"; + + return [result_536871477, result_536871477_Idx]; + +} + +function parseBracket__converter_u248(parser_p0, image_p2, singleLine_p3) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary5; + var Temporary6; + var Temporary7; + var Temporary8; + var Temporary9; + var Temporary10; + var Temporary11; + var Temporary12; + var Temporary13; + var Temporary14; + + var result_536871166 = null; + + BeforeRet: { + var canBeSub_536871167 = (!(image_p2) && !(prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, (-1)))); + var firstPos_536871168 = parser_p0.pos; + var tmpTuple_536871175 = parseDelimed__converter_u126(parser_p0, [93], singleLine_p3); + var textWorked_536871176 = tmpTuple_536871175["Field0"]; + var textElems_536871177 = nimCopy(null, tmpTuple_536871175["Field1"], NTI989855827); + parser_p0.pos += 1; + var secondPos_536871183 = (parser_p0.pos - 2); + if (!((textWorked_536871176 == 0))) { + result_536871166 = newElem__OOZsrcZmargraveZelement_u114(0, textElems_536871177); + break BeforeRet; + } + + if (!((!(image_p2) && ((textElems_536871177).length == 1)) && textElems_536871177[0].isText)) Temporary2 = false; else { var Temporary3 = textElems_536871177[0]; + if (ConstSet30[Temporary3.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary3.isText, NTI33554466)); } + Temporary2 = ((((Temporary4 = Temporary3.str, Temporary4)) == null ? 0 : (Temporary4).length) == 1); } if (Temporary2) { + var Temporary5 = textElems_536871177[0]; + if (ConstSet31[Temporary5.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary5.isText, NTI33554466)); } + switch ((Temporary6 = Temporary5.str, Temporary6).charCodeAt(0)) { + case 32: + Temporary7 = 1; + break; + case 120: + Temporary7 = 2; + break; + default: + Temporary7 = 0; + break; + } + Temporary1 = Temporary7; + } + else { + Temporary1 = 0; + } + + var checkMark_536871192 = Temporary1; + if ((parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) { + var initialPos_536871193 = parser_p0.pos; + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 40, 0)) { + var tmpTuple_536871348 = parseLink__converter_u301(parser_p0, false); + var linkWorked_536871349 = tmpTuple_536871348["Field0"]; + var link_536871350 = nimCopy(null, tmpTuple_536871348["Field1"], NTI1157627907); + if (linkWorked_536871349) { + if ((((((link_536871350.url) == null ? 0 : (link_536871350.url).length) == 0) && ((textElems_536871177).length == 1)) && textElems_536871177[0].isText)) { + var Temporary8 = textElems_536871177[0]; + if (ConstSet33[Temporary8.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary8.isText, NTI33554466)); } + link_536871350.url = Temporary8.str.trim(); + } + + if (image_p2) { + result_536871166 = {isText: false, tag: 21, attrs: ({data: [], counter: 0, first: 0, last: 0}), content: [], str: null}; + if ((0 < (secondPos_536871183 - firstPos_536871168))) { + attrEscaped__OOZsrcZmargraveZelement_u2055(result_536871166, "alt", HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p0.str, HEX2EHEX2E__stdZstrbasics_u48(firstPos_536871168, secondPos_536871183))); + } + + } + else { + result_536871166 = {isText: false, tag: 23, attrs: ({data: [], counter: 0, first: 0, last: 0}), content: [], str: null}; + var Temporary9 = result_536871166; + if (ConstSet35[Temporary9.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary9.isText, NTI33554466)); } + Temporary9.content = nimCopy(null, textElems_536871177, NTI989855827); + } + + if (!((((link_536871350.tip) == null ? 0 : (link_536871350.tip).length) == 0))) { + attrEscaped__OOZsrcZmargraveZelement_u2055(result_536871166, "title", link_536871350.tip); + } + + setLink__converter_u447(parser_p0, result_536871166, link_536871350); + break BeforeRet; + } + else { + parser_p0.pos = initialPos_536871193; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 91, 0)) { + var refNameFailed_536871376 = [false]; + var refName_536871404 = parseReferenceName__converter_u465(parser_p0, refNameFailed_536871376, 0); + if (refNameFailed_536871376[0]) { + parser_p0.pos = initialPos_536871193; + } + else { + if ((((refName_536871404) == null ? 0 : (refName_536871404).length) == 0)) { + refName_536871404 = HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p0.str, HEX2EHEX2E__stdZstrbasics_u48(firstPos_536871168, secondPos_536871183)); + } + + result_536871166 = {isText: false, tag: 0, attrs: ({data: [], counter: 0, first: 0, last: 0}), content: [], str: null}; + if (image_p2) { + var Temporary10 = result_536871166; + if (ConstSet46[Temporary10.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary10.isText, NTI33554466)); } + Temporary10.tag = 21; + if ((0 < (secondPos_536871183 - firstPos_536871168))) { + attrEscaped__OOZsrcZmargraveZelement_u2055(result_536871166, "alt", HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p0.str, HEX2EHEX2E__stdZstrbasics_u48(firstPos_536871168, secondPos_536871183))); + } + + } + else { + var Temporary11 = result_536871166; + if (ConstSet47[Temporary11.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary11.isText, NTI33554466)); } + Temporary11.tag = 23; + var Temporary12 = result_536871166; + if (ConstSet48[Temporary12.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary12.isText, NTI33554466)); } + Temporary12.content = nimCopy(null, textElems_536871177, NTI989855827); + } + + (Temporary13 = mgetOrPut__converter_u559(parser_p0.linkReferrers, refName_536871404, []), Temporary13)[0][Temporary13[1]].push(result_536871166);; + break BeforeRet; + } + + } + else { + parser_p0.pos -= 1; + } + } + } + + if (image_p2) { + result_536871166 = newElem__OOZsrcZmargraveZelement_u114(0, textElems_536871177); + } + else { + if ((checkMark_536871192 == 0)) { + if (canBeSub_536871167) { + Temporary14 = 14; + } + else { + parser_p0.pos -= 1; + Temporary14 = 0; + } + + result_536871166 = newElem__OOZsrcZmargraveZelement_u114(Temporary14, textElems_536871177); + } + else { + result_536871166 = newElem__OOZsrcZmargraveZelement_u114(22, []); + attr__OOZsrcZmargraveZelement_u601(result_536871166, "type", "checkbox"); + attr__OOZsrcZmargraveZelement_u601(result_536871166, "disabled", ""); + if ((checkMark_536871192 == 2)) { + attr__OOZsrcZmargraveZelement_u601(result_536871166, "checked", ""); + } + + } + } + }; + + return result_536871166; + +} + +function bracket__converter_u244(image_p0, parser_p1) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + + var result_536871159 = 0; + + var elem_536871767 = parseBracket__converter_u248(parser_p1, image_p0, this.singleLine1); + var Temporary1 = elem_536871767; + if (ConstSet49[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + if ((Temporary1.tag == 0)) { + var Temporary2 = this.lastStr3; + if (ConstSet50[Temporary2.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary2.isText, NTI33554466)); } + if (image_p0) { + Temporary3 = "!["; + } + else { + Temporary3 = "["; + } + + if (null != Temporary3) { if (null == Temporary2.str) Temporary2.str = Temporary3; else Temporary2.str += Temporary3; }; + var Temporary4 = elem_536871767; + if (ConstSet51[Temporary4.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary4.isText, NTI33554466)); } + add__OOZsrcZmargraveZelement_u2796(this, "elems2", Temporary4.content); + this.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + this.elems2.push(this.lastStr3);; + } + else { + this.elems2.push(elem_536871767);; + this.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + this.elems2.push(this.lastStr3);; + } + + result_536871159 = 0; + + return result_536871159; + +} + +function add__converter_u1106(x_p0, x_p0_Idx) { + if (null != "{") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "{"; else x_p0[x_p0_Idx] += "{"; }; + + +} + +function add__converter_u1115(x_p0, x_p0_Idx) { + if (null != "}") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "}"; else x_p0[x_p0_Idx] += "}"; }; + + +} + +function parseCurly__converter_u1092(parser_p0) { + var Temporary4; + var Temporary5; + var Temporary6; + var Temporary7; + + var result_536872008 = [null]; + + BeforeRet: { + result_536872008[0] = ""; + var noHtmlEscape_536872009 = (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 33, 0) || parser_p0.options.curlyNoHtmlEscape); + var opencurlys_536872010 = 1; + var escaped_536872011 = false; + Label1: { + var ch_536872012 = 0; + Label2: { + Label3: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label3; + ch_536872012 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (!(escaped_536872011)) { + switch (ch_536872012) { + case 92: + escaped_536872011 = true; + break; + case 123: + opencurlys_536872010 += 1; + add__converter_u1106(result_536872008, 0); + break; + case 125: + opencurlys_536872010 -= 1; + if ((opencurlys_536872010 == 0)) { + break BeforeRet; + } + else { + add__converter_u1115(result_536872008, 0); + } + + break; + default: + if (noHtmlEscape_536872009) { + Temporary4 = String.fromCharCode(ch_536872012); + } + else { + Temporary4 = escapeHtmlChar__OOZsrcZmargraveZparserZutils_u7(ch_536872012); + } + + if (null != (Temporary5 = Temporary4, Temporary5)) { if (null == result_536872008[0]) result_536872008[0] = Temporary5; else result_536872008[0] += Temporary5; }; + break; + } + } + else { + switch (ch_536872012) { + case 62: + case 60: + case 38: + Temporary6 = escapeHtmlChar__OOZsrcZmargraveZparserZutils_u7(ch_536872012); + break; + case 92: + case 125: + case 123: + Temporary6 = String.fromCharCode(ch_536872012); + break; + default: + Temporary6 = ("\\\\" + String.fromCharCode(ch_536872012)); + break; + } + if (null != (Temporary7 = Temporary6, Temporary7)) { if (null == result_536872008[0]) result_536872008[0] = Temporary7; else result_536872008[0] += Temporary7; }; + escaped_536872011 = false; + } + + parser_p0.pos += 1; + } + }; + }; + }; + + return result_536872008[0]; + +} + +function noAdjacentWhitespace__OOZsrcZmargraveZparserZutils_u608(parser_p0, offset_p1) { + var result_1174405731 = false; + + result_1174405731 = (!(prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, offset_p1)) && !(nextWhitespace__OOZsrcZmargraveZparserZutils_u592(parser_p0, offset_p1))); + + return result_1174405731; + +} + +function onlyPrevWhitespace__OOZsrcZmargraveZparserZutils_u600(parser_p0, offset_p1) { + var result_1174405723 = false; + + result_1174405723 = (prevWhitespace__OOZsrcZmargraveZparserZutils_u582(parser_p0, offset_p1) && !(nextWhitespace__OOZsrcZmargraveZparserZutils_u592(parser_p0, offset_p1))); + + return result_1174405723; + +} + +function ssClose__pureZstreams_u1130(s_p0) { + var s_1241515116 = s_p0; + s_1241515116.data = nimCopy(null, [], NTI33554449); + + +} + +function ssAtEnd__pureZstreams_u777(s_p0) { + var result_1241514763 = false; + + BeforeRet: { + var s_1241514764 = s_p0; + result_1241514763 = ((s_1241514764.data).length <= s_1241514764.pos); + break BeforeRet; + }; + + return result_1241514763; + +} + +function clamp__pureZstreams_u817(x_p0, a_p1, b_p2) { + var result_1241514806 = 0; + + BeforeRet: { + if ((x_p0 < a_p1)) { + result_1241514806 = a_p1; + break BeforeRet; + } + + if ((b_p2 < x_p0)) { + result_1241514806 = b_p2; + break BeforeRet; + } + + result_1241514806 = x_p0; + break BeforeRet; + }; + + return result_1241514806; + +} + +function ssSetPosition__pureZstreams_u813(s_p0, pos_p1) { + var s_1241514800 = s_p0; + s_1241514800.pos = clamp__pureZstreams_u817(pos_p1, 0, (s_1241514800.data).length); + + +} + +function ssGetPosition__pureZstreams_u823(s_p0) { + var result_1241514809 = 0; + + BeforeRet: { + var s_1241514810 = s_p0; + result_1241514809 = s_1241514810.pos; + break BeforeRet; + }; + + return result_1241514809; + +} + +function HEX5BHEX5DHEX3D__pureZstrutils_u1165(s_p0, s_p0_Idx, x_p1, b_p2) { + var a_1006634132 = x_p1.a; + var L_1006634134 = ((x_p1.b - a_1006634132) + 1); + if ((L_1006634134 == (b_p2).length)) { + Label1: { + var i_1006634139 = 0; + var i_536872958 = 0; + Label2: { + Label3: while (true) { + if (!(i_536872958 < L_1006634134)) break Label3; + i_1006634139 = i_536872958; + s_p0[s_p0_Idx][(i_1006634139 + a_1006634132)] = b_p2[i_1006634139]; + i_536872958 += 1; + } + }; + }; + } + else { + var shiftHEX60gensym109_1006634145 = ((b_p2).length - nimMax(0, L_1006634134)); + var newLenHEX60gensym109_1006634146 = ((s_p0[s_p0_Idx]).length + shiftHEX60gensym109_1006634145); + if ((0 < shiftHEX60gensym109_1006634145)) { + if (s_p0[s_p0_Idx].length < newLenHEX60gensym109_1006634146) { for (var i = s_p0[s_p0_Idx].length; i < newLenHEX60gensym109_1006634146; ++i) s_p0[s_p0_Idx].push(0); } + else {s_p0[s_p0_Idx].length = newLenHEX60gensym109_1006634146; }; + Label4: { + var iHEX60gensym109_1006634152 = 0; + var colontmp__536872961 = 0; + var colontmp__536872962 = 0; + colontmp__536872961 = (newLenHEX60gensym109_1006634146 - 1); + colontmp__536872962 = (a_1006634132 + (b_p2).length); + var res_536872964 = colontmp__536872961; + Label5: { + Label6: while (true) { + if (!(colontmp__536872962 <= res_536872964)) break Label6; + iHEX60gensym109_1006634152 = res_536872964; + s_p0[s_p0_Idx][iHEX60gensym109_1006634152] = s_p0[s_p0_Idx][(iHEX60gensym109_1006634152 - shiftHEX60gensym109_1006634145)]; + res_536872964 -= 1; + } + }; + }; + } + else { + Label7: { + var iHEX60gensym109_1006634158 = 0; + var colontmp__536872967 = 0; + var colontmp__536872968 = 0; + colontmp__536872967 = (a_1006634132 + (b_p2).length); + colontmp__536872968 = (newLenHEX60gensym109_1006634146 - 1); + var res_536872969 = colontmp__536872967; + Label8: { + Label9: while (true) { + if (!(res_536872969 <= colontmp__536872968)) break Label9; + iHEX60gensym109_1006634158 = res_536872969; + s_p0[s_p0_Idx][iHEX60gensym109_1006634158] = s_p0[s_p0_Idx][(iHEX60gensym109_1006634158 - shiftHEX60gensym109_1006634145)]; + res_536872969 += 1; + } + }; + }; + if (s_p0[s_p0_Idx].length < newLenHEX60gensym109_1006634146) { for (var i = s_p0[s_p0_Idx].length; i < newLenHEX60gensym109_1006634146; ++i) s_p0[s_p0_Idx].push(0); } + else {s_p0[s_p0_Idx].length = newLenHEX60gensym109_1006634146; }; + } + + Label10: { + var iHEX60gensym109_1006634163 = 0; + var colontmp__536872972 = 0; + colontmp__536872972 = (b_p2).length; + var i_536872973 = 0; + Label11: { + Label12: while (true) { + if (!(i_536872973 < colontmp__536872972)) break Label12; + iHEX60gensym109_1006634163 = i_536872973; + s_p0[s_p0_Idx][(a_1006634132 + iHEX60gensym109_1006634163)] = b_p2[iHEX60gensym109_1006634163]; + i_536872973 += 1; + } + }; + }; + } + + + +} + +function HEX5BHEX5D__pureZstrutils_u1273(s_p0, x_p1) { + var result_1006634238 = []; + + var a_1006634240 = x_p1.a; + var L_1006634242 = ((x_p1.b - a_1006634240) + 1); + result_1006634238 = nimCopy(null, mnewString(L_1006634242), NTI33554449); + Label1: { + var i_1006634247 = 0; + var i_536872976 = 0; + Label2: { + Label3: while (true) { + if (!(i_536872976 < L_1006634242)) break Label3; + i_1006634247 = i_536872976; + result_1006634238[i_1006634247] = s_p0[(i_1006634247 + a_1006634240)]; + i_536872976 += 1; + } + }; + }; + + return result_1006634238; + +} + +function ssReadDataStr__pureZstreams_u827(s_p0, buffer_p1, buffer_p1_Idx, slice_p2) { + var result_1241514816 = 0; + + var s_1241514817 = s_p0; + result_1241514816 = nimMin(((slice_p2.b + 1) - slice_p2.a), ((s_1241514817.data).length - s_1241514817.pos)); + if ((0 < result_1241514816)) { + Label1: { + }; + HEX5BHEX5DHEX3D__pureZstrutils_u1165(buffer_p1, buffer_p1_Idx, HEX2EHEX2E__stdZstrbasics_u48(slice_p2.a, (slice_p2.a + result_1241514816) - 1), HEX5BHEX5D__pureZstrutils_u1273(s_1241514817.data, HEX2EHEX2E__stdZstrbasics_u48(s_1241514817.pos, (s_1241514817.pos + result_1241514816) - 1))); + s_1241514817.pos += result_1241514816; + } + else { + result_1241514816 = 0; + } + + + return result_1241514816; + +} + +function isNimException__system_u2026() { + return lastJSError && lastJSError.m_type; + + +} + +function getCurrentException() { + var result_33556461 = null; + + if (isNimException__system_u2026()) { + result_33556461 = lastJSError; + } + + + return result_33556461; + +} + +function ssReadData__pureZstreams_u929(s_p0, buffer_p1, buffer_p1_Idx, bufLen_p2) { + var result_1241514917 = 0; + + var s_1241514918 = s_p0; + result_1241514917 = nimMin(bufLen_p2, ((s_1241514918.data).length - s_1241514918.pos)); + if ((0 < result_1241514917)) { +++excHandler; + try { + HEX5BHEX5DHEX3D__pureZstrutils_u1165(buffer_p1, buffer_p1_Idx, HEX2EHEX2E__stdZstrbasics_u48(0, result_1241514917 - 1), HEX5BHEX5D__pureZstrutils_u1273(s_1241514918.data, HEX2EHEX2E__stdZstrbasics_u48(s_1241514918.pos, (s_1241514918.pos + result_1241514917) - 1))); +--excHandler; +} catch (EXCEPTION) { + var prevJSError = lastJSError; + lastJSError = EXCEPTION; + --excHandler; + raiseException({message: makeNimstrLit("could not read string stream, did you use a non-string buffer pointer?"), parent: getCurrentException(), m_type: NTI33555172, name: null, trace: [], up: null}, "Defect"); + lastJSError = prevJSError; + } finally { + } + s_1241514918.pos += result_1241514917; + } + else { + result_1241514917 = 0; + } + + + return result_1241514917; + +} + +function ssPeekData__pureZstreams_u1022(s_p0, buffer_p1, buffer_p1_Idx, bufLen_p2) { + var result_1241515010 = 0; + + var s_1241515011 = s_p0; + result_1241515010 = nimMin(bufLen_p2, ((s_1241515011.data).length - s_1241515011.pos)); + if ((0 < result_1241515010)) { +++excHandler; + try { + HEX5BHEX5DHEX3D__pureZstrutils_u1165(buffer_p1, buffer_p1_Idx, HEX2EHEX2E__stdZstrbasics_u48(0, result_1241515010 - 1), HEX5BHEX5D__pureZstrutils_u1273(s_1241515011.data, HEX2EHEX2E__stdZstrbasics_u48(s_1241515011.pos, (s_1241515011.pos + result_1241515010) - 1))); +--excHandler; +} catch (EXCEPTION) { + var prevJSError = lastJSError; + lastJSError = EXCEPTION; + --excHandler; + raiseException({message: makeNimstrLit("could not peek string stream, did you use a non-string buffer pointer?"), parent: getCurrentException(), m_type: NTI33555172, name: null, trace: [], up: null}, "Defect"); + lastJSError = prevJSError; + } finally { + } + } + else { + result_1241515010 = 0; + } + + + return result_1241515010; + +} + +function ssWriteData__pureZstreams_u1074(s_p0, buffer_p1, buffer_p1_Idx, bufLen_p2) { + var Temporary1; + + BeforeRet: { + var s_1241515062 = s_p0; + if ((bufLen_p2 <= 0)) { + break BeforeRet; + } + + if (((s_1241515062.data).length < (s_1241515062.pos + bufLen_p2))) { + if (s_1241515062.data.length < (Temporary1 = (s_1241515062.pos + bufLen_p2), Temporary1)) { for (var i = s_1241515062.data.length; i < Temporary1; ++i) s_1241515062.data.push(0); } + else {s_1241515062.data.length = Temporary1; }; + } + +++excHandler; + try { + HEX5BHEX5DHEX3D__pureZstrutils_u1165(s_1241515062, "data", HEX2EHEX2E__stdZstrbasics_u48(s_1241515062.pos, (s_1241515062.pos + bufLen_p2) - 1), HEX5BHEX5D__pureZstrutils_u1273(buffer_p1[buffer_p1_Idx], HEX2EHEX2E__stdZstrbasics_u48(0, bufLen_p2 - 1))); +--excHandler; +} catch (EXCEPTION) { + var prevJSError = lastJSError; + lastJSError = EXCEPTION; + --excHandler; + raiseException({message: makeNimstrLit("could not write to string stream, did you use a non-string buffer pointer?"), parent: getCurrentException(), m_type: NTI33555172, name: null, trace: [], up: null}, "Defect"); + lastJSError = prevJSError; + } finally { + } + s_1241515062.pos += bufLen_p2; + }; + + +} + +function newStringStream__pureZstreams_u1133(s_p0) { + var result_1241515119 = null; + + result_1241515119 = ({m_type: NTI1241514495, data: [], pos: 0, closeImpl: null, atEndImpl: null, setPositionImpl: null, getPositionImpl: null, readDataStrImpl: null, readLineImpl: null, readDataImpl: null, peekDataImpl: null, writeDataImpl: null, flushImpl: null}); + result_1241515119.data = nimCopy(null, s_p0, NTI33554449); + result_1241515119.pos = 0; + result_1241515119.closeImpl = ssClose__pureZstreams_u1130; + result_1241515119.atEndImpl = ssAtEnd__pureZstreams_u777; + result_1241515119.setPositionImpl = ssSetPosition__pureZstreams_u813; + result_1241515119.getPositionImpl = ssGetPosition__pureZstreams_u823; + result_1241515119.readDataStrImpl = ssReadDataStr__pureZstreams_u827; + result_1241515119.readDataImpl = ssReadData__pureZstreams_u929; + result_1241515119.peekDataImpl = ssPeekData__pureZstreams_u1022; + result_1241515119.writeDataImpl = ssWriteData__pureZstreams_u1074; + + return result_1241515119; + +} + +function setPosition__pureZstreams_u70(s_p0, pos_p1) { + s_p0.setPositionImpl(s_p0, pos_p1); + + +} + +function readData__pureZstreams_u78(s_p0, buffer_p1, buffer_p1_Idx, bufLen_p2) { + var result_1241514066 = 0; + + result_1241514066 = s_p0.readDataImpl(s_p0, buffer_p1, buffer_p1_Idx, bufLen_p2); + + return result_1241514066; + +} + +function readDataStr__pureZstreams_u84(s_p0, buffer_p1, buffer_p1_Idx, slice_p2) { + var result_1241514073 = 0; + + if (!((s_p0.readDataStrImpl == null))) { + result_1241514073 = s_p0.readDataStrImpl(s_p0, buffer_p1, buffer_p1_Idx, slice_p2); + } + else { + result_1241514073 = readData__pureZstreams_u78(s_p0, buffer_p1[buffer_p1_Idx], slice_p2.a, ((slice_p2.b + 1) - slice_p2.a)); + } + + + return result_1241514073; + +} + +function fillBuffer__pureZlexbase_u16(L_p0) { + var Temporary8; + + var charsRead_1275068434 = 0; + var toCopy_1275068435 = 0; + var s_1275068436 = 0; + var oldBufLen_1275068437 = 0; + toCopy_1275068435 = ((L_p0.buf).length - (L_p0.sentinel + 1)); + if ((0 < toCopy_1275068435)) { + Label1: { + var i_1275068448 = 0; + var i_536872979 = 0; + Label2: { + Label3: while (true) { + if (!(i_536872979 < toCopy_1275068435)) break Label3; + i_1275068448 = i_536872979; + L_p0.buf[i_1275068448] = L_p0.buf[((L_p0.sentinel + 1) + i_1275068448)]; + i_536872979 += 1; + } + }; + }; + } + + charsRead_1275068434 = readDataStr__pureZstreams_u84(L_p0.input, L_p0, "buf", HEX2EHEX2E__stdZstrbasics_u48(toCopy_1275068435, ((toCopy_1275068435 + L_p0.sentinel) + 1) - 1)); + s_1275068436 = (toCopy_1275068435 + charsRead_1275068434); + if ((charsRead_1275068434 < (L_p0.sentinel + 1))) { + L_p0.buf[s_1275068436] = 0; + L_p0.sentinel = s_1275068436; + } + else { + s_1275068436 -= 1; + Label4: { + Label5: while (true) { + if (!true) break Label5; + Label6: { + Label7: while (true) { + if (!((0 <= s_1275068436) && !((L_p0.refillChars[L_p0.buf[s_1275068436]] != undefined)))) break Label7; + s_1275068436 -= 1; + } + }; + if ((0 <= s_1275068436)) { + L_p0.sentinel = s_1275068436; + break Label4; + } + else { + oldBufLen_1275068437 = (L_p0.buf).length; + if (L_p0.buf.length < (Temporary8 = ((L_p0.buf).length * 2), Temporary8)) { for (var i = L_p0.buf.length; i < Temporary8; ++i) L_p0.buf.push(0); } + else {L_p0.buf.length = Temporary8; }; + charsRead_1275068434 = readDataStr__pureZstreams_u84(L_p0.input, L_p0, "buf", HEX2EHEX2E__stdZstrbasics_u48(oldBufLen_1275068437, (L_p0.buf).length - 1)); + if ((charsRead_1275068434 < oldBufLen_1275068437)) { + L_p0.buf[(oldBufLen_1275068437 + charsRead_1275068434)] = 0; + L_p0.sentinel = (oldBufLen_1275068437 + charsRead_1275068434); + break Label4; + } + + s_1275068436 = ((L_p0.buf).length - 1); + } + + } + }; + } + + + +} + +function skipUtf8Bom__pureZlexbase_u118(L_p0) { + if ((((L_p0.buf[0] == 239) && (L_p0.buf[1] == 187)) && (L_p0.buf[2] == 191))) { + L_p0.bufpos += 3; + L_p0.lineStart += 3; + } + + + +} + +function open__pureZlexbase_u130(L_p0, input_p1, bufLen_p2, refillChars_p3) { + L_p0.input = input_p1; + L_p0.bufpos = 0; + L_p0.offsetBase = 0; + L_p0.refillChars = nimCopy(L_p0.refillChars, refillChars_p3, NTI1275068421); + L_p0.buf = nimCopy(null, mnewString(bufLen_p2), NTI33554449); + L_p0.sentinel = (bufLen_p2 - 1); + L_p0.lineStart = 0; + L_p0.lineNumber = 1; + fillBuffer__pureZlexbase_u16(L_p0); + skipUtf8Bom__pureZlexbase_u118(L_p0); + + +} + +function open__pureZparsexml_u65(my_p0, input_p1, filename_p2, options_p3) { + open__pureZlexbase_u130(my_p0, input_p1, 8192, ConstSet63); + my_p0.filename = nimCopy(null, filename_p2, NTI33554449); + my_p0.state = 0; + my_p0.kind = 0; + my_p0.a = nimCopy(null, [], NTI33554449); + my_p0.b = nimCopy(null, [], NTI33554449); + my_p0.c = nimCopy(null, [], NTI33554449); + my_p0.cIsEmpty = true; + my_p0.options = nimCopy(my_p0.options, options_p3, NTI1207959564); + + +} + +function fillBaseLexer__pureZlexbase_u72(L_p0, pos_p1) { + var result_1275068491 = 0; + + if ((pos_p1 < L_p0.sentinel)) { + result_1275068491 = (pos_p1 + 1); + } + else { + fillBuffer__pureZlexbase_u16(L_p0); + L_p0.offsetBase += pos_p1; + L_p0.bufpos = 0; + result_1275068491 = 0; + } + + + return result_1275068491; + +} + +function handleRefillChar__pureZlexbase_u107(L_p0, pos_p1) { + var result_1275068526 = 0; + + result_1275068526 = fillBaseLexer__pureZlexbase_u72(L_p0, pos_p1); + + return result_1275068526; + +} + +function markError__pureZparsexml_u242(my_p0, kind_p1) { + my_p0.err = kind_p1; + my_p0.state = 4; + + +} + +function parseName__pureZparsexml_u329(my_p0, dest_p1, dest_p1_Idx) { + var pos_1207959884 = my_p0.bufpos; + if ((ConstSet65[my_p0.buf[pos_1207959884]] != undefined)) { + Label1: { + Label2: while (true) { + if (!true) break Label2; + addChar(dest_p1[dest_p1_Idx], my_p0.buf[pos_1207959884]);; + pos_1207959884 += 1; + if (!((ConstSet66[my_p0.buf[pos_1207959884]] != undefined))) { + break Label1; + } + + } + }; + my_p0.bufpos = pos_1207959884; + } + else { + markError__pureZparsexml_u242(my_p0, 2); + } + + + +} + +function handleCR__pureZlexbase_u83(L_p0, pos_p1) { + var result_1275068502 = 0; + + L_p0.lineNumber += 1; + result_1275068502 = fillBaseLexer__pureZlexbase_u72(L_p0, pos_p1); + if ((L_p0.buf[result_1275068502] == 10)) { + result_1275068502 = fillBaseLexer__pureZlexbase_u72(L_p0, result_1275068502); + } + + L_p0.lineStart = result_1275068502; + + return result_1275068502; + +} + +function handleLF__pureZlexbase_u95(L_p0, pos_p1) { + var result_1275068514 = 0; + + L_p0.lineNumber += 1; + result_1275068514 = fillBaseLexer__pureZlexbase_u72(L_p0, pos_p1); + L_p0.lineStart = result_1275068514; + + return result_1275068514; + +} + +function parseWhitespace__pureZparsexml_u318(my_p0, skip_p1) { + var pos_1207959873 = my_p0.bufpos; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207959873]) { + case 32: + case 9: + if (!(skip_p1)) { + addChar(my_p0.a, my_p0.buf[pos_1207959873]);; + } + + pos_1207959873 += 1; + break; + case 13: + pos_1207959873 = handleCR__pureZlexbase_u83(my_p0, pos_1207959873); + if (!(skip_p1)) { + addChar(my_p0.a, 10);; + } + + break; + case 10: + pos_1207959873 = handleLF__pureZlexbase_u95(my_p0, pos_1207959873); + if (!(skip_p1)) { + addChar(my_p0.a, 10);; + } + + break; + default: + break Label1; + break; + } + } + }; + my_p0.bufpos = pos_1207959873; + + +} + +function parseEndTag__pureZparsexml_u526(my_p0) { + my_p0.bufpos = handleRefillChar__pureZlexbase_u107(my_p0, (my_p0.bufpos + 1)); + parseName__pureZparsexml_u329(my_p0, my_p0, "a"); + parseWhitespace__pureZparsexml_u318(my_p0, true); + if ((my_p0.buf[my_p0.bufpos] == 62)) { + my_p0.bufpos += 1; + } + else { + markError__pureZparsexml_u242(my_p0, 5); + } + + my_p0.kind = 7; + + +} + +function parseCDATA__pureZparsexml_u261(my_p0) { + var pos_1207959815 = (my_p0.bufpos + 9); + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207959815]) { + case 93: + if (((my_p0.buf[(pos_1207959815 + 1)] == 93) && (my_p0.buf[(pos_1207959815 + 2)] == 62))) { + pos_1207959815 += 3; + break Label1; + } + + addChar(my_p0.a, 93);; + pos_1207959815 += 1; + break; + case 0: + markError__pureZparsexml_u242(my_p0, 1); + break Label1; + break; + case 13: + pos_1207959815 = handleCR__pureZlexbase_u83(my_p0, pos_1207959815); + addChar(my_p0.a, 10);; + break; + case 10: + pos_1207959815 = handleLF__pureZlexbase_u95(my_p0, pos_1207959815); + addChar(my_p0.a, 10);; + break; + case 47: + pos_1207959815 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207959815); + addChar(my_p0.a, 47);; + break; + default: + addChar(my_p0.a, my_p0.buf[pos_1207959815]);; + pos_1207959815 += 1; + break; + } + } + }; + my_p0.bufpos = pos_1207959815; + my_p0.kind = 11; + + +} + +function parseComment__pureZparsexml_u279(my_p0) { + var pos_1207959833 = (my_p0.bufpos + 4); + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207959833]) { + case 45: + if (((my_p0.buf[(pos_1207959833 + 1)] == 45) && (my_p0.buf[(pos_1207959833 + 2)] == 62))) { + pos_1207959833 += 3; + break Label1; + } + + if ((my_p0.options[1] != undefined)) { + addChar(my_p0.a, 45);; + } + + pos_1207959833 += 1; + break; + case 0: + markError__pureZparsexml_u242(my_p0, 8); + break Label1; + break; + case 13: + pos_1207959833 = handleCR__pureZlexbase_u83(my_p0, pos_1207959833); + if ((my_p0.options[1] != undefined)) { + addChar(my_p0.a, 10);; + } + + break; + case 10: + pos_1207959833 = handleLF__pureZlexbase_u95(my_p0, pos_1207959833); + if ((my_p0.options[1] != undefined)) { + addChar(my_p0.a, 10);; + } + + break; + case 47: + pos_1207959833 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207959833); + if ((my_p0.options[1] != undefined)) { + addChar(my_p0.a, 47);; + } + + break; + default: + if ((my_p0.options[1] != undefined)) { + addChar(my_p0.a, my_p0.buf[pos_1207959833]);; + } + + pos_1207959833 += 1; + break; + } + } + }; + my_p0.bufpos = pos_1207959833; + my_p0.kind = 4; + + +} + +function parseSpecial__pureZparsexml_u470(my_p0) { + var pos_1207960024 = (my_p0.bufpos + 2); + var opentags_1207960025 = 0; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207960024]) { + case 0: + markError__pureZparsexml_u242(my_p0, 5); + break Label1; + break; + case 60: + opentags_1207960025 += 1; + pos_1207960024 += 1; + addChar(my_p0.a, 60);; + break; + case 62: + if ((opentags_1207960025 <= 0)) { + pos_1207960024 += 1; + break Label1; + } + + opentags_1207960025 -= 1; + pos_1207960024 += 1; + addChar(my_p0.a, 62);; + break; + case 13: + pos_1207960024 = handleCR__pureZlexbase_u83(my_p0, pos_1207960024); + addChar(my_p0.a, 10);; + break; + case 10: + pos_1207960024 = handleLF__pureZlexbase_u95(my_p0, pos_1207960024); + addChar(my_p0.a, 10);; + break; + case 47: + pos_1207960024 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207960024); + addChar(my_p0.b, 47);; + break; + default: + addChar(my_p0.a, my_p0.buf[pos_1207960024]);; + pos_1207960024 += 1; + break; + } + } + }; + my_p0.bufpos = pos_1207960024; + my_p0.kind = 13; + + +} + +function parsePI__pureZparsexml_u447(my_p0) { + my_p0.bufpos += 2; + parseName__pureZparsexml_u329(my_p0, my_p0, "a"); + var pos_1207960006 = my_p0.bufpos; + if (my_p0.b.length < 0) { for (var i = my_p0.b.length; i < 0; ++i) my_p0.b.push(0); } + else {my_p0.b.length = 0; }; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207960006]) { + case 0: + markError__pureZparsexml_u242(my_p0, 4); + break Label1; + break; + case 63: + if ((my_p0.buf[(pos_1207960006 + 1)] == 62)) { + pos_1207960006 += 2; + break Label1; + } + + addChar(my_p0.b, 63);; + pos_1207960006 += 1; + break; + case 13: + pos_1207960006 = handleCR__pureZlexbase_u83(my_p0, pos_1207960006); + addChar(my_p0.b, 10);; + break; + case 10: + pos_1207960006 = handleLF__pureZlexbase_u95(my_p0, pos_1207960006); + addChar(my_p0.b, 10);; + break; + case 47: + pos_1207960006 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207960006); + addChar(my_p0.b, 47);; + break; + default: + addChar(my_p0.b, my_p0.buf[pos_1207960006]);; + pos_1207960006 += 1; + break; + } + } + }; + my_p0.bufpos = pos_1207960006; + my_p0.kind = 5; + + +} + +function parseTag__pureZparsexml_u504(my_p0) { + BeforeRet: { + my_p0.bufpos += 1; + parseName__pureZparsexml_u329(my_p0, my_p0, "a"); + if (((my_p0.a).length == 0)) { + my_p0.kind = 2; + addChar(my_p0.a, 60);; + break BeforeRet; + } + + parseWhitespace__pureZparsexml_u318(my_p0, true); + if ((ConstSet67[my_p0.buf[my_p0.bufpos]] != undefined)) { + my_p0.kind = 8; + my_p0.state = 2; + my_p0.c = nimCopy(null, my_p0.a, NTI33554449); + my_p0.cIsEmpty = false; + } + else { + my_p0.kind = 6; + var slash_1207960067 = (my_p0.buf[my_p0.bufpos] == 47); + if (slash_1207960067) { + my_p0.bufpos = handleRefillChar__pureZlexbase_u107(my_p0, my_p0.bufpos); + } + + if ((slash_1207960067 && (my_p0.buf[my_p0.bufpos] == 62))) { + my_p0.bufpos += 1; + my_p0.state = 3; + my_p0.c = nimCopy(null, [], NTI33554449); + my_p0.cIsEmpty = true; + } + else { + if ((my_p0.buf[my_p0.bufpos] == 62)) { + my_p0.bufpos += 1; + } + else { + markError__pureZparsexml_u242(my_p0, 5); + } + } + } + + }; + + +} + +function HEX3CHEX3DHEX25__system_u1072(x_p0, y_p1) { + var result_33555507 = false; + + result_33555507 = (Number(BigInt.asUintN(32, BigInt(x_p0))) <= Number(BigInt.asUintN(32, BigInt(y_p1)))); + + return result_33555507; + +} + +function nuctoUTF8(c_p0) { + var result_1073742232 = []; + + result_1073742232 = nimCopy(null, [], NTI33554449); + var iHEX60gensym21_1073742234 = c_p0; + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 127)) { + if (result_1073742232.length < 1) { for (var i = result_1073742232.length; i < 1; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 1; }; + result_1073742232[0] = iHEX60gensym21_1073742234; + } + else { + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 2047)) { + if (result_1073742232.length < 2) { for (var i = result_1073742232.length; i < 2; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 2; }; + result_1073742232[0] = ((iHEX60gensym21_1073742234 >> 6) | 192); + result_1073742232[1] = ((iHEX60gensym21_1073742234 & 63) | 128); + } + else { + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 65535)) { + if (result_1073742232.length < 3) { for (var i = result_1073742232.length; i < 3; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 3; }; + result_1073742232[0] = ((iHEX60gensym21_1073742234 >> 12) | 224); + result_1073742232[1] = (((iHEX60gensym21_1073742234 >> 6) & 63) | 128); + result_1073742232[2] = ((iHEX60gensym21_1073742234 & 63) | 128); + } + else { + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 2097151)) { + if (result_1073742232.length < 4) { for (var i = result_1073742232.length; i < 4; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 4; }; + result_1073742232[0] = ((iHEX60gensym21_1073742234 >> 18) | 240); + result_1073742232[1] = (((iHEX60gensym21_1073742234 >> 12) & 63) | 128); + result_1073742232[2] = (((iHEX60gensym21_1073742234 >> 6) & 63) | 128); + result_1073742232[3] = ((iHEX60gensym21_1073742234 & 63) | 128); + } + else { + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 67108863)) { + if (result_1073742232.length < 5) { for (var i = result_1073742232.length; i < 5; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 5; }; + result_1073742232[0] = ((iHEX60gensym21_1073742234 >> 24) | 248); + result_1073742232[1] = (((iHEX60gensym21_1073742234 >> 18) & 63) | 128); + result_1073742232[2] = (((iHEX60gensym21_1073742234 >> 12) & 63) | 128); + result_1073742232[3] = (((iHEX60gensym21_1073742234 >> 6) & 63) | 128); + result_1073742232[4] = ((iHEX60gensym21_1073742234 & 63) | 128); + } + else { + if (HEX3CHEX3DHEX25__system_u1072(iHEX60gensym21_1073742234, 2147483647)) { + if (result_1073742232.length < 6) { for (var i = result_1073742232.length; i < 6; ++i) result_1073742232.push(0); } + else {result_1073742232.length = 6; }; + result_1073742232[0] = ((iHEX60gensym21_1073742234 >> 30) | 252); + result_1073742232[1] = (((iHEX60gensym21_1073742234 >> 24) & 63) | 128); + result_1073742232[2] = (((iHEX60gensym21_1073742234 >> 18) & 63) | 128); + result_1073742232[3] = (((iHEX60gensym21_1073742234 >> 12) & 63) | 128); + result_1073742232[4] = (((iHEX60gensym21_1073742234 >> 6) & 63) | 128); + result_1073742232[5] = ((iHEX60gensym21_1073742234 & 63) | 128); + } + else { + } + }}}}} + + return result_1073742232; + +} + +function parseEntity__pureZparsexml_u346(my_p0, dest_p1, dest_p1_Idx) { + var pos_1207959901 = (my_p0.bufpos + 1); + my_p0.kind = 2; + if ((my_p0.buf[pos_1207959901] == 35)) { + var r_1207959902 = 0; + pos_1207959901 += 1; + if ((my_p0.buf[pos_1207959901] == 120)) { + pos_1207959901 += 1; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207959901]) { + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + r_1207959902 = (((r_1207959902 << 4) << 0 >> 0) | (my_p0.buf[pos_1207959901] - 48)); + break; + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + r_1207959902 = (((r_1207959902 << 4) << 0 >> 0) | ((my_p0.buf[pos_1207959901] - 97) + 10)); + break; + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + r_1207959902 = (((r_1207959902 << 4) << 0 >> 0) | ((my_p0.buf[pos_1207959901] - 65) + 10)); + break; + default: + break Label1; + break; + } + pos_1207959901 += 1; + } + }; + } + else { + Label3: { + Label4: while (true) { + if (!(ConstSet68[my_p0.buf[pos_1207959901]] != undefined)) break Label4; + r_1207959902 = ((r_1207959902 * 10) + (my_p0.buf[pos_1207959901] - 48)); + pos_1207959901 += 1; + } + }; + } + + dest_p1[dest_p1_Idx].push.apply(dest_p1[dest_p1_Idx], nuctoUTF8(((r_1207959902) | 0)));; + } + else { + if ((((my_p0.buf[pos_1207959901] == 108) && (my_p0.buf[(pos_1207959901 + 1)] == 116)) && (my_p0.buf[(pos_1207959901 + 2)] == 59))) { + addChar(dest_p1[dest_p1_Idx], 60);; + pos_1207959901 += 2; + } + else { + if ((((my_p0.buf[pos_1207959901] == 103) && (my_p0.buf[(pos_1207959901 + 1)] == 116)) && (my_p0.buf[(pos_1207959901 + 2)] == 59))) { + addChar(dest_p1[dest_p1_Idx], 62);; + pos_1207959901 += 2; + } + else { + if (((((my_p0.buf[pos_1207959901] == 97) && (my_p0.buf[(pos_1207959901 + 1)] == 109)) && (my_p0.buf[(pos_1207959901 + 2)] == 112)) && (my_p0.buf[(pos_1207959901 + 3)] == 59))) { + addChar(dest_p1[dest_p1_Idx], 38);; + pos_1207959901 += 3; + } + else { + if ((((((my_p0.buf[pos_1207959901] == 97) && (my_p0.buf[(pos_1207959901 + 1)] == 112)) && (my_p0.buf[(pos_1207959901 + 2)] == 111)) && (my_p0.buf[(pos_1207959901 + 3)] == 115)) && (my_p0.buf[(pos_1207959901 + 4)] == 59))) { + addChar(dest_p1[dest_p1_Idx], 39);; + pos_1207959901 += 4; + } + else { + if ((((((my_p0.buf[pos_1207959901] == 113) && (my_p0.buf[(pos_1207959901 + 1)] == 117)) && (my_p0.buf[(pos_1207959901 + 2)] == 111)) && (my_p0.buf[(pos_1207959901 + 3)] == 116)) && (my_p0.buf[(pos_1207959901 + 4)] == 59))) { + addChar(dest_p1[dest_p1_Idx], 34);; + pos_1207959901 += 4; + } + else { + my_p0.bufpos = pos_1207959901; + var name_1207959988 = [[]]; + parseName__pureZparsexml_u329(my_p0, name_1207959988, 0); + pos_1207959901 = my_p0.bufpos; + if ((!((my_p0.err == 2)) && (my_p0.buf[pos_1207959901] == 59))) { + my_p0.kind = 12; + } + else { + addChar(dest_p1[dest_p1_Idx], 38);; + } + + dest_p1[dest_p1_Idx].push.apply(dest_p1[dest_p1_Idx], name_1207959988[0]);; + } + }}}}} + if ((my_p0.buf[pos_1207959901] == 59)) { + pos_1207959901 += 1; + } + else { + my_p0.err = 3; + } + + my_p0.bufpos = pos_1207959901; + + +} + +function parseCharData__pureZparsexml_u593(my_p0) { + var pos_1207960147 = my_p0.bufpos; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207960147]) { + case 0: + case 60: + case 38: + break Label1; + break; + case 13: + pos_1207960147 = handleCR__pureZlexbase_u83(my_p0, pos_1207960147); + addChar(my_p0.a, 10);; + break; + case 10: + pos_1207960147 = handleLF__pureZlexbase_u95(my_p0, pos_1207960147); + addChar(my_p0.a, 10);; + break; + case 47: + pos_1207960147 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207960147); + addChar(my_p0.a, 47);; + break; + default: + addChar(my_p0.a, my_p0.buf[pos_1207960147]);; + pos_1207960147 += 1; + break; + } + } + }; + my_p0.bufpos = pos_1207960147; + my_p0.kind = 2; + + +} + +function rawGetTok__pureZparsexml_u601(my_p0) { + my_p0.kind = 0; + if (my_p0.a.length < 0) { for (var i = my_p0.a.length; i < 0; ++i) my_p0.a.push(0); } + else {my_p0.a.length = 0; }; + var pos_1207960155 = my_p0.bufpos; + switch (my_p0.buf[pos_1207960155]) { + case 60: + switch (my_p0.buf[(pos_1207960155 + 1)]) { + case 47: + parseEndTag__pureZparsexml_u526(my_p0); + break; + case 33: + if ((((((((my_p0.buf[(pos_1207960155 + 2)] == 91) && (my_p0.buf[(pos_1207960155 + 3)] == 67)) && (my_p0.buf[(pos_1207960155 + 4)] == 68)) && (my_p0.buf[(pos_1207960155 + 5)] == 65)) && (my_p0.buf[(pos_1207960155 + 6)] == 84)) && (my_p0.buf[(pos_1207960155 + 7)] == 65)) && (my_p0.buf[(pos_1207960155 + 8)] == 91))) { + parseCDATA__pureZparsexml_u261(my_p0); + } + else { + if (((my_p0.buf[(pos_1207960155 + 2)] == 45) && (my_p0.buf[(pos_1207960155 + 3)] == 45))) { + parseComment__pureZparsexml_u279(my_p0); + } + else { + parseSpecial__pureZparsexml_u470(my_p0); + } + } + break; + case 63: + parsePI__pureZparsexml_u447(my_p0); + break; + default: + parseTag__pureZparsexml_u504(my_p0); + break; + } + break; + case 32: + case 9: + case 13: + case 10: + parseWhitespace__pureZparsexml_u318(my_p0, false); + my_p0.kind = 3; + break; + case 0: + my_p0.kind = 1; + break; + case 38: + parseEntity__pureZparsexml_u346(my_p0, my_p0, "a"); + break; + default: + parseCharData__pureZparsexml_u593(my_p0); + break; + } + + +} + +function getTok__pureZparsexml_u611(my_p0) { + Label1: { + Label2: while (true) { + if (!true) break Label2; + var lastKind_1207960165 = my_p0.kind; + rawGetTok__pureZparsexml_u601(my_p0); + switch (my_p0.kind) { + case 4: + if ((my_p0.options[1] != undefined)) { + break Label1; + } + + break; + case 3: + if (((my_p0.options[0] != undefined) || (ConstSet69[lastKind_1207960165] != undefined))) { + break Label1; + } + + break; + default: + break Label1; + break; + } + } + }; + + +} + +function parseAttribute__pureZparsexml_u533(my_p0) { + BeforeRet: { + my_p0.kind = 9; + if (my_p0.a.length < 0) { for (var i = my_p0.a.length; i < 0; ++i) my_p0.a.push(0); } + else {my_p0.a.length = 0; }; + if (my_p0.b.length < 0) { for (var i = my_p0.b.length; i < 0; ++i) my_p0.b.push(0); } + else {my_p0.b.length = 0; }; + parseName__pureZparsexml_u329(my_p0, my_p0, "a"); + if (((my_p0.a).length == 0)) { + markError__pureZparsexml_u242(my_p0, 5); + break BeforeRet; + } + + var startPos_1207960087 = my_p0.bufpos; + parseWhitespace__pureZparsexml_u318(my_p0, true); + if (!((my_p0.buf[my_p0.bufpos] == 61))) { + if ((!((my_p0.options[3] != undefined)) || (!((my_p0.buf[my_p0.bufpos] == 62)) && (my_p0.bufpos == startPos_1207960087)))) { + markError__pureZparsexml_u242(my_p0, 6); + } + + break BeforeRet; + } + + my_p0.bufpos += 1; + parseWhitespace__pureZparsexml_u318(my_p0, true); + var pos_1207960097 = my_p0.bufpos; + if ((ConstSet70[my_p0.buf[pos_1207960097]] != undefined)) { + var quote_1207960102 = my_p0.buf[pos_1207960097]; + var pendingSpace_1207960103 = false; + pos_1207960097 += 1; + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (my_p0.buf[pos_1207960097]) { + case 0: + markError__pureZparsexml_u242(my_p0, 7); + break Label1; + break; + case 38: + if (pendingSpace_1207960103) { + addChar(my_p0.b, 32);; + pendingSpace_1207960103 = false; + } + + my_p0.bufpos = pos_1207960097; + parseEntity__pureZparsexml_u346(my_p0, my_p0, "b"); + my_p0.kind = 9; + pos_1207960097 = my_p0.bufpos; + break; + case 32: + case 9: + pendingSpace_1207960103 = true; + pos_1207960097 += 1; + break; + case 13: + pos_1207960097 = handleCR__pureZlexbase_u83(my_p0, pos_1207960097); + pendingSpace_1207960103 = true; + break; + case 10: + pos_1207960097 = handleLF__pureZlexbase_u95(my_p0, pos_1207960097); + pendingSpace_1207960103 = true; + break; + case 47: + pos_1207960097 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207960097); + addChar(my_p0.b, 47);; + break; + default: + if ((my_p0.buf[pos_1207960097] == quote_1207960102)) { + pos_1207960097 += 1; + break Label1; + } + else { + if (pendingSpace_1207960103) { + addChar(my_p0.b, 32);; + pendingSpace_1207960103 = false; + } + + addChar(my_p0.b, my_p0.buf[pos_1207960097]);; + pos_1207960097 += 1; + } + + break; + } + } + }; + } + else { + if ((my_p0.options[2] != undefined)) { + var startPos_1207960129 = pos_1207960097; + Label3: { + Label4: while (true) { + var c_1207960130 = my_p0.buf[pos_1207960097]; + if (!!((ConstSet71[c_1207960130] != undefined))) break Label4; + if ((c_1207960130 == 38)) { + my_p0.bufpos = pos_1207960097; + parseEntity__pureZparsexml_u346(my_p0, my_p0, "b"); + my_p0.kind = 9; + pos_1207960097 = my_p0.bufpos; + } + else { + if ((c_1207960130 == 47)) { + pos_1207960097 = handleRefillChar__pureZlexbase_u107(my_p0, pos_1207960097); + addChar(my_p0.b, 47);; + } + else { + addChar(my_p0.b, c_1207960130);; + pos_1207960097 += 1; + } + } + } + }; + if ((pos_1207960097 == startPos_1207960129)) { + markError__pureZparsexml_u242(my_p0, 9); + } + + } + else { + markError__pureZparsexml_u242(my_p0, 7); + Label5: { + Label6: while (true) { + if (!(!((my_p0.buf[pos_1207960097] == 62)) && (32 < my_p0.buf[pos_1207960097]))) break Label6; + addChar(my_p0.b, my_p0.buf[pos_1207960097]);; + pos_1207960097 += 1; + } + }; + } + } + my_p0.bufpos = pos_1207960097; + parseWhitespace__pureZparsexml_u318(my_p0, true); + }; + + +} + +function next__pureZparsexml_u627(my_p0) { + switch (my_p0.state) { + case 1: + getTok__pureZparsexml_u611(my_p0); + break; + case 0: + my_p0.state = 1; + getTok__pureZparsexml_u611(my_p0); + if (((my_p0.kind == 5) && eqStrings(my_p0.a, [120,109,108]))) { + getTok__pureZparsexml_u611(my_p0); + } + + break; + case 2: + if ((my_p0.buf[my_p0.bufpos] == 62)) { + my_p0.kind = 10; + my_p0.bufpos += 1; + my_p0.state = 1; + } + else { + if ((my_p0.buf[my_p0.bufpos] == 47)) { + my_p0.bufpos = handleRefillChar__pureZlexbase_u107(my_p0, my_p0.bufpos); + if ((my_p0.buf[my_p0.bufpos] == 62)) { + my_p0.kind = 10; + my_p0.bufpos += 1; + my_p0.state = 3; + } + else { + markError__pureZparsexml_u242(my_p0, 5); + } + + } + else { + parseAttribute__pureZparsexml_u533(my_p0); + } + } + break; + case 3: + my_p0.state = 1; + my_p0.kind = 7; + if (!(my_p0.cIsEmpty)) { + my_p0.a = nimCopy(null, my_p0.c, NTI33554449); + } + + break; + case 4: + my_p0.kind = 0; + my_p0.state = 1; + break; + } + + +} + +function kind__pureZparsexml_u175(my_p0) { + var result_1207959729 = 0; + + BeforeRet: { + result_1207959729 = my_p0.kind; + break BeforeRet; + }; + + return result_1207959729; + +} + +function newXmlNode__pureZxmltree_u32(kind_p0) { + var result_1224736802 = null; + + result_1224736802 = {k: kind_p0, fText: [], fTag: [], s: [], fAttr: null, fClientData: 0}; + + return result_1224736802; + +} + +function newElement__pureZxmltree_u100(tag_p0) { + var Temporary1; + var Temporary2; + + var result_1224736870 = null; + + result_1224736870 = newXmlNode__pureZxmltree_u32(2); + var Temporary1 = result_1224736870; + if (ConstSet72[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fTag\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fTag = nimCopy(null, tag_p0, NTI33554449); + var Temporary2 = result_1224736870; + if (ConstSet73[Temporary2.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'s\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary2.k, NTI1224736772)); } + Temporary2.s = nimCopy(null, [], NTI1224736825); + + return result_1224736870; + +} + +function tag__pureZxmltree_u206(n_p0) { + var Temporary1; + + var result_1224736976 = []; + + var Temporary1 = n_p0; + if (ConstSet74[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fTag\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + result_1224736976 = Temporary1["fTag"]; + + return result_1224736976; + +} + +function add__pureZxmltree_u282(father_p0, son_p1) { + var Temporary1; + + var Temporary1 = father_p0; + if (ConstSet75[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'s\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.s.push(son_p1);; + + +} + +function addNode__OOZsrcZmargraveZsinglexml_u6(father_p0, son_p1) { + if (!((son_p1 == null))) { + add__pureZxmltree_u282(father_p0, son_p1); + } + + + +} + +function newComment__pureZxmltree_u149(comment_p0) { + var Temporary1; + + var result_1224736919 = null; + + result_1224736919 = newXmlNode__pureZxmltree_u32(5); + var Temporary1 = result_1224736919; + if (ConstSet76[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fText\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fText = nimCopy(null, comment_p0, NTI33554449); + + return result_1224736919; + +} + +function newText__pureZxmltree_u139(text_p0) { + var Temporary1; + + var result_1224736909 = null; + + result_1224736909 = newXmlNode__pureZxmltree_u32(0); + var Temporary1 = result_1224736909; + if (ConstSet77[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fText\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fText = nimCopy(null, text_p0, NTI33554449); + + return result_1224736909; + +} + +function attrsHEX3D__pureZxmltree_u744(n_p0, attr_p1) { + var Temporary1; + + var Temporary1 = n_p0; + if (ConstSet78[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fAttr\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fAttr = attr_p1; + + +} + +function newSeq__pureZstrtabs_u308(len_p0) { + var result_1258291512 = []; + + result_1258291512 = new Array(len_p0); for (var i = 0 ; i < len_p0 ; ++i) { result_1258291512[i] = {Field0: [], Field1: [], Field2: false}; } + return result_1258291512; + +} + +function nstnewStringTable(mode_p0) { + var result_1258291491 = null; + + result_1258291491 = {mode: mode_p0, counter: 0, data: newSeq__pureZstrtabs_u308(64), m_type: NTI1258291206}; + + return result_1258291491; + +} + +function hash__pureZhashes_u782(x_p0) { + var result_788529936 = 0; + + result_788529936 = Number(BigInt.asIntN(32, hashFarm__pureZhashes_u714((x_p0.slice(0, (x_p0).length - 1 + 1))))); + + return result_788529936; + +} + +function HEX21HEX26__pureZhashes_u3(h_p0, val_p1) { + var result_788529158 = 0; + + var h_788529159 = Number(BigInt.asUintN(32, BigInt(h_p0))); + var val_788529160 = Number(BigInt.asUintN(32, BigInt(val_p1))); + var res_788529161 = ((h_788529159 + val_788529160) >>> 0); + res_788529161 = ((res_788529161 + ((res_788529161 << 10) >>> 0)) >>> 0); + res_788529161 = ((res_788529161 ^ (res_788529161 >>> 6)) >>> 0); + result_788529158 = Number(BigInt.asIntN(32, BigInt(res_788529161))); + + return result_788529158; + +} + +function HEX21HEX24__pureZhashes_u18(h_p0) { + var result_788529172 = 0; + + var h_788529173 = Number(BigInt.asUintN(32, BigInt(h_p0))); + var res_788529178 = ((h_788529173 + ((h_788529173 << 3) >>> 0)) >>> 0); + res_788529178 = ((res_788529178 ^ (res_788529178 >>> 11)) >>> 0); + res_788529178 = ((res_788529178 + ((res_788529178 << 15) >>> 0)) >>> 0); + result_788529172 = Number(BigInt.asIntN(32, BigInt(res_788529178))); + + return result_788529172; + +} + +function hashIgnoreCase__pureZhashes_u861(x_p0) { + var result_788530015 = 0; + + var h_788530016 = 0; + Label1: { + var i_788530021 = 0; + var colontmp__536873004 = 0; + colontmp__536873004 = ((x_p0).length - 1); + var res_536873005 = 0; + Label2: { + Label3: while (true) { + if (!(res_536873005 <= colontmp__536873004)) break Label3; + i_788530021 = res_536873005; + var c_788530022 = x_p0[i_788530021]; + if ((ConstSet79[c_788530022] != undefined)) { + c_788530022 = (c_788530022 + 32); + } + + h_788530016 = HEX21HEX26__pureZhashes_u3(h_788530016, c_788530022); + res_536873005 += 1; + } + }; + }; + result_788530015 = HEX21HEX24__pureZhashes_u18(h_788530016); + + return result_788530015; + +} + +function hashIgnoreStyle__pureZhashes_u794(x_p0) { + var result_788529948 = 0; + + var h_788529949 = 0; + var i_788529950 = 0; + var xLen_788529951 = (x_p0).length; + Label1: { + Label2: while (true) { + if (!(i_788529950 < xLen_788529951)) break Label2; + var c_788529952 = x_p0[i_788529950]; + if ((c_788529952 == 95)) { + i_788529950 += 1; + } + else { + if ((ConstSet80[c_788529952] != undefined)) { + c_788529952 = (c_788529952 + 32); + } + + h_788529949 = HEX21HEX26__pureZhashes_u3(h_788529949, c_788529952); + i_788529950 += 1; + } + + } + }; + result_788529948 = HEX21HEX24__pureZhashes_u18(h_788529949); + + return result_788529948; + +} + +function myhash__pureZstrtabs_u137(t_p0, key_p1) { + var result_1258291340 = 0; + + switch (t_p0.mode) { + case 0: + result_1258291340 = hash__pureZhashes_u782(key_p1); + break; + case 1: + result_1258291340 = hashIgnoreCase__pureZhashes_u861(key_p1); + break; + case 2: + result_1258291340 = hashIgnoreStyle__pureZhashes_u794(key_p1); + break; + } + + return result_1258291340; + +} + +function cmpStrings(a_p0, b_p1) { + if (a_p0 == b_p1) return 0; + if (!a_p0) return -1; + if (!b_p1) return 1; + for (var i = 0; i < a_p0.length && i < b_p1.length; i++) { + var result = a_p0[i] - b_p1[i]; + if (result != 0) return result; + } + return a_p0.length - b_p1.length; + + + +} + +function cmp__system_u1446(x_p0, y_p1) { + var result_33557082 = 0; + + result_33557082 = cmpStrings(x_p0, y_p1); + + return result_33557082; + +} + +function toLowerAscii__stdZprivateZstrimpl_u1(c_p0) { + var result_1124073475 = 0; + + if ((ConstSet81[c_p0] != undefined)) { + result_1124073475 = (c_p0 + 32); + } + else { + result_1124073475 = c_p0; + } + + + return result_1124073475; + +} + +function nsuCmpIgnoreCase(a_p0, b_p1) { + var result_1006633149 = 0; + + BeforeRet: { + var aLenHEX60gensym20_1006633156 = (a_p0).length; + var bLenHEX60gensym20_1006633157 = (b_p1).length; + var iHEX60gensym20_1006633158 = 0; + var mHEX60gensym20_1006633159 = nimMin(aLenHEX60gensym20_1006633156, bLenHEX60gensym20_1006633157); + Label1: { + Label2: while (true) { + if (!(iHEX60gensym20_1006633158 < mHEX60gensym20_1006633159)) break Label2; + result_1006633149 = (toLowerAscii__stdZprivateZstrimpl_u1(a_p0[iHEX60gensym20_1006633158]) - toLowerAscii__stdZprivateZstrimpl_u1(b_p1[iHEX60gensym20_1006633158])); + if (!((result_1006633149 == 0))) { + break BeforeRet; + } + + iHEX60gensym20_1006633158 += 1; + } + }; + result_1006633149 = (aLenHEX60gensym20_1006633156 - bLenHEX60gensym20_1006633157); + }; + + return result_1006633149; + +} + +function nsuCmpIgnoreStyle(a_p0, b_p1) { + var Temporary7; + var Temporary8; + + var result_1006633174 = 0; + + BeforeRet: { + var aLenHEX60gensym24_1006633183 = (a_p0).length; + var bLenHEX60gensym24_1006633184 = (b_p1).length; + var iHEX60gensym24_1006633185 = 0; + var jHEX60gensym24_1006633186 = 0; + Label1: { + Label2: while (true) { + if (!true) break Label2; + Label3: { + Label4: while (true) { + if (!((iHEX60gensym24_1006633185 < aLenHEX60gensym24_1006633183) && (a_p0[iHEX60gensym24_1006633185] == 95))) break Label4; + iHEX60gensym24_1006633185 += 1; + } + }; + Label5: { + Label6: while (true) { + if (!((jHEX60gensym24_1006633186 < bLenHEX60gensym24_1006633184) && (b_p1[jHEX60gensym24_1006633186] == 95))) break Label6; + jHEX60gensym24_1006633186 += 1; + } + }; + if ((iHEX60gensym24_1006633185 < aLenHEX60gensym24_1006633183)) { + Temporary7 = toLowerAscii__stdZprivateZstrimpl_u1(a_p0[iHEX60gensym24_1006633185]); + } + else { + Temporary7 = 0; + } + + var aaHEX60gensym24_1006633197 = Temporary7; + if ((jHEX60gensym24_1006633186 < bLenHEX60gensym24_1006633184)) { + Temporary8 = toLowerAscii__stdZprivateZstrimpl_u1(b_p1[jHEX60gensym24_1006633186]); + } + else { + Temporary8 = 0; + } + + var bbHEX60gensym24_1006633198 = Temporary8; + result_1006633174 = (aaHEX60gensym24_1006633197 - bbHEX60gensym24_1006633198); + if (!((result_1006633174 == 0))) { + break BeforeRet; + } + + if ((aLenHEX60gensym24_1006633183 <= iHEX60gensym24_1006633185)) { + if ((bLenHEX60gensym24_1006633184 <= jHEX60gensym24_1006633186)) { + result_1006633174 = 0; + break BeforeRet; + } + + result_1006633174 = (-1); + break BeforeRet; + } + else { + if ((bLenHEX60gensym24_1006633184 <= jHEX60gensym24_1006633186)) { + result_1006633174 = 1; + break BeforeRet; + } + } + iHEX60gensym24_1006633185 += 1; + jHEX60gensym24_1006633186 += 1; + } + }; + }; + + return result_1006633174; + +} + +function myCmp__pureZstrtabs_u141(t_p0, a_p1, b_p2) { + var result_1258291345 = false; + + switch (t_p0.mode) { + case 0: + result_1258291345 = (cmp__system_u1446(a_p1, b_p2) == 0); + break; + case 1: + result_1258291345 = (nsuCmpIgnoreCase(a_p1, b_p2) == 0); + break; + case 2: + result_1258291345 = (nsuCmpIgnoreStyle(a_p1, b_p2) == 0); + break; + } + + return result_1258291345; + +} + +function nextTry__pureZstrtabs_u153(h_p0, maxHash_p1) { + var result_1258291356 = 0; + + result_1258291356 = ((h_p0 + 1) & maxHash_p1); + + return result_1258291356; + +} + +function rawGet__pureZstrtabs_u157(t_p0, key_p1) { + var result_1258291360 = 0; + + BeforeRet: { + var h_1258291364 = (myhash__pureZstrtabs_u137(t_p0, key_p1) & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!t_p0.data[h_1258291364].Field2) break Label2; + if (myCmp__pureZstrtabs_u141(t_p0, t_p0.data[h_1258291364].Field0, key_p1)) { + result_1258291360 = h_1258291364; + break BeforeRet; + } + + h_1258291364 = nextTry__pureZstrtabs_u153(h_1258291364, (t_p0.data).length - 1); + } + }; + result_1258291360 = (-1); + }; + + return result_1258291360; + +} + +function mustRehash__pureZstrtabs_u146(length_p0, counter_p1) { + var result_1258291349 = false; + + result_1258291349 = (((length_p0 * 2) < (counter_p1 * 3)) || ((length_p0 - counter_p1) < 4)); + + return result_1258291349; + +} + +function rawInsert__pureZstrtabs_u212(t_p0, data_p1, data_p1_Idx, key_p2, val_p3) { + var h_1258291420 = (myhash__pureZstrtabs_u137(t_p0, key_p2) & (data_p1[data_p1_Idx]).length - 1); + Label1: { + Label2: while (true) { + if (!data_p1[data_p1_Idx][h_1258291420].Field2) break Label2; + h_1258291420 = nextTry__pureZstrtabs_u153(h_1258291420, (data_p1[data_p1_Idx]).length - 1); + } + }; + data_p1[data_p1_Idx][h_1258291420].Field0 = nimCopy(null, key_p2, NTI33554449); + data_p1[data_p1_Idx][h_1258291420].Field1 = nimCopy(null, val_p3, NTI33554449); + data_p1[data_p1_Idx][h_1258291420].Field2 = true; + + +} + +function enlarge__pureZstrtabs_u224(t_p0) { + var Temporary4; + var Temporary5; + + var n_1258291426 = [[]]; + n_1258291426[0] = new Array(((t_p0.data).length * 2)); for (var i = 0 ; i < ((t_p0.data).length * 2) ; ++i) { n_1258291426[0][i] = {Field0: [], Field1: [], Field2: false}; } Label1: { + var i_1258291443 = 0; + var colontmp__536873013 = 0; + colontmp__536873013 = (t_p0.data).length - 1; + var res_536873014 = 0; + Label2: { + Label3: while (true) { + if (!(res_536873014 <= colontmp__536873013)) break Label3; + i_1258291443 = res_536873014; + if (t_p0.data[i_1258291443].Field2) { + Temporary4 = t_p0.data[i_1258291443].Field0; + t_p0.data[i_1258291443].Field0 = []; + Temporary5 = t_p0.data[i_1258291443].Field1; + t_p0.data[i_1258291443].Field1 = []; + rawInsert__pureZstrtabs_u212(t_p0, n_1258291426, 0, Temporary4, Temporary5); + } + + res_536873014 += 1; + } + }; + }; + var HEX3Atmp_536873017 = nimCopy(null, t_p0.data, NTI1258291205); + t_p0.data = n_1258291426[0]; + n_1258291426[0] = HEX3Atmp_536873017; + + +} + +function nstPut(t_p0, key_p1, val_p2) { + var index_1258291480 = rawGet__pureZstrtabs_u157(t_p0, key_p1); + if ((0 <= index_1258291480)) { + t_p0.data[index_1258291480].Field1 = nimCopy(null, val_p2, NTI33554449); + } + else { + if (mustRehash__pureZstrtabs_u146((t_p0.data).length, t_p0.counter)) { + enlarge__pureZstrtabs_u224(t_p0); + } + + rawInsert__pureZstrtabs_u212(t_p0, t_p0, "data", key_p1, val_p2); + t_p0.counter += 1; + } + + + +} + +function nstnewStringTableWithTableConstr(keyValuePairs_p0, mode_p1) { + var result_1258291569 = null; + + result_1258291569 = nstnewStringTable(mode_p1); + Label1: { + var key_1258291583 = []; + var val_1258291584 = []; + var i_536873000 = 0; + Label2: { + Label3: while (true) { + if (!(i_536873000 < (keyValuePairs_p0).length)) break Label3; + key_1258291583 = keyValuePairs_p0[i_536873000]["Field0"]; + val_1258291584 = keyValuePairs_p0[i_536873000]["Field1"]; + nstPut(result_1258291569, key_1258291583, val_1258291584); + i_536873000 += 1; + } + }; + }; + + return result_1258291569; + +} + +function attrs__pureZxmltree_u731(n_p0) { + var Temporary1; + + var result_1224737501 = null; + + var Temporary1 = n_p0; + if (ConstSet82[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fAttr\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + result_1224737501 = Temporary1.fAttr; + + return result_1224737501; + +} + +function newCData__pureZxmltree_u152(cdata_p0) { + var Temporary1; + + var result_1224736922 = null; + + result_1224736922 = newXmlNode__pureZxmltree_u32(3); + var Temporary1 = result_1224736922; + if (ConstSet83[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fText\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fText = nimCopy(null, cdata_p0, NTI33554449); + + return result_1224736922; + +} + +function newEntity__pureZxmltree_u155(entity_p0) { + var Temporary1; + + var result_1224736925 = null; + + result_1224736925 = newXmlNode__pureZxmltree_u32(4); + var Temporary1 = result_1224736925; + if (ConstSet84[Temporary1.k]===undefined) { raiseFieldError2(makeNimstrLit("field \'fText\' is not accessible for type \'XmlNodeObj\' using \'k = "), reprDiscriminant(Temporary1.k, NTI1224736772)); } + Temporary1.fText = nimCopy(null, entity_p0, NTI33554449); + + return result_1224736925; + +} + +function parse__OOZsrcZmargraveZsinglexml_u13(x_p0, errors_p1, errors_p1_Idx) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary7; + var Temporary8; + var Temporary9; + var Temporary10; + + var result_1191182366 = null; + + switch (kind__pureZparsexml_u175(x_p0)) { + case 4: + Temporary1 = x_p0.a; + x_p0.a = []; + result_1191182366 = newComment__pureZxmltree_u149(Temporary1); + next__pureZparsexml_u627(x_p0); + break; + case 2: + case 3: + Temporary2 = x_p0.a; + x_p0.a = []; + result_1191182366 = newText__pureZxmltree_u139(Temporary2); + next__pureZparsexml_u627(x_p0); + break; + case 5: + case 13: + next__pureZparsexml_u627(x_p0); + break; + case 0: + errors_p1[errors_p1_Idx] = true; + next__pureZparsexml_u627(x_p0); + break; + case 6: + Temporary3 = x_p0.a; + x_p0.a = []; + result_1191182366 = newElement__pureZxmltree_u100(Temporary3); + next__pureZparsexml_u627(x_p0); + untilElementEnd__OOZsrcZmargraveZsinglexml_u16(x_p0, result_1191182366, errors_p1, errors_p1_Idx); + break; + case 7: + errors_p1[errors_p1_Idx] = true; + break; + case 8: + Temporary4 = x_p0.a; + x_p0.a = []; + result_1191182366 = newElement__pureZxmltree_u100(Temporary4); + next__pureZparsexml_u627(x_p0); + attrsHEX3D__pureZxmltree_u744(result_1191182366, nstnewStringTableWithTableConstr([], 0)); + Label5: { + Label6: while (true) { + if (!true) break Label6; + switch (kind__pureZparsexml_u175(x_p0)) { + case 9: + Temporary7 = x_p0.a; + x_p0.a = []; + Temporary8 = x_p0.b; + x_p0.b = []; + nstPut(attrs__pureZxmltree_u731(result_1191182366), Temporary7, Temporary8); + next__pureZparsexml_u627(x_p0); + break; + case 10: + next__pureZparsexml_u627(x_p0); + break Label5; + break; + case 0: + errors_p1[errors_p1_Idx] = true; + next__pureZparsexml_u627(x_p0); + break Label5; + break; + default: + errors_p1[errors_p1_Idx] = true; + next__pureZparsexml_u627(x_p0); + break Label5; + break; + } + } + }; + untilElementEnd__OOZsrcZmargraveZsinglexml_u16(x_p0, result_1191182366, errors_p1, errors_p1_Idx); + break; + case 9: + case 10: + errors_p1[errors_p1_Idx] = true; + next__pureZparsexml_u627(x_p0); + break; + case 11: + Temporary9 = x_p0.a; + x_p0.a = []; + result_1191182366 = newCData__pureZxmltree_u152(Temporary9); + next__pureZparsexml_u627(x_p0); + break; + case 12: + Temporary10 = x_p0.a; + x_p0.a = []; + result_1191182366 = newEntity__pureZxmltree_u155(Temporary10); + next__pureZparsexml_u627(x_p0); + break; + case 1: + break; + } + + return result_1191182366; + +} + +function untilElementEnd__OOZsrcZmargraveZsinglexml_u16(x_p0, result_p1, errors_p2, errors_p2_Idx) { + BeforeRet: { + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (kind__pureZparsexml_u175(x_p0)) { + case 7: + if (eqStrings(x_p0.a, tag__pureZxmltree_u206(result_p1))) { + break BeforeRet; + } + else { + errors_p2[errors_p2_Idx] = true; + } + + break Label1; + break; + case 1: + errors_p2[errors_p2_Idx] = true; + break Label1; + break; + default: + addNode__OOZsrcZmargraveZsinglexml_u6(result_p1, parse__OOZsrcZmargraveZsinglexml_u13(x_p0, errors_p2, errors_p2_Idx)); + break; + } + } + }; + }; + + +} + +function parseXml__OOZsrcZmargraveZsinglexml_u158(text_p0, i_p1) { + var Temporary3; + + var result_1191182497 = {Field0: false, Field1: 0}; + + var errors_1191182498 = [false]; + var x_1191182499 = [({m_type: NTI1207959559, a: [], b: [], c: [], kind: 0, err: 0, state: 0, cIsEmpty: false, filename: [], options: {}, bufpos: 0, buf: [], input: null, lineNumber: 0, sentinel: 0, lineStart: 0, offsetBase: 0, refillChars: {}})]; + var stream_1191182500 = newStringStream__pureZstreams_u1133(text_p0); + setPosition__pureZstreams_u70(stream_1191182500, i_p1); + open__pureZparsexml_u65(x_1191182499[0], stream_1191182500, [], ConstSet64); + next__pureZparsexml_u627(x_1191182499[0]); + Label1: { + Label2: while (true) { + if (!true) break Label2; + switch (kind__pureZparsexml_u175(x_1191182499[0])) { + case 8: + case 6: + Temporary3 = x_1191182499[0].a; + x_1191182499[0].a = []; + var node_1191182515 = newElement__pureZxmltree_u100(Temporary3); + untilElementEnd__OOZsrcZmargraveZsinglexml_u16(x_1191182499[0], node_1191182515, errors_1191182498, 0); + result_1191182497["Field0"] = true; + break; + case 4: + case 13: + case 5: + case 11: + next__pureZparsexml_u627(x_1191182499[0]); + result_1191182497["Field0"] = true; + break; + case 7: + case 2: + case 3: + case 1: + result_1191182497["Field0"] = true; + break Label1; + break; + default: + result_1191182497["Field0"] = false; + break Label1; + break; + } + } + }; + result_1191182497["Field1"] = (i_p1 + x_1191182499[0].bufpos); + + return result_1191182497; + +} + +function parseAmpStr__converter_u1193(parser_p0) { + var Temporary1; + + var result_536872109 = [null]; + + BeforeRet: { + var initialPos_536872110 = parser_p0.pos; + if ((initialPos_536872110 < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) { + Temporary1 = parser_p0.str.charCodeAt(initialPos_536872110); + } + else { + Temporary1 = 32; + } + + var firstChar_536872111 = Temporary1; + switch (firstChar_536872111) { + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + parser_p0.pos += 2; + result_536872109[0] = "&"; + Label2: { + var ch_536872117 = 0; + Label3: { + Label4: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label4; + ch_536872117 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + add__OOZsrcZmargraveZcommon_u8(result_536872109, 0, ch_536872117); + if ((ch_536872117 == 59)) { + break Label2; + } + else { + if (!((Letters_1006632974[ch_536872117] != undefined))) { + parser_p0.pos = initialPos_536872110; + result_536872109[0] = "&"; + break BeforeRet; + } + } + parser_p0.pos += 1; + } + }; + }; + break; + case 35: + parser_p0.pos += 2; + result_536872109[0] = "&"; + Label5: { + var ch_536872127 = 0; + Label6: { + Label7: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label7; + ch_536872127 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + add__OOZsrcZmargraveZcommon_u8(result_536872109, 0, ch_536872127); + if ((ch_536872127 == 59)) { + break Label5; + } + else { + if (!((Digits_1006632978[ch_536872127] != undefined))) { + parser_p0.pos = initialPos_536872110; + result_536872109[0] = "&"; + break BeforeRet; + } + } + parser_p0.pos += 1; + } + }; + }; + break; + default: + result_536872109[0] = "&"; + break; + } + }; + + return result_536872109[0]; + +} + +function parseDelimed__converter_u126(parser_p0, delim_p2, singleLine_p3) { + var Temporary5; + var Temporary6; + var Temporary7; + var Temporary8; + var Temporary9; + var Temporary10; + var Temporary11; + var Temporary12; + var Temporary13; + var Temporary14; + var Temporary15; + var Temporary16; + var Temporary17; + var Temporary18; + var Temporary19; + var Temporary20; + var Temporary21; + var Temporary22; + var Temporary23; + var Temporary24; + var Temporary25; + var Temporary26; + var Temporary27; + var Temporary28; + + var result_536871044 = {Field0: 0, Field1: []}; + + BeforeRet: { + var HEX3Aenv_536872796 = null; + HEX3Aenv_536872796 = {m_type: NTI536872205, HEX3Astate: 0, singleLine1: false, elems2: [], lastStr3: null, initialPos4: 0}; + HEX3Aenv_536872796.singleLine1 = singleLine_p3; + var escaped_536871045 = false; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2 = nimCopy(null, [HEX3Aenv_536872796.lastStr3], NTI754974811); + Label1: { + var ch_536871060 = 0; + Label2: { + Label3: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label3; + ch_536871060 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + Label4: { + if (!(escaped_536871045)) { + HEX3Aenv_536872796.initialPos4 = parser_p0.pos; + switch (toJSStr(delim_p2)) { + case "": + break; + case "*": + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [42,42], 0)) { + var tmpTuple_536871795 = parseDelimed__converter_u126(parser_p0, [42,42], HEX3Aenv_536872796.singleLine1); + var finishReason_536871796 = tmpTuple_536871795["Field0"]; + var parsedElems_536871797 = nimCopy(null, tmpTuple_536871795["Field1"], NTI989855827); + if ((finishReason_536871796 == 0)) { + HEX3Aenv_536872796.elems2.push(newElem__OOZsrcZmargraveZelement_u114(16, parsedElems_536871797));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + break Label4; + } + else { + parser_p0.pos = HEX3Aenv_536872796.initialPos4; + if (!(surroundedWhitespace__OOZsrcZmargraveZparserZutils_u596(parser_p0, 0))) { + var colontmp__536872865 = 0; + var colontmp__536872866 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872865, Field1: nimCopy(null, colontmp__536872866, NTI754974811)}, NTI989855826); + break BeforeRet; + } + else { + var Temporary5 = HEX3Aenv_536872796.lastStr3; + if (ConstSet16[Temporary5.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary5.isText, NTI33554466)); } + add__converter_u899(Temporary5, "str"); + break Label4; + } + + } + + } + else { + if ((!(surroundedWhitespace__OOZsrcZmargraveZparserZutils_u596(parser_p0, 0)) && nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [42], 0))) { + parser_p0.pos -= 1; + var colontmp__536872867 = 0; + var colontmp__536872868 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872867, Field1: nimCopy(null, colontmp__536872868, NTI754974811)}, NTI989855826); + break BeforeRet; + } + } + break; + case "_": + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [95,95], 0)) { + var tmpTuple_536871826 = parseDelimed__converter_u126(parser_p0, [95,95], HEX3Aenv_536872796.singleLine1); + var finishReason_536871827 = tmpTuple_536871826["Field0"]; + var parsedElems_536871828 = nimCopy(null, tmpTuple_536871826["Field1"], NTI989855827); + if ((finishReason_536871827 == 0)) { + HEX3Aenv_536872796.elems2.push(newElem__OOZsrcZmargraveZelement_u114(19, parsedElems_536871828));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + break Label4; + } + else { + parser_p0.pos = HEX3Aenv_536872796.initialPos4; + if (onlyNextWhitespace__OOZsrcZmargraveZparserZutils_u604(parser_p0, 0)) { + var colontmp__536872869 = 0; + var colontmp__536872870 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872869, Field1: nimCopy(null, colontmp__536872870, NTI754974811)}, NTI989855826); + break BeforeRet; + } + else { + var Temporary6 = HEX3Aenv_536872796.lastStr3; + if (ConstSet17[Temporary6.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary6.isText, NTI33554466)); } + add__converter_u930(Temporary6, "str"); + break Label4; + } + + } + + } + else { + if ((onlyNextWhitespace__OOZsrcZmargraveZparserZutils_u604(parser_p0, 0) && nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [95], 0))) { + parser_p0.pos -= 1; + var colontmp__536872871 = 0; + var colontmp__536872872 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872871, Field1: nimCopy(null, colontmp__536872872, NTI754974811)}, NTI989855826); + break BeforeRet; + } + } + break; + case " ": + if ((Whitespace_1006632973[ch_536871060] != undefined)) { + parser_p0.pos -= 1; + var colontmp__536872873 = 0; + var colontmp__536872874 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872873, Field1: nimCopy(null, colontmp__536872874, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + break; + default: + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, delim_p2, 0)) { + parser_p0.pos -= 1; + var colontmp__536872875 = 0; + var colontmp__536872876 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872875, Field1: nimCopy(null, colontmp__536872876, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + break; + } + if (((HEX3Aenv_536872796.singleLine1 && (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [13,10], 0) || nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [10], 0))) || (!(HEX3Aenv_536872796.singleLine1) && (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [13,10,13,10], 0) || nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [10,10], 0))))) { + if ((HEX3Aenv_536872796.singleLine1 && ((delim_p2).length == 0))) { + parser_p0.pos -= 1; + } + else { + parser_p0.pos = HEX3Aenv_536872796.initialPos4; + } + + if (((delim_p2).length == 0)) { + Temporary7 = 1; + } + else { + Temporary7 = 0; + } + + var colontmp__536872877 = Temporary7; + var colontmp__536872878 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872877, Field1: nimCopy(null, colontmp__536872878, NTI754974811)}, NTI989855826); + break BeforeRet; + } + else { + if ((!(HEX3Aenv_536872796.singleLine1) && (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [13,10], 0) || nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [10], 0)))) { + parser_p0.pos -= 1; + var options_536871878 = nimCopy(null, parser_p0.options, NTI1157627908); + if (options_536871878.insertLineBreaks) { + HEX3Aenv_536872796.elems2.push(newElem__OOZsrcZmargraveZelement_u114(2, []));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + } + else { + var Temporary8 = HEX3Aenv_536872796.lastStr3; + if (ConstSet19[Temporary8.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary8.isText, NTI33554466)); } + add__OOZsrcZmargraveZcommon_u8(Temporary8, "str", ch_536871060); + } + + } + else { + if ((nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [32,32,13,10], 0) || nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [32,32,10], 0))) { + parser_p0.pos -= 1; + HEX3Aenv_536872796.elems2.push(newElem__OOZsrcZmargraveZelement_u114(2, []));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [96,96,96], 0)) { + HEX3Aenv_536872796.elems2.push(parseCodeBlock__converter_u989(parser_p0, 96));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [126,126,126], 0)) { + HEX3Aenv_536872796.elems2.push(parseCodeBlock__converter_u989(parser_p0, 126));; + HEX3Aenv_536872796.lastStr3 = newStr__OOZsrcZmargraveZelement_u57(""); + HEX3Aenv_536872796.elems2.push(HEX3Aenv_536872796.lastStr3);; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [94,40], 0)) { + Temporary9 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary9.ClP_0 = parseAux__converter_u157; Temporary9.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym69_536871976 = Temporary9(13, [41], parser_p0, ConstSet22); + if ((ConstSet23[reasonHEX60gensym69_536871976] != undefined)) { + var colontmp__536872879 = reasonHEX60gensym69_536871976; + var colontmp__536872880 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872879, Field1: nimCopy(null, colontmp__536872880, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [42,42], 0)) { + Temporary10 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary10.ClP_0 = parseAux__converter_u157; Temporary10.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym70_536871982 = Temporary10(16, [42,42], parser_p0, ConstSet24); + if ((ConstSet25[reasonHEX60gensym70_536871982] != undefined)) { + var colontmp__536872881 = reasonHEX60gensym70_536871982; + var colontmp__536872882 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872881, Field1: nimCopy(null, colontmp__536872882, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [95,95], 0)) { + Temporary11 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary11.ClP_0 = parseAux__converter_u157; Temporary11.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym71_536871988 = Temporary11(19, [95,95], parser_p0, ConstSet26); + if ((ConstSet27[reasonHEX60gensym71_536871988] != undefined)) { + var colontmp__536872883 = reasonHEX60gensym71_536871988; + var colontmp__536872884 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872883, Field1: nimCopy(null, colontmp__536872884, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [126,126], 0)) { + Temporary12 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary12.ClP_0 = parseAux__converter_u157; Temporary12.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym72_536871994 = Temporary12(20, [126,126], parser_p0, ConstSet28); + if ((ConstSet29[reasonHEX60gensym72_536871994] != undefined)) { + var colontmp__536872885 = reasonHEX60gensym72_536871994; + var colontmp__536872886 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872885, Field1: nimCopy(null, colontmp__536872886, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [33,91], 0)) { + Temporary13 = bracket__converter_u244.bind(HEX3Aenv_536872796); Temporary13.ClP_0 = bracket__converter_u244; Temporary13.ClE_0 = HEX3Aenv_536872796; + var reason_536871999 = Temporary13(true, parser_p0); + if ((ConstSet52[reason_536871999] != undefined)) { + var colontmp__536872887 = reason_536871999; + var colontmp__536872888 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872887, Field1: nimCopy(null, colontmp__536872888, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 123, 0)) { + var Temporary14 = HEX3Aenv_536872796.lastStr3; + if (ConstSet53[Temporary14.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary14.isText, NTI33554466)); } + if (null != (Temporary15 = parseCurly__converter_u1092(parser_p0), Temporary15)) { if (null == Temporary14.str) Temporary14.str = Temporary15; else Temporary14.str += Temporary15; }; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 91, 0)) { + Temporary16 = bracket__converter_u244.bind(HEX3Aenv_536872796); Temporary16.ClP_0 = bracket__converter_u244; Temporary16.ClE_0 = HEX3Aenv_536872796; + var reason_536872038 = Temporary16(false, parser_p0); + if ((ConstSet54[reason_536872038] != undefined)) { + var colontmp__536872889 = reason_536872038; + var colontmp__536872890 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872889, Field1: nimCopy(null, colontmp__536872890, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 96, 0)) { + Temporary17 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary17.ClP_0 = parseAux__converter_u157; Temporary17.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym77_536872044 = Temporary17(18, [96], parser_p0, ConstSet55); + if ((ConstSet56[reasonHEX60gensym77_536872044] != undefined)) { + var colontmp__536872891 = reasonHEX60gensym77_536872044; + var colontmp__536872892 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872891, Field1: nimCopy(null, colontmp__536872892, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if ((noAdjacentWhitespace__OOZsrcZmargraveZparserZutils_u608(parser_p0, 0) && nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 94, 0))) { + Temporary18 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary18.ClP_0 = parseAux__converter_u157; Temporary18.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym78_536872050 = Temporary18(13, [32], parser_p0, ConstSet57); + if ((ConstSet58[reasonHEX60gensym78_536872050] != undefined)) { + var colontmp__536872893 = reasonHEX60gensym78_536872050; + var colontmp__536872894 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872893, Field1: nimCopy(null, colontmp__536872894, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if ((!(surroundedWhitespace__OOZsrcZmargraveZparserZutils_u596(parser_p0, 0)) && nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 42, 0))) { + Temporary19 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary19.ClP_0 = parseAux__converter_u157; Temporary19.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym79_536872056 = Temporary19(15, [42], parser_p0, ConstSet59); + if ((ConstSet60[reasonHEX60gensym79_536872056] != undefined)) { + var colontmp__536872895 = reasonHEX60gensym79_536872056; + var colontmp__536872896 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872895, Field1: nimCopy(null, colontmp__536872896, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if ((onlyPrevWhitespace__OOZsrcZmargraveZparserZutils_u600(parser_p0, 0) && nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 95, 0))) { + Temporary20 = parseAux__converter_u157.bind(HEX3Aenv_536872796); Temporary20.ClP_0 = parseAux__converter_u157; Temporary20.ClE_0 = HEX3Aenv_536872796; + var reasonHEX60gensym80_536872062 = Temporary20(15, [95], parser_p0, ConstSet61); + if ((ConstSet62[reasonHEX60gensym80_536872062] != undefined)) { + var colontmp__536872897 = reasonHEX60gensym80_536872062; + var colontmp__536872898 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872897, Field1: nimCopy(null, colontmp__536872898, NTI754974811)}, NTI989855826); + break BeforeRet; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 60, 0)) { + parser_p0.pos -= 1; + var change_536872072 = false; + var pos_536872073 = 0; + var options_536872080 = nimCopy(null, parser_p0.options, NTI1157627908); + if (!((options_536872080.inlineHtmlHandler == null))) { + var tmpTupleAsgn_536872084 = options_536872080.inlineHtmlHandler(parser_p0.str, parser_p0.pos); + change_536872072 = tmpTupleAsgn_536872084["Field0"]; + pos_536872073 = tmpTupleAsgn_536872084["Field1"]; + } + else { + var tmpTupleAsgn_536872085 = parseXml__OOZsrcZmargraveZsinglexml_u158(cstrToNimstr(parser_p0.str), parser_p0.pos); + change_536872072 = tmpTupleAsgn_536872085["Field0"]; + pos_536872073 = tmpTupleAsgn_536872085["Field1"]; + } + + if (change_536872072) { + var Temporary21 = HEX3Aenv_536872796.lastStr3; + if (ConstSet85[Temporary21.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary21.isText, NTI33554466)); } + if (null != (Temporary22 = HEX5BHEX5D__OOZsrcZmargraveZcommon_u22(parser_p0.str, HEX2EHEX2E__stdZstrbasics_u48(parser_p0.pos, pos_536872073 - 1)), Temporary22)) { if (null == Temporary21.str) Temporary21.str = Temporary22; else Temporary21.str += Temporary22; }; + parser_p0.pos = (pos_536872073 - 1); + } + else { + var Temporary23 = HEX3Aenv_536872796.lastStr3; + if (ConstSet86[Temporary23.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary23.isText, NTI33554466)); } + if (null != "<") { if (null == Temporary23.str) Temporary23.str = "<"; else Temporary23.str += "<"; }; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 62, 0)) { + parser_p0.pos -= 1; + var Temporary24 = HEX3Aenv_536872796.lastStr3; + if (ConstSet87[Temporary24.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary24.isText, NTI33554466)); } + if (null != ">") { if (null == Temporary24.str) Temporary24.str = ">"; else Temporary24.str += ">"; }; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 38, 0)) { + var Temporary25 = HEX3Aenv_536872796.lastStr3; + if (ConstSet88[Temporary25.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary25.isText, NTI33554466)); } + if (null != (Temporary26 = parseAmpStr__converter_u1193(parser_p0), Temporary26)) { if (null == Temporary25.str) Temporary25.str = Temporary26; else Temporary25.str += Temporary26; }; + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 92, 0)) { + parser_p0.pos -= 1; + escaped_536871045 = true; + } + else { + var Temporary27 = HEX3Aenv_536872796.lastStr3; + if (ConstSet90[Temporary27.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary27.isText, NTI33554466)); } + add__OOZsrcZmargraveZcommon_u8(Temporary27, "str", ch_536871060); + } + }}}}}}}}}}}}}}}}}}} + } + else { + var Temporary28 = HEX3Aenv_536872796.lastStr3; + if (ConstSet91[Temporary28.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary28.isText, NTI33554466)); } + add__OOZsrcZmargraveZcommon_u8(Temporary28, "str", ch_536871060); + escaped_536871045 = false; + } + + }; + parser_p0.pos += 1; + } + }; + }; + var colontmp__536872900 = 1; + var colontmp__536872901 = nimCopy(null, HEX3Aenv_536872796.elems2, NTI754974811); + result_536871044 = nimCopy(result_536871044, {Field0: colontmp__536872900, Field1: nimCopy(null, colontmp__536872901, NTI754974811)}, NTI989855826); + }; + + return result_536871044; + +} + +function parseInline__converter_u120(parser_p0, singleLine_p2) { + var result_536871037 = []; + + var tmpTuple_536872164 = parseDelimed__converter_u126(parser_p0, [], singleLine_p2); + var finishReason_536872165 = tmpTuple_536872164["Field0"]; + var elems_536872166 = nimCopy(null, tmpTuple_536872164["Field1"], NTI989855827); + result_536871037 = nimCopy(null, elems_536872166, NTI989855827); + + return result_536871037; + +} + +function addLine__converter_u1263(parser_p0, context_p2, result_p3, result_p3_Idx, lastEmptyLine_p4) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary5; + var Temporary6; + + if (!((context_p2 == null))) { + var Temporary1 = context_p2; + if (ConstSet92[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + switch (Temporary1.tag) { + case 10: + case 9: + add__OOZsrcZmargraveZelement_u2786(context_p2, newElem__OOZsrcZmargraveZelement_u114(11, parseInline__converter_u120(parser_p0, true))); + break; + case 12: + var c_536872200 = parseInline__converter_u120(parser_p0, true); + if (!!(lastEmptyLine_p4)) Temporary3 = false; else { var Temporary4 = context_p2; + if (ConstSet93[Temporary4.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary4.isText, NTI33554466)); } + Temporary3 = !(((Temporary4.content).length == 0)); } if (!Temporary3) Temporary2 = false; else { var last_536872204 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2726(context_p2, 1); + if (!!(last_536872204.isText)) Temporary5 = false; else { var Temporary6 = last_536872204; + if (ConstSet94[Temporary6.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary6.isText, NTI33554466)); } + Temporary5 = (Temporary6.tag == 1); } Temporary2 = Temporary5; } if (Temporary2) { + addNewline__converter_u110(parser_p0, last_536872204); + add__OOZsrcZmargraveZelement_u2793(last_536872204, c_536872200); + } + else { + add__OOZsrcZmargraveZelement_u2786(context_p2, newElem__OOZsrcZmargraveZelement_u114(1, c_536872200)); + } + + break; + default: + break; + } + } + else { + result_p3[result_p3_Idx].push(newElem__OOZsrcZmargraveZelement_u114(1, parseInline__converter_u120(parser_p0, false)));; + } + + + +} + +function style__OOZsrcZmargraveZelement_u2719(elem_p0, style_p1) { + attr__OOZsrcZmargraveZelement_u601(elem_p0, "style", style_p1); + + +} + +function parseId__OOZsrcZmargraveZparser_u191(parser_p0, startChar_p1) { + var Temporary1; + + var result_989855938 = [null]; + + switch (startChar_p1) { + case 40: + Temporary1 = 41; + break; + case 91: + Temporary1 = 93; + break; + case 123: + Temporary1 = 125; + break; + default: + Temporary1 = 0; + break; + } + var idDelim_989855939 = Temporary1; + result_989855938[0] = ""; + Label2: { + Label3: while (true) { + var ch_989855940 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, ConstSet99, 0)) break Label3; + add__OOZsrcZmargraveZcommon_u8(result_989855938, 0, ch_989855940); + } + }; + (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, idDelim_989855939, 0)); + + return result_989855938[0]; + +} + +function getOrDefault__converter_u1590(t_p0, key_p1, default_p2) { + var Temporary1; + + var result_536872508 = []; + + result_536872508 = nimCopy(null, [], NTI1157627919); + var hcHEX60gensym120_536872516 = [0]; + var indexHEX60gensym120_536872523 = rawGet__converter_u585(t_p0, key_p1, hcHEX60gensym120_536872516, 0); + if ((0 <= indexHEX60gensym120_536872523)) { + Temporary1 = t_p0.data[indexHEX60gensym120_536872523].Field2; + } + else { + Temporary1 = default_p2; + } + + result_536872508 = nimCopy(null, Temporary1, NTI1157627919); + + return result_536872508; + +} + +function addLine__converter_u1702(parser_p0, context_p2, result_p3, result_p3_Idx, lastEmptyLine_p4) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary5; + var Temporary6; + + if (!((context_p2 == null))) { + var Temporary1 = context_p2; + if (ConstSet101[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + switch (Temporary1.tag) { + case 10: + case 9: + add__OOZsrcZmargraveZelement_u2793(context_p2, parseInline__converter_u120(parser_p0, true)); + break; + case 12: + var c_536872639 = parseInline__converter_u120(parser_p0, true); + if (!!(lastEmptyLine_p4)) Temporary3 = false; else { var Temporary4 = context_p2; + if (ConstSet102[Temporary4.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary4.isText, NTI33554466)); } + Temporary3 = !(((Temporary4.content).length == 0)); } if (!Temporary3) Temporary2 = false; else { var last_536872643 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2726(context_p2, 1); + if (!!(last_536872643.isText)) Temporary5 = false; else { var Temporary6 = last_536872643; + if (ConstSet103[Temporary6.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary6.isText, NTI33554466)); } + Temporary5 = (Temporary6.tag == 1); } Temporary2 = Temporary5; } if (Temporary2) { + addNewline__converter_u110(parser_p0, last_536872643); + add__OOZsrcZmargraveZelement_u2793(last_536872643, c_536872639); + } + else { + add__OOZsrcZmargraveZelement_u2793(context_p2, c_536872639); + } + + break; + default: + break; + } + } + else { + add__OOZsrcZmargraveZelement_u2796(result_p3, result_p3_Idx, parseInline__converter_u120(parser_p0, false)); + } + + + +} + +function parseTopLevel__converter_u32(parser_p0) { + var Temporary8; + var Temporary17; + var Temporary18; + var Temporary19; + var Temporary20; + var Temporary21; + var Temporary22; + var Temporary23; + var Temporary24; + var Temporary25; + var Temporary26; + var Temporary29; + var Temporary30; + var Temporary33; + var Temporary36; + var Temporary37; + + var result_536870948 = [[]]; + + var lastEmptyLine_536870949 = false; + Label1: { + var firstCh_536870950 = 0; + Label2: { + Label3: while (true) { + if (!(parser_p0.pos < ((parser_p0.str) == null ? 0 : (parser_p0.str).length))) break Label3; + firstCh_536870950 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + Label4: { + var context_536870951 = null; + Label5: { + var i_536870952 = 0; + Label6: { + Label7: while (true) { + if (!(i_536870952 < (parser_p0.contextStack).length)) break Label7; + var c_536870956 = parser_p0.contextStack[i_536870952]; + var Temporary8 = c_536870956; + if (ConstSet2[Temporary8.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary8.isText, NTI33554466)); } + switch (Temporary8.tag) { + case 9: + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, ConstSet3, 0)) { + Label9: { + Label10: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, InlineWhitespace_989855934, 0)) break Label10; + } + }; + } + else { + break Label6; + } + + break; + case 10: + var originalPos_536870957 = parser_p0.pos; + Label11: { + Label12: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, Digits_1006632978, 0)) break Label12; + } + }; + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 46, 0)) { + Label13: { + Label14: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, InlineWhitespace_989855934, 0)) break Label14; + } + }; + } + else { + parser_p0.pos = originalPos_536870957; + break Label6; + } + + break; + case 12: + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 62, 0)) { + Label15: { + Label16: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, InlineWhitespace_989855934, 0)) break Label16; + } + }; + } + else { + break Label6; + } + + break; + default: + break; + } + context_536870951 = c_536870956; + i_536870952 += 1; + } + }; + if (parser_p0.contextStack.length < i_536870952) { for (var i = parser_p0.contextStack.length ; i < i_536870952 ; ++i) parser_p0.contextStack.push(null); } + else { parser_p0.contextStack.length = i_536870952; }; + }; + switch (parser_p0.str.charCodeAt((parser_p0.pos + 0))) { + case 13: + case 10: + ((nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [13,10], 0) || nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [10], 0))); + parser_p0.pos -= 1; + lastEmptyLine_536870949 = true; + break Label4; + break; + case 9: + case 11: + case 12: + case 32: + if (!!((context_536870951 == null))) Temporary18 = false; else { var Temporary19 = context_536870951; + if (ConstSet6[Temporary19.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary19.isText, NTI33554466)); } + Temporary18 = !(((Temporary19.content).length == 0)); } if (Temporary18) { + Temporary17 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2726(context_536870951, 1); + } + else { + if (!(((result_536870948[0]).length == 0))) { + Temporary17 = (Temporary20 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2730(result_536870948[0], 1), Temporary20)[0][Temporary20[1]]; + } + else { + Temporary17 = null; + } + } + var last_536871009 = Temporary17; + if (!(!((last_536871009 == null)) && !(last_536871009.isText))) Temporary22 = false; else { var Temporary23 = last_536871009; + if (ConstSet9[Temporary23.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary23.isText, NTI33554466)); } + Temporary22 = (SpecialLineTags_989855927[Temporary23.tag] != undefined); } if (!Temporary22) Temporary21 = false; else { var last2_536871018 = HEX5BHEX5D__OOZsrcZmargraveZelement_u2726(last_536871009, 1); + var Temporary24 = last2_536871018; + if (ConstSet10[Temporary24.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary24.isText, NTI33554466)); } + Temporary21 = !(((Temporary24.content).length == 0)); } if (Temporary21) { + addNewline__converter_u110(parser_p0, last2_536871018); + add__OOZsrcZmargraveZelement_u2793(last2_536871018, parseInline__converter_u120(parser_p0, false)); + } + else { + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + + break; + case 35: + if ((context_536870951 == null)) Temporary25 = true; else { var Temporary26 = context_536870951; + if (ConstSet96[Temporary26.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary26.isText, NTI33554466)); } + Temporary25 = (ConstSet95[Temporary26.tag] != undefined); } if (Temporary25) { + Label27: { + Label28: while (true) { + if (!!((context_536870951 == null))) Temporary29 = false; else { var Temporary30 = context_536870951; + if (ConstSet97[Temporary30.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary30.isText, NTI33554466)); } + Temporary29 = (Temporary30.tag == 1); } if (!Temporary29) break Label28; + var last_536872241 = ((parser_p0.contextStack).length - 1); + context_536870951 = parser_p0.contextStack[last_536872241]; + if (parser_p0.contextStack.length < last_536872241) { for (var i = parser_p0.contextStack.length ; i < last_536872241 ; ++i) parser_p0.contextStack.push(null); } + else { parser_p0.contextStack.length = last_536872241; }; + if ((last_536872241 == 0)) { + break Label27; + } + + } + }; + var level_536872246 = 1; + Label31: { + Label32: while (true) { + if (!((level_536872246 < 6) && peekMatch__OOZsrcZmargraveZparserZutils_u506(parser_p0, 35, level_536872246))) break Label32; + level_536872246 += 1; + } + }; + parser_p0.pos += level_536872246; + var header_536872256 = newElem__OOZsrcZmargraveZelement_u114((2 + level_536872246), []); + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 124, 0)) { + style__OOZsrcZmargraveZelement_u2719(header_536872256, "text-align:center"); + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 60, 0)) { + style__OOZsrcZmargraveZelement_u2719(header_536872256, "text-align:left"); + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 62, 0)) { + style__OOZsrcZmargraveZelement_u2719(header_536872256, "text-align:right"); + } + }} + var ch_536872257 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, IdStarts_989855928, 0)) { + attr__OOZsrcZmargraveZelement_u601(header_536872256, "id", parseId__OOZsrcZmargraveZparser_u191(parser_p0, ch_536872257)); + } + + add__OOZsrcZmargraveZelement_u2793(header_536872256, parseInline__converter_u120(parser_p0, true)); + var elHEX60gensym101_536872264 = header_536872256; + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym101_536872264); + } + else { + result_536870948[0].push(elHEX60gensym101_536872264);; + } + + } + else { + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + + break; + case 42: + case 45: + case 43: + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, InlineWhitespace_989855934, 1)) { + var elHEX60gensym103_536872283 = newElem__OOZsrcZmargraveZelement_u114(9, []); + var elHEX60gensym104_536872285 = elHEX60gensym103_536872283; + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym104_536872285); + } + else { + result_536870948[0].push(elHEX60gensym104_536872285);; + } + + parser_p0.contextStack.push(elHEX60gensym103_536872283);; + context_536870951 = elHEX60gensym103_536872283; + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, IdStarts_989855928, 1)) { + var list_536872307 = newElem__OOZsrcZmargraveZelement_u114(9, []); + var item_536872308 = newElem__OOZsrcZmargraveZelement_u114(11, []); + attr__OOZsrcZmargraveZelement_u601(item_536872308, "id", parseId__OOZsrcZmargraveZparser_u191(parser_p0, parser_p0.str.charCodeAt((parser_p0.pos + (-1))))); + var Temporary33 = item_536872308; + if (ConstSet100[Temporary33.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary33.isText, NTI33554466)); } + Temporary33.content = nimCopy(null, parseInline__converter_u120(parser_p0, true), NTI989856080); + add__OOZsrcZmargraveZelement_u2786(list_536872307, item_536872308); + var elHEX60gensym108_536872315 = list_536872307; + var elHEX60gensym109_536872317 = elHEX60gensym108_536872315; + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym109_536872317); + } + else { + result_536870948[0].push(elHEX60gensym109_536872317);; + } + + parser_p0.contextStack.push(elHEX60gensym108_536872315);; + context_536870951 = elHEX60gensym108_536872315; + } + else { + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + } + break; + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + var originalPos_536872339 = parser_p0.pos; + parser_p0.pos += 1; + Label34: { + Label35: while (true) { + if (!nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, Digits_1006632978, 0)) break Label35; + } + }; + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 46, 0)) { + var list_536872345 = newElem__OOZsrcZmargraveZelement_u114(10, []); + var item_536872346 = newElem__OOZsrcZmargraveZelement_u114(11, []); + var ch_536872347 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, IdStarts_989855928, 0)) { + attr__OOZsrcZmargraveZelement_u601(item_536872346, "id", parseId__OOZsrcZmargraveZparser_u191(parser_p0, ch_536872347)); + } + + add__OOZsrcZmargraveZelement_u2793(item_536872346, parseInline__converter_u120(parser_p0, true)); + add__OOZsrcZmargraveZelement_u2786(list_536872345, item_536872346); + var elHEX60gensym113_536872354 = list_536872345; + var elHEX60gensym114_536872356 = elHEX60gensym113_536872354; + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym114_536872356); + } + else { + result_536870948[0].push(elHEX60gensym114_536872356);; + } + + parser_p0.contextStack.push(elHEX60gensym113_536872354);; + context_536870951 = elHEX60gensym113_536872354; + } + else { + parser_p0.pos = originalPos_536872339; + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + + break; + case 62: + var quote_536872378 = newElem__OOZsrcZmargraveZelement_u114(12, []); + parser_p0.pos += 1; + var ch_536872384 = parser_p0.str.charCodeAt((parser_p0.pos + 0)); + if (nextMatch__OOZsrcZmargraveZparserZutils_u621(parser_p0, IdStarts_989855928, 0)) { + attr__OOZsrcZmargraveZelement_u601(quote_536872378, "id", parseId__OOZsrcZmargraveZparser_u191(parser_p0, ch_536872384)); + } + + var elHEX60gensym117_536872386 = quote_536872378; + var elHEX60gensym118_536872388 = elHEX60gensym117_536872386; + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym118_536872388); + } + else { + result_536870948[0].push(elHEX60gensym118_536872388);; + } + + parser_p0.contextStack.push(elHEX60gensym117_536872386);; + context_536870951 = elHEX60gensym117_536872386; + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + break; + case 91: + var initialPos_536872410 = parser_p0.pos; + parser_p0.pos += 1; + var refNameFailed_536872416 = [false]; + var refName_536872422 = parseReferenceName__converter_u465(parser_p0, refNameFailed_536872416, 0); + if (!!(refNameFailed_536872416[0])) Temporary37 = false; else { parser_p0.pos += 1; + Temporary37 = nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 58, 0); } if (!Temporary37) Temporary36 = false; else { var tmpTuple_536872433 = parseLink__converter_u301(parser_p0, true); + var correct_536872434 = tmpTuple_536872433["Field0"]; + var link_536872435 = nimCopy(null, tmpTuple_536872433["Field1"], NTI1157627907); + Temporary36 = correct_536872434; } if (Temporary36) { + Label38: { + var el_536872527 = null; + var colontmp__536872770 = []; + colontmp__536872770 = getOrDefault__converter_u1590(parser_p0.linkReferrers, refName_536872422, []); + var i_536872771 = 0; + var L_536872772 = (colontmp__536872770).length; + Label39: { + Label40: while (true) { + if (!(i_536872771 < L_536872772)) break Label40; + el_536872527 = colontmp__536872770[i_536872771]; + if (!((((link_536872435.tip) == null ? 0 : (link_536872435.tip).length) == 0))) { + attrEscaped__OOZsrcZmargraveZelement_u2055(el_536872527, "title", link_536872435.tip); + } + + setLink__converter_u447(parser_p0, el_536872527, link_536872435); + i_536872771 += 1; + } + }; + }; + } + else { + parser_p0.pos = initialPos_536872410; + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + + break; + case 124: + if ((parser_p0.options.disableTextAlignExtension || !((context_536870951 == null)))) { + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + else { + parser_p0.pos += 1; + var align_536872562 = []; + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 60, 0)) { + align_536872562 = nimCopy(null, [116,101,120,116,45,97,108,105,103,110,58,108,101,102,116], NTI33554449); + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u612(parser_p0, 62, 0)) { + align_536872562 = nimCopy(null, [116,101,120,116,45,97,108,105,103,110,58,114,105,103,104,116], NTI33554449); + } + else { + align_536872562 = nimCopy(null, [116,101,120,116,45,97,108,105,103,110,58,99,101,110,116,101,114], NTI33554449); + } + } + var el_536872568 = newElem__OOZsrcZmargraveZelement_u114(1, parseInline__converter_u120(parser_p0, false)); + style__OOZsrcZmargraveZelement_u2719(el_536872568, toJSStr(align_536872562)); + result_536870948[0].push(el_536872568);; + } + + break; + default: + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [96,96,96], 0)) { + var elHEX60gensym125_536872585 = parseCodeBlock__converter_u989(parser_p0, 96); + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym125_536872585); + } + else { + result_536870948[0].push(elHEX60gensym125_536872585);; + } + + } + else { + if (nextMatch__OOZsrcZmargraveZparserZutils_u650(parser_p0, [126,126,126], 0)) { + var elHEX60gensym126_536872605 = parseCodeBlock__converter_u989(parser_p0, 126); + if (!((context_536870951 == null))) { + add__OOZsrcZmargraveZelement_u2786(context_536870951, elHEX60gensym126_536872605); + } + else { + result_536870948[0].push(elHEX60gensym126_536872605);; + } + + } + else { + if (peekMatch__OOZsrcZmargraveZparserZutils_u546(parser_p0, [123,33], 0)) { + addLine__converter_u1702(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + else { + addLine__converter_u1263(parser_p0, context_536870951, result_536870948, 0, lastEmptyLine_536870949); + } + }} + break; + } + lastEmptyLine_536870949 = false; + }; + parser_p0.pos += 1; + } + }; + }; + + return result_536870948[0]; + +} + +function parseMargrave__converter_u21(parser_p0) { + var result_536870943 = []; + + result_536870943 = nimCopy(null, parseTopLevel__converter_u32(parser_p0), NTI989856101); + + return result_536870943; + +} + +function parseMargrave__converter_u8(text_p0, options_p1) { + var result_536870931 = []; + + var parser_536870932 = [initMargraveParser__OOZsrcZmargraveZparserZdefs_u38(text_p0)]; + parser_536870932[0].options = nimCopy(parser_536870932[0].options, options_p1, NTI1157627908); + result_536870931 = nimCopy(null, parseMargrave__converter_u21(parser_536870932[0]), NTI687865867); + + return result_536870931; + +} + +function isEmpty__OOZsrcZmargraveZelement_u54(tag_p0) { + var Temporary1; + + var result_754974776 = false; + + switch (tag_p0) { + case 0: + case 2: + case 21: + case 22: + case 27: + case 28: + Temporary1 = true; + break; + default: + Temporary1 = false; + break; + } + result_754974776 = Temporary1; + + return result_754974776; + +} + +function hasKey__OOZsrcZmargraveZelement_u2101(t_p0, key_p1) { + var result_754976826 = false; + + var hc_754976831 = [0]; + result_754976826 = (0 <= rawGet__OOZsrcZmargraveZelement_u710(t_p0, key_p1, hc_754976831, 0)); + + return result_754976826; + +} + +function hasAttr__OOZsrcZmargraveZelement_u2061(elem_p0, key_p1) { + var Temporary1; + + var result_754976784 = false; + + var Temporary1 = elem_p0; + if (ConstSet107[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'attrs\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + result_754976784 = hasKey__OOZsrcZmargraveZelement_u2101(Temporary1.attrs, key_p1); + + return result_754976784; + +} + +function rawGet__OOZsrcZmargraveZelement_u256(t_p0, key_p1, hc_p2, hc_p2_Idx) { + var result_754974982 = 0; + + BeforeRet: { + hc_p2[hc_p2_Idx] = hash__pureZhashes_u785(key_p1); + if ((hc_p2[hc_p2_Idx] == 0)) { + hc_p2[hc_p2_Idx] = 314159265; + } + + if (((t_p0.data).length == 0)) { + result_754974982 = (-1); + break BeforeRet; + } + + var h_754975033 = (hc_p2[hc_p2_Idx] & (t_p0.data).length - 1); + Label1: { + Label2: while (true) { + if (!isFilled__pureZcollectionsZtables_u31(t_p0.data[h_754975033].Field0)) break Label2; + if (((t_p0.data[h_754975033].Field0 == hc_p2[hc_p2_Idx]) && (t_p0.data[h_754975033].Field2 == key_p1))) { + result_754974982 = h_754975033; + break BeforeRet; + } + + h_754975033 = nextTry__pureZcollectionsZtables_u34(h_754975033, (t_p0.data).length - 1); + } + }; + result_754974982 = ((-1) - h_754975033); + }; + + return result_754974982; + +} + +function raiseKeyError__OOZsrcZmargraveZelement_u545(key_p0) { + raiseException({message: ([107,101,121,32,110,111,116,32,102,111,117,110,100,58,32]).concat(cstrToNimstr(key_p0)), parent: null, m_type: NTI134217747, name: null, trace: [], up: null}, "KeyError"); + + +} + +function HEX5BHEX5D__OOZsrcZmargraveZelement_u249(t_p0, key_p1) { + var result_754974974 = null; + var result_754974974_Idx = 0; + + var hcHEX60gensym97_754974975 = [0]; + var indexHEX60gensym97_754975215 = rawGet__OOZsrcZmargraveZelement_u256(t_p0, key_p1, hcHEX60gensym97_754974975, 0); + if ((0 <= indexHEX60gensym97_754975215)) { + result_754974974 = t_p0.data[indexHEX60gensym97_754975215]; result_754974974_Idx = "Field3"; + } + else { + raiseKeyError__OOZsrcZmargraveZelement_u545(key_p1); + } + + + return [result_754974974, result_754974974_Idx]; + +} + +function attr__OOZsrcZmargraveZelement_u196(elem_p0, key_p1) { + var Temporary1; + var Temporary2; + + var result_754974919 = null; + + var Temporary1 = elem_p0; + if (ConstSet108[Temporary1.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'attrs\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + result_754974919 = (Temporary2 = HEX5BHEX5D__OOZsrcZmargraveZelement_u249(Temporary1.attrs, key_p1), Temporary2)[0][Temporary2[1]]; + + return result_754974919; + +} + +function toCstring__OOZsrcZmargraveZelement_u2832(x_p0) { + var result_754977555 = null; + + switch (x_p0) { + case 0: + result_754977555 = ""; + break; + case 1: + result_754977555 = "p"; + break; + case 2: + result_754977555 = "br"; + break; + case 3: + result_754977555 = "h1"; + break; + case 4: + result_754977555 = "h2"; + break; + case 5: + result_754977555 = "h3"; + break; + case 6: + result_754977555 = "h4"; + break; + case 7: + result_754977555 = "h5"; + break; + case 8: + result_754977555 = "h6"; + break; + case 9: + result_754977555 = "ul"; + break; + case 10: + result_754977555 = "ol"; + break; + case 11: + result_754977555 = "li"; + break; + case 12: + result_754977555 = "blockquote"; + break; + case 13: + result_754977555 = "sup"; + break; + case 14: + result_754977555 = "sub"; + break; + case 15: + result_754977555 = "em"; + break; + case 16: + result_754977555 = "strong"; + break; + case 17: + result_754977555 = "pre"; + break; + case 18: + result_754977555 = "code"; + break; + case 19: + result_754977555 = "u"; + break; + case 20: + result_754977555 = "s"; + break; + case 21: + result_754977555 = "img"; + break; + case 22: + result_754977555 = "input"; + break; + case 23: + result_754977555 = "a"; + break; + case 24: + result_754977555 = "picture"; + break; + case 25: + result_754977555 = "video"; + break; + case 26: + result_754977555 = "audio"; + break; + case 27: + result_754977555 = "source"; + break; + case 28: + result_754977555 = "unknownTag"; + break; + } + + return result_754977555; + +} + +function add__OOZsrcZmargraveZelement_u2954(x_p0, x_p0_Idx) { + if (null != "<") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "<"; else x_p0[x_p0_Idx] += "<"; }; + + +} + +function len__OOZsrcZmargraveZelement_u3002(t_p0) { + var result_754977726 = 0; + + result_754977726 = t_p0.counter; + + return result_754977726; + +} + +function add__OOZsrcZmargraveZelement_u3272(x_p0, x_p0_Idx) { + if (null != " ") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = " "; else x_p0[x_p0_Idx] += " "; }; + + +} + +function add__OOZsrcZmargraveZelement_u3276(x_p0, x_p0_Idx) { + if (null != "/") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = "/"; else x_p0[x_p0_Idx] += "/"; }; + + +} + +function add__OOZsrcZmargraveZelement_u3280(x_p0, x_p0_Idx) { + if (null != ">") { if (null == x_p0[x_p0_Idx]) x_p0[x_p0_Idx] = ">"; else x_p0[x_p0_Idx] += ">"; }; + + +} + +function toNativeString__OOZsrcZmargraveZelement_u2827(elem_p0) { + var Temporary1; + var Temporary2; + var Temporary3; + var Temporary4; + var Temporary6; + var Temporary10; + var Temporary13; + + var result_754977549 = [null]; + + if (elem_p0.isText) { + var Temporary1 = elem_p0; + if (ConstSet104[Temporary1.isText]===undefined) { raiseFieldError2(makeNimstrLit("field \'str\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary1.isText, NTI33554466)); } + result_754977549[0] = Temporary1.str; + } + else { + var Temporary2 = elem_p0; + if (ConstSet105[Temporary2.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary2.isText, NTI33554466)); } + var empty_754977550 = isEmpty__OOZsrcZmargraveZelement_u54(Temporary2.tag); + var tag_754977551 = null; + var Temporary3 = elem_p0; + if (ConstSet106[Temporary3.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary3.isText, NTI33554466)); } + switch (Temporary3.tag) { + case 0: + break; + case 28: + if (hasAttr__OOZsrcZmargraveZelement_u2061(elem_p0, "tag")) { + tag_754977551 = attr__OOZsrcZmargraveZelement_u196(elem_p0, "tag"); + empty_754977550 = hasAttr__OOZsrcZmargraveZelement_u2061(elem_p0, "emptyTag"); + } + + break; + default: + var Temporary4 = elem_p0; + if (ConstSet109[Temporary4.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'tag\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary4.isText, NTI33554466)); } + tag_754977551 = toCstring__OOZsrcZmargraveZelement_u2832(Temporary4.tag); + break; + } + if (!((((tag_754977551) == null ? 0 : (tag_754977551).length) == 0))) { + add__OOZsrcZmargraveZelement_u2954(result_754977549, 0); + if (null != tag_754977551) { if (null == result_754977549[0]) result_754977549[0] = tag_754977551; else result_754977549[0] += tag_754977551; }; + Label5: { + var attrName_754977990 = null; + var attrValue_754977991 = null; + var colontmp__536873024 = ({data: [], counter: 0, first: 0, last: 0}); + var Temporary6 = elem_p0; + if (ConstSet110[Temporary6.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'attrs\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary6.isText, NTI33554466)); } + colontmp__536873024 = nimCopy(colontmp__536873024, Temporary6.attrs, NTI754974734); + var L_536873026 = len__OOZsrcZmargraveZelement_u3002(colontmp__536873024); + if ((0 < colontmp__536873024.counter)) { + var h_536873027 = colontmp__536873024.first; + Label7: { + Label8: while (true) { + if (!(0 <= h_536873027)) break Label8; + var nxt_536873029 = colontmp__536873024.data[h_536873027].Field1; + if (isFilled__pureZcollectionsZtables_u31(colontmp__536873024.data[h_536873027].Field0)) { + attrName_754977990 = colontmp__536873024.data[h_536873027].Field2; + attrValue_754977991 = colontmp__536873024.data[h_536873027].Field3; + add__OOZsrcZmargraveZelement_u3272(result_754977549, 0); + if (null != attrName_754977990) { if (null == result_754977549[0]) result_754977549[0] = attrName_754977990; else result_754977549[0] += attrName_754977990; }; + if (!((((attrValue_754977991) == null ? 0 : (attrValue_754977991).length) == 0))) { + if (null != "=\"") { if (null == result_754977549[0]) result_754977549[0] = "=\""; else result_754977549[0] += "=\""; }; + if (null != attrValue_754977991) { if (null == result_754977549[0]) result_754977549[0] = attrValue_754977991; else result_754977549[0] += attrValue_754977991; }; + if (null != "\"") { if (null == result_754977549[0]) result_754977549[0] = "\""; else result_754977549[0] += "\""; }; + } + + } + + h_536873027 = nxt_536873029; + } + }; + } + + }; + if (empty_754977550) { + add__OOZsrcZmargraveZelement_u3276(result_754977549, 0); + } + + add__OOZsrcZmargraveZelement_u3280(result_754977549, 0); + } + + Label9: { + var cont_754978023 = null; + var colontmp__536873031 = []; + var Temporary10 = elem_p0; + if (ConstSet111[Temporary10.isText]!==undefined) { raiseFieldError2(makeNimstrLit("field \'content\' is not accessible for type \'MargraveElement\' using \'isText = "), reprDiscriminant(Temporary10.isText, NTI33554466)); } + colontmp__536873031 = Temporary10.content; + var i_536873032 = 0; + var L_536873033 = (colontmp__536873031).length; + Label11: { + Label12: while (true) { + if (!(i_536873032 < L_536873033)) break Label12; + cont_754978023 = colontmp__536873031[i_536873032]; + if (null != (Temporary13 = toNativeString__OOZsrcZmargraveZelement_u2827(cont_754978023), Temporary13)) { if (null == result_754977549[0]) result_754977549[0] = Temporary13; else result_754977549[0] += Temporary13; }; + i_536873032 += 1; + } + }; + }; + if (!(empty_754977550)) { + if (null != " + + + + + + + Margrave Reference + + + + +

this page is a bit broken right now

+
+
+
+To escape use \\
+
+# Heading1
+## Heading2
+### Heading3
+#### Heading4
+##### Heading5
+###### Heading6
+
+####{heading-id} Heading (new, makes heading-id the id of this heading)
+
+* Bullet points
++ Plus
+- Minus
+
+1. Numbered list
+2. Can be
+4. Any number
+.  or just a dot (new),
+    can also indent
+
+> Blockquotes
+>
+> can _be_ **formatted**
+
+```
+Code blocks
+Have no formatting
+
+HTML & chars < automatically > escaped
+```
+
+Inline formatting:
+
+Link: [text](url)
+      [text **can have formatting**](url "tooltip text")
+Image: ![](url)
+        ![alt text (image doesnt load)](url "tooltip text")
+Superscript (new): 4^(3) = 64
+Subscript (new): a[n] = 2n + 1
+Bold: **text**
+Underline: __text__
+italic: *text* _text_
+Strikethrough: ~~text~~
+Inline code (has formatting!): `text`
+Checkboxes anywhere in the document, not just lists: [ ] [x]
+Raw text with curly braces (new): {aaaa **aa** <span>angle brackets not escaped for raw HTML</span>}
+Nested curly braces: {aa {bb} cc {dd {ee}} ff}
+Inline code without formatting, can escape HTML chars: `{1 \< 3 ? _ * 3 + 3 * _ + 2 ** 2 ** 2 : 4 \& 2}`
+
+Inline HTML (no formatting inside): <table>
+  <tbody>
+    <tr>
+      <td>a 1</td>
+      <td>a 2</td>
+    </tr>
+    <tr>
+      <td>b 1</td>
+      <td>b 2</td>
+    </tr>
+  </tbody>
+</table>
+
+
+
+

To escape use \

+

Heading1

+

Heading2

+

Heading3

+

Heading4

+
Heading5
+
Heading6
+

Heading (new, makes heading-id the id of this heading)

+
  • Bullet points
  • Plus
  • Minus
+
  1. Numbered list
  2. Can be
  3. Any number
  4. or just a dot (new), + can also indent
+

Blockquotes

+ +

can be formatted

+
Code blocks
+      Have no formatting
+
+      HTML & chars < automatically > escaped
+      
+

Inline formatting:

+

Link: text + text can have formatting + Image: + alt text (image doesnt load) + Superscript (new): 43 = 64 + Subscript (new): an = 2n + 1 + Bold: text + Underline: text + italic: text text + Strikethrough: text + Inline code (has formatting!): text + Checkboxes anywhere in the document, not just lists: + Raw text with curly braces (new): aaaa **aa** angle brackets not escaped for raw HTML + Nested curly braces: aa {bb} cc {dd {ee}} ff + Inline code without formatting, can escape HTML chars: 1 < 3 ? _ * 3 + 3 * _ + 2 ** 2 ** 2 : 4 & 2

+

Inline HTML (no formatting inside): + + + + + + + + + + +
a 1a 2
b 1b 2
+

+
+
+ + diff --git a/docs/common.html b/docs/common.html new file mode 100644 index 0000000..b20e38d --- /dev/null +++ b/docs/common.html @@ -0,0 +1,279 @@ + + + + + + + +margrave/common + + + + + + + + + + + + + + + + +
+
+

margrave/common

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

+
+

Types

+
+
+
NativeString = string
+
+ + Most convenient string type to use for each backend. cstring on JS. + Source   +Edit   + +
+
+ +
+
+
+

Consts

+
+
+
margraveCurlyNoHtmlEscape {.booldefine.} = false
+
+ + The default compile time value of MargraveOptions.curlyNoHtmlEscape. + Source   +Edit   + +
+
+
+
margraveDelimedUseSubstrs {.booldefine.} = false
+
+ + Possible minor optimization. Not guaranteed to be faster. + Source   +Edit   + +
+
+
+
margraveNoDefaultHtmlHandler {.booldefine.} = false
+
+ + Define this to disable inline HTML at compile time completely, to circumvent the standard library XML parser dependency. This is overriden by MargraveParser.inlineHtmlHandler. + Source   +Edit   + +
+
+
+
margraveSingleLineStaticBool {.booldefine.} = false
+
+ + Possible minor optimization. Not guaranteed to be faster. + Source   +Edit   + +
+
+ +
+
+
+

Procs

+
+
+
+
func contains[I](arr: static array[I, string]; x: string): bool {.inline.}
+
+ + More efficient version of contains for static arrays of strings using case + Source   +Edit   + +
+
+ +
+
+
+
func toCstring[T: enum](x: T): cstring
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Templates

+
+
+
+
template moveCompat(x: untyped): untyped
+
+ + Compatibility replacement for move + Source   +Edit   + +
+
+ +
+
+
+
template toNativeString(x: char): NativeString
+
+ + + Source   +Edit   + +
+
+
+
template toNativeString(x: cstring): NativeString
+
+ + + Source   +Edit   + +
+
+
+
template toNativeString(x: string): NativeString
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/defs.html b/docs/defs.html new file mode 100644 index 0000000..cba6982 --- /dev/null +++ b/docs/defs.html @@ -0,0 +1,285 @@ + + + + + + + +margrave/parser/defs + + + + + + + + + + + + + + + + +
+
+

margrave/parser/defs

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

+
+

Imports

+
+ common, element +
+
+
+

Types

+
+ +
+
MargraveOptions {.byref.} = object
+  curlyNoHtmlEscape*: bool ## Define this to disable HTML escaping inside curly brackets
+                           ## (normally only formatting is disabled).
+                           ## 
+                           ## `true` value at compile time overrides runtime value.
+  insertLineBreaks*: bool    ## Inserts <br> on newlines.
+                             ## 
+                             ## `true` value at compile time overrides runtime value.
+  inlineHtmlHandler*: proc (str: NativeString; i: int): (bool, int) {.nimcall,
+      ...gcsafe.} ## Should parse a single HTML element starting at `i` in `str`,
+               ## returning `(true, pos)` if an HTML element has been correctly parsed
+               ## and `pos` is the immediate index after it or `(false, _)` if it has
+               ## not been correctly parsed.
+               ## 
+               ## Not nil value at compile time overrides runtime value.
+               ## 
+               ## See `singlexml.parseXml <singlexml.html#parseXml,string,int>`_.
+  codeBlockLanguageHandler*: proc (codeBlock: MargraveElement;
+                                   language: NativeString) {.nimcall, ...gcsafe.} ## Callback to use when a code block has a language attached.
+                                                                               ## `codeBlock` is modifiable.
+                                                                               ## 
+                                                                               ## If nil, any language name will be passed directly to the code block.
+                                                                               ## 
+                                                                               ## Not nil value at compile time overrides runtime value.
+  setLinkHandler*: proc (element: MargraveElement; link: Link) {.nimcall, ...gcsafe.} ## Handles when an element gets a link. `element` is modifiable.
+                                                                                   ## 
+                                                                                   ## Covers []() and ![]() syntax. If nil, `setLinkDefault` is called.
+                                                                                   ## 
+                                                                                   ## Not nil value at compile time overrides runtime value.
+  disableTextAlignExtension*: bool ## Disables non-standard text align extension for paragraphs.
+                                   ## 
+                                   ## `true` value at compile time overrides runtime value.
+
+ + + Source   +Edit   + +
+
+
+
MargraveParser {.byref.} = object
+  options*: MargraveOptions  ## Runtime options for the parser.
+                             ## Overriden by compile time options.
+  str*: NativeString
+  pos*: int
+  contextStack*: seq[MargraveElement] ## Stack of current top level contexts,
+                                      ## like lists or blockquotes.
+  linkReferrers*: Table[NativeString, seq[MargraveElement]] ## Table of link references to elements that use the reference.
+                                                            ## During parsing, when a reference link is found, it will modify
+                                                            ## elements that use the reference and add them the link.
+                                                            ## After parsing is done, if there are elements left in this table,
+                                                            ## then some references were left unset.
+
+ + A parser object. + Source   +Edit   + +
+
+ +
+
+
+

Consts

+
+
+
defaultParserOptions = (curlyNoHtmlEscape: false, insertLineBreaks: false,
+                        inlineHtmlHandler: nil, codeBlockLanguageHandler: nil,
+                        setLinkHandler: nil, disableTextAlignExtension: false)
+
+ + + Source   +Edit   + +
+
+ +
+
+
+

Procs

+
+
+
+
func initMargraveParser(text: sink NativeString): MargraveParser {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/element.html b/docs/element.html new file mode 100644 index 0000000..fa10450 --- /dev/null +++ b/docs/element.html @@ -0,0 +1,549 @@ + + + + + + + +margrave/element + + + + + + + + + + + + + + + + +
+
+

margrave/element

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

+
+

Imports

+
+ common +
+
+
+

Types

+
+
+
KnownTags = enum
+  tagNone = "", tagParagraph = "p", tagLineBreak = "br", tagHeader1 = "h1",
+  tagHeader2 = "h2", tagHeader3 = "h3", tagHeader4 = "h4", tagHeader5 = "h5",
+  tagHeader6 = "h6", tagUnorderedList = "ul", tagOrderedList = "ol",
+  tagListItem = "li", tagBlockquote = "blockquote", tagSuperscript = "sup",
+  tagSubscript = "sub", tagItalic = "em", tagBold = "strong",
+  tagPreformatted = "pre", tagCode = "code", tagUnderline = "u",
+  tagStrikethrough = "s", tagImage = "img", tagInput = "input", tagLinked = "a",
+  tagPicture = "picture", tagVideo = "video", tagAudio = "audio",
+  tagSource = "source", tagOther = "unknownTag"
+
+ + Enum of tags used in this library. + Source   +Edit   + +
+
+
+
MargraveElement {.acyclic.} = ref object
+  case isText*: bool
+  of true:
+    str*: NativeString       ## Text of a text element.
+                             ## Can contain HTML, escaping chars must be done beforehand.
+  else:
+    tag*: KnownTags ## The tag of an HTML element.
+                    ## 
+                    ## If equal to `otherTag`, the `tag` attribute is used.
+                    ## Such elements can also indicate having no ending tag
+                    ## with the `emptyTag` attribute.
+    attrs*: OrderedTable[NativeString, NativeString] ## Attributes of an HTML element.
+    content*: seq[MargraveElement] ## Inner HTML elements of an HTML element.
+
+ +

An individual node.

+

Can be text, or an HTML element.

+

HTML element contains tag, attributes, and sequence of nodes.

+ + Source   +Edit   + +
+
+ +
+
+
+

Consts

+
+
+
EmptyTags = {tagNone, tagLineBreak, tagImage, tagInput, tagSource, tagOther}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+

Procs

+
+
+
+
func `$`(elem: MargraveElement): string {....raises: [KeyError], tags: [],
+    forbids: [].}
+
+ + Outputs a margrave element as HTML. + Source   +Edit   + +
+
+ +
+
+
+
func `[]`(elem: MargraveElement; i: BackwardsIndex): MargraveElement {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func `[]`(elem: MargraveElement; i: int): MargraveElement {....raises: [],
+    tags: [], forbids: [].}
+
+ + Indexes elem.content. + Source   +Edit   + +
+
+ +
+
+
+
func `[]=`(elem: MargraveElement; i: BackwardsIndex; el: MargraveElement) {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + Indexes elem.content. + Source   +Edit   + +
+
+
+
func `[]=`(elem: MargraveElement; i: int; el: MargraveElement) {....raises: [],
+    tags: [], forbids: [].}
+
+ + Indexes elem.content. + Source   +Edit   + +
+
+ +
+
+
+
func add(elem, cont: MargraveElement) {....raises: [], tags: [], forbids: [].}
+
+ + Adds to elem.content. + Source   +Edit   + +
+
+
+
func add(elem: MargraveElement; cont: seq[MargraveElement]) {....raises: [],
+    tags: [], forbids: [].}
+
+ + Appends nodes to elem.content. + Source   +Edit   + +
+
+
+
func add(elem: MargraveElement; str: NativeString) {....raises: [], tags: [],
+    forbids: [].}
+
+ + Adds a text node to elem.content. + Source   +Edit   + +
+
+ +
+
+
+
proc attr(elem: MargraveElement; key, val: NativeString) {....raises: [], tags: [],
+    forbids: [].}
+
+ + Adds attribute to element + Source   +Edit   + +
+
+
+
proc attr(elem: MargraveElement; key: NativeString): NativeString {.
+    ...raises: [KeyError], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc attrEscaped(elem: MargraveElement; key, val: NativeString) {....raises: [],
+    tags: [], forbids: [].}
+
+ + Adds attribute to element escaped + Source   +Edit   + +
+
+ +
+
+
+
proc delAttr(elem: MargraveElement; key: NativeString) {....raises: [], tags: [],
+    forbids: [].}
+
+ + Deletes attribute of element + Source   +Edit   + +
+
+ +
+
+
+
proc hasAttr(elem: MargraveElement; key: NativeString): bool {....raises: [],
+    tags: [], forbids: [].}
+
+ + Checks if element has attribute + Source   +Edit   + +
+
+ +
+
+
+
func newElem(tag: KnownTags; content: seq[MargraveElement] = @[]): MargraveElement {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + Creates a new element node with tag tag and content nodes content. + Source   +Edit   + +
+
+ +
+
+
+
func newStr(s: NativeString): MargraveElement {....raises: [], tags: [],
+    forbids: [].}
+
+ + Creates a new text node with text s. + Source   +Edit   + +
+
+ +
+
+
+
func paragraphIfText(elem: MargraveElement): MargraveElement {....raises: [],
+    tags: [], forbids: [].}
+
+ + If elem is a text node, turns it into a <p> element. Otherwise returns elem. + Source   +Edit   + +
+
+ +
+
+
+
proc style(elem: MargraveElement; style: NativeString) {....raises: [], tags: [],
+    forbids: [].}
+
+ + Adds style to element + Source   +Edit   + +
+
+ +
+
+
+
func toCstring(elem: MargraveElement): cstring {....raises: [KeyError], tags: [],
+    forbids: [].}
+
+ + Outputs a margrave element as HTML as a cstring, mostly for JS. + Source   +Edit   + +
+
+ +
+
+
+
func toNativeString(elem: MargraveElement): NativeString {....raises: [KeyError],
+    tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Templates

+
+
+
+
template isEmpty(tag: KnownTags): bool
+
+ + Returns true if tag is an empty tag, i.e. it has no ending tag. + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/margrave.html b/docs/margrave.html new file mode 100644 index 0000000..755b064 --- /dev/null +++ b/docs/margrave.html @@ -0,0 +1,321 @@ + + + + + + + +margrave + + + + + + + + + + + + + + + + +
+
+

margrave

+
+ +
+ Source   +Edit   + +
+ +

Dialect of Markdown. +

Example

To escape use \\
+
+# Heading1
+## Heading2
+### Heading3
+#### Heading4
+##### Heading5
+###### Heading6
+
+####{heading-id} Heading (new, makes heading-id the id of this heading)
+
+* Bullet points
++ Plus
+- Minus
+
+1. Numbered list
+2. Can be
+4. Any number
+.  or just a dot (new),
+   can also indent
+
+> Blockquotes
+>
+> can _be_ **formatted**
+
+```
+Code blocks
+Have no formatting
+
+HTML & chars < automatically > escaped
+```
+
+Inline formatting:
+
+Link: [text](url)
+      [text **can have formatting**](url "tooltip text")
+Image: ![](url)
+       ![alt text (image doesnt load)](url "tooltip text")
+Superscript (new): 4^(3) = 64
+Subscript (new): a[n] = 2n + 1
+Bold: **text**
+Underline: __text__
+italic: *text* _text_
+Strikethrough: ~~text~~
+Inline code (has formatting!): `text`
+Checkboxes anywhere in the document, not just lists: [ ] [x]
+Unformatted text with curly braces (new): {aaa **aaa** __aaa__}
+Raw curly braces (HTML chars left unescaped): {! foo <span>bar</span>}
+Nested curly braces: {aa {bb} cc {dd {ee}} ff}
+Inline code without formatting: `{1 < 3 ? _ * 3 + 3 * _ + 2 ** 2 ** 2 : 4 & 2}`
+
+Inline HTML (no formatting inside, raw curly braces might be better): <table>
+  <tbody>
+    <tr>
+      <td>a 1</td>
+      <td>a 2</td>
+    </tr>
+    <tr>
+      <td>b 1</td>
+      <td>b 2</td>
+    </tr>
+  </tbody>
+</table>
+
+

turns into HTML:

+
<p>To escape use \</p>
+<h1> Heading1</h1>
+<h2> Heading2</h2>
+<h3> Heading3</h3>
+<h4> Heading4</h4>
+<h5> Heading5</h5>
+<h6> Heading6</h6>
+<h4 id="heading-id"> Heading (new, makes heading-id the id of this heading)</h4>
+<ul><li>Bullet points</li><li>Plus</li><li>Minus</li></ul>
+<ol><li> Numbered list</li><li>Can be</li><li>Any number</li><li>or just a dot (new),
+   can also indent</li></ol>
+<blockquote><p> Blockquotes</p><p>can <em>be</em> <strong>formatted</strong></p></blockquote>
+<pre>Code blocks
+Have no formatting
+
+HTML &amp; chars &lt; automatically &gt; escaped
+</pre>
+<p>Inline formatting:</p>
+<p>Link: <a href="url">text</a>
+      <a title="tooltip text" href="url">text <strong>can have formatting</strong></a>
+Image: <img src="url"/>
+       <img alt="alt text (image doesnt load)" title="tooltip text" src="url"/>
+Superscript (new): 4<sup>3</sup> = 64
+Subscript (new): a<sub>n</sub> = 2n + 1
+Bold: <strong>text</strong>
+Underline: <u>text</u>
+italic: <em>text</em> <em>text</em>
+Strikethrough: <s>text</s>
+Inline code (has formatting!): <code>text</code>
+Checkboxes anywhere in the document, not just lists: <input type="checkbox" disabled/> <input type="checkbox" disabled checked/>
+Unformatted text with curly braces (new): aaa **aaa** __aaa__
+Raw curly braces (HTML chars left unescaped):  foo <span>bar</span>
+Nested curly braces: aa {bb} cc {dd {ee}} ff
+Inline code without formatting: <code>1 &lt; 3 ? _ * 3 + 3 * _ + 2 ** 2 ** 2 : 4 &amp; 2</code></p>
+<p>Inline HTML (no formatting inside, raw curly braces might be better): <table>
+  <tbody>
+    <tr>
+      <td>a 1</td>
+      <td>a 2</td>
+    </tr>
+    <tr>
+      <td>b 1</td>
+      <td>b 2</td>
+    </tr>
+  </tbody>
+</table>
+</p>
+
+ +

Inline HTML note

Note: Nim's XML parser used for inline HTML uses StringStream from the streams module which does not work in JS for Nim version 1.2.x and earlier. To work around this, you can disable use of the XML parser, therefore disable inline HTML, by passing -d:margraveNoInlineHtml. This switch is available on all backends. You can still embed HTML inside curly braces.

+

+ +
+

Procs

+
+
+
+
proc parseMargrave(parser: ref MargraveParser;
+                   staticOptions: static MargraveOptions = defaultParserOptions): seq[
+    MargraveElement]
+
+ + Parses margrave with a reference to an already initialized parser. + Source   +Edit   + +
+
+
+
proc parseMargrave(parser: var MargraveParser;
+                   staticOptions: static MargraveOptions = defaultParserOptions): seq[
+    MargraveElement]
+
+ + Parses margrave with an already initialized parser. + Source   +Edit   + +
+
+
+
proc parseMargrave(text: sink (string | cstring);
+                   options: MargraveOptions = defaultParserOptions;
+                   staticOptions: static MargraveOptions = defaultParserOptions): seq[
+    MargraveElement]
+
+ + Alias of parseMargrave that takes any string as the argument. + Source   +Edit   + +
+
+
+
proc parseMargrave(text: sink NativeString;
+                   options: MargraveOptions = defaultParserOptions;
+                   staticOptions: static MargraveOptions = defaultParserOptions): seq[
+    MargraveElement]
+
+ + Parses a string of text in margrave and translates it to HTML line by line. Result is a sequence of MargraveElements, to simply generate HTML with no need for readability turn these all into strings with $ and join them with "". + Source   +Edit   + +
+
+
+
proc parseMargrave(text: sink openArray[char];
+                   options: MargraveOptions = defaultParserOptions;
+                   staticOptions: static MargraveOptions = defaultParserOptions): seq[
+    MargraveElement]
+
+ +

Alias of parseMargrave that takes openarraychar as the argument.

+

Currently copies.

+ + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/nimdoc.out.css b/docs/nimdoc.out.css new file mode 100644 index 0000000..0c399e4 --- /dev/null +++ b/docs/nimdoc.out.css @@ -0,0 +1,1036 @@ +/* +Stylesheet for use with Docutils/rst2html. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. + +Modified from Chad Skeeters' rst2html-style +https://bitbucket.org/cskeeters/rst2html-style/ + +Modified by Boyd Greenfield and narimiran +*/ + +:root { + --primary-background: #fff; + --secondary-background: ghostwhite; + --third-background: #e8e8e8; + --info-background: #50c050; + --warning-background: #c0a000; + --error-background: #e04040; + --border: #dde; + --text: #222; + --anchor: #07b; + --anchor-focus: #607c9f; + --input-focus: #1fa0eb; + --strong: #3c3c3c; + --hint: #9A9A9A; + --nim-sprite-base64: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN4AAAA9CAYAAADCt9ebAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDAxOjAzOjQ4KzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wM1QwMjoyODo0MSswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMi0wM1QwMjoyODo0MSswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozMzM0ZjAxYS0yMDExLWE1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"); + + --keyword: #5e8f60; + --identifier: #222; + --comment: #484a86; + --operator: #155da4; + --punctuation: black; + --other: black; + --escapeSequence: #c4891b; + --number: #252dbe; + --literal: #a4255b; + --program: #6060c0; + --option: #508000; + --raw-data: #a4255b; + + --clipboard-image-normal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: black' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E %3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2' /%3E %3C/svg%3E"); + --clipboard-image-selected: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: black' viewBox='0 0 20 20' fill='currentColor'%3E %3Cpath d='M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z' /%3E %3Cpath d='M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z' /%3E %3C/svg%3E"); + --clipboard-image: var(--clipboard-image-normal) +} + +[data-theme="dark"] { + --primary-background: #171921; + --secondary-background: #1e202a; + --third-background: #2b2e3b; + --info-background: #008000; + --warning-background: #807000; + --error-background: #c03000; + --border: #0e1014; + --text: #fff; + --anchor: #8be9fd; + --anchor-focus: #8be9fd; + --input-focus: #8be9fd; + --strong: #bd93f9; + --hint: #7A7C85; + --nim-sprite-base64: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAABMCAYAAABOBlMuAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDAxOjE4OjIyKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplZGViMzU3MC1iNmZjLWQy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"); + + --keyword: #ff79c6; + --identifier: #f8f8f2; + --comment: #6272a4; + --operator: #ff79c6; + --punctuation: #f8f8f2; + --other: #f8f8f2; + --escapeSequence: #bd93f9; + --number: #bd93f9; + --literal: #f1fa8c; + --program: #9090c0; + --option: #90b010; + --raw-data: #8be9fd; + + --clipboard-image-normal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: lightgray' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E %3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2' /%3E %3C/svg%3E"); + --clipboard-image-selected: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: lightgray' viewBox='0 0 20 20' fill='currentColor'%3E %3Cpath d='M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z' /%3E %3Cpath d='M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z' /%3E %3C/svg%3E"); + --clipboard-image: var(--clipboard-image-normal); +} + +@media (prefers-color-scheme: dark) { + [data-theme="auto"] { + --primary-background: #171921; + --secondary-background: #1e202a; + --third-background: #2b2e3b; + --info-background: #008000; + --warning-background: #807000; + --error-background: #c03000; + --border: #0e1014; + --text: #fff; + --anchor: #8be9fd; + --anchor-focus: #8be9fd; + --input-focus: #8be9fd; + --strong: #bd93f9; + --hint: #7A7C85; + --nim-sprite-base64: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARMAAABMCAYAAABOBlMuAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDAxOjE4OjIyKzAxOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0xMi0wM1QwMToyMDoxMCswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplZGViMzU3MC1iNmZjLWQy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"); + + --keyword: #ff79c6; + --identifier: #f8f8f2; + --comment: #6272a4; + --operator: #ff79c6; + --punctuation: #f8f8f2; + --other: #f8f8f2; + --escapeSequence: #bd93f9; + --number: #bd93f9; + --literal: #f1fa8c; + --program: #9090c0; + --option: #90b010; + --raw-data: #8be9fd; + + --clipboard-image-normal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: lightgray' fill='none' viewBox='0 0 24 24' stroke='currentColor'%3E %3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2' /%3E %3C/svg%3E"); + --clipboard-image-selected: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='color: lightgray' viewBox='0 0 20 20' fill='currentColor'%3E %3Cpath d='M8 3a1 1 0 011-1h2a1 1 0 110 2H9a1 1 0 01-1-1z' /%3E %3Cpath d='M6 3a2 2 0 00-2 2v11a2 2 0 002 2h8a2 2 0 002-2V5a2 2 0 00-2-2 3 3 0 01-3 3H9a3 3 0 01-3-3z' /%3E %3C/svg%3E"); + --clipboard-image: var(--clipboard-image-normal); + } +} + +.theme-select-wrapper { + display: flex; + align-items: center; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; } + +body { + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-weight: 400; + font-size: 1.125em; + line-height: 1.5; + color: var(--text); + background-color: var(--primary-background); } + +/* Skeleton grid */ +.container { + position: relative; + width: 100%; + max-width: 1050px; + margin: 0 auto; + padding: 0; + box-sizing: border-box; } + +.column, .columns { + width: 100%; + float: left; + box-sizing: border-box; + margin-left: 1%; } + +@media print { + #global-links, .link-seesrc, .theme-switch-wrapper, #searchInputDiv, .search-groupby { + display:none; + } + .columns { + width:100% !important; + } +} + +.column:first-child, .columns:first-child { + margin-left: 0; } + +.container .row { + display: flex; } + +.three.columns { + width: 25.0%; + height: 100vh; + position: sticky; + top: 0px; + overflow-y: auto; + padding: 2px; +} + +.nine.columns { + width: 75.0%; + padding-left: 1.5em; } + +.twelve.columns { + width: 100%; + margin-left: 0; } + +@media screen and (max-width: 860px) { + .three.columns { + display: none; + } + .nine.columns { + width: 98.0%; + } + body { + font-size: 1em; + line-height: 1.35; + } +} + +cite { + font-style: italic !important; } + + +/* Nim search input */ +div#searchInputDiv { + margin-bottom: 1em; +} +input#searchInput { + width: 80%; +} + +/* + * Some custom formatting for input forms. + * This also fixes input form colors on Firefox with a dark system theme on Linux. + */ +input { + -moz-appearance: none; + background-color: var(--secondary-background); + color: var(--text); + border: 1px solid var(--border); + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-size: 0.9em; + padding: 6px; +} + +input:focus { + border: 1px solid var(--input-focus); + box-shadow: 0 0 3px var(--input-focus); +} + +select { + -moz-appearance: none; + background-color: var(--secondary-background); + color: var(--text); + border: 1px solid var(--border); + font-family: "Lato", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; + font-size: 0.9em; + padding: 6px; +} + +select:focus { + border: 1px solid var(--input-focus); + box-shadow: 0 0 3px var(--input-focus); +} + +/* Docgen styles */ + +:target { + border: 2px solid #B5651D; + border-style: dotted; +} + +/* Links */ +a { + color: var(--anchor); + text-decoration: none; +} + +a span.Identifier { + text-decoration: underline; + text-decoration-color: #aab; +} + +a.reference-toplevel { + font-weight: bold; +} + +a.nimdoc { + word-spacing: 0.3em; +} + +a.toc-backref { + text-decoration: none; + color: var(--text); +} + +a.link-seesrc { + color: #607c9f; + font-size: 0.9em; + font-style: italic; +} + +a:hover, a:focus { + color: var(--anchor-focus); + text-decoration: underline; +} + +a:hover span.Identifier { + color: var(--anchor); +} + + +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +img { + width: auto; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; } + +@media print { + * { + color: black !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; } + + a, a:visited { + text-decoration: underline; } + + a[href]:after { + content: " (" attr(href) ")"; } + + abbr[title]:after { + content: " (" attr(title) ")"; } + + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; } + + pre, blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + + thead { + display: table-header-group; } + + tr, img { + page-break-inside: avoid; } + + img { + max-width: 100% !important; } + + @page { + margin: 0.5cm; } + + h1 { + page-break-before: always; } + + h1.title { + page-break-before: avoid; } + + p, h2, h3 { + orphans: 3; + widows: 3; } + + h2, h3 { + page-break-after: avoid; } +} + + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; } + +small { + font-size: 85%; } + +strong { + font-weight: 600; + font-size: 0.95em; + color: var(--strong); } + +em { + font-style: italic; } + +h1 { + font-size: 1.8em; + font-weight: 400; + padding-bottom: .25em; + border-bottom: 6px solid var(--third-background); + margin-top: 2.5em; + margin-bottom: 1em; + line-height: 1.2em; } + +h1.title { + padding-bottom: 1em; + border-bottom: 0px; + font-size: 2.5em; + text-align: center; + font-weight: 900; + margin-top: 0.75em; + margin-bottom: 0em; } + +h2 { + font-size: 1.3em; + margin-top: 2em; } + +h2.subtitle { + margin-top: 0em; + text-align: center; } + +h3 { + font-size: 1.125em; + font-style: italic; + margin-top: 1.5em; } + +h4 { + font-size: 1.125em; + margin-top: 1em; } + +h5 { + font-size: 1.125em; + margin-top: 0.75em; } + +h6 { + font-size: 1.1em; } + + +ul, ol { + padding: 0; + margin-top: 0.5em; + margin-left: 0.75em; } + +ul ul, ul ol, ol ol, ol ul { + margin-bottom: 0; + margin-left: 1.25em; } + +ul.simple > li { + list-style-type: circle; } + +ul.simple-boot li { + list-style-type: none; + margin-left: 0em; + margin-bottom: 0.5em; } + +ol.simple > li, ul.simple > li { + margin-bottom: 0.2em; + margin-left: 0.4em } + +ul.simple.simple-toc > li { + margin-top: 1em; } + +ul.simple-toc { + list-style: none; + font-size: 0.9em; + margin-left: -0.3em; + margin-top: 1em; } + +ul.simple-toc > li { + list-style-type: none; } + +ul.simple-toc-section { + list-style-type: circle; + margin-left: 0.8em; + color: #6c9aae; } + +ul.nested-toc-section { + list-style-type: circle; + margin-left: -0.75em; + color: var(--text); } + +ul.nested-toc-section > li { + margin-left: 1.25em; } + + +ol.arabic { + list-style: decimal; } + +ol.loweralpha { + list-style: lower-alpha; } + +ol.upperalpha { + list-style: upper-alpha; } + +ol.lowerroman { + list-style: lower-roman; } + +ol.upperroman { + list-style: upper-roman; } + +ul.auto-toc { + list-style-type: none; } + + +dl { + margin-bottom: 1.5em; } + +dt { + margin-bottom: -0.5em; + margin-left: 0.0em; } + +dd { + margin-left: 2.0em; + margin-bottom: 3.0em; + margin-top: 0.5em; } + + +hr { + margin: 2em 0; + border: 0; + border-top: 1px solid #aaa; } + +hr.footnote { + width: 25%; + border-top: 0.15em solid #999; + margin-bottom: 0.15em; + margin-top: 0.15em; +} +div.footnote-group { + margin-left: 1em; +} +div.footnote-label { + display: inline-block; + min-width: 1.7em; +} + +div.option-list { + border: 0.1em solid var(--border); +} +div.option-list-item { + padding-left: 12em; + padding-right: 0; + padding-bottom: 0.3em; + padding-top: 0.3em; +} +div.odd { + background-color: var(--secondary-background); +} +div.option-list-label { + margin-left: -11.5em; + margin-right: 0em; + min-width: 11.5em; + display: inline-block; + vertical-align: top; +} +div.option-list-description { + width: calc(100% - 1em); + padding-left: 1em; + padding-right: 0; + display: inline-block; +} + +blockquote { + font-size: 0.9em; + font-style: italic; + padding-left: 0.5em; + margin-left: 0; + border-left: 5px solid #bbc; +} + +blockquote.markdown-quote { + font-size: 0.9rem; /* use rem to avoid recursion */ + font-style: normal; +} + +.pre, span.tok { + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + font-weight: 500; + font-size: 0.85em; + color: var(--text); + background-color: var(--third-background); + padding-left: 3px; + padding-right: 3px; + border-radius: 4px; +} + +span.tok { + border: 1px solid #808080; + padding-bottom: 0.1em; + margin-right: 0.2em; +} + +.copyToClipBoard { + position: relative; +} + +pre { + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + color: var(--text); + font-weight: 500; + display: inline-block; + box-sizing: border-box; + min-width: 100%; + padding: 0.5em; + margin-top: 0.5em; + margin-bottom: 0.5em; + font-size: 0.85em; + white-space: pre !important; + overflow-y: hidden; + overflow-x: visible; + background-color: var(--secondary-background); + border: 1px solid var(--border); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.copyToClipBoardBtn { + visibility: hidden; + position: absolute; + width: 24px; + border-radius: 4px; + background-image: var(--clipboard-image); + right: 5px; + top: 13px; + background-color: var(--secondary-background); + padding: 11px; + border: 0; +} + +.copyToClipBoard:hover .copyToClipBoardBtn { + visibility: visible; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + + +/* Nim line-numbered tables */ +.line-nums-table { + width: 100%; + table-layout: fixed; } + +table.line-nums-table { + border-radius: 4px; + border: 1px solid var(--border); + background-color: var(--secondary-background); + border-collapse: separate; + margin-top: 15px; + margin-bottom: 25px; } + +.line-nums-table tbody { + border: none; } + +.line-nums-table td pre { + border: none; + background-color: transparent; } + +.line-nums-table td.blob-line-nums { + width: 28px; } + +.line-nums-table td.blob-line-nums pre { + color: #b0b0b0; + -webkit-filter: opacity(75%); + filter: opacity(75%); + text-align: right; + border-color: transparent; + background-color: transparent; + padding-left: 0px; + margin-left: 0px; + padding-right: 0px; + margin-right: 0px; } + + +table { + max-width: 100%; + background-color: transparent; + margin-top: 0.5em; + margin-bottom: 1.5em; + border-collapse: collapse; + border-color: var(--third-background); + border-spacing: 0; +} + +table:not(.line-nums-table) { + font-size: 0.9em; +} + +table th, table td { + padding: 0px 0.5em 0px; + border-color: var(--third-background); +} + +table th { + background-color: var(--third-background); + border-color: var(--third-background); + font-weight: bold; } + +table th.docinfo-name { + background-color: transparent; + text-align: right; +} + +table:not(.line-nums-table) tr:hover { + background-color: var(--third-background); } + + +/* rst2html default used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0; } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 !important; } + +.admonition { + padding: 0.3em; + background-color: var(--secondary-background); + border-left: 0.4em solid #7f7f84; + margin-bottom: 0.5em; + -webkit-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); + -moz-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); + box-shadow: 0 5px 8px -6px rgba(0,0,0,.2); +} +.admonition-info { + border-color: var(--info-background); +} +.admonition-info-text { + color: var(--info-background); +} +.admonition-warning { + border-color: var(--warning-background); +} +.admonition-warning-text { + color: var(--warning-background); +} +.admonition-error { + border-color: var(--error-background); +} +.admonition-error-text { + color: var(--error-background); +} + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 !important; } + +.last, .with-subtitle { + margin-bottom: 0 !important; } + +.hidden { + display: none; } + +blockquote.epigraph { + margin: 2em 5em; } + +dl.docutils dd { + margin-bottom: 0.5em; } + +object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { + overflow: hidden; } + + +div.figure { + margin-left: 2em; + margin-right: 2em; } + +div.footer, div.header { + clear: both; + text-align: center; + color: #666; + font-size: smaller; } + +div.footer { + padding-top: 5em; } + +div.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; } + +div.line-block div.line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; } + +div.topic { + margin: 2em; } + +div.search_results { + background-color: var(--third-background); + margin: 3vh 5vw; + padding: 1em; + border: 1px solid #4d4d4d; + position: fixed; + top: 10px; + isolation: isolate; + max-width: calc(100vw - 6em); + z-index: 1; + max-height: calc(100vh - 6em); + overflow-y: scroll;} + +div#global-links ul { + margin-left: 0; + list-style-type: none; } + +div#global-links > simple-boot { + margin-left: 3em; } + +hr.docutils { + width: 75%; } + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; } + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; } + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; } + +.align-left { + text-align: left; } + +.align-center { + clear: both; + text-align: center; } + +.align-right { + text-align: right; } + +/* reset inner alignment in figures */ +div.align-right { + text-align: inherit; } + +p.attribution { + text-align: right; + margin-left: 50%; } + +p.caption { + font-style: italic; } + +p.credits { + font-style: italic; + font-size: smaller; } + +p.label { + white-space: nowrap; } + +p.rubric { + font-weight: bold; + font-size: larger; + color: maroon; + text-align: center; } + +p.topic-title { + font-weight: bold; } + +pre.address { + margin-bottom: 0; + margin-top: 0; + font: inherit; } + +pre.literal-block, pre.doctest-block, pre.math, pre.code { + margin-left: 2em; + margin-right: 2em; } + +pre.code .ln { + color: grey; } + +/* line numbers */ +pre.code, code { + background-color: #eeeeee; } + +pre.code .comment, code .comment { + color: #5c6576; } + +pre.code .keyword, code .keyword { + color: #3B0D06; + font-weight: bold; } + +pre.code .literal.string, code .literal.string { + color: #0c5404; } + +pre.code .name.builtin, code .name.builtin { + color: #352b84; } + +pre.code .deleted, code .deleted { + background-color: #DEB0A1; } + +pre.code .inserted, code .inserted { + background-color: #A3D289; } + +span.classifier { + font-style: oblique; } + +span.classifier-delimiter { + font-weight: bold; } + +span.problematic { + color: #b30000; } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80%; } + +span.DecNumber { + color: var(--number); } + +span.BinNumber { + color: var(--number); } + +span.HexNumber { + color: var(--number); } + +span.OctNumber { + color: var(--number); } + +span.FloatNumber { + color: var(--number); } + +span.Identifier { + color: var(--identifier); } + +span.Keyword { + font-weight: 600; + color: var(--keyword); } + +span.StringLit { + color: var(--literal); } + +span.LongStringLit { + color: var(--literal); } + +span.CharLit { + color: var(--literal); } + +span.EscapeSequence { + color: var(--escapeSequence); } + +span.Operator { + color: var(--operator); } + +span.Punctuation { + color: var(--punctuation); } + +span.Comment, span.LongComment { + font-style: italic; + font-weight: 400; + color: var(--comment); } + +span.RegularExpression { + color: darkviolet; } + +span.TagStart { + color: darkviolet; } + +span.TagEnd { + color: darkviolet; } + +span.Key { + color: #252dbe; } + +span.Value { + color: #252dbe; } + +span.RawData { + color: var(--raw-data); } + +span.Assembler { + color: #252dbe; } + +span.Preprocessor { + color: #252dbe; } + +span.Directive { + color: #252dbe; } + +span.option { + font-weight: bold; + font-family: "Source Code Pro", Monaco, Menlo, Consolas, "Courier New", monospace; + color: var(--option); } + +span.Prompt { + font-weight: bold; + color: red; } + +span.ProgramOutput { + font-weight: bold; + color: #808080; } + +span.program { + font-weight: bold; + color: var(--program); + text-decoration: underline; + text-decoration-color: var(--hint); + text-decoration-thickness: 0.05em; + text-underline-offset: 0.15em; } + +span.Command, span.Rule, span.Hyperlink, +span.Label, span.Reference, span.Other { + color: var(--other); } + +/* Pop type, const, proc, and iterator defs in nim def blocks */ +dt pre > span.Identifier, dt pre > span.Operator { + color: var(--identifier); + font-weight: 700; } + +dt pre > span.Keyword ~ span.Identifier, dt pre > span.Identifier ~ span.Identifier, +dt pre > span.Operator ~ span.Identifier, dt pre > span.Other ~ span.Identifier { + color: var(--identifier); + font-weight: inherit; } + +/* Nim sprite for the footer (taken from main page favicon) */ +.nim-sprite { + display: inline-block; + width: 51px; + height: 14px; + background-position: 0 0; + background-size: 51px 14px; + -webkit-filter: opacity(50%); + filter: opacity(50%); + background-repeat: no-repeat; + background-image: var(--nim-sprite-base64); + margin-bottom: 5px; } + +span.pragmadots { + /* Position: relative frees us up to make the dots + look really nice without fucking up the layout and + causing bulging in the parent container */ + position: relative; + /* 1px down looks slightly nicer */ + top: 1px; + padding: 2px; + background-color: var(--third-background); + border-radius: 4px; + margin: 0 2px; + cursor: pointer; + font-size: 0.8em; } + +span.pragmadots:hover { + background-color: var(--hint); } + +span.pragmawrap { + display: none; } + +span.attachedType { + display: none; + visibility: hidden; } diff --git a/docs/parser.html b/docs/parser.html new file mode 100644 index 0000000..db5d8f5 --- /dev/null +++ b/docs/parser.html @@ -0,0 +1,443 @@ + + + + + + + +margrave/parser + + + + + + + + + + + + + + + + +
+
+

margrave/parser

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

+ +
+

Types

+
+
+
DelimFinishReason = enum
+  frDone, frReachedEnd, frFailed
+
+ + + Source   +Edit   + +
+
+ +
+
+
+

Consts

+
+
+
IdStarts = {'(', '[', '{', ':'}
+
+ + + Source   +Edit   + +
+
+
+
InlineWhitespace = {'\t', '\v'..'\f', ' '}
+
+ + + Source   +Edit   + +
+
+
+
LegalId = {'a'..'z', 'A'..'Z', '0'..'9', '-', '_', ':', '.'}
+
+ + + Source   +Edit   + +
+
+
+
SpecialLineTags = {tagUnorderedList, tagOrderedList, tagBlockquote}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+

Procs

+
+
+
+
proc parseAmpStr(parser; options: options:type): NativeString
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseBracket(parser; options: options:type; image: bool;
+                  singleLine: SingleLineBool): MargraveElement
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseCodeBlock(parser; options: options:type; delimChar: char): MargraveElement {.
+    inline.}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseCodeBlockStr(parser; options: options:type; delimChar: char): tuple[
+    language, code: NativeString]
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseCurly(parser; options: options:type): NativeString
+
+ +

Parses a curly bracket element.

+

If -d:margraveCurlyNoHtmlEscape is defined, initial ! characters are ignored and no HTML chars are escaped.

+ + Source   +Edit   + +
+
+ +
+
+
+
proc parseDelimed(parser; options: options:type; delim: string;
+                  singleLine: SingleLineBool): (DelimFinishReason,
+    seq[MargraveElement]) {....gcsafe.}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseId(parser; startChar: char): NativeString {....raises: [], tags: [],
+    forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
proc parseInline(parser; options: options:type; singleLine: SingleLineBool): seq[
+    MargraveElement] {.inline.}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
proc parseReferenceName(parser; options: options:type; failed: var bool): NativeString
+
+ + Does not reset position after failing. + Source   +Edit   + +
+
+ +
+
+
+
proc parseTopLevel(parser; options: options:type): seq[MargraveElement]
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Templates

+
+
+
+
template parseLine(parser; options): seq[MargraveElement]
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template parseSingleLine(parser; options): seq[MargraveElement]
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/singlexml.html b/docs/singlexml.html new file mode 100644 index 0000000..474586d --- /dev/null +++ b/docs/singlexml.html @@ -0,0 +1,120 @@ + + + + + + + +margrave/singlexml + + + + + + + + + + + + + + + + +
+
+

margrave/singlexml

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

Parses a single XML node using Nim's parsexml. Works for JS in versions >= 1.3. -d:margraveNoInlineHtml to not use this module in the parser.

+
+

Imports

+
+ common +
+
+
+

Procs

+
+
+
+
proc parseXml(text: string; i: int): (bool, int) {.
+    ...raises: [IOError, OSError, Exception], tags: [ReadIOEffect, RootEffect],
+    forbids: [].}
+
+ + Parse text starting with index i as a single XML node and return a tuple with a boolean indicating success and an integer indicating the index where parsing XML failed, or ended (so not inclusive). + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + + diff --git a/docs/utils.html b/docs/utils.html new file mode 100644 index 0000000..dae2ec8 --- /dev/null +++ b/docs/utils.html @@ -0,0 +1,758 @@ + + + + + + + +margrave/parser/utils + + + + + + + + + + + + + + + + +
+
+

margrave/parser/utils

+
+
+
+ + +
+ +
+ Search: +
+
+ Group by: + +
+ + +
+
+ Source   +Edit   + +
+ +

+
+

Imports

+
+ common, element, defs +
+
+
+

Types

+
+
+
MargraveParserVarMatcher = distinct var MargraveParser
+
+ + + Source   +Edit   + +
+
+ +
+
+
+

Procs

+
+
+
+
proc addNewline(parser: MargraveParser; options: static MargraveOptions;
+                elem: MargraveElement | seq[MargraveElement])
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func anyNext(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func anyPrev(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func escapeHtmlChar(ch: char): NativeString {....raises: [], tags: [], forbids: [].}
+
+ + Escapes &, < and > for html. + Source   +Edit   + +
+
+ +
+
+
+
func nextMatch(parser: var MargraveParser; pat: char; offset: int = 0): bool {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func nextMatch(parser: var MargraveParser; pat: char; offset: int = 0; len: int): bool {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func nextMatch(parser: var MargraveParser; pat: openArray[string];
+               offset: int = 0): bool {....raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func nextMatch(parser: var MargraveParser; pat: set[char]; offset: int = 0): bool {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func nextMatch(parser: var MargraveParser; pat: set[char]; offset: int = 0;
+               len: int): bool {....raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func nextMatch(parser: var MargraveParser; pat: string; offset: int = 0): bool {.
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func nextWhitespace(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func noAdjacentWhitespace(parser: MargraveParser; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func onlyNextWhitespace(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func onlyPrevWhitespace(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func peekMatch(parser: MargraveParser; pat: char; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func peekMatch(parser: MargraveParser; pat: char; offset: int = 0; len: Natural): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func peekMatch(parser: MargraveParser; pat: openArray[string]; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func peekMatch(parser: MargraveParser; pat: set[char]; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func peekMatch(parser: MargraveParser; pat: set[char]; offset: int = 0;
+               len: Natural): bool {.inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+
+
func peekMatch(parser: MargraveParser; pat: string; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func peekPrevMatch(parser: MargraveParser; pat: char | set[char];
+                   offset: int = 0): bool {.inline.}
+
+ + + Source   +Edit   + +
+
+
+
func peekPrevMatch(parser: MargraveParser; pat: string; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
func prevWhitespace(parser: MargraveParser; offset: int = 0): bool {.inline,
+    ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+ + +
+
+
+
func surroundedWhitespace(parser: MargraveParser; offset: int = 0): bool {.
+    inline, ...raises: [], tags: [], forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Iterators

+
+
+
+
iterator nextChars(parser: var MargraveParser): char {....raises: [], tags: [],
+    forbids: [].}
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Macros

+
+
+
+
macro match(parserMatcher: MargraveParserVarMatcher): untyped
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
macro matchNext(parser: var MargraveParser; branches: varargs[untyped])
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+
+

Templates

+
+
+
+
template `case`(parserMatcher: MargraveParserVarMatcher): untyped
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template get(parser: MargraveParser; offset: int = 0): char
+
+ + + Source   +Edit   + +
+
+
+
template get(parser: MargraveParser; offset: int = 0; len: int): NativeString
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template nextMatch(parser: var MargraveParser): MargraveParserVarMatcher
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template noNext(parser: MargraveParser; offset: int = 0): bool
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template noPrev(parser: MargraveParser; offset: int = 0): bool
+
+ + + Source   +Edit   + +
+
+ +
+
+
+
template withOptions(parser: MargraveParser;
+                     compileTimeOptions: static MargraveOptions; cond, body): untyped
+
+ + + Source   +Edit   + +
+
+
+
template withOptions(parser: MargraveParser;
+                     compileTimeOptions: static MargraveOptions;
+                     cond, body, elseBody): untyped
+
+ + + Source   +Edit   + +
+
+ +
+ +
+
+ +
+
+ + +
+
+ + +