@ws-ui/parser
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

4D Parser

This package provides two main Classes:

  • Parser:
    • Parse 4D-language and transpile it to JavaScript
  • ParserRunner:
    • Parse 4d-language
    • Execute 4d-langague Client-Side
    • Using Web Worker to provide an isolated env to run your Code

Install

    npm install @ws-ui/parser

Usage Exemple

  • Parser
    import { Parser } from '@ws-ui/parser'

    const code4D = '$bar:="foo"'
    const parser = new Parser()

    parser.parse(code4D)
    const generatedCode = parser.generateJS()
    
    const jsCode = generatedCode.code 

This code will generate this result:

    let bar = "foo"
  • ParserRunner
    import { ParserRunner } from '@ws-ui/parser'

    const parserRunner = new ParserRunner(5000, 1)
    const code4D = '$result:= $a + $b'

    const { response } = await parserRunner.parse([
        code: code4D,
        name: 'sum',
        params: [{ name: "$a" }, { name: "$b" }],
        returns: { name: "$result" },
    ])

    const { result } = await parserRunner.run('sum', [4, 4])

    const { result: readResult } = await parserRunner.read(['sum'])
    
    //response: OK
    //result: 8
    //readResult: [ {code: '$result:= $a + $b', codeJS: 'let $result = $a + $b;'} ]

The result of the read operation:

    let $result = $a + $b;

Supported Language Syntax

  • Variable Declaration

    • With New Keyword
    • With the Var keyword.
    • Local variable, start with $
    • Process Variables.
  • Function declaration with Function keyword.

  • Controll flow

    • While...End while
    • For...End for
    • If...Else...End if
    • Case of...Else...End case
  • Other Syntax are in WIP.

Important Note

  • 4d Code provided to the Parser or ParserRunner must be with Tabs indentation.

Readme

Keywords

none

Package Sidebar

Install

npm i @ws-ui/parser

Weekly Downloads

1

Version

0.1.2

License

ISC

Unpacked Size

319 kB

Total Files

44

Last publish

Collaborators

  • mourad.eyes
  • anass00
  • axel-dev
  • df_train
  • idrissi
  • im-4d
  • ps-mo