diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-08-01 11:56:46 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-08-01 12:30:07 -0700 |
| commit | e7a69fbe4e33602dd6f78d140aafa5125b8eec71 (patch) | |
| tree | efeae6782ee2a24f579f17c7156300dc15e79178 /src/libsyntax | |
| parent | 899400cd1a7465ffcc80d848d6cb2b6fb2436e02 (diff) | |
| download | rust-e7a69fbe4e33602dd6f78d140aafa5125b8eec71.tar.gz rust-e7a69fbe4e33602dd6f78d140aafa5125b8eec71.zip | |
Working on documentation of pipes.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/pipes.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libsyntax/ext/pipes.rs b/src/libsyntax/ext/pipes.rs index 5a1462cea30..08562c4490f 100644 --- a/src/libsyntax/ext/pipes.rs +++ b/src/libsyntax/ext/pipes.rs @@ -1,3 +1,37 @@ +/*! Implementation of proto! extension. + +This is frequently called the pipe compiler. It handles code such as... + +~~~ +proto! pingpong { + ping: send { + ping -> pong + } + pong: recv { + pong -> ping + } +} +~~~ + +There are several components: + + * The parser (libsyntax/ext/pipes/parse_proto.rs) + * Responsible for building an AST from a protocol specification. + + * The checker (libsyntax/ext/pipes/check.rs) + * Basic correctness checking for protocols (i.e. no undefined states, etc.) + + * The analyzer (libsyntax/ext/pipes/liveness.rs) + * Determines whether the protocol is bounded or unbounded. + + * The compiler (libsynatx/ext/pipes/pipec.rs) + * Generates a Rust AST from the protocol AST and the results of analysis. + +There is more documentation in each of the files referenced above. + +FIXME (#3072) - This is still incomplete. + +*/ import codemap::span; import ext::base::ext_ctxt; |
