aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorps-george <george.punter15@imperial.ac.uk>2018-03-23 10:24:21 +0000
committerGitHub <noreply@github.com>2018-03-23 10:24:21 +0000
commit44175b8b32bd3f828590ec8a7a0379acabbe8a3d (patch)
treede91a7a7ed9bbecdfaa18ea4deeee105a6350200
parent87f6d76afb3ed49a2372acb7ea7b22e258a75c0b (diff)
downloadFMark-44175b8b32bd3f828590ec8a7a0379acabbe8a3d.tar.gz
FMark-44175b8b32bd3f828590ec8a7a0379acabbe8a3d.zip
Include fail (#170)
* Going through ps-george list for readmes_examples * separating vanilla markdown into implemented list and design decisions * Updating format * moving build passing * adding link to examples.fmark * Individual README * README updates * Update README.md * Update README.md * Update README.md * Update README.md * typo fix * Adding CLI and markalc docs * remove .html file, can generate from example.fmark * README update * [Doc] Updating readme * adding newline before TOC * Adding reamde * change TOC syntax in readmes * print file path if include fail * fix grammar issuse in readme * final js build and include fail visibily
-rw-r--r--FMark/js/fmark.js795
-rw-r--r--FMark/js/fmark.js.map2
-rw-r--r--FMark/src/Common/FableFileIO.fs2
-rw-r--r--FMark/src/Common/Lexer/README.md6
-rw-r--r--FMark/src/Common/Parser/README.md158
-rw-r--r--FMark/src/Common/Parser/Tests.md83
-rw-r--r--FMark/src/Common/TOCite/README.md2
-rw-r--r--README.md8
-rw-r--r--examples/example.fmark1
9 files changed, 529 insertions, 528 deletions
diff --git a/FMark/js/fmark.js b/FMark/js/fmark.js
index 7813b7a..3e1a466 100644
--- a/FMark/js/fmark.js
+++ b/FMark/js/fmark.js
@@ -3359,14 +3359,13 @@ function bind(f, result) {
/* unused harmony export charMap */
/* unused harmony export $7C$CharTok$7C$_$7C$ */
/* harmony export (immutable) */ __webpack_exports__["e"] = mapTok;
-/* harmony export (immutable) */ __webpack_exports__["k"] = strAllToks;
+/* harmony export (immutable) */ __webpack_exports__["j"] = strAllToks;
/* harmony export (immutable) */ __webpack_exports__["d"] = mapLang;
-/* harmony export (immutable) */ __webpack_exports__["l"] = xOnwards;
+/* harmony export (immutable) */ __webpack_exports__["k"] = xOnwards;
/* harmony export (immutable) */ __webpack_exports__["i"] = sOnwards;
/* harmony export (immutable) */ __webpack_exports__["g"] = removeChars;
/* harmony export (immutable) */ __webpack_exports__["h"] = replaceChars;
/* unused harmony export removeWhitespace */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return sharedLog; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Map__ = __webpack_require__(12);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
@@ -3377,8 +3376,6 @@ function bind(f, result) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_RegExp__ = __webpack_require__(16);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Logger_Logger_fs__ = __webpack_require__(10);
-
@@ -3504,7 +3501,6 @@ function replaceChars(pat, rep, s) {
function removeWhitespace(s) {
return removeChars(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])(["\n", "\t", "\r", " "]), s);
}
-var sharedLog = new __WEBPACK_IMPORTED_MODULE_10__Logger_Logger_fs__["a" /* Logger */](2);
/***/ }),
/* 10 */
@@ -3512,10 +3508,10 @@ var sharedLog = new __WEBPACK_IMPORTED_MODULE_10__Logger_Logger_fs__["a" /* Logg
"use strict";
/* unused harmony export logLevelStr */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Logger; });
-/* harmony export (immutable) */ __webpack_exports__["c"] = logPass;
-/* harmony export (immutable) */ __webpack_exports__["d"] = logPassN;
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return globLog; });
+/* unused harmony export Logger */
+/* harmony export (immutable) */ __webpack_exports__["b"] = logPass;
+/* harmony export (immutable) */ __webpack_exports__["c"] = logPassN;
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return globLog; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Map__ = __webpack_require__(12);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Comparer__ = __webpack_require__(13);
@@ -5722,7 +5718,6 @@ function splitAt(index, xs) {
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* unused harmony export logger */
/* unused harmony export SPACE */
/* unused harmony export NOSTRING */
/* unused harmony export TEmphasis */
@@ -5763,18 +5758,18 @@ function splitAt(index, xs) {
/* harmony export (immutable) */ __webpack_exports__["h"] = cutTableRows;
/* harmony export (immutable) */ __webpack_exports__["k"] = parseInLineElements2;
/* harmony export (immutable) */ __webpack_exports__["j"] = parseInLineElements;
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger_Logger_fs__ = __webpack_require__(10);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__ = __webpack_require__(2);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__ = __webpack_require__(3);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Types_fs__ = __webpack_require__(7);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Shared_fs__ = __webpack_require__(9);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_Result__ = __webpack_require__(8);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__ = __webpack_require__(2);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__ = __webpack_require__(3);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Types_fs__ = __webpack_require__(7);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Shared_fs__ = __webpack_require__(9);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__ = __webpack_require__(8);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__Logger_Logger_fs__ = __webpack_require__(10);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -5793,7 +5788,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
-var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger_Logger_fs__["a" /* Logger */](1);
var SPACE = " ";
var NOSTRING = "";
var TEmphasis = function () {
@@ -5804,7 +5798,7 @@ var TEmphasis = function () {
}
_createClass(TEmphasis, [{
- key: __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
+ key: __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
value: function value() {
return {
type: "ParserHelperFuncs.TEmphasis",
@@ -5820,13 +5814,13 @@ var TEmphasis = function () {
}, {
key: "CompareTo",
value: function CompareTo(other) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["h" /* comparePrimitives */])(this.tag, other.tag);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["h" /* comparePrimitives */])(this.tag, other.tag);
}
}]);
return TEmphasis;
}();
-Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.TEmphasis", TEmphasis);
+Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.TEmphasis", TEmphasis);
var ParagraphState = function () {
function ParagraphState(par, reToks, parMatched) {
_classCallCheck(this, ParagraphState);
@@ -5837,17 +5831,17 @@ var ParagraphState = function () {
}
_createClass(ParagraphState, [{
- key: __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
+ key: __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
value: function value() {
return {
type: "ParserHelperFuncs.ParagraphState",
interfaces: ["FSharpRecord", "System.IEquatable", "System.IComparable"],
properties: {
- Par: Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["o" /* makeGeneric */])(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */], {
- T: __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */]
+ Par: Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["o" /* makeGeneric */])(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */], {
+ T: __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */]
}),
- ReToks: Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["o" /* makeGeneric */])(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */], {
- T: __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */]
+ ReToks: Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["o" /* makeGeneric */])(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */], {
+ T: __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */]
}),
ParMatched: "boolean"
}
@@ -5856,18 +5850,18 @@ var ParagraphState = function () {
}, {
key: "Equals",
value: function Equals(other) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["m" /* equalsRecords */])(this, other);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["m" /* equalsRecords */])(this, other);
}
}, {
key: "CompareTo",
value: function CompareTo(other) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["i" /* compareRecords */])(this, other) | 0;
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["i" /* compareRecords */])(this, other) | 0;
}
}]);
return ParagraphState;
}();
-Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.ParagraphState", ParagraphState);
+Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.ParagraphState", ParagraphState);
var FormatStyle = function () {
function FormatStyle(tag) {
_classCallCheck(this, FormatStyle);
@@ -5876,7 +5870,7 @@ var FormatStyle = function () {
}
_createClass(FormatStyle, [{
- key: __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
+ key: __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["a" /* default */].reflection,
value: function value() {
return {
type: "ParserHelperFuncs.FormatStyle",
@@ -5892,13 +5886,13 @@ var FormatStyle = function () {
}, {
key: "CompareTo",
value: function CompareTo(other) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["h" /* comparePrimitives */])(this.tag, other.tag);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["h" /* comparePrimitives */])(this.tag, other.tag);
}
}]);
return FormatStyle;
}();
-Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.FormatStyle", FormatStyle);
+Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__["b" /* setType */])("ParserHelperFuncs.FormatStyle", FormatStyle);
function deleteLeadingENDLINEs(toks) {
deleteLeadingENDLINEs: while (true) {
var $var1 = toks.tail != null ? toks.head.tag === 32 ? [0, toks.tail] : [1] : [1];
@@ -5914,17 +5908,17 @@ function deleteLeadingENDLINEs(toks) {
}
}
function deleteTrailingENDLINEs(toks) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(deleteLeadingENDLINEs(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(toks)));
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(deleteLeadingENDLINEs(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(toks)));
}
function trimENDLINEs(toks) {
return deleteTrailingENDLINEs(deleteLeadingENDLINEs(toks));
}
function stringAllTokens(toks) {
var matchTok = function matchTok(i, tok) {
- return i + Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["e" /* mapTok */])(tok);
+ return i + Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["e" /* mapTok */])(tok);
};
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(matchTok, "", toks);
+ return Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(matchTok, "", toks);
}
function countToks(tok, toks) {
var countToks_ = function countToks_(tupledArg) {
@@ -5962,31 +5956,31 @@ function countSpaces(toks) {
return countToks_([0, toks])[0] | 0;
}
-var countNewLines = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
- var tok = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](32);
+var countNewLines = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
+ var tok = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](32);
return function (toks) {
return countToks(tok, toks);
};
}());
function countDelim(delim, toks) {
var counter = function counter(tok) {
- if (Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(tok, delim)) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(tok, delim)) {
return 1;
} else {
return 0;
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["n" /* sumBy */])(counter, toks) | 0;
+ return Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["n" /* sumBy */])(counter, toks) | 0;
}
-var countPipes = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
- var delim = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](5);
+var countPipes = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
+ var delim = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](5);
return function (toks) {
return countDelim(delim, toks);
};
}());
-var countMinus = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
- var delim = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](7);
+var countMinus = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function () {
+ var delim = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](7);
return function (toks) {
return countDelim(delim, toks);
};
@@ -5995,18 +5989,18 @@ function cutFirstLine(toks) {
var cutLine_ = function cutLine_(line, rtks) {
cutLine_: while (true) {
if (rtks.tail == null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(line), new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(line), new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()];
} else if (rtks.head.tag === 32) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(line), rtks.tail];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(line), rtks.tail];
} else {
- line = new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](rtks.head, line);
+ line = new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](rtks.head, line);
rtks = rtks.tail;
continue cutLine_;
}
}
};
- return cutLine_(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
+ return cutLine_(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
}
function cutIntoLines(toks) {
var cutIntoLines_ = function cutIntoLines_(tokLines, toks_1) {
@@ -6019,28 +6013,28 @@ function cutIntoLines(toks) {
}
};
- var matchValue = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["p" /* tryFindIndex */])(endlineSpliter, toks_1);
+ var matchValue = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["p" /* tryFindIndex */])(endlineSpliter, toks_1);
if (matchValue != null) {
- var matchValue_1 = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["l" /* splitAt */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue), toks_1);
+ var matchValue_1 = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["l" /* splitAt */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue), toks_1);
var tokLineNoEL = deleteTrailingENDLINEs(matchValue_1[0]);
- tokLines = new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tokLineNoEL, tokLines);
- toks_1 = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(matchValue_1[1]);
+ tokLines = new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tokLineNoEL, tokLines);
+ toks_1 = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(matchValue_1[1]);
continue cutIntoLines_;
} else {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](toks_1, tokLines));
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](toks_1, tokLines));
}
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(cutIntoLines_)(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(toks);
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(cutIntoLines_)(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(toks);
}
function combineLiterals(line) {
var state;
var combiner = function combiner(line_1, inlineEle) {
- var doNothing = new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](inlineEle, line_1);
- var matchValue = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(line_1);
+ var doNothing = new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](inlineEle, line_1);
+ var matchValue = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(line_1);
var $var4 = matchValue.tag === 0 ? matchValue.data.tag === 4 ? [0, matchValue.data.data] : [1] : [1];
switch ($var4[0]) {
@@ -6049,7 +6043,7 @@ function combineLiterals(line) {
switch ($var5[0]) {
case 0:
- return new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, $var4[1] + $var5[1])), Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(line_1));
+ return new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, $var4[1] + $var5[1])), Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(line_1));
case 1:
return doNothing;
@@ -6060,25 +6054,25 @@ function combineLiterals(line) {
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])((state = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(line)]), function (list) {
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(combiner, state, list);
- })(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(line)));
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])((state = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(line)]), function (list) {
+ return Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(combiner, state, list);
+ })(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(line)));
}
function _MatchSym___(sym, toks) {
- var $var6 = toks.tail != null ? Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(toks.head, sym) ? [0, toks.head, toks.tail] : [1] : [1];
+ var $var6 = toks.tail != null ? Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(toks.head, sym) ? [0, toks.head, toks.tail] : [1] : [1];
switch ($var6[0]) {
case 0:
- var matchValue = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["p" /* tryFindIndex */])(function (s) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(s, sym);
- }, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(toks));
+ var matchValue = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["p" /* tryFindIndex */])(function (s) {
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["l" /* equals */])(s, sym);
+ }, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(toks));
if (matchValue == null) {
return null;
} else {
- var patternInput = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["l" /* splitAt */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue), $var6[2]);
- return [patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(patternInput[1])];
+ var patternInput = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["l" /* splitAt */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue), $var6[2]);
+ return [patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(patternInput[1])];
}
case 1:
@@ -6094,29 +6088,29 @@ function _PickoutParagraph___(toks) {
} else {
var folder = function folder(state, tok) {
if (state.ParMatched) {
- var ReToks = new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.ReToks);
+ var ReToks = new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.ReToks);
return new ParagraphState(state.Par, ReToks, state.ParMatched);
} else {
- var $var7 = tok.tag === 32 ? Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(state.Par).Equals(new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](32)) ? [0] : [1] : [1];
+ var $var7 = tok.tag === 32 ? Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(state.Par).Equals(new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](32)) ? [0] : [1] : [1];
switch ($var7[0]) {
case 0:
- return new ParagraphState(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(state.Par), state.ReToks, true);
+ return new ParagraphState(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(state.Par), state.ReToks, true);
case 1:
if (tok.tag === 37) {
- return new ParagraphState(state.Par, new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.ReToks), true);
+ return new ParagraphState(state.Par, new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.ReToks), true);
} else {
- return new ParagraphState(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.Par), state.ReToks, state.ParMatched);
+ return new ParagraphState(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tok, state.Par), state.ReToks, state.ParMatched);
}
}
}
};
- var initState = new ParagraphState(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), false);
- var matchValue = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, initState, toks);
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(matchValue.Par), deleteLeadingENDLINEs(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(matchValue.ReToks))];
+ var initState = new ParagraphState(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), false);
+ var matchValue = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, initState, toks);
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(matchValue.Par), deleteLeadingENDLINEs(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(matchValue.ReToks))];
}
}
@@ -6133,7 +6127,7 @@ function _PickoutList___(toks) {
var activePatternResult1212 = _PickoutParagraph___(toks);
if (activePatternResult1212 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1212);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1212);
} else {
return null;
}
@@ -6150,14 +6144,14 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
var whatSym_5;
var potential;
var frontWhite;
- var patternInput = strongOrEmOrBoth.tag === 1 ? [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](9), new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](14)] : strongOrEmOrBoth.tag === 2 ? [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](13), new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](16)] : strongOrEmOrBoth.tag === 3 ? [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](18), new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](18)] : [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](12), new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](15)];
- var attachInlineEle = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function (front, back) {
+ var patternInput = strongOrEmOrBoth.tag === 1 ? [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](9), new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](14)] : strongOrEmOrBoth.tag === 2 ? [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](13), new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](16)] : strongOrEmOrBoth.tag === 3 ? [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](18), new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](18)] : [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](12), new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](15)];
+ var attachInlineEle = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function (front, back) {
var mapping = function mapping(tupledArg) {
return [tupledArg[0], tupledArg[1], front, back];
};
return function (option) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(option, null, mapping);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(option, null, mapping);
};
});
var $var9 = toks.tail != null ? toks.head.tag === 2 ? toks.tail.tail != null ? toks.tail.tail.tail != null ? toks.tail.tail.head.tag === 2 ? (whatSym_6 = toks.tail.head, whatSym_6.Equals(patternInput[1])) ? [0, toks.tail.head] : [1] : [1] : [1] : [1] : [1] : [1];
@@ -6171,7 +6165,7 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
switch ($var10[0]) {
case 0:
- var frontLiteral = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])($var10[1], " ")));
+ var frontLiteral = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])($var10[1], " ")));
var endFinder = function endFinder(content, toks_1) {
var whatSym_2;
@@ -6189,7 +6183,7 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
return null;
case 1:
- content = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(0, 2, toks_1));
+ content = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(0, 2, toks_1));
toks_1 = $var11[1];
continue endFinder;
@@ -6198,18 +6192,18 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
switch ($var12[0]) {
case 0:
- var backLiteral = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])($var12[1], " ")));
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(frontLiteral, backLiteral)([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_1)])), $var12[2]]);
+ var backLiteral = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])($var12[1], " ")));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(frontLiteral, backLiteral)([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_1)])), $var12[2]]);
case 1:
var $var13 = toks_1.tail != null ? toks_1.tail.tail != null ? toks_1.tail.tail.tail == null ? (whatSym = toks_1.tail.head, whatSym.Equals(patternInput[1])) ? [0, toks_1.tail.head] : [1] : [1] : [1] : [1];
switch ($var13[0]) {
case 0:
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(frontLiteral, null)([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_1)])), new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()]);
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(frontLiteral, null)([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_1)])), new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()]);
case 1:
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(endFinder)(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_1)])))(Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["l" /* xOnwards */])(1, toks_1));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(endFinder)(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_1)])))(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["k" /* xOnwards */])(1, toks_1));
}
}
@@ -6218,7 +6212,7 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
}
};
- return endFinder(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), $var10[2]);
+ return endFinder(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), $var10[2]);
case 1:
var $var14 = toks.tail != null ? toks.tail.tail != null ? toks.tail.head.tag === 2 ? toks.head.Equals(patternInput[0]) ? [0, toks.head] : [1] : [1] : [1] : [1];
@@ -6246,7 +6240,7 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
return null;
case 1:
- content_1 = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(0, 1, toks_2));
+ content_1 = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(0, 1, toks_2));
toks_2 = $var16[1];
continue endFinder_1;
@@ -6255,17 +6249,17 @@ function _MatchTemplate___(strongOrEmOrBoth, toks) {
switch ($var17[0]) {
case 0:
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(null, null)([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_2)])), $var17[1]]);
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(attachInlineEle)(null, null)([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(toks_2)])), $var17[1]]);
case 1:
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(endFinder_1)(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_2)])))(Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["l" /* xOnwards */])(1, toks_2));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(endFinder_1)(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_2)])))(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["k" /* xOnwards */])(1, toks_2));
}
}
}
};
- return endFinder_1(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), $var15[1]);
+ return endFinder_1(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), $var15[1]);
case 1:
return null;
@@ -6284,7 +6278,7 @@ function _MatchEm___(toks) {
var activePatternResult1235 = _MatchTemplate___(new FormatStyle(1), toks);
if (activePatternResult1235 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1235);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1235);
} else {
return null;
}
@@ -6296,7 +6290,7 @@ function _MatchStrong___(toks) {
var activePatternResult1238 = _MatchTemplate___(new FormatStyle(0), toks);
if (activePatternResult1238 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1238);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1238);
} else {
return null;
}
@@ -6308,7 +6302,7 @@ function _MatchStrongAndEm___(toks) {
var activePatternResult1241 = _MatchTemplate___(new FormatStyle(2), toks);
if (activePatternResult1241 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1241);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1241);
} else {
return null;
}
@@ -6320,7 +6314,7 @@ function _MatchStrike___(toks) {
var activePatternResult1244 = _MatchTemplate___(new FormatStyle(3), toks);
if (activePatternResult1244 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1244);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1244);
} else {
return null;
}
@@ -6332,7 +6326,7 @@ function _MatchNewParagraph___(toks) {
var matchValue = countNewLines(toks) | 0;
if (matchValue >= 2) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(matchValue, null, toks);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(matchValue, null, toks);
} else {
return null;
}
@@ -6342,7 +6336,7 @@ function _MatchNewParagraph___(toks) {
function _MatchMapTok___(_arg1) {
if (_arg1.tail != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["e" /* mapTok */])(_arg1.head), _arg1.tail];
+ return [Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["e" /* mapTok */])(_arg1.head), _arg1.tail];
} else {
return null;
}
@@ -6370,7 +6364,7 @@ function _MatchHeader___(toks) {
var matchValue = countHashes(0, toks) | 0;
if (matchValue > 0) {
- var matchValue_1 = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(matchValue, null, toks);
+ var matchValue_1 = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["k" /* slice */])(matchValue, null, toks);
var $var19 = matchValue_1.tail != null ? matchValue_1.head.tag === 2 ? [0, matchValue_1.tail] : [1] : [1];
switch ($var19[0]) {
@@ -6408,10 +6402,10 @@ function _MatchList___(toks) {
switch ($var21[0]) {
case 0:
- return [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["q" /* TListType */](1, Object(__WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var21[1])), $var21[2]];
+ return [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["q" /* TListType */](1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var21[1])), $var21[2]];
case 1:
- return [new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["q" /* TListType */](0), $var21[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["q" /* TListType */](0), $var21[1]];
case 2:
return null;
@@ -6428,7 +6422,7 @@ function _MatchListOpSpace___(toks) {
var activePatternResult1263 = _MatchList___(toks.tail);
if (activePatternResult1263 != null) {
- $var22 = [0, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1263)];
+ $var22 = [0, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1263)];
} else {
$var22 = [1];
}
@@ -6447,7 +6441,7 @@ function _MatchListOpSpace___(toks) {
var activePatternResult1262 = _MatchList___(toks);
if (activePatternResult1262 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1262);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1262);
} else {
return null;
}
@@ -6469,7 +6463,7 @@ function _MatchTableHead___(toks) {
function pipeMatch(oToks) {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(oToks, null, function (toks) {
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(oToks, null, function (toks) {
var $var23 = toks.tail != null ? toks.head.tag === 5 ? [0, toks.tail] : [1] : [1];
switch ($var23[0]) {
@@ -6502,7 +6496,7 @@ function minusMatch(oToks) {
return takeAwayMinuses_(0, toks);
};
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(oToks, null, function (toks_2) {
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["a" /* defaultArg */])(oToks, null, function (toks_2) {
var patternInput = takeAwayMinuses(toks_2);
if (patternInput[0] > 0) {
@@ -6537,16 +6531,16 @@ function _MatchLink___(toks) {
return null;
case 1:
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg[0]), $var25[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg[0]), $var25[1]];
case 2:
- tupledArg = [new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(tupledArg[1]), tupledArg[0]), Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(tupledArg[1])];
+ tupledArg = [new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(tupledArg[1]), tupledArg[0]), Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(tupledArg[1])];
continue concrete;
}
}
};
- return concrete([new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks_1]);
+ return concrete([new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks_1]);
};
var returnWhenRBRA = function returnWhenRBRA(toks_2) {
@@ -6554,9 +6548,9 @@ function _MatchLink___(toks) {
whatName: while (true) {
if (tupledArg_1[1].tail != null) {
if (tupledArg_1[1].head.tag === 23) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg_1[0]), tupledArg_1[1].tail];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg_1[0]), tupledArg_1[1].tail];
} else {
- tupledArg_1 = [new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(tupledArg_1[1]), tupledArg_1[0]), Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(tupledArg_1[1])];
+ tupledArg_1 = [new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(tupledArg_1[1]), tupledArg_1[0]), Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(tupledArg_1[1])];
continue whatName;
}
} else {
@@ -6565,7 +6559,7 @@ function _MatchLink___(toks) {
}
};
- return whatName([new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks_2]);
+ return whatName([new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks_2]);
};
var $var26 = toks.tail != null ? toks.head.tag === 20 ? [0, toks.tail] : [1] : [1];
@@ -6577,15 +6571,15 @@ function _MatchLink___(toks) {
if (matchValue == null) {
return null;
} else {
- var remains = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue)[1];
- var hyperTextToks = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue)[0];
+ var remains = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue)[1];
+ var hyperTextToks = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue)[0];
var matchValue_1 = returnWhenRBRA(remains);
if (matchValue_1 == null) {
return null;
} else {
- var urlToks = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue_1)[0];
- var retoks = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue_1)[1];
+ var urlToks = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue_1)[0];
+ var retoks = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue_1)[1];
return [hyperTextToks, urlToks, retoks];
}
}
@@ -6600,38 +6594,38 @@ function cutTableRows(toks) {
var cutTableRow_ = function cutTableRow_(rows, toks_1) {
cutTableRow_: while (true) {
if (toks_1.tail == null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(rows), new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(rows), new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]()];
} else if (toks_1.head.tag === 32) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(rows), toks_1.tail];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(rows), toks_1.tail];
} else {
var patternInput = cutFirstLine(toks_1);
- rows = new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](patternInput[0], rows);
+ rows = new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](patternInput[0], rows);
toks_1 = patternInput[1];
continue cutTableRow_;
}
}
};
- return cutTableRow_(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
+ return cutTableRow_(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
}
function parseInLineElements2(refLst, toks) {
var attachInlineEle = function attachInlineEle(front, back, ele) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([front, ele, back]);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([front, ele, back]);
};
var chooseRef = function chooseRef(refId, refs) {
if (refs.tail != null) {
if (refs.tail.tail == null) {
- return new __WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, refs.head);
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, refs.head);
} else {
- var msg = Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Reference: %A occurred more than once in reference list, take the first one."))(refId);
- logger.Info(200)(msg), void 0;
- return new __WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(refs));
+ var msg = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Reference: %A occurred more than once in reference list, take the first one."))(refId);
+ Object(__WEBPACK_IMPORTED_MODULE_11__Logger_Logger_fs__["a" /* globLog */])().Info(200)(msg), void 0;
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(refs));
}
} else {
- var msg_1 = Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("[Reference: %A not found!]"))(refId);
- logger.Info(200)(msg_1), void 0;
- return new __WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, msg_1);
+ var msg_1 = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("[Reference: %A not found!]"))(refId);
+ Object(__WEBPACK_IMPORTED_MODULE_11__Logger_Logger_fs__["a" /* globLog */])().Info(200)(msg_1), void 0;
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, msg_1);
}
};
@@ -6649,10 +6643,10 @@ function parseInLineElements2(refLst, toks) {
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(fnFilter, refList_1);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(fnFilter, refList_1);
};
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(chooseRef)(fnId)(filterFN(fnId, refList));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(chooseRef)(fnId)(filterFN(fnId, refList));
};
var findCite = function findCite(citeId, refList_2) {
@@ -6669,69 +6663,69 @@ function parseInLineElements2(refLst, toks) {
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(citeFilter, refList_3);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(citeFilter, refList_3);
};
- return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(chooseRef)(citeId)(filterCite(citeId, refList_2));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(chooseRef)(citeId)(filterCite(citeId, refList_2));
};
var genFormat = function genFormat(tupledArg) {
var matchValue;
return function (x) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(x, tupledArg[0]);
- }((matchValue = [tupledArg[2], tupledArg[3]], matchValue[0] == null ? matchValue[1] == null ? Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([tupledArg[1]]) : Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[1]), tupledArg[1]]) : matchValue[1] == null ? Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[0])]) : Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[1]), tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[0])])));
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(x, tupledArg[0]);
+ }((matchValue = [tupledArg[2], tupledArg[3]], matchValue[0] == null ? matchValue[1] == null ? Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([tupledArg[1]]) : Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[1]), tupledArg[1]]) : matchValue[1] == null ? Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[0])]) : Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[1]), tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(matchValue[0])])));
};
var makeList = function makeList(x_1) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([x_1]);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([x_1]);
};
var parseInLineElements_ = function parseInLineElements_(ftLst, currentLine, toks_1) {
var styleHelper = function styleHelper(style, tupledArg_1) {
- var inlineContent = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, style(parseInLines(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), tupledArg_1[0])));
+ var inlineContent = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, style(parseInLines(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), tupledArg_1[0])));
return [genFormat([currentLine, inlineContent, tupledArg_1[2], tupledArg_1[3]]), tupledArg_1[1]];
};
- var activePatternResult1340 = _MatchSym___(new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["r" /* Token */](30), toks_1);
+ var activePatternResult1340 = _MatchSym___(new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["r" /* Token */](30), toks_1);
if (activePatternResult1340 != null) {
- return [new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](5, Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["k" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1340)[0]))), currentLine), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1340)[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](5, Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1340)[0]))), currentLine), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1340)[1]];
} else {
var activePatternResult1338 = _MatchStrongAndEm___(toks_1);
if (activePatternResult1338 != null) {
- var inlineContent_1 = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](1, makeList(new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](0, parseInLines(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[0]))))));
- return [genFormat([currentLine, inlineContent_1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[2], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[3]]), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[1]];
+ var inlineContent_1 = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](1, makeList(new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](0, parseInLines(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[0]))))));
+ return [genFormat([currentLine, inlineContent_1, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[2], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[3]]), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1338)[1]];
} else {
var activePatternResult1337 = _MatchStrong___(toks_1);
if (activePatternResult1337 != null) {
return styleHelper(function (arg0) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](0, arg0);
- }, [Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[2], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[3]]);
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](0, arg0);
+ }, [Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[0], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[2], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1337)[3]]);
} else {
var activePatternResult1336 = _MatchEm___(toks_1);
if (activePatternResult1336 != null) {
return styleHelper(function (arg0_1) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](1, arg0_1);
- }, [Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[2], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[3]]);
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](1, arg0_1);
+ }, [Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[0], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[2], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1336)[3]]);
} else {
var activePatternResult1335 = _MatchStrike___(toks_1);
if (activePatternResult1335 != null) {
return styleHelper(function (arg0_2) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](3, arg0_2);
- }, [Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[2], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[3]]);
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](3, arg0_2);
+ }, [Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[0], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[2], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1335)[3]]);
} else {
var activePatternResult1334 = _MatchLink___(toks_1);
if (activePatternResult1334 != null) {
- var hyperText = new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](2, parseInLines(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[0]));
- var url = Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["k" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[1]);
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_2) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](1, [tupledArg_2[0], tupledArg_2[1]]);
- }([hyperText, url])]), currentLine), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[2]];
+ var hyperText = new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](2, parseInLines(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[0]));
+ var url = Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[1]);
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_2) {
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](1, [tupledArg_2[0], tupledArg_2[1]]);
+ }([hyperText, url])]), currentLine), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1334)[2]];
} else {
var $var29 = void 0;
@@ -6740,7 +6734,7 @@ function parseInLineElements2(refLst, toks) {
var activePatternResult1333 = _MatchLink___(toks_1.tail);
if (activePatternResult1333 != null) {
- $var29 = [0, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[2], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[1]];
+ $var29 = [0, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[0], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[2], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1333)[1]];
} else {
$var29 = [1];
}
@@ -6753,10 +6747,10 @@ function parseInLineElements2(refLst, toks) {
switch ($var29[0]) {
case 0:
- var hyperText_1 = Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["k" /* strAllToks */])($var29[1]);
- var url_1 = Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["k" /* strAllToks */])($var29[3]);
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_3) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](2, [tupledArg_3[0], tupledArg_3[1]]);
+ var hyperText_1 = Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* strAllToks */])($var29[1]);
+ var url_1 = Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* strAllToks */])($var29[3]);
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_3) {
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](2, [tupledArg_3[0], tupledArg_3[1]]);
}([hyperText_1, url_1])]), currentLine), $var29[2]];
case 1:
@@ -6768,29 +6762,29 @@ function parseInLineElements2(refLst, toks) {
var matchValue_1 = findFN($var30[1], ftLst);
if (matchValue_1.tag === 1) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, matchValue_1.data))]), $var30[2]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, matchValue_1.data))]), currentLine), $var30[2]];
} else {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_4) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](4, [tupledArg_4[0], tupledArg_4[1]]);
- }([new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, idStr), idStr])]), currentLine), $var30[2]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_4) {
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](4, [tupledArg_4[0], tupledArg_4[1]]);
+ }([new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, idStr), idStr])]), currentLine), $var30[2]];
}
case 1:
var matchValue_2 = findCite($var30[2], ftLst);
if (matchValue_2.tag === 1) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, matchValue_2.data))]), $var30[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, matchValue_2.data))]), currentLine), $var30[1]];
} else if (matchValue_2.data.tag === 9) {
- return [Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_5) {
- return new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](3, [tupledArg_5[0], tupledArg_5[1]]);
+ return [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([function (tupledArg_5) {
+ return new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](3, [tupledArg_5[0], tupledArg_5[1]]);
}([matchValue_2.data.data[1], matchValue_2.data.data[0]])]), currentLine), $var30[1]];
} else {
throw new Error("non-citation in citation list");
}
case 2:
- var str = Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["e" /* mapTok */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_1));
- return [new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_4__Types_fs__["m" /* TFrmtedString */](4, str)), currentLine), Object(__WEBPACK_IMPORTED_MODULE_5__Shared_fs__["l" /* xOnwards */])(1, toks_1)];
+ var str = Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["e" /* mapTok */])(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(0, toks_1));
+ return [new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_3__Types_fs__["m" /* TFrmtedString */](4, str)), currentLine), Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["k" /* xOnwards */])(1, toks_1)];
}
}
@@ -6804,22 +6798,22 @@ function parseInLineElements2(refLst, toks) {
var parseInLines = function parseInLines(currentLine_1, toks_2) {
if (toks_2.tail == null) {
- return new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]();
+ return new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]();
} else {
var patternInput = parseInLineElements_(refLst, currentLine_1, toks_2);
if (patternInput[1].tail == null) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(patternInput[0]);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(patternInput[0]);
} else {
return combineLiterals(parseInLines(patternInput[0], patternInput[1]));
}
}
};
- return parseInLines(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
+ return parseInLines(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
}
function parseInLineElements(toks) {
- return parseInLineElements2(new __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
+ return parseInLineElements2(new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), toks);
}
/***/ }),
@@ -6831,16 +6825,15 @@ function parseInLineElements(toks) {
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return Operand; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Expr; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return TExpr; });
-/* harmony export (immutable) */ __webpack_exports__["k"] = whitespaceFilter;
+/* harmony export (immutable) */ __webpack_exports__["j"] = whitespaceFilter;
/* harmony export (immutable) */ __webpack_exports__["f"] = countDelim;
/* harmony export (immutable) */ __webpack_exports__["g"] = delimSplit;
/* unused harmony export listCopies */
/* unused harmony export unfoldTuple3 */
/* harmony export (immutable) */ __webpack_exports__["e"] = cellRange;
-/* harmony export (immutable) */ __webpack_exports__["j"] = simpleLex;
+/* harmony export (immutable) */ __webpack_exports__["i"] = simpleLex;
/* unused harmony export lexY */
-/* harmony export (immutable) */ __webpack_exports__["i"] = round;
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return logger; });
+/* harmony export (immutable) */ __webpack_exports__["h"] = round;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Symbol__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__ = __webpack_require__(3);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
@@ -6850,7 +6843,6 @@ function parseInLineElements(toks) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_RegExp__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Types_fs__ = __webpack_require__(7);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Logger_Logger_fs__ = __webpack_require__(10);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -6866,7 +6858,6 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
-
var CellReference = function () {
function CellReference(tag, data) {
_classCallCheck(this, CellReference);
@@ -7302,7 +7293,6 @@ function lexY(x, y, z) {
function round(dp, f) {
return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Util__["p" /* round */])(f, dp);
}
-var logger = new __WEBPACK_IMPORTED_MODULE_9__Logger_Logger_fs__["a" /* Logger */](1);
/***/ }),
/* 23 */
@@ -7553,14 +7543,14 @@ function processString(dir, format) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__Shared_fs__ = __webpack_require__(9);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__ = __webpack_require__(21);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Types_fs__ = __webpack_require__(7);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Markalc_Markalc_fs__ = __webpack_require__(29);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__Logger_Logger_fs__ = __webpack_require__(10);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__ = __webpack_require__(10);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__ = __webpack_require__(21);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Types_fs__ = __webpack_require__(7);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Markalc_Markalc_fs__ = __webpack_require__(29);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__TOCite_TOCite_fs__ = __webpack_require__(32);
@@ -7588,20 +7578,20 @@ function parseCode(toks) {
}, parseCode(toks.tail));
}
} else {
- __WEBPACK_IMPORTED_MODULE_2__Shared_fs__["j" /* sharedLog */].Warn(null, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%A"))(toks));
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, ["\\`", Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["l" /* xOnwards */])(1, toks)]);
+ Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Warn(null, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%A"))(toks));
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, ["\\`", Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(1, toks)]);
}
}
function parseParagraph(ftLst, toks) {
var state;
var parseParagraph_ = function parseParagraph_(lines, tokLine) {
- return new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["k" /* parseInLineElements2 */])(ftLst, tokLine), lines);
+ return new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["k" /* parseInLineElements2 */])(ftLst, tokLine), lines);
};
- return new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](4, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])((state = new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), function (list) {
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parseParagraph_, state, list);
- })(Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["g" /* cutIntoLines */])(Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["l" /* trimENDLINEs */])(toks)))));
+ return new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](4, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])((state = new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), function (list) {
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parseParagraph_, state, list);
+ })(Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["g" /* cutIntoLines */])(Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["l" /* trimENDLINEs */])(toks)))));
}
function _MatchTable___(toks) {
@@ -7612,8 +7602,8 @@ function _MatchTable___(toks) {
} else {
var toPCellList = function toPCellList(cell) {
var patternInput = cell.GetParams;
- var pCellLine = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(patternInput[0]);
- return new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["f" /* PCell */](0, [pCellLine, patternInput[1], patternInput[2]]);
+ var pCellLine = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(patternInput[0]);
+ return new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["f" /* PCell */](0, [pCellLine, patternInput[1], patternInput[2]]);
};
var toPRow = function toPRow(row) {
@@ -7621,21 +7611,21 @@ function _MatchTable___(toks) {
return [_arg2.data[0], _arg2.data[1]];
}(row);
- return new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["g" /* PRow */](0, [Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(toPCellList, patternInput_1[0]), patternInput_1[1]]);
+ return new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["g" /* PRow */](0, [Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(toPCellList, patternInput_1[0]), patternInput_1[1]]);
};
- return [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](6, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(toPRow, _arg1.data)), tupledArg[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](6, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(toPRow, _arg1.data)), tupledArg[1]];
}
- }(Object(__WEBPACK_IMPORTED_MODULE_7__Markalc_Markalc_fs__["a" /* parseEvaluateTable */])(tupledArg[0]));
+ }(Object(__WEBPACK_IMPORTED_MODULE_8__Markalc_Markalc_fs__["a" /* parseEvaluateTable */])(tupledArg[0]));
};
- var activePatternResult1504 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["c" /* $7C$MatchTableHead$7C$_$7C$ */])(toks);
+ var activePatternResult1500 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["c" /* $7C$MatchTableHead$7C$_$7C$ */])(toks);
- if (activePatternResult1504 != null) {
- var activePatternResult1503 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["b" /* $7C$MatchTableFormater$7C$_$7C$ */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1504));
+ if (activePatternResult1500 != null) {
+ var activePatternResult1499 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["b" /* $7C$MatchTableFormater$7C$_$7C$ */])(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1500));
- if (activePatternResult1503 != null) {
- return tableTransform(Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["h" /* cutTableRows */])(toks));
+ if (activePatternResult1499 != null) {
+ return tableTransform(Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["h" /* cutTableRows */])(toks));
} else {
return null;
}
@@ -7686,10 +7676,10 @@ function parseList(toks) {
var excludeSelfSkip = function excludeSelfSkip(x) {
if (x != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(x) === 1) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(x) === 1) {
return null;
} else {
- return Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(x) - 1;
+ return Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(x) - 1;
}
} else {
return null;
@@ -7702,10 +7692,10 @@ function parseList(toks) {
switch ($var3[0]) {
case 0:
- return [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["q" /* TListType */](0), patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["l" /* xOnwards */])(2, patternInput[1])];
+ return [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["q" /* TListType */](0), patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(2, patternInput[1])];
case 1:
- return [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["q" /* TListType */](1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var3[1])), patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["l" /* xOnwards */])(3, patternInput[1])];
+ return [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["q" /* TListType */](1, Object(__WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var3[1])), patternInput[0], Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(3, patternInput[1])];
case 2:
return null;
@@ -7713,13 +7703,13 @@ function parseList(toks) {
};
var getLIContent = function getLIContent(toks_3) {
- var activePatternResult1518 = _GetLIContent___(toks_3);
+ var activePatternResult1514 = _GetLIContent___(toks_3);
- if (activePatternResult1518 != null) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1518));
+ if (activePatternResult1514 != null) {
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1514));
} else {
var patternInput_1 = takeAwayWhiteSpaces(toks_3);
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["q" /* TListType */](0), patternInput_1[0], patternInput_1[1]]);
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["q" /* TListType */](0), patternInput_1[0], patternInput_1[1]]);
}
};
@@ -7747,7 +7737,7 @@ function parseList(toks) {
var matchValue_1 = getLIContent(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(lines_1));
if (matchValue_1.tag === 1) {
- Object(__WEBPACK_IMPORTED_MODULE_10__Logger_Logger_fs__["b" /* globLog */])().Warn(100, "invalid list item, line does not begin with [*;-;number]\ndefault to UL");
+ Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Warn(100, "invalid list item, line does not begin with [*;-;number]\ndefault to UL");
patternInput_2 = matchValue_1.data;
} else {
patternInput_2 = matchValue_1.data;
@@ -7755,10 +7745,10 @@ function parseList(toks) {
var listFolder = function listFolder(tupledArg, line) {
if (tupledArg[2] != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) === 1) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) === 1) {
return [tupledArg[0], tupledArg[1], null, tupledArg[3] + 1];
- } else if (Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) > 1) {
- return [tupledArg[0], tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) - 1, tupledArg[3] + 1];
+ } else if (Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) > 1) {
+ return [tupledArg[0], tupledArg[1], Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[2]) - 1, tupledArg[3] + 1];
} else {
throw new Error("negative or zero skip number, not possible");
}
@@ -7766,11 +7756,11 @@ function parseList(toks) {
var matchValue_2 = ignoreError(getLIContent(line));
if (matchValue_2[1] === tupledArg[0]) {
- var tLine = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(matchValue_2[2]);
- return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["p" /* TListItem */](1, tLine), tupledArg[1]), null, tupledArg[3] + 1];
+ var tLine = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(matchValue_2[2]);
+ return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["p" /* TListItem */](1, tLine), tupledArg[1]), null, tupledArg[3] + 1];
} else if (matchValue_2[1] > tupledArg[0]) {
- var patternInput_3 = Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseList_)(tupledArg[0] + 1)(Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(getCurrentList)(tupledArg[0] + 1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["l" /* xOnwards */])(tupledArg[3], lines_1)));
- return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["p" /* TListItem */](0, patternInput_3[0]), tupledArg[1]), excludeSelfSkip(patternInput_3[1]), tupledArg[3] + 1];
+ var patternInput_3 = Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseList_)(tupledArg[0] + 1)(Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(getCurrentList)(tupledArg[0] + 1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(tupledArg[3], lines_1)));
+ return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["p" /* TListItem */](0, patternInput_3[0]), tupledArg[1]), excludeSelfSkip(patternInput_3[1]), tupledArg[3] + 1];
} else {
throw new Error("list item level < current level, not possible");
}
@@ -7787,23 +7777,23 @@ function parseList(toks) {
doSkip = matchValue_3;
}
- return [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["o" /* TList */](patternInput_2[0], Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg_1[1]), patternInput_2[1]), doSkip];
- }(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(listFolder, [level_1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), null, 0], lines_1));
+ return [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["o" /* TList */](patternInput_2[0], Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(tupledArg_1[1]), patternInput_2[1]), doSkip];
+ }(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(listFolder, [level_1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](), null, 0], lines_1));
};
- return Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseList_)(0)(Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["g" /* cutIntoLines */])(Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["l" /* trimENDLINEs */])(toks)))[0];
+ return Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseList_)(0)(Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["g" /* cutIntoLines */])(Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["l" /* trimENDLINEs */])(toks)))[0];
}
function _MatchTOC___(hdList, toks) {
var createLinks = function createLinks(hdList_1) {
var makeRelLink = function makeRelLink(i, h) {
- var linkText = new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["m" /* TFrmtedString */](2, h.HeaderName);
- var linkID = headerIDGen(i, Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(i, hdList_1));
- return new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["n" /* THeader */](Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["c" /* InlineElement */](1, [linkText, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("#%s"))(linkID)])]), h.Level);
+ var linkText = new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["m" /* TFrmtedString */](2, h.HeaderName);
+ var linkID = headerIDGen(i, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])(i, hdList_1));
+ return new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["n" /* THeader */](Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["c" /* InlineElement */](1, [linkText, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("#%s"))(linkID)])]), h.Level);
};
var linksLst = Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["g" /* mapIndexed */])(makeRelLink, hdList_1);
- return new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["s" /* Ttoc */](linksLst);
+ return new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["s" /* Ttoc */](linksLst);
};
var filterHeadersByDepth = function filterHeadersByDepth(depthOption, hdList_2) {
@@ -7811,7 +7801,7 @@ function _MatchTOC___(hdList, toks) {
return hdList_2;
} else {
var headerFilter = function headerFilter(hd) {
- return hd.Level <= Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(depthOption);
+ return hd.Level <= Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(depthOption);
};
return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(headerFilter, hdList_2);
@@ -7823,7 +7813,7 @@ function _MatchTOC___(hdList, toks) {
return hdList_3;
} else {
var filterOutHeaders = function filterOutHeaders(hdList_4, hdToExclude) {
- var hdTLine = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(hdToExclude);
+ var hdTLine = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["j" /* parseInLineElements */])(hdToExclude);
var headerFilter_1 = function headerFilter_1(hd_1) {
return !hd_1.HeaderName.Equals(hdTLine);
@@ -7832,7 +7822,7 @@ function _MatchTOC___(hdList, toks) {
return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(headerFilter_1, hdList_4);
};
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(filterOutHeaders, hdList_3, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(hdExListOption));
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(filterOutHeaders, hdList_3, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(hdExListOption));
}
};
@@ -7847,7 +7837,7 @@ function _MatchTOC___(hdList, toks) {
tupledArg = [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](tupledArg[1].head, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(tupledArg[0])), Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["m" /* tail */])(tupledArg[0])), tupledArg[1].tail];
continue split;
} else {
- throw new Error("C:/Users/g2/Documents/EIE3/FMark-vscode/src/FMark/FMark/src/Common/Parser/Parser.fs", 180, 18);
+ throw new Error("C:/Users/g2/Documents/EIE3/Fmark-vscode/src/fmark/FMark/src/Common/Parser/Parser.fs", 180, 18);
}
} else {
return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(function () {
@@ -7888,7 +7878,7 @@ function _MatchTOC___(hdList, toks) {
};
var parseTOCparameters = function parseTOCparameters(toks_4) {
- var parmFields = splitToksAt(new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["r" /* Token */](11), toks_4);
+ var parmFields = splitToksAt(new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["r" /* Token */](11), toks_4);
var _MatchRSBRA___ = function _MatchRSBRA___(toks_5) {
var matcher = function matcher(tupledArg_1) {
@@ -7915,20 +7905,19 @@ function _MatchTOC___(hdList, toks) {
switch ($var6[0]) {
case 0:
- return [Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var6[1]), tupledArg_2[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var6[1]), tupledArg_2[1]];
case 1:
var newHdExList = void 0;
- var activePatternResult1551 = _MatchRSBRA___($var6[1]);
+ var activePatternResult1547 = _MatchRSBRA___($var6[1]);
- if (activePatternResult1551 != null) {
- newHdExList = Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(trimWhitespaces, Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(splitToksAt)(new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["r" /* Token */](36))(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1551)));
+ if (activePatternResult1547 != null) {
+ newHdExList = Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(trimWhitespaces, Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(splitToksAt)(new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["r" /* Token */](36))(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1547)));
} else {
newHdExList = null;
}
- Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["f" /* toConsole */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("hdExList:%A"))(newHdExList);
return [tupledArg_2[0], newHdExList];
case 2:
@@ -7936,14 +7925,14 @@ function _MatchTOC___(hdList, toks) {
}
};
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parmsFolder, [null, null], parmFields);
+ return Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parmsFolder, [null, null], parmFields);
};
var $var7 = toks.tail != null ? toks.head.tag === 35 ? toks.tail.tail != null ? toks.tail.head.tag === 35 ? toks.tail.tail.tail != null ? toks.tail.tail.head.tag === 1 ? toks.tail.tail.head.data === "TOC" ? [0, toks.tail.tail.tail] : [1] : [1] : [1] : [1] : [1] : [1] : [1];
switch ($var7[0]) {
case 0:
- var patternInput = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["f" /* cutFirstLine */])($var7[1]);
+ var patternInput = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["f" /* cutFirstLine */])($var7[1]);
var patternInput_1 = parseTOCparameters(patternInput[0]);
return [createLinks(Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(filterHeadersByName)(patternInput_1[1])(Object(__WEBPACK_IMPORTED_MODULE_11__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(filterHeadersByDepth)(patternInput_1[0])(hdList))), patternInput[1]];
@@ -7954,12 +7943,12 @@ function _MatchTOC___(hdList, toks) {
function parseItem(hdLst, ftLst, rawToks) {
- var toks = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["i" /* deleteLeadingENDLINEs */])(rawToks);
+ var toks = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["i" /* deleteLeadingENDLINEs */])(rawToks);
- var activePatternResult1575 = _MatchTOC___(hdLst, toks);
+ var activePatternResult1571 = _MatchTOC___(hdLst, toks);
- if (activePatternResult1575 != null) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](2, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1575)[0]), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1575)[1]]);
+ if (activePatternResult1571 != null) {
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](2, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1571)[0]), Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1571)[1]]);
} else {
var $var8 = void 0;
@@ -7967,19 +7956,19 @@ function parseItem(hdLst, ftLst, rawToks) {
if (toks.head.tag === 0) {
$var8 = [0, toks.head.data[0], toks.head.data[1], toks.tail];
} else {
- var activePatternResult1572 = _MatchTable___(toks);
+ var activePatternResult1568 = _MatchTable___(toks);
- if (activePatternResult1572 != null) {
- $var8 = [1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1572)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1572)[1]];
+ if (activePatternResult1568 != null) {
+ $var8 = [1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1568)[0], Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1568)[1]];
} else {
$var8 = [2];
}
}
} else {
- var activePatternResult1573 = _MatchTable___(toks);
+ var activePatternResult1569 = _MatchTable___(toks);
- if (activePatternResult1573 != null) {
- $var8 = [1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1573)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1573)[1]];
+ if (activePatternResult1569 != null) {
+ $var8 = [1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1569)[0], Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1569)[1]];
} else {
$var8 = [2];
}
@@ -7987,16 +7976,16 @@ function parseItem(hdLst, ftLst, rawToks) {
switch ($var8[0]) {
case 0:
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](0, [$var8[1], $var8[2]]), $var8[3]]);
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](0, [$var8[1], $var8[2]]), $var8[3]]);
case 1:
return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [$var8[1], $var8[2]]);
case 2:
- var activePatternResult1571 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["a" /* $7C$MatchQuote$7C$_$7C$ */])(toks);
+ var activePatternResult1567 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["a" /* $7C$MatchQuote$7C$_$7C$ */])(toks);
- if (activePatternResult1571 != null) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](5, Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["k" /* parseInLineElements2 */])(ftLst, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1571)[0])), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1571)[1]]);
+ if (activePatternResult1567 != null) {
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](5, Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["k" /* parseInLineElements2 */])(ftLst, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1567)[0])), Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1567)[1]]);
} else {
var $var9 = void 0;
@@ -8004,19 +7993,19 @@ function parseItem(hdLst, ftLst, rawToks) {
if (toks.head.tag === 37) {
$var9 = [0, toks.head.data, toks.tail];
} else {
- var activePatternResult1569 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["d" /* $7C$PickoutList$7C$_$7C$ */])(toks);
+ var activePatternResult1565 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["d" /* $7C$PickoutList$7C$_$7C$ */])(toks);
- if (activePatternResult1569 != null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1569)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1569)[1]];
+ if (activePatternResult1565 != null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1565)[0], Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1565)[1]];
} else {
$var9 = [2];
}
}
} else {
- var activePatternResult1570 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["d" /* $7C$PickoutList$7C$_$7C$ */])(toks);
+ var activePatternResult1566 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["d" /* $7C$PickoutList$7C$_$7C$ */])(toks);
- if (activePatternResult1570 != null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1570)[0], Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1570)[1]];
+ if (activePatternResult1566 != null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1566)[0], Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1566)[1]];
} else {
$var9 = [2];
}
@@ -8024,18 +8013,18 @@ function parseItem(hdLst, ftLst, rawToks) {
switch ($var9[0]) {
case 0:
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](1, [Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])($var9[1], hdLst), headerIDGen($var9[1], Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])($var9[1], hdLst))]), $var9[2]]);
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](1, [Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])($var9[1], hdLst), headerIDGen($var9[1], Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["h" /* item */])($var9[1], hdLst))]), $var9[2]]);
case 1:
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["h" /* ParsedObj */](3, parseList($var9[1])), $var9[2]]);
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["h" /* ParsedObj */](3, parseList($var9[1])), $var9[2]]);
case 2:
- var activePatternResult1568 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["e" /* $7C$PickoutParagraph$7C$_$7C$ */])(toks);
+ var activePatternResult1564 = Object(__WEBPACK_IMPORTED_MODULE_5__ParserHelperFuncs_fs__["e" /* $7C$PickoutParagraph$7C$_$7C$ */])(toks);
- if (activePatternResult1568 != null) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [parseParagraph(ftLst, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1568)[0]), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1568)[1]]);
+ if (activePatternResult1564 != null) {
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, [parseParagraph(ftLst, Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1564)[0]), Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1564)[1]]);
} else {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["g" /* removeChars */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])(["[", "]"]), Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Parse item did not match: %A"))(toks)));
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["g" /* removeChars */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])(["[", "]"]), Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Parse item did not match: %A"))(toks)));
}
}
@@ -8045,7 +8034,7 @@ function parseItem(hdLst, ftLst, rawToks) {
}
}
function parseItemList(hdLst, ftLst, toks) {
- var matchValue = [toks.tail == null, !Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Seq__["e" /* exists */])(function (_arg1) {
+ var matchValue = [toks.tail == null, !Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["e" /* exists */])(function (_arg1) {
var $var10 = _arg1.tag === 2 ? [0] : _arg1.tag === 32 ? [0] : [1];
switch ($var10[0]) {
@@ -8077,11 +8066,11 @@ function parseItemList(hdLst, ftLst, toks) {
}
}
function parse(toks) {
- var patternInput = Object(__WEBPACK_IMPORTED_MODULE_12__TOCite_TOCite_fs__["a" /* preParser */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["r" /* Token */](32), new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["r" /* Token */](32)], toks));
+ var patternInput = Object(__WEBPACK_IMPORTED_MODULE_12__TOCite_TOCite_fs__["a" /* preParser */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["r" /* Token */](32), new __WEBPACK_IMPORTED_MODULE_6__Types_fs__["r" /* Token */](32)], toks));
return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["c" /* map */])(function (pObjs) {
return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["a" /* append */])(pObjs, patternInput[1]);
}, Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["a" /* bind */])(function (tupledArg) {
- return tupledArg[1] != null ? new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Some unparsed tokens: %A"))(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[1]))) : new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, tupledArg[0]);
+ return tupledArg[1] != null ? new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Some unparsed tokens: %A"))(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(tupledArg[1]))) : new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, tupledArg[0]);
}, parseItemList(patternInput[0], patternInput[1], patternInput[2])));
}
@@ -8323,7 +8312,7 @@ function joinErrorList(lst) {
var unpackOks = function unpackOks(_arg1) {
if (_arg1.tag === 1) {
- throw new Error(Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["c" /* logPass */])(27, Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* globLog */])().Fatal, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("After filtering, there were still Error monads in the list %A."))(_arg1.data)));
+ throw new Error(Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* logPass */])(27, Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Fatal, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("After filtering, there were still Error monads in the list %A."))(_arg1.data)));
} else {
return _arg1.data;
}
@@ -8368,7 +8357,7 @@ function alignCell(alignment, cellU_0, cellU_1) {
function parsePipesD(debug, constructCell, row) {
var parsePipesDebug = function parsePipesDebug(line, a, b) {
if (debug) {
- Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* globLog */])().Debug(line)(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/Parse PIPES:\nBefore:%A\nAfter:%A$\n"))(a, b));
+ Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Debug(line)(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/Parse PIPES:\nBefore:%A\nAfter:%A$\n"))(a, b));
}
};
@@ -8436,7 +8425,7 @@ var parseDefaultRow = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_c
});
function parseAlignRow(row) {
var parseAlignDebug = function parseAlignDebug(line, s) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["c" /* logPass */])(line, Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* globLog */])().Debug, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/parseAlignRow\n%s$"))(s));
+ return Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* logPass */])(line, Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Debug, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/parseAlignRow\n%s$"))(s));
};
var getAlignment = function getAlignment(toks) {
@@ -8496,7 +8485,7 @@ function parseAlignRow(row) {
};
return joinErrorList(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(function () {
- var matchValue_2 = Object(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["k" /* whitespaceFilter */])(row);
+ var matchValue_2 = Object(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["j" /* whitespaceFilter */])(row);
var $var4 = matchValue_2.tail != null ? matchValue_2.head.tag === 5 ? [0, matchValue_2.tail] : [1, matchValue_2] : [1, matchValue_2];
switch ($var4[0]) {
@@ -8547,7 +8536,7 @@ function transformTable(table) {
}, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(alignCells)(alignments)(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(makeRow)(false)(parseRow(defaultCellU, x)))), s);
};
- return joinErrorList(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parseAlignPrepend, Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([header]), Object(__WEBPACK_IMPORTED_MODULE_9__Shared_fs__["l" /* xOnwards */])(2, table))));
+ return joinErrorList(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(parseAlignPrepend, Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([header]), Object(__WEBPACK_IMPORTED_MODULE_9__Shared_fs__["k" /* xOnwards */])(2, table))));
}
function tryEval_(maxRefs, map, e) {
@@ -8617,7 +8606,7 @@ function tryEval_(maxRefs, map, e) {
return function (_arg2) {
return _arg2.data[1] < 0 ? evalExp_(0, map, _arg2.data[0]) : function (f_1) {
- return Object(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["i" /* round */])(_arg2.data[1], f_1);
+ return Object(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["h" /* round */])(_arg2.data[1], f_1);
}(evalExp_(0, map, _arg2.data[0]));
}(e_1);
};
@@ -8696,7 +8685,7 @@ function parseEvaluateTable(toks) {
if (_arg2.tag === 0) {
return new __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, evaluateRowList(_arg2.data));
} else {
- Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["b" /* globLog */])().Debug(214)(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/top\nNot a table because of errors: %s\nReturning unchanged tokens.$"))(_arg2.data));
+ Object(__WEBPACK_IMPORTED_MODULE_3__Logger_Logger_fs__["a" /* globLog */])().Debug(214)(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Markalc/top\nNot a table because of errors: %s\nReturning unchanged tokens.$"))(_arg2.data));
return new __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, toks);
}
}(transformTable(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(function (list) {
@@ -8704,7 +8693,7 @@ function parseEvaluateTable(toks) {
}, toks)));
}
function lexParseEvaluate(toks) {
- return parseEvaluateTable(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["j" /* simpleLex */], toks));
+ return parseEvaluateTable(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(__WEBPACK_IMPORTED_MODULE_2__MarkalcShared_fs__["i" /* simpleLex */], toks));
}
/***/ }),
@@ -8723,12 +8712,14 @@ function lexParseEvaluate(toks) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__ = __webpack_require__(22);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__Types_fs__ = __webpack_require__(7);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__ = __webpack_require__(8);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__ = __webpack_require__(10);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__Types_fs__ = __webpack_require__(7);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__ = __webpack_require__(8);
+
@@ -8776,13 +8767,13 @@ function parseExp(toks) {
}([$var2[3], $var2[2]]), $var2[1]];
case 1:
- __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["h" /* logger */].Debug(null)(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Row:%A, Col:%A"))($var2[3], $var2[2]));
+ Object(__WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__["a" /* globLog */])().Debug(null)(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Row:%A, Col:%A"))($var2[3], $var2[2]));
return [function (tupledArg_1) {
return makeCellReference(tupledArg_1[0], tupledArg_1[1]);
}([$var2[3], $var2[2]]), $var2[1]];
case 2:
- __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["h" /* logger */].Debug(null)(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Row:%A, Col:%A"))($var2[3], $var2[2]));
+ Object(__WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__["a" /* globLog */])().Debug(null)(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Row:%A, Col:%A"))($var2[3], $var2[2]));
return [function (tupledArg_2) {
return makeCellReference(tupledArg_2[0], tupledArg_2[1]);
}([$var2[3], $var2[2]]), $var2[1]];
@@ -8798,12 +8789,12 @@ function parseExp(toks) {
var activePatternResult973 = _Expression___(_arg3);
if (activePatternResult973 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].tail != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].head.tag === 11) {
- var activePatternResult974 = _ExpressionList___(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].tail);
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].tail != null) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].head.tag === 11) {
+ var activePatternResult974 = _ExpressionList___(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[1].tail);
if (activePatternResult974 != null) {
- $var3 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult974)[1], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult974)[0]];
+ $var3 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult974)[1], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult973)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult974)[0]];
} else {
$var3 = [1];
}
@@ -8819,7 +8810,7 @@ function parseExp(toks) {
switch ($var3[0]) {
case 0:
- return [new __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]($var3[2], $var3[3]), $var3[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]($var3[2], $var3[3]), $var3[1]];
case 1:
var $var4 = void 0;
@@ -8827,12 +8818,12 @@ function parseExp(toks) {
var activePatternResult971 = _CellRefPat___(_arg3);
if (activePatternResult971 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].tail != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].head.tag === 33) {
- var activePatternResult972 = _CellRefPat___(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].tail);
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].tail != null) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].head.tag === 33) {
+ var activePatternResult972 = _CellRefPat___(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[1].tail);
if (activePatternResult972 != null) {
- $var4 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult972)[1], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult972)[0]];
+ $var4 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult972)[1], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult971)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult972)[0]];
} else {
$var4 = [1];
}
@@ -8849,16 +8840,16 @@ function parseExp(toks) {
switch ($var4[0]) {
case 0:
return function (_arg4) {
- return _arg4 != null ? [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(function ($var5) {
+ return _arg4 != null ? [Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(function ($var5) {
return new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](1, new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["c" /* Operand */](0, $var5));
- }, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(_arg4)), $var4[1]] : null;
+ }, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(_arg4)), $var4[1]] : null;
}(Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["e" /* cellRange */])($var4[2], $var4[3]));
case 1:
var activePatternResult970 = _Expression___(_arg3);
if (activePatternResult970 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult970)[0]]), Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult970)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult970)[0]]), Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult970)[1]];
} else {
return null;
}
@@ -8876,11 +8867,11 @@ function parseExp(toks) {
var activePatternResult977 = _ExpressionList___(_arg5.tail);
if (activePatternResult977 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].head.tag === 28) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.tail != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.head.tag === 1) {
- $var6 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.tail, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.head.data, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail != null) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].head.tag === 28) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.tail != null) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.head.tag === 1) {
+ $var6 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.tail, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[1].tail.head.data, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult977)[0]];
} else {
$var6 = [1];
}
@@ -8912,34 +8903,34 @@ function parseExp(toks) {
}
};
- var _Sum___ = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("SUM");
+ var _Sum___ = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("SUM");
- var _Avg___ = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("AVG");
+ var _Avg___ = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("AVG");
- var _Min___ = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("MIN");
+ var _Min___ = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("MIN");
- var _Max___ = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("MAX");
+ var _Max___ = Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(funcConstruct)("MAX");
var _FunctionPat___ = function _FunctionPat___(_arg6) {
var activePatternResult988 = _Sum___(_arg6);
if (activePatternResult988 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult988)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult988)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult988)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult988)[1]];
} else {
var activePatternResult987 = _Avg___(_arg6);
if (activePatternResult987 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult987)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult987)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult987)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult987)[1]];
} else {
var activePatternResult986 = _Min___(_arg6);
if (activePatternResult986 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult986)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult986)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult986)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult986)[1]];
} else {
var activePatternResult985 = _Max___(_arg6);
if (activePatternResult985 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult985)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult985)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult985)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult985)[1]];
} else {
return null;
}
@@ -8952,17 +8943,17 @@ function parseExp(toks) {
var activePatternResult1001 = _NumberPat___(_arg7);
if (activePatternResult1001 != null) {
- return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](1, new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["c" /* Operand */](2, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1001)[0])), Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1001)[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](1, new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["c" /* Operand */](2, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1001)[0])), Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1001)[1]];
} else {
var activePatternResult1000 = _FunctionPat___(_arg7);
if (activePatternResult1000 != null) {
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1000)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1000)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1000)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1000)[1]];
} else {
var activePatternResult999 = _CellRefPat___(_arg7);
if (activePatternResult999 != null) {
- return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](1, new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["c" /* Operand */](0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult999)[0])), Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult999)[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](1, new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["c" /* Operand */](0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult999)[0])), Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult999)[1]];
} else {
var $var7 = void 0;
@@ -8971,9 +8962,9 @@ function parseExp(toks) {
var activePatternResult998 = _Expression___(_arg7.tail);
if (activePatternResult998 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].tail != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].head.tag === 22) {
- $var7 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].tail, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].tail != null) {
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].head.tag === 22) {
+ $var7 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[1].tail, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult998)[0]];
} else {
$var7 = [1];
}
@@ -9011,12 +9002,12 @@ function parseExp(toks) {
if (activePatternResult1007 != null) {
var $var8 = void 0;
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].tail != null) {
- var activePatternResult1006 = _HOFPat___(_PrevPat___, op, t, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].tail);
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].tail != null) {
+ var activePatternResult1006 = _HOFPat___(_PrevPat___, op, t, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].tail);
if (activePatternResult1006 != null) {
- if (exp2 = Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[0], after_ = Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[1], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].head.Equals(t)) {
- $var8 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[1], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].head];
+ if (exp2 = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[0], after_ = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[1], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].head.Equals(t)) {
+ $var8 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[1], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1006)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1].head];
} else {
$var8 = [1];
}
@@ -9029,46 +9020,46 @@ function parseExp(toks) {
switch ($var8[0]) {
case 0:
- return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](0, [op, $var8[2], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[0]]), $var8[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["b" /* Expr */](0, [op, $var8[2], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[0]]), $var8[1]];
case 1:
- return [Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[0], Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1]];
+ return [Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[0], Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1007)[1]];
}
} else {
return null;
}
};
- var patPrecedence = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([[function (x, y) {
+ var patPrecedence = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([[function (x, y) {
return x % y;
- }, new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](35)], [Math.pow.bind(Math), new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](34)], [function (x_2, y_2) {
+ }, new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](35)], [Math.pow.bind(Math), new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](34)], [function (x_2, y_2) {
return x_2 * y_2;
- }, new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](9)], [function (x_3, y_3) {
+ }, new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](9)], [function (x_3, y_3) {
return x_3 / y_3;
- }, new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](25)], [function (x_4, y_4) {
+ }, new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](25)], [function (x_4, y_4) {
return x_4 - y_4;
- }, new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](7)], [function (x_5, y_5) {
+ }, new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](7)], [function (x_5, y_5) {
return x_5 + y_5;
- }, new __WEBPACK_IMPORTED_MODULE_7__Types_fs__["r" /* Token */](8)]]);
+ }, new __WEBPACK_IMPORTED_MODULE_8__Types_fs__["r" /* Token */](8)]]);
var constructPatterns = function constructPatterns(s, x_6) {
- return new __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(_HOFPat___)(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(s), x_6[0], x_6[1]), s);
+ return new __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(_HOFPat___)(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(s), x_6[0], x_6[1]), s);
};
- var patterns = Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(constructPatterns, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([_BasePat___]), patPrecedence);
+ var patterns = Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(constructPatterns, Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["h" /* ofArray */])([_BasePat___]), patPrecedence);
- var _FirstPat___ = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(patterns);
+ var _FirstPat___ = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(patterns);
var activePatternResult1014 = _FirstPat___(toks_1);
if (activePatternResult1014 != null) {
- return Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1014);
+ return Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1014);
} else {
return null;
}
};
- var matchValue = Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(toks);
+ var matchValue = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_List__["j" /* reverse */])(toks);
var $var9 = void 0;
if (matchValue.tail != null) {
@@ -9080,8 +9071,8 @@ function parseExp(toks) {
var activePatternResult1023 = _Expression___(matchValue);
if (activePatternResult1023 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1023)[1].tail == null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1023)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1023)[1].tail == null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1023)[0]];
} else {
$var9 = [2];
}
@@ -9093,8 +9084,8 @@ function parseExp(toks) {
var activePatternResult1024 = _Expression___(matchValue);
if (activePatternResult1024 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1024)[1].tail == null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1024)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1024)[1].tail == null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1024)[0]];
} else {
$var9 = [2];
}
@@ -9106,8 +9097,8 @@ function parseExp(toks) {
var activePatternResult1025 = _Expression___(matchValue);
if (activePatternResult1025 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1025)[1].tail == null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1025)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1025)[1].tail == null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1025)[0]];
} else {
$var9 = [2];
}
@@ -9119,8 +9110,8 @@ function parseExp(toks) {
var activePatternResult1026 = _Expression___(matchValue);
if (activePatternResult1026 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1026)[1].tail == null) {
- $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1026)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1026)[1].tail == null) {
+ $var9 = [1, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1026)[0]];
} else {
$var9 = [2];
}
@@ -9136,8 +9127,8 @@ function parseExp(toks) {
var activePatternResult1019 = _Expression___($var9[2]);
if (activePatternResult1019 != null) {
- if (Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1019)[1].tail == null) {
- $var10 = [0, Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1019)[0]];
+ if (Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1019)[1].tail == null) {
+ $var10 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1019)[0]];
} else {
$var10 = [1];
}
@@ -9147,21 +9138,21 @@ function parseExp(toks) {
switch ($var10[0]) {
case 0:
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, function (tupledArg_3) {
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, function (tupledArg_3) {
return new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["d" /* TExpr */](0, [tupledArg_3[0], tupledArg_3[1]]);
}([$var10[1], Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var9[1])]));
case 1:
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Not valid expression %A"))(toks));
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Not valid expression %A"))(toks));
}
case 1:
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, function (tupledArg_4) {
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, function (tupledArg_4) {
return new __WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["d" /* TExpr */](0, [tupledArg_4[0], tupledArg_4[1]]);
}([$var9[1], -1]));
case 2:
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Not valid expression %A"))(toks));
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Not valid expression %A"))(toks));
}
}
function parseExpression(toks) {
@@ -9170,11 +9161,11 @@ function parseExpression(toks) {
switch ($var11[0]) {
case 0:
return function (_arg1) {
- return _arg1.tag === 0 ? new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, _arg1.data) : new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, toks);
- }(parseExp(Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["k" /* whitespaceFilter */])($var11[1])));
+ return _arg1.tag === 0 ? new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, _arg1.data) : new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, toks);
+ }(parseExp(Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["j" /* whitespaceFilter */])($var11[1])));
case 1:
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, $var11[1]);
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, $var11[1]);
}
}
function evalExpTest(e) {
@@ -9197,19 +9188,19 @@ function evalExpTest(e) {
return evalExpTest_(e.data[0]);
} else {
return function (f) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["i" /* round */])(e.data[1], f);
+ return Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["h" /* round */])(e.data[1], f);
}(evalExpTest_(e.data[0]));
}
}
function parseExpTest(toks) {
return function (_arg1) {
if (_arg1.tag === 0) {
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, evalExpTest(_arg1.data));
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](0, evalExpTest(_arg1.data));
} else {
Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["f" /* toConsole */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Error parsing expression: %A"))(_arg1.data);
- return new __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, toks);
+ return new __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_Result__["b" /* default */](1, toks);
}
- }(parseExp(Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["k" /* whitespaceFilter */])(toks)));
+ }(parseExp(Object(__WEBPACK_IMPORTED_MODULE_3__MarkalcShared_fs__["j" /* whitespaceFilter */])(toks)));
}
/***/ }),
@@ -9263,9 +9254,8 @@ function parse(s) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__RefParse_fs__ = __webpack_require__(33);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Int32__ = __webpack_require__(15);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__RefParse_fs__ = __webpack_require__(33);
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
@@ -9277,7 +9267,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
-
function mountedInLineParser(tokLst) {
var mountedInLineParser_ = function mountedInLineParser_(toParse, tLst) {
mountedInLineParser_: while (true) {
@@ -9391,25 +9380,15 @@ function tocParse(tocLst, depth, index) {
}
}
-function tocGen_(tokenLst, maxDepth) {
- if (maxDepth === 0) {
- return tocParse(tokenLst, 0, 0);
- } else if (maxDepth > 0) {
- return function (tupledArg) {
- return [Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(function (x) {
- return x.Level <= maxDepth;
- }, tupledArg[0]), tupledArg[1]];
- }(tocParse(tokenLst, 0, 0));
- } else {
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_String__["g" /* toFail */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Invalid maxDepth"));
- }
+function tocGen_(tokenLst) {
+ return tocParse(tokenLst, 0, 0);
}
-function tocGen(tLst, maxD) {
+function tocGen(tLst) {
return new __WEBPACK_IMPORTED_MODULE_2__Types_fs__["s" /* Ttoc */](function (tupledArg) {
return tupledArg[0];
- }(tocGen_(tLst, maxD)));
+ }(tocGen_(tLst)));
}
function citeParseIn(tocLst) {
var citeParseIn_ = function citeParseIn_(toParse, tail) {
@@ -9466,11 +9445,11 @@ function citeParse_(style, tocLst) {
switch ($var6[0]) {
case 0:
- return recFitFt(citeParseIn($var6[1]), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var5[1]));
+ return recFitFt(citeParseIn($var6[1]), Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var5[1]));
case 1:
return function (tupledArg_4) {
- return [tupledArg_4[0], new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_2__Types_fs__["r" /* Token */](38, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var5[1])), tupledArg_4[1])];
+ return [tupledArg_4[0], new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_2__Types_fs__["r" /* Token */](38, Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_Int32__["a" /* parse */])($var5[1])), tupledArg_4[1])];
}(citeParse_(style, $var6[1]));
}
@@ -9479,7 +9458,7 @@ function citeParse_(style, tocLst) {
switch ($var7[0]) {
case 0:
- return recFitRef(Object(__WEBPACK_IMPORTED_MODULE_8__RefParse_fs__["b" /* refParse */])(style, $var7[1]), $var5[1]);
+ return recFitRef(Object(__WEBPACK_IMPORTED_MODULE_7__RefParse_fs__["b" /* refParse */])(style, $var7[1]), $var5[1]);
case 1:
return function (tupledArg_5) {
@@ -9524,10 +9503,10 @@ function styleParse(rLst, tocLst) {
if (tocLst_1.tail.tail.tail.tail != null) {
if (tocLst_1.tail.tail.tail.head.tag === 1) {
if (tocLst_1.tail.tail.tail.head.data === "RefStyle") {
- var activePatternResult1474 = Object(__WEBPACK_IMPORTED_MODULE_8__RefParse_fs__["a" /* $7C$AgnoEqual$7C$_$7C$ */])(tocLst_1.tail.tail.tail.tail);
+ var activePatternResult1470 = Object(__WEBPACK_IMPORTED_MODULE_7__RefParse_fs__["a" /* $7C$AgnoEqual$7C$_$7C$ */])(tocLst_1.tail.tail.tail.tail);
- if (activePatternResult1474 != null) {
- $var8 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1474)];
+ if (activePatternResult1470 != null) {
+ $var8 = [0, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult1470)];
} else {
$var8 = [1];
}
@@ -9620,7 +9599,7 @@ function preParser(tLst) {
return function (tupledArg) {
return [tupledArg[1][0], tupledArg[0], tupledArg[1][1]];
}(function (tupledArg_1) {
- return [tupledArg_1[0], tocGen_(tupledArg_1[1], 0)];
+ return [tupledArg_1[0], tocGen_(tupledArg_1[1])];
}(citeGen_(tLst)));
}
@@ -10216,7 +10195,8 @@ function refParse(style, tocLst) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__Shared_fs__ = __webpack_require__(9);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Logger_Logger_fs__ = __webpack_require__(10);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -10233,6 +10213,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
+
var LexerState = function () {
function LexerState(tag, data) {
_classCallCheck(this, LexerState);
@@ -10560,7 +10541,7 @@ function nextToken(state, s) {
if (activePatternResult801 != null) {
return [[new __WEBPACK_IMPORTED_MODULE_1__Types_fs__["r" /* Token */](1, Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult801)[0]), Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_11_fable_core_Option__["b" /* getValue */])(activePatternResult801)[2]], state];
} else {
- __WEBPACK_IMPORTED_MODULE_6__Shared_fs__["j" /* sharedLog */].Warn(null)(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_9__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Unrecognised character: %A"))(matchValue[0]));
+ Object(__WEBPACK_IMPORTED_MODULE_9__Logger_Logger_fs__["a" /* globLog */])().Warn(null)(Object(__WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_10__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("Unrecognised character: %A"))(matchValue[0]));
return [[new __WEBPACK_IMPORTED_MODULE_1__Types_fs__["r" /* Token */](1, Object(__WEBPACK_IMPORTED_MODULE_5__LexerShared_fs__["f" /* toString */])(matchValue[0][0])), Object(__WEBPACK_IMPORTED_MODULE_6__Shared_fs__["i" /* sOnwards */])(1, matchValue[0])], state];
}
}
@@ -12168,8 +12149,6 @@ function preprocessListWithDir(dir) {
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_Option__ = __webpack_require__(4);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
-
@@ -12189,7 +12168,7 @@ function readFilePath(path) {
return function (_arg1) {
return _arg1 ? splitString(function (s) {
return s.toString();
- }(__WEBPACK_IMPORTED_MODULE_0_fs__["readFileSync"](path, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_Option__["c" /* makeSome */])()))) : new __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]();
+ }(__WEBPACK_IMPORTED_MODULE_0_fs__["readFileSync"](path, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_Option__["c" /* makeSome */])()))) : splitString(path);
}(checkExists(path));
}
@@ -12204,7 +12183,6 @@ module.exports = require("fs");
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
-/* unused harmony export logger */
/* unused harmony export surround */
/* unused harmony export mdFStr */
/* unused harmony export mdInlineElements$27$ */
@@ -12214,11 +12192,11 @@ module.exports = require("fs");
/* unused harmony export mdList */
/* unused harmony export mdHeader */
/* harmony export (immutable) */ __webpack_exports__["a"] = mdBody;
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Logger_Logger_fs__ = __webpack_require__(10);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
-/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__ = __webpack_require__(6);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__ = __webpack_require__(1);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__ = __webpack_require__(5);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__ = __webpack_require__(0);
+/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Shared_fs__ = __webpack_require__(9);
@@ -12226,10 +12204,9 @@ module.exports = require("fs");
-var logger = new __WEBPACK_IMPORTED_MODULE_0__Logger_Logger_fs__["a" /* Logger */](1);
function surround(pat, str) {
var pat2 = pat === "(" ? ")" : pat === "[" ? "]" : pat === "{" ? "}" : pat;
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s%s%s"))(pat, str, pat2);
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s%s%s"))(pat, str, pat2);
}
function mdFStr(fStr) {
switch (fStr.tag) {
@@ -12274,7 +12251,7 @@ function mdInlineElements_(b, eles) {
return sbraSurround(mdFStr(ele.data[0])) + braSurround(ele.data[1]);
case 2:
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("!%s"))(sbraSurround(ele.data[0])) + braSurround(ele.data[1]);
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("!%s"))(sbraSurround(ele.data[0])) + braSurround(ele.data[1]);
case 3:
return sbraSurround("^" + mdFStr($var1[1]));
@@ -12282,11 +12259,11 @@ function mdInlineElements_(b, eles) {
}();
};
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(convertMd, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s"))(b), eles);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(convertMd, Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s"))(b), eles);
}
-var mdInlineElements = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function (eles) {
+var mdInlineElements = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(function (eles) {
return mdInlineElements_("", eles);
});
function mdParagraph(lines) {
@@ -12294,7 +12271,7 @@ function mdParagraph(lines) {
return pLinesStr + mdInlineElements(line);
};
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, "", lines) + "\n\n";
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, "", lines) + "\n\n";
}
function mdTable(rows) {
var containHeader = function containHeader(row) {
@@ -12308,11 +12285,11 @@ function mdTable(rows) {
};
takeoutCells = function takeoutCells(list) {
- return Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(mapping, list);
+ return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["f" /* map */])(mapping, list);
};
- var headerRows = takeoutCells(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(containHeader, rows));
- var bodyRows = takeoutCells(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(function ($var2) {
+ var headerRows = takeoutCells(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(containHeader, rows));
+ var bodyRows = takeoutCells(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["d" /* filter */])(function ($var2) {
return function (value) {
return !value;
}(containHeader($var2));
@@ -12325,7 +12302,7 @@ function mdTable(rows) {
}(alignRow_1 ? cell.data[2].tag === 1 ? "---:" : cell.data[2].tag === 2 ? ":---" : cell.data[2].tag === 3 ? "---" : ":---:" : mdInlineElements(cell.data[0]));
};
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(cellsFolder)(alignRow), "|", row_1);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(cellsFolder)(alignRow), "|", row_1);
};
var foldRows = function foldRows(alignRow_2, rows_1) {
@@ -12333,12 +12310,12 @@ function mdTable(rows) {
return pStr_1 + foldCells(alignRow_3, row_2) + "\n";
};
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(rowsFolder)(alignRow_2), "", rows_1);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(rowsFolder)(alignRow_2), "", rows_1);
};
- var foldNormalRows = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(foldRows)(false);
- var foldAlignRow = Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(foldCells)(true);
- return foldNormalRows(headerRows) + foldAlignRow(Object(__WEBPACK_IMPORTED_MODULE_4__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(headerRows)) + foldNormalRows(bodyRows) + "\n\n";
+ var foldNormalRows = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(foldRows)(false);
+ var foldAlignRow = Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(foldCells)(true);
+ return foldNormalRows(headerRows) + foldAlignRow(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_List__["e" /* head */])(headerRows)) + foldNormalRows(bodyRows) + "\n\n";
}
function mdList(list) {
var mdListItem = function mdListItem(ord, tab, tupledArg, li) {
@@ -12346,7 +12323,7 @@ function mdList(list) {
if (num <= 0) {
return "";
} else {
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])(num, "\t");
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])(num, "\t");
}
};
@@ -12363,19 +12340,19 @@ function mdList(list) {
if (matchValue[1] === "") {
return "";
} else if (matchValue[0]) {
- return Object(__WEBPACK_IMPORTED_MODULE_0__Logger_Logger_fs__["d" /* logPassN */])(logger.Debug, Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s%i. %s\n"))(makeTabs(tab), tupledArg[1], s_1));
+ return Object(__WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__["c" /* logPassN */])(Object(__WEBPACK_IMPORTED_MODULE_4__Logger_Logger_fs__["a" /* globLog */])().Debug, Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s%i. %s\n"))(makeTabs(tab), tupledArg[1], s_1));
} else {
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s- %s\n"))(makeTabs(tab), s_1);
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s- %s\n"))(makeTabs(tab), s_1);
}
}(mdInlineElements(li.data)));
}
};
var ord_1 = list.ListType.tag === 0 ? false : true;
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(mdListItem)(ord_1, list.Depth - 1), ["", 1], list.ListItem)[0];
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(mdListItem)(ord_1, list.Depth - 1), ["", 1], list.ListItem)[0];
}
function mdHeader(header) {
- return Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s %s\n")))(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])(header.Level, "#"))(mdInlineElements(header.HeaderName));
+ return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s %s\n")))(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["d" /* replicate */])(header.Level, "#"))(mdInlineElements(header.HeaderName));
}
function mdBody(pObjs) {
var folder = function folder(pStr, pObj) {
@@ -12394,18 +12371,18 @@ function mdBody(pObjs) {
return mdTable(pObj.data);
case 3:
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s\n"))(mdList(pObj.data));
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%s\n"))(mdList(pObj.data));
case 1:
return mdHeader(pObj.data[0]);
default:
- return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%A is not implemented"))(pObj);
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["h" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_11_fable_core_String__["b" /* printf */])("%A is not implemented"))(pObj);
}
}();
};
- return Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, "", pObjs);
+ return Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_Seq__["f" /* fold */])(folder, "", pObjs);
}
/***/ }),
@@ -12633,7 +12610,7 @@ function strToC(toc) {
} else if (header.Level === tupledArg[0]) {
return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["p" /* TListItem */](1, header.HeaderName), tupledArg[1]), null, tupledArg[3] + 1];
} else if (header.Level > tupledArg[0]) {
- var patternInput = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseHdsIntoList)(tupledArg[0] + 1)(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(getCurrentHeaders)(tupledArg[0] + 1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(Object(__WEBPACK_IMPORTED_MODULE_7__Shared_fs__["l" /* xOnwards */])(tupledArg[3], headers_1)));
+ var patternInput = Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(parseHdsIntoList)(tupledArg[0] + 1)(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_11_fable_core_CurriedLambda__["a" /* default */])(getCurrentHeaders)(tupledArg[0] + 1, new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */]())(Object(__WEBPACK_IMPORTED_MODULE_7__Shared_fs__["k" /* xOnwards */])(tupledArg[3], headers_1)));
return [tupledArg[0], new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_11_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["p" /* TListItem */](0, patternInput[0]), tupledArg[1]), excludeSelfSkip(patternInput[1]), tupledArg[3] + 1];
} else {
throw new Error("list item level < current level, not possible");
diff --git a/FMark/js/fmark.js.map b/FMark/js/fmark.js.map
index fe358e5..a849348 100644
--- a/FMark/js/fmark.js.map
+++ b/FMark/js/fmark.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap b2719a8d4f2a997a93b2","webpack:///./src/Common/MarkdownGen/MarkdownGen.fs","webpack:///./src/Common/FMark.fs","webpack:///./src/Common/Types.fs","webpack:///./src/Common/HTMLGen/HTMLGenHelpers.fs","webpack:///src/Common/Types.fs","webpack:///src/Common/Shared.fs","webpack:///src/Common/Logger/Logger.fs","webpack:///./src/Common/FableFileIO.fs","webpack:///./src/Common/TOCite/RefParse.fs","webpack:///src/Common/Parser/ParserHelperFuncs.fs","webpack:///src/Common/Markalc/MarkalcShared.fs","webpack:///src/Common/Lexer/LexerShared.fs","webpack:///src/FMarkFable/FMarkFable.fs","webpack:///src/Common/FMark.fs","webpack:///src/Common/Parser/Parser.fs","webpack:///src/Common/Markalc/Markalc.fs","webpack:///src/Common/Markalc/Expression.fs","webpack:///src/Common/TOCite/TOCite.fs","webpack:///src/Common/TOCite/RefParse.fs","webpack:///src/Common/Lexer/Lexer.fs","webpack:///src/Common/Lexer/Preprocessor.fs","webpack:///src/Common/FableFileIO.fs","webpack:///external \"fs\"","webpack:///src/Common/MarkdownGen/MarkdownGen.fs","webpack:///src/Common/HTMLGen/HTMLGen.fs","webpack:///src/Common/HTMLGen/HTMLGenHelpers.fs"],"names":["append","xs","ys","seqFold","acc","x","reverse","choose","f","r","y","getValue","collect","concat","filter","where","initialize","n","Error","i","map","mapIndexed","indexed","partition","lacc","racc","replicate","singleton","slice","lower","upper","noLower","noUpper","unzip","seqFoldBack","xy","unzip3","xyz","groupBy","seqToList","seqMap","k","mapGroupBy","splitAt","index","last","first","Array","tail","head","ofArray","undefined","Enumerator","iter","cur","next","current","value","done","getEnumerator","o","GetEnumerator","Symbol","iterator","toIterator","en","MoveNext","Current","__failIfNone","res","toList","foldBack","ofList","delay","unfold","length","firstDone","iters","average","count","sum","reduce","averageBy","output","innerIter","hasFinished","compareWith","nonZero","tryFind","map2","empty","enumerateWhile","cond","enumerateThenFinally","finalFn","err","it","enumerateUsing","disp","work","isDisposed","disposeOnce","Dispose","exactlyOne","fst","snd","except","itemsToExclude","source","exclusionItems","from","testIsNotInExclusionItems","element","some","excludedItem","equals","exists","exists2","cur1","cur2","iter1","iter2","fold","isArray","ArrayBuffer","isView","arr","fold2","foldBack2","ar1","ar2","forAll","forAll2","tryHead","makeSome","initializeInfinite","tryItem","j","item","iterate","_","iterate2","iterateIndexed","iterateIndexed2","isEmpty","tryLast","mapIndexed2","map3","zs","iter3","cur3","chunkBySize","size","result","arrayChunkBySize","mapFold","transform","push","mapFoldBack","max","compare","maxBy","min","minBy","pairwise","skip","scan","permute","arrayPermute","rangeStep","step","rangeChar","String","fromCharCode","charCodeAt","range","readOnly","reduceBack","ar","seed","scanBack","skipWhile","hasPassed","sortWith","sort","sumBy","take","truncate","takeWhile","defaultValue","find","tryFindBack","findBack","tryFindIndex","findIndex","tryFindIndexBack","findIndexBack","tryPick","pick","zip","zip3","z","types","Map","setType","fullName","cons","set","getType","get","reflection","NonDeclaredType","kind","definition","generics","other","equalsRecords","Any","Unit","Option","t","FableArray","isTypedArray","def","genArg","Tuple","FableFunction","GenericParam","Interface","makeGeneric","typeDef","genArgs","isGeneric","typ","getDefinition","extendInfo","info","parent","Object","getPrototypeOf","prototype","FSymbol","newInfo","parentInfo","getOwnPropertyNames","forEach","assign","hasInterface","obj","interfaceName","interfaces","indexOf","getPropertyNames","propertyMap","properties","toString","quoteStrings","isObject","Number","Boolean","JSON","stringify","Date","dateToString","ToString","uci","cases","tag","data","join","v","ObjectRef","idMap","has","WeakMap","getHashCode","id","hash","GetHashCode","s","h","len","Equals","byteLength","dv1","DataView","buffer","dv2","getUint8","getTime","comparePrimitives","CompareTo","b1","b2","compareDates","xhash","yhash","lessThan","lessOrEqual","greaterThan","greaterOrEqual","keys","key","compareRecords","equalsUnions","compareUnions","createDisposable","createAtom","atom","arguments","CaseRules","None","LowerFirst","isList","type","createObj","fields","caseRule","casesCache","proto","caseInfo","toLowerCase","substr","toPlainJsObj","constructor","target","props","p","prop","getOwnPropertyDescriptor","apply","jsOptions","mutator","opts","round","digits","m","Math","pow","toFixed","floor","e","sign","randomNext","random","applyOperator","operator","getMethod","meth","unescapeDataString","decodeURIComponent","replace","escapeDataString","encodeURIComponent","escapeUriString","encodeURI","clear","col","splice","Some","acceptNull","defaultArg","arg","defaultArgWith","defThunk","predicate","CurriedLambda","expectedArgsLength","curried","curriedFn","args","args2","actualArgsLength","restArgs","newLambda","args3","fsFormatRegExp","formatRegExp","guidRegex","StringComparison","CurrentCulture","CurrentCultureIgnoreCase","InvariantCulture","InvariantCultureIgnoreCase","Ordinal","OrdinalIgnoreCase","cmp","ic","isIgnoreCase","isOrdinal","toLocaleLowerCase","localeCompare","compareTo","startsWith","str","pattern","indexOfAny","anyOf","startIndex","c","toHex","abs","printf","input","cont","fsFormat","toConsole","console","log","toConsoleError","error","toText","toFail","formatOnce","str2","rep","prefix","flags","pad","precision","format","toPrecision","toExponential","toUpperCase","plusPrefix","parseInt","isNaN","ch","padLeft","once","createPrinter","printer","strCopy","test","match","idx","padSymbol","substring","exec","decs","endsWith","search","lastIndexOf","insert","isNullOrEmpty","isNullOrWhiteSpace","delimiter","xs2","validateGuid","doNotThrow","trimmed","trim","newGuid","b","a","_convertMapsInitialized","_byteToHex","_hexToByte","initConvertMaps","guidToArray","buf","Uint8Array","oct","arrayToGuid","notSupported","name","toBase64String","inArray","btoa","fromBase64String","b64Encoded","binary","atob","bytes","isRight","padRight","remove","RegExp","escape","getCharAtIndex","split","splitters","removeEmpty","splitters2","splits","reg","lastIndex","side","chars","pred","Result","mapError","bind","base","List","tmp","create","vs","add","countBy","kv","MapTree","tree_sizeAux","sizeAux","tree_size","tree_empty","tree_height","_arg1","tree_isEmpty","tree_mk","l","matchValue","hl","hr","tree_rebalance","t1","t2","t1h","t2h","tree_add","comparer","Compare","tree_find","tree_tryFind","c_1","tree_partition1","acc1","acc2","tree_partitionAux","acc_0","acc_1","acc_2","acc_3","tree_partition","tree_filter1","tree_filterAux","tree_filter","tree_spliceOutSuccessor","kvl","tree_remove","tree_mem","mem","tree_iter","tree_tryPick","matchValue_1","tree_exists","tree_forall","tree_mapi","tree_foldBack","tree_fold","tree_mkFromEnumerator","tree_ofSeq","ie","tree_collapseLHS","stack","listOfArray","tree_mkIterator","started","tree_moveNext","FableMap","m2","seqCompareWith","kvp1","kvp2","tree","oldSize","containsValue","tryGetValue","rs","findKey","seqPick","tryFindKey","seqTryPick","Comparer","fromEqualityComparer","OperationCanceledError","setPrototypeOf","Trampoline","callCount","maxTrampolineCallCount","setTimeout","protectedCont","ctx","cancelToken","isCancelled","onCancel","trampoline","incrementAndCheck","hijack","onError","protectedBind","computation","binder","onSuccess","ex","protectedReturn","AsyncBuilder","computation1","computation2","Bind","generator","sequence","body","While","Delay","compensation","catchHandler","ex2","resource","TryFinally","guard","Return","parseRadix","invalidRadix2","invalidRadix8","invalidRadix10","isValid","radix","tryParse","initial","radix_","parse","options","unescape","isMatch","matches","global","ignoreCase","multiline","replacement","limit","offset","replacer","sub1","_matches","sub2","offsetRegex","padWithZeros","offsetToString","isMinus","hours","minutes","toHalfUTCString","date","half","toISOString","d","utc","printOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffset","toISOStringWithOffset","dateWithOffset","toStringWithCustomFormat","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toStringWithOffset","toStringWithKind","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","DateTime","minValue","maxValue","parseRaw","detectUTC","_err","date1","year","month","day","ms","dateValue","UTC","setFullYear","now","utcNow","today","isLeapYear","daysInMonth","toUniversalTime","toLocalTime","timeOfDay","hour","minute","second","millisecond","getUTCMilliseconds","dayOfWeek","getUTCDay","getDay","dayOfYear","_year","_month","_day","ts","addDays","addHours","addMinutes","addSeconds","addMilliseconds","addYears","newMonth","newYear","_daysInMonth","newDay","addMonths","newMonth_","yearOffset","subtract","that","toLongDateString","toDateString","toShortDateString","toLongTimeString","toShortTimeString","d1","d2","xtime","ytime","op_Addition","op_Subtraction","isDaylightSavingTime","jan","jul","isDST","janOffset","julOffset","tOffset","Async","emptyContinuation","createCancellationToken","token","cancel","cancelAfter","isCancellationRequested","startChild","promise","startAsPromise","awaitPromise","fromContinuations","conts","then","catch","cancellationToken","defaultCancellationToken","catchAsync","choice1Of2","choice2Of2","ignore","parallel","computations","Promise","all","w","sleep","millisecondsDueTime","start","startWithContinuations","startImmediate","continuation","exceptionContinuation","cancellationContinuation","resolve","reject","Choice","TargetCons","addRangeInPlace","copyTo","sourceIndex","targetIndex","checkFlags","removeInPlace","setSlice","sortInPlaceBy","dir","bs","cs","ds","ceil","end","getSubArray","fill","QueueCell","message","MailboxQueue","itCell","firstAndLast","MailboxProcessor","messages","tryGet","__processEvents","buildMessage","checkCompletion","reply","mbox"],"mappings":"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AAA;AAAA;;AAAA;AAAA;;AAOA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAWA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAQD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AASC;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEC;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAkCsD;AAAA;AAAsB;AAlC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","file":"fmark.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"fmark\"] = factory();\n\telse\n\t\troot[\"fmark\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b2719a8d4f2a997a93b2","const types = new Map();\nexport function setType(fullName, cons) {\n types.set(fullName, cons);\n}\nexport function getType(fullName) {\n return types.get(fullName);\n}\nexport default {\n reflection: Symbol(\"reflection\"),\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/MarkdownGen/MarkdownGen.fs","import { permute as arrayPermute } from \"./Array\";\nimport { chunkBySize as arrayChunkBySize } from \"./Array\";\nimport List from \"./ListClass\";\nimport { getValue, makeSome } from \"./Option\";\nimport { compare, equals } from \"./Util\";\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n }\n MoveNext() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n get Current() { return this.current; }\n get get_Current() { return this.current; }\n Reset() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() { return; }\n}\nexport function getEnumerator(o) {\n return typeof o.GetEnumerator === \"function\"\n ? o.GetEnumerator() : new Enumerator(o[Symbol.iterator]());\n}\nexport function toIterator(en) {\n return {\n next() {\n return en.MoveNext()\n ? { done: false, value: en.Current }\n : { done: true, value: null };\n },\n };\n}\nfunction __failIfNone(res) {\n if (res == null) {\n throw new Error(\"Seq did not contain any matching element\");\n }\n return getValue(res);\n}\nexport function toList(xs) {\n return foldBack((x, acc) => new List(x, acc), xs, new List());\n}\nexport function ofList(xs) {\n return delay(() => unfold((x) => x.tail != null ? [x.head, x.tail] : null, xs));\n}\nexport function ofArray(xs) {\n return delay(() => unfold((i) => i < xs.length ? [xs[i], i + 1] : null, 0));\n}\nexport function append(xs, ys) {\n return delay(() => {\n let firstDone = false;\n const i = xs[Symbol.iterator]();\n let iters = [i, null];\n return unfold(() => {\n let cur;\n if (!firstDone) {\n cur = iters[0].next();\n if (!cur.done) {\n return [cur.value, iters];\n }\n else {\n firstDone = true;\n iters = [null, ys[Symbol.iterator]()];\n }\n }\n cur = iters[1].next();\n return !cur.done ? [cur.value, iters] : null;\n }, iters);\n });\n}\nexport function average(xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return acc + x;\n }, xs);\n return sum / count;\n}\nexport function averageBy(f, xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return (count === 2 ? f(acc) : acc) + f(x);\n }, xs);\n return sum / count;\n}\nexport function concat(xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n let output = { value: null };\n return unfold((innerIter) => {\n let hasFinished = false;\n while (!hasFinished) {\n if (innerIter == null) {\n const cur = iter.next();\n if (!cur.done) {\n innerIter = cur.value[Symbol.iterator]();\n }\n else {\n hasFinished = true;\n }\n }\n else {\n const cur = innerIter.next();\n if (!cur.done) {\n output = { value: cur.value };\n hasFinished = true;\n }\n else {\n innerIter = null;\n }\n }\n }\n return innerIter != null && output != null ? [output.value, innerIter] : null;\n }, null);\n });\n}\nexport function collect(f, xs) {\n return concat(map(f, xs));\n}\nexport function choose(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n const y = f(cur.value);\n if (y != null) {\n return [getValue(y), iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function compareWith(f, xs, ys) {\n const nonZero = tryFind((i) => i !== 0, map2((x, y) => f(x, y), xs, ys));\n return nonZero != null ? getValue(nonZero) : count(xs) - count(ys);\n}\nexport function delay(f) {\n return {\n [Symbol.iterator]: () => f()[Symbol.iterator](),\n };\n}\nexport function empty() {\n return unfold(() => void 0);\n}\nexport function enumerateWhile(cond, xs) {\n return concat(unfold(() => cond() ? [xs, true] : null));\n}\nexport function enumerateThenFinally(xs, finalFn) {\n return delay(() => {\n let iter;\n try {\n iter = xs[Symbol.iterator]();\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n return unfold((it) => {\n try {\n const cur = it.next();\n return !cur.done ? [cur.value, it] : null;\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n }, iter);\n });\n}\nexport function enumerateUsing(disp, work) {\n let isDisposed = false;\n const disposeOnce = () => {\n if (!isDisposed) {\n isDisposed = true;\n disp.Dispose();\n }\n };\n try {\n return enumerateThenFinally(work(disp), disposeOnce);\n }\n catch (err) {\n return void 0;\n }\n finally {\n disposeOnce();\n }\n}\nexport function exactlyOne(xs) {\n const iter = xs[Symbol.iterator]();\n const fst = iter.next();\n if (fst.done) {\n throw new Error(\"Seq was empty\");\n }\n const snd = iter.next();\n if (!snd.done) {\n throw new Error(\"Seq had multiple items\");\n }\n return fst.value;\n}\nexport function except(itemsToExclude, source) {\n const exclusionItems = Array.from(itemsToExclude);\n const testIsNotInExclusionItems = (element) => !exclusionItems.some((excludedItem) => equals(excludedItem, element));\n return filter(testIsNotInExclusionItems, source);\n}\nexport function exists(f, xs) {\n let cur;\n for (const iter = xs[Symbol.iterator]();;) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value)) {\n return true;\n }\n }\n return false;\n}\nexport function exists2(f, xs, ys) {\n let cur1;\n let cur2;\n for (const iter1 = xs[Symbol.iterator](), iter2 = ys[Symbol.iterator]();;) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n if (f(cur1.value, cur2.value)) {\n return true;\n }\n }\n return false;\n}\nexport function filter(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n if (f(cur.value)) {\n return [cur.value, iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function where(f, xs) {\n return filter(f, xs);\n}\nexport function fold(f, acc, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f, acc);\n }\n else {\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value, i);\n }\n return acc;\n }\n}\nexport function foldBack(f, xs, acc) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n acc = f(arr[i], acc, i);\n }\n return acc;\n}\nexport function fold2(f, acc, xs, ys) {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n let cur1;\n let cur2;\n for (let i = 0;; i++) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n acc = f(acc, cur1.value, cur2.value, i);\n }\n return acc;\n}\nexport function foldBack2(f, xs, ys, acc) {\n const ar1 = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const ar2 = Array.isArray(ys) || ArrayBuffer.isView(ys) ? ys : Array.from(ys);\n for (let i = ar1.length - 1; i >= 0; i--) {\n acc = f(ar1[i], ar2[i], acc, i);\n }\n return acc;\n}\nexport function forAll(f, xs) {\n return fold((acc, x) => acc && f(x), true, xs);\n}\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => acc && f(x, y), true, xs, ys);\n}\nexport function tryHead(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n return cur.done ? null : makeSome(cur.value);\n}\nexport function head(xs) {\n return __failIfNone(tryHead(xs));\n}\nexport function initialize(n, f) {\n return delay(() => unfold((i) => i < n ? [f(i), i + 1] : null, 0));\n}\nexport function initializeInfinite(f) {\n return delay(() => unfold((i) => [f(i), i + 1], 0));\n}\nexport function tryItem(i, xs) {\n if (i < 0) {\n return null;\n }\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return i < xs.length ? makeSome(xs[i]) : null;\n }\n for (let j = 0, iter = xs[Symbol.iterator]();; j++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (j === i) {\n return makeSome(cur.value);\n }\n }\n return null;\n}\nexport function item(i, xs) {\n return __failIfNone(tryItem(i, xs));\n}\nexport function iterate(f, xs) {\n fold((_, x) => f(x), null, xs);\n}\nexport function iterate2(f, xs, ys) {\n fold2((_, x, y) => f(x, y), null, xs, ys);\n}\nexport function iterateIndexed(f, xs) {\n fold((_, x, i) => f(i, x), null, xs);\n}\nexport function iterateIndexed2(f, xs, ys) {\n fold2((_, x, y, i) => f(i, x, y), null, xs, ys);\n}\nexport function isEmpty(xs) {\n const i = xs[Symbol.iterator]();\n return i.next().done;\n}\nexport function tryLast(xs) {\n try {\n return makeSome(reduce((_, x) => x, xs));\n }\n catch (err) {\n return null;\n }\n}\nexport function last(xs) {\n return __failIfNone(tryLast(xs));\n}\n// A export function 'length' method causes problems in JavaScript -- https://github.com/Microsoft/TypeScript/issues/442\nexport function count(xs) {\n return Array.isArray(xs) || ArrayBuffer.isView(xs)\n ? xs.length\n : fold((acc, x) => acc + 1, 0, xs);\n}\nexport function map(f, xs) {\n return delay(() => unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(cur.value), iter] : null;\n }, xs[Symbol.iterator]()));\n}\nexport function mapIndexed(f, xs) {\n return delay(() => {\n let i = 0;\n return unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(i++, cur.value), iter] : null;\n }, xs[Symbol.iterator]());\n });\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(f, xs, ys) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function mapIndexed2(f, xs, ys) {\n return delay(() => {\n let i = 0;\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(i++, cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function map3(f, xs, ys, zs) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n const iter3 = zs[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n const cur3 = iter3.next();\n return !cur1.done && !cur2.done && !cur3.done ? [f(cur1.value, cur2.value, cur3.value), null] : null;\n });\n });\n}\nexport function chunkBySize(size, xs) {\n const result = arrayChunkBySize(size, Array.from(xs));\n return ofArray(result);\n}\nexport function mapFold(f, acc, xs, transform) {\n const result = [];\n let r;\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n [r, acc] = f(acc, cur.value);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function mapFoldBack(f, xs, acc, transform) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const result = [];\n let r;\n for (let i = arr.length - 1; i >= 0; i--) {\n [r, acc] = f(arr[i], acc);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function max(xs) {\n return reduce((acc, x) => compare(acc, x) === 1 ? acc : x, xs);\n}\nexport function maxBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === 1 ? acc : x, xs);\n}\nexport function min(xs) {\n return reduce((acc, x) => compare(acc, x) === -1 ? acc : x, xs);\n}\nexport function minBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === -1 ? acc : x, xs);\n}\nexport function pairwise(xs) {\n return skip(2, scan((last, next) => [last[1], next], [0, 0], xs));\n}\nexport function permute(f, xs) {\n return ofArray(arrayPermute(f, Array.from(xs)));\n}\nexport function rangeStep(first, step, last) {\n if (step === 0) {\n throw new Error(\"Step cannot be 0\");\n }\n return delay(() => unfold((x) => step > 0 && x <= last || step < 0 && x >= last ? [x, x + step] : null, first));\n}\nexport function rangeChar(first, last) {\n return delay(() => unfold((x) => x <= last ? [x, String.fromCharCode(x.charCodeAt(0) + 1)] : null, first));\n}\nexport function range(first, last) {\n return rangeStep(first, 1, last);\n}\nexport function readOnly(xs) {\n return map((x) => x, xs);\n}\nexport function reduce(f, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f);\n }\n const iter = xs[Symbol.iterator]();\n let cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n let acc = cur.value;\n while (true) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value);\n }\n return acc;\n}\nexport function reduceBack(f, xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n if (ar.length === 0) {\n throw new Error(\"Seq was empty\");\n }\n let acc = ar[ar.length - 1];\n for (let i = ar.length - 2; i >= 0; i--) {\n acc = f(ar[i], acc, i);\n }\n return acc;\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function reverse(xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return ofArray(ar.reverse());\n}\nexport function scan(f, seed, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((acc) => {\n if (acc == null) {\n return [seed, seed];\n }\n const cur = iter.next();\n if (!cur.done) {\n acc = f(acc, cur.value);\n return [acc, acc];\n }\n return void 0;\n }, null);\n });\n}\nexport function scanBack(f, xs, seed) {\n return reverse(scan((acc, x) => f(x, acc), seed, reverse(xs)));\n}\nexport function singleton(y) {\n return unfold((x) => x != null ? [x, null] : null, y);\n}\nexport function skip(n, xs) {\n return {\n [Symbol.iterator]: () => {\n const iter = xs[Symbol.iterator]();\n for (let i = 1; i <= n; i++) {\n if (iter.next().done) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return iter;\n },\n };\n}\nexport function skipWhile(f, xs) {\n return delay(() => {\n let hasPassed = false;\n return filter((x) => hasPassed || (hasPassed = !f(x)), xs);\n });\n}\nexport function sortWith(f, xs) {\n const ys = Array.from(xs);\n return ofArray(ys.sort(f));\n}\nexport function sum(xs) {\n return fold((acc, x) => acc + x, 0, xs);\n}\nexport function sumBy(f, xs) {\n return fold((acc, x) => acc + f(x), 0, xs);\n}\nexport function tail(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n return {\n [Symbol.iterator]: () => iter,\n };\n}\nexport function take(n, xs, truncate = false) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n if (i < n) {\n const cur = iter.next();\n if (!cur.done) {\n return [cur.value, i + 1];\n }\n if (!truncate) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return void 0;\n }, 0);\n });\n}\nexport function truncate(n, xs) {\n return take(n, xs, true);\n}\nexport function takeWhile(f, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n const cur = iter.next();\n if (!cur.done && f(cur.value)) {\n return [cur.value, null];\n }\n return void 0;\n }, 0);\n });\n}\nexport function tryFind(f, xs, defaultValue) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return makeSome(cur.value);\n }\n }\n return defaultValue === void 0 ? null : makeSome(defaultValue);\n}\nexport function find(f, xs) {\n return __failIfNone(tryFind(f, xs));\n}\nexport function tryFindBack(f, xs, defaultValue) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return tryFind(f, arr.reverse(), defaultValue);\n}\nexport function findBack(f, xs) {\n return __failIfNone(tryFindBack(f, xs));\n}\nexport function tryFindIndex(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndex(f, xs) {\n return __failIfNone(tryFindIndex(f, xs));\n}\nexport function tryFindIndexBack(f, xs) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n if (f(arr[i], i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndexBack(f, xs) {\n return __failIfNone(tryFindIndexBack(f, xs));\n}\nexport function tryPick(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n const y = f(cur.value, i);\n if (y != null) {\n return y;\n }\n }\n return null;\n}\nexport function pick(f, xs) {\n return __failIfNone(tryPick(f, xs));\n}\nexport function unfold(f, fst) {\n return {\n [Symbol.iterator]: () => {\n // Capture a copy of the first value in the closure\n // so the sequence is restarted every time, see #1230\n let acc = fst;\n return {\n next: () => {\n const res = f(acc);\n if (res != null) {\n acc = res[1];\n return { done: false, value: res[0] };\n }\n return { done: true };\n },\n };\n },\n };\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FMark.fs","export function map(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(source[i]);\n }\n return target;\n}\nexport function mapIndexed(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(i, source[i]);\n }\n return target;\n}\nexport function indexed(source) {\n return mapIndexed((i, x) => [i, x], source, Array);\n}\nexport function addRangeInPlace(range, xs) {\n const iter = range[Symbol.iterator]();\n let cur = iter.next();\n while (!cur.done) {\n xs.push(cur.value);\n cur = iter.next();\n }\n}\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n while (count--) {\n target[targetIndex++] = source[sourceIndex++];\n }\n}\nexport function partition(f, xs) {\n const ys = [];\n const zs = [];\n let j = 0;\n let k = 0;\n for (let i = 0; i < xs.length; i++) {\n if (f(xs[i])) {\n ys[j++] = xs[i];\n }\n else {\n zs[k++] = xs[i];\n }\n }\n return [ys, zs];\n}\nexport function permute(f, xs) {\n // Keep the type of the array\n const ys = xs.map(() => null);\n const checkFlags = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n const j = f(i);\n if (j < 0 || j >= xs.length) {\n throw new Error(\"Not a valid permutation\");\n }\n ys[j] = xs[i];\n checkFlags[j] = 1;\n }\n for (let i = 0; i < xs.length; i++) {\n if (checkFlags[i] !== 1) {\n throw new Error(\"Not a valid permutation\");\n }\n }\n return ys;\n}\nexport function removeInPlace(item, xs) {\n const i = xs.indexOf(item);\n if (i > -1) {\n xs.splice(i, 1);\n return true;\n }\n return false;\n}\nexport function setSlice(target, lower, upper, source) {\n const length = (upper || target.length - 1) - lower;\n if (ArrayBuffer.isView(target) && source.length <= length) {\n target.set(source, lower);\n }\n else {\n for (let i = lower | 0, j = 0; j <= length; i++, j++) {\n target[i] = source[j];\n }\n }\n}\nexport function sortInPlaceBy(f, xs, dir = 1) {\n return xs.sort((x, y) => {\n x = f(x);\n y = f(y);\n return (x < y ? -1 : x === y ? 0 : 1) * dir;\n });\n}\nexport function unzip(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n }\n return [bs, cs];\n}\nexport function unzip3(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n const ds = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n ds[i] = xs[i][2];\n }\n return [bs, cs, ds];\n}\nexport function chunkBySize(size, xs) {\n if (size < 1) {\n throw new Error(\"The input must be positive. parameter name: chunkSize\");\n }\n if (xs.length === 0) {\n return [[]];\n }\n const result = [];\n // add each chunk to the result\n for (let x = 0; x < Math.ceil(xs.length / size); x++) {\n const start = x * size;\n const end = start + size;\n result.push(xs.slice(start, end));\n }\n return result;\n}\nexport function getSubArray(xs, startIndex, count) {\n return xs.slice(startIndex, startIndex + count);\n}\nexport function fill(target, targetIndex, count, value) {\n target.fill(value, targetIndex, targetIndex + count);\n}\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw new Error(\"The input must be non-negative.\");\n }\n if (index > xs.length) {\n throw new Error(\"The input sequence has an insufficient number of elements.\");\n }\n return [xs.slice(0, index), xs.slice(index)];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Types.fs","export const offsetRegex = /(?:Z|[+-](\\d{2}):?(\\d{2})?)$/;\nexport function padWithZeros(i, length) {\n let str = i.toString(10);\n while (str.length < length) {\n str = \"0\" + str;\n }\n return str;\n}\nexport function offsetToString(offset) {\n const isMinus = offset < 0;\n offset = Math.abs(offset);\n const hours = ~~(offset / 3600000);\n const minutes = (offset % 3600000) / 60000;\n return (isMinus ? \"-\" : \"+\") +\n padWithZeros(hours, 2) + \":\" +\n padWithZeros(minutes, 2);\n}\nexport function toHalfUTCString(date, half) {\n const str = date.toISOString();\n return half === \"first\"\n ? str.substring(0, str.indexOf(\"T\"))\n : str.substring(str.indexOf(\"T\") + 1, str.length - 1);\n}\nfunction toISOString(d, utc) {\n if (utc) {\n return d.toISOString();\n }\n else {\n // JS Date is always local\n const printOffset = d.kind == null ? true : d.kind === 2 /* Local */;\n return padWithZeros(d.getFullYear(), 4) + \"-\" +\n padWithZeros(d.getMonth() + 1, 2) + \"-\" +\n padWithZeros(d.getDate(), 2) + \"T\" +\n padWithZeros(d.getHours(), 2) + \":\" +\n padWithZeros(d.getMinutes(), 2) + \":\" +\n padWithZeros(d.getSeconds(), 2) + \".\" +\n padWithZeros(d.getMilliseconds(), 3) +\n (printOffset ? offsetToString(d.getTimezoneOffset() * -60000) : \"\");\n }\n}\nfunction toISOStringWithOffset(dateWithOffset, offset) {\n const str = dateWithOffset.toISOString();\n return str.substring(0, str.length - 1) + offsetToString(offset);\n}\nfunction toStringWithCustomFormat(date, format, utc) {\n return format.replace(/(\\w)\\1*/g, (match) => {\n let rep = match;\n switch (match.substring(0, 1)) {\n case \"y\":\n const y = utc ? date.getUTCFullYear() : date.getFullYear();\n rep = match.length < 4 ? y % 100 : y;\n break;\n case \"M\":\n rep = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n break;\n case \"d\":\n rep = utc ? date.getUTCDate() : date.getDate();\n break;\n case \"H\":\n rep = utc ? date.getUTCHours() : date.getHours();\n break;\n case \"h\":\n const h = utc ? date.getUTCHours() : date.getHours();\n rep = h > 12 ? h % 12 : h;\n break;\n case \"m\":\n rep = utc ? date.getUTCMinutes() : date.getMinutes();\n break;\n case \"s\":\n rep = utc ? date.getUTCSeconds() : date.getSeconds();\n break;\n }\n if (rep !== match && rep < 10 && match.length > 1) {\n rep = \"0\" + rep;\n }\n return rep;\n });\n}\nexport function toStringWithOffset(date, format) {\n const d = new Date(date.getTime() + date.offset);\n if (!format) {\n return d.toISOString().replace(/\\.\\d+/, \"\").replace(/[A-Z]|\\.\\d+/g, \" \") + offsetToString(date.offset);\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\": return toHalfUTCString(d, \"first\");\n case \"T\":\n case \"t\": return toHalfUTCString(d, \"second\");\n case \"O\":\n case \"o\": return toISOStringWithOffset(d, date.offset);\n default: throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return toStringWithCustomFormat(d, format, true);\n }\n}\nexport function toStringWithKind(date, format) {\n const utc = date.kind === 1 /* UTC */;\n if (!format) {\n return utc ? date.toUTCString() : date.toLocaleString();\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\":\n return utc ? toHalfUTCString(date, \"first\") : date.toLocaleDateString();\n case \"T\":\n case \"t\":\n return utc ? toHalfUTCString(date, \"second\") : date.toLocaleTimeString();\n case \"O\":\n case \"o\":\n return toISOString(date, utc);\n default:\n throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return toStringWithCustomFormat(date, format, utc);\n }\n}\nexport function toString(date, format) {\n return date.offset != null\n ? toStringWithOffset(date, format)\n : toStringWithKind(date, format);\n}\nexport default function DateTime(value, kind) {\n kind = kind == null ? 0 /* Unspecified */ : kind;\n const d = new Date(value);\n d.kind = kind | 0;\n return d;\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTime(-62135596800000, 0 /* Unspecified */);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTime(253402300799999, 0 /* Unspecified */);\n}\nexport function parseRaw(str) {\n let date = new Date(str);\n if (isNaN(date.getTime())) {\n // Check if this is a time-only string, which JS Date parsing cannot handle (see #1045)\n if (/^(?:[01]?\\d|2[0-3]):(?:[0-5]?\\d)(?::[0-5]?\\d(?:\\.\\d+)?)?(?:\\s*[AaPp][Mm])?$/.test(str)) {\n const d = new Date();\n date = new Date(d.getFullYear() + \"/\" + (d.getMonth() + 1) + \"/\" + d.getDate() + \" \" + str);\n }\n else {\n throw new Error(\"The string is not a valid Date.\");\n }\n }\n return date;\n}\nexport function parse(str, detectUTC = false) {\n const date = parseRaw(str);\n const offset = offsetRegex.exec(str);\n // .NET always parses DateTime as Local if there's offset info (even \"Z\")\n // Newtonsoft.Json uses UTC if the offset is \"Z\"\n const kind = offset != null\n ? (detectUTC && offset[0] === \"Z\" ? 1 /* UTC */ : 2 /* Local */)\n : 0 /* Unspecified */;\n return DateTime(date.getTime(), kind);\n}\nexport function tryParse(v) {\n try {\n return [true, parse(v)];\n }\n catch (_err) {\n return [false, minValue()];\n }\n}\nexport function offset(date) {\n const date1 = date;\n return typeof date1.offset === \"number\"\n ? date1.offset\n : (date.kind === 1 /* UTC */\n ? 0 : date.getTimezoneOffset() * -60000);\n}\nexport function create(year, month, day, h = 0, m = 0, s = 0, ms = 0, kind) {\n const dateValue = kind === 1 /* UTC */\n ? Date.UTC(year, month - 1, day, h, m, s, ms)\n : new Date(year, month - 1, day, h, m, s, ms).getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date.\");\n }\n const date = DateTime(dateValue, kind);\n if (year <= 99) {\n date.setFullYear(year, month - 1, day);\n }\n return date;\n}\nexport function now() {\n return DateTime(Date.now(), 2 /* Local */);\n}\nexport function utcNow() {\n return DateTime(Date.now(), 1 /* UTC */);\n}\nexport function today() {\n return date(now());\n}\nexport function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport function daysInMonth(year, month) {\n return month === 2\n ? (isLeapYear(year) ? 29 : 28)\n : (month >= 8 ? (month % 2 === 0 ? 31 : 30) : (month % 2 === 0 ? 30 : 31));\n}\nexport function toUniversalTime(date) {\n return date.kind === 1 /* UTC */ ? date : DateTime(date.getTime(), 1 /* UTC */);\n}\nexport function toLocalTime(date) {\n return date.kind === 2 /* Local */ ? date : DateTime(date.getTime(), 2 /* Local */);\n}\nexport function timeOfDay(d) {\n return hour(d) * 3600000\n + minute(d) * 60000\n + second(d) * 1000\n + millisecond(d);\n}\nexport function date(d) {\n return create(year(d), month(d), day(d), 0, 0, 0, 0, d.kind);\n}\nexport function day(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDate() : d.getDate();\n}\nexport function hour(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCHours() : d.getHours();\n}\nexport function millisecond(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMilliseconds() : d.getMilliseconds();\n}\nexport function minute(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMinutes() : d.getMinutes();\n}\nexport function month(d) {\n return (d.kind === 1 /* UTC */ ? d.getUTCMonth() : d.getMonth()) + 1;\n}\nexport function second(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCSeconds() : d.getSeconds();\n}\nexport function year(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCFullYear() : d.getFullYear();\n}\nexport function dayOfWeek(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDay() : d.getDay();\n}\nexport function dayOfYear(d) {\n const _year = year(d);\n const _month = month(d);\n let _day = day(d);\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n return DateTime(d.getTime() + ts, d.kind);\n}\nexport function addDays(d, v) {\n return DateTime(d.getTime() + v * 86400000, d.kind);\n}\nexport function addHours(d, v) {\n return DateTime(d.getTime() + v * 3600000, d.kind);\n}\nexport function addMinutes(d, v) {\n return DateTime(d.getTime() + v * 60000, d.kind);\n}\nexport function addSeconds(d, v) {\n return DateTime(d.getTime() + v * 1000, d.kind);\n}\nexport function addMilliseconds(d, v) {\n return DateTime(d.getTime() + v, d.kind);\n}\nexport function addYears(d, v) {\n const newMonth = month(d);\n const newYear = year(d) + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function addMonths(d, v) {\n let newMonth = month(d) + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = year(d) + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? DateTime(d.getTime() - that, d.kind)\n : d.getTime() - that.getTime();\n}\nexport function toLongDateString(d) {\n return d.toDateString();\n}\nexport function toShortDateString(d) {\n return d.toLocaleDateString();\n}\nexport function toLongTimeString(d) {\n return d.toLocaleTimeString();\n}\nexport function toShortTimeString(d) {\n return d.toLocaleTimeString().replace(/:\\d\\d(?!:)/, \"\");\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport function compare(x, y) {\n const xtime = x.getTime();\n const ytime = y.getTime();\n return xtime === ytime ? 0 : (xtime < ytime ? -1 : 1);\n}\nexport const compareTo = compare;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function isDaylightSavingTime(x) {\n const jan = new Date(x.getFullYear(), 0, 1);\n const jul = new Date(x.getFullYear(), 6, 1);\n return isDST(jan.getTimezoneOffset(), jul.getTimezoneOffset(), x.getTimezoneOffset());\n}\nfunction isDST(janOffset, julOffset, tOffset) {\n return Math.min(janOffset, julOffset) === tOffset;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/HTMLGen/HTMLGenHelpers.fs","module Types\r\n\r\ntype Language =\r\n | Python\r\n | FSharp\r\n | CPP\r\n | C\r\n | Empty\r\n\r\ntype Token =\r\n | CODEBLOCK of string * Language\r\n | LITERAL of string\r\n | WHITESPACE of size: int\r\n | NUMBER of string\r\n | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT | COMMA\r\n | DASTERISK | TASTERISK | UNDERSCORE | DUNDERSCORE | TUNDERSCORE | TILDE | DTILDE\r\n | TTILDE | LSBRA | RSBRA | LBRA | RBRA | BSLASH | SLASH | LABRA | RABRA | LCBRA\r\n | RCBRA | BACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT | SEMICOLON\r\n | HEADER of int | FOOTNOTE of int | CITATION of string\r\n\r\ntype TFrmtedString =\r\n | Strong of InlineElement list\r\n | Emphasis of InlineElement list\r\n | Line of InlineElement list\r\n | Strike of InlineElement list\r\n | Literal of string\r\n | Code of string\r\n\r\nand InlineElement =\r\n | FrmtedString of TFrmtedString\r\n | Link of HyperText: TFrmtedString * URL: string\r\n | Picture of Alt: string * URL: string\r\n | InlineCitation of HyperText: TFrmtedString * ID: string\r\n | InlineFootnote of HyperText: TFrmtedString * ID: string\r\n\r\ntype TLine = InlineElement list\r\n\r\ntype THeader = {HeaderName: TLine; Level: int}\r\n\r\ntype Ttoc = {HeaderLst: THeader list}\r\n\r\ntype TListType = | UL | OL of startNo:int\r\ntype TList = {ListType: TListType; ListItem: TListItem list; Depth: int}\r\nand TListItem = NestedList of TList | StringItem of TLine\r\n\r\ntype Alignment = Centre | Right | Left | NoAlign\r\n\r\ntype Cell =\r\n | Contents of Token list * Header: bool * Align:Alignment\r\n\r\ntype Row =\r\n | Cells of Cell list * Header:bool\r\n\r\ntype PCell =\r\n | CellLine of TLine * Header: bool * Align:Alignment\r\n\r\ntype PRow =\r\n | PCells of PCell list * Header:bool\r\n\r\ntype RefFrmt = IEEE | Harvard | Chicago\r\ntype RefType = Book | Website\r\ntype Ref = {Cat: RefType option; Author: Token list option; Title: Token list option;\r\n Year: int option; AccessDate: (int * int * int) option\r\n URL: string option}\r\n\r\ntype ParsedObj =\r\n | CodeBlock of string * Language\r\n | Header of THeader * string // content of header, HTML id for linking\r\n | ContentTable of Ttoc\r\n | List of TList\r\n | Paragraph of TLine list\r\n | Quote of TLine\r\n | Table of PRow list\r\n | PreTable of Content: Token list list\r\n | Footnote of int * TLine // inline id, end of doc\r\n | Citation of string * TFrmtedString * TLine //ID,Inline,End of doc\r\n \r\ntype Cell with \r\n member c.GetToks = match c with \r\n | Contents(toks,_,_) -> toks\r\n member c.ReplaceTokens t = match c with \r\n | Contents(_,head,align) -> Contents(t,head,align)\r\n member c.GetHead = match c with \r\n | Contents(_,head,_) -> head\r\n member c.GetParams = match c with \r\n | Contents(toks,head,align) -> toks,head,align\r\n\r\ntype OutFormat = HTML | Markdown\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Types.fs","module Shared\r\n\r\nopen Types\r\nopen Logger\r\nopen System.Text.RegularExpressions\r\n\r\n// Helpers\r\n\r\n/// Inverse the values in a tuple\r\nlet invTuple (a, b) = b, a\r\n\r\n/// Try to find a key in a map, return Some value when it is found, otherwise it\r\n/// returns None\r\nlet mapTryFind k (map: Map<'a, 'b>) = map.TryFind(k)\r\n\r\n/// Try find key in a list\r\nlet listTryFind s =\r\n List.map invTuple >> Map.ofList >> mapTryFind s\r\n\r\n/// The list of characters used in the parser\r\nlet charList = [\"#\", HASH; \"|\", PIPE; \"=\", EQUAL; \"-\", MINUS; \"+\", PLUS; \"*\", ASTERISK\r\n \".\", DOT; \"**\", DASTERISK; \"***\", TASTERISK; \"_\", UNDERSCORE; \"__\", DUNDERSCORE\r\n \"___\", TUNDERSCORE; \"~\", TILDE; \"~~\", DTILDE; \"~~~\", TTILDE; \"[\", LSBRA\r\n \"]\", RSBRA; \"(\", LBRA; \")\", RBRA; @\"\\\", BSLASH; \"/\", SLASH; \"<\", LABRA\r\n \">\", RABRA; \"{\", LCBRA; \"}\", RCBRA; \"`\", BACKTICK;\r\n \"!\", EXCLAMATION; \":\", COLON; \"^\", CARET; \"%\", PERCENT; \",\", COMMA; \";\", SEMICOLON]\r\n\r\nlet charMap = charList |> List.map invTuple |> Map.ofList\r\n\r\nlet (|CharTok|_|) tok =\r\n mapTryFind tok charMap\r\n\r\nlet mapTok = function\r\n | CharTok s -> s\r\n | CODEBLOCK _ -> \"CODEBLOCK\"\r\n | FOOTNOTE _ -> sprintf \"FOOTNOTE found\"\r\n | CITATION _ -> sprintf \"CITATION found\"\r\n | HEADER n -> sprintf \"HEADER %d\" n\r\n | NUMBER s -> s\r\n | LITERAL s -> s\r\n | WHITESPACE n -> String.replicate n \" \"\r\n | _ -> \"\\n\"\r\n\r\n/// turn all tokens into string\r\nlet strAllToks toks =\r\n let pacMan str tok =\r\n str + mapTok tok\r\n List.fold pacMan \"\" toks\r\n\r\nlet mapLang lang =\r\n match lang with\r\n | Python -> \"python\"\r\n | FSharp -> \"fsharp\"\r\n | CPP -> \"cpp\"\r\n | C -> \"c\"\r\n | Empty -> \"\"\r\n\r\nlet xOnwards x lst = if List.length lst > x then lst.[x..] else []\r\nlet sOnwards s str = if String.length str > s then str.[s..] else \"\"\r\nlet removeChars lst s =\r\n let folder (s:string) x = s.Replace(x,\"\")\r\n List.fold folder s lst\r\nlet replaceChars pat (rep:string) s =\r\n Regex.Replace(s,pat,rep)\r\nlet removeWhitespace (s:string) = \r\n s |> removeChars [\"\\n\";\"\\t\";\"\\r\";\" \"]\r\nlet sharedLog = Logger(LogLevel.WARNING)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Shared.fs","module Logger\r\n\r\ntype LogLevel =\r\n | DEBUG=0\r\n | INFO=1\r\n | WARNING=2\r\n | ERROR=3\r\n | FATAL=4\r\n\r\nlet logLevelStr =\r\n [\r\n LogLevel.DEBUG, \"DEBUG\"\r\n LogLevel.INFO, \"INFO\"\r\n LogLevel.WARNING, \"WARNING\"\r\n LogLevel.ERROR, \"ERROR\"\r\n LogLevel.FATAL, \"FATAL\"\r\n ] |> Map.ofList\r\n\r\ntype Logger(logLevel) =\r\n\r\n // create the mailbox processor\r\n let agent = MailboxProcessor.Start(fun inbox -> \r\n\r\n // the message processing function\r\n let rec messageLoop () = async {\r\n\r\n // read a message\r\n let! msg = inbox.Receive()\r\n\r\n // write it to the log\r\n printfn \"%s\" msg\r\n\r\n // loop to top\r\n return! messageLoop ()\r\n }\r\n\r\n // start the loop\r\n messageLoop ()\r\n )\r\n\r\n let postStr pType msg = function\r\n | Some l ->\r\n sprintf \"%s [%s] (%d) %s\" pType (System.DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) l msg |> agent.Post\r\n | _ ->\r\n sprintf \"%s [%s] %s\" pType (System.DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) msg |> agent.Post\r\n\r\n let log t l msg =\r\n if t >= logLevel then\r\n postStr logLevelStr.[t] msg l\r\n else ()\r\n\r\n // Public API\r\n member __.Log = log\r\n member __.Debug = log LogLevel.DEBUG\r\n member __.Info = log LogLevel.INFO\r\n member __.Warn = log LogLevel.WARNING\r\n member __.Error = log LogLevel.ERROR\r\n member __.Fatal = log LogLevel.FATAL\r\n\r\nlet logPass line log s =\r\n s |> log line\r\n s\r\n\r\nlet logPassN log s =\r\n s |> log None\r\n s\r\nlet mutable globLog = Logger(LogLevel.DEBUG)\n\n\n// WEBPACK FOOTER //\n// src/Common/Logger/Logger.fs","import { defaultCancellationToken } from \"./Async\";\nimport { fromContinuations } from \"./Async\";\nimport { startImmediate } from \"./Async\";\nclass QueueCell {\n constructor(message) {\n this.value = message;\n }\n}\nclass MailboxQueue {\n add(message) {\n const itCell = new QueueCell(message);\n if (this.firstAndLast) {\n this.firstAndLast[1].next = itCell;\n this.firstAndLast = [this.firstAndLast[0], itCell];\n }\n else {\n this.firstAndLast = [itCell, itCell];\n }\n }\n tryGet() {\n if (this.firstAndLast) {\n const value = this.firstAndLast[0].value;\n if (this.firstAndLast[0].next) {\n this.firstAndLast = [this.firstAndLast[0].next, this.firstAndLast[1]];\n }\n else {\n delete this.firstAndLast;\n }\n return value;\n }\n return void 0;\n }\n}\nexport default class MailboxProcessor {\n constructor(body, cancellationToken) {\n this.body = body;\n this.cancellationToken = cancellationToken || defaultCancellationToken;\n this.messages = new MailboxQueue();\n }\n __processEvents() {\n if (this.continuation) {\n const value = this.messages.tryGet();\n if (value) {\n const cont = this.continuation;\n delete this.continuation;\n cont(value);\n }\n }\n }\n start() {\n startImmediate(this.body(this), this.cancellationToken);\n }\n receive() {\n return fromContinuations((conts) => {\n if (this.continuation) {\n throw new Error(\"Receive can only be called once!\");\n }\n this.continuation = conts[0];\n this.__processEvents();\n });\n }\n post(message) {\n this.messages.add(message);\n this.__processEvents();\n }\n postAndAsyncReply(buildMessage) {\n let result;\n let continuation;\n function checkCompletion() {\n if (result && continuation) {\n continuation(result);\n }\n }\n const reply = {\n reply: (res) => {\n result = res;\n checkCompletion();\n },\n };\n this.messages.add(buildMessage(reply));\n this.__processEvents();\n return fromContinuations((conts) => {\n continuation = conts[0];\n checkCompletion();\n });\n }\n}\nexport function start(body, cancellationToken) {\n const mbox = new MailboxProcessor(body, cancellationToken);\n mbox.start();\n return mbox;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FableFileIO.fs","// TODO does this perfectly match the .NET behavior ?\nexport function tryParse(s, radix, initial) {\n if (s != null && /\\S/.test(s)) {\n if (radix === 10) {\n const v = +s;\n if (!Number.isNaN(v)) {\n return [true, v];\n }\n }\n }\n return [false, initial != null ? initial : 0];\n}\nexport function parse(s, radix = 10) {\n const a = tryParse(s, radix, 0);\n if (a[0]) {\n return a[1];\n }\n else {\n // TODO FormatException ?\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/TOCite/RefParse.fs","module ParserHelperFuncs\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\nlet logger = Logger(LogLevel.INFO)\r\n\r\nlet SPACE = \" \"\r\nlet NOSTRING = \"\"\r\n\r\ntype TEmphasis = UNDER | STAR // underscore and asterisk\r\n\r\ntype ParagraphState = {Par: Token list; ReToks: Token list; ParMatched: bool}\r\n\r\ntype FormatStyle = STRONG | EM | SEM | STRIKE\r\n\r\n/// delete leading ENDLINEs and retur the rest\r\nlet rec deleteLeadingENDLINEs toks =\r\n match toks with\r\n | ENDLINE:: tks -> deleteLeadingENDLINEs tks\r\n | _ -> toks\r\n\r\nlet deleteTrailingENDLINEs toks =\r\n toks\r\n |> List.rev\r\n |> deleteLeadingENDLINEs\r\n |> List.rev\r\n\r\nlet trimENDLINEs toks =\r\n toks\r\n |> deleteLeadingENDLINEs\r\n |> deleteTrailingENDLINEs\r\n\r\n/// convert all Tokens into a single string\r\n/// see mapTok for Token mapping\r\nlet stringAllTokens toks =\r\n let matchTok i tok =\r\n i + mapTok tok\r\n List.fold matchTok \"\" toks\r\n\r\n/// count subsquent and continuous Tokens\r\nlet countToks (tok: Token) toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | t:: rtks when t = tok -> countToks' (n+1, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuous spaces\r\nlet countSpaces toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | WHITESPACE no:: rtks -> countToks' (n+no, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuoues ENDLINEs\r\nlet countNewLines = countToks (ENDLINE)\r\n\r\n/// count all pipes in a line\r\nlet countDelim delim toks =\r\n let counter tok =\r\n match tok with\r\n | t when t =delim ->1\r\n | _ -> 0\r\n List.sumBy counter toks\r\nlet countPipes = countDelim PIPE\r\nlet countMinus = countDelim MINUS\r\n\r\n/// first element is the line\r\n/// second element is remaining tokens\r\nlet cutFirstLine toks =\r\n let rec cutLine' line rtks =\r\n match rtks with\r\n | ENDLINE:: rtks -> line |> List.rev, rtks\r\n | tok:: rtks -> cutLine' (tok::line) rtks\r\n | [] -> line |> List.rev, []\r\n cutLine' [] toks\r\n\r\n/// process token list into lines of tokens, no ENDLINE in the end\r\nlet cutIntoLines toks =\r\n let rec cutIntoLines' tokLines toks =\r\n let endlineSpliter = function | ENDLINE -> true | _ -> false\r\n match List.tryFindIndex endlineSpliter toks with\r\n | None -> toks::tokLines |> List.rev\r\n | Some idx ->\r\n match List.splitAt idx toks with\r\n | (tokLine, retoks) ->\r\n let tokLineNoEL = tokLine |> deleteTrailingENDLINEs\r\n cutIntoLines' (tokLineNoEL::tokLines) retoks.Tail\r\n toks\r\n |> cutIntoLines' []\r\n\r\n/// combine adjacent FrmtedString(Literal \"something\")\r\nlet combineLiterals line =\r\n let combiner line inlineEle =\r\n let doNothing = inlineEle::line\r\n match List.head line with\r\n | FrmtedString (Literal l) ->\r\n match inlineEle with\r\n | FrmtedString (Literal s) -> FrmtedString (Literal (l+s)) :: line.Tail\r\n | _ -> doNothing\r\n | _ -> doNothing\r\n line\r\n |> List.tail\r\n |> List.fold combiner [List.head line]\r\n |> List.rev\r\n\r\n\r\n/// match start and end symbol for formatting\r\n/// return the match content, w/o the symbols\r\n/// and the rest tokens\r\nlet (|MatchSym|_|) sym toks =\r\n match toks with\r\n | t::tl when t = sym ->\r\n match List.tryFindIndex (fun s -> s=sym) (List.tail toks) with\r\n | Some idx ->\r\n let (content, restTks) = List.splitAt idx tl\r\n (content, List.tail restTks) |> Some\r\n | None -> None\r\n | _ -> None\r\n\r\n\r\n/// match paragraph\r\n/// return paragraph contents, w/o trailing ENDLINE,\r\n/// and the rest tokens, w/o leading ENDLINE\r\nlet (|PickoutParagraph|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | _ ->\r\n let folder state tok =\r\n let {Par=par;ReToks=reToks;ParMatched=matched} = state\r\n if matched then\r\n {state with ReToks=tok::reToks}\r\n else\r\n match tok with\r\n | ENDLINE when List.head par = ENDLINE -> {Par=List.tail par;ReToks=reToks;ParMatched=true}\r\n | HEADER _ -> {Par=par;ReToks=tok::reToks;ParMatched=true}\r\n | _ -> {state with Par=tok::par}\r\n let initState = {Par=[];ReToks=[];ParMatched=false}\r\n match List.fold folder initState toks with\r\n | {Par=par;ReToks=reToks} ->\r\n (par |> List.rev, reToks |> List.rev |> deleteLeadingENDLINEs) |> Some\r\n\r\n/// match lists\r\nlet (|PickoutList|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | ASTERISK:: WHITESPACE _:: _ | MINUS:: WHITESPACE _:: _ // unordered list\r\n | NUMBER _:: DOT:: WHITESPACE _:: _ -> // ordered list\r\n match toks with\r\n | PickoutParagraph result -> Some result\r\n | _ -> None\r\n | _ -> None\r\n\r\n\r\nlet (|MatchTemplate|_|) strongOrEmOrBoth toks =\r\n let (asteriskFormatter, underscoreFormatter) =\r\n match strongOrEmOrBoth with\r\n | STRONG -> DASTERISK, DUNDERSCORE\r\n | EM -> ASTERISK, UNDERSCORE\r\n | SEM -> TASTERISK, TUNDERSCORE\r\n | STRIKE -> DTILDE, DTILDE\r\n let attachInlineEle front back = Option.map (fun (x,y) -> x,y,front,back)\r\n match toks with\r\n | WHITESPACE _:: whatSym:: WHITESPACE _:: _ when whatSym=underscoreFormatter -> None // not em\r\n | WHITESPACE frontWhite:: whatSym:: potential when whatSym=underscoreFormatter ->\r\n let frontLiteral = String.replicate frontWhite \" \" |> Literal |> FrmtedString |> Some\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: whatSym:: WHITESPACE _:: rtks when whatSym=underscoreFormatter -> // keep finding\r\n endFinder (List.append content toks.[0..2]) rtks\r\n | _:: whatSym:: WHITESPACE backWhite:: rtks when whatSym=underscoreFormatter ->\r\n let backLiteral = String.replicate backWhite \" \" |> Literal |> FrmtedString |> Some\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle frontLiteral backLiteral\r\n | _::[whatSym] when whatSym=underscoreFormatter ->\r\n (List.append content [List.head toks], [])\r\n |> Some\r\n |> attachInlineEle frontLiteral None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | whatSym:: WHITESPACE _:: _ when whatSym=asteriskFormatter -> None // not asterisk em\r\n | whatSym:: potential when whatSym=asteriskFormatter ->\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: whatSym:: rtks when whatSym=asteriskFormatter -> // keep finding\r\n endFinder (List.append content toks.[0..1]) rtks\r\n | _:: whatSym:: rtks when whatSym=asteriskFormatter ->\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle None None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | _ -> None\r\n\r\n\r\n/// match underscore and asterisk emphasis start squence\r\n/// match underscore and asterisk emphasis end sequence\r\n/// return content of emphasis, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` _i_`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchEm|_|) toks =\r\n match toks with\r\n | MatchTemplate EM result -> Some result\r\n | _ -> None\r\n\r\n/// match underscore and asterisk strong start squence\r\n/// match underscore and asterisk strong end sequence\r\n/// return content of strong, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` __i__`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchStrong|_|) toks =\r\n match toks with\r\n | MatchTemplate STRONG result -> Some result\r\n | _ -> None\r\n\r\nlet (|MatchStrongAndEm|_|) toks =\r\n match toks with\r\n | MatchTemplate SEM result -> Some result\r\n | _ -> None\r\n\r\nlet (|MatchStrike|_|) toks =\r\n match toks with\r\n | MatchTemplate STRIKE result -> Some result\r\n | _ -> None\r\n\r\n/// match new paragraph sequence\r\n/// return Token list after EDNLINEs\r\nlet (|MatchNewParagraph|_|) toks =\r\n match countNewLines toks with\r\n | n when n>=2 -> toks.[n..] |> Some\r\n | _ -> None\r\n\r\n/// turn head Token into string\r\n/// return head Token string and tail Token list\r\nlet (|MatchMapTok|_|) = function\r\n | tok:: toks -> (mapTok tok, toks) |> Some\r\n | _ -> None\r\n\r\n/// match hashes\r\n/// returns no of hashes, the first non-WHITESPACE token list\r\n/// and the tokens in next lines\r\nlet (|MatchHeader|_|) toks =\r\n let rec countHashes n tks =\r\n match tks with\r\n | HASH:: tks' -> countHashes (n+1) tks'\r\n | _ -> n\r\n match countHashes 0 toks with\r\n | no when no > 0 ->\r\n match toks.[no..] with\r\n | WHITESPACE _ :: toks' ->\r\n toks'|> cutFirstLine\r\n |> (fun (f,s) -> no, f,s)\r\n |> Some // omit whitespace\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// match quote\r\nlet (|MatchQuote|_|) toks =\r\n match toks with\r\n | RABRA:: rtks ->\r\n rtks\r\n |> cutFirstLine\r\n |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence w/o spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchList|_|) toks =\r\n match toks with\r\n | NUMBER no:: DOT:: WHITESPACE _:: toks' -> (OL (no|>int), toks') |> Some\r\n | ASTERISK:: WHITESPACE _:: toks' -> (UL, toks') |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence with optional spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchListOpSpace|_|) toks =\r\n match toks with\r\n | WHITESPACE _:: MatchList content -> content |> Some\r\n | MatchList content -> content |> Some\r\n | _ -> None\r\n\r\n/// return the next line\r\n/// next line is seperated by 1 ENDLINE\r\nlet (|MatchTableHead|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match line with\r\n | [] -> None\r\n | _ -> rtks |> Some\r\n\r\n/// take one PIPE\r\n/// return the rest |> Some\r\n/// otherwise, None\r\nlet pipeMatch oToks =\r\n oToks\r\n |> Option.bind (fun toks ->\r\n match toks with\r\n | PIPE:: rtks -> Some rtks\r\n | _ -> None )\r\n\r\n/// take all leading subsequent MINUSes\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet minusMatch oToks =\r\n let takeAwayMinuses toks =\r\n let rec takeAwayMinuses' n toks =\r\n match toks with\r\n | MINUS:: rtks -> takeAwayMinuses' (n+1) rtks\r\n | _ -> n, toks\r\n takeAwayMinuses' 0 toks\r\n oToks\r\n |> Option.bind (fun toks ->\r\n let n, rtks = toks |> takeAwayMinuses \r\n if n>0 then\r\n Some rtks\r\n else\r\n None\r\n )\r\n\r\n/// match the table formater line\r\n/// the table formater is usually the second line of a table\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet (|MatchTableFormater|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match (countPipes line, countMinus line) with\r\n | (p,m) when p>0 && m>2 -> Some(rtks)\r\n | _ -> None\r\n\r\n/// match link\r\nlet (|MatchLink|_|) toks =\r\n let returnWhenRSBRALBRA toks =\r\n let rec concrete (content, toks) =\r\n match toks with\r\n | [] -> None\r\n | RSBRA::LBRA::rtks -> (List.rev content, rtks) |> Some\r\n | _ -> (List.head toks::content, List.tail toks) |> concrete\r\n concrete ([], toks)\r\n let returnWhenRBRA toks =\r\n let rec whatName (content, toks) =\r\n match toks with\r\n | [] -> None\r\n | RBRA::rtks -> (List.rev content, rtks) |> Some\r\n | _ -> (List.head toks::content, List.tail toks) |> whatName\r\n whatName ([], toks)\r\n match toks with\r\n | LSBRA::rtks ->\r\n match returnWhenRSBRALBRA rtks with\r\n | Some (hyperTextToks, remains) ->\r\n match returnWhenRBRA remains with\r\n | Some (urlToks, retoks) ->\r\n (hyperTextToks, urlToks, retoks) |> Some\r\n | None -> None\r\n | None -> None\r\n | _ -> None\r\n\r\n\r\n/// cut Tokens into Token list list for Table parsing\r\n/// terminates when [] or two continuous ENDLINEs\r\n/// return Token list list,\r\n/// remaining Token list\r\nlet cutTableRows toks =\r\n let rec cutTableRow' rows toks =\r\n match toks with\r\n | ENDLINE:: rtks -> rows |> List.rev, rtks // one endline followed by another\r\n | [] -> rows |> List.rev, []\r\n | _ ->\r\n let row, rtks = cutFirstLine toks\r\n cutTableRow' (row::rows) rtks\r\n cutTableRow' [] toks\r\n\r\n/// parse inline text, including links and pictures, terminates when nothing left\r\nlet parseInLineElements2 refLst toks =\r\n let attachInlineEle front back ele =\r\n [front;ele;back]\r\n\r\n let chooseRef refId refs =\r\n match refs with\r\n | [] ->\r\n let msg = sprintf \"[Reference: %A not found!]\" refId\r\n msg |> logger.Info (Some 200) |> ignore\r\n msg |> Error\r\n | [exactlyOne] -> exactlyOne |> Ok\r\n | moreThanOne ->\r\n let msg = sprintf \"Reference: %A occurred more than once in reference list, take the first one.\" refId\r\n msg |> logger.Info (Some 200) |> ignore\r\n List.head moreThanOne |> Ok\r\n /// find footnote in reference list, which contains both footnote and citation\r\n /// returns error msg if foot is not found\r\n /// returns first footnote if more than 1 is found\r\n let findFN fnId refList =\r\n let filterFN fnId refList =\r\n let fnFilter ref =\r\n match ref with\r\n | Footnote (id, _) when id=fnId -> true\r\n | _ -> false\r\n List.filter fnFilter refList\r\n filterFN fnId refList\r\n |> chooseRef fnId\r\n /// find citation in reference list, which contains both footnote and citation\r\n /// returns error msg if foot is not found\r\n /// returns first citation if more than 1 is found\r\n let findCite citeId refList =\r\n let filterCite fnId refList =\r\n let citeFilter ref =\r\n match ref with\r\n | Citation (id, _, _) when id=fnId -> true\r\n | _ -> false\r\n List.filter citeFilter refList\r\n filterCite citeId refList\r\n |> chooseRef citeId\r\n let genFormat (currentLine, inlineContent, frontLiteral, backLiteral) =\r\n match frontLiteral, backLiteral with\r\n | Some fl, Some bl ->\r\n [bl;inlineContent;fl]\r\n | Some fl, None ->\r\n [inlineContent;fl]\r\n | None, Some bl ->\r\n [bl;inlineContent]\r\n | None, None ->\r\n [inlineContent]\r\n |> (fun x -> x@currentLine)\r\n let makeList x = [x]\r\n let rec parseInLineElements' ftLst currentLine toks =\r\n let styleHelper style (content, rtks, frontLiteral, backLiteral) = \r\n let inlineContent = (parseInLines [] content |> style |> FrmtedString)\r\n genFormat (currentLine, inlineContent, frontLiteral, backLiteral), rtks\r\n\r\n match toks with\r\n | MatchSym BACKTICK (content, rtks) -> (content|> strAllToks|> Code|> FrmtedString )::currentLine, rtks\r\n | MatchStrongAndEm (content, rtks, frontLiteral, backLiteral) ->\r\n let inlineContent = (parseInLines [] content |> Strong |> FrmtedString |> makeList |> Emphasis |> FrmtedString)\r\n genFormat (currentLine, inlineContent, frontLiteral, backLiteral), rtks\r\n | MatchStrong (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Strong (content, rtks, frontLiteral, backLiteral)\r\n | MatchEm (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Emphasis (content, rtks, frontLiteral, backLiteral)\r\n | MatchStrike (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Strike (content, rtks, frontLiteral, backLiteral)\r\n | MatchLink (hyperTextToks, urlToks, rtks) ->\r\n let hyperText = parseInLines [] hyperTextToks |> Line\r\n let url = strAllToks urlToks\r\n [(hyperText, url) |> Link]@currentLine, rtks\r\n | EXCLAMATION:: MatchLink (hyperTextToks, urlToks, rtks) ->\r\n let hyperText = hyperTextToks |> strAllToks\r\n let url = strAllToks urlToks\r\n [(hyperText, url) |> Picture]@currentLine, rtks\r\n | FOOTNOTE i :: rtks ->\r\n let idStr = string i\r\n match findFN i ftLst with\r\n | Ok _ -> // ok if found at least one reference in refLst\r\n [(Literal idStr, idStr) |> InlineFootnote]@currentLine, rtks\r\n | Error msg -> // error if no reference is found in refLst\r\n [msg |> Literal |> FrmtedString], rtks\r\n | CITATION str :: rtks ->\r\n match findCite str ftLst with\r\n | Ok ref -> // ok if found at least one reference in refLst\r\n match ref with\r\n | Citation (id, hyperText, _) -> [(hyperText, id) |> InlineCitation]@currentLine, rtks\r\n | _ -> failwith \"non-citation in citation list\"\r\n | Error msg -> // error if no reference is found in refLst\r\n [msg |> Literal |> FrmtedString], rtks\r\n | _ ->\r\n let str = mapTok toks.[0]\r\n FrmtedString (Literal str)::currentLine, xOnwards 1 toks\r\n and parseInLines currentLine toks =\r\n match toks with\r\n | [] -> []\r\n | _ ->\r\n let (newLine, retoks) = parseInLineElements' refLst currentLine toks\r\n match retoks with\r\n | [] -> newLine |> List.rev\r\n | _ ->\r\n parseInLines newLine retoks\r\n |> combineLiterals\r\n parseInLines [] toks\r\n\r\nlet parseInLineElements toks = parseInLineElements2 [] toks\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/ParserHelperFuncs.fs","module MarkalcShared\r\nopen Types\r\nopen System.Text.RegularExpressions\r\nopen Logger\r\n\r\ntype CellReference = \r\n RowCol of Row:uint32*Col:uint32\r\n\r\ntype Operand =\r\n | CellRef of CellReference\r\n | Integer of int\r\n | Float of float\r\n\r\ntype Expr =\r\n | BinExp of (float->float->float)*Expr*Expr\r\n | Op of Operand\r\n | CommaFunction of string*(Expr list)\r\n\r\ntype TExpr = DPExp of Expr*int\r\nlet whitespaceFilter lst = List.filter (function | WHITESPACE(_) -> false | _ -> true) lst\r\n// Count number of delim in token list\r\nlet countDelim delim tokList =\r\n List.filter (function | d when d = delim -> true | _ -> false) tokList \r\n |> List.length\r\n\r\n// return everything before and after the first/last delimeter searched for, error if delim not found\r\nlet delimSplit last delim t =\r\n let rec delimSplitFirst' delim before t =\r\n match t with\r\n | d :: after when d = delim -> Ok (before,after) // If delim then token list, return d and everything after the delim\r\n | x :: after -> delimSplitFirst' delim (x::before) after // If non-PIPE token then token list, recurse adding the tokens to the before list\r\n | [] -> Error (before,[]) // Did not find delimeter\r\n let rec delimSplitLast' delim before t =\r\n match (t, countDelim delim t) with\r\n | d :: after,1 when d = delim -> Ok (before,after)\r\n | x :: after,_ -> delimSplitLast' delim (x::before) after\r\n | [],_ -> Error (before,[])\r\n let searchFunc = if last then delimSplitLast' else delimSplitFirst'\r\n searchFunc delim [] t\r\n |> function\r\n | Error(before,a) -> Error(List.rev before,a)\r\n | Ok (before,a) -> Ok(List.rev before,a)\r\n\r\n/// Helper function to copy a list i times\r\nlet rec listCopies i lst =\r\n match i with\r\n | 1 -> lst\r\n | 0 -> []\r\n | x when x < 0 -> failwithf \"Negative argument: %A\" x\r\n | _ -> lst @ (listCopies (i-1) lst)\r\n\r\nlet unfoldTuple3 func (a,b,c) =\r\n func a b c\r\n\r\n// Take in two cell refs and return a list of all refs inbetween or None if invalid e.g. diagonal\r\nlet cellRange (p1,p2) = \r\n match (p1,p2) with\r\n | (RowCol(p1r,p1c),RowCol(p2r,p2c)) ->\r\n let genList a b = if a<b then [a..b] else [b..a]\r\n match p1r = p2r, p1c = p2c with\r\n | true,true -> Some [RowCol (p1r,p1c)]\r\n | true,false -> (List.map ((fun i -> (p1r,i)) >> RowCol) (genList p1c p2c)) |> Some\r\n | false,true -> (List.map ((fun i -> (i,p1c)) >> RowCol) (genList p1r p2r)) |> Some\r\n | false,false -> None\r\n\r\n// Quick parser to generate tokenise string one row at a time\r\nlet simpleLex txt = \r\n let (|RegexMatch|_|) r txt =\r\n let m = Regex.Match (txt,\"^\"+r)\r\n match m.Success with\r\n | true -> (m.Value, txt.Substring(m.Value.Length)) |> Some\r\n | false -> None\r\n let rec simpleLex' a txt =\r\n match txt with\r\n // Whitespace\r\n | RegexMatch \"[\\\\s]+\" (m,after) -> simpleLex' (WHITESPACE(m.Length)::a) after\r\n // Contents for expression evaluation\r\n | RegexMatch \"[0-9]+\" (m,after) -> simpleLex' (NUMBER(m)::a) after\r\n | RegexMatch \"\\\\^\" (_,after) -> simpleLex' (CARET::a) after\r\n | RegexMatch \"\\\\%\" (_,after) -> simpleLex' (PERCENT::a) after\r\n | RegexMatch \"\\\\*\" (_,after) -> simpleLex' (ASTERISK::a) after\r\n | RegexMatch \"\\\\/\" (_,after) -> simpleLex' (SLASH::a) after\r\n | RegexMatch \"\\\\+\" (_,after) -> simpleLex' (PLUS::a) after\r\n | RegexMatch \"\\\\-\" (_,after) -> simpleLex' (MINUS::a) after\r\n | RegexMatch \"\\\\(\" (_,after) -> simpleLex' (LBRA::a) after\r\n | RegexMatch \"\\\\)\" (_,after) -> simpleLex' (RBRA::a) after\r\n | RegexMatch \"\\\\[\" (_,after) -> simpleLex' (LSBRA::a) after\r\n | RegexMatch \"\\\\]\" (_,after) -> simpleLex' (RSBRA::a) after\r\n | RegexMatch \"\\\\=\" (_,after) -> simpleLex' (EQUAL::a) after\r\n | RegexMatch \"\\\\.\" (_,after) -> simpleLex' (DOT::a) after\r\n | RegexMatch \"\\\\,\" (_,after) -> simpleLex' (COMMA::a) after\r\n | RegexMatch \"\\\\{\" (_,after) -> simpleLex' (LCBRA::a) after\r\n | RegexMatch \"\\\\}\" (_,after) -> simpleLex' (RCBRA::a) after\r\n // Contents for table recognition\r\n | RegexMatch \"[a-zA-z]+[0-9]*( [a-zA-z]+[0-9]*)*\" (m,after) -> simpleLex' (LITERAL(m)::a) after\r\n | RegexMatch \"\\\\|\" (_,after) -> simpleLex' (PIPE::a) after\r\n | RegexMatch \"\\\\:\" (_,after) -> simpleLex' (COLON::a) after\r\n | RegexMatch \"\\\\;\" (_,after) -> simpleLex' (SEMICOLON::a) after\r\n | \"\" -> a\r\n | _ -> failwithf \"Unexpected character: %A\" txt\r\n simpleLex' [] txt |> List.rev\r\n\r\n// Experimental Lexr for tokenising from entire table string\r\n// let stringLex (txt:string)=\r\n// List.map simpleLex (Array.toList (txt.Split(\"\\n\")))\r\nlet lexY (x,y,z) = x,y|>simpleLex,z\r\nlet round (dp:int) (f:float) =\r\n System.Math.Round(f,dp)\r\nlet logger = Logger(LogLevel.INFO)\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/MarkalcShared.fs","module LexerShared\r\nopen System.Text.RegularExpressions\r\n\r\n// --------------------------------------------------\r\n// Helpers\r\n// --------------------------------------------------\r\n\r\n/// Take the first element of a tuple of size 3\r\nlet takeFirst (a, _, _) = a\r\n\r\n/// Match a regular expression Return Some (m,grps) where m is the match string,\r\n/// grps is the list of match groups (if any) return None on no match\r\nlet strRegexMatch (regex: string) (str: string) =\r\n let m = Regex(regex).Match(str)\r\n if m.Success\r\n then\r\n let mLst = [ for x in m.Groups -> x.Value ]\r\n Some (List.head mLst, List.tail mLst)\r\n else None\r\n\r\n/// Checks if a string starts with another string\r\nlet strStartsWith (value: string) (str: string) =\r\n str.StartsWith(value)\r\n\r\n/// Convert a single character to a string\r\nlet toString (c: char) =\r\n System.String.Concat [c]\r\n\r\n/// Replace a every occurence of one string in the string s by another\r\nlet strReplace (o: string) (n: string) (s: string) =\r\n s.Replace(o, n)\r\n\r\n// --------------------------------------------------\r\n// Shared\r\n// --------------------------------------------------\r\n\r\n/// Active Pattern to match a string with a regex pattern, returns the matched string\r\n/// together with the groups in a list and the rest of the string\r\nlet (|RegexMatch|_|) regex str =\r\n match strRegexMatch regex str with\r\n | None -> None\r\n | Some (m, grp) ->\r\n let lchar = String.length m\r\n Some (m, grp, str.[lchar..])\r\n\r\n/// Create a regular expression for a literal that matches everything except the\r\n/// characters defined in charList\r\nlet literalString charList =\r\n\r\n /// Escapes every special regex character in a string given to it\r\n let addEscape (c, _) =\r\n [\"\\\\\"; \".\"; \"^\"; \"$\"; \"*\"; \"+\"; \"-\"; \"?\"; \"(\"; \")\"; \"[\"; \"]\"; \"{\"; \"}\"; \"|\"; \"/\"]\r\n |> List.fold (fun st n -> strReplace n (\"\\\\\"+n) st) c\r\n\r\n charList\r\n |> List.map (addEscape >> (fun a -> a+\"|\"))\r\n |> List.fold (+) \"\"\r\n |> (fun c -> \"^.+?(?=\\\\s|\"+c+\"$)\")\r\n\r\n/// Tests if a string starts with any of the characters in charList,\r\n/// and returns the match after passing it through the retLastMatch\r\n/// function, that will be used in a fold operation with None as a starting\r\n/// value\r\nlet (|CharMatch|_|) retLastMatch a charList (str: string) =\r\n let testStartWith (c, t) =\r\n let ch = a + c\r\n strStartsWith ch str, ch, t\r\n List.map testStartWith charList\r\n |> List.fold retLastMatch None\r\n\r\n/// Checks if a string starts with a character defined in charList, and returns the DU value\r\n/// associated with it\r\nlet (|Character|_|) charList (str: string) =\r\n let retLastMatch i = function\r\n | true, c, t -> Some (t, str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\" charList str\r\n\r\n/// Checks if a string starts with an escaped char of any character in charList, and returns it\r\n/// by passing the text of the last matched value to a constructor 'tType'\r\nlet (|EscapedChar|_|) tType charList (str: string) =\r\n let retLastMatch i = function\r\n | true, (c: string), _ -> Some (tType c.[1..], str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\\\\\" charList str\r\n\r\n/// Match a single group with a regex\r\nlet (|GroupMatch|_|) str = function\r\n | RegexMatch str (m, [t], r) -> Some t\r\n | _ -> None\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/LexerShared.fs","module Main\r\nopen Types\r\nopen FMark\r\n\r\nlet processMarkdownString fileDir str =\r\n str\r\n |> Array.toList\r\n |> processString fileDir HTML\r\n\n\n\n// WEBPACK FOOTER //\n// src/FMarkFable/FMarkFable.fs","module FMark\r\n\r\nopen Types\r\n\r\nlet preLexParse dir = \r\n Preprocessor.preprocessListWithDir dir\r\n >> Lexer.lexList\r\n >> Parser.parse\r\n\r\nlet processString' dir formatFunc =\r\n preLexParse dir >> Result.map formatFunc\r\n\r\nlet processString dir format =\r\n match format with\r\n | HTML -> processString' dir (fun x -> HTMLGen.genHTML (dir,x))\r\n | Markdown -> processString' dir MarkdownGen.mdBody\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FMark.fs","module Parser\r\nopen Types\r\nopen Shared\r\nopen ParserHelperFuncs\r\nopen TOCite\r\nopen Logger\r\n\r\n// helper functions\r\n\r\n\r\n/// parse inline code\r\nlet rec parseCode toks =\r\n match toks with\r\n | BACKTICK::_ -> (\"\", toks.[1..]) |> Ok\r\n | tok::toks' ->\r\n parseCode toks'\r\n |> Result.map (fun (str, tks) ->\r\n mapTok tok + str, tks )\r\n | e -> sharedLog.Warn None (sprintf \"%A\" e)\r\n (\"\\\\`\", xOnwards 1 toks) |> Ok\r\n\r\n\r\n/// parse a paragraph which counts for contents in `<p>`\r\n/// parseParagraph eats 2>= ENDLINEs\r\nlet parseParagraph ftLst toks =\r\n let parseParagraph' lines tokLine = (parseInLineElements2 ftLst tokLine) :: lines\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> List.fold parseParagraph' []\r\n |> List.rev\r\n |> Paragraph\r\n\r\n/// match table start sequence\r\n/// return table rows, terminates when [] or two continuous ENDLINEs\r\n/// start sequence:\r\n/// something in first line, at least one '|' and three '-' in second line\r\nlet (|MatchTable|_|) toks =\r\n // transform table rows into Table or Pretable depending if valid table.\r\n let tableTransform (rows,rtks) =\r\n rows |> Markalc.parseEvaluateTable\r\n |> function\r\n | Ok(rows) -> \r\n let toPCellList (cell:Cell) = \r\n let toks,head,align = (cell.GetParams) \r\n let pCellLine = toks |> parseInLineElements\r\n CellLine(pCellLine,head,align)\r\n let toPRow row = \r\n let clst, rHead = row |> function | Cells(clst',rHead') -> clst',rHead'\r\n PCells(List.map toPCellList clst, rHead)// Create PRows\r\n // For each row, unpack into Cell list\r\n (List.map toPRow rows |> Table,rtks) |> Some\r\n | Error(_)-> None\r\n match toks with\r\n | MatchTableHead rtks ->\r\n match rtks with\r\n | MatchTableFormater _ -> cutTableRows toks |> tableTransform\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// strip header to a minimal string for id purposes\r\nlet headerIDGen id hd =\r\n let hdLine = hd.HeaderName\r\n let rec headerIDGen' hdLine =\r\n match hdLine with\r\n | FrmtedString (Literal a)::tl -> a + headerIDGen' tl\r\n | FrmtedString (Emphasis a)::tl -> (headerIDGen' a) + (headerIDGen' tl)\r\n | _ -> \"\"\r\n (headerIDGen' hdLine |> replaceChars \"\\ \" \"_\") + string id\r\n/// parse list\r\nlet parseList toks =\r\n // call itself if list item has a higher level\r\n // return if list item has lower level\r\n let ignoreError result = match result with | Ok x -> x | Error x -> x\r\n let takeAwayWhiteSpaces toks =\r\n match toks with\r\n | WHITESPACE n:: rtks -> (n/2, rtks)\r\n | _ -> (0, toks)\r\n let excludeSelfSkip x = match x with | None -> None | Some 1 -> None | Some n -> Some (n-1)\r\n /// return list type, list level, and list content\r\n let (|GetLIContent|_|) toks =\r\n // return list level and remaining toks\r\n let (level, retoks) = takeAwayWhiteSpaces toks\r\n match retoks with\r\n | ASTERISK:: WHITESPACE _:: _ | MINUS:: WHITESPACE _:: _ -> // unordered list\r\n (UL, level, xOnwards 2 retoks) |> Some\r\n | NUMBER no:: DOT:: WHITESPACE _:: _ -> // ordered list\r\n (OL (no|>int), level, xOnwards 3 retoks) |> Some\r\n | _ -> None\r\n\r\n let getLIContent toks =\r\n match toks with\r\n | GetLIContent result -> result |> Ok\r\n | _ ->\r\n let (level, retoks) = takeAwayWhiteSpaces toks\r\n (UL, level, retoks) |> Error\r\n\r\n /// get all list items in current item level and sub lists\r\n let rec getCurrentList level listItems lines =\r\n match lines with\r\n | line:: reLines ->\r\n match line |> getLIContent |> ignoreError with\r\n | (_, liLevel, _) when liLevel >= level -> // list item and sub list item\r\n getCurrentList level (line::listItems) reLines\r\n | _ -> listItems |> List.rev\r\n | [] -> listItems |> List.rev\r\n\r\n let rec parseList' level lines =\r\n let (listType, depth, _) =\r\n match List.head lines |> getLIContent with\r\n | Ok result -> result\r\n | Error result ->\r\n globLog.Warn (Some 100) \"invalid list item, line does not begin with [*;-;number]\\ndefault to UL\"\r\n result\r\n let listFolder (currentLv, listItems, (skipNo: int option), currentLine) line =\r\n match skipNo with\r\n | None ->\r\n match line |> getLIContent |> ignoreError with\r\n | (_, level, content) when level=currentLv ->\r\n let tLine = content |> parseInLineElements\r\n (currentLv, StringItem(tLine)::listItems, None, currentLine+1)\r\n | (_, level, _) when level>currentLv ->\r\n let (listItem, skip) =\r\n xOnwards currentLine lines\r\n |> getCurrentList (currentLv+1) []\r\n |> parseList' (currentLv+1)\r\n (currentLv, NestedList(listItem)::listItems, skip |> excludeSelfSkip, currentLine+1)\r\n | _ -> failwith \"list item level < current level, not possible\"\r\n | Some skip ->\r\n match skip with\r\n | 1 -> (currentLv, listItems, None, currentLine+1)\r\n | n when n>1 -> (currentLv, listItems, Some (n-1), currentLine+1)\r\n | _ -> failwith \"negative or zero skip number, not possible\"\r\n List.fold listFolder (level, [], None, 0) lines\r\n |> (fun (_, lis, _, _) ->\r\n let doSkip =\r\n match List.length lines with\r\n | 0 -> None\r\n | n -> Some n\r\n {ListType=listType; ListItem=lis |> List.rev; Depth=depth}, doSkip)\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> parseList' 0\r\n |> fst\r\n\r\n\r\n/// Match TOC token\r\n/// match \"%%TOC\"\r\nlet (|MatchTOC|_|) hdList toks =\r\n let createLinks (hdList:THeader list) =\r\n let makeRelLink i (h:THeader) =\r\n let linkText = Line(h.HeaderName)\r\n let linkID = headerIDGen i hdList.[i]\r\n {h with HeaderName = [Link (linkText, sprintf \"#%s\" linkID)]}\r\n //{h with HeaderName = Link((h.HeaderName), sprintf \"#HEADER%i\" i)} // Link of HyperText: TFrmtedString * URL: string\r\n let linksLst = List.mapi makeRelLink hdList\r\n {HeaderLst=linksLst}\r\n let filterHeadersByDepth depthOption hdList =\r\n match depthOption with\r\n | Some d ->\r\n let headerFilter hd =\r\n hd.Level <= d\r\n List.filter headerFilter hdList\r\n | None -> hdList\r\n\r\n let filterHeadersByName hdExListOption hdList =\r\n match hdExListOption with\r\n | Some hdExList ->\r\n let filterOutHeaders hdList hdToExclude =\r\n let hdTLine = hdToExclude |> parseInLineElements\r\n let headerFilter hd =\r\n hd.HeaderName <> hdTLine\r\n List.filter headerFilter hdList\r\n List.fold filterOutHeaders hdList hdExList\r\n | None -> hdList\r\n\r\n let splitToksAt sep toks : Token list list =\r\n let rec split (toksList, toks) =\r\n match toks with\r\n | [] ->\r\n // delete empty list\r\n match toksList with\r\n | []::retoksList -> retoksList\r\n | _ -> toksList\r\n |> List.rev\r\n | sym::rtks when sym=sep ->\r\n (\r\n []::toksList, rtks )\r\n |> split\r\n | tok::rtks ->\r\n (\r\n (tok::(List.head toksList))::(List.tail toksList), rtks )\r\n |> split\r\n split ([[]], toks)\r\n |> List.map List.rev\r\n\r\n\r\n let trimWhitespaces toks =\r\n let rec trimer toks =\r\n match toks with\r\n | WHITESPACE _::retoks -> trimer retoks\r\n | _ -> toks\r\n toks\r\n |> trimer\r\n |> List.rev\r\n |> trimer\r\n |> List.rev\r\n\r\n /// (maxDepth option, hdExList option)\r\n let parseTOCparameters toks =\r\n let parmFields = splitToksAt COMMA toks\r\n let (|MatchRSBRA|_|) toks =\r\n let rec matcher (pToks, toks) =\r\n match toks with\r\n | [] -> None\r\n | RSBRA::_ -> pToks |> List.rev |> Some\r\n | tk::rst -> (tk::pToks, rst) |> matcher\r\n matcher ([], toks)\r\n let parmsFolder (maxDepth, hdExList) parm =\r\n match parm |> trimWhitespaces with\r\n | LITERAL\"depth\"::EQUAL::NUMBER noStr::_ ->\r\n noStr |> int |> Some, hdExList\r\n | LITERAL\"excludes\"::EQUAL::LSBRA::rst ->\r\n let newHdExList =\r\n match rst with\r\n | MatchRSBRA exList ->\r\n exList\r\n |> splitToksAt SEMICOLON\r\n |> List.map (fun x -> x |> trimWhitespaces)\r\n |> Some\r\n | _ -> None\r\n printfn \"hdExList:%A\" newHdExList\r\n maxDepth, newHdExList\r\n | _ -> maxDepth, hdExList\r\n // state: (maxDepth, hdExList)\r\n List.fold parmsFolder (None, None) parmFields\r\n\r\n\r\n\r\n match toks with\r\n //| PERCENT::PERCENT::LITERAL(\"TOC\")::// Options\r\n // | PERCENT::PERCENT::LITERAL(\"TOC\")::WHITESPACE _::LITERAL\"depth\"::EQUAL::NUMBER noStr::rst ->\r\n // // filter out headers with level > depth\r\n // // ignore the rest tokens in this line\r\n // let depth = noStr|>int\r\n // (\r\n // hdList\r\n // |>filterHeaders depth\r\n // |> createLinks\r\n // ,\r\n // rst|>cutFirstLine|>snd\r\n // ) |> Some\r\n | PERCENT::PERCENT::LITERAL(\"TOC\")::rst ->\r\n let (tocLine, retoks) = rst|>cutFirstLine\r\n let (maxDepth, hdExList) = parseTOCparameters tocLine\r\n (\r\n hdList\r\n |> filterHeadersByDepth maxDepth\r\n |> filterHeadersByName hdExList\r\n |> createLinks\r\n ,retoks)\r\n |> Some\r\n | _ -> None\r\n\r\n/// parse supported `ParsedObj`s, turn them into a list\r\n/// assuming each item start at the beginning of the line\r\n/// the returned token head does not have 2>= ENDLINE\r\nlet rec parseItem (hdLst: THeader list) (ftLst: ParsedObj list) (rawToks: Token list) : Result<ParsedObj * Token list, string> =\r\n let toks = deleteLeadingENDLINEs rawToks\r\n match toks with\r\n | MatchTOC hdLst (toc,rtks) -> (ContentTable toc,rtks) |> Ok\r\n | CODEBLOCK (content, lang) :: toks' -> (CodeBlock(content, lang), toks') |> Ok\r\n | MatchTable (rows, rtks) -> (rows, rtks) |> Ok\r\n | MatchQuote (content, rtks) ->\r\n (parseInLineElements2 ftLst content |> Quote , rtks)\r\n |> Ok\r\n | HEADER i :: rtks -> (Header (hdLst.[i],(headerIDGen i hdLst.[i])), rtks) |> Ok\r\n | PickoutList (list, retoks) -> (parseList list |> List, retoks) |> Ok\r\n | PickoutParagraph (par, retoks) ->\r\n (parseParagraph ftLst par, retoks) |> Ok\r\n | _ -> sprintf \"Parse item did not match: %A\" toks |> removeChars [\"[\";\"]\"] |> Error\r\n\r\nand parseItemList hdLst ftLst toks : Result<ParsedObj list * option<Token list>, string> =\r\n match (List.isEmpty toks, not (List.exists (function | WHITESPACE(_) | ENDLINE -> false | _ -> true) toks)) with\r\n | (false,false) -> \r\n parseItem hdLst ftLst toks\r\n |> Result.bind (fun (pobj, re) ->\r\n match List.isEmpty re with\r\n | true -> ([pobj], None) |> Ok\r\n | false ->\r\n parseItemList hdLst ftLst re\r\n |> Result.map(fun (pobjs, re') ->\r\n pobj::pobjs, re' )\r\n )\r\n | _ -> ([], None) |> Ok // if tokens are only whitespace or endlines, return no parsedObjs\r\n\r\n\r\n/// top-level Parser, which the user should use\r\n/// `parse` will either return result monad with either `ParsedObj list` or a string of Error message.\r\n/// Unparsed Tokens will be in the returned in the Error message.\r\nlet parse toks =\r\n // insert two endlines at the beginning to make header in the first line work\r\n let (hds, refs, rtoks) = preParser (ENDLINE::ENDLINE::toks)\r\n parseItemList hds refs rtoks\r\n |> Result.bind (fun (pobjs, retoks) ->\r\n match retoks with\r\n | None -> pobjs |> Ok\r\n | Some retoks -> sprintf \"Some unparsed tokens: %A\" retoks |> Error)\r\n |> Result.map (fun pObjs -> List.append pObjs refs)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/Parser.fs","module Markalc\r\n\r\nopen Types\r\nopen Shared\r\nopen MarkalcShared\r\nopen Expression\r\nopen Logger\r\n\r\ntype MapContents =\r\n | MapTok of Cell\r\n | MapExp of TExpr * Cell\r\n\r\n// ################### HELPER FUNCTIONS ###################\r\n/// Return everything (before,after) the first PIPE token\r\nlet pipeSplit toks = \r\n delimSplit false PIPE toks\r\n// Turn float into token\r\nlet toToken x = NUMBER(x|>string)\r\n/// Transform Result<Ok,Error> list into Result<Ok list, Error>\r\nlet joinErrorList lst =\r\n // Filter the list\r\n let filt x = match x with\r\n | Error(_) -> true\r\n | Ok(_) -> false\r\n let unpackOks = function\r\n | Ok(x') -> x'\r\n | Error(y) -> sprintf \"After filtering, there were still Error monads in the list %A.\" y\r\n |> logPass (Some 27) globLog.Fatal\r\n |> failwith\r\n let combineErrors s x = match x with\r\n | Ok(_) -> s // This should never be matched in this usage.\r\n | Error(x') -> sprintf \"%A %A\" x' s |> Error\r\n match List.filter filt lst with\r\n | [] -> List.map unpackOks lst |> Ok // If the list is empty there are no errors\r\n | x -> List.fold combineErrors (Error \"\") x\r\n// Lift first argument to result world\r\nlet liftFirstArg func arg1 arg2 =\r\n match arg1 with\r\n | Ok(x) -> func x arg2 |> Ok\r\n | Error(x) -> Error x\r\n\r\n// ####################### CONSTRUCT CELL HELPERS ###################\r\nlet makeCellU header tokens = (tokens,header)\r\nlet defaultCellU = makeCellU false\r\nlet headCellU = makeCellU true\r\nlet alignCell alignment cellU = Contents (fst cellU, snd cellU, alignment)\r\n\r\n// ###################### PARSE TABLE ROWS #####################\r\n// Parse a line into a list of cells\r\nlet parsePipesD debug constructCell (row:Token list) =\r\n let parsePipesDebug line a b =\r\n if debug then\r\n sprintf \"Markalc/Parse PIPES:\\nBefore:%A\\nAfter:%A$\\n\" a b |> globLog.Debug (Some line)\r\n let rec parsePipes' a row =\r\n match pipeSplit row with\r\n | Ok([],[]) -> (constructCell []):: a\r\n | Ok([],after) -> parsePipesDebug 55 [] after \r\n parsePipes' ((constructCell [])::a) after // If before is empty and after is not, empty cell\r\n | Ok(before,[]) -> parsePipesDebug 57 before [] \r\n (constructCell before) :: a // If after is empty, add before and stop\r\n | Ok(before,after) -> parsePipesDebug 59 before after\r\n parsePipes' ((constructCell before) :: a) after\r\n | Error(_) -> if List.isEmpty row then a else (constructCell row)::a // If there is content, add it\r\n parsePipes' [] row\r\nlet parsePipes constructCell row = parsePipesD false constructCell row /// TOGGLE DEBUG MODE\r\n/// Parse an ordinary row\r\nlet parseRow constructCell row =\r\n let parseRow' = parsePipes constructCell\r\n // If its the first pipe and there's nothing before it, remove it\r\n match row with\r\n | PIPE :: row' -> parseRow' row'\r\n | row' -> parseRow' row'\r\n // If the list only contains one item, add an empty cell on the end (empty cells now added later on...)\r\n |> (fun x -> if List.length x = 1 then (constructCell[])::x else x) \r\n |> List.rev\r\nlet parseDefaultRow = parseRow defaultCellU\r\n/// Parse the second row of the table which defines number of columns and alignment\r\nlet parseAlignRow (row:Token list) = \r\n let parseAlignDebug line s =\r\n sprintf \"Markalc/parseAlignRow\\n%s$\" s |> logPass (Some line) globLog.Debug\r\n let getAlignment (toks: Token list) =\r\n let filt = function | COLON -> true | MINUS -> true | _ -> false \r\n // Check it has at least three dashes\r\n match (countDelim MINUS toks < 3, List.filter filt toks |> List.length <> List.length toks) with\r\n | (true,false) -> \"Less than 3 dashes for table format\" |> parseAlignDebug 83 |> Error \r\n | (false,true) -> sprintf \"Invalid characters in table format, expecting only : or - \\n%A\\n%A\" toks (List.filter filt toks) \r\n |> parseAlignDebug 84\r\n |> Error\r\n | (true,true) -> \"Less than 3 dashes for table format and invalid characters\" |> parseAlignDebug 87 |> Error \r\n | (false,false) ->\r\n match (List.rev toks, countDelim COLON toks) with\r\n | (COLON :: _, 2) when List.head toks = COLON -> Centre |> Ok\r\n | (COLON :: _, 1) -> Right |> Ok\r\n | (_,1) when List.head toks = COLON -> Left |> Ok\r\n | (_,0) -> NoAlign |> Ok\r\n | (_,x) -> sprintf \"\\':\\'s in wrong position %A, %A\" toks x |> parseAlignDebug 94 |> Error\r\n let parseAlign' = parsePipes getAlignment\r\n // Ignore the first pipe if there is nothing before it\r\n match whitespaceFilter row with\r\n | PIPE :: row' -> parseAlign' row'\r\n | row' -> parseAlign' row'\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// ################ BUSINESS END ###############\r\n/// Function which takes a parsed row (list of unalignedcells) and the list of alignments, and will create Cells\r\nlet alignCells' alignList (row:(Token list * bool) list * bool) =\r\n let cells = fst row\r\n let head = snd row\r\n let lengths = (List.length alignList, List.length cells)\r\n match (fst lengths - snd lengths) with\r\n | x when x > 0 -> cells @ (List.replicate x ([], head)) // If alignList longer than cells, fill in with blank cells\r\n | x when x < 0 -> cells.[0..((fst lengths)-1)]// If cells longer than alignList, ignore the extra cells\r\n | _ -> cells\r\n |> (List.zip alignList)\r\n |> List.map (fun (a,uc) -> alignCell a uc),head\r\n\r\nlet alignCells = liftFirstArg alignCells'\r\n/// Separate list of tokens into cells with alignment and header/not-header\r\nlet transformTable (table:Token list list) =\r\n // Deal with first two rows of format: header1 | header2 | header3\r\n // Second row tells us how many columns and correct alignment\r\n let alignments = table.[1] |> parseAlignRow\r\n // Specify header value true/false and make Row type from cellList\r\n let makeRow head cells = (cells,head)\r\n\r\n let header = List.head table \r\n |> parseRow headCellU \r\n |> makeRow true \r\n |> alignCells alignments \r\n |> (Result.map Cells)\r\n\r\n // Fold parse normal row for the rest of the table\r\n let parseAlignPrepend s x = (parseRow defaultCellU x \r\n |> makeRow false \r\n |> alignCells alignments \r\n |> (Result.map Cells)) :: s\r\n List.fold parseAlignPrepend [header] (xOnwards 2 table)\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// Try to evaluate expression, set maxRefs to number of CellRefs before assuming circular reference\r\nlet tryEval' maxRefs map e =\r\n // Evaluate expression\r\n let rec evalExp (e:TExpr) = \r\n let rec evalExp' r map (e:Expr) =\r\n // Evaluate cell reference\r\n let evalCellRef ref = \r\n match Map.tryFind ref map with\r\n | Some(MapExp(e2,_)) -> evalExp' (r+1) map (e2|>function|DPExp(e2',_)->e2') // Evaluating cell references\r\n | _ -> nan // invalid reference\r\n // Apply f over list of cell references between two cells\r\n let rangeFunc f x y = match cellRange (x,y) with\r\n | Some(l) -> f l\r\n | None -> nan\r\n if r > maxRefs then nan else // Return nan if too many recursive calls, probably circular reference\r\n match e with\r\n | BinExp(f,x,y) -> f (evalExp' r map x) (evalExp' r map y)\r\n | Op (Float(x)) -> x\r\n | Op (CellRef(ref)) -> evalCellRef ref\r\n | CommaFunction(\"SUM\",l) -> List.sumBy (evalExp' r map) l\r\n | CommaFunction(\"AVG\",l) -> List.averageBy (evalExp' r map) l\r\n | CommaFunction(\"MIN\",l) -> List.min (List.map (evalExp' r map) l)\r\n | CommaFunction(\"MAX\",l) -> List.max (List.map(evalExp' r map) l)\r\n | _ -> 11.0\r\n e |> function\r\n | DPExp(exp,dp) when dp < 0 -> evalExp' 0 map exp\r\n | DPExp(exp,dp) -> evalExp' 0 map exp |> round dp\r\n \r\n evalExp e\r\nlet tryEval = tryEval' 1000\r\n/// Evaluate all expressions inside a cell list list, leave non-expression cells as they are\r\n/// No invalid expressions should be matched.\r\nlet evaluateRowList (rowList:Row list) = \r\n // Infer Row header value from (List.head cellList) and create Row\r\n // cellList must not be empty, which is ensured by earlier code\r\n let inferRow (cellList:Cell list) = Cells(cellList, (List.head cellList).GetHead)\r\n // Iterate over table, snd s is current column number.\r\n let innerFold row (s:(CellReference*MapContents) list * uint32) (cell:Cell) =\r\n let cCol = snd s // current column\r\n let cCoord,cMap = RowCol(row,cCol),fst s // current coordinate and map\r\n match parseExpression (cell.GetToks) with\r\n | Ok(ex) -> (cCoord,MapExp (ex,cell)) :: cMap, cCol + 1u // Expression found, put it into the map!\r\n | Error(_) -> (cCoord,MapTok (cell)) :: cMap, cCol + 1u // No expression, ignore\r\n // fst s is current row, pass it through to inner fold\r\n let outerFold (s:uint32* ((CellReference*MapContents) list * uint32)) cells =\r\n let cRow,cMap = fst s, fst (snd s) // current row\r\n (cRow + 1u, List.fold (innerFold (cRow)) (cMap,0u) cells)\r\n let cellList = List.collect (function | Cells(l,_) -> [l]) rowList\r\n let rowLength = List.length (List.head cellList)\r\n List.fold outerFold (0u,([],0u)) cellList \r\n |> function \r\n | (_,(expRefList,_)) -> \r\n let expList = List.rev expRefList\r\n let map = Map.ofList expList\r\n // Iterate over list, evaluate expression for each MapExp then convert into Token list\r\n // convert MapContents from MapExp to MapTok (?)\r\n let expListEval = function\r\n | MapTok(c) -> c\r\n | MapExp(e,c) -> [tryEval map e |> toToken] |> (c.ReplaceTokens)\r\n List.map (snd >> expListEval) expList\r\n |> (Seq.chunkBySize rowLength) \r\n |> Seq.toList \r\n |> List.map (Array.toList>>inferRow)\r\n\r\n/// Top level function\r\n/// Parse tokens into cell list list with all Expressions evaluated.\r\n/// Return: Result(OK(Cell list list), Error(toks))\r\nlet parseEvaluateTable (toks:Token list list) = \r\n // Transform Token list list into Cell list list\r\n let endlFilt = function | ENDLINE -> false | _ -> true\r\n transformTable (List.map (List.filter endlFilt) toks)\r\n |> function\r\n | Error(e) -> sprintf \"Markalc/top\\nNot a table because of errors: %s\\nReturning unchanged tokens.$\" e |> globLog.Debug (Some 214)\r\n toks |> Error // If there are any errors just return the unchanged Token list list\r\n | Ok(x) -> evaluateRowList x |> Ok // Else return Ok and Cell list list\r\n\r\nlet lexParseEvaluate toks = \r\n List.map simpleLex toks\r\n |> parseEvaluateTable\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Markalc.fs","/// This module should parse tokens into an expression\r\nmodule Expression\r\n\r\nopen MarkalcShared\r\nopen Types\r\n\r\n(* SUPPORTED OPERATIONS:\r\nBinaryExpressions (in order of precedence): \r\n % - Modulo\r\n ^ - To the power\r\n * - Multiply\r\n / - Divide\r\n + - Add\r\n - - Subtract\r\n*)\r\n// HELPER FUNCTIONS\r\nlet makeFloat i d = \r\n sprintf \"%A.%A\" i d |> float\r\nlet makeInt (i:string) =\r\n i |> int\r\nlet makeCellReference (row:string,col:string) =\r\n RowCol(row|>uint32,col|>uint32)\r\n// [row=3,col=2]\r\n// ]2=col,3=row[\r\n// [row=3,col=2] [3,42]\r\n/// EXPRESSION PARSER\r\nlet parseExp toks = \r\n let rec (|Expression|_|) (toks:Token list) =\r\n let (|NumberPat|_|) = function\r\n | NUMBER(i) :: DOT :: NUMBER(d) :: after -> (makeFloat i d, after) |> Some\r\n | NUMBER(i) :: after -> (makeInt i |> float, after) |> Some\r\n | _ -> None\r\n let rec (|CellRefPat|_|) = function\r\n | RSBRA :: NUMBER(col) :: COMMA :: NUMBER(row) :: LSBRA :: after \r\n -> ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: COMMA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: COMMA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | _ -> None\r\n let rec (|ExpressionList|_|) = function\r\n | Expression(exp,COMMA::ExpressionList(exps,after)) -> (exp::exps,after) |> Some\r\n | CellRefPat(x,COLON::CellRefPat(y,after)) -> cellRange (x,y) |> function\r\n | Some lst -> (List.map (CellRef >> Op) lst,after) |> Some\r\n | _ -> None\r\n | Expression(exp,after) -> ([exp],after) |> Some\r\n | _ -> None\r\n // DEFINE FUNCTIONS\r\n let funcConstruct funcname = function\r\n | RCBRA :: ExpressionList (lst,LCBRA::LITERAL(funcname)::after) ->\r\n (CommaFunction(funcname,lst),after) |> Some\r\n | _ -> None\r\n let (|Sum|_|) = funcConstruct \"SUM\"\r\n let (|Avg|_|) = funcConstruct \"AVG\"\r\n let (|Min|_|) = funcConstruct \"MIN\"\r\n let (|Max|_|) = funcConstruct \"MAX\"\r\n \r\n let (|FunctionPat|_|) = function\r\n | Sum (x,after) -> (x,after) |> Some\r\n | Avg (x,after) -> (x,after) |> Some\r\n | Min (x,after) -> (x,after) |> Some\r\n | Max (x,after) -> (x,after) |> Some\r\n | _ -> None\r\n\r\n let (|BasePat|_|) = function\r\n | NumberPat (x,after) -> (x |> Float |> Op,after) |> Some\r\n | FunctionPat (x,after) -> (x,after) |> Some\r\n // Parsing in reverse so right and left brackets swapped\r\n | CellRefPat (x,after) -> (x |> CellRef |> Op,after) |> Some\r\n | RBRA :: Expression (x,LBRA::after) -> (x,after) |> Some\r\n | _ -> None\r\n // Active pattern to construct precedence-aware active patterns; descends recursively until highest precedence match.\r\n // Quirk: Returns right-associative results, so parsing in reverse to get left-associativity.\r\n let rec (|HOFPat|_|) (|PrevPat|_|) op (t:Token) = function\r\n | PrevPat (exp1, after) -> \r\n match after with\r\n | x :: (HOFPat (|PrevPat|_|) op t (exp2, after')) when x = t -> \r\n (BinExp (op, exp2, exp1), after') |> Some // exp1 and exp2 swapped because parsing in reverse\r\n | _ -> (exp1, after) |> Some\r\n | _ -> None\r\n // Build precendence and normal binary operators\r\n let patPrecedence = [(%),PERCENT;( **),CARET;(*),ASTERISK;(/),SLASH;(-),MINUS;( + ),PLUS]\r\n let constructPatterns s x = ((|HOFPat|_|) (List.head s) (fst x) (snd x))::s\r\n let patterns = List.fold constructPatterns [(|BasePat|_|)] patPrecedence\r\n let (|FirstPat|_|) = List.head patterns\r\n\r\n // Unary operators, only negative number so far. Doesn't work.\r\n // let (|UnaryOperators|_|) = function\r\n // | FirstPat (exp1, after) ->\r\n // match after with\r\n // // Negative Numbers\r\n // | NumberPat(x,MINUS::after') -> (-x |> Float |> Op,after') |> Some\r\n // // ... Could have more patterns here.\r\n // | _ -> (exp1,after) |> Some\r\n // | _ -> None\r\n\r\n match toks with\r\n | FirstPat x -> Some x\r\n | _ -> None\r\n // Add other options to cells\r\n //let (|Option|_|) toks =\r\n // match toks with\r\n // | NUMBER(i)::COMMA::after -> // Number of decimal places\r\n // | NUMBER(i)::EQUAL::LITERAL(\"dp\")::COMMA::after -> // Number of decimal places\r\n\r\n match List.rev toks with \r\n | NUMBER(i)::COMMA::rest -> match rest with\r\n | Expression (exp,[]) -> (exp,i|>int) |> DPExp |> Ok\r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n | Expression (exp,[]) -> (exp,-1) |> DPExp |> Ok \r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n\r\nlet parseExpression toks = \r\n match toks with\r\n | EQUAL :: tail -> \r\n whitespaceFilter tail |> parseExp |> function\r\n | Error(e) -> Error toks\r\n | Ok(x) -> Ok x\r\n | toks -> Error toks\r\n\r\n// ################## TEST FUNCTIONS ####################\r\n// Recursively evaluate expression AST. CellRef will need access to whole table, this is used to test everything else\r\nlet evalExpTest (e:TExpr) =\r\n let rec evalExpTest' (e:Expr) = \r\n match e with\r\n | BinExp(f,x,y) -> f (evalExpTest'(x)) (evalExpTest'(y))\r\n | Op (Float(x)) -> x\r\n | _ -> 13.0\r\n match e with\r\n | DPExp(exp,dp) when dp < 0 -> evalExpTest' exp\r\n | DPExp(exp,dp) -> evalExpTest' exp |> round dp\r\n// Test evaluation without table\r\nlet parseExpTest (toks:Token list) =\r\n whitespaceFilter toks // Remove whitespace\r\n |> parseExp\r\n |> function\r\n | Error(e) -> printfn \"Error parsing expression: %A\" e\r\n Error toks \r\n | Ok(x) -> evalExpTest x |> Ok\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Expression.fs","module TOCite\r\nopen Types\r\nopen RefParse\r\nopen ParserHelperFuncs\r\n\r\n// --------------------------------------------------------------------------------\r\nlet mountedInLineParser tokLst =\r\n //only simple footer in header\r\n let rec mountedInLineParser' toParse tLst =\r\n match tLst with\r\n | FOOTNOTE i::tl ->\r\n let s = string i\r\n parseInLineElements toParse :: [InlineFootnote (Literal s, \"footnote-\"+s)]\r\n :: mountedInLineParser' [] tl\r\n | CITATION _::tl -> mountedInLineParser' toParse tl\r\n | a::tl -> mountedInLineParser' (a::toParse) tl\r\n | [] -> [parseInLineElements toParse]\r\n tokLst\r\n |> List.rev\r\n |> mountedInLineParser' []\r\n |> List.rev\r\n |> List.reduce List.append\r\n\r\nlet rec tocParse tocLst depth index : THeader list * Token list =\r\n // Detect hashes with whitespace after it\r\n // printf \"tocParse %A\\n%A\\n\" depth tocLst\r\n\r\n // rebuild hash if no whitespace after\r\n let rec fakehash dep =\r\n match dep with\r\n | 0 -> [ENDLINE;ENDLINE]\r\n | _ -> HASH :: fakehash (dep-1)\r\n\r\n match tocLst with\r\n | ENDLINE::ENDLINE::HASH::tl -> tocParse tl 1 index\r\n | HASH::tl when depth > 0 -> tocParse tl (depth+1) index\r\n | WHITESPACE _ ::tl when depth > 0 ->\r\n let ind = tl |> List.tryFindIndex (fun x -> x = ENDLINE)\r\n //split header from rest of tokens by finding ENDLINE\r\n match ind with\r\n | Some i ->\r\n let (h,t) = List.splitAt i tl\r\n tocParse t 0 (index+1)\r\n |> fun (x,y) -> {HeaderName = mountedInLineParser h; Level = depth}::x, ENDLINE::ENDLINE::(HEADER index)::y\r\n | None ->\r\n [{HeaderName = mountedInLineParser tl; Level = depth}], [ENDLINE;ENDLINE;HEADER index]\r\n // hash without whitespace, need to rebuild hash\r\n | a::tl when depth > 0 ->\r\n tocParse tl 0 index\r\n |> fun (x,y) -> x, List.append (fakehash depth |> List.rev) (a::y)\r\n | a::tl -> \r\n tocParse tl 0 index\r\n |> fun (x,y) -> x, a::y\r\n | [] -> [], []\r\n\r\nlet tocGen' tokenLst maxDepth =\r\n match maxDepth with\r\n | 0 -> tocParse tokenLst 0 0\r\n | d when d > 0 ->\r\n tocParse tokenLst 0 0\r\n |> fun (x,y) -> List.filter (fun x -> x.Level <= d) x, y\r\n | _ -> failwithf \"Invalid maxDepth\" // will railway this. not necessary yet\r\n\r\n// call this when ParsedObj wanted\r\nlet tocGen tLst maxD =\r\n {HeaderLst = tocGen' tLst maxD |> fun (x,_)->x}\r\n\r\n// --------------------------------------------------------------------------------\r\n// /parse footnotes with parseInLineElements\r\nlet citeParseIn tocLst =\r\n let rec citeParseIn' toParse tail =\r\n match tail with\r\n | ENDLINE::WHITESPACE a::tl when a >= 4 -> citeParseIn' toParse tl\r\n | ENDLINE::tl -> toParse,tl\r\n | a::tl -> citeParseIn' (a::toParse) tl\r\n | [] -> toParse,[]\r\n citeParseIn' [] tocLst\r\n |> fun (x,y) -> x |> List.rev |> parseInLineElements, y\r\n\r\n/// main citation parser\r\nlet rec citeParse' style tocLst :ParsedObj list*Token list =\r\n let recFitFt (a,b) c =\r\n citeParse' style b\r\n |> fun (x,y) -> Footnote (c,a)::x, y\r\n let recFitRef (a,b,c) d =\r\n citeParse' style c\r\n |> fun (x,y) -> Citation (d,a,b)::x, y \r\n match tocLst with\r\n | LSBRA::CARET::NUMBER key::RSBRA::tl ->\r\n match tl with\r\n | COMMA::tail -> recFitFt (citeParseIn tail) (int key)\r\n | tail ->\r\n citeParse' style tail\r\n |> fun (x,y) -> x, FOOTNOTE (int key)::y\r\n | LSBRA::CARET::LITERAL citkey::RSBRA::tl ->\r\n match tl with\r\n | COMMA::tail -> recFitRef (refParse style tail) citkey\r\n | tail ->\r\n citeParse' style tail\r\n |> fun (x,y) -> x, CITATION citkey::y\r\n | t::tl ->\r\n citeParse' style tl\r\n |> fun (x,y) -> x, t::y\r\n | [] -> [], []\r\n\r\nlet styleParse rLst tocLst =\r\n let rec styleParse' rLst tocLst =\r\n let stylify str =\r\n match str with\r\n | \"Harvard\" -> Some Harvard\r\n | \"Chicago\" -> Some Chicago\r\n | \"IEEE\" -> Some IEEE\r\n | _ -> None // use default\r\n match tocLst with\r\n | ENDLINE::PERCENT::PERCENT::LITERAL \"RefStyle\"::AgnoEqual tail ->\r\n match tail with\r\n | LITERAL lit::tl -> stylify lit, List.append (List.rev rLst) tl\r\n | _ -> styleParse' (tocLst.Head::rLst) tocLst.Tail\r\n | a::tl -> styleParse' (a::rLst) tl\r\n | [] -> None, rLst\r\n styleParse' rLst tocLst\r\n\r\n//type change and sorting\r\n// might change now that there are string IDs\r\nlet citeGen' tLst =\r\n let style,tl = styleParse [] tLst\r\n let ftLst,tLst =\r\n match style with\r\n | Some s -> citeParse' s tl\r\n | None -> citeParse' Harvard tLst // use harvard as default style\r\n let sortFt ft1 ft2 =\r\n match ft1,ft2 with\r\n | Footnote (i,_), Footnote (j,_) -> i-j\r\n | Citation _, Footnote _ -> 1\r\n | Footnote _, Citation _ -> -1\r\n | _, _ -> 0\r\n List.sortWith sortFt ftLst, tLst\r\n\r\nlet preParser tLst =\r\n citeGen' tLst\r\n |> fun (x,y) -> x, tocGen' y 0\r\n |> fun (x,(y,z)) -> y, x, z\n\n\n// WEBPACK FOOTER //\n// src/Common/TOCite/TOCite.fs","module RefParse\r\nopen Types\r\n\r\nlet monthConv m =\r\n match m with\r\n | 1 -> Some \"January\"\r\n | 2 -> Some \"February\"\r\n | 3 -> Some \"March\"\r\n | 4 -> Some \"April\"\r\n | 5 -> Some \"May\"\r\n | 6 -> Some \"June\"\r\n | 7 -> Some \"July\"\r\n | 8 -> Some \"August\"\r\n | 9 -> Some \"September\"\r\n | 10 -> Some \"October\"\r\n | 11 -> Some \"November\"\r\n | 12 -> Some \"December\"\r\n | _ -> None\r\n\r\nlet ordinalConv d =\r\n let (|OrdinalDates|_|) = function\r\n | d when d > 31 || d < 1 -> None\r\n | 1 | 21 | 31 -> Some \"st\"\r\n | 2 | 22 -> Some \"nd\"\r\n | 3 | 23 -> Some \"rd\"\r\n | _ -> Some \"th\"\r\n match d with\r\n | OrdinalDates s -> Some (string d + s)\r\n | _ -> None\r\n\r\nlet yerGen style year =\r\n match year with\r\n | None -> []\r\n | Some a -> \r\n match style with\r\n | Harvard -> [\"(\" + string a + \") \"|> Literal |> FrmtedString]\r\n | Chicago -> [string a + \". \" |> Literal |> FrmtedString]\r\n | IEEE -> []\r\n\r\nlet urlGen style url =\r\n match url with\r\n | None -> []\r\n | Some a ->\r\n match style with\r\n | Harvard -> \r\n [FrmtedString (Literal \"Available from: \"); Link(Literal a,a);\r\n FrmtedString (Literal \" \")]\r\n | Chicago -> [Link(Literal a,a)]\r\n | IEEE -> []\r\n\r\nlet plnGen tokLst =\r\n let rec plainGen' tLst =\r\n match tLst with\r\n | LITERAL lit::tl -> lit::plainGen' tl\r\n | WHITESPACE _::tl -> \" \"::plainGen' tl\r\n | _::tl -> plainGen' tl\r\n | [] -> []\r\n plainGen' tokLst |> List.rev |> List.reduce (+)\r\n\r\nlet dateGen style date =\r\n match date with\r\n | None -> []\r\n | Some (y,m,d) ->\r\n // check validity of date (Not complete, e.g. Feb-30 passes thru)\r\n let mstr = monthConv m\r\n let dstr = ordinalConv d\r\n match style with\r\n | Harvard ->\r\n match mstr, dstr with\r\n | Some mm, Some dd ->\r\n [\"[Accessed \"+dd+\" \"+mm+\" \"+(string y)+\"]. \"\r\n |> Literal |> FrmtedString]\r\n | _,_ -> [\"Access date invalid, please use yyyy-mm-dd\"\r\n |> Literal |> FrmtedString]\r\n | Chicago ->\r\n match mstr, dstr with\r\n | Some mm, Some _ ->\r\n [\"Accessed \"+mm+\" \"+(string d)+\", \"+(string y)+\". \"\r\n |> Literal |> FrmtedString]\r\n | _,_ -> [\"Access date invalid, please use yyyy-mm-dd\"\r\n |> Literal |> FrmtedString]\r\n | IEEE -> []\r\n\r\ntype GenType = HarAut | ChiAut | ChiBookTil | ChiWebTil | HarTil\r\nlet (|OverallM|) =\r\n let hAut tokLst =\r\n let rec hAutGen' tLst:TLine =\r\n match tLst with\r\n | LITERAL lit::tl ->\r\n match tl with\r\n | [] -> [FrmtedString (Literal (lit+\", \"))]\r\n | _ -> FrmtedString (Literal (string lit.[0]+\". \"))::hAutGen' tl\r\n | _::tl -> hAutGen' tl\r\n | [] -> []\r\n List.rev tokLst |> hAutGen' |> List.rev\r\n let cAut tokLst = [plnGen tokLst + \". \" |> Literal |> FrmtedString]\r\n let cWebTil tokLst = [\"\\\"\" + plnGen tokLst + \".\\\" \" |> Literal |> FrmtedString]\r\n let cTil tokLst = [[plnGen tokLst + \". \" |> Literal |> FrmtedString] |> Emphasis |> FrmtedString]\r\n let hTil tokLst = [[plnGen tokLst + \". \" |> Literal |> FrmtedString] |> Emphasis |> FrmtedString]\r\n function\r\n | HarAut -> hAut\r\n | HarTil -> hTil\r\n | ChiAut -> cAut\r\n | ChiBookTil -> cTil\r\n | ChiWebTil -> cWebTil\r\n\r\nlet build gType tokLst =\r\n match tokLst with\r\n | None -> []\r\n | Some tl ->\r\n match gType with\r\n | OverallM f -> f tl\r\n\r\nlet refInLine style ref: TFrmtedString =\r\n match ref.Author, ref.Year with\r\n | Some a, Some y ->\r\n // this part is weirddddd\r\n match a with\r\n | LITERAL lit :: _ ->\r\n match style with\r\n | IEEE -> Literal \"NOT IMPLEMENTED\"\r\n | Chicago ->\r\n \"(\" + lit + \", \" + string(y) + \")\" |> Literal\r\n | Harvard ->\r\n \"(\" + lit + \" \" + string(y) + \")\" |> Literal\r\n | _ -> \"(Name unavailable)\" |> Literal // to change?\r\n | None, Some y ->\r\n \"(\"+string(y)+\")\" |> Literal\r\n | Some a,_ ->\r\n match a with\r\n | LITERAL lit :: _ ->\r\n \"(\"+lit+\")\" |> Literal\r\n | _ -> \"(Name unavailable)\" |> Literal\r\n | _, _ -> \"(n.d.)\" |> Literal \r\n\r\nlet ref2TLine format ref:TLine =\r\n match format with\r\n | IEEE -> [FrmtedString (Literal \"IEEE citation not supported yet\")]\r\n | Chicago ->\r\n match ref.Cat with\r\n | Some Book ->\r\n [build ChiAut ref.Author; yerGen Chicago ref.Year;\r\n build ChiBookTil ref.Title]\r\n |> List.reduce List.append\r\n | Some Website ->\r\n [build ChiAut ref.Author; yerGen Chicago ref.Year; build ChiWebTil ref.Title;\r\n dateGen Chicago ref.AccessDate; urlGen Chicago ref.URL]\r\n |> List.reduce List.append\r\n | None -> [FrmtedString (Literal \"Please specify type of reference\")]\r\n | Harvard ->\r\n [build HarAut ref.Author; yerGen Harvard ref.Year; build HarTil ref.Title;\r\n urlGen Harvard ref.URL; dateGen Harvard ref.AccessDate]\r\n |> List.reduce List.append\r\n\r\nlet (|AgnoEqual|_|) = function\r\n | WHITESPACE _::EQUAL::WHITESPACE _::tl\r\n | WHITESPACE _::EQUAL::tl\r\n | EQUAL::WHITESPACE _::tl\r\n | EQUAL::tl ->\r\n Some tl\r\n | _ -> None\r\n\r\n// parses a single reference entry\r\n// This probably should never see ENDLINE\r\nlet refParser style tLst =\r\n let rec refPar' refData tLst =\r\n let rec refParse' parsing tail =\r\n match tail with\r\n | COMMA::tl -> parsing, tl\r\n | ENDLINE::tl -> parsing, tl\r\n | a::tl -> refParse' (a::parsing) tl\r\n | [] -> parsing, []\r\n\r\n let dateFormat tail =\r\n match tail with\r\n | NUMBER y::MINUS::NUMBER m::MINUS::NUMBER d::tl ->\r\n Some (int y, int m, int d), tl\r\n | _ -> None, tail\r\n\r\n match tLst with\r\n | LITERAL f::AgnoEqual tl ->\r\n match f with\r\n | \"type\" ->\r\n match tl with\r\n | LITERAL \"Book\"::tl -> refPar' {refData with Cat = Some Book} tl\r\n | LITERAL \"Website\":: tl -> refPar' {refData with Cat = Some Website} tl\r\n | _ -> refPar' refData tl\r\n | \"author\" ->\r\n refParse' [] tl\r\n |> fun (x,y) -> refPar' {refData with Author = Some x} y\r\n | \"title\" ->\r\n refParse' [] tl\r\n |> fun (x,y) -> refPar' {refData with Title = Some x} y\r\n | \"year\" ->\r\n match tl with\r\n | NUMBER a::tl -> refPar' {refData with Year = Some (int a)} tl\r\n | _ -> refPar' refData tl\r\n | \"url\" ->\r\n match tl with\r\n | LITERAL s::tl -> refPar' {refData with URL = Some s} tl\r\n | _ -> refPar' refData tl\r\n | \"access\" ->\r\n dateFormat tl\r\n |> fun (x,y) -> refPar' {refData with AccessDate = x} y\r\n | _ -> refPar' refData tl\r\n | ENDLINE::ENDLINE::tl -> refData,tl\r\n | ENDLINE::tl -> refPar' refData tl\r\n | _::tl -> refPar' refData tl\r\n | [] -> refData, []\r\n tLst \r\n |> refPar' {Cat = None; Author = None; Title = None;\r\n Year = None; AccessDate = None; URL = None}\r\n |> fun (x,_) -> refInLine style x, ref2TLine style x\r\n\r\n\r\n// parse references with refParser\r\nlet refParse style tocLst =\r\n let ind = tocLst |> List.tryFindIndex (fun x -> x = ENDLINE)\r\n match ind with\r\n | Some i ->\r\n let (h,t) = List.splitAt i tocLst\r\n refParser style h |> fun (a,b) -> a,b,t.Tail\r\n | None ->\r\n refParser style tocLst |> fun (a,b) -> a,b,[]\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/TOCite/RefParse.fs","module Lexer\r\n\r\nopen Types\r\nopen Shared\r\nopen LexerShared\r\n\r\ntype LexerState =\r\n | Normal\r\n | InCodeBlock of content: string * Language\r\n | InHTMLTag of tag: string * depth: int\r\n\r\nlet htmlSingleton = [\r\n \"area\"; \"base\"; \"br\"; \"col\"; \"command\"; \"embed\"; \"hr\"; \"img\"; \"input\"\r\n \"keygen\"; \"link\"; \"meta\"; \"param\"; \"source\"; \"track\"; \"wbr\"\r\n]\r\n\r\n/// An escaped char tokenizer, which identifies the escaped characters and returns them\r\n/// as a literal instead, without the leading '\\'\r\nlet (|EscapedCharTok|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Returns the Token type of the identifier token\r\nlet (|CharacterTok|_|) = (|Character|_|) charList\r\n\r\nlet (|MatchLang|_|) = function\r\n | RegexMatch \"(p|P)ython\" _ -> Some Python | RegexMatch \"F#|fsharp|f#\" _ -> Some FSharp\r\n | RegexMatch \"(C|c)(\\\\+\\\\+|pp)\" _ -> Some CPP | RegexMatch \"C|c\" _ -> Some C | _ -> Some Empty\r\n\r\nlet (|InList|_|) lst el =\r\n match List.exists ((=) el) lst with\r\n | true -> Some el\r\n | _ -> None\r\n\r\nlet (|HTMLStartTag|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\n\r\n\r\nlet (|HTMLEndTag|_|) = (|RegexMatch|_|) \"^<\\\\/([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLSingleton|_|) = function\r\n | RegexMatch \"^<([a-zA-Z]+)\\\\s*.*?(?:\\\\/>|>)\" (s, [InList htmlSingleton g], r) ->\r\n Some (s, r)\r\n | _ -> None\r\n\r\nlet (|CodeBlockStart|_|) = (|GroupMatch|_|) \"^```+\\\\s*([a-zA-Z0-9+\\\\-_]*)\"\r\n\r\n/// Returns the next Token of a string\r\nlet nextToken state s =\r\n match s, state with\r\n | EscapedCharTok n, _ -> n, state\r\n | HTMLSingleton (s, r), Normal ->\r\n (LITERAL s, r), Normal\r\n | HTMLStartTag (s, [t], r), Normal ->\r\n (LITERAL s, r), InHTMLTag (t, 1)\r\n | HTMLStartTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n (LITERAL s, r), InHTMLTag (tag, d+1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLEndTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n if d = 1 then (LITERAL s, r), Normal\r\n else (LITERAL s, r), InHTMLTag (tag, d-1)\r\n else (LITERAL s, r), InHTMLTag (tag, d)\r\n | RegexMatch \"^.+?(?=<)\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | RegexMatch \"^.*\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | CharacterTok n, _ -> n, state\r\n | RegexMatch @\"^\\s+\" (m, _, s), _ ->\r\n (replaceChars \"\\t\" \" \" m \r\n |> String.length |> WHITESPACE, s), state\r\n | RegexMatch \"^[0-9]+\" (m, _, s), _->\r\n (NUMBER m, s), state\r\n | RegexMatch (literalString charList) (m, _, s), _ ->\r\n (LITERAL m, s), state\r\n | s, _ ->\r\n sprintf \"Unrecognised character: %A\" s |> sharedLog.Warn None\r\n (toString s.[0] |> LITERAL, (sOnwards 1 s)), state\r\n\r\n/// Lexes a whole string and returns the result as a Token list\r\nlet lexS state source =\r\n let rec lexS' state s tokList =\r\n match s, state with\r\n | \"\", InHTMLTag _ -> tokList\r\n | \"\", _ -> ENDLINE :: tokList\r\n | _ ->\r\n let (nt, st'), nstate = nextToken state s\r\n nt :: tokList |> lexS' nstate st'\r\n match source, state with\r\n | CodeBlockStart (MatchLang lang), Normal ->\r\n [], InCodeBlock (\"\", lang)\r\n | RegexMatch \"^```+\" _, InCodeBlock (s, lang) ->\r\n [CODEBLOCK (s, lang); ENDLINE], Normal\r\n | _, InCodeBlock (s, lang) ->\r\n [], InCodeBlock (s+source+\"\\n\", lang)\r\n | RegexMatch @\"^\\s*$\" _, _ ->\r\n [ENDLINE], state\r\n | _ ->\r\n lexS' state source [] |> List.rev, state\r\n\r\n/// Return the correct token if it is not close properly at the end\r\nlet returnTokens = function\r\n | _, InCodeBlock (s, l) ->\r\n [CODEBLOCK (s, l); ENDLINE]\r\n | tok, InHTMLTag (str, _) ->\r\n tok @ [LITERAL str; ENDLINE]\r\n | tok, _ ->\r\n tok\r\n\r\n/// Lex a single string\r\nlet lex s =\r\n lexS Normal s |> returnTokens\r\n\r\n/// Lexes a list of strings and returns the Token list\r\nlet lexList strl =\r\n let f (flist, state) nstr =\r\n let (lst, st) = lexS state nstr\r\n flist @ lst, st\r\n List.fold f ([], Normal) strl |> returnTokens\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Lexer.fs","module Preprocessor\r\n\r\nopen FileIO\r\nopen Shared\r\nopen LexerShared\r\n\r\n// --------------------------------------------------\r\n// Tokenizer\r\n// --------------------------------------------------\r\n\r\n/// Token type for the preprocessor macros\r\ntype Token =\r\n | LITERAL of string\r\n | MACRO | OPENDEF | CLOSEDEF | OPENEVAL | CLOSEEVAL | LBRA | RBRA\r\n | SEMICOLON | ENDLINE | BSLASH | INCLUDE\r\n\r\n/// Character list for the preprocessor\r\nlet charList = [\"{%\", OPENDEF; \"%}\", CLOSEDEF; \"{{\", OPENEVAL\r\n \"}}\", CLOSEEVAL; \"(\", LBRA; \")\", RBRA; \";\", SEMICOLON;\r\n \"\\\\\", BSLASH]\r\n\r\nlet keywordList = [\"macro\", MACRO; \"include\", INCLUDE]\r\n\r\n/// Check if a LITERAL is exclusively whitespace \r\nlet (|WhiteSpace|NonWhiteSpace|) = function\r\n | LITERAL (RegexMatch @\"^\\s*$\" _) -> WhiteSpace\r\n | _ -> NonWhiteSpace\r\n\r\n/// Matches all the escapable characters that are defined in charList\r\nlet (|EscapedCharParse|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Matches all the special characters that are defined in charList\r\nlet (|CharacterParse|_|) = (|Character|_|) charList\r\n\r\nlet (|KeywordParse|_|) = (|Character|_|) keywordList\r\n\r\n/// Converts a token list to a string\r\nlet tokToString tList =\r\n let tokString st = function\r\n | LITERAL l -> st+l\r\n | t ->\r\n match charList @ keywordList |> listTryFind t with\r\n | Some s -> st+s\r\n | _ -> st\r\n List.fold tokString \"\" tList\r\n\r\n/// Retrieves the next token from a string and returns it, together\r\n/// with the rest of the string\r\nlet nextToken str =\r\n let literalMatch = charList |> literalString\r\n match str with\r\n | EscapedCharParse n | CharacterParse n | KeywordParse n ->\r\n n\r\n | RegexMatch @\"^\\s+\" (m, _, r) ->\r\n LITERAL m, r\r\n | RegexMatch literalMatch (m, _, r) ->\r\n LITERAL m, r\r\n | _ ->\r\n toString str.[0] |> LITERAL, str.[1..]\r\n\r\n/// Tokenizes a string and return it as a list of tokens\r\nlet tokenize str =\r\n let rec pTokenize' tList str =\r\n match str with\r\n | \"\" ->\r\n ENDLINE :: tList\r\n | _ ->\r\n let t, r = nextToken str\r\n pTokenize' (t :: tList) r\r\n pTokenize' [] str |> List.rev\r\n\r\n/// Tokenizes a list of strings and returns them as a single list of tokens\r\nlet tokenizeList = List.collect tokenize\r\n\r\n// --------------------------------------------------\r\n// Parser\r\n// --------------------------------------------------\r\n\r\n/// ArgumentList used in the substitution\r\ntype Argument<'T> = 'T list\r\n\r\n/// Type for a macro\r\ntype Macro<'T> = {Name: string; Args: string list; Body: 'T list}\r\n\r\n/// Type for a substitution\r\ntype Sub<'T> = {Name: string; Args: Argument<'T> list; Raw: string}\r\n\r\n/// Type of the parser elements\r\ntype Parser =\r\n | MacroDefinition of Macro<Parser>\r\n | MacroSubstitution of Sub<Parser>\r\n | IncludeStatement of link: string\r\n | ParseText of content: string\r\n | ParseNewLine\r\n\r\n/// Return a parser list until it reaches the token\r\nlet findParseUntil otok ctok parser =\r\n let rec findParseUntil' count parser retlist =\r\n match parser with\r\n | t :: tl when t = ctok && count = 1 ->\r\n Some (retlist |> List.rev, tl)\r\n | t :: tl when t = ctok ->\r\n t :: retlist |> findParseUntil' (count - 1) tl\r\n | t :: tl when t = otok ->\r\n t :: retlist |> findParseUntil' (count + 1) tl\r\n | t :: tl ->\r\n t :: retlist |> findParseUntil' count tl\r\n | [] -> None\r\n findParseUntil' 1 parser []\r\n\r\n/// Splits a list on a specific element\r\nlet splitList esctok cltok tok list =\r\n let rec splitList' curr final list =\r\n match list with\r\n | a :: tl when a = esctok ->\r\n match findParseUntil esctok cltok tl with\r\n | Some (l, tl) ->\r\n splitList' (CLOSEEVAL :: (List.rev (a :: l)) @ curr) final tl\r\n | _ ->\r\n splitList' (a :: curr) final tl\r\n | a :: tl when a = tok ->\r\n splitList' [] (List.rev curr :: final) tl\r\n | a :: tl ->\r\n splitList' (a :: curr) final tl\r\n | [] ->\r\n List.rev curr :: final |> List.rev\r\n splitList' [] [] list\r\n\r\nlet splitListEval = splitList OPENEVAL CLOSEEVAL SEMICOLON\r\n\r\n/// Strips whitespace from a token list\r\nlet stripWhiteSpace = function\r\n | WhiteSpace :: tl | tl ->\r\n match List.rev tl with\r\n | WhiteSpace :: tl | tl ->\r\n List.rev tl\r\n\r\n/// Returns if the start of the list of tokens matches a keyword\r\nlet (|KeyWord|_|) =\r\n let listCheckExists t list =\r\n list\r\n |> List.map (fun (_, c) -> c)\r\n |> List.exists ((=) t)\r\n function\r\n | WhiteSpace :: a :: tl | a :: tl ->\r\n match listCheckExists a keywordList with\r\n | true -> Some (a, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Checks if the Token list matches an argument list, which could be one of the\r\n/// following:\r\n/// (arg1; arg2)\r\n/// (arg 1; arg 2)\r\n/// (arg1)\r\n/// ()\r\nlet (|ParamList|_|) =\r\n /// Matches if there is a list of literals, and returns all of them until it reaches\r\n /// a Token that is not a literal\r\n let rec (|NameList|_|) = function\r\n | LITERAL n :: NameList (nList, r) ->\r\n Some (n :: nList, r)\r\n | LITERAL n :: r ->\r\n Some ([n], r)\r\n | _ -> None\r\n\r\n /// Matches a semicolon separated list of Literal lists\r\n let rec (|ParamList|_|) = function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | NameList (n, SEMICOLON :: ParamList (lst, r)) ->\r\n Some (List.fold (+) \"\" n :: lst, r)\r\n | NameList (n, r) ->\r\n Some ([List.fold (+) \"\" n], r)\r\n | _ ->\r\n Some ([], tl)\r\n function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: ParamList (nl, RBRA :: tl) ->\r\n Some (nl, tl)\r\n | _ -> None\r\n\r\nlet (|ArgList|_|) = function\r\n WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: tl ->\r\n match findParseUntil LBRA RBRA tl with\r\n | Some (p, tl) ->\r\n Some (splitListEval p |> List.map stripWhiteSpace, tl)\r\n | _ -> None\r\n | WhiteSpace :: tl ->\r\n Some ([], tl)\r\n | _ -> None\r\n\r\n/// Matches a literal, which will be the name of the function, which can be followed by\r\n/// an argument list\r\nlet (|Function|_|) = function\r\n | WhiteSpace :: LITERAL n :: tl ->\r\n match tl with\r\n | ParamList (nl, WhiteSpace :: tl)\r\n | ParamList (nl, tl) ->\r\n Some (n, nl, tl)\r\n | WhiteSpace :: t\r\n | t ->\r\n Some (n, [], t)\r\n | _ -> None\r\n\r\n/// Matches the start syntax for a macro, the closing CLOSEDEF can be on a differen line and\r\n/// after a Parse list, so that is matched in the parse function\r\nlet (|MacroDef|_|) = function\r\n | OPENDEF :: KeyWord (MACRO, Function f) ->\r\n Some f\r\n | _ -> None\r\n\r\n/// Matches an evaluation of a macro\r\nlet (|EvalDef|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | LITERAL n :: ArgList (nl, WhiteSpace :: CLOSEEVAL :: tl)\r\n | LITERAL n :: ArgList (nl, CLOSEEVAL :: tl) ->\r\n Some (n, nl, tl)\r\n | LITERAL n :: WhiteSpace :: CLOSEEVAL :: tl\r\n | LITERAL n :: CLOSEEVAL :: tl ->\r\n Some (n, [], tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Matches a special character or keyword\r\nlet (|SChar|_|) tok =\r\n charList @ keywordList\r\n |> List.map invTuple\r\n |> Map.ofList\r\n |> mapTryFind tok\r\n\r\n/// Include statement match\r\nlet (|Include|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | INCLUDE :: WhiteSpace :: LITERAL link :: WhiteSpace :: CLOSEEVAL :: tl\r\n | INCLUDE :: WhiteSpace :: LITERAL link :: CLOSEEVAL :: tl -> Some (link, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Parses a Token list into a Parser list\r\nlet parse tList =\r\n\r\n /// Returns the raw token list for a macro evaluation\r\n let getRaw list =\r\n let rec getRaw' list curr =\r\n match list with\r\n | CLOSEEVAL :: _ ->\r\n CLOSEEVAL :: curr\r\n | a :: tl ->\r\n a :: curr |> getRaw' tl\r\n | _ ->\r\n curr\r\n getRaw' list [] |> List.rev\r\n\r\n /// The recursive part of the parser, which build the Parser list\r\n let rec parse' endToken tList pList =\r\n let pRec f c tl = f c :: pList |> parse' endToken tl\r\n let recText = pRec ParseText\r\n match tList, endToken with\r\n | MacroDef (a, b, tl), _ ->\r\n let p, tl' = parse' (Some CLOSEDEF) tl []\r\n pRec MacroDefinition {Name=a; Args=b; Body=List.rev p} tl'\r\n | EvalDef (n, args, tl), _ ->\r\n let args' = List.map ((fun a -> parse' None a []) >> (fun (a, _) -> List.rev a)) args\r\n pRec MacroSubstitution {Name=n; Args=args'; Raw=getRaw tList |> tokToString} tl\r\n | Include (link, tl), _ ->\r\n pRec IncludeStatement link tl\r\n | ENDLINE :: tl, _ ->\r\n pRec id ParseNewLine tl\r\n | WhiteSpace :: a :: tl, Some e | a :: tl, Some e when e = a ->\r\n match tl with\r\n | WhiteSpace :: ENDLINE :: b\r\n | WhiteSpace :: b\r\n | ENDLINE :: b\r\n | b ->\r\n pList, b\r\n | LITERAL f :: tl, _ ->\r\n recText f tl\r\n | SChar c :: tl, _ ->\r\n recText c tl\r\n | _ -> pList, []\r\n let p, _ = parse' None tList []\r\n List.rev p\r\n\r\n// --------------------------------------------------\r\n// Evaluation\r\n// --------------------------------------------------\r\n\r\n/// Evaluates and strips macros from the markdown, and also evaluates macro substitutions\r\n/// by seeing which macros are in scope or if the substitution is a parameter.\r\n/// This supports shadowing of previously defined macros, and scopes can be defined\r\n/// by declaring a macro inside another macro\r\nlet evaluateWithDir fileDir pList =\r\n\r\n /// Makes an empty parmeter list for the current parameters, so that they\r\n /// are not substituted\r\n let makeEmptyParam args: Map<string, Argument<Parser> option> =\r\n List.replicate (List.length args) None\r\n |> List.zip args\r\n |> Map.ofList\r\n\r\n /// Add a parameter to a parameter map\r\n let addParam p (macro: Macro<Parser>) args =\r\n List.zip macro.Args args\r\n |> List.fold (fun (s: Map<string, Argument<Parser> option>) (a, b) -> s.Add(a, Some b)) p\r\n\r\n /// Make a Macro record type\r\n let makeMacro n args p =\r\n {Name = n; Args = args; Body = p}\r\n\r\n /// Adds an element to a map with key k and value v\r\n let mapAdd (map: Map<'a, 'b>) k v =\r\n map.Add(k, v)\r\n\r\n /// Evaluates and creates a new simplified Parser list with all the macros stripped\r\n /// and substitutions evaluated\r\n let rec evaluate' pList newPList param (scope: Map<string, Macro<Parser>>) =\r\n\r\n /// Function for use with different currying that the original\r\n let evaluateInv' pList newPList scope param =\r\n evaluate' pList newPList param scope\r\n\r\n /// Evaluate without adding any values to the param or scope maps\r\n let evaluate'' pList list =\r\n evaluate' pList (list @ newPList) param scope\r\n\r\n match pList with\r\n | MacroDefinition {Name=n; Args=args; Body=p} :: tl ->\r\n makeEmptyParam args\r\n |> evaluateInv' p [] scope\r\n |> makeMacro n args\r\n |> mapAdd scope n\r\n |> evaluate' tl newPList param\r\n | MacroSubstitution {Name=n; Args=args; Raw=raw} as ms :: tl ->\r\n let eval =\r\n match param.TryFind n with\r\n | Some (Some x) ->\r\n evaluate' x [] param scope |> List.rev\r\n | Some _ ->\r\n [ms]\r\n | _ ->\r\n match scope.TryFind n with\r\n | Some m when List.isEmpty args ->\r\n m.Body\r\n | Some m ->\r\n addParam param m args\r\n |> evaluateInv' m.Body [] scope\r\n |> List.rev\r\n | _ ->\r\n [ParseText raw]\r\n evaluate'' tl eval\r\n | IncludeStatement link :: tl ->\r\n let addDir str =\r\n match str with\r\n | RegexMatch \"^\\\\/\" _ -> str\r\n | _ -> fileDir + str\r\n addDir link\r\n |> readFilePath\r\n |> tokenizeList\r\n |> parse\r\n |> (fun a -> evaluate' (a @ tl) newPList param scope)\r\n | p :: tl ->\r\n evaluate'' tl [p]\r\n | _ -> newPList\r\n evaluate' pList [] Map.empty<string, Argument<Parser> option> Map.empty<string, Macro<Parser>>\r\n |> List.rev\r\n\r\nlet evaluate = evaluateWithDir \"\"\r\n\r\n/// Converts a Parser list to a string\r\nlet parserToString pList =\r\n List.fold (fun st -> function\r\n | ParseText x -> st+x\r\n | ParseNewLine -> st+\"\\n\"\r\n | _ -> st) \"\" pList\r\n\r\n/// Converts a Parser list to a list of strings without any newlines\r\nlet toStringList pList =\r\n let f st n =\r\n match st, n with\r\n | _, ParseNewLine ->\r\n \"\" :: st\r\n | a :: b, ParseText t ->\r\n a+t :: b\r\n | _, ParseText t ->\r\n [t]\r\n | _ -> st\r\n List.fold f [] pList |> List.rev\r\n\r\n/// perform the parsing, evaluation, while stripping the last endline which is redundant\r\n/// as it was added by the tokenizer\r\nlet pETS dir =\r\n let stripLastEndline l =\r\n match List.rev l with\r\n | [ParseNewLine] as e -> e\r\n | ParseNewLine :: r -> List.rev r\r\n | _ -> l\r\n parse >> evaluateWithDir dir >> stripLastEndline\r\n\r\n// --------------------------------------------------\r\n// Public API\r\n//--------------------------------------------------\r\n\r\n/// Preprocess a string and output a string with the macro evaluated\r\nlet preprocess =\r\n tokenize >> pETS \"\" >> parserToString\r\n\r\nlet preprocessWithDir dir =\r\n tokenize >> pETS dir >> parserToString\r\n\r\n/// Preprocess a list of strings which is returned as a list of strings with the\r\n/// macro evaluated\r\nlet preprocessList =\r\n List.collect tokenize >> pETS \"\" >> toStringList\r\n\r\nlet preprocessListWithDir dir =\r\n List.collect tokenize >> pETS dir >> toStringList\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Preprocessor.fs","module FileIO\r\n\r\nopen Fable.Import.Node.Exports\r\n\r\nlet writeToFile str path =\r\n let errorHandler _err = () // Ignore all errors\r\n fs.writeFile(path, str, errorHandler)\r\n\r\nlet splitString (s:string) =\r\n s.Split(\"\\n\") |> Array.toList\r\n\r\nlet checkExists (path:string) =\r\n fs.existsSync(Fable.Core.U2.Case1 path)\r\nlet readFilePath path =\r\n path \r\n |> checkExists\r\n |> function\r\n | true ->\r\n fs.readFileSync(path,()) \r\n |> (fun s -> s.toString ())\r\n |> splitString\r\n | false -> []\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FableFileIO.fs","module.exports = require(\"fs\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"fs\"\n// module id = 37\n// module chunks = 0","module MarkdownGen\r\n// MarkdownGen is only used for some property-based testing and is not ready for use for anything else.\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\nlet logger = Logger(LogLevel.INFO)\r\n\r\n// return string surrounded by pat\r\nlet surround pat str =\r\n let pat2 = match pat with\r\n | \"(\" -> \")\"\r\n | \"[\" -> \"]\"\r\n | \"{\" -> \"}\"\r\n | _ -> pat\r\n sprintf \"%s%s%s\" pat str pat2\r\n\r\n/// convert TFrmtedString to string\r\nlet rec mdFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> surround \"`\" str\r\n | Strong a -> mdInlineElements a |> surround \"**\"\r\n | Emphasis e -> mdInlineElements e |> surround \"*\"\r\n | Line l -> mdInlineElements l\r\n | Strike s -> mdInlineElements s |> surround \"~~\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand mdInlineElements' b eles =\r\n let braSurround = surround \"(\"\r\n let sbraSurround = surround \"[\"\r\n let convertMd pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> mdFStr fStr\r\n | Link (ht, url) -> (mdFStr ht |> sbraSurround) + (url |> braSurround)\r\n | Picture (alt, url) -> (alt |> sbraSurround |> sprintf \"!%s\" ) + (url |> braSurround)\r\n | InlineCitation (ht, _)\r\n | InlineFootnote (ht, _) -> (\"^\" + mdFStr ht) |> sbraSurround\r\n List.fold convertMd (sprintf \"%s\" b) eles\r\nand mdInlineElements = mdInlineElements' \"\"\r\n\r\n/// process Markdown paragraph\r\nlet mdParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + mdInlineElements line\r\n List.fold folder \"\" lines\r\n + \"\\n\\n\"\r\n\r\n/// process Markdown Table\r\nlet mdTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells alignRow row =\r\n let cellsFolder alignRow pStr cell =\r\n match cell with\r\n | CellLine(line, _, align) ->\r\n match alignRow with\r\n | true ->\r\n match align with\r\n | Centre -> \":---:\"\r\n | Right -> \"---:\"\r\n | Left -> \":---\"\r\n | NoAlign -> \"---\"\r\n | false ->\r\n mdInlineElements line\r\n |> (fun cellContent -> pStr + cellContent + \"|\")\r\n\r\n List.fold (cellsFolder alignRow) \"|\" row\r\n\r\n let foldRows alignRow rows =\r\n let rowsFolder alignRow pStr row =\r\n pStr + (foldCells alignRow) row + \"\\n\"\r\n List.fold (rowsFolder alignRow) \"\" rows\r\n let foldNormalRows = foldRows false\r\n let foldAlignRow = foldCells true\r\n foldNormalRows headerRows\r\n + (headerRows |> List.head |> foldAlignRow)\r\n + foldNormalRows bodyRows + \"\\n\\n\"\r\n\r\n/// recursively process a list\r\nlet rec mdList list =\r\n let mdListItem ord tab (pStr,pCount) li =\r\n let makeTabs num =\r\n if num <= 0 then \"\" else String.replicate num \"\\t\"\r\n let retFold s = pStr + s, pCount + 1\r\n match li with\r\n | StringItem(line) -> mdInlineElements line |> (fun s ->\r\n match ord,s with\r\n | _,\"\" -> \"\"\r\n | true,_ ->\r\n sprintf \"%s%i. %s\\n\" (makeTabs tab) pCount s\r\n |> logPassN logger.Debug\r\n | false,_ ->\r\n sprintf \"%s- %s\\n\" (makeTabs tab) s) |> retFold\r\n | NestedList(list) -> mdList list |> retFold\r\n\r\n match list with\r\n | {ListType=lt; ListItem=liS; Depth=d} ->\r\n let ord = match lt with | OL _ -> true | UL -> false\r\n List.fold (mdListItem ord (d-1)) (\"\",1) liS\r\n |> fst\r\n\r\n/// process header\r\nlet mdHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n (line |> mdInlineElements)\r\n |> sprintf \"%s %s\\n\" (String.replicate lv \"#\")\r\n\r\n/// process HTML body part\r\nlet mdBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> mdParagraph p\r\n | Quote q -> mdInlineElements' \">\" q\r\n | CodeBlock (c, l) -> surround \"```\" (mapLang l + \"\\n\" + c + \"\\n\")\r\n | Table rows -> mdTable rows\r\n | List l -> mdList l |> sprintf \"%s\\n\"\r\n | Header (h,s) -> mdHeader h //#### DO SOMETHING WITH STRING HERE\r\n //| Footnote (fnId, _) -> mdInlineFootnote fnId\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/MarkdownGen/MarkdownGen.fs","module HTMLGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\nopen HTMLGenHelpers\r\n\r\n/// convert TFrmtedString to string, with HTML tags where necessary\r\nlet rec strFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> str |> attachSimpleTag \"code\"\r\n | Strong a -> strInlineElements a |> attachSimpleTag \"strong\"\r\n | Emphasis e -> strInlineElements e |> attachSimpleTag \"em\"\r\n | Line l -> strInlineElements l\r\n | Strike l -> strInlineElements l |> attachSimpleTag \"del\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand strInlineElements eles =\r\n let convertHtml pStr ele =\r\n let refPrint foot (ht,id) = \r\n ht\r\n |> strFStr\r\n |> attachHTMLTag (\"a\", [(\"href\", \"#\"+id)], true)\r\n |> (fun r -> if foot then attachSimpleTag \"sup\" r else r) \r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> strFStr fStr\r\n | Link (ht, url) -> strFStr ht |> attachHTMLTag (\"a\", [(\"href\", url)], true)\r\n | Picture (alt, url) ->\r\n let attrs = [(\"src\", url); (\"alt\", alt)]\r\n attachHTMLTag (\"img\", attrs, false) \"\"\r\n // style for inline referencing the footnotes and citations in the end\r\n | InlineCitation (ht, id) -> refPrint false (ht,id)\r\n | InlineFootnote (ht, id) -> refPrint true (ht,id)\r\n List.fold convertHtml \"\" eles\r\n\r\n/// process Markdown paragraph\r\nlet strParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + strInlineElements line + NewLineStr\r\n List.fold folder \"\" lines\r\n |> (fun x -> x.Trim()) // remove leading and trailing whitespaces and CRLFs\r\n |> attachSimpleTag \"p\"\r\n\r\n\r\n/// process Markdown Table\r\nlet strTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells row =\r\n let cellsFolder pStr cell =\r\n match cell with\r\n | CellLine(line, isHeader, align) ->\r\n let tagName = if isHeader then \"th\" else \"td\"\r\n let cellContent = strInlineElements line\r\n let alignAttr =\r\n match align with\r\n | Centre -> (\"align\", \"center\")\r\n | Right -> (\"align\", \"right\")\r\n | Left -> (\"align\", \"left\")\r\n | NoAlign -> (\"\",\"\")\r\n pStr + attachHTMLTag (tagName, [alignAttr], true) cellContent\r\n List.fold cellsFolder \"\" row\r\n let foldRows rows =\r\n let rowsFolder pStr row =\r\n foldCells row\r\n |> attachSimpleTag \"tr\"\r\n |> fun s -> pStr + s\r\n List.fold rowsFolder \"\" rows\r\n foldRows headerRows |> attachSimpleTag \"thead\"\r\n |> fun s ->\r\n s + (foldRows bodyRows |> attachSimpleTag \"tbody\")\r\n |> attachSimpleTag \"table\"\r\n\r\n\r\n/// recursively process a list\r\nlet rec strList list =\r\n let strListItem pStr li =\r\n pStr + (\r\n match li with\r\n | StringItem(line) -> strInlineElements line |> attachSimpleTag \"li\"\r\n | NestedList(list) -> strList list\r\n )\r\n match list with\r\n | {ListType=lt; ListItem=liS} ->\r\n match lt with\r\n | UL ->\r\n List.fold strListItem \"\" liS\r\n |> attachSimpleTag \"ul\"\r\n | OL startNo ->\r\n List.fold strListItem \"\" liS\r\n |> attachHTMLTag (\"ol\", [\"start\", startNo|>string], true)\r\n \r\n\r\n/// process header\r\nlet strHeader (header,id) =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n let tagName = \"h\" + string(lv)\r\n line\r\n |> strInlineElements\r\n |> attachHTMLTag (tagName, [\"id\", id], true)\r\n\r\n/// process references\r\n/// id: the href id used in inline referencing\r\n/// content: of TLine type, to be displayed at the end of HTML doc\r\nlet strRef (id, content) =\r\n \"[\"+id+\"] \" + strInlineElements content\r\n |> attachHTMLTag (\"p\", [\"id\", id], true)\r\n\r\nlet (|MatchHeaderAndSubHeader|_|) hds =\r\n match hds with\r\n | fstHd::sndHd::_ ->\r\n let {Level=fstLv} = fstHd\r\n let {Level=sndLv} =sndHd\r\n if sndLv > fstLv then (List.head hds, List.tail hds) |> Some else None\r\n | _ -> None\r\n\r\n/// process table of contents\r\n\r\nlet strToC (toc: Ttoc) =\r\n let excludeSelfSkip x = match x with | None -> None | Some 1 -> None | Some n -> Some (n-1)\r\n /// get all list items in current item level and sub lists\r\n let rec getCurrentHeaders currentLv hdListItems headers =\r\n match headers with\r\n | header:: reHeaders ->\r\n match header.Level with\r\n | hdLv when currentLv <= hdLv -> // list item and sub list item\r\n getCurrentHeaders currentLv (header::hdListItems) reHeaders\r\n | _ -> hdListItems |> List.rev\r\n | [] -> hdListItems |> List.rev\r\n\r\n let rec parseHdsIntoList level (headers: THeader list) =\r\n let depth = (List.head headers).Level\r\n let headerFolder (currentLv, listItems, (skipNo: int option), currentHdNo) header =\r\n match skipNo with\r\n | None ->\r\n match header.Level with\r\n | hdLv when hdLv=currentLv ->\r\n (currentLv, StringItem(header.HeaderName)::listItems, None, currentHdNo+1)\r\n | hdLv when hdLv>currentLv ->\r\n let (listItem, skip) =\r\n xOnwards currentHdNo headers\r\n |> getCurrentHeaders (currentLv+1) []\r\n |> parseHdsIntoList (currentLv+1)\r\n (currentLv, NestedList(listItem)::listItems, skip |> excludeSelfSkip, currentHdNo+1)\r\n | _ -> failwith \"list item level < current level, not possible\"\r\n | Some skip ->\r\n match skip with\r\n | 1 -> (currentLv, listItems, None, currentHdNo+1)\r\n | n when n>1 -> (currentLv, listItems, Some (n-1), currentHdNo+1)\r\n | _ -> failwith \"negative or zero skip number, not possible\"\r\n List.fold headerFolder (level, [], None, 0) headers\r\n |> (fun (_, lis, _, _) ->\r\n let doSkip =\r\n match List.length headers with\r\n | 0 -> None\r\n | n -> Some n\r\n {ListType=OL 1; ListItem=lis |> List.rev; Depth=depth}, doSkip)\r\n toc.HeaderLst\r\n |> parseHdsIntoList 1\r\n |> fst\r\n |> strList\r\n\r\n/// process HTML body part\r\nlet strBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> strParagraph p\r\n | Quote q -> strInlineElements q |> attachSimpleTag \"q\"\r\n | CodeBlock (c, l) -> attachHTMLTag (\"code\", [(\"language\", mapLang l)], true) c\r\n | Table rows -> strTable rows\r\n | List l -> strList l\r\n | Header (h,s) -> strHeader (h,s)\r\n | Footnote (i,s) -> strRef ((string i), s)\r\n | Citation (i,_,s) -> strRef (i, s)\r\n | ContentTable toc -> strToC toc\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\r\n/// generate HTML head\r\nlet genHead htmlTitle =\r\n let metaData =\r\n [\r\n [(\"name\", \"viewport\");(\"content\", \"width=device-width\")]\r\n ]\r\n let genMetadata pStr md =\r\n pStr + attachMetaTag \"meta\" md\r\n List.fold genMetadata \"\" metaData\r\n + attachSimpleTag \"title\" htmlTitle\r\n \r\n |> attachSimpleTag \"head\"\r\n\r\n/// generate HTML body\r\nlet genBody (pObjs) =\r\n strBody pObjs\r\n // insert javascript in the end of HTML doc to make page rendering faster\r\n +\r\n attachHTMLTag (\"script\",\r\n [\r\n (\"type\", \"text/javascript\");\r\n (\"async\", \"\");\r\n (\"src\", \"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML\")\r\n ], true) \"\"\r\n |> attachSimpleTag \"body\"\r\n\r\n\r\n/// top level HTMLGen\r\nlet genHTML (htmlTitle, pObjs) =\r\n attachMetaTag \"!DOCTYPE\" [\"html\", \"\"]\r\n + genHead htmlTitle\r\n + genBody (pObjs)\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGen.fs","module HTMLGenHelpers\r\n\r\nopen Types\r\n\r\ntype TagStyle = INLINE | NonInline of indentStr: string\r\n\r\n[<Literal>]\r\nlet NewLineStr = \"\\r\\n\"\r\n\r\n/// concat attributeName and value\r\n/// with quotes\r\nlet toAttr attributeName value =\r\n attributeName + \"=\\\"\" + value + \"\\\"\"\r\n\r\n/// convert (attributeName, value) list to string list\r\n/// ready for inserting into HTML tag\r\nlet toAttrs attrs =\r\n let mapper attr =\r\n match attr with | (attrName, value) -> toAttr attrName value\r\n List.map mapper attrs\r\n\r\n/// atach HTML tag to a given string, both start and end tag\r\n/// inline style does not insert newline after start tag and before end tag\r\n/// non-inline style will have indent set to desired string\r\nlet attachHTMLTag (tagName, attributes: list<string * string>, needCloseTag) (content: string) =\r\n let attrStr =\r\n match List.isEmpty attributes with\r\n | true -> \"\"\r\n | false ->\r\n let attrFolder pStr attrNameValue =\r\n pStr +\r\n match attrNameValue with\r\n | (\"\",\"\") -> \"\"\r\n | (attrName, value) ->\r\n \" \" + // space before attribute\r\n if value = \"\" then attrName\r\n else attrName + \"=\\\"\" + value + \"\\\"\"\r\n List.fold attrFolder \"\" attributes\r\n \"<\" + tagName + attrStr + \">\"\r\n + content\r\n + if needCloseTag then \"</\" + tagName + \">\" else \"\"\r\n\r\n/// attach (tagName,noAttr,closeTag)\r\nlet attachSimpleTag tagName = attachHTMLTag (tagName,[],true)\r\n\r\nlet attachMetaTag tagName attrs = attachHTMLTag (tagName,attrs,false) \"\"\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGenHelpers.fs"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap c3bc66c408916e820f43","webpack:///./src/Common/FMark.fs","webpack:///./src/FMarkFable/FMarkFable.fs","webpack:///./src/Common/Lexer/Preprocessor.fs","webpack:///src/Common/Types.fs","webpack:///src/Common/Shared.fs","webpack:///src/Common/Logger/Logger.fs","webpack:///./src/Common/FableFileIO.fs","webpack:///./src/Common/HTMLGen/HTMLGenHelpers.fs","webpack:///./src/Common/Markalc/Markalc.fs","webpack:///src/Common/Parser/ParserHelperFuncs.fs","webpack:///src/Common/Markalc/MarkalcShared.fs","webpack:///src/Common/Lexer/LexerShared.fs","webpack:///src/FMarkFable/FMarkFable.fs","webpack:///src/Common/FMark.fs","webpack:///src/Common/Parser/Parser.fs","webpack:///src/Common/Markalc/Markalc.fs","webpack:///src/Common/Markalc/Expression.fs","webpack:///./src/Common/Markalc/Expression.fs","webpack:///src/Common/TOCite/TOCite.fs","webpack:///src/Common/TOCite/RefParse.fs","webpack:///src/Common/Lexer/Lexer.fs","webpack:///src/Common/Lexer/Preprocessor.fs","webpack:///src/Common/FableFileIO.fs","webpack:///external \"fs\"","webpack:///src/Common/MarkdownGen/MarkdownGen.fs","webpack:///src/Common/HTMLGen/HTMLGen.fs","webpack:///src/Common/HTMLGen/HTMLGenHelpers.fs"],"names":["append","xs","ys","seqFold","acc","x","reverse","choose","f","r","y","getValue","collect","concat","filter","where","initialize","n","Error","i","map","mapIndexed","indexed","partition","lacc","racc","replicate","singleton","slice","lower","upper","noLower","noUpper","unzip","seqFoldBack","xy","unzip3","xyz","groupBy","seqToList","seqMap","k","mapGroupBy","splitAt","index","last","first","Array","tail","head","ofArray","undefined","Enumerator","iter","cur","next","current","value","done","getEnumerator","o","GetEnumerator","Symbol","iterator","toIterator","en","MoveNext","Current","__failIfNone","res","toList","foldBack","ofList","delay","unfold","length","firstDone","iters","average","count","sum","reduce","averageBy","output","innerIter","hasFinished","compareWith","nonZero","tryFind","map2","empty","enumerateWhile","cond","enumerateThenFinally","finalFn","err","it","enumerateUsing","disp","work","isDisposed","disposeOnce","Dispose","exactlyOne","fst","snd","except","itemsToExclude","source","exclusionItems","from","testIsNotInExclusionItems","element","some","excludedItem","equals","exists","exists2","cur1","cur2","iter1","iter2","fold","isArray","ArrayBuffer","isView","arr","fold2","foldBack2","ar1","ar2","forAll","forAll2","tryHead","makeSome","initializeInfinite","tryItem","j","item","iterate","_","iterate2","iterateIndexed","iterateIndexed2","isEmpty","tryLast","mapIndexed2","map3","zs","iter3","cur3","chunkBySize","size","result","arrayChunkBySize","mapFold","transform","push","mapFoldBack","max","compare","maxBy","min","minBy","pairwise","skip","scan","permute","arrayPermute","rangeStep","step","rangeChar","String","fromCharCode","charCodeAt","range","readOnly","reduceBack","ar","seed","scanBack","skipWhile","hasPassed","sortWith","sort","sumBy","take","truncate","takeWhile","defaultValue","find","tryFindBack","findBack","tryFindIndex","findIndex","tryFindIndexBack","findIndexBack","tryPick","pick","zip","zip3","z","types","Map","setType","fullName","cons","set","getType","get","reflection","NonDeclaredType","kind","definition","generics","other","equalsRecords","Any","Unit","Option","t","FableArray","isTypedArray","def","genArg","Tuple","FableFunction","GenericParam","Interface","makeGeneric","typeDef","genArgs","isGeneric","typ","getDefinition","extendInfo","info","parent","Object","getPrototypeOf","prototype","FSymbol","newInfo","parentInfo","getOwnPropertyNames","forEach","assign","hasInterface","obj","interfaceName","interfaces","indexOf","getPropertyNames","propertyMap","properties","toString","quoteStrings","isObject","Number","Boolean","JSON","stringify","Date","dateToString","ToString","uci","cases","tag","data","join","v","ObjectRef","idMap","has","WeakMap","getHashCode","id","hash","GetHashCode","s","h","len","Equals","byteLength","dv1","DataView","buffer","dv2","getUint8","getTime","comparePrimitives","CompareTo","b1","b2","compareDates","xhash","yhash","lessThan","lessOrEqual","greaterThan","greaterOrEqual","keys","key","compareRecords","equalsUnions","compareUnions","createDisposable","createAtom","atom","arguments","CaseRules","None","LowerFirst","isList","type","createObj","fields","caseRule","casesCache","proto","caseInfo","toLowerCase","substr","toPlainJsObj","constructor","target","props","p","prop","getOwnPropertyDescriptor","apply","jsOptions","mutator","opts","round","digits","m","Math","pow","toFixed","floor","e","sign","randomNext","random","applyOperator","operator","getMethod","meth","unescapeDataString","decodeURIComponent","replace","escapeDataString","encodeURIComponent","escapeUriString","encodeURI","clear","col","splice","Some","acceptNull","defaultArg","arg","defaultArgWith","defThunk","predicate","CurriedLambda","expectedArgsLength","curried","curriedFn","args","args2","actualArgsLength","restArgs","newLambda","args3","fsFormatRegExp","formatRegExp","guidRegex","StringComparison","CurrentCulture","CurrentCultureIgnoreCase","InvariantCulture","InvariantCultureIgnoreCase","Ordinal","OrdinalIgnoreCase","cmp","ic","isIgnoreCase","isOrdinal","toLocaleLowerCase","localeCompare","compareTo","startsWith","str","pattern","indexOfAny","anyOf","startIndex","c","toHex","abs","printf","input","cont","fsFormat","toConsole","console","log","toConsoleError","error","toText","toFail","formatOnce","str2","rep","prefix","flags","pad","precision","format","toPrecision","toExponential","toUpperCase","plusPrefix","parseInt","isNaN","ch","padLeft","once","createPrinter","printer","strCopy","test","match","idx","padSymbol","substring","exec","decs","endsWith","search","lastIndexOf","insert","isNullOrEmpty","isNullOrWhiteSpace","delimiter","xs2","validateGuid","doNotThrow","trimmed","trim","newGuid","b","a","_convertMapsInitialized","_byteToHex","_hexToByte","initConvertMaps","guidToArray","buf","Uint8Array","oct","arrayToGuid","notSupported","name","toBase64String","inArray","btoa","fromBase64String","b64Encoded","binary","atob","bytes","isRight","padRight","remove","RegExp","escape","getCharAtIndex","split","splitters","removeEmpty","splitters2","splits","reg","lastIndex","side","chars","pred","Result","mapError","bind","base","List","tmp","create","vs","add","countBy","kv","MapTree","tree_sizeAux","sizeAux","tree_size","tree_empty","tree_height","_arg1","tree_isEmpty","tree_mk","l","matchValue","hl","hr","tree_rebalance","t1","t2","t1h","t2h","tree_add","comparer","Compare","tree_find","tree_tryFind","c_1","tree_partition1","acc1","acc2","tree_partitionAux","acc_0","acc_1","acc_2","acc_3","tree_partition","tree_filter1","tree_filterAux","tree_filter","tree_spliceOutSuccessor","kvl","tree_remove","tree_mem","mem","tree_iter","tree_tryPick","matchValue_1","tree_exists","tree_forall","tree_mapi","tree_foldBack","tree_fold","tree_mkFromEnumerator","tree_ofSeq","ie","tree_collapseLHS","stack","listOfArray","tree_mkIterator","started","tree_moveNext","FableMap","m2","seqCompareWith","kvp1","kvp2","tree","oldSize","containsValue","tryGetValue","rs","findKey","seqPick","tryFindKey","seqTryPick","Comparer","fromEqualityComparer","OperationCanceledError","setPrototypeOf","Trampoline","callCount","maxTrampolineCallCount","setTimeout","protectedCont","ctx","cancelToken","isCancelled","onCancel","trampoline","incrementAndCheck","hijack","onError","protectedBind","computation","binder","onSuccess","ex","protectedReturn","AsyncBuilder","computation1","computation2","Bind","generator","sequence","body","While","Delay","compensation","catchHandler","ex2","resource","TryFinally","guard","Return","parseRadix","invalidRadix2","invalidRadix8","invalidRadix10","isValid","radix","tryParse","initial","radix_","parse","options","unescape","isMatch","matches","global","ignoreCase","multiline","replacement","limit","offset","replacer","sub1","_matches","sub2","offsetRegex","padWithZeros","offsetToString","isMinus","hours","minutes","toHalfUTCString","date","half","toISOString","d","utc","printOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffset","toISOStringWithOffset","dateWithOffset","toStringWithCustomFormat","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toStringWithOffset","toStringWithKind","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","DateTime","minValue","maxValue","parseRaw","detectUTC","_err","date1","year","month","day","ms","dateValue","UTC","setFullYear","now","utcNow","today","isLeapYear","daysInMonth","toUniversalTime","toLocalTime","timeOfDay","hour","minute","second","millisecond","getUTCMilliseconds","dayOfWeek","getUTCDay","getDay","dayOfYear","_year","_month","_day","ts","addDays","addHours","addMinutes","addSeconds","addMilliseconds","addYears","newMonth","newYear","_daysInMonth","newDay","addMonths","newMonth_","yearOffset","subtract","that","toLongDateString","toDateString","toShortDateString","toLongTimeString","toShortTimeString","d1","d2","xtime","ytime","op_Addition","op_Subtraction","isDaylightSavingTime","jan","jul","isDST","janOffset","julOffset","tOffset","Async","emptyContinuation","createCancellationToken","token","cancel","cancelAfter","isCancellationRequested","startChild","promise","startAsPromise","awaitPromise","fromContinuations","conts","then","catch","cancellationToken","defaultCancellationToken","catchAsync","choice1Of2","choice2Of2","ignore","parallel","computations","Promise","all","w","sleep","millisecondsDueTime","start","startWithContinuations","startImmediate","continuation","exceptionContinuation","cancellationContinuation","resolve","reject","Choice","TargetCons","addRangeInPlace","copyTo","sourceIndex","targetIndex","checkFlags","removeInPlace","setSlice","sortInPlaceBy","dir","bs","cs","ds","ceil","end","getSubArray","fill","QueueCell","message","MailboxQueue","itCell","firstAndLast","MailboxProcessor","messages","tryGet","__processEvents","buildMessage","checkCompletion","reply","mbox"],"mappings":"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AAA;AAAA;;AAAA;AAAA;;AAOA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAWA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAQD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AASC;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEC;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAkCsD;AAAA;AAAsB;AAlC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","file":"fmark.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"fmark\"] = factory();\n\telse\n\t\troot[\"fmark\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c3bc66c408916e820f43","export function map(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(source[i]);\n }\n return target;\n}\nexport function mapIndexed(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(i, source[i]);\n }\n return target;\n}\nexport function indexed(source) {\n return mapIndexed((i, x) => [i, x], source, Array);\n}\nexport function addRangeInPlace(range, xs) {\n const iter = range[Symbol.iterator]();\n let cur = iter.next();\n while (!cur.done) {\n xs.push(cur.value);\n cur = iter.next();\n }\n}\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n while (count--) {\n target[targetIndex++] = source[sourceIndex++];\n }\n}\nexport function partition(f, xs) {\n const ys = [];\n const zs = [];\n let j = 0;\n let k = 0;\n for (let i = 0; i < xs.length; i++) {\n if (f(xs[i])) {\n ys[j++] = xs[i];\n }\n else {\n zs[k++] = xs[i];\n }\n }\n return [ys, zs];\n}\nexport function permute(f, xs) {\n // Keep the type of the array\n const ys = xs.map(() => null);\n const checkFlags = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n const j = f(i);\n if (j < 0 || j >= xs.length) {\n throw new Error(\"Not a valid permutation\");\n }\n ys[j] = xs[i];\n checkFlags[j] = 1;\n }\n for (let i = 0; i < xs.length; i++) {\n if (checkFlags[i] !== 1) {\n throw new Error(\"Not a valid permutation\");\n }\n }\n return ys;\n}\nexport function removeInPlace(item, xs) {\n const i = xs.indexOf(item);\n if (i > -1) {\n xs.splice(i, 1);\n return true;\n }\n return false;\n}\nexport function setSlice(target, lower, upper, source) {\n const length = (upper || target.length - 1) - lower;\n if (ArrayBuffer.isView(target) && source.length <= length) {\n target.set(source, lower);\n }\n else {\n for (let i = lower | 0, j = 0; j <= length; i++, j++) {\n target[i] = source[j];\n }\n }\n}\nexport function sortInPlaceBy(f, xs, dir = 1) {\n return xs.sort((x, y) => {\n x = f(x);\n y = f(y);\n return (x < y ? -1 : x === y ? 0 : 1) * dir;\n });\n}\nexport function unzip(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n }\n return [bs, cs];\n}\nexport function unzip3(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n const ds = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n ds[i] = xs[i][2];\n }\n return [bs, cs, ds];\n}\nexport function chunkBySize(size, xs) {\n if (size < 1) {\n throw new Error(\"The input must be positive. parameter name: chunkSize\");\n }\n if (xs.length === 0) {\n return [[]];\n }\n const result = [];\n // add each chunk to the result\n for (let x = 0; x < Math.ceil(xs.length / size); x++) {\n const start = x * size;\n const end = start + size;\n result.push(xs.slice(start, end));\n }\n return result;\n}\nexport function getSubArray(xs, startIndex, count) {\n return xs.slice(startIndex, startIndex + count);\n}\nexport function fill(target, targetIndex, count, value) {\n target.fill(value, targetIndex, targetIndex + count);\n}\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw new Error(\"The input must be non-negative.\");\n }\n if (index > xs.length) {\n throw new Error(\"The input sequence has an insufficient number of elements.\");\n }\n return [xs.slice(0, index), xs.slice(index)];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FMark.fs","import { permute as arrayPermute } from \"./Array\";\nimport { chunkBySize as arrayChunkBySize } from \"./Array\";\nimport List from \"./ListClass\";\nimport { getValue, makeSome } from \"./Option\";\nimport { compare, equals } from \"./Util\";\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n }\n MoveNext() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n get Current() { return this.current; }\n get get_Current() { return this.current; }\n Reset() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() { return; }\n}\nexport function getEnumerator(o) {\n return typeof o.GetEnumerator === \"function\"\n ? o.GetEnumerator() : new Enumerator(o[Symbol.iterator]());\n}\nexport function toIterator(en) {\n return {\n next() {\n return en.MoveNext()\n ? { done: false, value: en.Current }\n : { done: true, value: null };\n },\n };\n}\nfunction __failIfNone(res) {\n if (res == null) {\n throw new Error(\"Seq did not contain any matching element\");\n }\n return getValue(res);\n}\nexport function toList(xs) {\n return foldBack((x, acc) => new List(x, acc), xs, new List());\n}\nexport function ofList(xs) {\n return delay(() => unfold((x) => x.tail != null ? [x.head, x.tail] : null, xs));\n}\nexport function ofArray(xs) {\n return delay(() => unfold((i) => i < xs.length ? [xs[i], i + 1] : null, 0));\n}\nexport function append(xs, ys) {\n return delay(() => {\n let firstDone = false;\n const i = xs[Symbol.iterator]();\n let iters = [i, null];\n return unfold(() => {\n let cur;\n if (!firstDone) {\n cur = iters[0].next();\n if (!cur.done) {\n return [cur.value, iters];\n }\n else {\n firstDone = true;\n iters = [null, ys[Symbol.iterator]()];\n }\n }\n cur = iters[1].next();\n return !cur.done ? [cur.value, iters] : null;\n }, iters);\n });\n}\nexport function average(xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return acc + x;\n }, xs);\n return sum / count;\n}\nexport function averageBy(f, xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return (count === 2 ? f(acc) : acc) + f(x);\n }, xs);\n return sum / count;\n}\nexport function concat(xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n let output = { value: null };\n return unfold((innerIter) => {\n let hasFinished = false;\n while (!hasFinished) {\n if (innerIter == null) {\n const cur = iter.next();\n if (!cur.done) {\n innerIter = cur.value[Symbol.iterator]();\n }\n else {\n hasFinished = true;\n }\n }\n else {\n const cur = innerIter.next();\n if (!cur.done) {\n output = { value: cur.value };\n hasFinished = true;\n }\n else {\n innerIter = null;\n }\n }\n }\n return innerIter != null && output != null ? [output.value, innerIter] : null;\n }, null);\n });\n}\nexport function collect(f, xs) {\n return concat(map(f, xs));\n}\nexport function choose(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n const y = f(cur.value);\n if (y != null) {\n return [getValue(y), iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function compareWith(f, xs, ys) {\n const nonZero = tryFind((i) => i !== 0, map2((x, y) => f(x, y), xs, ys));\n return nonZero != null ? getValue(nonZero) : count(xs) - count(ys);\n}\nexport function delay(f) {\n return {\n [Symbol.iterator]: () => f()[Symbol.iterator](),\n };\n}\nexport function empty() {\n return unfold(() => void 0);\n}\nexport function enumerateWhile(cond, xs) {\n return concat(unfold(() => cond() ? [xs, true] : null));\n}\nexport function enumerateThenFinally(xs, finalFn) {\n return delay(() => {\n let iter;\n try {\n iter = xs[Symbol.iterator]();\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n return unfold((it) => {\n try {\n const cur = it.next();\n return !cur.done ? [cur.value, it] : null;\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n }, iter);\n });\n}\nexport function enumerateUsing(disp, work) {\n let isDisposed = false;\n const disposeOnce = () => {\n if (!isDisposed) {\n isDisposed = true;\n disp.Dispose();\n }\n };\n try {\n return enumerateThenFinally(work(disp), disposeOnce);\n }\n catch (err) {\n return void 0;\n }\n finally {\n disposeOnce();\n }\n}\nexport function exactlyOne(xs) {\n const iter = xs[Symbol.iterator]();\n const fst = iter.next();\n if (fst.done) {\n throw new Error(\"Seq was empty\");\n }\n const snd = iter.next();\n if (!snd.done) {\n throw new Error(\"Seq had multiple items\");\n }\n return fst.value;\n}\nexport function except(itemsToExclude, source) {\n const exclusionItems = Array.from(itemsToExclude);\n const testIsNotInExclusionItems = (element) => !exclusionItems.some((excludedItem) => equals(excludedItem, element));\n return filter(testIsNotInExclusionItems, source);\n}\nexport function exists(f, xs) {\n let cur;\n for (const iter = xs[Symbol.iterator]();;) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value)) {\n return true;\n }\n }\n return false;\n}\nexport function exists2(f, xs, ys) {\n let cur1;\n let cur2;\n for (const iter1 = xs[Symbol.iterator](), iter2 = ys[Symbol.iterator]();;) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n if (f(cur1.value, cur2.value)) {\n return true;\n }\n }\n return false;\n}\nexport function filter(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n if (f(cur.value)) {\n return [cur.value, iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function where(f, xs) {\n return filter(f, xs);\n}\nexport function fold(f, acc, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f, acc);\n }\n else {\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value, i);\n }\n return acc;\n }\n}\nexport function foldBack(f, xs, acc) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n acc = f(arr[i], acc, i);\n }\n return acc;\n}\nexport function fold2(f, acc, xs, ys) {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n let cur1;\n let cur2;\n for (let i = 0;; i++) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n acc = f(acc, cur1.value, cur2.value, i);\n }\n return acc;\n}\nexport function foldBack2(f, xs, ys, acc) {\n const ar1 = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const ar2 = Array.isArray(ys) || ArrayBuffer.isView(ys) ? ys : Array.from(ys);\n for (let i = ar1.length - 1; i >= 0; i--) {\n acc = f(ar1[i], ar2[i], acc, i);\n }\n return acc;\n}\nexport function forAll(f, xs) {\n return fold((acc, x) => acc && f(x), true, xs);\n}\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => acc && f(x, y), true, xs, ys);\n}\nexport function tryHead(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n return cur.done ? null : makeSome(cur.value);\n}\nexport function head(xs) {\n return __failIfNone(tryHead(xs));\n}\nexport function initialize(n, f) {\n return delay(() => unfold((i) => i < n ? [f(i), i + 1] : null, 0));\n}\nexport function initializeInfinite(f) {\n return delay(() => unfold((i) => [f(i), i + 1], 0));\n}\nexport function tryItem(i, xs) {\n if (i < 0) {\n return null;\n }\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return i < xs.length ? makeSome(xs[i]) : null;\n }\n for (let j = 0, iter = xs[Symbol.iterator]();; j++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (j === i) {\n return makeSome(cur.value);\n }\n }\n return null;\n}\nexport function item(i, xs) {\n return __failIfNone(tryItem(i, xs));\n}\nexport function iterate(f, xs) {\n fold((_, x) => f(x), null, xs);\n}\nexport function iterate2(f, xs, ys) {\n fold2((_, x, y) => f(x, y), null, xs, ys);\n}\nexport function iterateIndexed(f, xs) {\n fold((_, x, i) => f(i, x), null, xs);\n}\nexport function iterateIndexed2(f, xs, ys) {\n fold2((_, x, y, i) => f(i, x, y), null, xs, ys);\n}\nexport function isEmpty(xs) {\n const i = xs[Symbol.iterator]();\n return i.next().done;\n}\nexport function tryLast(xs) {\n try {\n return makeSome(reduce((_, x) => x, xs));\n }\n catch (err) {\n return null;\n }\n}\nexport function last(xs) {\n return __failIfNone(tryLast(xs));\n}\n// A export function 'length' method causes problems in JavaScript -- https://github.com/Microsoft/TypeScript/issues/442\nexport function count(xs) {\n return Array.isArray(xs) || ArrayBuffer.isView(xs)\n ? xs.length\n : fold((acc, x) => acc + 1, 0, xs);\n}\nexport function map(f, xs) {\n return delay(() => unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(cur.value), iter] : null;\n }, xs[Symbol.iterator]()));\n}\nexport function mapIndexed(f, xs) {\n return delay(() => {\n let i = 0;\n return unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(i++, cur.value), iter] : null;\n }, xs[Symbol.iterator]());\n });\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(f, xs, ys) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function mapIndexed2(f, xs, ys) {\n return delay(() => {\n let i = 0;\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(i++, cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function map3(f, xs, ys, zs) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n const iter3 = zs[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n const cur3 = iter3.next();\n return !cur1.done && !cur2.done && !cur3.done ? [f(cur1.value, cur2.value, cur3.value), null] : null;\n });\n });\n}\nexport function chunkBySize(size, xs) {\n const result = arrayChunkBySize(size, Array.from(xs));\n return ofArray(result);\n}\nexport function mapFold(f, acc, xs, transform) {\n const result = [];\n let r;\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n [r, acc] = f(acc, cur.value);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function mapFoldBack(f, xs, acc, transform) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const result = [];\n let r;\n for (let i = arr.length - 1; i >= 0; i--) {\n [r, acc] = f(arr[i], acc);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function max(xs) {\n return reduce((acc, x) => compare(acc, x) === 1 ? acc : x, xs);\n}\nexport function maxBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === 1 ? acc : x, xs);\n}\nexport function min(xs) {\n return reduce((acc, x) => compare(acc, x) === -1 ? acc : x, xs);\n}\nexport function minBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === -1 ? acc : x, xs);\n}\nexport function pairwise(xs) {\n return skip(2, scan((last, next) => [last[1], next], [0, 0], xs));\n}\nexport function permute(f, xs) {\n return ofArray(arrayPermute(f, Array.from(xs)));\n}\nexport function rangeStep(first, step, last) {\n if (step === 0) {\n throw new Error(\"Step cannot be 0\");\n }\n return delay(() => unfold((x) => step > 0 && x <= last || step < 0 && x >= last ? [x, x + step] : null, first));\n}\nexport function rangeChar(first, last) {\n return delay(() => unfold((x) => x <= last ? [x, String.fromCharCode(x.charCodeAt(0) + 1)] : null, first));\n}\nexport function range(first, last) {\n return rangeStep(first, 1, last);\n}\nexport function readOnly(xs) {\n return map((x) => x, xs);\n}\nexport function reduce(f, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f);\n }\n const iter = xs[Symbol.iterator]();\n let cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n let acc = cur.value;\n while (true) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value);\n }\n return acc;\n}\nexport function reduceBack(f, xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n if (ar.length === 0) {\n throw new Error(\"Seq was empty\");\n }\n let acc = ar[ar.length - 1];\n for (let i = ar.length - 2; i >= 0; i--) {\n acc = f(ar[i], acc, i);\n }\n return acc;\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function reverse(xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return ofArray(ar.reverse());\n}\nexport function scan(f, seed, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((acc) => {\n if (acc == null) {\n return [seed, seed];\n }\n const cur = iter.next();\n if (!cur.done) {\n acc = f(acc, cur.value);\n return [acc, acc];\n }\n return void 0;\n }, null);\n });\n}\nexport function scanBack(f, xs, seed) {\n return reverse(scan((acc, x) => f(x, acc), seed, reverse(xs)));\n}\nexport function singleton(y) {\n return unfold((x) => x != null ? [x, null] : null, y);\n}\nexport function skip(n, xs) {\n return {\n [Symbol.iterator]: () => {\n const iter = xs[Symbol.iterator]();\n for (let i = 1; i <= n; i++) {\n if (iter.next().done) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return iter;\n },\n };\n}\nexport function skipWhile(f, xs) {\n return delay(() => {\n let hasPassed = false;\n return filter((x) => hasPassed || (hasPassed = !f(x)), xs);\n });\n}\nexport function sortWith(f, xs) {\n const ys = Array.from(xs);\n return ofArray(ys.sort(f));\n}\nexport function sum(xs) {\n return fold((acc, x) => acc + x, 0, xs);\n}\nexport function sumBy(f, xs) {\n return fold((acc, x) => acc + f(x), 0, xs);\n}\nexport function tail(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n return {\n [Symbol.iterator]: () => iter,\n };\n}\nexport function take(n, xs, truncate = false) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n if (i < n) {\n const cur = iter.next();\n if (!cur.done) {\n return [cur.value, i + 1];\n }\n if (!truncate) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return void 0;\n }, 0);\n });\n}\nexport function truncate(n, xs) {\n return take(n, xs, true);\n}\nexport function takeWhile(f, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n const cur = iter.next();\n if (!cur.done && f(cur.value)) {\n return [cur.value, null];\n }\n return void 0;\n }, 0);\n });\n}\nexport function tryFind(f, xs, defaultValue) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return makeSome(cur.value);\n }\n }\n return defaultValue === void 0 ? null : makeSome(defaultValue);\n}\nexport function find(f, xs) {\n return __failIfNone(tryFind(f, xs));\n}\nexport function tryFindBack(f, xs, defaultValue) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return tryFind(f, arr.reverse(), defaultValue);\n}\nexport function findBack(f, xs) {\n return __failIfNone(tryFindBack(f, xs));\n}\nexport function tryFindIndex(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndex(f, xs) {\n return __failIfNone(tryFindIndex(f, xs));\n}\nexport function tryFindIndexBack(f, xs) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n if (f(arr[i], i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndexBack(f, xs) {\n return __failIfNone(tryFindIndexBack(f, xs));\n}\nexport function tryPick(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n const y = f(cur.value, i);\n if (y != null) {\n return y;\n }\n }\n return null;\n}\nexport function pick(f, xs) {\n return __failIfNone(tryPick(f, xs));\n}\nexport function unfold(f, fst) {\n return {\n [Symbol.iterator]: () => {\n // Capture a copy of the first value in the closure\n // so the sequence is restarted every time, see #1230\n let acc = fst;\n return {\n next: () => {\n const res = f(acc);\n if (res != null) {\n acc = res[1];\n return { done: false, value: res[0] };\n }\n return { done: true };\n },\n };\n },\n };\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/FMarkFable/FMarkFable.fs","import FSymbol from \"./Symbol\";\nimport { compare } from \"./Util\";\nexport default class Comparer {\n constructor(f) {\n this.Compare = f || compare;\n }\n [FSymbol.reflection]() {\n return { interfaces: [\"System.IComparer\"] };\n }\n}\nexport function fromEqualityComparer(comparer) {\n // Sometimes IEqualityComparer also implements IComparer\n if (typeof comparer.Compare === \"function\") {\n return new Comparer(comparer.Compare);\n }\n else {\n return new Comparer((x, y) => {\n const xhash = comparer.GetHashCode(x);\n const yhash = comparer.GetHashCode(y);\n if (xhash === yhash) {\n return comparer.Equals(x, y) ? 0 : -1;\n }\n else {\n return xhash < yhash ? -1 : 1;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Lexer/Preprocessor.fs","module Types\r\n\r\ntype Language =\r\n | Python\r\n | FSharp\r\n | CPP\r\n | C\r\n | Empty\r\n\r\ntype Token =\r\n | CODEBLOCK of string * Language\r\n | LITERAL of string\r\n | WHITESPACE of size: int\r\n | NUMBER of string\r\n | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT | COMMA\r\n | DASTERISK | TASTERISK | UNDERSCORE | DUNDERSCORE | TUNDERSCORE | TILDE | DTILDE\r\n | TTILDE | LSBRA | RSBRA | LBRA | RBRA | BSLASH | SLASH | LABRA | RABRA | LCBRA\r\n | RCBRA | BACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT | SEMICOLON\r\n | HEADER of int | FOOTNOTE of int | CITATION of string\r\n\r\ntype TFrmtedString =\r\n | Strong of InlineElement list\r\n | Emphasis of InlineElement list\r\n | Line of InlineElement list\r\n | Strike of InlineElement list\r\n | Literal of string\r\n | Code of string\r\n\r\nand InlineElement =\r\n | FrmtedString of TFrmtedString\r\n | Link of HyperText: TFrmtedString * URL: string\r\n | Picture of Alt: string * URL: string\r\n | InlineCitation of HyperText: TFrmtedString * ID: string\r\n | InlineFootnote of HyperText: TFrmtedString * ID: string\r\n\r\ntype TLine = InlineElement list\r\n\r\ntype THeader = {HeaderName: TLine; Level: int}\r\n\r\ntype Ttoc = {HeaderLst: THeader list}\r\n\r\ntype TListType = | UL | OL of startNo:int\r\ntype TList = {ListType: TListType; ListItem: TListItem list; Depth: int}\r\nand TListItem = NestedList of TList | StringItem of TLine\r\n\r\ntype Alignment = Centre | Right | Left | NoAlign\r\n\r\ntype Cell =\r\n | Contents of Token list * Header: bool * Align:Alignment\r\n\r\ntype Row =\r\n | Cells of Cell list * Header:bool\r\n\r\ntype PCell =\r\n | CellLine of TLine * Header: bool * Align:Alignment\r\n\r\ntype PRow =\r\n | PCells of PCell list * Header:bool\r\n\r\ntype RefFrmt = IEEE | Harvard | Chicago\r\ntype RefType = Book | Website\r\ntype Ref = {Cat: RefType option; Author: Token list option; Title: Token list option;\r\n Year: int option; AccessDate: (int * int * int) option\r\n URL: string option}\r\n\r\ntype ParsedObj =\r\n | CodeBlock of string * Language\r\n | Header of THeader * string // content of header, HTML id for linking\r\n | ContentTable of Ttoc\r\n | List of TList\r\n | Paragraph of TLine list\r\n | Quote of TLine\r\n | Table of PRow list\r\n | PreTable of Content: Token list list\r\n | Footnote of int * TLine // inline id, end of doc\r\n | Citation of string * TFrmtedString * TLine //ID,Inline,End of doc\r\n \r\ntype Cell with \r\n member c.GetToks = match c with \r\n | Contents(toks,_,_) -> toks\r\n member c.ReplaceTokens t = match c with \r\n | Contents(_,head,align) -> Contents(t,head,align)\r\n member c.GetHead = match c with \r\n | Contents(_,head,_) -> head\r\n member c.GetParams = match c with \r\n | Contents(toks,head,align) -> toks,head,align\r\n\r\ntype OutFormat = HTML | Markdown\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Types.fs","module Shared\r\n\r\nopen Types\r\nopen Logger\r\nopen System.Text.RegularExpressions\r\n\r\n// Helpers\r\n\r\n/// Inverse the values in a tuple\r\nlet invTuple (a, b) = b, a\r\n\r\n/// Try to find a key in a map, return Some value when it is found, otherwise it\r\n/// returns None\r\nlet mapTryFind k (map: Map<'a, 'b>) = map.TryFind(k)\r\n\r\n/// Try find key in a list\r\nlet listTryFind s =\r\n List.map invTuple >> Map.ofList >> mapTryFind s\r\n\r\n/// The list of characters used in the parser\r\nlet charList = [\"#\", HASH; \"|\", PIPE; \"=\", EQUAL; \"-\", MINUS; \"+\", PLUS; \"*\", ASTERISK\r\n \".\", DOT; \"**\", DASTERISK; \"***\", TASTERISK; \"_\", UNDERSCORE; \"__\", DUNDERSCORE\r\n \"___\", TUNDERSCORE; \"~\", TILDE; \"~~\", DTILDE; \"~~~\", TTILDE; \"[\", LSBRA\r\n \"]\", RSBRA; \"(\", LBRA; \")\", RBRA; @\"\\\", BSLASH; \"/\", SLASH; \"<\", LABRA\r\n \">\", RABRA; \"{\", LCBRA; \"}\", RCBRA; \"`\", BACKTICK;\r\n \"!\", EXCLAMATION; \":\", COLON; \"^\", CARET; \"%\", PERCENT; \",\", COMMA; \";\", SEMICOLON]\r\n\r\nlet charMap = charList |> List.map invTuple |> Map.ofList\r\n\r\nlet (|CharTok|_|) tok =\r\n mapTryFind tok charMap\r\n\r\nlet mapTok = function\r\n | CharTok s -> s\r\n | CODEBLOCK _ -> \"CODEBLOCK\"\r\n | FOOTNOTE _ -> sprintf \"FOOTNOTE found\"\r\n | CITATION _ -> sprintf \"CITATION found\"\r\n | HEADER n -> sprintf \"HEADER %d\" n\r\n | NUMBER s -> s\r\n | LITERAL s -> s\r\n | WHITESPACE n -> String.replicate n \" \"\r\n | _ -> \"\\n\"\r\n\r\n/// turn all tokens into string\r\nlet strAllToks toks =\r\n let pacMan str tok =\r\n str + mapTok tok\r\n List.fold pacMan \"\" toks\r\n\r\nlet mapLang lang =\r\n match lang with\r\n | Python -> \"python\"\r\n | FSharp -> \"fsharp\"\r\n | CPP -> \"cpp\"\r\n | C -> \"c\"\r\n | Empty -> \"\"\r\n\r\nlet xOnwards x lst = if List.length lst > x then lst.[x..] else []\r\nlet sOnwards s str = if String.length str > s then str.[s..] else \"\"\r\nlet removeChars lst s =\r\n let folder (s:string) x = s.Replace(x,\"\")\r\n List.fold folder s lst\r\nlet replaceChars pat (rep:string) s =\r\n Regex.Replace(s,pat,rep)\r\nlet removeWhitespace (s:string) = \r\n s |> removeChars [\"\\n\";\"\\t\";\"\\r\";\" \"]\n\n\n// WEBPACK FOOTER //\n// src/Common/Shared.fs","module Logger\r\n\r\ntype LogLevel =\r\n | DEBUG=0\r\n | INFO=1\r\n | WARNING=2\r\n | ERROR=3\r\n | FATAL=4\r\n\r\nlet logLevelStr =\r\n [\r\n LogLevel.DEBUG, \"DEBUG\"\r\n LogLevel.INFO, \"INFO\"\r\n LogLevel.WARNING, \"WARNING\"\r\n LogLevel.ERROR, \"ERROR\"\r\n LogLevel.FATAL, \"FATAL\"\r\n ] |> Map.ofList\r\n\r\ntype Logger(logLevel) =\r\n\r\n // create the mailbox processor\r\n let agent = MailboxProcessor.Start(fun inbox -> \r\n\r\n // the message processing function\r\n let rec messageLoop () = async {\r\n\r\n // read a message\r\n let! msg = inbox.Receive()\r\n\r\n // write it to the log\r\n printfn \"%s\" msg\r\n\r\n // loop to top\r\n return! messageLoop ()\r\n }\r\n\r\n // start the loop\r\n messageLoop ()\r\n )\r\n\r\n let postStr pType msg = function\r\n | Some l ->\r\n sprintf \"%s [%s] (%d) %s\" pType (System.DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) l msg |> agent.Post\r\n | _ ->\r\n sprintf \"%s [%s] %s\" pType (System.DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) msg |> agent.Post\r\n\r\n let log t l msg =\r\n if t >= logLevel then\r\n postStr logLevelStr.[t] msg l\r\n else ()\r\n\r\n // Public API\r\n member __.Log = log\r\n member __.Debug = log LogLevel.DEBUG\r\n member __.Info = log LogLevel.INFO\r\n member __.Warn = log LogLevel.WARNING\r\n member __.Error = log LogLevel.ERROR\r\n member __.Fatal = log LogLevel.FATAL\r\n\r\nlet logPass line log s =\r\n s |> log line\r\n s\r\n\r\nlet logPassN log s =\r\n s |> log None\r\n s\r\nlet mutable globLog = Logger(LogLevel.DEBUG)\n\n\n// WEBPACK FOOTER //\n// src/Common/Logger/Logger.fs","import { defaultCancellationToken } from \"./Async\";\nimport { fromContinuations } from \"./Async\";\nimport { startImmediate } from \"./Async\";\nclass QueueCell {\n constructor(message) {\n this.value = message;\n }\n}\nclass MailboxQueue {\n add(message) {\n const itCell = new QueueCell(message);\n if (this.firstAndLast) {\n this.firstAndLast[1].next = itCell;\n this.firstAndLast = [this.firstAndLast[0], itCell];\n }\n else {\n this.firstAndLast = [itCell, itCell];\n }\n }\n tryGet() {\n if (this.firstAndLast) {\n const value = this.firstAndLast[0].value;\n if (this.firstAndLast[0].next) {\n this.firstAndLast = [this.firstAndLast[0].next, this.firstAndLast[1]];\n }\n else {\n delete this.firstAndLast;\n }\n return value;\n }\n return void 0;\n }\n}\nexport default class MailboxProcessor {\n constructor(body, cancellationToken) {\n this.body = body;\n this.cancellationToken = cancellationToken || defaultCancellationToken;\n this.messages = new MailboxQueue();\n }\n __processEvents() {\n if (this.continuation) {\n const value = this.messages.tryGet();\n if (value) {\n const cont = this.continuation;\n delete this.continuation;\n cont(value);\n }\n }\n }\n start() {\n startImmediate(this.body(this), this.cancellationToken);\n }\n receive() {\n return fromContinuations((conts) => {\n if (this.continuation) {\n throw new Error(\"Receive can only be called once!\");\n }\n this.continuation = conts[0];\n this.__processEvents();\n });\n }\n post(message) {\n this.messages.add(message);\n this.__processEvents();\n }\n postAndAsyncReply(buildMessage) {\n let result;\n let continuation;\n function checkCompletion() {\n if (result && continuation) {\n continuation(result);\n }\n }\n const reply = {\n reply: (res) => {\n result = res;\n checkCompletion();\n },\n };\n this.messages.add(buildMessage(reply));\n this.__processEvents();\n return fromContinuations((conts) => {\n continuation = conts[0];\n checkCompletion();\n });\n }\n}\nexport function start(body, cancellationToken) {\n const mbox = new MailboxProcessor(body, cancellationToken);\n mbox.start();\n return mbox;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FableFileIO.fs","import FSymbol from \"./Symbol\";\nimport { Any } from \"./Util\";\nimport { compareUnions, equalsUnions } from \"./Util\";\nexport function choice1Of2(v) {\n return new Choice(0, v);\n}\nexport function choice2Of2(v) {\n return new Choice(1, v);\n}\nexport default class Choice {\n constructor(tag, data) {\n this.tag = tag | 0;\n this.data = data;\n }\n get valueIfChoice1() {\n return this.tag === 0 ? this.data : null;\n }\n get valueIfChoice2() {\n return this.tag === 1 ? this.data : null;\n }\n Equals(other) {\n return equalsUnions(this, other);\n }\n CompareTo(other) {\n return compareUnions(this, other);\n }\n [FSymbol.reflection]() {\n return {\n type: \"Microsoft.FSharp.Core.FSharpChoice\",\n interfaces: [\"FSharpUnion\", \"System.IEquatable\", \"System.IComparable\"],\n cases: [[\"Choice1Of2\", Any], [\"Choice2Of2\", Any]],\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/HTMLGen/HTMLGenHelpers.fs","import { OperationCanceledError, Trampoline } from \"./AsyncBuilder\";\nimport { protectedCont } from \"./AsyncBuilder\";\nimport { protectedBind } from \"./AsyncBuilder\";\nimport { protectedReturn } from \"./AsyncBuilder\";\nimport { choice1Of2 } from \"./Choice\";\nimport { choice2Of2 } from \"./Choice\";\nimport { map } from \"./Seq\";\n// Implemented just for type references\nexport default class Async {\n}\nfunction emptyContinuation(x) {\n // NOP\n}\nexport function createCancellationToken(arg) {\n const token = { isCancelled: false };\n if (typeof arg === \"number\") {\n setTimeout(() => { token.isCancelled = true; }, arg);\n }\n else if (typeof arg === \"boolean\") {\n token.isCancelled = arg;\n }\n return token;\n}\nexport function cancel(token) {\n token.isCancelled = true;\n}\nexport function cancelAfter(token, ms) {\n setTimeout(() => { token.isCancelled = true; }, ms);\n}\nexport function isCancellationRequested(token) {\n return token != null && token.isCancelled;\n}\nexport function startChild(computation) {\n const promise = startAsPromise(computation);\n // JS Promises are hot, computation has already started\n // but we delay returning the result\n return protectedCont((ctx) => protectedReturn(awaitPromise(promise))(ctx));\n}\nexport function awaitPromise(p) {\n return fromContinuations((conts) => p.then(conts[0]).catch((err) => (err instanceof OperationCanceledError\n ? conts[2] : conts[1])(err)));\n}\nexport function cancellationToken() {\n return protectedCont((ctx) => ctx.onSuccess(ctx.cancelToken));\n}\nexport const defaultCancellationToken = { isCancelled: false };\nexport function catchAsync(work) {\n return protectedCont((ctx) => {\n work({\n onSuccess: (x) => ctx.onSuccess(choice1Of2(x)),\n onError: (ex) => ctx.onSuccess(choice2Of2(ex)),\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n}\nexport function fromContinuations(f) {\n return protectedCont((ctx) => f([ctx.onSuccess, ctx.onError, ctx.onCancel]));\n}\nexport function ignore(computation) {\n return protectedBind(computation, (x) => protectedReturn(void 0));\n}\nexport function parallel(computations) {\n return awaitPromise(Promise.all(map((w) => startAsPromise(w), computations)));\n}\nexport function sleep(millisecondsDueTime) {\n return protectedCont((ctx) => {\n setTimeout(() => ctx.cancelToken.isCancelled\n ? ctx.onCancel(new OperationCanceledError())\n : ctx.onSuccess(void 0), millisecondsDueTime);\n });\n}\nexport function start(computation, cancellationToken) {\n return startWithContinuations(computation, cancellationToken);\n}\nexport function startImmediate(computation, cancellationToken) {\n return start(computation, cancellationToken);\n}\nexport function startWithContinuations(computation, continuation, exceptionContinuation, cancellationContinuation, cancelToken) {\n if (typeof continuation !== \"function\") {\n cancelToken = continuation;\n continuation = null;\n }\n const trampoline = new Trampoline();\n computation({\n onSuccess: continuation ? continuation : emptyContinuation,\n onError: exceptionContinuation ? exceptionContinuation : emptyContinuation,\n onCancel: cancellationContinuation ? cancellationContinuation : emptyContinuation,\n cancelToken: cancelToken ? cancelToken : defaultCancellationToken,\n trampoline,\n });\n}\nexport function startAsPromise(computation, cancellationToken) {\n return new Promise((resolve, reject) => startWithContinuations(computation, resolve, reject, reject, cancellationToken ? cancellationToken : defaultCancellationToken));\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Markalc.fs","module ParserHelperFuncs\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\nlet SPACE = \" \"\r\nlet NOSTRING = \"\"\r\n\r\ntype TEmphasis = UNDER | STAR // underscore and asterisk\r\n\r\ntype ParagraphState = {Par: Token list; ReToks: Token list; ParMatched: bool}\r\n\r\ntype FormatStyle = STRONG | EM | SEM | STRIKE\r\n\r\n/// delete leading ENDLINEs and retur the rest\r\nlet rec deleteLeadingENDLINEs toks =\r\n match toks with\r\n | ENDLINE:: tks -> deleteLeadingENDLINEs tks\r\n | _ -> toks\r\n\r\nlet deleteTrailingENDLINEs toks =\r\n toks\r\n |> List.rev\r\n |> deleteLeadingENDLINEs\r\n |> List.rev\r\n\r\nlet trimENDLINEs toks =\r\n toks\r\n |> deleteLeadingENDLINEs\r\n |> deleteTrailingENDLINEs\r\n\r\n/// convert all Tokens into a single string\r\n/// see mapTok for Token mapping\r\nlet stringAllTokens toks =\r\n let matchTok i tok =\r\n i + mapTok tok\r\n List.fold matchTok \"\" toks\r\n\r\n/// count subsquent and continuous Tokens\r\nlet countToks (tok: Token) toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | t:: rtks when t = tok -> countToks' (n+1, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuous spaces\r\nlet countSpaces toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | WHITESPACE no:: rtks -> countToks' (n+no, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuoues ENDLINEs\r\nlet countNewLines = countToks (ENDLINE)\r\n\r\n/// count all pipes in a line\r\nlet countDelim delim toks =\r\n let counter tok =\r\n match tok with\r\n | t when t =delim ->1\r\n | _ -> 0\r\n List.sumBy counter toks\r\nlet countPipes = countDelim PIPE\r\nlet countMinus = countDelim MINUS\r\n\r\n/// first element is the line\r\n/// second element is remaining tokens\r\nlet cutFirstLine toks =\r\n let rec cutLine' line rtks =\r\n match rtks with\r\n | ENDLINE:: rtks -> line |> List.rev, rtks\r\n | tok:: rtks -> cutLine' (tok::line) rtks\r\n | [] -> line |> List.rev, []\r\n cutLine' [] toks\r\n\r\n/// process token list into lines of tokens, no ENDLINE in the end\r\nlet cutIntoLines toks =\r\n let rec cutIntoLines' tokLines toks =\r\n let endlineSpliter = function | ENDLINE -> true | _ -> false\r\n match List.tryFindIndex endlineSpliter toks with\r\n | None -> toks::tokLines |> List.rev\r\n | Some idx ->\r\n match List.splitAt idx toks with\r\n | (tokLine, retoks) ->\r\n let tokLineNoEL = tokLine |> deleteTrailingENDLINEs\r\n cutIntoLines' (tokLineNoEL::tokLines) retoks.Tail\r\n toks\r\n |> cutIntoLines' []\r\n\r\n/// combine adjacent FrmtedString(Literal \"something\")\r\nlet combineLiterals line =\r\n let combiner line inlineEle =\r\n let doNothing = inlineEle::line\r\n match List.head line with\r\n | FrmtedString (Literal l) ->\r\n match inlineEle with\r\n | FrmtedString (Literal s) -> FrmtedString (Literal (l+s)) :: line.Tail\r\n | _ -> doNothing\r\n | _ -> doNothing\r\n line\r\n |> List.tail\r\n |> List.fold combiner [List.head line]\r\n |> List.rev\r\n\r\n\r\n/// match start and end symbol for formatting\r\n/// return the match content, w/o the symbols\r\n/// and the rest tokens\r\nlet (|MatchSym|_|) sym toks =\r\n match toks with\r\n | t::tl when t = sym ->\r\n match List.tryFindIndex (fun s -> s=sym) (List.tail toks) with\r\n | Some idx ->\r\n let (content, restTks) = List.splitAt idx tl\r\n (content, List.tail restTks) |> Some\r\n | None -> None\r\n | _ -> None\r\n\r\n\r\n/// match paragraph\r\n/// return paragraph contents, w/o trailing ENDLINE,\r\n/// and the rest tokens, w/o leading ENDLINE\r\nlet (|PickoutParagraph|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | _ ->\r\n let folder state tok =\r\n let {Par=par;ReToks=reToks;ParMatched=matched} = state\r\n if matched then\r\n {state with ReToks=tok::reToks}\r\n else\r\n match tok with\r\n | ENDLINE when List.head par = ENDLINE -> {Par=List.tail par;ReToks=reToks;ParMatched=true}\r\n | HEADER _ -> {Par=par;ReToks=tok::reToks;ParMatched=true}\r\n | _ -> {state with Par=tok::par}\r\n let initState = {Par=[];ReToks=[];ParMatched=false}\r\n match List.fold folder initState toks with\r\n | {Par=par;ReToks=reToks} ->\r\n (par |> List.rev, reToks |> List.rev |> deleteLeadingENDLINEs) |> Some\r\n\r\n/// match lists\r\nlet (|PickoutList|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | ASTERISK:: WHITESPACE _:: _ | MINUS:: WHITESPACE _:: _ // unordered list\r\n | NUMBER _:: DOT:: WHITESPACE _:: _ -> // ordered list\r\n match toks with\r\n | PickoutParagraph result -> Some result\r\n | _ -> None\r\n | _ -> None\r\n\r\n\r\nlet (|MatchTemplate|_|) strongOrEmOrBoth toks =\r\n let (asteriskFormatter, underscoreFormatter) =\r\n match strongOrEmOrBoth with\r\n | STRONG -> DASTERISK, DUNDERSCORE\r\n | EM -> ASTERISK, UNDERSCORE\r\n | SEM -> TASTERISK, TUNDERSCORE\r\n | STRIKE -> DTILDE, DTILDE\r\n let attachInlineEle front back = Option.map (fun (x,y) -> x,y,front,back)\r\n match toks with\r\n | WHITESPACE _:: whatSym:: WHITESPACE _:: _ when whatSym=underscoreFormatter -> None // not em\r\n | WHITESPACE frontWhite:: whatSym:: potential when whatSym=underscoreFormatter ->\r\n let frontLiteral = String.replicate frontWhite \" \" |> Literal |> FrmtedString |> Some\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: whatSym:: WHITESPACE _:: rtks when whatSym=underscoreFormatter -> // keep finding\r\n endFinder (List.append content toks.[0..2]) rtks\r\n | _:: whatSym:: WHITESPACE backWhite:: rtks when whatSym=underscoreFormatter ->\r\n let backLiteral = String.replicate backWhite \" \" |> Literal |> FrmtedString |> Some\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle frontLiteral backLiteral\r\n | _::[whatSym] when whatSym=underscoreFormatter ->\r\n (List.append content [List.head toks], [])\r\n |> Some\r\n |> attachInlineEle frontLiteral None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | whatSym:: WHITESPACE _:: _ when whatSym=asteriskFormatter -> None // not asterisk em\r\n | whatSym:: potential when whatSym=asteriskFormatter ->\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: whatSym:: rtks when whatSym=asteriskFormatter -> // keep finding\r\n endFinder (List.append content toks.[0..1]) rtks\r\n | _:: whatSym:: rtks when whatSym=asteriskFormatter ->\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle None None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | _ -> None\r\n\r\n\r\n/// match underscore and asterisk emphasis start squence\r\n/// match underscore and asterisk emphasis end sequence\r\n/// return content of emphasis, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` _i_`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchEm|_|) toks =\r\n match toks with\r\n | MatchTemplate EM result -> Some result\r\n | _ -> None\r\n\r\n/// match underscore and asterisk strong start squence\r\n/// match underscore and asterisk strong end sequence\r\n/// return content of strong, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` __i__`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchStrong|_|) toks =\r\n match toks with\r\n | MatchTemplate STRONG result -> Some result\r\n | _ -> None\r\n\r\nlet (|MatchStrongAndEm|_|) toks =\r\n match toks with\r\n | MatchTemplate SEM result -> Some result\r\n | _ -> None\r\n\r\nlet (|MatchStrike|_|) toks =\r\n match toks with\r\n | MatchTemplate STRIKE result -> Some result\r\n | _ -> None\r\n\r\n/// match new paragraph sequence\r\n/// return Token list after EDNLINEs\r\nlet (|MatchNewParagraph|_|) toks =\r\n match countNewLines toks with\r\n | n when n>=2 -> toks.[n..] |> Some\r\n | _ -> None\r\n\r\n/// turn head Token into string\r\n/// return head Token string and tail Token list\r\nlet (|MatchMapTok|_|) = function\r\n | tok:: toks -> (mapTok tok, toks) |> Some\r\n | _ -> None\r\n\r\n/// match hashes\r\n/// returns no of hashes, the first non-WHITESPACE token list\r\n/// and the tokens in next lines\r\nlet (|MatchHeader|_|) toks =\r\n let rec countHashes n tks =\r\n match tks with\r\n | HASH:: tks' -> countHashes (n+1) tks'\r\n | _ -> n\r\n match countHashes 0 toks with\r\n | no when no > 0 ->\r\n match toks.[no..] with\r\n | WHITESPACE _ :: toks' ->\r\n toks'|> cutFirstLine\r\n |> (fun (f,s) -> no, f,s)\r\n |> Some // omit whitespace\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// match quote\r\nlet (|MatchQuote|_|) toks =\r\n match toks with\r\n | RABRA:: rtks ->\r\n rtks\r\n |> cutFirstLine\r\n |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence w/o spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchList|_|) toks =\r\n match toks with\r\n | NUMBER no:: DOT:: WHITESPACE _:: toks' -> (OL (no|>int), toks') |> Some\r\n | ASTERISK:: WHITESPACE _:: toks' -> (UL, toks') |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence with optional spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchListOpSpace|_|) toks =\r\n match toks with\r\n | WHITESPACE _:: MatchList content -> content |> Some\r\n | MatchList content -> content |> Some\r\n | _ -> None\r\n\r\n/// return the next line\r\n/// next line is seperated by 1 ENDLINE\r\nlet (|MatchTableHead|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match line with\r\n | [] -> None\r\n | _ -> rtks |> Some\r\n\r\n/// take one PIPE\r\n/// return the rest |> Some\r\n/// otherwise, None\r\nlet pipeMatch oToks =\r\n oToks\r\n |> Option.bind (fun toks ->\r\n match toks with\r\n | PIPE:: rtks -> Some rtks\r\n | _ -> None )\r\n\r\n/// take all leading subsequent MINUSes\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet minusMatch oToks =\r\n let takeAwayMinuses toks =\r\n let rec takeAwayMinuses' n toks =\r\n match toks with\r\n | MINUS:: rtks -> takeAwayMinuses' (n+1) rtks\r\n | _ -> n, toks\r\n takeAwayMinuses' 0 toks\r\n oToks\r\n |> Option.bind (fun toks ->\r\n let n, rtks = toks |> takeAwayMinuses \r\n if n>0 then\r\n Some rtks\r\n else\r\n None\r\n )\r\n\r\n/// match the table formater line\r\n/// the table formater is usually the second line of a table\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet (|MatchTableFormater|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match (countPipes line, countMinus line) with\r\n | (p,m) when p>0 && m>2 -> Some(rtks)\r\n | _ -> None\r\n\r\n/// match link\r\nlet (|MatchLink|_|) toks =\r\n let returnWhenRSBRALBRA toks =\r\n let rec concrete (content, toks) =\r\n match toks with\r\n | [] -> None\r\n | RSBRA::LBRA::rtks -> (List.rev content, rtks) |> Some\r\n | _ -> (List.head toks::content, List.tail toks) |> concrete\r\n concrete ([], toks)\r\n let returnWhenRBRA toks =\r\n let rec whatName (content, toks) =\r\n match toks with\r\n | [] -> None\r\n | RBRA::rtks -> (List.rev content, rtks) |> Some\r\n | _ -> (List.head toks::content, List.tail toks) |> whatName\r\n whatName ([], toks)\r\n match toks with\r\n | LSBRA::rtks ->\r\n match returnWhenRSBRALBRA rtks with\r\n | Some (hyperTextToks, remains) ->\r\n match returnWhenRBRA remains with\r\n | Some (urlToks, retoks) ->\r\n (hyperTextToks, urlToks, retoks) |> Some\r\n | None -> None\r\n | None -> None\r\n | _ -> None\r\n\r\n\r\n/// cut Tokens into Token list list for Table parsing\r\n/// terminates when [] or two continuous ENDLINEs\r\n/// return Token list list,\r\n/// remaining Token list\r\nlet cutTableRows toks =\r\n let rec cutTableRow' rows toks =\r\n match toks with\r\n | ENDLINE:: rtks -> rows |> List.rev, rtks // one endline followed by another\r\n | [] -> rows |> List.rev, []\r\n | _ ->\r\n let row, rtks = cutFirstLine toks\r\n cutTableRow' (row::rows) rtks\r\n cutTableRow' [] toks\r\n\r\n/// parse inline text, including links and pictures, terminates when nothing left\r\nlet parseInLineElements2 refLst toks =\r\n let attachInlineEle front back ele =\r\n [front;ele;back]\r\n\r\n let chooseRef refId refs =\r\n match refs with\r\n | [] ->\r\n let msg = sprintf \"[Reference: %A not found!]\" refId\r\n msg |> globLog.Info (Some 200) |> ignore\r\n msg |> Error\r\n | [exactlyOne] -> exactlyOne |> Ok\r\n | moreThanOne ->\r\n let msg = sprintf \"Reference: %A occurred more than once in reference list, take the first one.\" refId\r\n msg |> globLog.Info (Some 200) |> ignore\r\n List.head moreThanOne |> Ok\r\n /// find footnote in reference list, which contains both footnote and citation\r\n /// returns error msg if foot is not found\r\n /// returns first footnote if more than 1 is found\r\n let findFN fnId refList =\r\n let filterFN fnId refList =\r\n let fnFilter ref =\r\n match ref with\r\n | Footnote (id, _) when id=fnId -> true\r\n | _ -> false\r\n List.filter fnFilter refList\r\n filterFN fnId refList\r\n |> chooseRef fnId\r\n /// find citation in reference list, which contains both footnote and citation\r\n /// returns error msg if foot is not found\r\n /// returns first citation if more than 1 is found\r\n let findCite citeId refList =\r\n let filterCite fnId refList =\r\n let citeFilter ref =\r\n match ref with\r\n | Citation (id, _, _) when id=fnId -> true\r\n | _ -> false\r\n List.filter citeFilter refList\r\n filterCite citeId refList\r\n |> chooseRef citeId\r\n let genFormat (currentLine, inlineContent, frontLiteral, backLiteral) =\r\n match frontLiteral, backLiteral with\r\n | Some fl, Some bl ->\r\n [bl;inlineContent;fl]\r\n | Some fl, None ->\r\n [inlineContent;fl]\r\n | None, Some bl ->\r\n [bl;inlineContent]\r\n | None, None ->\r\n [inlineContent]\r\n |> (fun x -> x@currentLine)\r\n let makeList x = [x]\r\n let rec parseInLineElements' ftLst currentLine toks =\r\n let styleHelper style (content, rtks, frontLiteral, backLiteral) = \r\n let inlineContent = (parseInLines [] content |> style |> FrmtedString)\r\n genFormat (currentLine, inlineContent, frontLiteral, backLiteral), rtks\r\n\r\n match toks with\r\n | MatchSym BACKTICK (content, rtks) -> (content|> strAllToks|> Code|> FrmtedString )::currentLine, rtks\r\n | MatchStrongAndEm (content, rtks, frontLiteral, backLiteral) ->\r\n let inlineContent = (parseInLines [] content |> Strong |> FrmtedString |> makeList |> Emphasis |> FrmtedString)\r\n genFormat (currentLine, inlineContent, frontLiteral, backLiteral), rtks\r\n | MatchStrong (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Strong (content, rtks, frontLiteral, backLiteral)\r\n | MatchEm (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Emphasis (content, rtks, frontLiteral, backLiteral)\r\n | MatchStrike (content, rtks, frontLiteral, backLiteral) ->\r\n styleHelper Strike (content, rtks, frontLiteral, backLiteral)\r\n | MatchLink (hyperTextToks, urlToks, rtks) ->\r\n let hyperText = parseInLines [] hyperTextToks |> Line\r\n let url = strAllToks urlToks\r\n [(hyperText, url) |> Link]@currentLine, rtks\r\n | EXCLAMATION:: MatchLink (hyperTextToks, urlToks, rtks) ->\r\n let hyperText = hyperTextToks |> strAllToks\r\n let url = strAllToks urlToks\r\n [(hyperText, url) |> Picture]@currentLine, rtks\r\n | FOOTNOTE i :: rtks ->\r\n let idStr = string i\r\n match findFN i ftLst with\r\n | Ok _ -> // ok if found at least one reference in refLst\r\n [(Literal idStr, idStr) |> InlineFootnote]@currentLine, rtks\r\n | Error msg -> // error if no reference is found in refLst\r\n [msg |> Literal |> FrmtedString]@currentLine, rtks\r\n | CITATION str :: rtks ->\r\n match findCite str ftLst with\r\n | Ok ref -> // ok if found at least one reference in refLst\r\n match ref with\r\n | Citation (id, hyperText, _) -> [(hyperText, id) |> InlineCitation]@currentLine, rtks\r\n | _ -> failwith \"non-citation in citation list\"\r\n | Error msg -> // error if no reference is found in refLst\r\n [msg |> Literal |> FrmtedString]@currentLine, rtks\r\n | _ ->\r\n let str = mapTok toks.[0]\r\n FrmtedString (Literal str)::currentLine, xOnwards 1 toks\r\n and parseInLines currentLine toks =\r\n match toks with\r\n | [] -> []\r\n | _ ->\r\n let (newLine, retoks) = parseInLineElements' refLst currentLine toks\r\n match retoks with\r\n | [] -> newLine |> List.rev\r\n | _ ->\r\n parseInLines newLine retoks\r\n |> combineLiterals\r\n parseInLines [] toks\r\n\r\nlet parseInLineElements toks = parseInLineElements2 [] toks\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/ParserHelperFuncs.fs","module MarkalcShared\r\nopen Types\r\nopen System.Text.RegularExpressions\r\nopen Logger\r\n\r\ntype CellReference = \r\n RowCol of Row:uint32*Col:uint32\r\n\r\ntype Operand =\r\n | CellRef of CellReference\r\n | Integer of int\r\n | Float of float\r\n\r\ntype Expr =\r\n | BinExp of (float->float->float)*Expr*Expr\r\n | Op of Operand\r\n | CommaFunction of string*(Expr list)\r\n\r\ntype TExpr = DPExp of Expr*int\r\nlet whitespaceFilter lst = List.filter (function | WHITESPACE(_) -> false | _ -> true) lst\r\n// Count number of delim in token list\r\nlet countDelim delim tokList =\r\n List.filter (function | d when d = delim -> true | _ -> false) tokList \r\n |> List.length\r\n\r\n// return everything before and after the first/last delimeter searched for, error if delim not found\r\nlet delimSplit last delim t =\r\n let rec delimSplitFirst' delim before t =\r\n match t with\r\n | d :: after when d = delim -> Ok (before,after) // If delim then token list, return d and everything after the delim\r\n | x :: after -> delimSplitFirst' delim (x::before) after // If non-PIPE token then token list, recurse adding the tokens to the before list\r\n | [] -> Error (before,[]) // Did not find delimeter\r\n let rec delimSplitLast' delim before t =\r\n match (t, countDelim delim t) with\r\n | d :: after,1 when d = delim -> Ok (before,after)\r\n | x :: after,_ -> delimSplitLast' delim (x::before) after\r\n | [],_ -> Error (before,[])\r\n let searchFunc = if last then delimSplitLast' else delimSplitFirst'\r\n searchFunc delim [] t\r\n |> function\r\n | Error(before,a) -> Error(List.rev before,a)\r\n | Ok (before,a) -> Ok(List.rev before,a)\r\n\r\n/// Helper function to copy a list i times\r\nlet rec listCopies i lst =\r\n match i with\r\n | 1 -> lst\r\n | 0 -> []\r\n | x when x < 0 -> failwithf \"Negative argument: %A\" x\r\n | _ -> lst @ (listCopies (i-1) lst)\r\n\r\nlet unfoldTuple3 func (a,b,c) =\r\n func a b c\r\n\r\n// Take in two cell refs and return a list of all refs inbetween or None if invalid e.g. diagonal\r\nlet cellRange (p1,p2) = \r\n match (p1,p2) with\r\n | (RowCol(p1r,p1c),RowCol(p2r,p2c)) ->\r\n let genList a b = if a<b then [a..b] else [b..a]\r\n match p1r = p2r, p1c = p2c with\r\n | true,true -> Some [RowCol (p1r,p1c)]\r\n | true,false -> (List.map ((fun i -> (p1r,i)) >> RowCol) (genList p1c p2c)) |> Some\r\n | false,true -> (List.map ((fun i -> (i,p1c)) >> RowCol) (genList p1r p2r)) |> Some\r\n | false,false -> None\r\n\r\n// Quick parser to generate tokenise string one row at a time\r\nlet simpleLex txt = \r\n let (|RegexMatch|_|) r txt =\r\n let m = Regex.Match (txt,\"^\"+r)\r\n match m.Success with\r\n | true -> (m.Value, txt.Substring(m.Value.Length)) |> Some\r\n | false -> None\r\n let rec simpleLex' a txt =\r\n match txt with\r\n // Whitespace\r\n | RegexMatch \"[\\\\s]+\" (m,after) -> simpleLex' (WHITESPACE(m.Length)::a) after\r\n // Contents for expression evaluation\r\n | RegexMatch \"[0-9]+\" (m,after) -> simpleLex' (NUMBER(m)::a) after\r\n | RegexMatch \"\\\\^\" (_,after) -> simpleLex' (CARET::a) after\r\n | RegexMatch \"\\\\%\" (_,after) -> simpleLex' (PERCENT::a) after\r\n | RegexMatch \"\\\\*\" (_,after) -> simpleLex' (ASTERISK::a) after\r\n | RegexMatch \"\\\\/\" (_,after) -> simpleLex' (SLASH::a) after\r\n | RegexMatch \"\\\\+\" (_,after) -> simpleLex' (PLUS::a) after\r\n | RegexMatch \"\\\\-\" (_,after) -> simpleLex' (MINUS::a) after\r\n | RegexMatch \"\\\\(\" (_,after) -> simpleLex' (LBRA::a) after\r\n | RegexMatch \"\\\\)\" (_,after) -> simpleLex' (RBRA::a) after\r\n | RegexMatch \"\\\\[\" (_,after) -> simpleLex' (LSBRA::a) after\r\n | RegexMatch \"\\\\]\" (_,after) -> simpleLex' (RSBRA::a) after\r\n | RegexMatch \"\\\\=\" (_,after) -> simpleLex' (EQUAL::a) after\r\n | RegexMatch \"\\\\.\" (_,after) -> simpleLex' (DOT::a) after\r\n | RegexMatch \"\\\\,\" (_,after) -> simpleLex' (COMMA::a) after\r\n | RegexMatch \"\\\\{\" (_,after) -> simpleLex' (LCBRA::a) after\r\n | RegexMatch \"\\\\}\" (_,after) -> simpleLex' (RCBRA::a) after\r\n // Contents for table recognition\r\n | RegexMatch \"[a-zA-z]+[0-9]*( [a-zA-z]+[0-9]*)*\" (m,after) -> simpleLex' (LITERAL(m)::a) after\r\n | RegexMatch \"\\\\|\" (_,after) -> simpleLex' (PIPE::a) after\r\n | RegexMatch \"\\\\:\" (_,after) -> simpleLex' (COLON::a) after\r\n | RegexMatch \"\\\\;\" (_,after) -> simpleLex' (SEMICOLON::a) after\r\n | \"\" -> a\r\n | _ -> failwithf \"Unexpected character: %A\" txt\r\n simpleLex' [] txt |> List.rev\r\n\r\n// Experimental Lexr for tokenising from entire table string\r\n// let stringLex (txt:string)=\r\n// List.map simpleLex (Array.toList (txt.Split(\"\\n\")))\r\nlet lexY (x,y,z) = x,y|>simpleLex,z\r\nlet round (dp:int) (f:float) =\r\n System.Math.Round(f,dp)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/MarkalcShared.fs","module LexerShared\r\nopen System.Text.RegularExpressions\r\n\r\n// --------------------------------------------------\r\n// Helpers\r\n// --------------------------------------------------\r\n\r\n/// Take the first element of a tuple of size 3\r\nlet takeFirst (a, _, _) = a\r\n\r\n/// Match a regular expression Return Some (m,grps) where m is the match string,\r\n/// grps is the list of match groups (if any) return None on no match\r\nlet strRegexMatch (regex: string) (str: string) =\r\n let m = Regex(regex).Match(str)\r\n if m.Success\r\n then\r\n let mLst = [ for x in m.Groups -> x.Value ]\r\n Some (List.head mLst, List.tail mLst)\r\n else None\r\n\r\n/// Checks if a string starts with another string\r\nlet strStartsWith (value: string) (str: string) =\r\n str.StartsWith(value)\r\n\r\n/// Convert a single character to a string\r\nlet toString (c: char) =\r\n System.String.Concat [c]\r\n\r\n/// Replace a every occurence of one string in the string s by another\r\nlet strReplace (o: string) (n: string) (s: string) =\r\n s.Replace(o, n)\r\n\r\n// --------------------------------------------------\r\n// Shared\r\n// --------------------------------------------------\r\n\r\n/// Active Pattern to match a string with a regex pattern, returns the matched string\r\n/// together with the groups in a list and the rest of the string\r\nlet (|RegexMatch|_|) regex str =\r\n match strRegexMatch regex str with\r\n | None -> None\r\n | Some (m, grp) ->\r\n let lchar = String.length m\r\n Some (m, grp, str.[lchar..])\r\n\r\n/// Create a regular expression for a literal that matches everything except the\r\n/// characters defined in charList\r\nlet literalString charList =\r\n\r\n /// Escapes every special regex character in a string given to it\r\n let addEscape (c, _) =\r\n [\"\\\\\"; \".\"; \"^\"; \"$\"; \"*\"; \"+\"; \"-\"; \"?\"; \"(\"; \")\"; \"[\"; \"]\"; \"{\"; \"}\"; \"|\"; \"/\"]\r\n |> List.fold (fun st n -> strReplace n (\"\\\\\"+n) st) c\r\n\r\n charList\r\n |> List.map (addEscape >> (fun a -> a+\"|\"))\r\n |> List.fold (+) \"\"\r\n |> (fun c -> \"^.+?(?=\\\\s|\"+c+\"$)\")\r\n\r\n/// Tests if a string starts with any of the characters in charList,\r\n/// and returns the match after passing it through the retLastMatch\r\n/// function, that will be used in a fold operation with None as a starting\r\n/// value\r\nlet (|CharMatch|_|) retLastMatch a charList (str: string) =\r\n let testStartWith (c, t) =\r\n let ch = a + c\r\n strStartsWith ch str, ch, t\r\n List.map testStartWith charList\r\n |> List.fold retLastMatch None\r\n\r\n/// Checks if a string starts with a character defined in charList, and returns the DU value\r\n/// associated with it\r\nlet (|Character|_|) charList (str: string) =\r\n let retLastMatch i = function\r\n | true, c, t -> Some (t, str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\" charList str\r\n\r\n/// Checks if a string starts with an escaped char of any character in charList, and returns it\r\n/// by passing the text of the last matched value to a constructor 'tType'\r\nlet (|EscapedChar|_|) tType charList (str: string) =\r\n let retLastMatch i = function\r\n | true, (c: string), _ -> Some (tType c.[1..], str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\\\\\" charList str\r\n\r\n/// Match a single group with a regex\r\nlet (|GroupMatch|_|) str = function\r\n | RegexMatch str (m, [t], r) -> Some t\r\n | _ -> None\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/LexerShared.fs","module Main\r\nopen Types\r\nopen FMark\r\n\r\nlet processMarkdownString fileDir str =\r\n str\r\n |> Array.toList\r\n |> processString fileDir HTML\r\n\n\n\n// WEBPACK FOOTER //\n// src/FMarkFable/FMarkFable.fs","module FMark\r\n\r\nopen Types\r\n\r\nlet preLexParse dir = \r\n Preprocessor.preprocessListWithDir dir\r\n >> Lexer.lexList\r\n >> Parser.parse\r\n\r\nlet processString' dir formatFunc =\r\n preLexParse dir >> Result.map formatFunc\r\n\r\nlet processString dir format =\r\n match format with\r\n | HTML -> processString' dir (fun x -> HTMLGen.genHTML (dir,x))\r\n | Markdown -> processString' dir MarkdownGen.mdBody\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FMark.fs","module Parser\r\nopen Types\r\nopen Shared\r\nopen ParserHelperFuncs\r\nopen TOCite\r\nopen Logger\r\n\r\n// helper functions\r\n\r\n\r\n/// parse inline code\r\nlet rec parseCode toks =\r\n match toks with\r\n | BACKTICK::_ -> (\"\", toks.[1..]) |> Ok\r\n | tok::toks' ->\r\n parseCode toks'\r\n |> Result.map (fun (str, tks) ->\r\n mapTok tok + str, tks )\r\n | e -> globLog.Warn None (sprintf \"%A\" e)\r\n (\"\\\\`\", xOnwards 1 toks) |> Ok\r\n\r\n\r\n/// parse a paragraph which counts for contents in `<p>`\r\n/// parseParagraph eats 2>= ENDLINEs\r\nlet parseParagraph ftLst toks =\r\n let parseParagraph' lines tokLine = (parseInLineElements2 ftLst tokLine) :: lines\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> List.fold parseParagraph' []\r\n |> List.rev\r\n |> Paragraph\r\n\r\n/// match table start sequence\r\n/// return table rows, terminates when [] or two continuous ENDLINEs\r\n/// start sequence:\r\n/// something in first line, at least one '|' and three '-' in second line\r\nlet (|MatchTable|_|) toks =\r\n // transform table rows into Table or Pretable depending if valid table.\r\n let tableTransform (rows,rtks) =\r\n rows |> Markalc.parseEvaluateTable\r\n |> function\r\n | Ok(rows) -> \r\n let toPCellList (cell:Cell) = \r\n let toks,head,align = (cell.GetParams) \r\n let pCellLine = toks |> parseInLineElements\r\n CellLine(pCellLine,head,align)\r\n let toPRow row = \r\n let clst, rHead = row |> function | Cells(clst',rHead') -> clst',rHead'\r\n PCells(List.map toPCellList clst, rHead)// Create PRows\r\n // For each row, unpack into Cell list\r\n (List.map toPRow rows |> Table,rtks) |> Some\r\n | Error(_)-> None\r\n match toks with\r\n | MatchTableHead rtks ->\r\n match rtks with\r\n | MatchTableFormater _ -> cutTableRows toks |> tableTransform\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// strip header to a minimal string for id purposes\r\nlet headerIDGen id hd =\r\n let hdLine = hd.HeaderName\r\n let rec headerIDGen' hdLine =\r\n match hdLine with\r\n | FrmtedString (Literal a)::tl -> a + headerIDGen' tl\r\n | FrmtedString (Emphasis a)::tl -> (headerIDGen' a) + (headerIDGen' tl)\r\n | _ -> \"\"\r\n (headerIDGen' hdLine |> replaceChars \"\\ \" \"_\") + string id\r\n/// parse list\r\nlet parseList toks =\r\n // call itself if list item has a higher level\r\n // return if list item has lower level\r\n let ignoreError result = match result with | Ok x -> x | Error x -> x\r\n let takeAwayWhiteSpaces toks =\r\n match toks with\r\n | WHITESPACE n:: rtks -> (n/2, rtks)\r\n | _ -> (0, toks)\r\n let excludeSelfSkip x = match x with | None -> None | Some 1 -> None | Some n -> Some (n-1)\r\n /// return list type, list level, and list content\r\n let (|GetLIContent|_|) toks =\r\n // return list level and remaining toks\r\n let (level, retoks) = takeAwayWhiteSpaces toks\r\n match retoks with\r\n | ASTERISK:: WHITESPACE _:: _ | MINUS:: WHITESPACE _:: _ -> // unordered list\r\n (UL, level, xOnwards 2 retoks) |> Some\r\n | NUMBER no:: DOT:: WHITESPACE _:: _ -> // ordered list\r\n (OL (no|>int), level, xOnwards 3 retoks) |> Some\r\n | _ -> None\r\n\r\n let getLIContent toks =\r\n match toks with\r\n | GetLIContent result -> result |> Ok\r\n | _ ->\r\n let (level, retoks) = takeAwayWhiteSpaces toks\r\n (UL, level, retoks) |> Error\r\n\r\n /// get all list items in current item level and sub lists\r\n let rec getCurrentList level listItems lines =\r\n match lines with\r\n | line:: reLines ->\r\n match line |> getLIContent |> ignoreError with\r\n | (_, liLevel, _) when liLevel >= level -> // list item and sub list item\r\n getCurrentList level (line::listItems) reLines\r\n | _ -> listItems |> List.rev\r\n | [] -> listItems |> List.rev\r\n\r\n let rec parseList' level lines =\r\n let (listType, depth, _) =\r\n match List.head lines |> getLIContent with\r\n | Ok result -> result\r\n | Error result ->\r\n globLog.Warn (Some 100) \"invalid list item, line does not begin with [*;-;number]\\ndefault to UL\"\r\n result\r\n let listFolder (currentLv, listItems, (skipNo: int option), currentLine) line =\r\n match skipNo with\r\n | None ->\r\n match line |> getLIContent |> ignoreError with\r\n | (_, level, content) when level=currentLv ->\r\n let tLine = content |> parseInLineElements\r\n (currentLv, StringItem(tLine)::listItems, None, currentLine+1)\r\n | (_, level, _) when level>currentLv ->\r\n let (listItem, skip) =\r\n xOnwards currentLine lines\r\n |> getCurrentList (currentLv+1) []\r\n |> parseList' (currentLv+1)\r\n (currentLv, NestedList(listItem)::listItems, skip |> excludeSelfSkip, currentLine+1)\r\n | _ -> failwith \"list item level < current level, not possible\"\r\n | Some skip ->\r\n match skip with\r\n | 1 -> (currentLv, listItems, None, currentLine+1)\r\n | n when n>1 -> (currentLv, listItems, Some (n-1), currentLine+1)\r\n | _ -> failwith \"negative or zero skip number, not possible\"\r\n List.fold listFolder (level, [], None, 0) lines\r\n |> (fun (_, lis, _, _) ->\r\n let doSkip =\r\n match List.length lines with\r\n | 0 -> None\r\n | n -> Some n\r\n {ListType=listType; ListItem=lis |> List.rev; Depth=depth}, doSkip)\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> parseList' 0\r\n |> fst\r\n\r\n\r\n/// Match TOC token\r\n/// match \"%%TOC\"\r\nlet (|MatchTOC|_|) hdList toks =\r\n let createLinks (hdList:THeader list) =\r\n let makeRelLink i (h:THeader) =\r\n let linkText = Line(h.HeaderName)\r\n let linkID = headerIDGen i hdList.[i]\r\n {h with HeaderName = [Link (linkText, sprintf \"#%s\" linkID)]}\r\n //{h with HeaderName = Link((h.HeaderName), sprintf \"#HEADER%i\" i)} // Link of HyperText: TFrmtedString * URL: string\r\n let linksLst = List.mapi makeRelLink hdList\r\n {HeaderLst=linksLst}\r\n let filterHeadersByDepth depthOption hdList =\r\n match depthOption with\r\n | Some d ->\r\n let headerFilter hd =\r\n hd.Level <= d\r\n List.filter headerFilter hdList\r\n | None -> hdList\r\n\r\n let filterHeadersByName hdExListOption hdList =\r\n match hdExListOption with\r\n | Some hdExList ->\r\n let filterOutHeaders hdList hdToExclude =\r\n let hdTLine = hdToExclude |> parseInLineElements\r\n let headerFilter hd =\r\n hd.HeaderName <> hdTLine\r\n List.filter headerFilter hdList\r\n List.fold filterOutHeaders hdList hdExList\r\n | None -> hdList\r\n\r\n let splitToksAt sep toks : Token list list =\r\n let rec split (toksList, toks) =\r\n match toks with\r\n | [] ->\r\n // delete empty list\r\n match toksList with\r\n | []::retoksList -> retoksList\r\n | _ -> toksList\r\n |> List.rev\r\n | sym::rtks when sym=sep ->\r\n (\r\n []::toksList, rtks )\r\n |> split\r\n | tok::rtks ->\r\n (\r\n (tok::(List.head toksList))::(List.tail toksList), rtks )\r\n |> split\r\n split ([[]], toks)\r\n |> List.map List.rev\r\n\r\n\r\n let trimWhitespaces toks =\r\n let rec trimer toks =\r\n match toks with\r\n | WHITESPACE _::retoks -> trimer retoks\r\n | _ -> toks\r\n toks\r\n |> trimer\r\n |> List.rev\r\n |> trimer\r\n |> List.rev\r\n\r\n /// (maxDepth option, hdExList option)\r\n let parseTOCparameters toks =\r\n let parmFields = splitToksAt COMMA toks\r\n let (|MatchRSBRA|_|) toks =\r\n let rec matcher (pToks, toks) =\r\n match toks with\r\n | [] -> None\r\n | RSBRA::_ -> pToks |> List.rev |> Some\r\n | tk::rst -> (tk::pToks, rst) |> matcher\r\n matcher ([], toks)\r\n let parmsFolder (maxDepth, hdExList) parm =\r\n match parm |> trimWhitespaces with\r\n | LITERAL\"depth\"::EQUAL::NUMBER noStr::_ ->\r\n noStr |> int |> Some, hdExList\r\n | LITERAL\"excludes\"::EQUAL::LSBRA::rst ->\r\n let newHdExList =\r\n match rst with\r\n | MatchRSBRA exList ->\r\n exList\r\n |> splitToksAt SEMICOLON\r\n |> List.map (fun x -> x |> trimWhitespaces)\r\n |> Some\r\n | _ -> None\r\n maxDepth, newHdExList\r\n | _ -> maxDepth, hdExList\r\n // state: (maxDepth, hdExList)\r\n List.fold parmsFolder (None, None) parmFields\r\n\r\n\r\n\r\n match toks with\r\n //| PERCENT::PERCENT::LITERAL(\"TOC\")::// Options\r\n // | PERCENT::PERCENT::LITERAL(\"TOC\")::WHITESPACE _::LITERAL\"depth\"::EQUAL::NUMBER noStr::rst ->\r\n // // filter out headers with level > depth\r\n // // ignore the rest tokens in this line\r\n // let depth = noStr|>int\r\n // (\r\n // hdList\r\n // |>filterHeaders depth\r\n // |> createLinks\r\n // ,\r\n // rst|>cutFirstLine|>snd\r\n // ) |> Some\r\n | PERCENT::PERCENT::LITERAL(\"TOC\")::rst ->\r\n let (tocLine, retoks) = rst|>cutFirstLine\r\n let (maxDepth, hdExList) = parseTOCparameters tocLine\r\n (\r\n hdList\r\n |> filterHeadersByDepth maxDepth\r\n |> filterHeadersByName hdExList\r\n |> createLinks\r\n ,retoks)\r\n |> Some\r\n | _ -> None\r\n\r\n/// parse supported `ParsedObj`s, turn them into a list\r\n/// assuming each item start at the beginning of the line\r\n/// the returned token head does not have 2>= ENDLINE\r\nlet rec parseItem (hdLst: THeader list) (ftLst: ParsedObj list) (rawToks: Token list) : Result<ParsedObj * Token list, string> =\r\n let toks = deleteLeadingENDLINEs rawToks\r\n match toks with\r\n | MatchTOC hdLst (toc,rtks) -> (ContentTable toc,rtks) |> Ok\r\n | CODEBLOCK (content, lang) :: toks' -> (CodeBlock(content, lang), toks') |> Ok\r\n | MatchTable (rows, rtks) -> (rows, rtks) |> Ok\r\n | MatchQuote (content, rtks) ->\r\n (parseInLineElements2 ftLst content |> Quote , rtks)\r\n |> Ok\r\n | HEADER i :: rtks -> (Header (hdLst.[i],(headerIDGen i hdLst.[i])), rtks) |> Ok\r\n | PickoutList (list, retoks) -> (parseList list |> List, retoks) |> Ok\r\n | PickoutParagraph (par, retoks) ->\r\n (parseParagraph ftLst par, retoks) |> Ok\r\n | _ -> sprintf \"Parse item did not match: %A\" toks |> removeChars [\"[\";\"]\"] |> Error\r\n\r\nand parseItemList hdLst ftLst toks : Result<ParsedObj list * option<Token list>, string> =\r\n match (List.isEmpty toks, not (List.exists (function | WHITESPACE(_) | ENDLINE -> false | _ -> true) toks)) with\r\n | (false,false) -> \r\n parseItem hdLst ftLst toks\r\n |> Result.bind (fun (pobj, re) ->\r\n match List.isEmpty re with\r\n | true -> ([pobj], None) |> Ok\r\n | false ->\r\n parseItemList hdLst ftLst re\r\n |> Result.map(fun (pobjs, re') ->\r\n pobj::pobjs, re' )\r\n )\r\n | _ -> ([], None) |> Ok // if tokens are only whitespace or endlines, return no parsedObjs\r\n\r\n\r\n/// top-level Parser, which the user should use\r\n/// `parse` will either return result monad with either `ParsedObj list` or a string of Error message.\r\n/// Unparsed Tokens will be in the returned in the Error message.\r\nlet parse toks =\r\n // insert two endlines at the beginning to make header in the first line work\r\n let (hds, refs, rtoks) = preParser (ENDLINE::ENDLINE::toks)\r\n parseItemList hds refs rtoks\r\n |> Result.bind (fun (pobjs, retoks) ->\r\n match retoks with\r\n | None -> pobjs |> Ok\r\n | Some retoks -> sprintf \"Some unparsed tokens: %A\" retoks |> Error)\r\n |> Result.map (fun pObjs -> List.append pObjs refs)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/Parser.fs","module Markalc\r\n\r\nopen Types\r\nopen Shared\r\nopen MarkalcShared\r\nopen Expression\r\nopen Logger\r\n\r\ntype MapContents =\r\n | MapTok of Cell\r\n | MapExp of TExpr * Cell\r\n\r\n// ################### HELPER FUNCTIONS ###################\r\n/// Return everything (before,after) the first PIPE token\r\nlet pipeSplit toks = \r\n delimSplit false PIPE toks\r\n// Turn float into token\r\nlet toToken x = NUMBER(x|>string)\r\n/// Transform Result<Ok,Error> list into Result<Ok list, Error>\r\nlet joinErrorList lst =\r\n // Filter the list\r\n let filt x = match x with\r\n | Error(_) -> true\r\n | Ok(_) -> false\r\n let unpackOks = function\r\n | Ok(x') -> x'\r\n | Error(y) -> sprintf \"After filtering, there were still Error monads in the list %A.\" y\r\n |> logPass (Some 27) globLog.Fatal\r\n |> failwith\r\n let combineErrors s x = match x with\r\n | Ok(_) -> s // This should never be matched in this usage.\r\n | Error(x') -> sprintf \"%A %A\" x' s |> Error\r\n match List.filter filt lst with\r\n | [] -> List.map unpackOks lst |> Ok // If the list is empty there are no errors\r\n | x -> List.fold combineErrors (Error \"\") x\r\n// Lift first argument to result world\r\nlet liftFirstArg func arg1 arg2 =\r\n match arg1 with\r\n | Ok(x) -> func x arg2 |> Ok\r\n | Error(x) -> Error x\r\n\r\n// ####################### CONSTRUCT CELL HELPERS ###################\r\nlet makeCellU header tokens = (tokens,header)\r\nlet defaultCellU = makeCellU false\r\nlet headCellU = makeCellU true\r\nlet alignCell alignment cellU = Contents (fst cellU, snd cellU, alignment)\r\n\r\n// ###################### PARSE TABLE ROWS #####################\r\n// Parse a line into a list of cells\r\nlet parsePipesD debug constructCell (row:Token list) =\r\n let parsePipesDebug line a b =\r\n if debug then\r\n sprintf \"Markalc/Parse PIPES:\\nBefore:%A\\nAfter:%A$\\n\" a b |> globLog.Debug (Some line)\r\n let rec parsePipes' a row =\r\n match pipeSplit row with\r\n | Ok([],[]) -> (constructCell []):: a\r\n | Ok([],after) -> parsePipesDebug 55 [] after \r\n parsePipes' ((constructCell [])::a) after // If before is empty and after is not, empty cell\r\n | Ok(before,[]) -> parsePipesDebug 57 before [] \r\n (constructCell before) :: a // If after is empty, add before and stop\r\n | Ok(before,after) -> parsePipesDebug 59 before after\r\n parsePipes' ((constructCell before) :: a) after\r\n | Error(_) -> if List.isEmpty row then a else (constructCell row)::a // If there is content, add it\r\n parsePipes' [] row\r\nlet parsePipes constructCell row = parsePipesD false constructCell row /// TOGGLE DEBUG MODE\r\n/// Parse an ordinary row\r\nlet parseRow constructCell row =\r\n let parseRow' = parsePipes constructCell\r\n // If its the first pipe and there's nothing before it, remove it\r\n match row with\r\n | PIPE :: row' -> parseRow' row'\r\n | row' -> parseRow' row'\r\n // If the list only contains one item, add an empty cell on the end (empty cells now added later on...)\r\n |> (fun x -> if List.length x = 1 then (constructCell[])::x else x) \r\n |> List.rev\r\nlet parseDefaultRow = parseRow defaultCellU\r\n/// Parse the second row of the table which defines number of columns and alignment\r\nlet parseAlignRow (row:Token list) = \r\n let parseAlignDebug line s =\r\n sprintf \"Markalc/parseAlignRow\\n%s$\" s |> logPass (Some line) globLog.Debug\r\n let getAlignment (toks: Token list) =\r\n let filt = function | COLON -> true | MINUS -> true | _ -> false \r\n // Check it has at least three dashes\r\n match (countDelim MINUS toks < 3, List.filter filt toks |> List.length <> List.length toks) with\r\n | (true,false) -> \"Less than 3 dashes for table format\" |> parseAlignDebug 83 |> Error \r\n | (false,true) -> sprintf \"Invalid characters in table format, expecting only : or - \\n%A\\n%A\" toks (List.filter filt toks) \r\n |> parseAlignDebug 84\r\n |> Error\r\n | (true,true) -> \"Less than 3 dashes for table format and invalid characters\" |> parseAlignDebug 87 |> Error \r\n | (false,false) ->\r\n match (List.rev toks, countDelim COLON toks) with\r\n | (COLON :: _, 2) when List.head toks = COLON -> Centre |> Ok\r\n | (COLON :: _, 1) -> Right |> Ok\r\n | (_,1) when List.head toks = COLON -> Left |> Ok\r\n | (_,0) -> NoAlign |> Ok\r\n | (_,x) -> sprintf \"\\':\\'s in wrong position %A, %A\" toks x |> parseAlignDebug 94 |> Error\r\n let parseAlign' = parsePipes getAlignment\r\n // Ignore the first pipe if there is nothing before it\r\n match whitespaceFilter row with\r\n | PIPE :: row' -> parseAlign' row'\r\n | row' -> parseAlign' row'\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// ################ BUSINESS END ###############\r\n/// Function which takes a parsed row (list of unalignedcells) and the list of alignments, and will create Cells\r\nlet alignCells' alignList (row:(Token list * bool) list * bool) =\r\n let cells = fst row\r\n let head = snd row\r\n let lengths = (List.length alignList, List.length cells)\r\n match (fst lengths - snd lengths) with\r\n | x when x > 0 -> cells @ (List.replicate x ([], head)) // If alignList longer than cells, fill in with blank cells\r\n | x when x < 0 -> cells.[0..((fst lengths)-1)]// If cells longer than alignList, ignore the extra cells\r\n | _ -> cells\r\n |> (List.zip alignList)\r\n |> List.map (fun (a,uc) -> alignCell a uc),head\r\n\r\nlet alignCells = liftFirstArg alignCells'\r\n/// Separate list of tokens into cells with alignment and header/not-header\r\nlet transformTable (table:Token list list) =\r\n // Deal with first two rows of format: header1 | header2 | header3\r\n // Second row tells us how many columns and correct alignment\r\n let alignments = table.[1] |> parseAlignRow\r\n // Specify header value true/false and make Row type from cellList\r\n let makeRow head cells = (cells,head)\r\n\r\n let header = List.head table \r\n |> parseRow headCellU \r\n |> makeRow true \r\n |> alignCells alignments \r\n |> (Result.map Cells)\r\n\r\n // Fold parse normal row for the rest of the table\r\n let parseAlignPrepend s x = (parseRow defaultCellU x \r\n |> makeRow false \r\n |> alignCells alignments \r\n |> (Result.map Cells)) :: s\r\n List.fold parseAlignPrepend [header] (xOnwards 2 table)\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// Try to evaluate expression, set maxRefs to number of CellRefs before assuming circular reference\r\nlet tryEval' maxRefs map e =\r\n // Evaluate expression\r\n let rec evalExp (e:TExpr) = \r\n let rec evalExp' r map (e:Expr) =\r\n // Evaluate cell reference\r\n let evalCellRef ref = \r\n match Map.tryFind ref map with\r\n | Some(MapExp(e2,_)) -> evalExp' (r+1) map (e2|>function|DPExp(e2',_)->e2') // Evaluating cell references\r\n | _ -> nan // invalid reference\r\n // Apply f over list of cell references between two cells\r\n let rangeFunc f x y = match cellRange (x,y) with\r\n | Some(l) -> f l\r\n | None -> nan\r\n if r > maxRefs then nan else // Return nan if too many recursive calls, probably circular reference\r\n match e with\r\n | BinExp(f,x,y) -> f (evalExp' r map x) (evalExp' r map y)\r\n | Op (Float(x)) -> x\r\n | Op (CellRef(ref)) -> evalCellRef ref\r\n | CommaFunction(\"SUM\",l) -> List.sumBy (evalExp' r map) l\r\n | CommaFunction(\"AVG\",l) -> List.averageBy (evalExp' r map) l\r\n | CommaFunction(\"MIN\",l) -> List.min (List.map (evalExp' r map) l)\r\n | CommaFunction(\"MAX\",l) -> List.max (List.map(evalExp' r map) l)\r\n | _ -> 11.0\r\n e |> function\r\n | DPExp(exp,dp) when dp < 0 -> evalExp' 0 map exp\r\n | DPExp(exp,dp) -> evalExp' 0 map exp |> round dp\r\n \r\n evalExp e\r\nlet tryEval = tryEval' 1000\r\n/// Evaluate all expressions inside a cell list list, leave non-expression cells as they are\r\n/// No invalid expressions should be matched.\r\nlet evaluateRowList (rowList:Row list) = \r\n // Infer Row header value from (List.head cellList) and create Row\r\n // cellList must not be empty, which is ensured by earlier code\r\n let inferRow (cellList:Cell list) = Cells(cellList, (List.head cellList).GetHead)\r\n // Iterate over table, snd s is current column number.\r\n let innerFold row (s:(CellReference*MapContents) list * uint32) (cell:Cell) =\r\n let cCol = snd s // current column\r\n let cCoord,cMap = RowCol(row,cCol),fst s // current coordinate and map\r\n match parseExpression (cell.GetToks) with\r\n | Ok(ex) -> (cCoord,MapExp (ex,cell)) :: cMap, cCol + 1u // Expression found, put it into the map!\r\n | Error(_) -> (cCoord,MapTok (cell)) :: cMap, cCol + 1u // No expression, ignore\r\n // fst s is current row, pass it through to inner fold\r\n let outerFold (s:uint32* ((CellReference*MapContents) list * uint32)) cells =\r\n let cRow,cMap = fst s, fst (snd s) // current row\r\n (cRow + 1u, List.fold (innerFold (cRow)) (cMap,0u) cells)\r\n let cellList = List.collect (function | Cells(l,_) -> [l]) rowList\r\n let rowLength = List.length (List.head cellList)\r\n List.fold outerFold (0u,([],0u)) cellList \r\n |> function \r\n | (_,(expRefList,_)) -> \r\n let expList = List.rev expRefList\r\n let map = Map.ofList expList\r\n // Iterate over list, evaluate expression for each MapExp then convert into Token list\r\n // convert MapContents from MapExp to MapTok (?)\r\n let expListEval = function\r\n | MapTok(c) -> c\r\n | MapExp(e,c) -> [tryEval map e |> toToken] |> (c.ReplaceTokens)\r\n List.map (snd >> expListEval) expList\r\n |> (Seq.chunkBySize rowLength) \r\n |> Seq.toList \r\n |> List.map (Array.toList>>inferRow)\r\n\r\n/// Top level function\r\n/// Parse tokens into cell list list with all Expressions evaluated.\r\n/// Return: Result(OK(Cell list list), Error(toks))\r\nlet parseEvaluateTable (toks:Token list list) = \r\n // Transform Token list list into Cell list list\r\n let endlFilt = function | ENDLINE -> false | _ -> true\r\n transformTable (List.map (List.filter endlFilt) toks)\r\n |> function\r\n | Error(e) -> sprintf \"Markalc/top\\nNot a table because of errors: %s\\nReturning unchanged tokens.$\" e |> globLog.Debug (Some 214)\r\n toks |> Error // If there are any errors just return the unchanged Token list list\r\n | Ok(x) -> evaluateRowList x |> Ok // Else return Ok and Cell list list\r\n\r\nlet lexParseEvaluate toks = \r\n List.map simpleLex toks\r\n |> parseEvaluateTable\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Markalc.fs","/// This module should parse tokens into an expression\r\nmodule Expression\r\n\r\nopen MarkalcShared\r\nopen Types\r\nopen Logger\r\n\r\n(* SUPPORTED OPERATIONS:\r\nBinaryExpressions (in order of precedence): \r\n % - Modulo\r\n ^ - To the power\r\n * - Multiply\r\n / - Divide\r\n + - Add\r\n - - Subtract\r\n*)\r\n// HELPER FUNCTIONS\r\nlet makeFloat i d = \r\n sprintf \"%A.%A\" i d |> float\r\nlet makeInt (i:string) =\r\n i |> int\r\nlet makeCellReference (row:string,col:string) =\r\n RowCol(row|>uint32,col|>uint32)\r\n// [row=3,col=2]\r\n// ]2=col,3=row[\r\n// [row=3,col=2] [3,42]\r\n/// EXPRESSION PARSER\r\nlet parseExp toks = \r\n let rec (|Expression|_|) (toks:Token list) =\r\n let (|NumberPat|_|) = function\r\n | NUMBER(i) :: DOT :: NUMBER(d) :: after -> (makeFloat i d, after) |> Some\r\n | NUMBER(i) :: after -> (makeInt i |> float, after) |> Some\r\n | _ -> None\r\n let rec (|CellRefPat|_|) = function\r\n | RSBRA :: NUMBER(col) :: COMMA :: NUMBER(row) :: LSBRA :: after \r\n -> ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: COMMA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> globLog.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: COMMA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> globLog.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | _ -> None\r\n let rec (|ExpressionList|_|) = function\r\n | Expression(exp,COMMA::ExpressionList(exps,after)) -> (exp::exps,after) |> Some\r\n | CellRefPat(x,COLON::CellRefPat(y,after)) -> cellRange (x,y) |> function\r\n | Some lst -> (List.map (CellRef >> Op) lst,after) |> Some\r\n | _ -> None\r\n | Expression(exp,after) -> ([exp],after) |> Some\r\n | _ -> None\r\n // DEFINE FUNCTIONS\r\n let funcConstruct funcname = function\r\n | RCBRA :: ExpressionList (lst,LCBRA::LITERAL(funcname)::after) ->\r\n (CommaFunction(funcname,lst),after) |> Some\r\n | _ -> None\r\n let (|Sum|_|) = funcConstruct \"SUM\"\r\n let (|Avg|_|) = funcConstruct \"AVG\"\r\n let (|Min|_|) = funcConstruct \"MIN\"\r\n let (|Max|_|) = funcConstruct \"MAX\"\r\n \r\n let (|FunctionPat|_|) = function\r\n | Sum (x,after) -> (x,after) |> Some\r\n | Avg (x,after) -> (x,after) |> Some\r\n | Min (x,after) -> (x,after) |> Some\r\n | Max (x,after) -> (x,after) |> Some\r\n | _ -> None\r\n\r\n let (|BasePat|_|) = function\r\n | NumberPat (x,after) -> (x |> Float |> Op,after) |> Some\r\n | FunctionPat (x,after) -> (x,after) |> Some\r\n // Parsing in reverse so right and left brackets swapped\r\n | CellRefPat (x,after) -> (x |> CellRef |> Op,after) |> Some\r\n | RBRA :: Expression (x,LBRA::after) -> (x,after) |> Some\r\n | _ -> None\r\n // Active pattern to construct precedence-aware active patterns; descends recursively until highest precedence match.\r\n // Quirk: Returns right-associative results, so parsing in reverse to get left-associativity.\r\n let rec (|HOFPat|_|) (|PrevPat|_|) op (t:Token) = function\r\n | PrevPat (exp1, after) -> \r\n match after with\r\n | x :: (HOFPat (|PrevPat|_|) op t (exp2, after')) when x = t -> \r\n (BinExp (op, exp2, exp1), after') |> Some // exp1 and exp2 swapped because parsing in reverse\r\n | _ -> (exp1, after) |> Some\r\n | _ -> None\r\n // Build precendence and normal binary operators\r\n let patPrecedence = [(%),PERCENT;( **),CARET;(*),ASTERISK;(/),SLASH;(-),MINUS;( + ),PLUS]\r\n let constructPatterns s x = ((|HOFPat|_|) (List.head s) (fst x) (snd x))::s\r\n let patterns = List.fold constructPatterns [(|BasePat|_|)] patPrecedence\r\n let (|FirstPat|_|) = List.head patterns\r\n\r\n // Unary operators, only negative number so far. Doesn't work.\r\n // let (|UnaryOperators|_|) = function\r\n // | FirstPat (exp1, after) ->\r\n // match after with\r\n // // Negative Numbers\r\n // | NumberPat(x,MINUS::after') -> (-x |> Float |> Op,after') |> Some\r\n // // ... Could have more patterns here.\r\n // | _ -> (exp1,after) |> Some\r\n // | _ -> None\r\n\r\n match toks with\r\n | FirstPat x -> Some x\r\n | _ -> None\r\n // Add other options to cells\r\n //let (|Option|_|) toks =\r\n // match toks with\r\n // | NUMBER(i)::COMMA::after -> // Number of decimal places\r\n // | NUMBER(i)::EQUAL::LITERAL(\"dp\")::COMMA::after -> // Number of decimal places\r\n\r\n match List.rev toks with \r\n | NUMBER(i)::COMMA::rest -> match rest with\r\n | Expression (exp,[]) -> (exp,i|>int) |> DPExp |> Ok\r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n | Expression (exp,[]) -> (exp,-1) |> DPExp |> Ok \r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n\r\nlet parseExpression toks = \r\n match toks with\r\n | EQUAL :: tail -> \r\n whitespaceFilter tail |> parseExp |> function\r\n | Error(e) -> Error toks\r\n | Ok(x) -> Ok x\r\n | toks -> Error toks\r\n\r\n// ################## TEST FUNCTIONS ####################\r\n// Recursively evaluate expression AST. CellRef will need access to whole table, this is used to test everything else\r\nlet evalExpTest (e:TExpr) =\r\n let rec evalExpTest' (e:Expr) = \r\n match e with\r\n | BinExp(f,x,y) -> f (evalExpTest'(x)) (evalExpTest'(y))\r\n | Op (Float(x)) -> x\r\n | _ -> 13.0\r\n match e with\r\n | DPExp(exp,dp) when dp < 0 -> evalExpTest' exp\r\n | DPExp(exp,dp) -> evalExpTest' exp |> round dp\r\n// Test evaluation without table\r\nlet parseExpTest (toks:Token list) =\r\n whitespaceFilter toks // Remove whitespace\r\n |> parseExp\r\n |> function\r\n | Error(e) -> printfn \"Error parsing expression: %A\" e\r\n Error toks \r\n | Ok(x) -> evalExpTest x |> Ok\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Expression.fs","// TODO does this perfectly match the .NET behavior ?\nexport function tryParse(s, radix, initial) {\n if (s != null && /\\S/.test(s)) {\n if (radix === 10) {\n const v = +s;\n if (!Number.isNaN(v)) {\n return [true, v];\n }\n }\n }\n return [false, initial != null ? initial : 0];\n}\nexport function parse(s, radix = 10) {\n const a = tryParse(s, radix, 0);\n if (a[0]) {\n return a[1];\n }\n else {\n // TODO FormatException ?\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Expression.fs","module TOCite\r\nopen Types\r\nopen RefParse\r\nopen ParserHelperFuncs\r\n\r\n// --------------------------------------------------------------------------------\r\nlet mountedInLineParser tokLst =\r\n //only simple footer in header\r\n let rec mountedInLineParser' toParse tLst =\r\n match tLst with\r\n | FOOTNOTE i::tl ->\r\n let s = string i\r\n parseInLineElements toParse :: [InlineFootnote (Literal s, \"footnote-\"+s)]\r\n :: mountedInLineParser' [] tl\r\n | CITATION _::tl -> mountedInLineParser' toParse tl\r\n | a::tl -> mountedInLineParser' (a::toParse) tl\r\n | [] -> [parseInLineElements toParse]\r\n tokLst\r\n |> List.rev\r\n |> mountedInLineParser' []\r\n |> List.rev\r\n |> List.reduce List.append\r\n\r\nlet rec tocParse tocLst depth index : THeader list * Token list =\r\n // Detect hashes with whitespace after it\r\n // printf \"tocParse %A\\n%A\\n\" depth tocLst\r\n\r\n // rebuild hash if no whitespace after\r\n let rec fakehash dep =\r\n match dep with\r\n | 0 -> [ENDLINE;ENDLINE]\r\n | _ -> HASH :: fakehash (dep-1)\r\n\r\n match tocLst with\r\n | ENDLINE::ENDLINE::HASH::tl -> tocParse tl 1 index\r\n | HASH::tl when depth > 0 -> tocParse tl (depth+1) index\r\n | WHITESPACE _ ::tl when depth > 0 ->\r\n let ind = tl |> List.tryFindIndex (fun x -> x = ENDLINE)\r\n //split header from rest of tokens by finding ENDLINE\r\n match ind with\r\n | Some i ->\r\n let (h,t) = List.splitAt i tl\r\n tocParse t 0 (index+1)\r\n |> fun (x,y) -> {HeaderName = mountedInLineParser h; Level = depth}::x, ENDLINE::ENDLINE::(HEADER index)::y\r\n | None ->\r\n [{HeaderName = mountedInLineParser tl; Level = depth}], [ENDLINE;ENDLINE;HEADER index]\r\n // hash without whitespace, need to rebuild hash\r\n | a::tl when depth > 0 ->\r\n tocParse tl 0 index\r\n |> fun (x,y) -> x, List.append (fakehash depth |> List.rev) (a::y)\r\n | a::tl -> \r\n tocParse tl 0 index\r\n |> fun (x,y) -> x, a::y\r\n | [] -> [], []\r\n\r\nlet tocGen' tokenLst =\r\n tocParse tokenLst 0 0\r\n\r\n// call this when ParsedObj wanted\r\nlet tocGen tLst =\r\n {HeaderLst = tocGen' tLst |> fun (x,_)->x}\r\n\r\n// --------------------------------------------------------------------------------\r\n// /parse footnotes with parseInLineElements\r\nlet citeParseIn tocLst =\r\n let rec citeParseIn' toParse tail =\r\n match tail with\r\n | ENDLINE::WHITESPACE a::tl when a >= 4 -> citeParseIn' toParse tl\r\n | ENDLINE::tl -> toParse,tl\r\n | a::tl -> citeParseIn' (a::toParse) tl\r\n | [] -> toParse,[]\r\n citeParseIn' [] tocLst\r\n |> fun (x,y) -> x |> List.rev |> parseInLineElements, y\r\n\r\n/// main citation parser\r\nlet rec citeParse' style tocLst :ParsedObj list*Token list =\r\n let recFitFt (a,b) c =\r\n citeParse' style b\r\n |> fun (x,y) -> Footnote (c,a)::x, y\r\n let recFitRef (a,b,c) d =\r\n citeParse' style c\r\n |> fun (x,y) -> Citation (d,a,b)::x, y \r\n match tocLst with\r\n | LSBRA::CARET::NUMBER key::RSBRA::tl ->\r\n match tl with\r\n | COMMA::tail -> recFitFt (citeParseIn tail) (int key)\r\n | tail ->\r\n citeParse' style tail\r\n |> fun (x,y) -> x, FOOTNOTE (int key)::y\r\n | LSBRA::CARET::LITERAL citkey::RSBRA::tl ->\r\n match tl with\r\n | COMMA::tail -> recFitRef (refParse style tail) citkey\r\n | tail ->\r\n citeParse' style tail\r\n |> fun (x,y) -> x, CITATION citkey::y\r\n | t::tl ->\r\n citeParse' style tl\r\n |> fun (x,y) -> x, t::y\r\n | [] -> [], []\r\n\r\nlet styleParse rLst tocLst =\r\n let rec styleParse' rLst tocLst =\r\n let stylify str =\r\n match str with\r\n | \"Harvard\" -> Some Harvard\r\n | \"Chicago\" -> Some Chicago\r\n | \"IEEE\" -> Some IEEE\r\n | _ -> None // use default\r\n match tocLst with\r\n | ENDLINE::PERCENT::PERCENT::LITERAL \"RefStyle\"::AgnoEqual tail ->\r\n match tail with\r\n | LITERAL lit::tl -> stylify lit, List.append (List.rev rLst) tl\r\n | _ -> styleParse' (tocLst.Head::rLst) tocLst.Tail\r\n | a::tl -> styleParse' (a::rLst) tl\r\n | [] -> None, rLst\r\n styleParse' rLst tocLst\r\n\r\n//type change and sorting\r\n// might change now that there are string IDs\r\nlet citeGen' tLst =\r\n let style,tl = styleParse [] tLst\r\n let ftLst,tLst =\r\n match style with\r\n | Some s -> citeParse' s tl\r\n | None -> citeParse' Harvard tLst // use harvard as default style\r\n let sortFt ft1 ft2 =\r\n match ft1,ft2 with\r\n | Footnote (i,_), Footnote (j,_) -> i-j\r\n | Citation _, Footnote _ -> 1\r\n | Footnote _, Citation _ -> -1\r\n | _, _ -> 0\r\n List.sortWith sortFt ftLst, tLst\r\n\r\nlet preParser tLst =\r\n citeGen' tLst\r\n |> fun (x,y) -> x, tocGen' y\r\n |> fun (x,(y,z)) -> y, x, z\n\n\n// WEBPACK FOOTER //\n// src/Common/TOCite/TOCite.fs","module RefParse\r\nopen Types\r\n\r\nlet monthConv m =\r\n match m with\r\n | 1 -> Some \"January\"\r\n | 2 -> Some \"February\"\r\n | 3 -> Some \"March\"\r\n | 4 -> Some \"April\"\r\n | 5 -> Some \"May\"\r\n | 6 -> Some \"June\"\r\n | 7 -> Some \"July\"\r\n | 8 -> Some \"August\"\r\n | 9 -> Some \"September\"\r\n | 10 -> Some \"October\"\r\n | 11 -> Some \"November\"\r\n | 12 -> Some \"December\"\r\n | _ -> None\r\n\r\nlet ordinalConv d =\r\n let (|OrdinalDates|_|) = function\r\n | d when d > 31 || d < 1 -> None\r\n | 1 | 21 | 31 -> Some \"st\"\r\n | 2 | 22 -> Some \"nd\"\r\n | 3 | 23 -> Some \"rd\"\r\n | _ -> Some \"th\"\r\n match d with\r\n | OrdinalDates s -> Some (string d + s)\r\n | _ -> None\r\n\r\nlet yerGen style year =\r\n match year with\r\n | None -> []\r\n | Some a -> \r\n match style with\r\n | Harvard -> [\"(\" + string a + \") \"|> Literal |> FrmtedString]\r\n | Chicago -> [string a + \". \" |> Literal |> FrmtedString]\r\n | IEEE -> []\r\n\r\nlet urlGen style url =\r\n match url with\r\n | None -> []\r\n | Some a ->\r\n match style with\r\n | Harvard -> \r\n [FrmtedString (Literal \"Available from: \"); Link(Literal a,a);\r\n FrmtedString (Literal \" \")]\r\n | Chicago -> [Link(Literal a,a)]\r\n | IEEE -> []\r\n\r\nlet plnGen tokLst =\r\n let rec plainGen' tLst =\r\n match tLst with\r\n | LITERAL lit::tl -> lit::plainGen' tl\r\n | WHITESPACE _::tl -> \" \"::plainGen' tl\r\n | _::tl -> plainGen' tl\r\n | [] -> []\r\n plainGen' tokLst |> List.rev |> List.reduce (+)\r\n\r\nlet dateGen style date =\r\n match date with\r\n | None -> []\r\n | Some (y,m,d) ->\r\n // check validity of date (Not complete, e.g. Feb-30 passes thru)\r\n let mstr = monthConv m\r\n let dstr = ordinalConv d\r\n match style with\r\n | Harvard ->\r\n match mstr, dstr with\r\n | Some mm, Some dd ->\r\n [\"[Accessed \"+dd+\" \"+mm+\" \"+(string y)+\"]. \"\r\n |> Literal |> FrmtedString]\r\n | _,_ -> [\"Access date invalid, please use yyyy-mm-dd\"\r\n |> Literal |> FrmtedString]\r\n | Chicago ->\r\n match mstr, dstr with\r\n | Some mm, Some _ ->\r\n [\"Accessed \"+mm+\" \"+(string d)+\", \"+(string y)+\". \"\r\n |> Literal |> FrmtedString]\r\n | _,_ -> [\"Access date invalid, please use yyyy-mm-dd\"\r\n |> Literal |> FrmtedString]\r\n | IEEE -> []\r\n\r\ntype GenType = HarAut | ChiAut | ChiBookTil | ChiWebTil | HarTil\r\nlet (|OverallM|) =\r\n let hAut tokLst =\r\n let rec hAutGen' tLst:TLine =\r\n match tLst with\r\n | LITERAL lit::tl ->\r\n match tl with\r\n | [] -> [FrmtedString (Literal (lit+\", \"))]\r\n | _ -> FrmtedString (Literal (string lit.[0]+\". \"))::hAutGen' tl\r\n | _::tl -> hAutGen' tl\r\n | [] -> []\r\n List.rev tokLst |> hAutGen' |> List.rev\r\n let cAut tokLst = [plnGen tokLst + \". \" |> Literal |> FrmtedString]\r\n let cWebTil tokLst = [\"\\\"\" + plnGen tokLst + \".\\\" \" |> Literal |> FrmtedString]\r\n let cTil tokLst = [[plnGen tokLst + \". \" |> Literal |> FrmtedString] |> Emphasis |> FrmtedString]\r\n let hTil tokLst = [[plnGen tokLst + \". \" |> Literal |> FrmtedString] |> Emphasis |> FrmtedString]\r\n function\r\n | HarAut -> hAut\r\n | HarTil -> hTil\r\n | ChiAut -> cAut\r\n | ChiBookTil -> cTil\r\n | ChiWebTil -> cWebTil\r\n\r\nlet build gType tokLst =\r\n match tokLst with\r\n | None -> []\r\n | Some tl ->\r\n match gType with\r\n | OverallM f -> f tl\r\n\r\nlet refInLine style ref: TFrmtedString =\r\n match ref.Author, ref.Year with\r\n | Some a, Some y ->\r\n // this part is weirddddd\r\n match a with\r\n | LITERAL lit :: _ ->\r\n match style with\r\n | IEEE -> Literal \"NOT IMPLEMENTED\"\r\n | Chicago ->\r\n \"(\" + lit + \", \" + string(y) + \")\" |> Literal\r\n | Harvard ->\r\n \"(\" + lit + \" \" + string(y) + \")\" |> Literal\r\n | _ -> \"(Name unavailable)\" |> Literal // to change?\r\n | None, Some y ->\r\n \"(\"+string(y)+\")\" |> Literal\r\n | Some a,_ ->\r\n match a with\r\n | LITERAL lit :: _ ->\r\n \"(\"+lit+\")\" |> Literal\r\n | _ -> \"(Name unavailable)\" |> Literal\r\n | _, _ -> \"(n.d.)\" |> Literal \r\n\r\nlet ref2TLine format ref:TLine =\r\n match format with\r\n | IEEE -> [FrmtedString (Literal \"IEEE citation not supported yet\")]\r\n | Chicago ->\r\n match ref.Cat with\r\n | Some Book ->\r\n [build ChiAut ref.Author; yerGen Chicago ref.Year;\r\n build ChiBookTil ref.Title]\r\n |> List.reduce List.append\r\n | Some Website ->\r\n [build ChiAut ref.Author; yerGen Chicago ref.Year; build ChiWebTil ref.Title;\r\n dateGen Chicago ref.AccessDate; urlGen Chicago ref.URL]\r\n |> List.reduce List.append\r\n | None -> [FrmtedString (Literal \"Please specify type of reference\")]\r\n | Harvard ->\r\n [build HarAut ref.Author; yerGen Harvard ref.Year; build HarTil ref.Title;\r\n urlGen Harvard ref.URL; dateGen Harvard ref.AccessDate]\r\n |> List.reduce List.append\r\n\r\nlet (|AgnoEqual|_|) = function\r\n | WHITESPACE _::EQUAL::WHITESPACE _::tl\r\n | WHITESPACE _::EQUAL::tl\r\n | EQUAL::WHITESPACE _::tl\r\n | EQUAL::tl ->\r\n Some tl\r\n | _ -> None\r\n\r\n// parses a single reference entry\r\n// This probably should never see ENDLINE\r\nlet refParser style tLst =\r\n let rec refPar' refData tLst =\r\n let rec refParse' parsing tail =\r\n match tail with\r\n | COMMA::tl -> parsing, tl\r\n | ENDLINE::tl -> parsing, tl\r\n | a::tl -> refParse' (a::parsing) tl\r\n | [] -> parsing, []\r\n\r\n let dateFormat tail =\r\n match tail with\r\n | NUMBER y::MINUS::NUMBER m::MINUS::NUMBER d::tl ->\r\n Some (int y, int m, int d), tl\r\n | _ -> None, tail\r\n\r\n match tLst with\r\n | LITERAL f::AgnoEqual tl ->\r\n match f with\r\n | \"type\" ->\r\n match tl with\r\n | LITERAL \"Book\"::tl -> refPar' {refData with Cat = Some Book} tl\r\n | LITERAL \"Website\":: tl -> refPar' {refData with Cat = Some Website} tl\r\n | _ -> refPar' refData tl\r\n | \"author\" ->\r\n refParse' [] tl\r\n |> fun (x,y) -> refPar' {refData with Author = Some x} y\r\n | \"title\" ->\r\n refParse' [] tl\r\n |> fun (x,y) -> refPar' {refData with Title = Some x} y\r\n | \"year\" ->\r\n match tl with\r\n | NUMBER a::tl -> refPar' {refData with Year = Some (int a)} tl\r\n | _ -> refPar' refData tl\r\n | \"url\" ->\r\n match tl with\r\n | LITERAL s::tl -> refPar' {refData with URL = Some s} tl\r\n | _ -> refPar' refData tl\r\n | \"access\" ->\r\n dateFormat tl\r\n |> fun (x,y) -> refPar' {refData with AccessDate = x} y\r\n | _ -> refPar' refData tl\r\n | ENDLINE::ENDLINE::tl -> refData,tl\r\n | ENDLINE::tl -> refPar' refData tl\r\n | _::tl -> refPar' refData tl\r\n | [] -> refData, []\r\n tLst \r\n |> refPar' {Cat = None; Author = None; Title = None;\r\n Year = None; AccessDate = None; URL = None}\r\n |> fun (x,_) -> refInLine style x, ref2TLine style x\r\n\r\n\r\n// parse references with refParser\r\nlet refParse style tocLst =\r\n let ind = tocLst |> List.tryFindIndex (fun x -> x = ENDLINE)\r\n match ind with\r\n | Some i ->\r\n let (h,t) = List.splitAt i tocLst\r\n refParser style h |> fun (a,b) -> a,b,t.Tail\r\n | None ->\r\n refParser style tocLst |> fun (a,b) -> a,b,[]\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/TOCite/RefParse.fs","module Lexer\r\n\r\nopen Types\r\nopen Shared\r\nopen LexerShared\r\nopen Logger\r\n\r\ntype LexerState =\r\n | Normal\r\n | InCodeBlock of content: string * Language\r\n | InHTMLTag of tag: string * depth: int\r\n\r\nlet htmlSingleton = [\r\n \"area\"; \"base\"; \"br\"; \"col\"; \"command\"; \"embed\"; \"hr\"; \"img\"; \"input\"\r\n \"keygen\"; \"link\"; \"meta\"; \"param\"; \"source\"; \"track\"; \"wbr\"\r\n]\r\n\r\n/// An escaped char tokenizer, which identifies the escaped characters and returns them\r\n/// as a literal instead, without the leading '\\'\r\nlet (|EscapedCharTok|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Returns the Token type of the identifier token\r\nlet (|CharacterTok|_|) = (|Character|_|) charList\r\n\r\nlet (|MatchLang|_|) = function\r\n | RegexMatch \"(p|P)ython\" _ -> Some Python | RegexMatch \"F#|fsharp|f#\" _ -> Some FSharp\r\n | RegexMatch \"(C|c)(\\\\+\\\\+|pp)\" _ -> Some CPP | RegexMatch \"C|c\" _ -> Some C | _ -> Some Empty\r\n\r\nlet (|InList|_|) lst el =\r\n match List.exists ((=) el) lst with\r\n | true -> Some el\r\n | _ -> None\r\n\r\nlet (|HTMLStartTag|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\n\r\n\r\nlet (|HTMLEndTag|_|) = (|RegexMatch|_|) \"^<\\\\/([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLSingleton|_|) = function\r\n | RegexMatch \"^<([a-zA-Z]+)\\\\s*.*?(?:\\\\/>|>)\" (s, [InList htmlSingleton g], r) ->\r\n Some (s, r)\r\n | _ -> None\r\n\r\nlet (|CodeBlockStart|_|) = (|GroupMatch|_|) \"^```+\\\\s*([a-zA-Z0-9+\\\\-_]*)\"\r\n\r\n/// Returns the next Token of a string\r\nlet nextToken state s =\r\n match s, state with\r\n | EscapedCharTok n, _ -> n, state\r\n | HTMLSingleton (s, r), Normal ->\r\n (LITERAL s, r), Normal\r\n | HTMLStartTag (s, [t], r), Normal ->\r\n (LITERAL s, r), InHTMLTag (t, 1)\r\n | HTMLStartTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n (LITERAL s, r), InHTMLTag (tag, d+1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLEndTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n if d = 1 then (LITERAL s, r), Normal\r\n else (LITERAL s, r), InHTMLTag (tag, d-1)\r\n else (LITERAL s, r), InHTMLTag (tag, d)\r\n | RegexMatch \"^.+?(?=<)\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | RegexMatch \"^.*\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | CharacterTok n, _ -> n, state\r\n | RegexMatch @\"^\\s+\" (m, _, s), _ ->\r\n (replaceChars \"\\t\" \" \" m \r\n |> String.length |> WHITESPACE, s), state\r\n | RegexMatch \"^[0-9]+\" (m, _, s), _->\r\n (NUMBER m, s), state\r\n | RegexMatch (literalString charList) (m, _, s), _ ->\r\n (LITERAL m, s), state\r\n | s, _ ->\r\n sprintf \"Unrecognised character: %A\" s |> globLog.Warn None\r\n (toString s.[0] |> LITERAL, (sOnwards 1 s)), state\r\n\r\n/// Lexes a whole string and returns the result as a Token list\r\nlet lexS state source =\r\n let rec lexS' state s tokList =\r\n match s, state with\r\n | \"\", InHTMLTag _ -> tokList\r\n | \"\", _ -> ENDLINE :: tokList\r\n | _ ->\r\n let (nt, st'), nstate = nextToken state s\r\n nt :: tokList |> lexS' nstate st'\r\n match source, state with\r\n | CodeBlockStart (MatchLang lang), Normal ->\r\n [], InCodeBlock (\"\", lang)\r\n | RegexMatch \"^```+\" _, InCodeBlock (s, lang) ->\r\n [CODEBLOCK (s, lang); ENDLINE], Normal\r\n | _, InCodeBlock (s, lang) ->\r\n [], InCodeBlock (s+source+\"\\n\", lang)\r\n | RegexMatch @\"^\\s*$\" _, _ ->\r\n [ENDLINE], state\r\n | _ ->\r\n lexS' state source [] |> List.rev, state\r\n\r\n/// Return the correct token if it is not close properly at the end\r\nlet returnTokens = function\r\n | _, InCodeBlock (s, l) ->\r\n [CODEBLOCK (s, l); ENDLINE]\r\n | tok, InHTMLTag (str, _) ->\r\n tok @ [LITERAL str; ENDLINE]\r\n | tok, _ ->\r\n tok\r\n\r\n/// Lex a single string\r\nlet lex s =\r\n lexS Normal s |> returnTokens\r\n\r\n/// Lexes a list of strings and returns the Token list\r\nlet lexList strl =\r\n let f (flist, state) nstr =\r\n let (lst, st) = lexS state nstr\r\n flist @ lst, st\r\n List.fold f ([], Normal) strl |> returnTokens\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Lexer.fs","module Preprocessor\r\n\r\nopen FileIO\r\nopen Shared\r\nopen LexerShared\r\n\r\n// --------------------------------------------------\r\n// Tokenizer\r\n// --------------------------------------------------\r\n\r\n/// Token type for the preprocessor macros\r\ntype Token =\r\n | LITERAL of string\r\n | MACRO | OPENDEF | CLOSEDEF | OPENEVAL | CLOSEEVAL | LBRA | RBRA\r\n | SEMICOLON | ENDLINE | BSLASH | INCLUDE\r\n\r\n/// Character list for the preprocessor\r\nlet charList = [\"{%\", OPENDEF; \"%}\", CLOSEDEF; \"{{\", OPENEVAL\r\n \"}}\", CLOSEEVAL; \"(\", LBRA; \")\", RBRA; \";\", SEMICOLON;\r\n \"\\\\\", BSLASH]\r\n\r\nlet keywordList = [\"macro\", MACRO; \"include\", INCLUDE]\r\n\r\n/// Check if a LITERAL is exclusively whitespace \r\nlet (|WhiteSpace|NonWhiteSpace|) = function\r\n | LITERAL (RegexMatch @\"^\\s*$\" _) -> WhiteSpace\r\n | _ -> NonWhiteSpace\r\n\r\n/// Matches all the escapable characters that are defined in charList\r\nlet (|EscapedCharParse|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Matches all the special characters that are defined in charList\r\nlet (|CharacterParse|_|) = (|Character|_|) charList\r\n\r\nlet (|KeywordParse|_|) = (|Character|_|) keywordList\r\n\r\n/// Converts a token list to a string\r\nlet tokToString tList =\r\n let tokString st = function\r\n | LITERAL l -> st+l\r\n | t ->\r\n match charList @ keywordList |> listTryFind t with\r\n | Some s -> st+s\r\n | _ -> st\r\n List.fold tokString \"\" tList\r\n\r\n/// Retrieves the next token from a string and returns it, together\r\n/// with the rest of the string\r\nlet nextToken str =\r\n let literalMatch = charList |> literalString\r\n match str with\r\n | EscapedCharParse n | CharacterParse n | KeywordParse n ->\r\n n\r\n | RegexMatch @\"^\\s+\" (m, _, r) ->\r\n LITERAL m, r\r\n | RegexMatch literalMatch (m, _, r) ->\r\n LITERAL m, r\r\n | _ ->\r\n toString str.[0] |> LITERAL, str.[1..]\r\n\r\n/// Tokenizes a string and return it as a list of tokens\r\nlet tokenize str =\r\n let rec pTokenize' tList str =\r\n match str with\r\n | \"\" ->\r\n ENDLINE :: tList\r\n | _ ->\r\n let t, r = nextToken str\r\n pTokenize' (t :: tList) r\r\n pTokenize' [] str |> List.rev\r\n\r\n/// Tokenizes a list of strings and returns them as a single list of tokens\r\nlet tokenizeList = List.collect tokenize\r\n\r\n// --------------------------------------------------\r\n// Parser\r\n// --------------------------------------------------\r\n\r\n/// ArgumentList used in the substitution\r\ntype Argument<'T> = 'T list\r\n\r\n/// Type for a macro\r\ntype Macro<'T> = {Name: string; Args: string list; Body: 'T list}\r\n\r\n/// Type for a substitution\r\ntype Sub<'T> = {Name: string; Args: Argument<'T> list; Raw: string}\r\n\r\n/// Type of the parser elements\r\ntype Parser =\r\n | MacroDefinition of Macro<Parser>\r\n | MacroSubstitution of Sub<Parser>\r\n | IncludeStatement of link: string\r\n | ParseText of content: string\r\n | ParseNewLine\r\n\r\n/// Return a parser list until it reaches the token\r\nlet findParseUntil otok ctok parser =\r\n let rec findParseUntil' count parser retlist =\r\n match parser with\r\n | t :: tl when t = ctok && count = 1 ->\r\n Some (retlist |> List.rev, tl)\r\n | t :: tl when t = ctok ->\r\n t :: retlist |> findParseUntil' (count - 1) tl\r\n | t :: tl when t = otok ->\r\n t :: retlist |> findParseUntil' (count + 1) tl\r\n | t :: tl ->\r\n t :: retlist |> findParseUntil' count tl\r\n | [] -> None\r\n findParseUntil' 1 parser []\r\n\r\n/// Splits a list on a specific element\r\nlet splitList esctok cltok tok list =\r\n let rec splitList' curr final list =\r\n match list with\r\n | a :: tl when a = esctok ->\r\n match findParseUntil esctok cltok tl with\r\n | Some (l, tl) ->\r\n splitList' (CLOSEEVAL :: (List.rev (a :: l)) @ curr) final tl\r\n | _ ->\r\n splitList' (a :: curr) final tl\r\n | a :: tl when a = tok ->\r\n splitList' [] (List.rev curr :: final) tl\r\n | a :: tl ->\r\n splitList' (a :: curr) final tl\r\n | [] ->\r\n List.rev curr :: final |> List.rev\r\n splitList' [] [] list\r\n\r\nlet splitListEval = splitList OPENEVAL CLOSEEVAL SEMICOLON\r\n\r\n/// Strips whitespace from a token list\r\nlet stripWhiteSpace = function\r\n | WhiteSpace :: tl | tl ->\r\n match List.rev tl with\r\n | WhiteSpace :: tl | tl ->\r\n List.rev tl\r\n\r\n/// Returns if the start of the list of tokens matches a keyword\r\nlet (|KeyWord|_|) =\r\n let listCheckExists t list =\r\n list\r\n |> List.map (fun (_, c) -> c)\r\n |> List.exists ((=) t)\r\n function\r\n | WhiteSpace :: a :: tl | a :: tl ->\r\n match listCheckExists a keywordList with\r\n | true -> Some (a, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Checks if the Token list matches an argument list, which could be one of the\r\n/// following:\r\n/// (arg1; arg2)\r\n/// (arg 1; arg 2)\r\n/// (arg1)\r\n/// ()\r\nlet (|ParamList|_|) =\r\n /// Matches if there is a list of literals, and returns all of them until it reaches\r\n /// a Token that is not a literal\r\n let rec (|NameList|_|) = function\r\n | LITERAL n :: NameList (nList, r) ->\r\n Some (n :: nList, r)\r\n | LITERAL n :: r ->\r\n Some ([n], r)\r\n | _ -> None\r\n\r\n /// Matches a semicolon separated list of Literal lists\r\n let rec (|ParamList|_|) = function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | NameList (n, SEMICOLON :: ParamList (lst, r)) ->\r\n Some (List.fold (+) \"\" n :: lst, r)\r\n | NameList (n, r) ->\r\n Some ([List.fold (+) \"\" n], r)\r\n | _ ->\r\n Some ([], tl)\r\n function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: ParamList (nl, RBRA :: tl) ->\r\n Some (nl, tl)\r\n | _ -> None\r\n\r\nlet (|ArgList|_|) = function\r\n WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: tl ->\r\n match findParseUntil LBRA RBRA tl with\r\n | Some (p, tl) ->\r\n Some (splitListEval p |> List.map stripWhiteSpace, tl)\r\n | _ -> None\r\n | WhiteSpace :: tl ->\r\n Some ([], tl)\r\n | _ -> None\r\n\r\n/// Matches a literal, which will be the name of the function, which can be followed by\r\n/// an argument list\r\nlet (|Function|_|) = function\r\n | WhiteSpace :: LITERAL n :: tl ->\r\n match tl with\r\n | ParamList (nl, WhiteSpace :: tl)\r\n | ParamList (nl, tl) ->\r\n Some (n, nl, tl)\r\n | WhiteSpace :: t\r\n | t ->\r\n Some (n, [], t)\r\n | _ -> None\r\n\r\n/// Matches the start syntax for a macro, the closing CLOSEDEF can be on a differen line and\r\n/// after a Parse list, so that is matched in the parse function\r\nlet (|MacroDef|_|) = function\r\n | OPENDEF :: KeyWord (MACRO, Function f) ->\r\n Some f\r\n | _ -> None\r\n\r\n/// Matches an evaluation of a macro\r\nlet (|EvalDef|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | LITERAL n :: ArgList (nl, WhiteSpace :: CLOSEEVAL :: tl)\r\n | LITERAL n :: ArgList (nl, CLOSEEVAL :: tl) ->\r\n Some (n, nl, tl)\r\n | LITERAL n :: WhiteSpace :: CLOSEEVAL :: tl\r\n | LITERAL n :: CLOSEEVAL :: tl ->\r\n Some (n, [], tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Matches a special character or keyword\r\nlet (|SChar|_|) tok =\r\n charList @ keywordList\r\n |> List.map invTuple\r\n |> Map.ofList\r\n |> mapTryFind tok\r\n\r\n/// Include statement match\r\nlet (|Include|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | INCLUDE :: WhiteSpace :: LITERAL link :: WhiteSpace :: CLOSEEVAL :: tl\r\n | INCLUDE :: WhiteSpace :: LITERAL link :: CLOSEEVAL :: tl -> Some (link, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Parses a Token list into a Parser list\r\nlet parse tList =\r\n\r\n /// Returns the raw token list for a macro evaluation\r\n let getRaw list =\r\n let rec getRaw' list curr =\r\n match list with\r\n | CLOSEEVAL :: _ ->\r\n CLOSEEVAL :: curr\r\n | a :: tl ->\r\n a :: curr |> getRaw' tl\r\n | _ ->\r\n curr\r\n getRaw' list [] |> List.rev\r\n\r\n /// The recursive part of the parser, which build the Parser list\r\n let rec parse' endToken tList pList =\r\n let pRec f c tl = f c :: pList |> parse' endToken tl\r\n let recText = pRec ParseText\r\n match tList, endToken with\r\n | MacroDef (a, b, tl), _ ->\r\n let p, tl' = parse' (Some CLOSEDEF) tl []\r\n pRec MacroDefinition {Name=a; Args=b; Body=List.rev p} tl'\r\n | EvalDef (n, args, tl), _ ->\r\n let args' = List.map ((fun a -> parse' None a []) >> (fun (a, _) -> List.rev a)) args\r\n pRec MacroSubstitution {Name=n; Args=args'; Raw=getRaw tList |> tokToString} tl\r\n | Include (link, tl), _ ->\r\n pRec IncludeStatement link tl\r\n | ENDLINE :: tl, _ ->\r\n pRec id ParseNewLine tl\r\n | WhiteSpace :: a :: tl, Some e | a :: tl, Some e when e = a ->\r\n match tl with\r\n | WhiteSpace :: ENDLINE :: b\r\n | WhiteSpace :: b\r\n | ENDLINE :: b\r\n | b ->\r\n pList, b\r\n | LITERAL f :: tl, _ ->\r\n recText f tl\r\n | SChar c :: tl, _ ->\r\n recText c tl\r\n | _ -> pList, []\r\n let p, _ = parse' None tList []\r\n List.rev p\r\n\r\n// --------------------------------------------------\r\n// Evaluation\r\n// --------------------------------------------------\r\n\r\n/// Evaluates and strips macros from the markdown, and also evaluates macro substitutions\r\n/// by seeing which macros are in scope or if the substitution is a parameter.\r\n/// This supports shadowing of previously defined macros, and scopes can be defined\r\n/// by declaring a macro inside another macro\r\nlet evaluateWithDir fileDir pList =\r\n\r\n /// Makes an empty parmeter list for the current parameters, so that they\r\n /// are not substituted\r\n let makeEmptyParam args: Map<string, Argument<Parser> option> =\r\n List.replicate (List.length args) None\r\n |> List.zip args\r\n |> Map.ofList\r\n\r\n /// Add a parameter to a parameter map\r\n let addParam p (macro: Macro<Parser>) args =\r\n List.zip macro.Args args\r\n |> List.fold (fun (s: Map<string, Argument<Parser> option>) (a, b) -> s.Add(a, Some b)) p\r\n\r\n /// Make a Macro record type\r\n let makeMacro n args p =\r\n {Name = n; Args = args; Body = p}\r\n\r\n /// Adds an element to a map with key k and value v\r\n let mapAdd (map: Map<'a, 'b>) k v =\r\n map.Add(k, v)\r\n\r\n /// Evaluates and creates a new simplified Parser list with all the macros stripped\r\n /// and substitutions evaluated\r\n let rec evaluate' pList newPList param (scope: Map<string, Macro<Parser>>) =\r\n\r\n /// Function for use with different currying that the original\r\n let evaluateInv' pList newPList scope param =\r\n evaluate' pList newPList param scope\r\n\r\n /// Evaluate without adding any values to the param or scope maps\r\n let evaluate'' pList list =\r\n evaluate' pList (list @ newPList) param scope\r\n\r\n match pList with\r\n | MacroDefinition {Name=n; Args=args; Body=p} :: tl ->\r\n makeEmptyParam args\r\n |> evaluateInv' p [] scope\r\n |> makeMacro n args\r\n |> mapAdd scope n\r\n |> evaluate' tl newPList param\r\n | MacroSubstitution {Name=n; Args=args; Raw=raw} as ms :: tl ->\r\n let eval =\r\n match param.TryFind n with\r\n | Some (Some x) ->\r\n evaluate' x [] param scope |> List.rev\r\n | Some _ ->\r\n [ms]\r\n | _ ->\r\n match scope.TryFind n with\r\n | Some m when List.isEmpty args ->\r\n m.Body\r\n | Some m ->\r\n addParam param m args\r\n |> evaluateInv' m.Body [] scope\r\n |> List.rev\r\n | _ ->\r\n [ParseText raw]\r\n evaluate'' tl eval\r\n | IncludeStatement link :: tl ->\r\n let addDir str =\r\n match str with\r\n | RegexMatch \"^\\\\/\" _ -> str\r\n | _ -> fileDir + str\r\n addDir link\r\n |> readFilePath\r\n |> tokenizeList\r\n |> parse\r\n |> (fun a -> evaluate' (a @ tl) newPList param scope)\r\n | p :: tl ->\r\n evaluate'' tl [p]\r\n | _ -> newPList\r\n evaluate' pList [] Map.empty<string, Argument<Parser> option> Map.empty<string, Macro<Parser>>\r\n |> List.rev\r\n\r\nlet evaluate = evaluateWithDir \"\"\r\n\r\n/// Converts a Parser list to a string\r\nlet parserToString pList =\r\n List.fold (fun st -> function\r\n | ParseText x -> st+x\r\n | ParseNewLine -> st+\"\\n\"\r\n | _ -> st) \"\" pList\r\n\r\n/// Converts a Parser list to a list of strings without any newlines\r\nlet toStringList pList =\r\n let f st n =\r\n match st, n with\r\n | _, ParseNewLine ->\r\n \"\" :: st\r\n | a :: b, ParseText t ->\r\n a+t :: b\r\n | _, ParseText t ->\r\n [t]\r\n | _ -> st\r\n List.fold f [] pList |> List.rev\r\n\r\n/// perform the parsing, evaluation, while stripping the last endline which is redundant\r\n/// as it was added by the tokenizer\r\nlet pETS dir =\r\n let stripLastEndline l =\r\n match List.rev l with\r\n | [ParseNewLine] as e -> e\r\n | ParseNewLine :: r -> List.rev r\r\n | _ -> l\r\n parse >> evaluateWithDir dir >> stripLastEndline\r\n\r\n// --------------------------------------------------\r\n// Public API\r\n//--------------------------------------------------\r\n\r\n/// Preprocess a string and output a string with the macro evaluated\r\nlet preprocess =\r\n tokenize >> pETS \"\" >> parserToString\r\n\r\nlet preprocessWithDir dir =\r\n tokenize >> pETS dir >> parserToString\r\n\r\n/// Preprocess a list of strings which is returned as a list of strings with the\r\n/// macro evaluated\r\nlet preprocessList =\r\n List.collect tokenize >> pETS \"\" >> toStringList\r\n\r\nlet preprocessListWithDir dir =\r\n List.collect tokenize >> pETS dir >> toStringList\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Preprocessor.fs","module FileIO\r\n\r\nopen Fable.Import.Node.Exports\r\n\r\nlet writeToFile str path =\r\n let errorHandler _err = () // Ignore all errors\r\n fs.writeFile(path, str, errorHandler)\r\n\r\nlet splitString (s:string) =\r\n s.Split(\"\\n\") |> Array.toList\r\n\r\nlet checkExists (path:string) =\r\n fs.existsSync(Fable.Core.U2.Case1 path)\r\nlet readFilePath path =\r\n path \r\n |> checkExists\r\n |> function\r\n | true ->\r\n fs.readFileSync(path,()) \r\n |> (fun s -> s.toString ())\r\n |> splitString\r\n | false -> path |> splitString\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FableFileIO.fs","module.exports = require(\"fs\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"fs\"\n// module id = 37\n// module chunks = 0","module MarkdownGen\r\n// MarkdownGen is only used for some property-based testing and is not ready for use for anything else.\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\n\r\n// return string surrounded by pat\r\nlet surround pat str =\r\n let pat2 = match pat with\r\n | \"(\" -> \")\"\r\n | \"[\" -> \"]\"\r\n | \"{\" -> \"}\"\r\n | _ -> pat\r\n sprintf \"%s%s%s\" pat str pat2\r\n\r\n/// convert TFrmtedString to string\r\nlet rec mdFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> surround \"`\" str\r\n | Strong a -> mdInlineElements a |> surround \"**\"\r\n | Emphasis e -> mdInlineElements e |> surround \"*\"\r\n | Line l -> mdInlineElements l\r\n | Strike s -> mdInlineElements s |> surround \"~~\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand mdInlineElements' b eles =\r\n let braSurround = surround \"(\"\r\n let sbraSurround = surround \"[\"\r\n let convertMd pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> mdFStr fStr\r\n | Link (ht, url) -> (mdFStr ht |> sbraSurround) + (url |> braSurround)\r\n | Picture (alt, url) -> (alt |> sbraSurround |> sprintf \"!%s\" ) + (url |> braSurround)\r\n | InlineCitation (ht, _)\r\n | InlineFootnote (ht, _) -> (\"^\" + mdFStr ht) |> sbraSurround\r\n List.fold convertMd (sprintf \"%s\" b) eles\r\nand mdInlineElements = mdInlineElements' \"\"\r\n\r\n/// process Markdown paragraph\r\nlet mdParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + mdInlineElements line\r\n List.fold folder \"\" lines\r\n + \"\\n\\n\"\r\n\r\n/// process Markdown Table\r\nlet mdTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells alignRow row =\r\n let cellsFolder alignRow pStr cell =\r\n match cell with\r\n | CellLine(line, _, align) ->\r\n match alignRow with\r\n | true ->\r\n match align with\r\n | Centre -> \":---:\"\r\n | Right -> \"---:\"\r\n | Left -> \":---\"\r\n | NoAlign -> \"---\"\r\n | false ->\r\n mdInlineElements line\r\n |> (fun cellContent -> pStr + cellContent + \"|\")\r\n\r\n List.fold (cellsFolder alignRow) \"|\" row\r\n\r\n let foldRows alignRow rows =\r\n let rowsFolder alignRow pStr row =\r\n pStr + (foldCells alignRow) row + \"\\n\"\r\n List.fold (rowsFolder alignRow) \"\" rows\r\n let foldNormalRows = foldRows false\r\n let foldAlignRow = foldCells true\r\n foldNormalRows headerRows\r\n + (headerRows |> List.head |> foldAlignRow)\r\n + foldNormalRows bodyRows + \"\\n\\n\"\r\n\r\n/// recursively process a list\r\nlet rec mdList list =\r\n let mdListItem ord tab (pStr,pCount) li =\r\n let makeTabs num =\r\n if num <= 0 then \"\" else String.replicate num \"\\t\"\r\n let retFold s = pStr + s, pCount + 1\r\n match li with\r\n | StringItem(line) -> mdInlineElements line |> (fun s ->\r\n match ord,s with\r\n | _,\"\" -> \"\"\r\n | true,_ ->\r\n sprintf \"%s%i. %s\\n\" (makeTabs tab) pCount s\r\n |> logPassN globLog.Debug\r\n | false,_ ->\r\n sprintf \"%s- %s\\n\" (makeTabs tab) s) |> retFold\r\n | NestedList(list) -> mdList list |> retFold\r\n\r\n match list with\r\n | {ListType=lt; ListItem=liS; Depth=d} ->\r\n let ord = match lt with | OL _ -> true | UL -> false\r\n List.fold (mdListItem ord (d-1)) (\"\",1) liS\r\n |> fst\r\n\r\n/// process header\r\nlet mdHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n (line |> mdInlineElements)\r\n |> sprintf \"%s %s\\n\" (String.replicate lv \"#\")\r\n\r\n/// process HTML body part\r\nlet mdBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> mdParagraph p\r\n | Quote q -> mdInlineElements' \">\" q\r\n | CodeBlock (c, l) -> surround \"```\" (mapLang l + \"\\n\" + c + \"\\n\")\r\n | Table rows -> mdTable rows\r\n | List l -> mdList l |> sprintf \"%s\\n\"\r\n | Header (h,s) -> mdHeader h //#### DO SOMETHING WITH STRING HERE\r\n //| Footnote (fnId, _) -> mdInlineFootnote fnId\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/MarkdownGen/MarkdownGen.fs","module HTMLGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\nopen HTMLGenHelpers\r\n\r\n/// convert TFrmtedString to string, with HTML tags where necessary\r\nlet rec strFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> str |> attachSimpleTag \"code\"\r\n | Strong a -> strInlineElements a |> attachSimpleTag \"strong\"\r\n | Emphasis e -> strInlineElements e |> attachSimpleTag \"em\"\r\n | Line l -> strInlineElements l\r\n | Strike l -> strInlineElements l |> attachSimpleTag \"del\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand strInlineElements eles =\r\n let convertHtml pStr ele =\r\n let refPrint foot (ht,id) = \r\n ht\r\n |> strFStr\r\n |> attachHTMLTag (\"a\", [(\"href\", \"#\"+id)], true)\r\n |> (fun r -> if foot then attachSimpleTag \"sup\" r else r) \r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> strFStr fStr\r\n | Link (ht, url) -> strFStr ht |> attachHTMLTag (\"a\", [(\"href\", url)], true)\r\n | Picture (alt, url) ->\r\n let attrs = [(\"src\", url); (\"alt\", alt)]\r\n attachHTMLTag (\"img\", attrs, false) \"\"\r\n // style for inline referencing the footnotes and citations in the end\r\n | InlineCitation (ht, id) -> refPrint false (ht,id)\r\n | InlineFootnote (ht, id) -> refPrint true (ht,id)\r\n List.fold convertHtml \"\" eles\r\n\r\n/// process Markdown paragraph\r\nlet strParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + strInlineElements line + NewLineStr\r\n List.fold folder \"\" lines\r\n |> (fun x -> x.Trim()) // remove leading and trailing whitespaces and CRLFs\r\n |> attachSimpleTag \"p\"\r\n\r\n\r\n/// process Markdown Table\r\nlet strTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells row =\r\n let cellsFolder pStr cell =\r\n match cell with\r\n | CellLine(line, isHeader, align) ->\r\n let tagName = if isHeader then \"th\" else \"td\"\r\n let cellContent = strInlineElements line\r\n let alignAttr =\r\n match align with\r\n | Centre -> (\"align\", \"center\")\r\n | Right -> (\"align\", \"right\")\r\n | Left -> (\"align\", \"left\")\r\n | NoAlign -> (\"\",\"\")\r\n pStr + attachHTMLTag (tagName, [alignAttr], true) cellContent\r\n List.fold cellsFolder \"\" row\r\n let foldRows rows =\r\n let rowsFolder pStr row =\r\n foldCells row\r\n |> attachSimpleTag \"tr\"\r\n |> fun s -> pStr + s\r\n List.fold rowsFolder \"\" rows\r\n foldRows headerRows |> attachSimpleTag \"thead\"\r\n |> fun s ->\r\n s + (foldRows bodyRows |> attachSimpleTag \"tbody\")\r\n |> attachSimpleTag \"table\"\r\n\r\n\r\n/// recursively process a list\r\nlet rec strList list =\r\n let strListItem pStr li =\r\n pStr + (\r\n match li with\r\n | StringItem(line) -> strInlineElements line |> attachSimpleTag \"li\"\r\n | NestedList(list) -> strList list\r\n )\r\n match list with\r\n | {ListType=lt; ListItem=liS} ->\r\n match lt with\r\n | UL ->\r\n List.fold strListItem \"\" liS\r\n |> attachSimpleTag \"ul\"\r\n | OL startNo ->\r\n List.fold strListItem \"\" liS\r\n |> attachHTMLTag (\"ol\", [\"start\", startNo|>string], true)\r\n \r\n\r\n/// process header\r\nlet strHeader (header,id) =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n let tagName = \"h\" + string(lv)\r\n line\r\n |> strInlineElements\r\n |> attachHTMLTag (tagName, [\"id\", id], true)\r\n\r\n/// process references\r\n/// id: the href id used in inline referencing\r\n/// content: of TLine type, to be displayed at the end of HTML doc\r\nlet strRef (id, content) =\r\n \"[\"+id+\"] \" + strInlineElements content\r\n |> attachHTMLTag (\"p\", [\"id\", id], true)\r\n\r\nlet (|MatchHeaderAndSubHeader|_|) hds =\r\n match hds with\r\n | fstHd::sndHd::_ ->\r\n let {Level=fstLv} = fstHd\r\n let {Level=sndLv} =sndHd\r\n if sndLv > fstLv then (List.head hds, List.tail hds) |> Some else None\r\n | _ -> None\r\n\r\n/// process table of contents\r\n\r\nlet strToC (toc: Ttoc) =\r\n let excludeSelfSkip x = match x with | None -> None | Some 1 -> None | Some n -> Some (n-1)\r\n /// get all list items in current item level and sub lists\r\n let rec getCurrentHeaders currentLv hdListItems headers =\r\n match headers with\r\n | header:: reHeaders ->\r\n match header.Level with\r\n | hdLv when currentLv <= hdLv -> // list item and sub list item\r\n getCurrentHeaders currentLv (header::hdListItems) reHeaders\r\n | _ -> hdListItems |> List.rev\r\n | [] -> hdListItems |> List.rev\r\n\r\n let rec parseHdsIntoList level (headers: THeader list) =\r\n let depth = (List.head headers).Level\r\n let headerFolder (currentLv, listItems, (skipNo: int option), currentHdNo) header =\r\n match skipNo with\r\n | None ->\r\n match header.Level with\r\n | hdLv when hdLv=currentLv ->\r\n (currentLv, StringItem(header.HeaderName)::listItems, None, currentHdNo+1)\r\n | hdLv when hdLv>currentLv ->\r\n let (listItem, skip) =\r\n xOnwards currentHdNo headers\r\n |> getCurrentHeaders (currentLv+1) []\r\n |> parseHdsIntoList (currentLv+1)\r\n (currentLv, NestedList(listItem)::listItems, skip |> excludeSelfSkip, currentHdNo+1)\r\n | _ -> failwith \"list item level < current level, not possible\"\r\n | Some skip ->\r\n match skip with\r\n | 1 -> (currentLv, listItems, None, currentHdNo+1)\r\n | n when n>1 -> (currentLv, listItems, Some (n-1), currentHdNo+1)\r\n | _ -> failwith \"negative or zero skip number, not possible\"\r\n List.fold headerFolder (level, [], None, 0) headers\r\n |> (fun (_, lis, _, _) ->\r\n let doSkip =\r\n match List.length headers with\r\n | 0 -> None\r\n | n -> Some n\r\n {ListType=OL 1; ListItem=lis |> List.rev; Depth=depth}, doSkip)\r\n toc.HeaderLst\r\n |> parseHdsIntoList 1\r\n |> fst\r\n |> strList\r\n\r\n/// process HTML body part\r\nlet strBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> strParagraph p\r\n | Quote q -> strInlineElements q |> attachSimpleTag \"q\"\r\n | CodeBlock (c, l) -> attachHTMLTag (\"code\", [(\"language\", mapLang l)], true) c\r\n | Table rows -> strTable rows\r\n | List l -> strList l\r\n | Header (h,s) -> strHeader (h,s)\r\n | Footnote (i,s) -> strRef ((string i), s)\r\n | Citation (i,_,s) -> strRef (i, s)\r\n | ContentTable toc -> strToC toc\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\r\n/// generate HTML head\r\nlet genHead htmlTitle =\r\n let metaData =\r\n [\r\n [(\"name\", \"viewport\");(\"content\", \"width=device-width\")]\r\n ]\r\n let genMetadata pStr md =\r\n pStr + attachMetaTag \"meta\" md\r\n List.fold genMetadata \"\" metaData\r\n + attachSimpleTag \"title\" htmlTitle\r\n \r\n |> attachSimpleTag \"head\"\r\n\r\n/// generate HTML body\r\nlet genBody (pObjs) =\r\n strBody pObjs\r\n // insert javascript in the end of HTML doc to make page rendering faster\r\n +\r\n attachHTMLTag (\"script\",\r\n [\r\n (\"type\", \"text/javascript\");\r\n (\"async\", \"\");\r\n (\"src\", \"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML\")\r\n ], true) \"\"\r\n |> attachSimpleTag \"body\"\r\n\r\n\r\n/// top level HTMLGen\r\nlet genHTML (htmlTitle, pObjs) =\r\n attachMetaTag \"!DOCTYPE\" [\"html\", \"\"]\r\n + genHead htmlTitle\r\n + genBody (pObjs)\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGen.fs","module HTMLGenHelpers\r\n\r\nopen Types\r\n\r\ntype TagStyle = INLINE | NonInline of indentStr: string\r\n\r\n[<Literal>]\r\nlet NewLineStr = \"\\r\\n\"\r\n\r\n/// concat attributeName and value\r\n/// with quotes\r\nlet toAttr attributeName value =\r\n attributeName + \"=\\\"\" + value + \"\\\"\"\r\n\r\n/// convert (attributeName, value) list to string list\r\n/// ready for inserting into HTML tag\r\nlet toAttrs attrs =\r\n let mapper attr =\r\n match attr with | (attrName, value) -> toAttr attrName value\r\n List.map mapper attrs\r\n\r\n/// atach HTML tag to a given string, both start and end tag\r\n/// inline style does not insert newline after start tag and before end tag\r\n/// non-inline style will have indent set to desired string\r\nlet attachHTMLTag (tagName, attributes: list<string * string>, needCloseTag) (content: string) =\r\n let attrStr =\r\n match List.isEmpty attributes with\r\n | true -> \"\"\r\n | false ->\r\n let attrFolder pStr attrNameValue =\r\n pStr +\r\n match attrNameValue with\r\n | (\"\",\"\") -> \"\"\r\n | (attrName, value) ->\r\n \" \" + // space before attribute\r\n if value = \"\" then attrName\r\n else attrName + \"=\\\"\" + value + \"\\\"\"\r\n List.fold attrFolder \"\" attributes\r\n \"<\" + tagName + attrStr + \">\"\r\n + content\r\n + if needCloseTag then \"</\" + tagName + \">\" else \"\"\r\n\r\n/// attach (tagName,noAttr,closeTag)\r\nlet attachSimpleTag tagName = attachHTMLTag (tagName,[],true)\r\n\r\nlet attachMetaTag tagName attrs = attachHTMLTag (tagName,attrs,false) \"\"\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGenHelpers.fs"],"sourceRoot":""} \ No newline at end of file
diff --git a/FMark/src/Common/FableFileIO.fs b/FMark/src/Common/FableFileIO.fs
index 77c3d69..7fc260d 100644
--- a/FMark/src/Common/FableFileIO.fs
+++ b/FMark/src/Common/FableFileIO.fs
@@ -19,5 +19,5 @@ let readFilePath path =
fs.readFileSync(path,())
|> (fun s -> s.toString ())
|> splitString
- | false -> []
+ | false -> path |> splitString
diff --git a/FMark/src/Common/Lexer/README.md b/FMark/src/Common/Lexer/README.md
index 3c65475..5cdf90a 100644
--- a/FMark/src/Common/Lexer/README.md
+++ b/FMark/src/Common/Lexer/README.md
@@ -21,6 +21,8 @@ These are the supported constructs in the preprocessor.
|Function Macro|`{% macro name(arg1; arg2) value %}`|Sets the Macro `name` equal to the string `value` with two parameters.|Unit Test|
|Simple Evaluation|`{{ macro_name }}`|Evaluates the macro `macro_name` and replaces the evaluation with the evaluated body of the macro.|Unit Test|
|Function Evaluation|`{{ macro_name(arg 1; arg 2) }}`|Evaluates the macro `macro_name` with the arguments `arg 1` and `arg 2` and replaces the evaluation with the evaluated body of the macro.|Unit Test|
+|File Include|`{{ include relative/path/to/file }}`|Includes and preprocesses a file using a relative or absolute path. The macros declared in that file will then be available in the current file|Unit Test|
+|Complex Macro Evaluation|`{{ x( {{ y( {{z}} ; Hello ) }} ; {{z}} ) }}`|Nested macro evaulations are supported. This way, default arguments can be created for other macros.|Unit Test|
### Supported Features
@@ -37,6 +39,7 @@ These are the features that are currently supported by the preprocessor.
|Escaping macros|`\{% macro x y %}`|This will escape the whole macro and not evaluate it|Unit Test|
|Escaping Subsitutions|`\{{ x }}`| will not evaluate the substitution but instead output it literally|Unit Test|
|Outputting unmatched subsituttion|`{{ x }}` -> `{{ x }}` if not in scope|If the subsitution is not matched, it will output it as it got it|Unit Test|
+|Nested Evaluations|`{{ x( {{y}} ) }}`|Arguments can now be evaluated inside them.|Unit Test|
### Usage
@@ -105,6 +108,9 @@ This is the second macro
```
+More complicated macros can also be created by writing html in the macros. Due to the
+html passthrough in the lexer, the html will be copied over literally to the output html.
+
### Future improvements
There are many features that will be introduced into the preprocessor in the future. Some of the future
diff --git a/FMark/src/Common/Parser/README.md b/FMark/src/Common/Parser/README.md
index 232a9c4..ee78563 100644
--- a/FMark/src/Common/Parser/README.md
+++ b/FMark/src/Common/Parser/README.md
@@ -7,22 +7,18 @@ It follows [CommonMark Spec](http://spec.commonmark.org/0.28/). However, the Par
In order to split work more evenly, the group has agreed that the majority of text will be parsed in this Parser,
with the rest to be done by other team members.
-Here is a table of supported `ParsedObj`:
+`parse` will either return result monad with either `ParsedObj list` or a string of Error message. Unparsed Tokens will be in the returned in the Error message.
-| ParsedObj |
-| --------- |
-| CodeBlock |
-| Header |
-| Paragraph |
-| Quote |
-| PreTable* |
+```fsharp
+open Parser
-Note:
-* `Link`, `Picture` and `Strong` are not yet supported.
+val parse = Token list -> Result<ParsedObj list * string>
+```
-* `PreTable` is meant to be a _container_ for table `Token`s. It will then be further parsed by another function
-written by the other team member to produce `Table`.
+It will either return result monad with either `ParsedObj list`
+or a string of Error message.
+Unparsed Tokens will be in the returned in the Error message.
# Interface Compatibility
@@ -33,23 +29,26 @@ type Token =
| LITERAL of string
| WHITESPACE of size: int
| NUMBER of string
- | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT
+ | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT | COMMA
| DASTERISK | TASTERISK | UNDERSCORE | DUNDERSCORE | TUNDERSCORE | TILDE | DTILDE
| TTILDE | LSBRA | RSBRA | LBRA | RBRA | BSLASH | SLASH | LABRA | RABRA | LCBRA
- | RCBRA | BACKTICK | TBACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT
+ | RCBRA | BACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT | SEMICOLON
+ | HEADER of int | FOOTNOTE of int | CITATION of string
```
Output: `ParsedObj list` :
```fsharp
type ParsedObj =
| CodeBlock of string * Language
- | Header of THeader
+ | Header of THeader * string // content of header, HTML id for linking
+ | ContentTable of Ttoc
| List of TList
| Paragraph of TLine list
| Quote of TLine
- | Table of Row list * Height: int * Width: int
- | PreTable of Content: Token list list * Height: int * Width: int
- | Footnote of ID: int * TLine
+ | Table of PRow list
+ | PreTable of Content: Token list list
+ | Footnote of int * TLine // inline id, end of doc
+ | Citation of string * TFrmtedString * TLine //ID,Inline,End of doc
```
* The Parser assumes `WHITESPACE`s will be grouped together,
@@ -60,16 +59,7 @@ and the acceptable form is `[WHITESPACE 3]`.
* Any character that does not have a mapping in `Token` is a `LITERAL`
-* `Footnote` will be produced by the other function and be inserted to the end of `ParsedObj list` during group work. This will be done before generating HTML.
-
-## Usage
-`parse` will either return result monad with either `ParsedObj list` or a string of Error message. Unparsed Tokens will be in the returned in the Error message.
-
-```fsharp
-open Parser
-
-val parse = Token list -> Result<ParsedObj list * string>
-```
+* `Footnote` and `Citation` will be produced by the preparser `TOCite`. These will be inserted at the end of the document before passing to HTMLGen.
## Function specs
@@ -98,86 +88,32 @@ turned into
* A newline starting with an `UNDERSCORE` emphasis should have at least one space before it.
-# Test Plan
-It is difficult to do property tests on a Markdown parser without the help of human interaction.
-
-Every sub-function of the Parser has been unit tested with best effort to make development agile.
-Sub-functions have been tested as they are written. Each time the code changes, the test bench will be run to ensure code correctness.
-What's more, it is easier to find point of failure from the `Expecto` test result, by examining the list of failed tests.
-
-Property tests can be done to ParserHelperFunctions, where putting a random integer to e.g. `WHITESPACE ()`. But this
-does not make too much difference than unit tests since it's the order of Tokens that matters.
-
-## Test cases
-### `parser`
-Test top level `parser` functionality
-
-| Test Item | Rationale |
-| ------------------------------------ | --------------------------------- |
-| literals with spaces between | |
-| literals with endline | |
-| literals and new empty paragraph | |
-| h2 header | |
-| fake h2 header | no space between hash and literal |
-| simple quote | |
-| paragraph starting with two endlines | leading endlines are ignored |
-| paragraph starting with one endline | leading endlines are ignored |
-| sample table | simplest table |
-| invalid table | invalid, therefore Paragraph |
-| just CODEBLOCK | |
-| CODEBLOCK and new paragraph | |
-
-### `parseParagraph`
-
-| Test Item | Rationale |
-| ---------------------------------------------------------- | --------------------------------- |
-| two simple paragraphs with code | inline code |
-| unmatched emphasis and new paragraph emphasis | unmatched emphasis -> normal text |
-| asterisk and underscore em, 1 newline literal, misc Tokens | |
-| nested emphasis | |
-
-### `parseInLineElements`
-
-| Test Item | Rationale |
-| ----------------------------------------- | ---------------------------------- |
-| literal and 2 endlines | |
-| literal with 2 whitespaces and 1 endline | |
-| two paragraphs | produce unparsed Tokens |
-| only inline code | |
-| inline code and literal | |
-| literal and underscore emphasis literal | |
-| literal and underscore emphasis, newTLine | the same paragraph, effect of <br> |
-| asterisk as emphasis | |
-| emphasis, asterisk w/o spaces | |
-| unmatched emphasis, underscore | parsed as normal literal |
-| unmatched emphasis, asterisk | parsed as normal literal |
-| unmatched, matched emphasis in new line | |
-
-### `parseLiteral`
-
-| Test Item | Rationale |
-| --------------------------------------------- | -------------------------------------------------------------------------------------- |
-| all valid literal and space | |
-| 4 Spaces | will be squashed to 1 space |
-| 1 endline between literals | do not stop parsing, add `\n` to string |
-| 2 endlines | stop parsing and return endlines and subsequent Tokens |
-| literal and asterisk | return literal, asterisk and subsequent Tokens |
-| literal and underscore, em end | return literal, underscore and subsequent Tokens |
-| literal and underscore, space before em start | return literal(including space) one Token before underscore <br> and subsequent Tokens |
-| underscore, no space before | return NULL literal, all Tokens |
-
-### `countSpaces`
-
-| Test Item | Rationale |
-| -------------------------------- | --------- |
-| 2 whitespace and literal | |
-| 2 whitespace with DOT in between | |
-| no whitespace | |
-
-### `countNewLines`
-
-| Test Item | Rationale |
-| --------------------------- | --------- |
-| 2 endline and literal | |
-| endline with dot in between | |
-| no endline | |
+---
+
+# Individual section, OUTDATED
+
+
+# Project Contribution
+The Parser takes `Token list` from the Lexer(or Tokenizer) and outputs `ParsedObj list`.
+After being manipulated by other top level functions, `ParsedObj list` will then be used to generate HTML.
+
+It follows [CommonMark Spec](http://spec.commonmark.org/0.28/). However, the Parser produced in individual-phased work is not a complete Markdown parser, due to limited time.
+
+In order to split work more evenly, the group has agreed that the majority of text will be parsed in this Parser,
+with the rest to be done by other team members.
+
+Here is a table of supported `ParsedObj`:
+
+| ParsedObj |
+| --------- |
+| CodeBlock |
+| Header |
+| Paragraph |
+| Quote |
+| PreTable* |
+
+Note:
+* `Link`, `Picture` and `Strong` are not yet supported.
+
+* `PreTable` is meant to be a _container_ for table `Token`s. It will then be further parsed by another function
+written by the other team member to produce `Table`. \ No newline at end of file
diff --git a/FMark/src/Common/Parser/Tests.md b/FMark/src/Common/Parser/Tests.md
new file mode 100644
index 0000000..cdd1a9e
--- /dev/null
+++ b/FMark/src/Common/Parser/Tests.md
@@ -0,0 +1,83 @@
+# Test Plan (OUTDATD)
+It is difficult to do property tests on a Markdown parser without the help of human interaction.
+
+Every sub-function of the Parser has been unit tested with best effort to make development agile.
+Sub-functions have been tested as they are written. Each time the code changes, the test bench will be run to ensure code correctness.
+What's more, it is easier to find point of failure from the `Expecto` test result, by examining the list of failed tests.
+
+Property tests can be done to ParserHelperFunctions, where putting a random integer to e.g. `WHITESPACE ()`. But this
+does not make too much difference than unit tests since it's the order of Tokens that matters.
+
+## Test cases
+### `parser`
+Test top level `parser` functionality
+
+| Test Item | Rationale |
+| ------------------------------------ | --------------------------------- |
+| literals with spaces between | |
+| literals with endline | |
+| literals and new empty paragraph | |
+| h2 header | |
+| fake h2 header | no space between hash and literal |
+| simple quote | |
+| paragraph starting with two endlines | leading endlines are ignored |
+| paragraph starting with one endline | leading endlines are ignored |
+| sample table | simplest table |
+| invalid table | invalid, therefore Paragraph |
+| just CODEBLOCK | |
+| CODEBLOCK and new paragraph | |
+
+### `parseParagraph`
+
+| Test Item | Rationale |
+| ---------------------------------------------------------- | --------------------------------- |
+| two simple paragraphs with code | inline code |
+| unmatched emphasis and new paragraph emphasis | unmatched emphasis -> normal text |
+| asterisk and underscore em, 1 newline literal, misc Tokens | |
+| nested emphasis | |
+
+### `parseInLineElements`
+
+| Test Item | Rationale |
+| ----------------------------------------- | ---------------------------------- |
+| literal and 2 endlines | |
+| literal with 2 whitespaces and 1 endline | |
+| two paragraphs | produce unparsed Tokens |
+| only inline code | |
+| inline code and literal | |
+| literal and underscore emphasis literal | |
+| literal and underscore emphasis, newTLine | the same paragraph, effect of <br> |
+| asterisk as emphasis | |
+| emphasis, asterisk w/o spaces | |
+| unmatched emphasis, underscore | parsed as normal literal |
+| unmatched emphasis, asterisk | parsed as normal literal |
+| unmatched, matched emphasis in new line | |
+
+### `parseLiteral`
+
+| Test Item | Rationale |
+| --------------------------------------------- | -------------------------------------------------------------------------------------- |
+| all valid literal and space | |
+| 4 Spaces | will be squashed to 1 space |
+| 1 endline between literals | do not stop parsing, add `\n` to string |
+| 2 endlines | stop parsing and return endlines and subsequent Tokens |
+| literal and asterisk | return literal, asterisk and subsequent Tokens |
+| literal and underscore, em end | return literal, underscore and subsequent Tokens |
+| literal and underscore, space before em start | return literal(including space) one Token before underscore <br> and subsequent Tokens |
+| underscore, no space before | return NULL literal, all Tokens |
+
+### `countSpaces`
+
+| Test Item | Rationale |
+| -------------------------------- | --------- |
+| 2 whitespace and literal | |
+| 2 whitespace with DOT in between | |
+| no whitespace | |
+
+### `countNewLines`
+
+| Test Item | Rationale |
+| --------------------------- | --------- |
+| 2 endline and literal | |
+| endline with dot in between | |
+| no endline | | \ No newline at end of file
diff --git a/FMark/src/Common/TOCite/README.md b/FMark/src/Common/TOCite/README.md
index 3058236..13b2875 100644
--- a/FMark/src/Common/TOCite/README.md
+++ b/FMark/src/Common/TOCite/README.md
@@ -43,7 +43,7 @@ This will build a table of content between paragraph 1 and 2, and only
contain headers of level 1 2, and 3.
```
-%%TOC depth=3, excludes=["Appendix","Acknowledgement"]
+%%TOC depth=3, excludes=[Appendix;Acknowledgement]
```
This table of content will exclude headers with the specified name.
diff --git a/README.md b/README.md
index 444b201..da2f391 100644
--- a/README.md
+++ b/README.md
@@ -123,7 +123,7 @@ A paragraph is some characters that does not match:
* Table
* Reference
-It terminates with two endlines. Any elements mentions above cannot exist in a paragraph. Otherwise, they will become normal text, and will not be rendered as expected.
+It terminates with two endlines. Any elements mentioned above cannot exist in a paragraph. Otherwise, they will become normal text, and will not be rendered as expected.
# Markdown extensions
@@ -260,13 +260,11 @@ in html.
|Feature|Example|Exaplanation
|---|---|---|
|depth|`%%TOC depth=3`|Build a TOC with headers level less than 3
-|exclude|`%%TOC excludes=["Appendix","Acknowledgement"]`|Exclude headers with name `Appendix` and `Acknowledgement`|
+|exclude|`%%TOC excludes=[Appendix;Acknowledgement]`|Exclude headers with name `Appendix` and `Acknowledgement`|
Multiple features can be stacked with `,` like so:
-`%%TOC depth=3, excludes=["Appendix","Acknowledgement"]`
-
-_TODO: show an example?_
+`%%TOC depth=3, excludes=[Appendix;Acknowledgement]`
## Citations
diff --git a/examples/example.fmark b/examples/example.fmark
index c89b991..5c87c5f 100644
--- a/examples/example.fmark
+++ b/examples/example.fmark
@@ -4,6 +4,7 @@
## Table of contents
<!-- Relative links do not work in VS code, use Create HTML File. -->
+
%%TOC depth=3
## Macros