@stechquick/studio-cli 4.1.0-6 → 4.1.0-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.
Files changed (25) hide show
  1. package/dist/common/agentic/quickHostCompiler/commands/GlobalManager.js +1 -1
  2. package/dist/common/agentic/quickHostCompiler/commands/GlobalManager.js.map +1 -1
  3. package/dist/common/agentic/quickHostCompiler/commands/compile.js +2 -2
  4. package/dist/common/agentic/quickHostCompiler/commands/compile.js.map +1 -1
  5. package/dist/common/agentic/studioCli/protocolVersion.js +1 -1
  6. package/dist/common/agentic/studioCli/protocolVersion.js.map +1 -1
  7. package/dist/quick/common/shrimp/helpers/QJsonHelper.js +153 -0
  8. package/dist/quick/common/shrimp/helpers/QJsonHelper.js.map +1 -0
  9. package/dist/quick/common/shrimp/helpers/qjsonParser/QJsonContentParser.js +21 -0
  10. package/dist/quick/common/shrimp/helpers/qjsonParser/QJsonContentParser.js.map +1 -0
  11. package/dist/quick/common/shrimp/helpers/typeHelper.js.map +1 -1
  12. package/dist/quick/common/shrimp/omniScriptCompiler/Compressor.js +83 -0
  13. package/dist/quick/common/shrimp/omniScriptCompiler/Compressor.js.map +1 -0
  14. package/dist/quick/common/shrimp/omniScriptCompiler/Lexer.js +348 -0
  15. package/dist/quick/common/shrimp/omniScriptCompiler/Lexer.js.map +1 -0
  16. package/dist/quick/common/shrimp/omniScriptCompiler/Node.js +35 -0
  17. package/dist/quick/common/shrimp/omniScriptCompiler/Node.js.map +1 -0
  18. package/dist/quick/common/shrimp/omniScriptCompiler/Parser.js +988 -0
  19. package/dist/quick/common/shrimp/omniScriptCompiler/Parser.js.map +1 -0
  20. package/dist/quick/common/shrimp/omniScriptCompiler/QSCError.js +19 -0
  21. package/dist/quick/common/shrimp/omniScriptCompiler/QSCError.js.map +1 -0
  22. package/dist/quick/common/shrimp/omniScriptCompiler/Token.js +32 -0
  23. package/dist/quick/common/shrimp/omniScriptCompiler/Token.js.map +1 -0
  24. package/dist/studio-cli/src/version.js +1 -1
  25. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../../../../../quick/common/shrimp/omniScriptCompiler/Parser.js"],"names":[],"mappings":"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","sourcesContent":["import { Node } from \"./Node\";\nimport { Token } from \"./Token\";\nimport { TypeHelper } from \"../helpers/typeHelper\";\nimport { QSCError } from \"./QSCError\";\n\nfunction ParseContext(tokenInputs) {\n this.tokenInputs = tokenInputs;\n this.i = 0;\n this.innerParseClosure = false;\n this.innerParseClosureRetval = null;\n this.innerParseEntryReasons = [];\n}\nParseContext.prototype.getInnerParseEntryReason = function(){\n var resLength = this.innerParseEntryReasons.length;\n return resLength ? this.innerParseEntryReasons[resLength - 1] : null;\n};\nParseContext.prototype.setInnerParseEntryReason = function (newReason) {\n var oldEntryReason = this.getInnerParseEntryReason();\n this.innerParseEntryReasons.push(newReason);\n return oldEntryReason;\n};\nParseContext.prototype.popInnerParseEntryReason = function(){\n this.innerParseEntryReasons.pop();\n};\nParseContext.prototype.searchInnerParseEntryReason = function(searchReason){\n for (var i = this.innerParseEntryReasons.length - 1; i >= 0; i--){\n if (this.innerParseEntryReasons[i] == searchReason){\n return true;\n }\n }\n return false;\n};\n\nvar Parse = function (tokenInputs, parseOptions) {\n ///<param name=\"tokenInputs\" type=\"[Token]\" value=\"[new Token()]\">Lexed tokens</param>\n ///<param name=\"parseOptions\" value=\"{lineBreakMode: ''}\">lineBreakMode: return | multiline | discard</param>\n var forest = [];\n var tree = null;\n var prevNode = null;\n var curNode = null;\n // var rootParse = Object.prototype.toString.call(this).constructor.name != ParseContext.name;\n // var parseContext = !rootParse ? this : new ParseContext(tokenInputs);\n var rootParse = this === undefined;\n var parseContext = !rootParse ? this : new ParseContext(tokenInputs);\n\n var tokens = parseContext.tokenInputs || [];\n var options = parseOptions || {\n };\n options.lineBreakMode = options.lineBreakMode || \"multiline\";\n\n\n if (tokens.length == 0) {\n return forest;\n }\n while (parseContext.i < tokens.length && !parseContext.innerParseClosure) {\n curNode = new Node(tokens[parseContext.i]);\n\n if (options.lineBreakMode != \"discard\") {\n if (prevNode != null && curNode.token.position.line != prevNode.token.position.line) {\n if (options.lineBreakMode == \"return\") {\n parseContext.innerParseClosure = true;\n break;\n } else { // multiline\n if (curNode.TokObject.closer === true && rootParse === false) {\n //if this is a closer no line breaking, will be returning allready\n prevNode = null;\n } else {\n forest.push(tree);\n tree = null;\n prevNode = null;\n }\n }\n }\n }\n\n\n if (tree == null) {\n if (!curNode.TokObject.canBeFirst) {\n throw createError(\"(Parser)Statement can not start with \" + curNode.Summarize(),\n \"Statement can not start with \" + curNode.token.value, curNode, null);\n }\n switch (curNode.token.type) {\n case Lex.tok.operator:\n if (curNode.token.value == \"(\") {\n curNode = Lex.operators[\"(\"].CanBeTaken.call(parseContext, null, curNode);\n }\n break;\n case Lex.tok.keyword:\n curNode = curNode.TokObject.CanBeTaken.call(parseContext, null, curNode);\n\n break;\n }\n\n tree = curNode;\n } else {\n var taken = null;\n if (curNode.TokObject.CanBeTaken != null) {\n taken = curNode.TokObject.CanBeTaken.call(parseContext, prevNode, curNode);\n }\n if (taken == false) {\n throw createError(prevNode.ShortSummarize() + \" can not be preceed by \" + curNode.ShortSummarize(),\n prevNode.token.value + \" can not be preceeded by \" + curNode.token.value, curNode, null);\n }\n if (taken == null) {\n var taken = prevNode.TokObject.CanTake.call(parseContext, curNode, prevNode);\n\n if (taken == null || taken == false) {\n throw createError(curNode.ShortSummarize() + \" can not preceed \" + prevNode.ShortSummarize(),\n curNode.token.value + \" can not preceed \" + prevNode.token.value, curNode, null);\n }\n }\n if (parseContext.innerParseClosure == false && parseContext.innerParseClosureRetval != null) {\n if (parseContext.innerParseClosureRetval.retTokenValue.indexOf(prevNode.token.value) != 0) {\n throw createError(\"matching \" + parseContext.innerParseClosureRetval.retTokenValue.substring(0, 1) + \" can not be found for \" + parseContext.innerParseClosureRetval.retTokenValue.substring(1, 1) + \".\",\n null, parseContext.innerParseClosureRetval.retResponsible, null);\n }\n prevNode.token.endPosition = parseContext.innerParseClosureRetval.retEndPosition;\n prevNode.token.value = parseContext.innerParseClosureRetval.retTokenValue;\n prevNode.TokObject = parseContext.innerParseClosureRetval.retTokObject;\n parseContext.innerParseClosureRetval = null;\n }\n if (taken !== true) {\n curNode = taken;\n }\n }\n\n while (tree.parent != null) {\n tree = tree.parent;\n }\n prevNode = curNode;\n parseContext.i++;\n }\n if (parseContext.innerParseClosure) {\n parseContext.i--;\n parseContext.innerParseClosure = false;\n }\n\n if (tree != null) {\n forest.push(tree);\n }\n\n return forest;\n};\n\nvar parse = Parse;\n\nvar CanTakeOperatorPlus = function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.string:\n switch (self.token.value) {\n case \"+\":\n postfix(node, self);\n return true;\n }\n case Lex.tok.identifier:\n postfix(node, self);\n return true;\n case Lex.tok.number:\n postfix(node, self);\n return true;\n case Lex.tok.operator:\n switch (node.token.value) {\n case \"+\":\n case \"*\":\n case \"/\":\n case \"-\":\n case \"&&\":\n case \"||\":\n if (!self.right){\n return false;\n }\n infix(node, self);\n return true;\n case \"!\":\n postfix(node, self);\n return true;\n }\n return false;\n }\n};\n\nvar peekNext = function () {\n ///<summary></summary>\n ///<returns type=\"Isbank.OmniScript.Token\" value=\"new Isbank.OmniScript.Token()\"></returns>\n if (this.tokenInputs.length <= this.i + 1) {\n return null;\n }\n return this.tokenInputs[this.i + 1]\n};\n\nvar checkNext = function (expectedTokenValue) {\n var retVal = null;\n var nextToken = peekNext.call(this);\n if (nextToken === null) {\n return expectedTokenValue === null;\n }\n if (nextToken.value === expectedTokenValue && nextToken.type != \"string\") {\n retVal = true;\n } else {\n retVal = false;\n }\n\n return retVal;\n};\nvar assertNext = function (expectedTokenValue) {\n var checkRet = checkNext.call(this, expectedTokenValue);\n if (checkRet === true) {\n this.i++;\n return;\n } else if (checkRet === false) {\n unexpectedToken.call(this, expectedTokenValue);\n }\n\n};\nvar unexpectedToken = function (expectedTokenValue) {\n var expected = expectedTokenValue;\n\n if (new TypeHelper().isArray(expected)) {\n expected = expected.join(\",\");\n }\n throw createError(\"(Parser)Unexpected token: \" + this.tokenInputs[this.i].Summarize() + \" Expected: \" + expected,\n \"Unexpected token: \" + this.tokenInputs[this.i].value + \" Expected: \" + expected, null, this.tokenInputs[this.i]);\n};\n\nvar assertRetResp = function (expectedTokenValue) {\n var expecteds = expectedTokenValue;\n if (!new TypeHelper().isArray(expecteds)) {\n expecteds = [expecteds];\n }\n\n var found = false;\n for (var i = 0; i < expecteds.length && !found; i++) {\n if (this.innerParseClosureRetval.retResponsible.token.value == expecteds[i]) {\n found = true;\n }\n }\n\n if (!found) {\n unexpectedToken.call(this, expectedTokenValue);\n }\n};\nvar assertEntryReasonExistInStack = function(reasonToSearch){\n if (!this.searchInnerParseEntryReason(reasonToSearch)) {\n throw createError(this.tokenInputs[this.i].Summarize() + \" can only be used inside \" + reasonToSearch + \" body\",\n this.tokenInputs[this.i].value + \" can only be used inside \" + reasonToSearch + \" body\", null, this.tokenInputs[this.i].value);\n }\n};\n\nvar Lex = {\n tok: {\n operator: Token.Types.operator,\n string: Token.Types.string,\n number: Token.Types.number,\n identifier: Token.Types.identifier,\n keyword: Token.Types.keyword\n },\n strings: {\n main: {\n canBeFirst: true,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.token.value === \"{\") {\n self.right = [];\n var statementCounter = 0;\n var next = null, loop = false;\n do {\n this.i++;\n loop = false;\n var parsedForest = parse.call(this, null, { lineBreakMode: \"return\" }); // string statements can not be multiline / 56041 for now... (*)\n //(*) -> still using forest for future prevention of evaluator changes :)\n assertRetResp.call(this, \"}\");\n self.right.push(parsedForest);\n self.token.value += (\"{\" + statementCounter++ + \"}\");\n this.innerParseClosureRetval = null;\n next = peekNext.call(this);\n if (next !== null && next.type === Lex.tok.string) {\n self.token.value += next.value;\n this.i++;\n next = peekNext.call(this);\n if (next !== null && next.value === \"{\") {\n loop = true;\n this.i++;\n }\n }\n } while (loop);\n return self;\n } else {\n infix(node, self);\n }\n return true;\n }\n }\n }\n },\n numbers: {\n main: {\n canBeFirst: true,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n infix(node, self);\n return true;\n }\n }\n }\n },\n identifiers: {\n main: {\n canBeFirst: true,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n infix(node, self);\n return true;\n }\n }\n }\n },\n keywords: {\n \"if\": {\n canBeFirst: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (node != null) {\n return false;\n }\n \n var myEntryReason = this.getInnerParseEntryReason();\n\n var setInnerParseContext = function () {\n if (myEntryReason === \"elseif\") {\n this.innerParseClosure = true;\n } else {\n this.innerParseClosureRetval = null;\n }\n }\n assertNext.call(this, \"(\");\n this.i++;\n self.left = parse.call(this, null, { lineBreakMode: \"discard\" })[0];\n assertRetResp.call(this, \")\");\n this.innerParseClosureRetval = null;\n\n assertNext.call(this, \"{\");\n this.i++;\n this.setInnerParseEntryReason(\"if\");\n self.right = [parse.call(this, null, { lineBreakMode: \"multiline\" }), null];\n this.popInnerParseEntryReason();\n assertRetResp.call(this, \"}\");\n\n if (checkNext.call(this, \"else\") === true) {\n this.innerParseClosureRetval = null;\n this.i++;\n if (checkNext.call(this, \"if\") === true) { // else if {\n this.i++;\n this.setInnerParseEntryReason(\"elseif\");\n self.right[1] = parse.call(this, null, { lineBreakMode: \"multiline\" });\n this.popInnerParseEntryReason();\n // check } maybe ??\n setInnerParseContext.call(this);\n } else { //else {\n assertNext.call(this, \"{\");\n this.i++;\n this.setInnerParseEntryReason(\"else\");\n self.right[1] = parse.call(this, null, { lineBreakMode: \"multiline\" });\n this.popInnerParseEntryReason();\n assertRetResp.call(this, \"}\");\n setInnerParseContext.call(this);\n }\n } else {\n setInnerParseContext.call(this);\n }\n\n return self;\n }\n },\n \"foreach\": {\n canBeFirst: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (node != null) {\n return false;\n }\n\n var setInnerParseContext = function () {\n this.innerParseClosureRetval = null;\n }\n\n assertNext.call(this, \"(\");\n\n var identifier = peekNext.call(this);\n if (identifier.type != Lex.tok.identifier) {\n return false;\n }\n this.i++;\n\n var inn = peekNext.call(this);\n this.i++;\n if (inn.type != Lex.tok.keyword || inn.value != \"in\") {\n unexpectedToken.call(this, \"in\");\n }\n\n this.i++;\n inn = new Node(inn);\n identifier = new Node(identifier);\n inn.right = parse.call(this, null, { lineBreakMode: \"return\" })[0];\n inn.left = identifier;\n self.left = inn;\n\n assertRetResp.call(this, \")\");\n this.innerParseClosureRetval = null;\n\n assertNext.call(this, \"{\");\n this.i++;\n this.setInnerParseEntryReason(\"foreach\");\n self.right = [parse.call(this, null, { lineBreakMode: \"multiline\" })];\n this.popInnerParseEntryReason();\n assertRetResp.call(this, \"}\");\n\n setInnerParseContext.call(this);\n\n return self;\n }\n },\n \"in\": {\n canBeFirst: false,\n CanBeTaken: function () {\n return false;\n }\n },\n \"break\": {\n canBeFirst: true,\n CanBeTaken: function (node, self) {\n if (node != null) {\n return false;\n }\n assertEntryReasonExistInStack.call(this, \"foreach\");\n return self;\n }\n },\n \"continue\": {\n canBeFirst: true,\n CanBeTaken: function (node, self) {\n if (node != null) {\n return false;\n }\n assertEntryReasonExistInStack.call(this, \"foreach\");\n return self;\n }\n }\n },\n operators: {\n \"()\": {\n wasOpenable: true,\n concatable: true,\n canBeFirst: false,\n value: \"()\",\n presedence: -1,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n infix(node, self);\n return true;\n }\n },\n \"(\": {\n openable: true,\n canBeFirst: true, presedence: -1,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n var parsed = [];\n while (true) {\n parsed.push(parse.call(this, null, { lineBreakMode: \"return\" })[0]);\n if (this.innerParseClosureRetval.retResponsible.token.value == \",\") {\n this.innerParseClosureRetval = null;\n this.i++;\n } else {\n break;\n }\n }\n\n postfix(parsed, self);\n return self;\n },\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (node == null) {\n this.i++;\n var parsed = parse.call(this, null, { lineBreakMode: \"return\" })[0];\n this.innerParseClosureRetval = null;\n return parsed;\n }\n\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.TokObject.wasOpenable === true) {\n // calling an openable. no differecent than identifier\n infix(self, node);\n return true;\n }\n // self is presedence operator\n this.i++;\n var parsed = parse.call(this, null, { lineBreakMode: \"return\" })[0];\n this.innerParseClosureRetval = null;\n postfix(parsed, node);\n return parsed;\n case Lex.tok.number:\n return false;\n case Lex.tok.identifier:\n infix(self, node);\n return true;\n }\n\n }\n },\n \")\": {\n canBeFirst: false, presedence: 9,\n closer: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n\n if (node != null) {\n switch (node.token.type) {\n case Lex.tok.operator:\n //if (node.TokObject.openable != true && node.TokObject.wasOpenable != true) {\n // return false;\n //} evaluator -> and2\n if (node.token.value == \"(\") { // açılmanın üstüne kapama -> ()\n node.token.value = Lex.operators[\"()\"].value;\n node.TokObject = Lex.operators[\"()\"];\n node.token.endPosition = self.token.position;\n return node;\n }\n break;\n }\n }\n\n this.innerParseClosure = true;\n this.innerParseClosureRetval = {\n retTokenValue: Lex.operators[\"()\"].value,\n retTokObject: Lex.operators[\"()\"],\n retEndPosition: self.token.position,\n retResponsible: self\n };\n return true;\n }\n },\n \"{}\": {\n concatable: true,\n canBeFirst: false,\n value: \"{}\",\n wasOpenable: true,\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n switch (node.token.value) {\n case Lex.operators[\"!\"]:\n return false;\n }\n infix(node, self);\n return true;\n }\n }\n },\n \"{\": {\n openable: true,\n canBeFirst: true, value: \"{\",\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n var parsed = [];\n var curParsed = null;\n while (true) {\n curParsed = parse.call(this, null, { lineBreakMode: \"discard\" })[0];\n assertRetResp.call(this, [\"}\", \",\"]);\n if (curParsed.token.value != \"=\") {\n throw createError(\"(Parser)object creation scope <<{}>> must consist of assignments <<=>>, not expected: \" + curParsed.Summarize(),\n \"object creation scope <<{}>> must consist of assignments <<=>>, not expected: \" + curParsed.token.value, curParsed, null);\n }\n parsed.push(curParsed);\n if (this.innerParseClosureRetval.retResponsible.token.value == \",\") {\n this.innerParseClosureRetval = null;\n this.i++;\n } else {\n break;\n }\n }\n\n postfix(parsed, self);\n return self;\n }\n },\n \"}\": {\n value: \"}\",\n canBeFirst: true,\n closer: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (node != null) {\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.TokObject.openable != true && node.TokObject.wasOpenable != true) {\n return false;\n }\n if (node.token.value == \"{\") { // açılmanın üstüne kapama -> {}\n node.token.value = Lex.operators[\"{}\"].value;\n node.TokObject = Lex.operators[\"{}\"];\n node.token.endPosition = self.token.position;\n return node;\n }\n break;\n }\n }\n\n this.innerParseClosure = true;\n this.innerParseClosureRetval = {\n retTokenValue: Lex.operators[\"{}\"].value,\n retTokObject: Lex.operators[\"{}\"],\n retEndPosition: self.token.position,\n retResponsible: self\n };\n return true;\n }\n },\n \"[]\": {\n wasOpenable: true,\n concatable: true,\n canBeFirst: false,\n presedence: -1,\n value: \"[]\",\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n switch (node.token.value) {\n case Lex.operators[\"[\"]:\n case Lex.operators[\"!\"]:\n return false;\n }\n infix(node, self);\n return true;\n }\n }\n },\n \"[\": {\n openable: true,\n presedence: -1,\n value: \"[\",\n canBeFirst: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.TokObject.wasOpenable === true || node.TokObject.openable === true || node.token.value === \"=\") {\n return null; // be handled with [].CanTake, ().CanTake || (.CanTake...\n }\n throw createError(\"(Parser)not implemented 16\", \"not implemented 16\", node, null); //concat two arrays maybe ?? [2,3]+[4,5,6]\n return true;\n case Lex.tok.number:\n return false;\n case Lex.tok.identifier:\n infix(self, node);\n return true;\n }\n },\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n\n var parsed = [];\n while (true) {\n parsed.push(parse.call(this, null, { lineBreakMode: \"return\" })[0]);\n if (this.innerParseClosureRetval.retResponsible.token.value == \",\") {\n this.innerParseClosureRetval = null;\n this.i++;\n } else {\n break;\n }\n }\n\n postfix(parsed, self);\n return self;\n }\n },\n \"]\": {\n value: \"]\",\n canBeFirst: false,\n closer: true,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (node != null) {\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.token.value == \"[\") { // açılmanın üstüne kapama -> []\n node.token.value = Lex.operators[\"[]\"].value;\n node.TokObject = Lex.operators[\"[]\"];\n node.token.endPosition = self.token.position;\n return node;\n }\n if (node.TokObject.wasOpenable != true) {\n return false;\n }\n }\n }\n\n this.innerParseClosure = true;\n this.innerParseClosureRetval = {\n retTokenValue: Lex.operators[\"[]\"].value,\n retTokObject: Lex.operators[\"[]\"],\n retEndPosition: self.token.position,\n retResponsible: self\n };\n return true;\n }\n },\n \"+\": {\n concatable: false,\n canBeFirst: false, presedence: 5,\n CanTake: CanTakeOperatorPlus\n },\n \"-\": {\n concatable: false,\n canBeFirst: true, presedence: 5,\n CanTake: CanTakeOperatorPlus\n },\n \"*\": {\n concatable: false,\n canBeFirst: false, presedence: 6,\n CanTake: CanTakeOperatorPlus\n },\n \"/\": {\n concatable: false,\n canBeFirst: false, presedence: 6,\n CanTake: CanTakeOperatorPlus\n },\n \"&&\": {\n concatable: false,\n canBeFirst: false, presedence: 2,\n CanTake: CanTakeOperatorPlus\n },\n \"||\": {\n concatable: false,\n canBeFirst: false, presedence: 2,\n CanTake: CanTakeOperatorPlus\n },\n \"!\": {\n canBeFirst: true, concatable: false,\n presedence: 7,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.number:\n case Lex.tok.identifier:\n case Lex.tok.string:\n return false;\n }\n },\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n return false;\n }\n postfix(node, self);\n return true;\n }\n },\n \"?\": {\n canBeFirst: false\n },\n \":\": {\n canBeFirst: false,\n CanTake: function () {\n //sadece dışarısı object creation'larda ({a=5}) = kullanılmalı hatasını versin diye. Başka bir amaç yok...\n return true;\n }\n },\n \"%\": {\n canBeFirst: false\n },\n \".\": {\n concatable: true,\n presedence: 8,\n canBeFirst: false,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.identifier:\n infix(self, node);\n return true;\n }\n },\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.identifier:\n postfix(node, self);\n return true;\n }\n }\n },\n \"&\": {\n canBeFirst: false\n },\n \"|\": {\n canBeFirst: false\n },\n \">\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \"<\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \">=\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \"<=\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \"==\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \"!=\": {\n concatable: false,\n canBeFirst: false, presedence: 4,\n CanTake: CanTakeOperatorPlus\n },\n \"=\": {\n canBeFirst: false, presedence: -1,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n var head = node;\n while (head.parent != null) {\n // burada scope'ı ayırmak lazım. SM.go(alper{a=5,b=6}\n head = head.parent;\n }\n var permitted = {\n \"[]\": 1, identifier: 1, \".\": 1, string: 1\n };\n if (permitted[head.token.type] == null && permitted[head.token.value] == null) {\n throw createError(\"(Parser)left hand side of = has errors: \" + self.Summarize(),\n \"left hand side of = has errors: \" + self.token.value, self, null);\n }\n infix(self, node);\n return true;\n },\n CanTake: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n var parsed = parse.call(this, null, { lineBreakMode: \"return\" })[0];\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.token.value == \"=\") {\n return false;\n }\n break;\n }\n postfix(parsed, self);\n if (this.innerParseClosureRetval != null) {\n var retRespTokVal = this.innerParseClosureRetval.retResponsible.token.value;\n if (retRespTokVal == \",\" || retRespTokVal == \"}\" || retRespTokVal == \")\") { // bitiş sona gelmesi değil de , dolayısı ile\n this.innerParseClosure = true; // benim değil, üstten girenin\n }\n }\n return parsed;\n }\n },\n \",\": {\n canBeFirst: false, presedence: -1,\n CanBeTaken: function (node, self) {\n ///<param name=\"node\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n switch (node.token.type) {\n case Lex.tok.operator:\n if (node.TokObject.wasOpenable != true) {\n //if (node.token.value != \"()\") {\n return false;\n }\n break;\n }\n\n this.innerParseClosure = true;\n this.innerParseClosureRetval = {\n retTokenValue: null,\n retTokObject: null,\n retEndPosition: null,\n retResponsible: self\n };\n\n return true;\n }\n }\n }\n};\n\nParse.Dict = Lex;\n\nvar postfix = function (newNode, self) {\n ///<param name=\"newNode\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (!new TypeHelper().isArray(newNode)) {\n newNode = [newNode];\n }\n for (var i = 0; i < newNode.length; i++) {\n if (newNode[i].parent != null) {\n throw createError(\"(Parser)unexpected postfix: newnodes parent is not null: \" + newNode[i].Summarize(),\n \"unexpected postfix: newnodes parent is not null:\" + newNode[i].token.value, newNode[i], null);\n }\n newNode[i].parent = self;\n }\n\n if (self.right == null) {\n self.right = newNode.length > 1 ? newNode : newNode[0];\n } else {\n throw createError(\"(Parser)unexpected postfix: selfs right is not null\" + self.Summarize(),\n \"unexpected postfix: selfs right is not null\" + self.token.value, self, null);\n }\n};\n\nvar putInPlace = function (destNode, sourceNode) {\n ///<param name=\"destNode\" value=\"new Node()\"></param>\n ///<param name=\"sourceNode\" value=\"new Node()\"></param>\n if (destNode.parent == null) {\n destNode.parent = sourceNode;\n if (sourceNode.left == null) {\n sourceNode.left = destNode;\n } else if (sourceNode.right == null) {\n sourceNode.right = destNode;\n } else {\n throw createError(\"(Parser)Can not put in place source has both left and right: \" + sourceNode.Summarize(),\n \"Can not put in place source has both left and right: \" + sourceNode.token.value, sourceNode, null);\n }\n } else {\n destNode.parent.right = sourceNode;\n sourceNode.parent = destNode.parent;\n destNode.parent = sourceNode;\n if (sourceNode.left == null) {\n sourceNode.left = destNode;\n } else {\n throw createError(\"(Parser)Can not put in place, incomming source nodes left is not null: \" + sourceNode.Summarize(),\n \"Can not put in place, incomming source nodes left is not null: \" + sourceNode.token.value, sourceNode, null);\n }\n }\n};\n\n\n\nvar infix = function (newNode, self) {\n ///<param name=\"newNode\" value=\"new Node()\"></param>\n ///<param name=\"self\" value=\"new Node()\"></param>\n if (self.parent == null) {\n self.parent = newNode;\n if (newNode.left == null) {\n newNode.left = self;\n } else {\n throw createError(\"(Parser)unexpected infix: newNode left is not null \" + newNode.Summarize(),\n \"unexpected infix: newNode left is not null \" + newNode.token.value, newNode, null);\n }\n } else {\n var target = self;\n while (true) {\n if (target.parent == null || target.parent.TokObject.presedence < newNode.TokObject.presedence) {\n break;\n }\n if (newNode.TokObject.presedence == -1 && target.parent.TokObject.concatable != true) {\n break;\n }\n target = target.parent;\n }\n putInPlace(target, newNode);\n }\n};\n\nvar parseExObj = function (message, responsibleNode) {\n return {\n message: \"(Parser)\" + message,\n responsibleNode: responsibleNode\n };\n};\n\n/**\n * \n * @param {string} consoleMsg \n * @param {string | undefined} msg \n * @param {Node | undefined} responsibleNode \n * @param {Token | undefined} responsibleToken\n */\nvar createError = function (consoleMsg, msg, responsibleNode, responsibleToken) {\n var pos = { line: 0, column: 0 };\n var endPos = { line: 0, column: 0 };\n if (responsibleNode) {\n pos = (responsibleNode.token && responsibleNode.token.position) || pos;\n endPos = (responsibleNode.token && responsibleNode.token.endPosition) || endPos;\n } else if (responsibleToken) {\n pos = responsibleToken.position || pos;\n endPos = responsibleToken.endPosition || endPos;\n }\n\n\n return new QSCError({\n message: consoleMsg, intelliMsg: msg,\n stLine: pos.line, stColumn: pos.line,\n eLine: endPos.line, eColumn: endPos.column,\n responsibleNode: responsibleNode\n });\n};\n\nvar ParseObj = { Parse: Parse };\n\nexport { ParseObj }"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QSCError = void 0;
4
+ class QSCError extends Error {
5
+ constructor({ intelliMsg, message, stLine, stColumn, eLine, eColumn, responsibleNode }) {
6
+ super(message);
7
+ this.intelliMsg = intelliMsg;
8
+ this.stLine = stLine;
9
+ this.stColumn = stColumn;
10
+ this.name = QSCError.ErrorName;
11
+ this.eLine = eLine;
12
+ this.eColumn = eColumn;
13
+ this.responsibleNode = responsibleNode;
14
+ }
15
+ }
16
+ exports.QSCError = QSCError;
17
+ QSCError.ErrorName = "QSCError";
18
+ ;
19
+ //# sourceMappingURL=QSCError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QSCError.js","sourceRoot":"","sources":["../../../../../../quick/common/shrimp/omniScriptCompiler/QSCError.ts"],"names":[],"mappings":";;;AACA,MAAa,QAAS,SAAQ,KAAK;IAE/B,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EACiD;QACjI,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;;AAZL,4BAaC;AAZiB,kBAAS,GAAG,UAAU,CAAC;AAoBxC,CAAC","sourcesContent":["import { Node } from \"./Node\"\nexport class QSCError extends Error implements QSCError {\n public static ErrorName = \"QSCError\";\n constructor({ intelliMsg, message, stLine, stColumn, eLine, eColumn, responsibleNode }:\n { intelliMsg: string, message: string, stLine: number, stColumn: number, eLine: number, eColumn: number, responsibleNode?: Node }) {\n super(message);\n this.intelliMsg = intelliMsg;\n this.stLine = stLine;\n this.stColumn = stColumn;\n this.name = QSCError.ErrorName;\n this.eLine = eLine;\n this.eColumn = eColumn;\n this.responsibleNode = responsibleNode;\n }\n}\nexport interface QSCError extends Error {\n intelliMsg: string,\n stLine: number,\n stColumn: number,\n eLine: number,\n eColumn: number,\n responsibleNode?: Node\n};"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Token = void 0;
4
+ class Token {
5
+ constructor(type, value, position, endPosition) {
6
+ this.type = type;
7
+ this.value = value;
8
+ this.position = position;
9
+ this.endPosition = endPosition;
10
+ }
11
+ Summarize() {
12
+ var pos = this.position == null ? " @?" : " @line:" + this.position.line + "-column:" + this.position.column;
13
+ pos += this.endPosition != null ? " to: @line" + this.endPosition.line + "-column:" + this.endPosition.column : "";
14
+ return "type: " + this.type + " value: " + this.value + pos;
15
+ }
16
+ }
17
+ exports.Token = Token;
18
+ Token.reservedIdentifierTypes = {
19
+ response: "native",
20
+ data: "native",
21
+ "true": "boolean",
22
+ "false": "boolean",
23
+ "null": "null"
24
+ };
25
+ Token.Types = {
26
+ identifier: "identifier",
27
+ keyword: "keyword",
28
+ string: "string",
29
+ number: "number",
30
+ operator: "operator"
31
+ };
32
+ //# sourceMappingURL=Token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Token.js","sourceRoot":"","sources":["../../../../../../quick/common/shrimp/omniScriptCompiler/Token.ts"],"names":[],"mappings":";;;AAOA,MAAa,KAAK;IAoBd,YAAY,IAAe,EAAE,KAAU,EAAE,QAAmB,EAAE,WAAuB;QACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEM,SAAS;QACZ,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7G,GAAG,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACnH,OAAO,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IAChE,CAAC;;AA/BL,sBAgCC;AA/BiB,6BAAuB,GAAG;IACpC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,MAAM;CACjB,CAAC;AACY,WAAK,GAAG;IAClB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACd,CAAC","sourcesContent":["export type TokenType = (typeof Token.Types)[keyof typeof Token.Types];\n\nexport interface IPosition {\n line: number;\n column: number;\n}\n\nexport class Token {\n public static reservedIdentifierTypes = {\n response: \"native\",\n data: \"native\",\n \"true\": \"boolean\",\n \"false\": \"boolean\",\n \"null\": \"null\"\n };\n public static Types = {\n identifier: \"identifier\",\n keyword: \"keyword\",\n string: \"string\",\n number: \"number\",\n operator: \"operator\"\n } as const;\n\n public type: TokenType;\n public value: any;\n public position: IPosition;\n public endPosition?: IPosition;\n constructor(type: TokenType, value: any, position: IPosition, endPosition?: IPosition) {\n this.type = type;\n this.value = value;\n this.position = position;\n this.endPosition = endPosition;\n }\n\n public Summarize() {\n var pos = this.position == null ? \" @?\" : \" @line:\" + this.position.line + \"-column:\" + this.position.column;\n pos += this.endPosition != null ? \" to: @line\" + this.endPosition.line + \"-column:\" + this.endPosition.column : \"\";\n return \"type: \" + this.type + \" value: \" + this.value + pos;\n }\n}"]}
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // This file is auto-generated by scripts/update-version.js — do not edit manually.
5
- exports.VERSION = "4.1.0-2";
5
+ exports.VERSION = "4.1.0-7";
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stechquick/studio-cli",
3
- "version": "4.1.0-6",
3
+ "version": "4.1.0-7",
4
4
  "description": "Agentic bridge CLI between local files and the Studio web app",
5
5
  "bin": {
6
6
  "studio": "dist/studio-cli/src/index.js"
@@ -9,8 +9,10 @@
9
9
  "dist"
10
10
  ],
11
11
  "scripts": {
12
- "build:prod": "tsc && node scripts/copy-assets.js && node scripts/update-version.js",
12
+ "build:osc": "tsc -p ./omniScriptCompiler",
13
+ "build:prod": "npm run clean && node scripts/update-version.js && tsc && node scripts/copy-assets.js && npm run build:osc",
13
14
  "build": "npm run build:prod && chmod +x dist/studio-cli/src/index.js",
15
+ "clean": "rm -rf ./dist/*",
14
16
  "postinstall": "node dist/studio-cli/src/index.js protocol install || exit 0",
15
17
  "test": "node --test tests/*.test.js",
16
18
  "start": "node dist/studio-cli/src/index.js",