packages feed

c0parser 0.1.0.1 → 0.2

raw patch · 3 files changed

+8/−15 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Language.C0.Parser.C0Parser: pMinus :: CharParser [String] (Maybe Sign)
- Language.C0.Parser.C0Parser: pPlus :: CharParser [String] (Maybe Sign)
- Language.C0.Types.C0Types: Minus :: Sign
- Language.C0.Types.C0Types: Plus :: Sign
- Language.C0.Types.C0Types: data Sign
- Language.C0.Types.C0Types: instance Eq Sign
- Language.C0.Types.C0Types: instance Show Sign
+ Language.C0.Parser.C0Parser: pYesNo :: ParsecT [Char] [Ident] Identity Bool
+ Language.C0.Parser.C0Parser: trace :: t -> t1 -> t1
- Language.C0.Types.C0Types: Simple :: (Maybe Sign) -> Term -> [(OpAddSub, Term)] -> SimpleExpression
+ Language.C0.Types.C0Types: Simple :: Term -> [(OpAddSub, Term)] -> SimpleExpression

Files

c0parser.cabal view
@@ -1,8 +1,8 @@ Name:                c0parser-Version:             0.1.0.1+Version:             0.2 Synopsis:            Simple C0 Parser Description:         The package contains a parser for C0 programs.-	             The C0-language is introduced in the basic programming course \"Algorithmisches Denken und imperative Programmierung\" (WS 2011/12 and later) at the University of Bonn.+	             The C0-language is introduced in the basic programming course \"Algorithmisches Denken und imperative Programmierung\" (WS 2012/13 and later) at the University of Bonn. License:             GPL Author:              Daniel Seidel Maintainer:          ds@iai.uni-bonn.de
src/Language/C0/Parser/C0Parser.hs view
@@ -17,7 +17,7 @@            , "default",  "do",     "double",   "else",   "enum",     "extern"            , "float",    "for",    "goto",     "if",     "int",      "long"            , "register", "return", "short",    "signed", "sizeof",   "static"-           , "struct",   "switch", "typdef",   "union",  "unsigned", "void"+           , "struct",   "switch", "typedef",  "union",  "unsigned", "void"            , "volatile", "while"]  yesNo :: String -> Bool@@ -238,21 +238,14 @@ pSimpleExpression :: CharParser [String] SimpleExpression pSimpleExpression = (do   wsOrCmts-  mSign <-  trace "Entered simple expression ... \n" (pPlus <|> pMinus <|> return Nothing)   (State s _ u) <- getParserState-  term <- trace ("DEBUG: try to read term at parser state:\n" ++ s ++ "\nwith user state: " ++ show u ++ " and sign = " ++ show mSign ++ "\n") pTerm+  term <- trace ("DEBUG: try to read term at parser state:\n" ++ s ++ "\nwith user state: " ++ show u ++ "\n") pTerm   terms <- trace "DEBUG: try to read more terms\n" pMoreTerms-  return $ Simple mSign term terms) <|> +  return $ Simple term terms) <|>    (do     (State s _ u) <- getParserState     trace ("DEBUG: Simple Expression failed at ParserState:\n" ++ show s ++ "\n") fail "failed")   -pPlus :: CharParser [String] (Maybe Sign)-pPlus = wsOrCmts >> char '+' >> return (Just Plus)--pMinus :: CharParser [String] (Maybe Sign)-pMinus = wsOrCmts >> char '-' >> return (Just Minus)- pTerm :: CharParser [String] Term pTerm = (do   trace "entered pTerm\n" (return ())@@ -260,7 +253,8 @@   fac <- trace ("DEBUG: try to read factor at ParserState:\n" ++ s ++ "\n") pFactor   facs <- trace ("DEBUG: try to read more factors ...") pMoreFactors   trace ("read Term " ++ show (T fac facs) ++ "\n") return ()-  (return $ T fac facs)) <|> trace "DEBUG: pTerm failed" (return (T (FI "x") []))+  (return $ T fac facs))+         <|> trace "DEBUG: pTerm failed" fail "failed"  pMoreTerms :: CharParser [String] [(OpAddSub, Term)] pMoreTerms = many $ try (pOpAddSub >>= (\op->pTerm >>= (\t -> return (op,t))))
src/Language/C0/Types/C0Types.hs view
@@ -16,10 +16,9 @@ data    WhileStatement = W BoolExpression Statement deriving (Eq, Show) data    BoolExpression = Bool SimpleExpression Relation SimpleExpression deriving (Eq, Show) data    Relation = EQ | NE | LT | GT | LE | GE deriving (Eq, Show)-data    SimpleExpression = Simple (Maybe Sign) Term [(OpAddSub, Term)] deriving (Eq, Show)+data    SimpleExpression = Simple Term [(OpAddSub, Term)] deriving (Eq, Show) data    OpAddSub = Add | Sub deriving (Eq, Show) data    OpMulDivMod = Mul | Div | Mod deriving (Eq, Show)-data    Sign    = Plus | Minus deriving (Eq, Show) data    Term    = T Factor [(OpMulDivMod, Factor)] deriving (Eq, Show) data    Factor  = FI Ident                  | FN Number