packages feed

language-c99-simple 0.2.1 → 0.2.2

raw patch · 4 files changed

+27/−17 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Language.C99.Simple.AST: SizeOf :: Expr -> Expr
+ Language.C99.Simple.AST: SizeOfType :: TypeName -> Expr
- Language.C99.Simple.Translate: arrowexpr :: Expr -> [Char] -> PostfixExpr
+ Language.C99.Simple.Translate: arrowexpr :: Expr -> String -> PostfixExpr
- Language.C99.Simple.Translate: dotexpr :: Expr -> [Char] -> PostfixExpr
+ Language.C99.Simple.Translate: dotexpr :: Expr -> String -> PostfixExpr

Files

ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for language-c99-simple +## 0.2.2 -- 2022-08-28++* Added support for `sizeof` (#12).++ ## 0.2.1 -- 2022-08-15  * Bump version number for release (#10).
language-c99-simple.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                language-c99-simple-version:             0.2.1+version:             0.2.2 synopsis:            C-like AST to simplify writing C99 programs. description:   This package is a wrapper on top of 'language-c99'. It provides a simpler
src/Language/C99/Simple/AST.hs view
@@ -124,6 +124,9 @@            | AssignOp AssignOp Expr Expr +          | SizeOf     Expr+          | SizeOfType TypeName+ data UnaryOp = Inc              | Dec              | Ref
src/Language/C99/Simple/Translate.hs view
@@ -201,22 +201,24 @@  transexpr :: Expr -> C.Expr transexpr e = case e of-  Ident     i         -> wrap $ C.PrimIdent $ ident i-  LitBool   b         -> wrap $ litbool   b-  LitInt    i         -> wrap $ litint    i-  LitFloat  f         -> wrap $ litfloat  f-  LitDouble d         -> wrap $ litdouble d-  LitString s         -> wrap $ litstring s-  Index     arr idx   -> wrap $ indexexpr arr idx-  Funcall   fun args  -> wrap $ funcall   fun args-  Dot       e   field -> wrap $ dotexpr   e field-  Arrow     e   field -> wrap $ arrowexpr e field-  InitVal   ty  init  -> wrap $ initexpr  ty init-  UnaryOp   op e      -> wrap $ unaryop op e-  Cast      ty e      -> wrap $ castexpr ty e-  BinaryOp  op e1 e2  -> binaryop op e1 e2-  AssignOp  op e1 e2  -> wrap $ assignop op e1 e2-  Cond      c e1 e2   -> wrap $ condexpr c e1 e2+  Ident      i         -> wrap $ C.PrimIdent $ ident i+  LitBool    b         -> wrap $ litbool   b+  LitInt     i         -> wrap $ litint    i+  LitFloat   f         -> wrap $ litfloat  f+  LitDouble  d         -> wrap $ litdouble d+  LitString  s         -> wrap $ litstring s+  Index      arr idx   -> wrap $ indexexpr arr idx+  Funcall    fun args  -> wrap $ funcall   fun args+  Dot        e   field -> wrap $ dotexpr   e field+  Arrow      e   field -> wrap $ arrowexpr e field+  InitVal    ty  init  -> wrap $ initexpr  ty init+  UnaryOp    op e      -> wrap $ unaryop op e+  Cast       ty e      -> wrap $ castexpr ty e+  BinaryOp   op e1 e2  -> binaryop op e1 e2+  AssignOp   op e1 e2  -> wrap $ assignop op e1 e2+  Cond       c e1 e2   -> wrap $ condexpr c e1 e2+  SizeOf     e         -> wrap $ C.UnarySizeExpr (wrap $ transexpr e)+  SizeOfType ty        -> wrap $ C.UnarySizeType (transtypename ty)   unaryop :: UnaryOp -> Expr -> C.UnaryExpr