occam-grammars 1.3.66 → 1.3.69
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/example.js +3 -3
- package/lib/furtle/bnf.js +2 -2
- package/lib/furtle/entries.js +2 -2
- package/package.json +1 -1
- package/src/furtle/bnf.js +15 -8
- package/src/furtle/entries.js +1 -1
package/lib/furtle/bnf.js
CHANGED
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return _default;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var bnf = 'document ::= ( procedureDeclaration | error )+ ;\n\n\n\nprocedureDeclaration ::= [type] label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;\n\n\n\nerror. ::= . ;\n\n\n\nvariablesDeclaration ::= [type] variable assignment? ( "," variable assignment? )* ";" ;\n\nvariableAssignment ::= variable assignment ";" ;\n\nconditionalBlocks ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nobjectAssignment ::= "(" parameters ")" "=" variable ";" ;\n\narrayAssignment ::= "[" parameters "]" "=" variable ";" ;\n \nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ";" ;\n\n\n\nanonymousProcedure ::= "(" parameters? ")" block ;\n\nbracketedCondition ::= "(" condition ")" ; \n\nbitwiseCondition ::= condition ( "||" | "&&" ) condition ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\
|
|
11
|
+
var bnf = 'document ::= ( procedureDeclaration | error )+ ;\n\n\n\nprocedureDeclaration ::= [type] label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;\n\n\n\nerror. ::= . ;\n\n\n\nvariablesDeclaration ::= [type] variable assignment? ( "," variable assignment? )* ";" ;\n\nvariableAssignment ::= variable assignment ";" ;\n\nconditionalBlocks ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nobjectAssignment ::= "(" parameters ")" "=" variable ";" ;\n\narrayAssignment ::= "[" parameters "]" "=" variable ";" ;\n \nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ";" ;\n\n\n\nanonymousProcedure ::= "(" parameters? ")" block ;\n\n\n\ncondition ::= bracketedCondition \n\n | bitwiseCondition \n\n | negatedCondition \n\n | comparison \n\n | value \n \n ;\n \nbracketedCondition ::= "(" condition ")" ; \n\nbitwiseCondition ::= condition ( "||" | "&&" ) condition ; \n\nnegatedCondition ::= "!"<NO_WHITESPACE>condition ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\n\n\n\nblock.. ::= "{" ( step | nonsense )* "}" ;\n\nreturnBlock.. ::= "{" ( step | nonsense )* returnStatement "}" ;\n \nreturnStatement ::= [return] value ";" ; \n\n\n\nstep ::= variablesDeclaration\n \n | variableAssignment\n \n | conditionalBlocks\n \n | objectAssignment\n \n | arrayAssignment\n \n | forEachLoop\n \n ; \n \nassignment ::= "=" ( procedureCall | nodesQuery | nodeQuery | value ) ;\n\n\n\nprocedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;\n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\n\n\nparameters ::= parameter ( "," parameter )* ;\n\nvalues ::= value ( "," value )* ;\n\n\n\nvalue ::= variable | [number] | [primitive] | [string-literal] ;\n\nvariable ::= [name] ;\n\nparameter ::= [type] [name]\n\n | "_" \n\n ;\n\n\n\nlabel. ::= [name] ;\n\nreference. ::= [name] ;\n\n\n\nnonsense. ::= [type] | [keyword] | [primitive] | [query] | [special] | [name] | [number] | [unassigned] ;\n \n\n \nexpression ::= path spread? subExpression? ;\n\npath ::= "/" infiniteDescent? selectors ;\n\nsubExpression ::= path spread? subExpression?;\n\ninfiniteDescent ::= "/" ;\n\nselectors ::= selector ( "|" selector )* ;\n\nspread ::= unique\n\n | "[" \n \n ( \n \n ( startIndex "..." endIndex ) \n \n | \n \n ( startIndex "..." ) \n \n | \n \n ( "..." endIndex )\n \n | \n \n index \n \n ) \n \n "]" ;\n\nselector ::= ruleName | tokenType ;\n \nruleName ::= [name] | "*" ;\n \ntokenType ::= "@"<NO_WHITESPACE>( [name] | "*" ) ;\n \nstartIndex ::= [number] ;\n \nendIndex ::= [number] ;\n \nindex ::= [number] ;\n \nunique ::= "!" ;';
|
|
12
12
|
var _default = bnf;
|
|
13
13
|
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgICA6Oj0gICggcHJvY2VkdXJlRGVjbGFyYXRpb24gfCBlcnJvciApKyA7XG5cblxuXG5wcm9jZWR1cmVEZWNsYXJhdGlvbiAgIDo6PSAgW3R5cGVdIGxhYmVsPE5PX1dISVRFU1BBQ0U+XCIoXCIgcGFyYW1ldGVycz8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuXG5cblxuZXJyb3IuICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVzRGVjbGFyYXRpb24gICA6Oj0gIFt0eXBlXSB2YXJpYWJsZSBhc3NpZ25tZW50PyAoIFwiLFwiIHZhcmlhYmxlIGFzc2lnbm1lbnQ/ICkqIFwiO1wiIDtcblxudmFyaWFibGVBc3NpZ25tZW50ICAgICA6Oj0gIHZhcmlhYmxlIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5jb25kaXRpb25hbEJsb2NrcyAgICAgIDo6PSAgXCJJZlwiIFwiKFwiIGNvbmRpdGlvbiBcIilcIiBibG9jayAoIFwiRWxzZVwiIGJsb2NrICk/IDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgIDo6PSAgXCIoXCIgcGFyYW1ldGVycyBcIilcIiBcIj1cIiB2YXJpYWJsZSBcIjtcIiA7XG5cbmFycmF5QXNzaWdubWVudCAgICAgICAgOjo9ICBcIltcIiBwYXJhbWV0ZXJzIFwiXVwiIFwiPVwiIHZhcmlhYmxlIFwiO1wiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZm9yRWFjaExvb3AgICAgICAgICAgICA6Oj0gIFwiRm9yRWFjaFwiPE5PX1dISVRFU1BBQ0U+
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgICA6Oj0gICggcHJvY2VkdXJlRGVjbGFyYXRpb24gfCBlcnJvciApKyA7XG5cblxuXG5wcm9jZWR1cmVEZWNsYXJhdGlvbiAgIDo6PSAgW3R5cGVdIGxhYmVsPE5PX1dISVRFU1BBQ0U+XCIoXCIgcGFyYW1ldGVycz8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuXG5cblxuZXJyb3IuICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVzRGVjbGFyYXRpb24gICA6Oj0gIFt0eXBlXSB2YXJpYWJsZSBhc3NpZ25tZW50PyAoIFwiLFwiIHZhcmlhYmxlIGFzc2lnbm1lbnQ/ICkqIFwiO1wiIDtcblxudmFyaWFibGVBc3NpZ25tZW50ICAgICA6Oj0gIHZhcmlhYmxlIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5jb25kaXRpb25hbEJsb2NrcyAgICAgIDo6PSAgXCJJZlwiIFwiKFwiIGNvbmRpdGlvbiBcIilcIiBibG9jayAoIFwiRWxzZVwiIGJsb2NrICk/IDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgIDo6PSAgXCIoXCIgcGFyYW1ldGVycyBcIilcIiBcIj1cIiB2YXJpYWJsZSBcIjtcIiA7XG5cbmFycmF5QXNzaWdubWVudCAgICAgICAgOjo9ICBcIltcIiBwYXJhbWV0ZXJzIFwiXVwiIFwiPVwiIHZhcmlhYmxlIFwiO1wiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZm9yRWFjaExvb3AgICAgICAgICAgICA6Oj0gIFwiRm9yRWFjaFwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIFwiO1wiIDtcblxuXG5cbmFub255bW91c1Byb2NlZHVyZSAgICAgOjo9ICBcIihcIiBwYXJhbWV0ZXJzPyBcIilcIiBibG9jayA7XG5cblxuXG5jb25kaXRpb24gICAgICAgICAgICAgIDo6PSAgYnJhY2tldGVkQ29uZGl0aW9uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgYml0d2lzZUNvbmRpdGlvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5lZ2F0ZWRDb25kaXRpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb21wYXJpc29uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFsdWUgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbmJyYWNrZXRlZENvbmRpdGlvbiAgICAgOjo9ICBcIihcIiBjb25kaXRpb24gXCIpXCIgOyBcblxuYml0d2lzZUNvbmRpdGlvbiAgICAgICA6Oj0gIGNvbmRpdGlvbiAoIFwifHxcIiB8IFwiJiZcIiApIGNvbmRpdGlvbiA7IFxuXG5uZWdhdGVkQ29uZGl0aW9uICAgICAgIDo6PSAgXCIhXCI8Tk9fV0hJVEVTUEFDRT5jb25kaXRpb24gOyBcblxuY29tcGFyaXNvbiAgICAgICAgICAgICA6Oj0gIHZhbHVlICggXCIhPVwiIHwgXCI9PVwiICkgdmFsdWUgOyBcblxuXG5cblxuYmxvY2suLiAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIFwifVwiIDtcblxucmV0dXJuQmxvY2suLiAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIHJldHVyblN0YXRlbWVudCBcIn1cIiA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbnJldHVyblN0YXRlbWVudCAgICAgICAgOjo9ICBbcmV0dXJuXSB2YWx1ZSBcIjtcIiA7IFxuXG5cblxuc3RlcCAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlc0RlY2xhcmF0aW9uXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbmRpdGlvbmFsQmxvY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG9iamVjdEFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgYXJyYXlBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGZvckVhY2hMb29wXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuICBcbmFzc2lnbm1lbnQgICAgICAgICAgICAgOjo9ICBcIj1cIiAoIHByb2NlZHVyZUNhbGwgfCBub2Rlc1F1ZXJ5IHwgbm9kZVF1ZXJ5IHwgdmFsdWUgKSA7XG5cblxuXG5wcm9jZWR1cmVDYWxsICAgICAgICAgIDo6PSAgcmVmZXJlbmNlPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFsdWVzPyBcIilcIiA7XG5cbm5vZGVzUXVlcnkgICAgICAgICAgICAgOjo9ICBcIm5vZGVzUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5ub2RlUXVlcnkgICAgICAgICAgICAgIDo6PSAgXCJub2RlUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5cblxucGFyYW1ldGVycyAgICAgICAgICAgICA6Oj0gIHBhcmFtZXRlciAoIFwiLFwiIHBhcmFtZXRlciApKiA7XG5cbnZhbHVlcyAgICAgICAgICAgICAgICAgOjo9ICB2YWx1ZSAoIFwiLFwiIHZhbHVlICkqIDtcblxuXG5cbnZhbHVlICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZSB8IFtudW1iZXJdIHwgW3ByaW1pdGl2ZV0gfCBbc3RyaW5nLWxpdGVyYWxdIDtcblxudmFyaWFibGUgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG5cbnBhcmFtZXRlciAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gW25hbWVdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIl9cIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbmxhYmVsLiAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5yZWZlcmVuY2UuICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcblxuXG5cbm5vbnNlbnNlLiAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gfCBba2V5d29yZF0gfCBbcHJpbWl0aXZlXSB8IFtxdWVyeV0gfCBbc3BlY2lhbF0gfCBbbmFtZV0gfCBbbnVtYmVyXSB8IFt1bmFzc2lnbmVkXSA7XG4gICAgXG5cbiAgICBcbmV4cHJlc3Npb24gICAgICAgICAgICAgOjo9ICBwYXRoIHNwcmVhZD8gc3ViRXhwcmVzc2lvbj8gO1xuXG5wYXRoICAgICAgICAgICAgICAgICAgIDo6PSAgXCIvXCIgaW5maW5pdGVEZXNjZW50PyBzZWxlY3RvcnMgO1xuXG5zdWJFeHByZXNzaW9uICAgICAgICAgIDo6PSAgcGF0aCBzcHJlYWQ/IHN1YkV4cHJlc3Npb24/O1xuXG5pbmZpbml0ZURlc2NlbnQgICAgICAgIDo6PSAgXCIvXCIgO1xuXG5zZWxlY3RvcnMgICAgICAgICAgICAgIDo6PSAgc2VsZWN0b3IgKCBcInxcIiBzZWxlY3RvciApKiA7XG5cbnNwcmVhZCAgICAgICAgICAgICAgICAgOjo9ICB1bmlxdWVcblxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiW1wiIFxuICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdGFydEluZGV4IFwiLi4uXCIgZW5kSW5kZXggKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBzdGFydEluZGV4IFwiLi4uXCIgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIi4uLlwiIGVuZEluZGV4IClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgO1xuXG5zZWxlY3RvciAgICAgICAgICAgICAgIDo6PSAgcnVsZU5hbWUgfCB0b2tlblR5cGUgO1xuICAgICAgICAgICAgICAgICAgIFxucnVsZU5hbWUgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSB8IFwiKlwiIDtcbiAgICAgICAgICAgICAgICAgICBcbnRva2VuVHlwZSAgICAgICAgICAgICAgOjo9ICBcIkBcIjxOT19XSElURVNQQUNFPiggW25hbWVdIHwgXCIqXCIgKSA7XG4gICAgICAgICAgICAgICAgICAgXG5zdGFydEluZGV4ICAgICAgICAgICAgIDo6PSAgW251bWJlcl0gO1xuICAgICAgICAgICAgICAgICAgIFxuZW5kSW5kZXggICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmluZGV4ICAgICAgICAgICAgICAgICAgOjo9ICBbbnVtYmVyXSA7XG4gICAgICAgICAgICAgICAgICAgXG51bmlxdWUgICAgICAgICAgICAgICAgIDo6PSAgXCIhXCIgO2A7XG5cbmV4cG9ydCBkZWZhdWx0IGJuZjtcbiJdLCJuYW1lcyI6WyJibmYiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXFLQTs7O2VBQUE7OztBQW5LQSxJQUFNQSxNQUFPO0lBbUtiLFdBQWVBIn0=
|
package/lib/furtle/entries.js
CHANGED
|
@@ -28,7 +28,7 @@ var entries = [
|
|
|
28
28
|
"bracket": "^(?:\\{|\\})"
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
"special": "^(
|
|
31
|
+
"special": "^(?:!=|!|==|=|,|;|_|&&|\\|\\||@|!|\\*|\\||\\/|\\(|\\)|\\[|\\]|\\.\\.\\.)"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"name": "^[a-zA-Z\-]+"
|
|
@@ -42,4 +42,4 @@ var entries = [
|
|
|
42
42
|
];
|
|
43
43
|
var _default = entries;
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvZW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmNvbnN0IGVudHJpZXMgPSBbXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Ok5vZGVzfE5vZGV8U3RyaW5nfE51bWJlcnxCb29sZWFuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiXig/Om5vZGVRdWVyeXxub2Rlc1F1ZXJ5KVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInJldHVyblwiOiBcIl5SZXR1cm5cIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJrZXl3b3JkXCI6IFwiXig/
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvZW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmNvbnN0IGVudHJpZXMgPSBbXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Ok5vZGVzfE5vZGV8U3RyaW5nfE51bWJlcnxCb29sZWFuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiXig/Om5vZGVRdWVyeXxub2Rlc1F1ZXJ5KVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInJldHVyblwiOiBcIl5SZXR1cm5cIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJrZXl3b3JkXCI6IFwiXig/OklmfEVsc2V8Rm9yRWFjaClcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJwcmltaXRpdmVcIjogXCJeKD86bnVsbHx0cnVlfGZhbHNlKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcImJyYWNrZXRcIjogXCJeKD86XFxcXHt8XFxcXH0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwic3BlY2lhbFwiOiBcIl4oPzohPXwhfD09fD18LHw7fF98JiZ8XFxcXHxcXFxcfHxAfCF8XFxcXCp8XFxcXHx8XFxcXC98XFxcXCh8XFxcXCl8XFxcXFt8XFxcXF18XFxcXC5cXFxcLlxcXFwuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogXCJeW2EtekEtWlxcLV0rXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwibnVtYmVyXCI6IFwiXlswLTldK1wiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInVuYXNzaWduZWRcIjogXCJeLlwiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1DQTs7O2VBQUE7OztBQWpDQSxJQUFNQSxVQUFVO0lBQ2Q7UUFDRSxRQUFRO0lBQ1Y7SUFDQTtRQUNFLFNBQVM7SUFDWDtJQUNBO1FBQ0UsVUFBVTtJQUNaO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLGFBQWE7SUFDZjtJQUNBO1FBQ0UsV0FBVztJQUNiO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLFFBQVE7SUFDVjtJQUNBO1FBQ0UsVUFBVTtJQUNaO0lBQ0E7UUFDRSxjQUFjO0lBQ2hCO0NBQ0Q7SUFFRCxXQUFlQSJ9
|
package/package.json
CHANGED
package/src/furtle/bnf.js
CHANGED
|
@@ -28,22 +28,29 @@ forEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousPr
|
|
|
28
28
|
|
|
29
29
|
anonymousProcedure ::= "(" parameters? ")" block ;
|
|
30
30
|
|
|
31
|
-
bracketedCondition ::= "(" condition ")" ;
|
|
32
|
-
|
|
33
|
-
bitwiseCondition ::= condition ( "||" | "&&" ) condition ;
|
|
34
31
|
|
|
35
|
-
comparison ::= value ( "!=" | "==" ) value ;
|
|
36
32
|
|
|
37
33
|
condition ::= bracketedCondition
|
|
38
34
|
|
|
39
35
|
| bitwiseCondition
|
|
40
36
|
|
|
37
|
+
| negatedCondition
|
|
38
|
+
|
|
41
39
|
| comparison
|
|
42
40
|
|
|
43
41
|
| value
|
|
44
42
|
|
|
45
43
|
;
|
|
46
44
|
|
|
45
|
+
bracketedCondition ::= "(" condition ")" ;
|
|
46
|
+
|
|
47
|
+
bitwiseCondition ::= condition ( "||" | "&&" ) condition ;
|
|
48
|
+
|
|
49
|
+
negatedCondition ::= "!"<NO_WHITESPACE>condition ;
|
|
50
|
+
|
|
51
|
+
comparison ::= value ( "!=" | "==" ) value ;
|
|
52
|
+
|
|
53
|
+
|
|
47
54
|
|
|
48
55
|
|
|
49
56
|
block.. ::= "{" ( step | nonsense )* "}" ;
|
|
@@ -68,10 +75,6 @@ step ::= variablesDeclaration
|
|
|
68
75
|
|
|
69
76
|
;
|
|
70
77
|
|
|
71
|
-
nonsense. ::= [type] | [keyword] | [primitive] | [query] | [special] | [name] | [number] | [unassigned] ;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
78
|
assignment ::= "=" ( procedureCall | nodesQuery | nodeQuery | value ) ;
|
|
76
79
|
|
|
77
80
|
|
|
@@ -108,6 +111,10 @@ reference. ::= [name] ;
|
|
|
108
111
|
|
|
109
112
|
|
|
110
113
|
|
|
114
|
+
nonsense. ::= [type] | [keyword] | [primitive] | [query] | [special] | [name] | [number] | [unassigned] ;
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
111
118
|
expression ::= path spread? subExpression? ;
|
|
112
119
|
|
|
113
120
|
path ::= "/" infiniteDescent? selectors ;
|
package/src/furtle/entries.js
CHANGED
|
@@ -20,7 +20,7 @@ const entries = [
|
|
|
20
20
|
"bracket": "^(?:\\{|\\})"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
"special": "^(
|
|
23
|
+
"special": "^(?:!=|!|==|=|,|;|_|&&|\\|\\||@|!|\\*|\\||\\/|\\(|\\)|\\[|\\]|\\.\\.\\.)"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "^[a-zA-Z\-]+"
|