// Rule States for the project import edu.neu.ccs.demeter.dj.* ; import java.util.*; RuleStates = List(RuleState) EOF. RuleState : UnaryS | BinaryS. UnaryS = FailState. BinaryS= AExp "||" FExp. AExp : ASimple | ACompound. ASimple : AssignmentName | OptDecisionLiteral | EmptyAssignment. ACompound = "(" Concat List(AExp) ")". Concat = ".". FExp : FSimple | FCompound. FSimple : FormulaName | Constraint. FCompound = "(" And List(FExp) ")". And = "&". Constraint = "#R" RelationName "(" [PositionLiteral] ")". PositionLiteral = Position Literal. EmptyAssignment = "{}". FailState = "FailState". OptDecisionLiteral = Literal [Star]. Star = "*". Literal = "#L" Kind Variable. Kind : Neg | Pos . Neg = "!". Pos = . List(S) ~ {S}. // Terminal Buffer Rule FormulaName = "#F" Ident. AssignmentName = "#A" Ident. Position = int. Variable = Ident. RelationName = Ident. Main = .