occam-grammars 1.3.3 → 1.3.7

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 ::= ( instruction | error )+ ;\n\n\n\ninstruction ::= functionDeclaration\n \n | variablesDeclaration\n \n | variableAssignment \n \n | objectAssignment \n \n | arrayAssignment\n \n | conditionalBlock\n\n | forEachLoop \n \n ;\n\n\n\nfunctionDeclaration ::= [type] function ;\n\nvariablesDeclaration ::= [type] [name] assignment? ( "," [name] assignment? )* ";" ;\n\nvariableAssignment ::= [name] assignment ";" ;\n\nobjectAssignment ::= "{" \n\n [type]? [name] ( "," [type]? [name] )* \n \n "}" "=" [name] ";" ;\n\narrayAssignment ::= "[" \n\n ( \n\n ( "_" ( "," "_" )* ( "," [type]? [name] )+ ) \n \n | \n \n ( [type]? [name] ( "," [type]? [name] )* ) \n \n ) \n \n "]" "=" [name] ";" ;\n\nconditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" [name] "," anonymousFunction ")" ";" ;\n\n\n \nassignment ::= "=" ( functionCall | isTerminalNode | nodesQuery | nodeQuery | value ) ;\n \n \n \nblock ::= "{" ( variablesDeclaration |\n\n variableAssignment | \n \n objectAssignment | \n \n arrayAssignment |\n \n conditionalBlock |\n\n forEachLoop )* "}" ;\n\n\n\n\nfunctionCall ::= [name]<NO_WHITESPACE>"(" ( [name] ( "," [name] )* )? ")" ;\n\nfunction ::= [name]<NO_WHITESPACE>"(" ( argument ( "," argument )* )? ")" body ;\n\nanonymousFunction ::= "(" ( argument ( "," argument )* )? ")" body ;\n\n\n\nisTerminalNode ::= "isTerminalNode"<NO_WHITESPACE>"(" [name] ")" ;\n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" [name] "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" [name] "," expression ")" ;\n\n\n\n\ncondition ::= "(" condition ")" \n\n | condition ( "||" | "&&" ) condition \n\n | value ( ( "!=" | "==" ) value )? \n \n ;\n\n\n\nbody ::= "{" ( variablesDeclaration | \n \n variableAssignment | \n \n objectAssignment | \n \n arrayAssignment |\n \n conditionalBlock |\n\n forEachLoop )* return? "}" ;\n \n \n\nreturn ::= "Return" value ";" ; \n\n\n\nvalue ::= [name] | [number] | [primitive] | [string-literal] ;\n\n\n\nargument ::= [type] [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 ::= "!" ;\n \n\n\nerror. ::= . ;';
11
+ var bnf = 'document ::= ( instruction | error )+ ;\n\n\n\ninstruction ::= functionDeclaration\n \n | variablesDeclaration\n \n | variableAssignment \n \n | objectAssignment \n \n | arrayAssignment\n \n | conditionalBlock\n\n | forEachLoop \n \n ;\n\n\n\nfunctionDeclaration ::= [type] function ;\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 ( "_" ( "," "_" )* ( "," [type]? variable )+ ) \n \n | \n \n ( [type]? variable ( "," [type]? variable )* ) \n \n ) \n \n "]" "=" variable ";" ;\n\nconditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ; \n\nforEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousFunction ")" ";" ;\n\n\n \nassignment ::= "=" ( functionCall | nodesQuery | nodeQuery | value ) ;\n \n \n \nblock ::= "{" ( variablesDeclaration |\n\n variableAssignment | \n \n objectAssignment | \n \n arrayAssignment |\n \n conditionalBlock |\n\n forEachLoop )* "}" ;\n\n\n\n\nfunctionCall ::= [name]<NO_WHITESPACE>"(" ( value ( "," value )* )? ")" ;\n\nfunction ::= [name]<NO_WHITESPACE>"(" ( argument ( "," argument )* )? ")" body ;\n\nanonymousFunction ::= "(" ( argument ( "," argument )* )? ")" body ;\n\n\n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\n\n\n\ncondition ::= "(" condition ")" \n\n | condition ( "||" | "&&" ) condition \n\n | value ( ( "!=" | "==" ) value )? \n \n ;\n\n\n\nbody ::= "{" ( variablesDeclaration | \n \n variableAssignment | \n \n objectAssignment | \n \n arrayAssignment |\n \n conditionalBlock |\n\n forEachLoop )* return? "}" ;\n \n \n\nreturn ::= "Return" value ";" ; \n\n\n\nvalue ::= variable | [number] | [primitive] | [string-literal] ;\n\n\n\nargument ::= [type] variable ;\n\n\n\nvariable ::= [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 ::= "!" ;\n \n\n\nerror. ::= . ;';
12
12
  var _default = bnf;
13
13
 
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgIDo6PSAgKCBpbnN0cnVjdGlvbiB8IGVycm9yICkrIDtcblxuXG5cbmluc3RydWN0aW9uICAgICAgICAgICA6Oj0gIGZ1bmN0aW9uRGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVzRGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVBc3NpZ25tZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBhcnJheUFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgY29uZGl0aW9uYWxCbG9ja1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBmb3JFYWNoTG9vcCBcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG5mdW5jdGlvbkRlY2xhcmF0aW9uICAgOjo9ICBbdHlwZV0gZnVuY3Rpb24gO1xuXG52YXJpYWJsZXNEZWNsYXJhdGlvbiAgOjo9ICBbdHlwZV0gW25hbWVdIGFzc2lnbm1lbnQ/ICggXCIsXCIgW25hbWVdIGFzc2lnbm1lbnQ/ICkqIFwiO1wiIDtcblxudmFyaWFibGVBc3NpZ25tZW50ICAgIDo6PSAgW25hbWVdIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgOjo9ICBcIntcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPyBbbmFtZV0gKCBcIixcIiBbdHlwZV0/IFtuYW1lXSApKiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ9XCIgXCI9XCIgW25hbWVdIFwiO1wiIDtcblxuYXJyYXlBc3NpZ25tZW50ICAgICAgIDo6PSAgXCJbXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIl9cIiAoIFwiLFwiIFwiX1wiICkqICggXCIsXCIgW3R5cGVdPyBbbmFtZV0gKSsgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggW3R5cGVdPyBbbmFtZV0gKCBcIixcIiBbdHlwZV0/IFtuYW1lXSApKiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgXCI9XCIgW25hbWVdIFwiO1wiIDtcblxuY29uZGl0aW9uYWxCbG9jayAgICAgIDo6PSAgXCJJZlwiIFwiKFwiIGNvbmRpdGlvbiBcIilcIiBibG9jayAoIFwiRWxzZVwiIGJsb2NrICk/IDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5mb3JFYWNoTG9vcCAgICAgICAgICAgOjo9ICBcIkZvckVhY2hcIjxOT19XSElURVNQQUNFPlwiKFwiIFtuYW1lXSBcIixcIiBhbm9ueW1vdXNGdW5jdGlvbiBcIilcIiBcIjtcIiA7XG5cblxuICAgICAgICAgICAgIFxuYXNzaWdubWVudCAgICAgICAgICAgIDo6PSAgXCI9XCIgKCBmdW5jdGlvbkNhbGwgfCBpc1Rlcm1pbmFsTm9kZSB8IG5vZGVzUXVlcnkgfCBub2RlUXVlcnkgfCB2YWx1ZSApIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmJsb2NrICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggdmFyaWFibGVzRGVjbGFyYXRpb24gfFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnQgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0QXNzaWdubWVudCB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheUFzc2lnbm1lbnQgfFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbEJsb2NrIHxcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yRWFjaExvb3AgKSogXCJ9XCIgO1xuXG5cblxuXG5mdW5jdGlvbkNhbGwgICAgICAgICAgOjo9ICBbbmFtZV08Tk9fV0hJVEVTUEFDRT5cIihcIiAoIFtuYW1lXSAoIFwiLFwiIFtuYW1lXSApKiApPyBcIilcIiA7XG5cbmZ1bmN0aW9uICAgICAgICAgICAgICA6Oj0gIFtuYW1lXTxOT19XSElURVNQQUNFPlwiKFwiICggYXJndW1lbnQgKCBcIixcIiBhcmd1bWVudCApKiApPyBcIilcIiBib2R5IDtcblxuYW5vbnltb3VzRnVuY3Rpb24gICAgIDo6PSAgXCIoXCIgKCBhcmd1bWVudCAoIFwiLFwiIGFyZ3VtZW50ICkqICk/IFwiKVwiIGJvZHkgO1xuXG5cblxuaXNUZXJtaW5hbE5vZGUgICAgICAgIDo6PSAgXCJpc1Rlcm1pbmFsTm9kZVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgW25hbWVdIFwiKVwiIDtcblxubm9kZXNRdWVyeSAgICAgICAgICAgIDo6PSAgXCJub2Rlc1F1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiBbbmFtZV0gXCIsXCIgZXhwcmVzc2lvbiBcIilcIiA7XG5cbm5vZGVRdWVyeSAgICAgICAgICAgICA6Oj0gIFwibm9kZVF1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiBbbmFtZV0gXCIsXCIgZXhwcmVzc2lvbiBcIilcIiA7XG5cblxuXG5cbmNvbmRpdGlvbiAgICAgICAgICAgICA6Oj0gIFwiKFwiIGNvbmRpdGlvbiBcIilcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgY29uZGl0aW9uICggXCJ8fFwiIHwgXCImJlwiICkgY29uZGl0aW9uIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICB2YWx1ZSAoICggXCIhPVwiIHwgXCI9PVwiICkgdmFsdWUgKT8gXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG5cbmJvZHkgICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggdmFyaWFibGVzRGVjbGFyYXRpb24gfCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50IHwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdEFzc2lnbm1lbnQgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlBc3NpZ25tZW50IHxcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxCbG9jayB8XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvckVhY2hMb29wICkqIHJldHVybj8gXCJ9XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxucmV0dXJuICAgICAgICAgICAgICAgIDo6PSAgXCJSZXR1cm5cIiB2YWx1ZSBcIjtcIiA7IFxuXG5cblxudmFsdWUgICAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIHwgW251bWJlcl0gfCBbcHJpbWl0aXZlXSB8IFtzdHJpbmctbGl0ZXJhbF0gO1xuXG5cblxuYXJndW1lbnQgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIFtuYW1lXSA7XG5cblxuXG5leHByZXNzaW9uICAgICAgICAgICAgOjo9ICBwYXRoIHNwcmVhZD8gc3ViRXhwcmVzc2lvbj8gO1xuXG5wYXRoICAgICAgICAgICAgICAgICAgOjo9ICBcIi9cIiBpbmZpbml0ZURlc2NlbnQ/IHNlbGVjdG9ycyA7XG5cbnN1YkV4cHJlc3Npb24gICAgICAgICA6Oj0gIHBhdGggc3ByZWFkPyBzdWJFeHByZXNzaW9uPztcblxuaW5maW5pdGVEZXNjZW50ICAgICAgIDo6PSAgXCIvXCIgO1xuXG5zZWxlY3RvcnMgICAgICAgICAgICAgOjo9ICBzZWxlY3RvciAoIFwifFwiIHNlbGVjdG9yICkqIDtcblxuc3ByZWFkICAgICAgICAgICAgICAgIDo6PSAgdW5pcXVlXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiW1wiIFxuICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RhcnRJbmRleCBcIi4uLlwiIGVuZEluZGV4ICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0YXJ0SW5kZXggXCIuLi5cIiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIi4uLlwiIGVuZEluZGV4IClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcIl1cIiA7XG5cbnNlbGVjdG9yICAgICAgICAgICAgICA6Oj0gIHJ1bGVOYW1lIHwgdG9rZW5UeXBlIDtcbiAgICAgICAgICAgICAgICAgICBcbnJ1bGVOYW1lICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSB8IFwiKlwiIDtcbiAgICAgICAgICAgICAgICAgICBcbnRva2VuVHlwZSAgICAgICAgICAgICA6Oj0gIFwiQFwiPE5PX1dISVRFU1BBQ0U+KCBbbmFtZV0gfCBcIipcIiApIDtcbiAgICAgICAgICAgICAgICAgICBcbnN0YXJ0SW5kZXggICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmVuZEluZGV4ICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmluZGV4ICAgICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbnVuaXF1ZSAgICAgICAgICAgICAgICA6Oj0gIFwiIVwiIDtcbiAgICAgICAgICAgICAgICAgICBcblxuXG5lcnJvci4gICAgICAgICAgICAgICAgOjo9ICAuIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFvTEE7OztlQUFBOzs7QUFsTEEsSUFBTUEsTUFBTztJQWtMYixXQUFlQSJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgIDo6PSAgKCBpbnN0cnVjdGlvbiB8IGVycm9yICkrIDtcblxuXG5cbmluc3RydWN0aW9uICAgICAgICAgICA6Oj0gIGZ1bmN0aW9uRGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVzRGVjbGFyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGVBc3NpZ25tZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBhcnJheUFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgY29uZGl0aW9uYWxCbG9ja1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB8ICBmb3JFYWNoTG9vcCBcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG5mdW5jdGlvbkRlY2xhcmF0aW9uICAgOjo9ICBbdHlwZV0gZnVuY3Rpb24gO1xuXG52YXJpYWJsZXNEZWNsYXJhdGlvbiAgOjo9ICBbdHlwZV0gdmFyaWFibGUgYXNzaWdubWVudD8gKCBcIixcIiB2YXJpYWJsZSBhc3NpZ25tZW50PyApKiBcIjtcIiA7XG5cbnZhcmlhYmxlQXNzaWdubWVudCAgICA6Oj0gIHZhcmlhYmxlIGFzc2lnbm1lbnQgXCI7XCIgO1xuXG5vYmplY3RBc3NpZ25tZW50ICAgICAgOjo9ICBcIntcIiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPyB2YXJpYWJsZSAoIFwiLFwiIFt0eXBlXT8gdmFyaWFibGUgKSogXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwifVwiIFwiPVwiIHZhcmlhYmxlIFwiO1wiIDtcblxuYXJyYXlBc3NpZ25tZW50ICAgICAgIDo6PSAgXCJbXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIl9cIiAoIFwiLFwiIFwiX1wiICkqICggXCIsXCIgW3R5cGVdPyB2YXJpYWJsZSApKyApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBbdHlwZV0/IHZhcmlhYmxlICggXCIsXCIgW3R5cGVdPyB2YXJpYWJsZSApKiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuXG5jb25kaXRpb25hbEJsb2NrICAgICAgOjo9ICBcIklmXCIgXCIoXCIgY29uZGl0aW9uIFwiKVwiIGJsb2NrICggXCJFbHNlXCIgYmxvY2sgKT8gOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbmZvckVhY2hMb29wICAgICAgICAgICA6Oj0gIFwiRm9yRWFjaFwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzRnVuY3Rpb24gXCIpXCIgXCI7XCIgO1xuXG5cbiAgICAgICAgICAgICBcbmFzc2lnbm1lbnQgICAgICAgICAgICA6Oj0gIFwiPVwiICggZnVuY3Rpb25DYWxsIHwgbm9kZXNRdWVyeSB8IG5vZGVRdWVyeSB8IHZhbHVlICkgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuYmxvY2sgICAgICAgICAgICAgICAgIDo6PSAgXCJ7XCIgKCB2YXJpYWJsZXNEZWNsYXJhdGlvbiB8XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlQXNzaWdubWVudCB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBc3NpZ25tZW50IHwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5QXNzaWdubWVudCB8XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsQmxvY2sgfFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JFYWNoTG9vcCApKiBcIn1cIiA7XG5cblxuXG5cbmZ1bmN0aW9uQ2FsbCAgICAgICAgICA6Oj0gIFtuYW1lXTxOT19XSElURVNQQUNFPlwiKFwiICggdmFsdWUgKCBcIixcIiB2YWx1ZSApKiApPyBcIilcIiA7XG5cbmZ1bmN0aW9uICAgICAgICAgICAgICA6Oj0gIFtuYW1lXTxOT19XSElURVNQQUNFPlwiKFwiICggYXJndW1lbnQgKCBcIixcIiBhcmd1bWVudCApKiApPyBcIilcIiBib2R5IDtcblxuYW5vbnltb3VzRnVuY3Rpb24gICAgIDo6PSAgXCIoXCIgKCBhcmd1bWVudCAoIFwiLFwiIGFyZ3VtZW50ICkqICk/IFwiKVwiIGJvZHkgO1xuXG5cblxubm9kZXNRdWVyeSAgICAgICAgICAgIDo6PSAgXCJub2Rlc1F1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBleHByZXNzaW9uIFwiKVwiIDtcblxubm9kZVF1ZXJ5ICAgICAgICAgICAgIDo6PSAgXCJub2RlUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5cblxuXG5jb25kaXRpb24gICAgICAgICAgICAgOjo9ICBcIihcIiBjb25kaXRpb24gXCIpXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbmRpdGlvbiAoIFwifHxcIiB8IFwiJiZcIiApIGNvbmRpdGlvbiBcblxuICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFsdWUgKCAoIFwiIT1cIiB8IFwiPT1cIiApIHZhbHVlICk/IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG5ib2R5ICAgICAgICAgICAgICAgICAgOjo9ICBcIntcIiAoIHZhcmlhYmxlc0RlY2xhcmF0aW9uIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlQXNzaWdubWVudCB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBc3NpZ25tZW50IHwgXG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5QXNzaWdubWVudCB8XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsQmxvY2sgfFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JFYWNoTG9vcCApKiByZXR1cm4/IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbnJldHVybiAgICAgICAgICAgICAgICA6Oj0gIFwiUmV0dXJuXCIgdmFsdWUgXCI7XCIgOyBcblxuXG5cbnZhbHVlICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlIHwgW251bWJlcl0gfCBbcHJpbWl0aXZlXSB8IFtzdHJpbmctbGl0ZXJhbF0gO1xuXG5cblxuYXJndW1lbnQgICAgICAgICAgICAgIDo6PSAgW3R5cGVdIHZhcmlhYmxlIDtcblxuXG5cbnZhcmlhYmxlICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG5cblxuXG5leHByZXNzaW9uICAgICAgICAgICAgOjo9ICBwYXRoIHNwcmVhZD8gc3ViRXhwcmVzc2lvbj8gO1xuXG5wYXRoICAgICAgICAgICAgICAgICAgOjo9ICBcIi9cIiBpbmZpbml0ZURlc2NlbnQ/IHNlbGVjdG9ycyA7XG5cbnN1YkV4cHJlc3Npb24gICAgICAgICA6Oj0gIHBhdGggc3ByZWFkPyBzdWJFeHByZXNzaW9uPztcblxuaW5maW5pdGVEZXNjZW50ICAgICAgIDo6PSAgXCIvXCIgO1xuXG5zZWxlY3RvcnMgICAgICAgICAgICAgOjo9ICBzZWxlY3RvciAoIFwifFwiIHNlbGVjdG9yICkqIDtcblxuc3ByZWFkICAgICAgICAgICAgICAgIDo6PSAgdW5pcXVlXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiW1wiIFxuICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggc3RhcnRJbmRleCBcIi4uLlwiIGVuZEluZGV4ICkgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIHN0YXJ0SW5kZXggXCIuLi5cIiApIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBcIi4uLlwiIGVuZEluZGV4IClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcIl1cIiA7XG5cbnNlbGVjdG9yICAgICAgICAgICAgICA6Oj0gIHJ1bGVOYW1lIHwgdG9rZW5UeXBlIDtcbiAgICAgICAgICAgICAgICAgICBcbnJ1bGVOYW1lICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSB8IFwiKlwiIDtcbiAgICAgICAgICAgICAgICAgICBcbnRva2VuVHlwZSAgICAgICAgICAgICA6Oj0gIFwiQFwiPE5PX1dISVRFU1BBQ0U+KCBbbmFtZV0gfCBcIipcIiApIDtcbiAgICAgICAgICAgICAgICAgICBcbnN0YXJ0SW5kZXggICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmVuZEluZGV4ICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbmluZGV4ICAgICAgICAgICAgICAgICA6Oj0gIFtudW1iZXJdIDtcbiAgICAgICAgICAgICAgICAgICBcbnVuaXF1ZSAgICAgICAgICAgICAgICA6Oj0gIFwiIVwiIDtcbiAgICAgICAgICAgICAgICAgICBcblxuXG5lcnJvci4gICAgICAgICAgICAgICAgOjo9ICAuIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzTEE7OztlQUFBOzs7QUFwTEEsSUFBTUEsTUFBTztJQW9MYixXQUFlQSJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-grammars",
3
3
  "author": "James Smith",
4
- "version": "1.3.3",
4
+ "version": "1.3.7",
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
@@ -24,37 +24,37 @@ instruction ::= functionDeclaration
24
24
 
25
25
  functionDeclaration ::= [type] function ;
26
26
 
27
- variablesDeclaration ::= [type] [name] assignment? ( "," [name] assignment? )* ";" ;
27
+ variablesDeclaration ::= [type] variable assignment? ( "," variable assignment? )* ";" ;
28
28
 
29
- variableAssignment ::= [name] assignment ";" ;
29
+ variableAssignment ::= variable assignment ";" ;
30
30
 
31
31
  objectAssignment ::= "{"
32
32
 
33
- [type]? [name] ( "," [type]? [name] )*
33
+ [type]? variable ( "," [type]? variable )*
34
34
 
35
- "}" "=" [name] ";" ;
35
+ "}" "=" variable ";" ;
36
36
 
37
37
  arrayAssignment ::= "["
38
38
 
39
39
  (
40
40
 
41
- ( "_" ( "," "_" )* ( "," [type]? [name] )+ )
41
+ ( "_" ( "," "_" )* ( "," [type]? variable )+ )
42
42
 
43
43
  |
44
44
 
45
- ( [type]? [name] ( "," [type]? [name] )* )
45
+ ( [type]? variable ( "," [type]? variable )* )
46
46
 
47
47
  )
48
48
 
49
- "]" "=" [name] ";" ;
49
+ "]" "=" variable ";" ;
50
50
 
51
51
  conditionalBlock ::= "If" "(" condition ")" block ( "Else" block )? ;
52
52
 
53
- forEachLoop ::= "ForEach"<NO_WHITESPACE>"(" [name] "," anonymousFunction ")" ";" ;
53
+ forEachLoop ::= "ForEach"<NO_WHITESPACE>"(" variable "," anonymousFunction ")" ";" ;
54
54
 
55
55
 
56
56
 
57
- assignment ::= "=" ( functionCall | isTerminalNode | nodesQuery | nodeQuery | value ) ;
57
+ assignment ::= "=" ( functionCall | nodesQuery | nodeQuery | value ) ;
58
58
 
59
59
 
60
60
 
@@ -73,7 +73,7 @@ block ::= "{" ( variablesDeclaration |
73
73
 
74
74
 
75
75
 
76
- functionCall ::= [name]<NO_WHITESPACE>"(" ( [name] ( "," [name] )* )? ")" ;
76
+ functionCall ::= [name]<NO_WHITESPACE>"(" ( value ( "," value )* )? ")" ;
77
77
 
78
78
  function ::= [name]<NO_WHITESPACE>"(" ( argument ( "," argument )* )? ")" body ;
79
79
 
@@ -81,11 +81,9 @@ anonymousFunction ::= "(" ( argument ( "," argument )* )? ")" body ;
81
81
 
82
82
 
83
83
 
84
- isTerminalNode ::= "isTerminalNode"<NO_WHITESPACE>"(" [name] ")" ;
84
+ nodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;
85
85
 
86
- nodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" [name] "," expression ")" ;
87
-
88
- nodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" [name] "," expression ")" ;
86
+ nodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;
89
87
 
90
88
 
91
89
 
@@ -118,11 +116,15 @@ return ::= "Return" value ";" ;
118
116
 
119
117
 
120
118
 
121
- value ::= [name] | [number] | [primitive] | [string-literal] ;
119
+ value ::= variable | [number] | [primitive] | [string-literal] ;
120
+
121
+
122
+
123
+ argument ::= [type] variable ;
122
124
 
123
125
 
124
126
 
125
- argument ::= [type] [name] ;
127
+ variable ::= [name] ;
126
128
 
127
129
 
128
130