import edu.neu.ccs.demeter.dj.*;
Blackboard = "" "" Player_List "" Store "" Transaction_List "" History "" EOF.
Player = "" PlayerName "" Money "" "" boolean "" [ PublicKey] "".
PlayerName = "" String "".
PublicKey = "" "".
History = "" Transaction_EList "".
Transaction : Buy
| Create
| DeliverR
| Finish .
Buy = "" PlayerName Derivative [ DigitalSignature] "" extends Transaction.
Create = "" PlayerName Derivative [ DigitalSignature] "" extends Transaction.
DeliverR = "" PlayerName Derivative [ DigitalSignature] "" extends Transaction.
Finish = "" PlayerName Derivative [ DigitalSignature] "" extends Transaction.
DigitalSignature = "" "".
Store = "" *l Derivative_EList *l "".
Derivative = "" *l DerivativeName "" PlayerName "" "" Money "" DerivativeType ["" PlayerName ""] [ RawMaterial] *l [ FinishedProduct] "".
FinishedProduct = "" Assignment Money "".
DerivativeName = "" String "".
Money = "" float "".
DerivativeType = "" ClauseType_List "".
ClauseType = "" TotalLiteralNum PosLiteralNum "".
TotalLiteralNum = "" Number "".
PosLiteralNum = "" Number "".
RawMaterial = "" Clause_List "".
Clause = "" Weight "" Literal_List "" "".
Weight = "" Number "".
Literal : PosLiteral
| NegLiteral .
PosLiteral = "" Variable "" extends Literal.
NegLiteral = "" Variable "" extends Literal.
Variable = Ident.
Assignment = "" Literal_List "".
Quality = "" float "".
noparse
visitor notparsed CTVisitor = int int extends UniversalVisitor.
notparsed Main = .
notparsed visitor notparsed PrintVisitor = int boolean extends UniversalVisitor.
notparsed visitor notparsed CopyVisitor = derived Object extends UniversalVisitor.
notparsed visitor notparsed SubgraphVisitor = boolean init {{ true }} extends UniversalVisitor.
notparsed visitor notparsed EqualVisitor = boolean init {{ true }} extends UniversalVisitor.
notparsed visitor notparsed DisplayVisitor = int extends UniversalVisitor.
notparsed visitor notparsed TraceVisitor = int extends UniversalVisitor.
notparsed visitor notparsed UniversalVisitor : .
Player_List = Nonempty_Player_List.
Transaction_List = Nonempty_Transaction_List.
Transaction_EList = [ Nonempty_Transaction_EList].
Derivative_EList = [ Nonempty_Derivative_EList].
ClauseType_List = Nonempty_ClauseType_List.
Clause_List = Nonempty_Clause_List.
Literal_List = Nonempty_Literal_List.
Nonempty_Player_List = Player [ Nonempty_Player_List].
Nonempty_Transaction_List = Transaction [ Nonempty_Transaction_List].
Nonempty_Transaction_EList = Transaction [ Nonempty_Transaction_EList].
Nonempty_Derivative_EList = Derivative [ Nonempty_Derivative_EList].
Nonempty_ClauseType_List = ClauseType [ Nonempty_ClauseType_List].
Nonempty_Clause_List = Clause [ Nonempty_Clause_List].
Nonempty_Literal_List = Literal [ Nonempty_Literal_List].