import edu.neu.ccs.demeter.dj.*;
Blackboard = ""
"" List(Player) "" // in file players
Store // in file store
"" List(Transaction) ""// in file playerName_done
History // in file history
""
EOF .
Player = "" PlayerName
"" Money ""
"" boolean ""
[PublicKey] "".
PlayerName = "" Ident "".
PublicKey = "" "".
History = "" EList(Transaction) "".
Store = "" *l EList(Derivative) *l "" .
Transaction = "" Trans "".
Trans :
Buy |
Create |
DeliverR |
Finish common PlayerName Derivative [DigitalSignature].
Buy = "" "".
Create = "" "".
DeliverR = "" "".
Finish = "" "".
DigitalSignature = "" "".
Derivative = "" *l
DerivativeName
"" PlayerName ""
"" Money ""
DerivativeType
["" PlayerName ""]
[ RawMaterial] *l
[ FinishedProduct]
"" .
FinishedProduct = ""
Assignment
Money
"".
DerivativeName = "" Ident "" .
Money = "" float "" .
DerivativeType = ""
List(ClauseType) "" .
ClauseType =
""
TotalLiteralNum
PosLiteralNum "" .
TotalLiteralNum = "" int "" .
PosLiteralNum = "" int "" .
RawMaterial = "" List(Clause) "" .
Clause = *l "" Weight
"" List(Literal) ""
"" .
Weight = "" int "" .
Literal = "" Lit "".
Lit : PosLiteral | NegLiteral common Variable .
PosLiteral = *l "" "" .
NegLiteral = *l "" "" .
Variable = "" Ident "".
Assignment = "" List(Literal) "" .
Quality = "" float "" .
List(S) ~ S {S} .
EList(S) ~ {S} .
Main = String.
noparse
visitor CTVisitor = int int.