Core components for the Scribble Java tools
Java GAP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dist
modules
.gitignore
CHANGES
README
pom.xml

README

README for

    scribble-dist-0.4-SNAPSHOT.zip

This distribution is built from the master branch

    https://github.com/scribble/scribble-java/tree/master

by

    mvn [clean] install

(Output written to dist/target)


Issue reporting
---

Bugs and issues can be reported via the github Issues facility.

Or email  rhu1234 [at] doc.ic.ac.uk  excluding the 1234.


Scribble distribution zip contents:
---

- lib            jars needed to run the scribble-java tool
- scribblec.sh   script for running the command line tool


Command line usage:
---

> List command line options.

    ./scribblec.sh --help


> Check well-formedness of global protocols in, e.g., Test.scr.

    ./scribblec.sh Test.scr

Notes:
- Use the -oldwf command line flag to use the simpler syntactic protocol
  well-formedness from the previous version of Scribble.
- Use the -V command line flag to obtain full traces for errors according
  to the new protocol validation (and other details).


> Project local protocol for role "C" of protocol "Proto" in Test.scr

    ./scribblec.sh Test.scr -project Proto C


> Print dot representation of Endpoint FSM for role "C" of protocol "Proto"
  in Test.scr

    ./scribblec.sh Test.scr -fsm Proto C


> Generate Java Endpoint API for role "C" of protocol "Proto"
  in Test.scr

    ./scribblec.sh -d . Test.scr -api Proto C


Examples:
---

> To make an HelloWorld test:

  echo 'module Test; global protocol Proto(role C, role S) {
      Hello() from C to S; }' > Test.scr


Further examples can be found in:

  https://github.com/scribble/scribble-java/tree/master/modules/demos/scrib

The distribution zip does not include these examples.  They can be obtained
as part of the source repository, or separately via the above link.

> E.g. To generate the Java Endpoint API for role "C" of the "Adder"
  protocol from http://www.doc.ic.ac.uk/~rhu/scribble/fase16.pdf

    ./scribblec.sh -d modules/demos/scrib/fase16/src
        modules/demos/scrib/fase16/src/fase16/adder/Adder.scr -api Adder C


Alternative command line usage:
---

To run the Scribble tool directly via java:

  try  scribblec.sh  with the  --verbose  flag

to see the underlying java command with main class, classpath and other args.

Or try (from Nick Ng):

  $ mvn dependency:build-classpath -Dmdep.outputFile=classpath
  $ java -cp $(cat dist/classpath)
        org.scribble.cli.CommandLine [args] MyModule.scr