import edu.neu.ccs.demeter.dj.*; Blackboard = "" "" List(Player) "" // in file players.xml Store // in file store.xml "" List(Transaction) ""// in file playerName_done.xml 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 = *l "" Lit "". Lit : PosLiteral | NegLiteral common Variable . PosLiteral = "" "" . NegLiteral = "" "" . Variable = "" Ident "". Assignment = "" List(Literal) "" . // Quality = "" float "" . List(S) ~ S {S} . EList(S) ~ {S} . Main = String. noparse visitor CTVisitor = int int.