This package provides the classes that realizes the SPiM front end. The features of the front end are:
translator.Main [ fileName ] [ -gv (--graphviz) [dir] ]
If fileName is present it will be interpreted as the ASLan++ specification input file. Otherwise a GUI will allow to choose the ASLan++ specification the input file.MainSpec | ::= | "specification" Name "channel_model" |
"CCM" EntityDecl | ||
EntityDecl | ::= | "entity" UpperName Params? "{" Decls* |
EntityDecl* Body? ConstrDecls? GoalDecls? "}" | ||
UpperLetter | ::= | ["A" .. "Z"] |
LowerLetter | ::= | ["a" .. "z"] |
NonZeroDigit | ::= | ["1" .. "9"] |
Digit | ::= | "0" | NonZeroDigit |
Numeral | ::= | "0" | NonZeroDigit Digit* |
Alphanum | ::= | UpperLetter | LowerLetter | Digit | "_" | "'" |
UpperName | ::= | UpperLetter Alphanum* |
LowerName | ::= | LowerLetter Alphanum* |
Name | ::= | LowerName | UpperName |
Var | ::= | UpperName |
Vars | ::= | Var ("," Var)* |
Params | ::= | "(" (Vars ":" Type) ("," Vars ":" Type)* ")" |
Decls | ::= | SymbolDecls |
Type | ::= | LowerName |
| "(" Type ")" | ||
SymbolDecls | ::= | "symbols" (SymbolDecl ";")+ |
SymbolDecl | ::= | Vars ":" Type |
| < LowerName > ("," < LowerName >)* ":" Type() | ||
Term | ::= | LowerName |
| Var | ||
| "?"Var | ||
| "?" | ||
| FuncApp | ||
| Term ("." Term)+ | ||
| "{|" Term "|}_" Term | ||
| "{" Term "}_" Term | ||
| "{" Term "}_inv" Term | ||
| "(" Term ")" | ||
| Name ":(" Term ")" | ||
Terms | ::= | Term ("," Term)* |
FuncApp | ::= | LowerName "(" Terms ")" |
Body | ::= | "body" Stmt |
Stmt | ::= | Assign |
| FreshGen | ||
| EntityGen | ||
| SymbEntityGen | ||
| Transmission | ||
| "{" Stmt* "}" | ||
Assign | ::= | (Var | Name ":(" Var ")" ) ":=" Term ";" |
FreshGen | ::= | (Var | Name ":(" Var ")" ) ":=" "fresh()" ";" |
EntityGen | ::= | "new" Entity ";" |
SymbEntityGen | ::= | "any" Entity ";" |
Transmission | ::= | Term "->" Term ":" Term ";" |
Entity | ::= | UpperName ("(" Terms ")")? |
GoalDecls | ::= | "goals" (GoalDecl ";")+ |
GoalDecl | ::= | ChanGoal | SecrGoal |
ChanGoal | ::= | Name ":(_)" Term "*->" Term |
SecrGoal | ::= | Name ":(_)" "{" ( Term ("," Term)* )+ "}" |