Giter Site home page Giter Site logo

alexzhornyak / uscxml Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tklab-tud/uscxml

2.0 1.0 1.0 110.16 MB

SCXML interpreter and transformer/compiler written in C/C++ with bindings to Java, C#, Python and Lua

License: Other

CMake 2.96% C++ 66.94% C 11.09% HTML 5.38% Batchfile 0.02% Shell 0.40% C# 0.02% Java 0.93% Python 0.02% Perl 2.41% Makefile 0.01% PHP 1.93% Lex 0.08% Objective-C++ 0.04% JavaScript 0.01% Tcl 0.01% XSLT 5.03% VBScript 0.26% SWIG 2.31% NASL 0.16%

uscxml's Introduction

ArrayAsMap branch

General difference from original USCXML

1) Data array was changed from std::list<Data> to std::map<int,Data>

It means that data starts from 0, but arrays in some datamodels may start from 1 or other digit, or may be like 1,3,5 etc

2) Critical issues like #179 were corrected

Original USCXML master branch stopped support in 2017 but has critical issues like #179 and others

3) Full Windows Support

Original USCXML has poor Windows support but this branch is completely tested and has Windows as the only target.

Supported models

  • null
  • lua
  • ecmascript (JavaScriptCore)

uSCXML ReadMe

Build StatusBuild statusBuild status

Quick Links

What is it?

uSCXML is a platform to work with state-charts given as SCXML files. It consists of three principal components:

  1. libuscxml: C++ library containing an interpreter and accompanying functionality.

  2. uscxml-browser: A standards compliant command-line interpreter of SCXML documents.

  3. uscxml-transform: A collection of transformation implementations to transpile SCXML, e.g. onto ANSI-C and VHDL.

The status of the various datamodels, bindings and generators with regard to the W3C IRP tests can be checked in the test table.

Installation

There are no installers yet and we do not feature any releases. Just check for open issues and build from source. If you did download and build locally, you can create installers via make packages though.

Documentation

Documentation is available at our github pages. It is created from inline comments in the source along with some dedicated markdown pages via doxygen. We try to keep it current and will update it ever again. For the most current documentation, you can run make docs in your build directory.

Licensing

uSCXML itself is distributed under the Simplified BSD license as in, do not sue us and do not misrepresent authorship. There are currently four additional libraries that are required to compile uSCXML.

Project License Comment
libcurl MIT/X derivate Used in uSCXML to fetch remote content
Xerces-C++ Apache v2 XML parser and DOM implementation
libevent 3-clause BSD Delayed event queues
uriparser New BSD Referring and resolving URIs

At configure time, the uSCXML build-process will attempt to find and link several other libraries (e.g. Lua, v8) and additional licensing terms may apply.

Getting Started

For more detailled information, refer to the documentation.

Embedded as a Library

uscxml::Interpreter scxml = uscxml::Interpreter::fromURL("...");
while(scxml.step() != uscxml::USCXML_FINISHED) {
  ...
}

On the Command-line

# interpret state-chart from url
$ uscxml-browser https://raw.githubusercontent.com/tklab-tud/uscxml/master/test/w3c/null/test436.scxml

For Transformations

# transform given SCXML document into ANSI-C fragment
$ uscxml-transform -tc -i https://raw.githubusercontent.com/tklab-tud/uscxml/master/test/w3c/null/test436.scxml

uscxml's People

Contributors

alexzhornyak avatar c64zottel avatar gabm avatar magnusfant avatar mathiasjohanson avatar sradomski avatar sterad avatar vogelsgesang avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

galaxy1978

uscxml's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.