occam-grammars 1.3.56 → 1.3.57

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/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>"(" ( parameter ( "," parameter )* )? ")" returnBlock ;\n\n\n\nerror. ::= . ;\n\n\n\nvariablesDeclaration ::= [type] variable assignment? ( "," variable assignment? )* ";" ;\n\nvariableAssignment ::= variable assignment ";" ;\n\nobjectAssignment ::= "(" \n\n [type] variable ( "," [type] variable )* \n \n ")" "=" variable ";" ;\n\narrayAssignment ::= "[" \n\n ( \n\n ( dummyVariable ( "," dummyVariable )* ( "," [type] variable )+ ) \n \n | \n \n ( [type] variable ( "," [type] variable )* ) \n \n ) \n \n "]" "=" variable ";" ;\n \n \n\nanonymousProcedure ::= "(" ( parameter ( "," parameter )* )? ")" block ;\n\nconditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ";" ;\n\n\n\ncondition ::= bracketedCondition \n\n | bitwiseCondition \n\n | comparison \n\n | value \n \n ;\n \nbracketedCondition ::= "(" condition ")" ; \n\nbitwiseCondition ::= condition ( "||" | "&&" ) condition ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\n\n\nreturnBlock.. ::= "{" ( step | nonsense )* returnStatement? "}" ;\n \nblock.. ::= "{" ( step | nonsense )* "}" ;\n\n\n\nstep ::= variablesDeclaration\n \n | variableAssignment\n \n | objectAssignment\n \n | arrayAssignment\n \n | conditionalBlock\n \n | forEachLoop\n \n ; \n \nnonsense. ::= [type] | [keyword] | [primitive] | [query] | [special] | [name] | [number] | [unassigned] ;\n \n\n \nreturnStatement ::= [return] value ";" ; \n\n\n\nprocedureCall ::= reference<NO_WHITESPACE>"(" ( value ( "," value )* )? ")" ;\n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\n\n\nvalue ::= variable | [number] | [primitive] | [string-literal] ;\n\nparameter ::= [type] [name] ;\n\nvariable ::= [name] ;\n\nassignment ::= "=" ( procedureCall | nodesQuery | nodeQuery | value ) ;\n\ndummyVariable ::= "_" ;\n\n\n\nlabel. ::= [name] ;\n\nreference. ::= [name] ;\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 ::= "!" ;';
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\nobjectAssignment ::= "(" \n\n [type] variable ( "," [type] variable )* \n \n ")" "=" variable ";" ;\n\narrayAssignment ::= "[" \n\n ( \n\n ( dummyVariable ( "," dummyVariable )* ( "," [type] variable )+ ) \n \n | \n \n ( [type] variable ( "," [type] variable )* ) \n \n ) \n \n "]" "=" variable ";" ;\n \n \n\nanonymousProcedure ::= "(" parameters? ")" block ;\n\nconditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ";" ;\n\n\n\ncondition ::= bracketedCondition \n\n | bitwiseCondition \n\n | comparison \n\n | value \n \n ;\n \nbracketedCondition ::= "(" condition ")" ; \n\nbitwiseCondition ::= condition ( "||" | "&&" ) condition ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\n\n\nreturnBlock.. ::= "{" ( step | nonsense )* returnStatement? "}" ;\n \nblock.. ::= "{" ( step | nonsense )* "}" ;\n\n\n\nstep ::= variablesDeclaration\n \n | variableAssignment\n \n | objectAssignment\n \n | arrayAssignment\n \n | conditionalBlock\n \n | forEachLoop\n \n ; \n \nnonsense. ::= [type] | [keyword] | [primitive] | [query] | [special] | [name] | [number] | [unassigned] ;\n \n\n \nreturnStatement ::= [return] 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\nassignment ::= "=" ( procedureCall | nodesQuery | nodeQuery | value ) ;\n\ndummyVariable ::= "_" ;\n\n\n\nlabel. ::= [name] ;\n\nreference. ::= [name] ;\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+XCIoXCIgKCBwYXJhbWV0ZXIgKCBcIixcIiBwYXJhbWV0ZXIgKSogKT8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuXG5cblxuZXJyb3IuICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVzRGVjbGFyYXRpb24gICA6Oj0gIFt0eXBlXSB2YXJpYWJsZSBhc3NpZ25tZW50PyAoIFwiLFwiIHZhcmlhYmxlIGFzc2lnbm1lbnQ/ICkqIFwiO1wiIDtcblxudmFyaWFibGVBc3NpZ25tZW50ICAgICA6Oj0gIHZhcmlhYmxlIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgIDo6PSAgXCIoXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV0gdmFyaWFibGUgKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIilcIiBcIj1cIiB2YXJpYWJsZSBcIjtcIiA7XG5cbmFycmF5QXNzaWdubWVudCAgICAgICAgOjo9ICBcIltcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggZHVtbXlWYXJpYWJsZSAoIFwiLFwiIGR1bW15VmFyaWFibGUgKSogKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSsgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBbdHlwZV0gdmFyaWFibGUgKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSogKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuYW5vbnltb3VzUHJvY2VkdXJlICAgICA6Oj0gIFwiKFwiICggcGFyYW1ldGVyICggXCIsXCIgcGFyYW1ldGVyICkqICk/IFwiKVwiIGJsb2NrIDtcblxuY29uZGl0aW9uYWxCbG9jayAgICAgICA6Oj0gIFwiSWZcIiBcIihcIiBjb25kaXRpb24gXCIpXCIgYmxvY2sgKCBcIkVsc2VcIiBibG9jayApPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZm9yRWFjaExvb3AgICAgICAgICAgICA6Oj0gIFwiRm9yRWFjaFwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIFwiO1wiIDtcblxuXG5cbmNvbmRpdGlvbiAgICAgICAgICAgICAgOjo9ICBicmFja2V0ZWRDb25kaXRpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBiaXR3aXNlQ29uZGl0aW9uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgY29tcGFyaXNvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhbHVlIFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG5icmFja2V0ZWRDb25kaXRpb24gICAgIDo6PSAgXCIoXCIgY29uZGl0aW9uIFwiKVwiIDsgXG5cbmJpdHdpc2VDb25kaXRpb24gICAgICAgOjo9ICBjb25kaXRpb24gKCBcInx8XCIgfCBcIiYmXCIgKSBjb25kaXRpb24gOyBcblxuY29tcGFyaXNvbiAgICAgICAgICAgICA6Oj0gIHZhbHVlICggXCIhPVwiIHwgXCI9PVwiICkgdmFsdWUgOyBcblxuXG5cbnJldHVybkJsb2NrLi4gICAgICAgICAgOjo9ICBcIntcIiAoIHN0ZXAgfCBub25zZW5zZSApKiByZXR1cm5TdGF0ZW1lbnQ/IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuYmxvY2suLiAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIFwifVwiIDtcblxuXG5cbnN0ZXAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZXNEZWNsYXJhdGlvblxuIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhcmlhYmxlQXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycmF5QXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25kaXRpb25hbEJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGZvckVhY2hMb29wXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuICBcbm5vbnNlbnNlLiAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gfCBba2V5d29yZF0gfCBbcHJpbWl0aXZlXSB8IFtxdWVyeV0gfCBbc3BlY2lhbF0gfCBbbmFtZV0gfCBbbnVtYmVyXSB8IFt1bmFzc2lnbmVkXSA7XG4gICAgXG5cbiAgICBcbnJldHVyblN0YXRlbWVudCAgICAgICAgOjo9ICBbcmV0dXJuXSB2YWx1ZSBcIjtcIiA7IFxuXG5cblxucHJvY2VkdXJlQ2FsbCAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiICggdmFsdWUgKCBcIixcIiB2YWx1ZSApKiApPyBcIilcIiA7XG5cbm5vZGVzUXVlcnkgICAgICAgICAgICAgOjo9ICBcIm5vZGVzUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5ub2RlUXVlcnkgICAgICAgICAgICAgIDo6PSAgXCJub2RlUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5cblxudmFsdWUgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlIHwgW251bWJlcl0gfCBbcHJpbWl0aXZlXSB8IFtzdHJpbmctbGl0ZXJhbF0gO1xuXG5wYXJhbWV0ZXIgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIFtuYW1lXSA7XG5cbnZhcmlhYmxlICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5hc3NpZ25tZW50ICAgICAgICAgICAgIDo6PSAgXCI9XCIgKCBwcm9jZWR1cmVDYWxsIHwgbm9kZXNRdWVyeSB8IG5vZGVRdWVyeSB8IHZhbHVlICkgO1xuXG5kdW1teVZhcmlhYmxlICAgICAgICAgIDo6PSAgXCJfXCIgO1xuXG5cblxubGFiZWwuICAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG5cbnJlZmVyZW5jZS4gICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5cblxuZXhwcmVzc2lvbiAgICAgICAgICAgICA6Oj0gIHBhdGggc3ByZWFkPyBzdWJFeHByZXNzaW9uPyA7XG5cbnBhdGggICAgICAgICAgICAgICAgICAgOjo9ICBcIi9cIiBpbmZpbml0ZURlc2NlbnQ/IHNlbGVjdG9ycyA7XG5cbnN1YkV4cHJlc3Npb24gICAgICAgICAgOjo9ICBwYXRoIHNwcmVhZD8gc3ViRXhwcmVzc2lvbj87XG5cbmluZmluaXRlRGVzY2VudCAgICAgICAgOjo9ICBcIi9cIiA7XG5cbnNlbGVjdG9ycyAgICAgICAgICAgICAgOjo9ICBzZWxlY3RvciAoIFwifFwiIHNlbGVjdG9yICkqIDtcblxuc3ByZWFkICAgICAgICAgICAgICAgICA6Oj0gIHVuaXF1ZVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJbXCIgXG4gICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0YXJ0SW5kZXggXCIuLi5cIiBlbmRJbmRleCApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0YXJ0SW5kZXggXCIuLi5cIiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIFwiLi4uXCIgZW5kSW5kZXggKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIl1cIiA7XG5cbnNlbGVjdG9yICAgICAgICAgICAgICAgOjo9ICBydWxlTmFtZSB8IHRva2VuVHlwZSA7XG4gICAgICAgICAgICAgICAgICAgXG5ydWxlTmFtZSAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIHwgXCIqXCIgO1xuICAgICAgICAgICAgICAgICAgIFxudG9rZW5UeXBlICAgICAgICAgICAgICA6Oj0gIFwiQFwiPE5PX1dISVRFU1BBQ0U+KCBbbmFtZV0gfCBcIipcIiApIDtcbiAgICAgICAgICAgICAgICAgICBcbnN0YXJ0SW5kZXggICAgICAgICAgICAgOjo9ICBbbnVtYmVyXSA7XG4gICAgICAgICAgICAgICAgICAgXG5lbmRJbmRleCAgICAgICAgICAgICAgIDo6PSAgW251bWJlcl0gO1xuICAgICAgICAgICAgICAgICAgIFxuaW5kZXggICAgICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbnVuaXF1ZSAgICAgICAgICAgICAgICAgOjo9ICBcIiFcIiA7YDtcblxuZXhwb3J0IGRlZmF1bHQgYm5mO1xuIl0sIm5hbWVzIjpbImJuZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0tBOzs7ZUFBQTs7O0FBdEtBLElBQU1BLE1BQU87SUFzS2IsV0FBZUEifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgICA6Oj0gICggcHJvY2VkdXJlRGVjbGFyYXRpb24gfCBlcnJvciApKyA7XG5cblxuXG5wcm9jZWR1cmVEZWNsYXJhdGlvbiAgIDo6PSAgW3R5cGVdIGxhYmVsPE5PX1dISVRFU1BBQ0U+XCIoXCIgcGFyYW1ldGVycz8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuXG5cblxuZXJyb3IuICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVzRGVjbGFyYXRpb24gICA6Oj0gIFt0eXBlXSB2YXJpYWJsZSBhc3NpZ25tZW50PyAoIFwiLFwiIHZhcmlhYmxlIGFzc2lnbm1lbnQ/ICkqIFwiO1wiIDtcblxudmFyaWFibGVBc3NpZ25tZW50ICAgICA6Oj0gIHZhcmlhYmxlIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgIDo6PSAgXCIoXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV0gdmFyaWFibGUgKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIilcIiBcIj1cIiB2YXJpYWJsZSBcIjtcIiA7XG5cbmFycmF5QXNzaWdubWVudCAgICAgICAgOjo9ICBcIltcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggZHVtbXlWYXJpYWJsZSAoIFwiLFwiIGR1bW15VmFyaWFibGUgKSogKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSsgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBbdHlwZV0gdmFyaWFibGUgKCBcIixcIiBbdHlwZV0gdmFyaWFibGUgKSogKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuYW5vbnltb3VzUHJvY2VkdXJlICAgICA6Oj0gIFwiKFwiIHBhcmFtZXRlcnM/IFwiKVwiIGJsb2NrIDtcblxuY29uZGl0aW9uYWxCbG9jayAgICAgICA6Oj0gIFwiSWZcIiBcIihcIiBjb25kaXRpb24gXCIpXCIgYmxvY2sgKCBcIkVsc2VcIiBibG9jayApPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxuZm9yRWFjaExvb3AgICAgICAgICAgICA6Oj0gIFwiRm9yRWFjaFwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIFwiO1wiIDtcblxuXG5cbmNvbmRpdGlvbiAgICAgICAgICAgICAgOjo9ICBicmFja2V0ZWRDb25kaXRpb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBiaXR3aXNlQ29uZGl0aW9uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCAgY29tcGFyaXNvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhbHVlIFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG5icmFja2V0ZWRDb25kaXRpb24gICAgIDo6PSAgXCIoXCIgY29uZGl0aW9uIFwiKVwiIDsgXG5cbmJpdHdpc2VDb25kaXRpb24gICAgICAgOjo9ICBjb25kaXRpb24gKCBcInx8XCIgfCBcIiYmXCIgKSBjb25kaXRpb24gOyBcblxuY29tcGFyaXNvbiAgICAgICAgICAgICA6Oj0gIHZhbHVlICggXCIhPVwiIHwgXCI9PVwiICkgdmFsdWUgOyBcblxuXG5cbnJldHVybkJsb2NrLi4gICAgICAgICAgOjo9ICBcIntcIiAoIHN0ZXAgfCBub25zZW5zZSApKiByZXR1cm5TdGF0ZW1lbnQ/IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuYmxvY2suLiAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIFwifVwiIDtcblxuXG5cbnN0ZXAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZXNEZWNsYXJhdGlvblxuIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhcmlhYmxlQXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycmF5QXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBjb25kaXRpb25hbEJsb2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGZvckVhY2hMb29wXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuICBcbm5vbnNlbnNlLiAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gfCBba2V5d29yZF0gfCBbcHJpbWl0aXZlXSB8IFtxdWVyeV0gfCBbc3BlY2lhbF0gfCBbbmFtZV0gfCBbbnVtYmVyXSB8IFt1bmFzc2lnbmVkXSA7XG4gICAgXG5cbiAgICBcbnJldHVyblN0YXRlbWVudCAgICAgICAgOjo9ICBbcmV0dXJuXSB2YWx1ZSBcIjtcIiA7IFxuXG5cblxucHJvY2VkdXJlQ2FsbCAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiIHZhbHVlcz8gXCIpXCIgO1xuXG5ub2Rlc1F1ZXJ5ICAgICAgICAgICAgIDo6PSAgXCJub2Rlc1F1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBleHByZXNzaW9uIFwiKVwiIDtcblxubm9kZVF1ZXJ5ICAgICAgICAgICAgICA6Oj0gIFwibm9kZVF1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBleHByZXNzaW9uIFwiKVwiIDtcblxuXG5cbnBhcmFtZXRlcnMgICAgICAgICAgICAgOjo9ICBwYXJhbWV0ZXIgKCBcIixcIiBwYXJhbWV0ZXIgKSogO1xuXG52YWx1ZXMgICAgICAgICAgICAgICAgIDo6PSAgdmFsdWUgKCBcIixcIiB2YWx1ZSApKiA7XG5cblxuXG52YWx1ZSAgICAgICAgICAgICAgICAgIDo6PSAgdmFyaWFibGUgfCBbbnVtYmVyXSB8IFtwcmltaXRpdmVdIHwgW3N0cmluZy1saXRlcmFsXSA7XG5cbnZhcmlhYmxlICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5wYXJhbWV0ZXIgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIFtuYW1lXSA7XG5cbmFzc2lnbm1lbnQgICAgICAgICAgICAgOjo9ICBcIj1cIiAoIHByb2NlZHVyZUNhbGwgfCBub2Rlc1F1ZXJ5IHwgbm9kZVF1ZXJ5IHwgdmFsdWUgKSA7XG5cbmR1bW15VmFyaWFibGUgICAgICAgICAgOjo9ICBcIl9cIiA7XG5cblxuXG5sYWJlbC4gICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcblxucmVmZXJlbmNlLiAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG5cblxuXG5leHByZXNzaW9uICAgICAgICAgICAgIDo6PSAgcGF0aCBzcHJlYWQ/IHN1YkV4cHJlc3Npb24/IDtcblxucGF0aCAgICAgICAgICAgICAgICAgICA6Oj0gIFwiL1wiIGluZmluaXRlRGVzY2VudD8gc2VsZWN0b3JzIDtcblxuc3ViRXhwcmVzc2lvbiAgICAgICAgICA6Oj0gIHBhdGggc3ByZWFkPyBzdWJFeHByZXNzaW9uPztcblxuaW5maW5pdGVEZXNjZW50ICAgICAgICA6Oj0gIFwiL1wiIDtcblxuc2VsZWN0b3JzICAgICAgICAgICAgICA6Oj0gIHNlbGVjdG9yICggXCJ8XCIgc2VsZWN0b3IgKSogO1xuXG5zcHJlYWQgICAgICAgICAgICAgICAgIDo6PSAgdW5pcXVlXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIltcIiBcbiAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RhcnRJbmRleCBcIi4uLlwiIGVuZEluZGV4ICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RhcnRJbmRleCBcIi4uLlwiICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggXCIuLi5cIiBlbmRJbmRleCApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXVwiIDtcblxuc2VsZWN0b3IgICAgICAgICAgICAgICA6Oj0gIHJ1bGVOYW1lIHwgdG9rZW5UeXBlIDtcbiAgICAgICAgICAgICAgICAgICBcbnJ1bGVOYW1lICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gfCBcIipcIiA7XG4gICAgICAgICAgICAgICAgICAgXG50b2tlblR5cGUgICAgICAgICAgICAgIDo6PSAgXCJAXCI8Tk9fV0hJVEVTUEFDRT4oIFtuYW1lXSB8IFwiKlwiICkgO1xuICAgICAgICAgICAgICAgICAgIFxuc3RhcnRJbmRleCAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmVuZEluZGV4ICAgICAgICAgICAgICAgOjo9ICBbbnVtYmVyXSA7XG4gICAgICAgICAgICAgICAgICAgXG5pbmRleCAgICAgICAgICAgICAgICAgIDo6PSAgW251bWJlcl0gO1xuICAgICAgICAgICAgICAgICAgIFxudW5pcXVlICAgICAgICAgICAgICAgICA6Oj0gIFwiIVwiIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4S0E7OztlQUFBOzs7QUE1S0EsSUFBTUEsTUFBTztJQTRLYixXQUFlQSJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-grammars",
3
3
  "author": "James Smith",
4
- "version": "1.3.56",
4
+ "version": "1.3.57",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-grammars",
7
7
  "description": "Occam's grammars.",
package/src/furtle/bnf.js CHANGED
@@ -4,7 +4,7 @@ const bnf = `document ::= ( procedureDeclaration | error )+ ;
4
4
 
5
5
 
6
6
 
7
- procedureDeclaration ::= [type] label<NO_WHITESPACE>"(" ( parameter ( "," parameter )* )? ")" returnBlock ;
7
+ procedureDeclaration ::= [type] label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;
8
8
 
9
9
 
10
10
 
@@ -38,7 +38,7 @@ arrayAssignment ::= "["
38
38
 
39
39
 
40
40
 
41
- anonymousProcedure ::= "(" ( parameter ( "," parameter )* )? ")" block ;
41
+ anonymousProcedure ::= "(" parameters? ")" block ;
42
42
 
43
43
  conditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ;
44
44
 
@@ -92,7 +92,7 @@ returnStatement ::= [return] value ";" ;
92
92
 
93
93
 
94
94
 
95
- procedureCall ::= reference<NO_WHITESPACE>"(" ( value ( "," value )* )? ")" ;
95
+ procedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;
96
96
 
97
97
  nodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;
98
98
 
@@ -100,12 +100,18 @@ nodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expressio
100
100
 
101
101
 
102
102
 
103
- value ::= variable | [number] | [primitive] | [string-literal] ;
103
+ parameters ::= parameter ( "," parameter )* ;
104
+
105
+ values ::= value ( "," value )* ;
106
+
104
107
 
105
- parameter ::= [type] [name] ;
108
+
109
+ value ::= variable | [number] | [primitive] | [string-literal] ;
106
110
 
107
111
  variable ::= [name] ;
108
112
 
113
+ parameter ::= [type] [name] ;
114
+
109
115
  assignment ::= "=" ( procedureCall | nodesQuery | nodeQuery | value ) ;
110
116
 
111
117
  dummyVariable ::= "_" ;