fable 3.0.22 → 3.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fable.js
CHANGED
|
@@ -2011,10 +2011,11 @@
|
|
|
2011
2011
|
* Parse a string with the existing parse tree
|
|
2012
2012
|
* @method parseString
|
|
2013
2013
|
* @param {string} pString - The string to parse
|
|
2014
|
+
* @param {object} pData - Data to pass in as the second argument
|
|
2014
2015
|
* @return {string} The result from the parser
|
|
2015
2016
|
*/
|
|
2016
|
-
parseString(pString) {
|
|
2017
|
-
return this.StringParser.parseString(pString, this.ParseTree);
|
|
2017
|
+
parseString(pString, pData) {
|
|
2018
|
+
return this.StringParser.parseString(pString, this.ParseTree, pData);
|
|
2018
2019
|
}
|
|
2019
2020
|
}
|
|
2020
2021
|
module.exports = Precedent;
|
|
@@ -2104,11 +2105,11 @@
|
|
|
2104
2105
|
* @param {Object} pParserState - The state object for the current parsing task
|
|
2105
2106
|
* @private
|
|
2106
2107
|
*/
|
|
2107
|
-
checkPatternEnd(pParserState) {
|
|
2108
|
+
checkPatternEnd(pParserState, pData) {
|
|
2108
2109
|
if (pParserState.OutputBuffer.length >= pParserState.Pattern.PatternEnd.length + pParserState.Pattern.PatternStart.length && pParserState.OutputBuffer.substr(-pParserState.Pattern.PatternEnd.length) === pParserState.Pattern.PatternEnd) {
|
|
2109
2110
|
// ... this is the end of a pattern, cut off the end tag and parse it.
|
|
2110
2111
|
// Trim the start and end tags off the output buffer now
|
|
2111
|
-
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStart.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStart.length + pParserState.Pattern.PatternEnd.length)));
|
|
2112
|
+
pParserState.OutputBuffer = pParserState.Pattern.Parse(pParserState.OutputBuffer.substr(pParserState.Pattern.PatternStart.length, pParserState.OutputBuffer.length - (pParserState.Pattern.PatternStart.length + pParserState.Pattern.PatternEnd.length)), pData);
|
|
2112
2113
|
// Flush the output buffer.
|
|
2113
2114
|
this.flushOutputBuffer(pParserState);
|
|
2114
2115
|
// End pattern mode
|
|
@@ -2124,7 +2125,7 @@
|
|
|
2124
2125
|
* @param {Object} pParserState - The state object for the current parsing task
|
|
2125
2126
|
* @private
|
|
2126
2127
|
*/
|
|
2127
|
-
parseCharacter(pCharacter, pParserState) {
|
|
2128
|
+
parseCharacter(pCharacter, pParserState, pData) {
|
|
2128
2129
|
// (1) If we aren't in a pattern match, and we aren't potentially matching, and this may be the start of a new pattern....
|
|
2129
2130
|
if (!pParserState.PatternMatch && pParserState.ParseTree.hasOwnProperty(pCharacter)) {
|
|
2130
2131
|
// ... assign the node as the matched node.
|
|
@@ -2141,7 +2142,7 @@
|
|
|
2141
2142
|
this.appendOutputBuffer(pCharacter, pParserState);
|
|
2142
2143
|
if (pParserState.Pattern) {
|
|
2143
2144
|
// ... Check if this is the end of the pattern (if we are matching a valid pattern)...
|
|
2144
|
-
this.checkPatternEnd(pParserState);
|
|
2145
|
+
this.checkPatternEnd(pParserState, pData);
|
|
2145
2146
|
}
|
|
2146
2147
|
}
|
|
2147
2148
|
// (3) If we aren't in a pattern match or pattern, and this isn't the start of a new pattern (RAW mode)....
|
|
@@ -2155,12 +2156,13 @@
|
|
|
2155
2156
|
* @method parseString
|
|
2156
2157
|
* @param {string} pString - The string to parse.
|
|
2157
2158
|
* @param {Object} pParseTree - The parse tree to begin parsing from (usually root)
|
|
2159
|
+
* @param {Object} pData - The data to pass to the function as a second paramter
|
|
2158
2160
|
*/
|
|
2159
|
-
parseString(pString, pParseTree) {
|
|
2161
|
+
parseString(pString, pParseTree, pData) {
|
|
2160
2162
|
let tmpParserState = this.newParserState(pParseTree);
|
|
2161
2163
|
for (var i = 0; i < pString.length; i++) {
|
|
2162
2164
|
// TODO: This is not fast.
|
|
2163
|
-
this.parseCharacter(pString[i], tmpParserState);
|
|
2165
|
+
this.parseCharacter(pString[i], tmpParserState, pData);
|
|
2164
2166
|
}
|
|
2165
2167
|
this.flushOutputBuffer(tmpParserState);
|
|
2166
2168
|
return tmpParserState.Output;
|
package/dist/fable.min.js
CHANGED
|
@@ -75,7 +75,7 @@ var n=t("./Fable-UUID-Random.js");class i{constructor(t){this._UUIDModeRandom=!(
|
|
|
75
75
|
*
|
|
76
76
|
* @description Process text streams, parsing out meta-template expressions.
|
|
77
77
|
*/
|
|
78
|
-
var n=t("./WordTree.js"),i=t("./StringParser.js");e.exports=class{constructor(){this.WordTree=new n,this.StringParser=new i,this.ParseTree=this.WordTree.ParseTree}addPattern(t,e,r){return this.WordTree.addPattern(t,e,r)}parseString(t){return this.StringParser.parseString(t,this.ParseTree)}}},{"./StringParser.js":31,"./WordTree.js":32}],31:[function(t,e,r){e.exports=
|
|
78
|
+
var n=t("./WordTree.js"),i=t("./StringParser.js");e.exports=class{constructor(){this.WordTree=new n,this.StringParser=new i,this.ParseTree=this.WordTree.ParseTree}addPattern(t,e,r){return this.WordTree.addPattern(t,e,r)}parseString(t,e){return this.StringParser.parseString(t,this.ParseTree,e)}}},{"./StringParser.js":31,"./WordTree.js":32}],31:[function(t,e,r){e.exports=
|
|
79
79
|
/**
|
|
80
80
|
* String Parser
|
|
81
81
|
*
|
|
@@ -85,7 +85,7 @@ var n=t("./WordTree.js"),i=t("./StringParser.js");e.exports=class{constructor(){
|
|
|
85
85
|
*
|
|
86
86
|
* @description Parse a string, properly processing each matched token in the word tree.
|
|
87
87
|
*/
|
|
88
|
-
class{constructor(){}newParserState(t){return{ParseTree:t,Output:"",OutputBuffer:"",Pattern:!1,PatternMatch:!1,PatternMatchOutputBuffer:""}}assignNode(t,e){e.PatternMatch=t,e.PatternMatch.hasOwnProperty("PatternEnd")&&(e.Pattern=e.PatternMatch)}appendOutputBuffer(t,e){e.OutputBuffer+=t}flushOutputBuffer(t){t.Output+=t.OutputBuffer,t.OutputBuffer=""}checkPatternEnd(t){t.OutputBuffer.length>=t.Pattern.PatternEnd.length+t.Pattern.PatternStart.length&&t.OutputBuffer.substr(-t.Pattern.PatternEnd.length)===t.Pattern.PatternEnd&&(t.OutputBuffer=t.Pattern.Parse(t.OutputBuffer.substr(t.Pattern.PatternStart.length,t.OutputBuffer.length-(t.Pattern.PatternStart.length+t.Pattern.PatternEnd.length))),this.flushOutputBuffer(t),t.Pattern=!1,t.PatternMatch=!1)}parseCharacter(t,e){!e.PatternMatch&&e.ParseTree.hasOwnProperty(t)?(this.assignNode(e.ParseTree[t],e),this.appendOutputBuffer(t,e)):e.PatternMatch?(e.PatternMatch.hasOwnProperty(t)&&this.assignNode(e.PatternMatch[t],e),this.appendOutputBuffer(t,e),e.Pattern&&this.checkPatternEnd(e)):e.Output+=t}parseString(t,e){let
|
|
88
|
+
class{constructor(){}newParserState(t){return{ParseTree:t,Output:"",OutputBuffer:"",Pattern:!1,PatternMatch:!1,PatternMatchOutputBuffer:""}}assignNode(t,e){e.PatternMatch=t,e.PatternMatch.hasOwnProperty("PatternEnd")&&(e.Pattern=e.PatternMatch)}appendOutputBuffer(t,e){e.OutputBuffer+=t}flushOutputBuffer(t){t.Output+=t.OutputBuffer,t.OutputBuffer=""}checkPatternEnd(t,e){t.OutputBuffer.length>=t.Pattern.PatternEnd.length+t.Pattern.PatternStart.length&&t.OutputBuffer.substr(-t.Pattern.PatternEnd.length)===t.Pattern.PatternEnd&&(t.OutputBuffer=t.Pattern.Parse(t.OutputBuffer.substr(t.Pattern.PatternStart.length,t.OutputBuffer.length-(t.Pattern.PatternStart.length+t.Pattern.PatternEnd.length)),e),this.flushOutputBuffer(t),t.Pattern=!1,t.PatternMatch=!1)}parseCharacter(t,e,r){!e.PatternMatch&&e.ParseTree.hasOwnProperty(t)?(this.assignNode(e.ParseTree[t],e),this.appendOutputBuffer(t,e)):e.PatternMatch?(e.PatternMatch.hasOwnProperty(t)&&this.assignNode(e.PatternMatch[t],e),this.appendOutputBuffer(t,e),e.Pattern&&this.checkPatternEnd(e,r)):e.Output+=t}parseString(t,e,r){let n=this.newParserState(e);for(var i=0;i<t.length;i++)this.parseCharacter(t[i],n,r);return this.flushOutputBuffer(n),n.Output}}},{}],32:[function(t,e,r){e.exports=
|
|
89
89
|
/**
|
|
90
90
|
* Word Tree
|
|
91
91
|
*
|