packages feed

cimple 0.0.30 → 0.0.31

raw patch · 3 files changed

+14/−13 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Language.Cimple.TranslationUnit: type TranslationUnit text = (FilePath, [Node (Lexeme text)])

Files

cimple.cabal view
@@ -1,5 +1,5 @@ name:          cimple-version:       0.0.30+version:       0.0.31 synopsis:      Simple C-like programming language homepage:      https://toktok.github.io/ license:       GPL-3@@ -31,6 +31,7 @@     Language.Cimple.Pretty     Language.Cimple.Program     Language.Cimple.TraverseAst+    Language.Cimple.TranslationUnit    other-modules:     Language.Cimple.Annot@@ -49,7 +50,6 @@     Language.Cimple.PrettyCommon     Language.Cimple.SemCheck.Includes     Language.Cimple.Tokens-    Language.Cimple.TranslationUnit     Language.Cimple.TreeParser    build-depends:
src/Language/Cimple/Parser.y view
@@ -692,18 +692,12 @@ QualType(leafType) :	bitwise ID_STD_TYPE					{ Fix (TyBitwise (Fix (TyStd $2))) } |	force QualType(leafType)				{ Fix (TyForce $2) }-|	leafType ConstQual					{                              ($2      $1)    }-|	leafType ConstQual '*'					{                (tyPointer ($2      $1))   }-|	leafType ConstQual '*' QualList				{                $4 (tyPointer ($2      $1))   }-|	leafType ConstQual '*' QualMaybe '*' QualMaybe		{ $6 (tyPointer ($4 (tyPointer ($2      $1)))) }-|	const leafType						{                              (tyConst $2)    }-|	const leafType '*' QualMaybe				{                $4 (tyPointer (tyConst $2))   }-|	const leafType '*' QualMaybe '*' QualMaybe		{ $6 (tyPointer ($4 (tyPointer (tyConst $2)))) }+|	PtrType(leafType)					{ $1 } -ConstQual :: { NonTerm -> NonTerm }-ConstQual-:								{ id }-|	const							{ tyConst }+PtrType(leafType)+:	leafType QualMaybe					{ $2 $1 }+|	const leafType QualMaybe				{ $3 (tyConst $2) }+|	PtrType(leafType) '*' QualMaybe				{ $3 (tyPointer $1) }  QualList :: { NonTerm -> NonTerm } QualList
test/Language/Cimple/ParserSpec.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE LambdaCase        #-} {-# LANGUAGE OverloadedStrings #-} module Language.Cimple.ParserSpec where @@ -139,6 +140,12 @@         it "should parse a comment" $ do             let ast = parseText "/* hello */"             ast `shouldSatisfy` isRight1++        it "should parse postfix nullability on a pointer" $ do+            let ast = parseText "void foo(int _Nonnull *p);"+            case ast of+                Right [Fix (FunctionDecl _ (Fix (FunctionPrototype _ _ [Fix (VarDecl (Fix (TyPointer (Fix (TyNonnull (Fix (TyStd _)))))) (L _ _ "p") [])])))] -> return ()+                _ -> expectationFailure $ "Unexpected AST: " ++ show ast          it "supports single declarators" $ do             let ast = parseText "int main() { int a; }"