{"_id":"4d-parser","name":"4d-parser","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"4d-parser","version":"0.1.0","description":"4D to Javascript parser","main":"build/index.js","types":"build/index.d.ts","scripts":{"start":"nodemon","start-polyfill":"nodemon ./polyfill/index.js","test":" nearleyc ./src/QueryParser/QueryString.ne -o ./src/QueryParser/QueryString.js && jest","build:ts":"npx tsc --project tsconfig.json","build":"webpack --config webpack.config.js"},"repository":{"type":"git","url":"git@git-ps.wakanda.io:4d/web-studio/4d-js-parser.git"},"keywords":[],"author":{"name":"Omar LAHIA","email":"omar.lahia@4d.com"},"license":"ISC","devDependencies":{"@babel/generator":"^7.17.7","@babel/preset-typescript":"^7.17.12","@babel/types":"^7.17.10","@types/jest":"^27.4.1","@types/lodash":"^4.14.182","@types/node":"^17.0.31","jest":"^27.5.1","ts-loader":"^9.3.1","typescript":"^4.6.4","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"dependencies":{"@babel/core":"^7.17.9","@babel/preset-env":"^7.16.11","@types/nearley":"^2.11.2","babel-jest":"^27.5.1","buffer":"^6.0.3","loadsh":"^0.0.4","nearley":"^2.20.1","process":"^0.11.10","ts-node":"^10.7.0"},"gitHead":"59e1461aad67dd73cfab8433565c12e1ace2f50b","_id":"4d-parser@0.1.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-RQFe2Yyb3ce4te/7hbqlUojYwEUDGG7ZJERginhhXvmO+SslqgIooEXGuTg/rFSw2iqaH5Bw8vjSNLW1Am2a/g==","shasum":"f576e93d8c9253f3e511251b3b27c948a968b8ed","tarball":"https://registry.npmjs.org/4d-parser/-/4d-parser-0.1.0.tgz","fileCount":21,"unpackedSize":2607415,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGpc/VnLm218kX7xrzbBCa7GYwaENj1wU6POcT4szSZAiAP2En3yCsl7xeUSMXZ1NPKy0Kqf/okwYbsgBw4Hzi4jg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjB5VQACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpo+g//d4CBxnghKR5XAO8PoMaBxleFoTiMOFY7He+Dj8a4BF2oyeB5\r\nAgCkGX7TRcM2m8lGuX5nLTwyULkZjkq8QJvKMufd4qFVFIf1iNN6eDHpYLX+\r\niBjM76tGCgnNtLU1os/MQR7I6lGGSSFeaT1uutWhGhGHcOk8RyDv3UTYFeZF\r\nxqRp8f2qNmqpfs5ViPqqzTKUZW+nj3tgDrVlG6d+twjz5sslrRsmiPimJGkE\r\nd2Bawrxca+e4kPE6nrOOMw5CZraL+Fr3ms83EIJO/HrlXWG9tyc3M3q2ZIG2\r\np19O/KNpgvzy8DqUKP3VEoTM1ghdi5c+FAnJ8+Q2GQH/bPJWCcwkFQB/YNrF\r\ndpc5pCMrRjAyfrpMI+OhjrtsA+2pxw2XJDFyzj9p+8fxf+WA9skGXuuUMxnB\r\nqPiWKt/WRV/IWknseX3QA9fPw/rNYgvXWuTc/DlUgtQOU48W1PnBAJBvniIR\r\nNexv5T3Ia88a4vTifcC2p7xfMYtvcseV1EKItGZGFIaaXIOGxBg0VJ64bJ/4\r\njlVmXwjzFVT5EROL2c0EeRYAqDKhAH8Pcwsi9wwdFf9Ei4RiuVS23za2S0BN\r\n55gFgeNVt6a2UvaGZBFrDRr1WHWsN5WiX80zqKiU7ioEWnsqDtlw7sHpbUDj\r\nPQCqKfcTQcOuuUOv+ZLWy056Znc4usXZjI0=\r\n=3LRv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"df_train","email":"omar.lahia@gmail.com"},"directories":{},"maintainers":[{"name":"df_train","email":"omar.lahia@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/4d-parser_0.1.0_1661441360243_0.3017883038071758"},"_hasShrinkwrap":false}},"time":{"created":"2022-08-25T15:29:20.177Z","0.1.0":"2022-08-25T15:29:20.467Z","modified":"2022-08-25T15:29:20.608Z"},"maintainers":[{"name":"df_train","email":"omar.lahia@gmail.com"}],"description":"4D to Javascript parser","keywords":[],"repository":{"type":"git","url":"git@git-ps.wakanda.io:4d/web-studio/4d-js-parser.git"},"author":{"name":"Omar LAHIA","email":"omar.lahia@4d.com"},"license":"ISC","readme":"# 4D Parser\nThis package provides two main Classes:\n - Parser: \n    - Parse 4D-language and transpile it to JavaScript\n - ParserRunner: \n    - Parse 4d-language\n    - Execute 4d-langague Client-Side\n    - Using [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API) to provide an isolated env to run your Code \n\n# Install\n```\n    npm install @ws-ui/parser\n```\n\n## Usage Exemple\n\n- Parser\n\n```JavaScript\n    import { Parser } from '@ws-ui/parser'\n\n    const code4D = '$bar:=\"foo\"'\n    const parser = new Parser()\n\n    parser.parse(code4D)\n    const generatedCode = parser.generateJS()\n    \n    const jsCode = generatedCode.code \n```\n\nThis code will generate this result:\n```JavaScript\n    let bar = \"foo\"\n```\n\n- ParserRunner\n```JavaScript\n    import { ParserRunner } from '@ws-ui/parser'\n\n    const parserRunner = new ParserRunner(5000, 1)\n    const code4D = '$result:= $a + $b'\n\n    const { response } = await parserRunner.parse([\n        code: code4D,\n        name: 'sum',\n        params: [{ name: \"$a\" }, { name: \"$b\" }],\n        returns: { name: \"$result\" },\n    ])\n\n    const { result } = await parserRunner.run('sum', [4, 4])\n\n    const { result: readResult } = await parserRunner.read(['sum'])\n    \n    //response: OK\n    //result: 8\n    //readResult: [ {code: '$result:= $a + $b', codeJS: 'let $result = $a + $b;'} ]\n```\nThe result of the read operation:\n```JavaScript\n    let $result = $a + $b;\n```\n# Supported Language Syntax\n- Variable Declaration\n    - With New Keyword\n    - With the Var keyword.\n    - Local variable, start with $\n    - Process Variables.\n- Function declaration with Function keyword.\n- Controll flow \n    - While...End while\n    - For...End for\n    - If...Else...End if\n    - Case of...Else...End case\n\n- Other Syntax are in WIP.\n# Important Note\n- 4d Code provided to the Parser or ParserRunner must be with Tabs indentation.","readmeFilename":"README.md"}