occam-grammars 1.3.171 → 1.3.175
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 +6 -6
- package/lib/example/view/furtle.js +4 -4
- package/lib/furtle/bnf.js +2 -2
- package/lib/furtle/entries.js +2 -2
- package/package.json +1 -1
- package/src/example/view/furtle.js +25 -5
- package/src/furtle/bnf.js +8 -0
- package/src/furtle/entries.js +1 -1
|
@@ -113,7 +113,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
113
113
|
{
|
|
114
114
|
key: "getTokens",
|
|
115
115
|
value: function getTokens() {
|
|
116
|
-
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, furtleLexer = furtleLexerFromEntries(entries), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
|
|
116
|
+
var lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, augmented = false, furtleLexer = furtleLexerFromEntries(entries, augmented), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
|
|
117
117
|
return tokens;
|
|
118
118
|
}
|
|
119
119
|
},
|
|
@@ -121,7 +121,7 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
121
121
|
key: "getParseTree",
|
|
122
122
|
value: function getParseTree(tokens) {
|
|
123
123
|
var parseTree = null;
|
|
124
|
-
var bnf = this.getBNF(), ruleName = this.getRuleName(), startRuleName = ruleName, furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName), parser = furtleParser, node = parser.parse(tokens);
|
|
124
|
+
var bnf = this.getBNF(), ruleName = this.getRuleName(), startRuleName = ruleName, augmented = false, furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName, augmented), parser = furtleParser, node = parser.parse(tokens);
|
|
125
125
|
if (node !== null) {
|
|
126
126
|
parseTree = node.asParseTree(tokens);
|
|
127
127
|
}
|
|
@@ -144,9 +144,9 @@ var FurtleView = /*#__PURE__*/ function(View) {
|
|
|
144
144
|
return FurtleView;
|
|
145
145
|
}(_view.default);
|
|
146
146
|
_define_property(FurtleView, "readOnly", false);
|
|
147
|
-
_define_property(FurtleView, "initialContent",
|
|
147
|
+
_define_property(FurtleView, "initialContent", 'String boundVariableNameFromQualifiedStatementChildNodes(Nodes qualifiedStatementChildNodes) {\n [ _, Node argumentNode ] = qualifiedStatementChildNodes;\n\n Node boundVariableNameTerminalNode = nodeQuery(argumentNode, /argument/term/variable/@name);\n\n String boundVariableName = \n\n If (boundVariableNameTerminalNode != null)\n (String (Node boundVariableNameTerminalNode) {\n { String content As boundVariableName } = boundVariableNameTerminalNode;\n \n Return boundVariableName;\n })(boundVariableNameTerminalNode)\n\n Else\n ""\n ;\n \n Return boundVariableName;\n}\n');
|
|
148
148
|
_define_property(FurtleView, "defaultProperties", {
|
|
149
149
|
className: "furtle"
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3ZpZXcvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwiLi4vLi4vaW5kZXhcIjsgIC8vL1xuXG5pbXBvcnQgVmlldyBmcm9tIFwiLi4vdmlld1wiO1xuXG5pbXBvcnQgeyBibmZGcm9tTm90aGluZywgZW50cmllc0Zyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9mdXJ0bGVcIjtcblxuY29uc3QgeyBmdXJ0bGVMZXhlckZyb21FbnRyaWVzIH0gPSBsZXhlcnNVdGlsaXRpZXMsXG4gICAgICB7IGZ1cnRsZVBhcnNlckZyb21CTkZBbmRTdGFydFJ1bGVOYW1lIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGdXJ0bGVWaWV3IGV4dGVuZHMgVmlldyB7XG4gIGdldFRva2VucygpIHtcbiAgICBjb25zdCBsZXhpY2FsRW50cmllcyA9IHRoaXMuZ2V0TGV4aWNhbEVudHJpZXMoKSxcbiAgICAgICAgICBlbnRyaWVzID0gbGV4aWNhbEVudHJpZXMsIC8vLy9cbiAgICAgICAgICBhdWdtZW50ZWQgPSBmYWxzZSxcbiAgICAgICAgICBmdXJ0bGVMZXhlciA9IGZ1cnRsZUxleGVyRnJvbUVudHJpZXMoZW50cmllcywgYXVnbWVudGVkKSxcbiAgICAgICAgICBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuXG4gIGdldFBhcnNlVHJlZSh0b2tlbnMpIHtcbiAgICBsZXQgcGFyc2VUcmVlID0gbnVsbDtcblxuICAgIGNvbnN0IGJuZiA9IHRoaXMuZ2V0Qk5GKCksXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgc3RhcnRSdWxlTmFtZSA9IHJ1bGVOYW1lLCAvLy9cbiAgICAgICAgICBhdWdtZW50ZWQgPSBmYWxzZSxcbiAgICAgICAgICBmdXJ0bGVQYXJzZXIgPSBmdXJ0bGVQYXJzZXJGcm9tQk5GQW5kU3RhcnRSdWxlTmFtZShibmYsIHN0YXJ0UnVsZU5hbWUsIGF1Z21lbnRlZCksXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAvLy9cbiAgICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2Vucyk7XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgcGFyc2VUcmVlID0gbm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFJ1bGVOYW1lIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIGJuZiA9IGJuZkZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZW50cmllcyA9IGVudHJpZXNGcm9tTm90aGluZygpLFxuICAgICAgICAgIGNvbnRlbnQgPSBpbml0aWFsQ29udGVudCwgLy8vXG4gICAgICAgICAgcnVsZU5hbWUgPSBpbml0aWFsUnVsZU5hbWUsIC8vL1xuICAgICAgICAgIGxleGljYWxFbnRyaWVzID0gZW50cmllczsgLy8vXG5cbiAgICB0aGlzLnNldEJORihibmYpO1xuXG4gICAgdGhpcy5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgdGhpcy5zZXRSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICB0aGlzLnNldExleGljYWxFbnRyaWVzKGxleGljYWxFbnRyaWVzKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBzdGF0aWMgaW5pdGlhbENvbnRlbnQgPSBgU3RyaW5nIGJvdW5kVmFyaWFibGVOYW1lRnJvbVF1YWxpZmllZFN0YXRlbWVudENoaWxkTm9kZXMoTm9kZXMgcXVhbGlmaWVkU3RhdGVtZW50Q2hpbGROb2Rlcykge1xuICBbIF8sIE5vZGUgYXJndW1lbnROb2RlIF0gPSBxdWFsaWZpZWRTdGF0ZW1lbnRDaGlsZE5vZGVzO1xuXG4gIE5vZGUgYm91bmRWYXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUgPSBub2RlUXVlcnkoYXJndW1lbnROb2RlLCAvYXJndW1lbnQvdGVybS92YXJpYWJsZS9AbmFtZSk7XG5cbiAgU3RyaW5nIGJvdW5kVmFyaWFibGVOYW1lID0gXG5cbiAgICBJZiAoYm91bmRWYXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUgIT0gbnVsbClcbiAgICAgIChTdHJpbmcgKE5vZGUgYm91bmRWYXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgeyBTdHJpbmcgY29udGVudCBBcyBib3VuZFZhcmlhYmxlTmFtZSB9ID0gYm91bmRWYXJpYWJsZU5hbWVUZXJtaW5hbE5vZGU7XG4gICAgICBcbiAgICAgICAgUmV0dXJuIGJvdW5kVmFyaWFibGVOYW1lO1xuICAgICAgfSkoYm91bmRWYXJpYWJsZU5hbWVUZXJtaW5hbE5vZGUpXG5cbiAgICBFbHNlXG4gICAgICBcIlwiXG4gIDtcbiAgICBcbiAgUmV0dXJuIGJvdW5kVmFyaWFibGVOYW1lO1xufVxuYDtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcImZ1cnRsZVwiXG4gIH07XG59XG4iXSwibmFtZXMiOlsiRnVydGxlVmlldyIsImZ1cnRsZUxleGVyRnJvbUVudHJpZXMiLCJsZXhlcnNVdGlsaXRpZXMiLCJmdXJ0bGVQYXJzZXJGcm9tQk5GQW5kU3RhcnRSdWxlTmFtZSIsInBhcnNlcnNVdGlsaXRpZXMiLCJnZXRUb2tlbnMiLCJsZXhpY2FsRW50cmllcyIsImdldExleGljYWxFbnRyaWVzIiwiZW50cmllcyIsImF1Z21lbnRlZCIsImZ1cnRsZUxleGVyIiwibGV4ZXIiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwiZ2V0UGFyc2VUcmVlIiwicGFyc2VUcmVlIiwiYm5mIiwiZ2V0Qk5GIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInN0YXJ0UnVsZU5hbWUiLCJmdXJ0bGVQYXJzZXIiLCJwYXJzZXIiLCJub2RlIiwicGFyc2UiLCJhc1BhcnNlVHJlZSIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiY29uc3RydWN0b3IiLCJpbml0aWFsQ29udGVudCIsImluaXRpYWxSdWxlTmFtZSIsImJuZkZyb21Ob3RoaW5nIiwiZW50cmllc0Zyb21Ob3RoaW5nIiwic2V0Qk5GIiwic2V0Q29udGVudCIsInNldFJ1bGVOYW1lIiwic2V0TGV4aWNhbEVudHJpZXMiLCJrZXlVcEhhbmRsZXIiLCJWaWV3IiwicmVhZE9ubHkiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFXcUJBOzs7cUJBVDZCOzJEQUVqQztzQkFFa0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5ELElBQU0sQUFBRUMseUJBQTJCQyxzQkFBZSxDQUExQ0Qsd0JBQ0YsQUFBRUUsc0NBQXdDQyx1QkFBZ0IsQ0FBeEREO0FBRU8sSUFBQSxBQUFNSCwyQkFBTjtjQUFNQTthQUFBQTtnQ0FBQUE7ZUFBTixrQkFBTUE7O2tCQUFBQTs7WUFDbkJLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxpQkFBaUIsSUFDdkNDLFVBQVVGLGdCQUNWRyxZQUFZLE9BQ1pDLGNBQWNULHVCQUF1Qk8sU0FBU0MsWUFDOUNFLFFBQVFELGFBQ1JFLFVBQVUsSUFBSSxDQUFDQyxVQUFVLElBQ3pCQyxTQUFTSCxNQUFNSSxRQUFRLENBQUNIO2dCQUU5QixPQUFPRTtZQUNUOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWFGLE1BQU07Z0JBQ2pCLElBQUlHLFlBQVk7Z0JBRWhCLElBQU1DLE1BQU0sSUFBSSxDQUFDQyxNQUFNLElBQ2pCQyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsZ0JBQWdCRixVQUNoQlgsWUFBWSxPQUNaYyxlQUFlcEIsb0NBQW9DZSxLQUFLSSxlQUFlYixZQUN2RWUsU0FBU0QsY0FDVEUsT0FBT0QsT0FBT0UsS0FBSyxDQUFDWjtnQkFFMUIsSUFBSVcsU0FBUyxNQUFNO29CQUNqQlIsWUFBWVEsS0FBS0UsV0FBVyxDQUFDYjtnQkFDL0I7Z0JBRUEsT0FBT0c7WUFDVDs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUNDLGFBQWE7Z0JBRWxCLElBQTRDLG9CQUFBLElBQUksQ0FBQ0MsV0FBVyxFQUFwREMsaUJBQW9DLGtCQUFwQ0EsZ0JBQWdCQyxrQkFBb0Isa0JBQXBCQSxpQkFDbEJkLE1BQU1lLElBQUFBLHNCQUFjLEtBQ3BCekIsVUFBVTBCLElBQUFBLDBCQUFrQixLQUM1QnRCLFVBQVVtQixnQkFDVlgsV0FBV1ksaUJBQ1gxQixpQkFBaUJFLFNBQVMsR0FBRztnQkFFbkMsSUFBSSxDQUFDMkIsTUFBTSxDQUFDakI7Z0JBRVosSUFBSSxDQUFDa0IsVUFBVSxDQUFDeEI7Z0JBRWhCLElBQUksQ0FBQ3lCLFdBQVcsQ0FBQ2pCO2dCQUVqQixJQUFJLENBQUNrQixpQkFBaUIsQ0FBQ2hDO2dCQUV2QixJQUFJLENBQUNpQyxZQUFZO1lBQ25COzs7V0FsRG1CdkM7RUFBbUJ3QyxhQUFJO0FBb0QxQyxpQkFwRG1CeEMsWUFvRFp5QyxZQUFXO0FBRWxCLGlCQXREbUJ6QyxZQXNEWitCLGtCQUFrQjtBQXNCekIsaUJBNUVtQi9CLFlBNEVaMEMscUJBQW9CO0lBQ3pCQyxXQUFXO0FBQ2IifQ==
|
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\nvariableAssignments ::= [type] variableAssignment ( "," variableAssignment )* ";" ;\n\nconditionalBlocks ::= "If" "(" value ")" block ( "Else" block )? ; \n\nobjectAssignment ::= "{" namedParameters "}" "=" variable ";" ;\n\narrayAssignment ::= "[" parameters "]" "=" variable ";" ;\n\n\n\nstep ::= variableAssignments\n \n | conditionalBlocks\n \n | objectAssignment\n \n | arrayAssignment\n \n ; \n \n \n\nvariableAssignment ::= variable "=" value ;\n\nanonymousProcedure ::= [type] "(" parameters? ")" returnBlock ;\n\nreturnStatement ::= [return] value ";" ; \n\nreturnBlock.. ::= "{" ( step | nonsense )* returnStatement "}" ;\n \nblock.. ::= "{" ( step | nonsense )* "}" ;\n\n\n\nanonymousProcedureCall ::= "(" anonymousProcedure ")"<NO_WHITESPACE>"(" values? ")" ;\n\nprocedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;\n\nbracketedValue ::= "(" value ")" ; \n\nbitwiseValue ::= value ( "||" | "&&" ) value ; \n\nnegatedValue ::= "!"<NO_WHITESPACE>value ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nvariable ::= [name] ;\n\nternary ::= "If" "(" value ")" value "Else" value ;\n\nsome ::= "Some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;\n\n\n\nvalues ::= value ( "," value )* ;\n\nvalue ::= anonymousProcedureCall\n \n | procedureCall\n \n | bracketedValue \n\n | bitwiseValue \n\n | negatedValue \n\n | comparison \n\n | nodesQuery\n \n | nodeQuery\n \n | variable\n \n | ternary\n \n | some\n\n | [null]\n\n | [number]\n \n | [primitive]\n \n | [string-literal] \n \n ;\n\n\n\nnamedParameters ::= namedParameter ( "," namedParameter )* ;\n\nnamedParameter ::= [type] [name] ( "As" [name] )? ;\n\n\n\nparameters ::= parameter ( "," parameter )* ;\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] ;';
|
|
11
|
+
var bnf = 'document ::= ( procedureDeclaration | error )+ ;\n\n\n\nprocedureDeclaration ::= [type] label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;\n\n\n\nerror. ::= . ;\n\n\n\nvariableAssignments ::= [type] variableAssignment ( "," variableAssignment )* ";" ;\n\nconditionalBlocks ::= "If" "(" value ")" block ( "Else" block )? ; \n\nobjectAssignment ::= "{" namedParameters "}" "=" variable ";" ;\n\narrayAssignment ::= "[" parameters "]" "=" variable ";" ;\n\n\n\nstep ::= variableAssignments\n \n | conditionalBlocks\n \n | objectAssignment\n \n | arrayAssignment\n \n ; \n \n \n\nvariableAssignment ::= variable "=" value ;\n\nanonymousProcedure ::= [type] "(" parameters? ")" returnBlock ;\n\nreturnStatement ::= [return] value ";" ; \n\nreturnBlock.. ::= "{" ( step | nonsense )* returnStatement "}" ;\n \nblock.. ::= "{" ( step | nonsense )* "}" ;\n\n\n\nanonymousProcedureCall ::= "(" anonymousProcedure ")"<NO_WHITESPACE>"(" values? ")" ;\n\nprocedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;\n\nbracketedValue ::= "(" value ")" ; \n\nbitwiseValue ::= value ( "||" | "&&" ) value ; \n\nnegatedValue ::= "!"<NO_WHITESPACE>value ; \n\ncomparison ::= value ( "!=" | "==" ) value ; \n\nnodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nnodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," expression ")" ;\n\nvariable ::= [name] ;\n\nternary ::= "If" "(" value ")" value "Else" value ;\n\nreduce ::= "Reduce"<NO_WHITESPACE>"(" variable "," anonymousProcedure "," variable ")" ;\n\nevery ::= "Every"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;\n\nsome ::= "Some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;\n\n\n\nvalues ::= value ( "," value )* ;\n\nvalue ::= anonymousProcedureCall\n \n | procedureCall\n \n | bracketedValue \n\n | bitwiseValue \n\n | negatedValue \n\n | comparison \n\n | nodesQuery\n \n | nodeQuery\n \n | variable\n \n | ternary\n \n | reduce\n\n | every\n\n | some\n\n | [null]\n\n | [number]\n \n | [primitive]\n \n | [string-literal] \n \n ;\n\n\n\nnamedParameters ::= namedParameter ( "," namedParameter )* ;\n\nnamedParameter ::= [type] [name] ( "As" [name] )? ;\n\n\n\nparameters ::= parameter ( "," parameter )* ;\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] ;';
|
|
12
12
|
var _default = bnf;
|
|
13
13
|
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgICAgOjo9ICAoIHByb2NlZHVyZURlY2xhcmF0aW9uIHwgZXJyb3IgKSsgO1xuXG5cblxucHJvY2VkdXJlRGVjbGFyYXRpb24gICAgOjo9ICBbdHlwZV0gbGFiZWw8Tk9fV0hJVEVTUEFDRT5cIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVBc3NpZ25tZW50cyAgICAgOjo9ICBbdHlwZV0gdmFyaWFibGVBc3NpZ25tZW50ICggXCIsXCIgdmFyaWFibGVBc3NpZ25tZW50ICkqIFwiO1wiIDtcblxuY29uZGl0aW9uYWxCbG9ja3MgICAgICAgOjo9ICBcIklmXCIgXCIoXCIgdmFsdWUgXCIpXCIgYmxvY2sgKCBcIkVsc2VcIiBibG9jayApPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxub2JqZWN0QXNzaWdubWVudCAgICAgICAgOjo9ICBcIntcIiBuYW1lZFBhcmFtZXRlcnMgXCJ9XCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuXG5hcnJheUFzc2lnbm1lbnQgICAgICAgICA6Oj0gIFwiW1wiIHBhcmFtZXRlcnMgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuXG5cblxuc3RlcCAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZUFzc2lnbm1lbnRzXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbmRpdGlvbmFsQmxvY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBhcnJheUFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuICBcbiAgXG5cbnZhcmlhYmxlQXNzaWdubWVudCAgICAgIDo6PSAgdmFyaWFibGUgXCI9XCIgdmFsdWUgO1xuXG5hbm9ueW1vdXNQcm9jZWR1cmUgICAgICA6Oj0gIFt0eXBlXSBcIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG5cbnJldHVyblN0YXRlbWVudCAgICAgICAgIDo6PSAgW3JldHVybl0gdmFsdWUgXCI7XCIgOyBcblxucmV0dXJuQmxvY2suLiAgICAgICAgICAgOjo9ICBcIntcIiAoIHN0ZXAgfCBub25zZW5zZSApKiByZXR1cm5TdGF0ZW1lbnQgXCJ9XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5ibG9jay4uICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIFwifVwiIDtcblxuXG5cbmFub255bW91c1Byb2NlZHVyZUNhbGwgIDo6PSAgXCIoXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFsdWVzPyBcIilcIiA7XG5cbnByb2NlZHVyZUNhbGwgICAgICAgICAgIDo6PSAgcmVmZXJlbmNlPE5PX1dISVRFU1BBQ0U+
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvYm5mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5jb25zdCBibmYgPSBgZG9jdW1lbnQgICAgICAgICAgICAgICAgOjo9ICAoIHByb2NlZHVyZURlY2xhcmF0aW9uIHwgZXJyb3IgKSsgO1xuXG5cblxucHJvY2VkdXJlRGVjbGFyYXRpb24gICAgOjo9ICBbdHlwZV0gbGFiZWw8Tk9fV0hJVEVTUEFDRT5cIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG5cblxuXG5lcnJvci4gICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuXG5cblxudmFyaWFibGVBc3NpZ25tZW50cyAgICAgOjo9ICBbdHlwZV0gdmFyaWFibGVBc3NpZ25tZW50ICggXCIsXCIgdmFyaWFibGVBc3NpZ25tZW50ICkqIFwiO1wiIDtcblxuY29uZGl0aW9uYWxCbG9ja3MgICAgICAgOjo9ICBcIklmXCIgXCIoXCIgdmFsdWUgXCIpXCIgYmxvY2sgKCBcIkVsc2VcIiBibG9jayApPyA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcblxub2JqZWN0QXNzaWdubWVudCAgICAgICAgOjo9ICBcIntcIiBuYW1lZFBhcmFtZXRlcnMgXCJ9XCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuXG5hcnJheUFzc2lnbm1lbnQgICAgICAgICA6Oj0gIFwiW1wiIHBhcmFtZXRlcnMgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuXG5cblxuc3RlcCAgICAgICAgICAgICAgICAgICAgOjo9ICB2YXJpYWJsZUFzc2lnbm1lbnRzXG4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbmRpdGlvbmFsQmxvY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBhcnJheUFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDsgIFxuICBcbiAgXG5cbnZhcmlhYmxlQXNzaWdubWVudCAgICAgIDo6PSAgdmFyaWFibGUgXCI9XCIgdmFsdWUgO1xuXG5hbm9ueW1vdXNQcm9jZWR1cmUgICAgICA6Oj0gIFt0eXBlXSBcIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG5cbnJldHVyblN0YXRlbWVudCAgICAgICAgIDo6PSAgW3JldHVybl0gdmFsdWUgXCI7XCIgOyBcblxucmV0dXJuQmxvY2suLiAgICAgICAgICAgOjo9ICBcIntcIiAoIHN0ZXAgfCBub25zZW5zZSApKiByZXR1cm5TdGF0ZW1lbnQgXCJ9XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5ibG9jay4uICAgICAgICAgICAgICAgICA6Oj0gIFwie1wiICggc3RlcCB8IG5vbnNlbnNlICkqIFwifVwiIDtcblxuXG5cbmFub255bW91c1Byb2NlZHVyZUNhbGwgIDo6PSAgXCIoXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFsdWVzPyBcIilcIiA7XG5cbnByb2NlZHVyZUNhbGwgICAgICAgICAgIDo6PSAgcmVmZXJlbmNlPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFsdWVzPyBcIilcIiA7XG5cbmJyYWNrZXRlZFZhbHVlICAgICAgICAgIDo6PSAgXCIoXCIgdmFsdWUgXCIpXCIgOyBcblxuYml0d2lzZVZhbHVlICAgICAgICAgICAgOjo9ICB2YWx1ZSAoIFwifHxcIiB8IFwiJiZcIiApIHZhbHVlIDsgXG5cbm5lZ2F0ZWRWYWx1ZSAgICAgICAgICAgIDo6PSAgXCIhXCI8Tk9fV0hJVEVTUEFDRT52YWx1ZSA7IFxuXG5jb21wYXJpc29uICAgICAgICAgICAgICA6Oj0gIHZhbHVlICggXCIhPVwiIHwgXCI9PVwiICkgdmFsdWUgOyBcblxubm9kZXNRdWVyeSAgICAgICAgICAgICAgOjo9ICBcIm5vZGVzUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGV4cHJlc3Npb24gXCIpXCIgO1xuXG5ub2RlUXVlcnkgICAgICAgICAgICAgICA6Oj0gIFwibm9kZVF1ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBleHByZXNzaW9uIFwiKVwiIDtcblxudmFyaWFibGUgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG50ZXJuYXJ5ICAgICAgICAgICAgICAgICA6Oj0gIFwiSWZcIiBcIihcIiB2YWx1ZSBcIilcIiB2YWx1ZSBcIkVsc2VcIiB2YWx1ZSA7XG5cbnJlZHVjZSAgICAgICAgICAgICAgICAgIDo6PSAgXCJSZWR1Y2VcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGFub255bW91c1Byb2NlZHVyZSBcIixcIiB2YXJpYWJsZSBcIilcIiA7XG5cbmV2ZXJ5ICAgICAgICAgICAgICAgICAgIDo6PSAgXCJFdmVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIDtcblxuc29tZSAgICAgICAgICAgICAgICAgICAgOjo9ICBcIlNvbWVcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGFub255bW91c1Byb2NlZHVyZSBcIilcIiA7XG5cblxuXG52YWx1ZXMgICAgICAgICAgICAgICAgICA6Oj0gIHZhbHVlICggXCIsXCIgdmFsdWUgKSogO1xuXG52YWx1ZSAgICAgICAgICAgICAgICAgICA6Oj0gIGFub255bW91c1Byb2NlZHVyZUNhbGxcbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcHJvY2VkdXJlQ2FsbFxuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBicmFja2V0ZWRWYWx1ZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBiaXR3aXNlVmFsdWUgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbmVnYXRlZFZhbHVlIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbXBhcmlzb24gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9kZXNRdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9kZVF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdGVybmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmVkdWNlXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXZlcnlcblxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzb21lXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bGxdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bWJlcl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtwcmltaXRpdmVdXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbc3RyaW5nLWxpdGVyYWxdIFxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG5uYW1lZFBhcmFtZXRlcnMgICAgICAgICA6Oj0gIG5hbWVkUGFyYW1ldGVyICggXCIsXCIgbmFtZWRQYXJhbWV0ZXIgKSogO1xuXG5uYW1lZFBhcmFtZXRlciAgICAgICAgICA6Oj0gIFt0eXBlXSBbbmFtZV0gKCBcIkFzXCIgW25hbWVdICk/IDtcblxuXG5cbnBhcmFtZXRlcnMgICAgICAgICAgICAgIDo6PSAgcGFyYW1ldGVyICggXCIsXCIgcGFyYW1ldGVyICkqIDtcblxucGFyYW1ldGVyICAgICAgICAgICAgICAgOjo9ICBbdHlwZV0gW25hbWVdXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJfXCIgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxubGFiZWwuICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuXG5yZWZlcmVuY2UuICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG5cblxuXG5ub25zZW5zZS4gICAgICAgICAgICAgICA6Oj0gIFt0eXBlXSB8IFtrZXl3b3JkXSB8IFtwcmltaXRpdmVdIHwgW3F1ZXJ5XSB8IFtzcGVjaWFsXSB8IFtuYW1lXSB8IFtudW1iZXJdIHwgW3VuYXNzaWduZWRdIDtgO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0SUE7OztlQUFBOzs7QUExSUEsSUFBTUEsTUFBTztJQTBJYixXQUFlQSJ9
|
package/lib/furtle/entries.js
CHANGED
|
@@ -19,7 +19,7 @@ var entries = [
|
|
|
19
19
|
"return": "^Return"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
|
-
"keyword": "^(?:If|Else|Some|As)"
|
|
22
|
+
"keyword": "^(?:If|Else|Reduce|Every|Some|As)"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"primitive": "^(?:null|true|false)"
|
|
@@ -36,4 +36,4 @@ var entries = [
|
|
|
36
36
|
];
|
|
37
37
|
var _default = entries;
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvZW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmNvbnN0IGVudHJpZXMgPSBbXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Ok5vZGVzfE5vZGV8U3RyaW5nfE51bWJlcnxCb29sZWFuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiXig/Om5vZGVRdWVyeXxub2Rlc1F1ZXJ5KVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInJldHVyblwiOiBcIl5SZXR1cm5cIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJrZXl3b3JkXCI6IFwiXig/
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdXJ0bGUvZW50cmllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmNvbnN0IGVudHJpZXMgPSBbXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Ok5vZGVzfE5vZGV8U3RyaW5nfE51bWJlcnxCb29sZWFuKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInF1ZXJ5XCI6IFwiXig/Om5vZGVRdWVyeXxub2Rlc1F1ZXJ5KVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInJldHVyblwiOiBcIl5SZXR1cm5cIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJrZXl3b3JkXCI6IFwiXig/OklmfEVsc2V8UmVkdWNlfEV2ZXJ5fFNvbWV8QXMpXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwicHJpbWl0aXZlXCI6IFwiXig/Om51bGx8dHJ1ZXxmYWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJicmFja2V0XCI6IFwiXig/OlxcXFx7fFxcXFx9KVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86IT18PT18PXwsfDt8X3wmJnxcXFxcfFxcXFx8fFxcXFwofFxcXFwpKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInVuYXNzaWduZWRcIjogXCJeLlwiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTZCQTs7O2VBQUE7OztBQTNCQSxJQUFNQSxVQUFVO0lBQ2Q7UUFDRSxRQUFRO0lBQ1Y7SUFDQTtRQUNFLFNBQVM7SUFDWDtJQUNBO1FBQ0UsVUFBVTtJQUNaO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLGFBQWE7SUFDZjtJQUNBO1FBQ0UsV0FBVztJQUNiO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLGNBQWM7SUFDaEI7Q0FDRDtJQUVELFdBQWVBIn0=
|
package/package.json
CHANGED
|
@@ -13,7 +13,8 @@ export default class FurtleView extends View {
|
|
|
13
13
|
getTokens() {
|
|
14
14
|
const lexicalEntries = this.getLexicalEntries(),
|
|
15
15
|
entries = lexicalEntries, ////
|
|
16
|
-
|
|
16
|
+
augmented = false,
|
|
17
|
+
furtleLexer = furtleLexerFromEntries(entries, augmented),
|
|
17
18
|
lexer = furtleLexer, ///
|
|
18
19
|
content = this.getContent(),
|
|
19
20
|
tokens = lexer.tokenise(content);
|
|
@@ -27,7 +28,8 @@ export default class FurtleView extends View {
|
|
|
27
28
|
const bnf = this.getBNF(),
|
|
28
29
|
ruleName = this.getRuleName(),
|
|
29
30
|
startRuleName = ruleName, ///
|
|
30
|
-
|
|
31
|
+
augmented = false,
|
|
32
|
+
furtleParser = furtleParserFromBNFAndStartRuleName(bnf, startRuleName, augmented),
|
|
31
33
|
parser = furtleParser, ///
|
|
32
34
|
node = parser.parse(tokens);
|
|
33
35
|
|
|
@@ -61,9 +63,27 @@ export default class FurtleView extends View {
|
|
|
61
63
|
|
|
62
64
|
static readOnly = false;
|
|
63
65
|
|
|
64
|
-
static initialContent = `{
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
static initialContent = `String boundVariableNameFromQualifiedStatementChildNodes(Nodes qualifiedStatementChildNodes) {
|
|
67
|
+
[ _, Node argumentNode ] = qualifiedStatementChildNodes;
|
|
68
|
+
|
|
69
|
+
Node boundVariableNameTerminalNode = nodeQuery(argumentNode, /argument/term/variable/@name);
|
|
70
|
+
|
|
71
|
+
String boundVariableName =
|
|
72
|
+
|
|
73
|
+
If (boundVariableNameTerminalNode != null)
|
|
74
|
+
(String (Node boundVariableNameTerminalNode) {
|
|
75
|
+
{ String content As boundVariableName } = boundVariableNameTerminalNode;
|
|
76
|
+
|
|
77
|
+
Return boundVariableName;
|
|
78
|
+
})(boundVariableNameTerminalNode)
|
|
79
|
+
|
|
80
|
+
Else
|
|
81
|
+
""
|
|
82
|
+
;
|
|
83
|
+
|
|
84
|
+
Return boundVariableName;
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
67
87
|
|
|
68
88
|
static defaultProperties = {
|
|
69
89
|
className: "furtle"
|
package/src/furtle/bnf.js
CHANGED
|
@@ -66,6 +66,10 @@ variable ::= [name] ;
|
|
|
66
66
|
|
|
67
67
|
ternary ::= "If" "(" value ")" value "Else" value ;
|
|
68
68
|
|
|
69
|
+
reduce ::= "Reduce"<NO_WHITESPACE>"(" variable "," anonymousProcedure "," variable ")" ;
|
|
70
|
+
|
|
71
|
+
every ::= "Every"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
|
|
72
|
+
|
|
69
73
|
some ::= "Some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
|
|
70
74
|
|
|
71
75
|
|
|
@@ -92,6 +96,10 @@ value ::= anonymousProcedureCall
|
|
|
92
96
|
|
|
93
97
|
| ternary
|
|
94
98
|
|
|
99
|
+
| reduce
|
|
100
|
+
|
|
101
|
+
| every
|
|
102
|
+
|
|
95
103
|
| some
|
|
96
104
|
|
|
97
105
|
| [null]
|