-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple C0 Parser -- -- The package contains a parser for C0-language that is introduced in -- the basic programming course "Algorithmisches Denken und imperative -- Programmierung" (WS 2011/12 and later) at the University of Bonn. The -- program contained in the package will take a C source code file and -- test the content if it is conform to the C0-language specifications. -- The answer is simply yes or no. @package c0check @version 0.0 module Language.C0.Types.C0Types newtype Program P :: Block -> Program data Block B :: VariableDeclaration -> StatementSequence -> Block newtype VariableDeclaration V :: [Ident] -> VariableDeclaration newtype StatementSequence S :: [Statement] -> StatementSequence data Statement SS :: Ident -> Statement SP :: Ident -> Statement SA :: Assignment -> Statement SI :: IfStatement -> Statement SW :: WhileStatement -> Statement SSS :: StatementSequence -> Statement data Assignment A :: Ident -> SimpleExpression -> Assignment data IfStatement I :: BoolExpression -> Statement -> (Maybe Statement) -> IfStatement data WhileStatement W :: BoolExpression -> Statement -> WhileStatement data BoolExpression Bool :: SimpleExpression -> Relation -> SimpleExpression -> BoolExpression data Relation EQ :: Relation NE :: Relation LT :: Relation GT :: Relation LE :: Relation GE :: Relation data SimpleExpression Simple :: (Maybe Sign) -> Term -> [(OpAddSub, Term)] -> SimpleExpression data OpAddSub Add :: OpAddSub Sub :: OpAddSub data OpMulDivMod Mul :: OpMulDivMod Div :: OpMulDivMod Mod :: OpMulDivMod data Sign Plus :: Sign Minus :: Sign data Term T :: Factor -> [(OpMulDivMod, Factor)] -> Term data Factor FI :: Ident -> Factor FN :: Number -> Factor FS :: SimpleExpression -> Factor type Ident = String type Number = Int instance Eq Relation instance Show Relation instance Eq OpAddSub instance Show OpAddSub instance Eq OpMulDivMod instance Show OpMulDivMod instance Eq Sign instance Show Sign instance Eq VariableDeclaration instance Show VariableDeclaration instance Eq Factor instance Show Factor instance Eq SimpleExpression instance Show SimpleExpression instance Eq Term instance Show Term instance Eq BoolExpression instance Show BoolExpression instance Eq Assignment instance Show Assignment instance Eq Statement instance Show Statement instance Eq WhileStatement instance Show WhileStatement instance Eq IfStatement instance Show IfStatement instance Eq StatementSequence instance Show StatementSequence instance Eq Block instance Show Block instance Eq Program instance Show Program module Language.C0.Parser.C0Parser trace :: t -> t1 -> t1 yesNo :: String -> Bool pYesNo :: ParsecT [Char] [Ident] Identity Bool wsOrCmts :: CharParser [String] () parseProg :: String -> (Either ParseError Program) pProgram :: CharParser [Ident] Program pBlock :: CharParser [String] Block pVariableDeclaration :: CharParser [String] VariableDeclaration pIdent :: CharParser [String] String checkIdent :: String -> CharParser [String] () pStatementSequence :: CharParser [String] StatementSequence pStatement :: CharParser [String] Statement pScanf :: CharParser [String] Statement pPrintf :: CharParser [String] Statement pAssignment :: CharParser [String] Statement pIfStatement :: CharParser [String] Statement pWhileStatement :: CharParser [String] Statement pBoolExpression :: CharParser [String] BoolExpression pRelation :: CharParser [String] Relation pSimpleExpression :: CharParser [String] SimpleExpression pPlus :: CharParser [String] (Maybe Sign) pMinus :: CharParser [String] (Maybe Sign) pTerm :: CharParser [String] Term pMoreTerms :: CharParser [String] [(OpAddSub, Term)] pOpAddSub :: CharParser [String] OpAddSub pFactor :: CharParser [String] Factor pMoreFactors :: CharParser [String] [(OpMulDivMod, Factor)] pOpMulDivMod :: CharParser [String] OpMulDivMod pNumber :: CharParser [String] Int