Skip to content

vczh-libraries/Workflow

Repository files navigation

Workflow

Debuggable script language for interoperation with C++ using reflection, which can also generate C++ code.

License

This project is licensed under the License repo.

Source code in this repo is for reference only, please use the source code in the Release repo.

You are welcome to contribute to this repo by opening pull requests.

Document

Ask DeepWiki

  • For Gaclib: click here
  • For Workflow: click here
    • Using Workflow in C++: click here
    • Sample code for above document: click here
    • Workflow language reference: click here

Features

Executing Workflow by C++ code generation

Workflow scripts are able to be converted to equivalent C++ code.

If all scripts are known at compile time, this could significantly improve the script performance.

You can also get rid of runtime reflection overhead in this way.

Executing Workflow script directly

  • Workflow and C++ classes call each other by reflection.
  • Serialize compiled script to a file in binary format, you don't need to call the compiler every time.
  • bind(EXPR) expression creates a subscriptable object to observe changing of the expression value.
  • Coroutine allows implementing Enumerable and Async by coroutine functions.
  • Coroutine allows creating your own coroutine syntax.
  • State Machine offers a new way to write classes, taking methods as input and drive the state machine forward.
  • Being able to install a debugger on a thread to track Workflow script.

Unit Test

Checkout Project.md for details about compiling and running each test projects.

On Windows, use MSBuild or Visual Studio to build.

On Linux/macOS, run REPO-ROOT/.github/Ubuntu/build.sh in a project folder to update the makefile from vcxproj and build the project.

About

Debuggable script language for interoperation with C++ using reflection.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages