language-c 0.4.6 → 0.4.7
raw patch · 2 files changed
+11/−4 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Language.C.Analysis.DefTable: instance Typeable1 DeclarationStatus
- Language.C.Syntax.AST: instance Typeable1 CArraySize
- Language.C.Syntax.AST: instance Typeable1 CAssemblyOperand
- Language.C.Syntax.AST: instance Typeable1 CAssemblyStatement
- Language.C.Syntax.AST: instance Typeable1 CAttribute
- Language.C.Syntax.AST: instance Typeable1 CBuiltinThing
- Language.C.Syntax.AST: instance Typeable1 CCompoundBlockItem
- Language.C.Syntax.AST: instance Typeable1 CConstant
- Language.C.Syntax.AST: instance Typeable1 CDeclaration
- Language.C.Syntax.AST: instance Typeable1 CDeclarationSpecifier
- Language.C.Syntax.AST: instance Typeable1 CDeclarator
- Language.C.Syntax.AST: instance Typeable1 CDerivedDeclarator
- Language.C.Syntax.AST: instance Typeable1 CEnumeration
- Language.C.Syntax.AST: instance Typeable1 CExpression
- Language.C.Syntax.AST: instance Typeable1 CExternalDeclaration
- Language.C.Syntax.AST: instance Typeable1 CFunctionDef
- Language.C.Syntax.AST: instance Typeable1 CInitializer
- Language.C.Syntax.AST: instance Typeable1 CPartDesignator
- Language.C.Syntax.AST: instance Typeable1 CStatement
- Language.C.Syntax.AST: instance Typeable1 CStorageSpecifier
- Language.C.Syntax.AST: instance Typeable1 CStringLiteral
- Language.C.Syntax.AST: instance Typeable1 CStructureUnion
- Language.C.Syntax.AST: instance Typeable1 CTranslationUnit
- Language.C.Syntax.AST: instance Typeable1 CTypeQualifier
- Language.C.Syntax.AST: instance Typeable1 CTypeSpecifier
- Language.C.Syntax.Constants: instance Typeable1 Flags
+ Language.C.Analysis.DefTable: instance Typeable DeclarationStatus
+ Language.C.Syntax.AST: instance Typeable CArraySize
+ Language.C.Syntax.AST: instance Typeable CAssemblyOperand
+ Language.C.Syntax.AST: instance Typeable CAssemblyStatement
+ Language.C.Syntax.AST: instance Typeable CAttribute
+ Language.C.Syntax.AST: instance Typeable CBuiltinThing
+ Language.C.Syntax.AST: instance Typeable CCompoundBlockItem
+ Language.C.Syntax.AST: instance Typeable CConstant
+ Language.C.Syntax.AST: instance Typeable CDeclaration
+ Language.C.Syntax.AST: instance Typeable CDeclarationSpecifier
+ Language.C.Syntax.AST: instance Typeable CDeclarator
+ Language.C.Syntax.AST: instance Typeable CDerivedDeclarator
+ Language.C.Syntax.AST: instance Typeable CEnumeration
+ Language.C.Syntax.AST: instance Typeable CExpression
+ Language.C.Syntax.AST: instance Typeable CExternalDeclaration
+ Language.C.Syntax.AST: instance Typeable CFunctionDef
+ Language.C.Syntax.AST: instance Typeable CInitializer
+ Language.C.Syntax.AST: instance Typeable CPartDesignator
+ Language.C.Syntax.AST: instance Typeable CStatement
+ Language.C.Syntax.AST: instance Typeable CStorageSpecifier
+ Language.C.Syntax.AST: instance Typeable CStringLiteral
+ Language.C.Syntax.AST: instance Typeable CStructureUnion
+ Language.C.Syntax.AST: instance Typeable CTranslationUnit
+ Language.C.Syntax.AST: instance Typeable CTypeQualifier
+ Language.C.Syntax.AST: instance Typeable CTypeSpecifier
+ Language.C.Syntax.Constants: instance Typeable Flags
Files
- language-c.cabal +1/−1
- src/Language/C/Parser/Parser.y +10/−3
language-c.cabal view
@@ -1,5 +1,5 @@ Name: language-c-Version: 0.4.6+Version: 0.4.7 Cabal-Version: >= 1.6 Build-Type: Simple License: BSD3
src/Language/C/Parser/Parser.y view
@@ -1176,8 +1176,10 @@ enumerator :: { (Ident, Maybe CExpr) } enumerator- : identifier { ($1, Nothing) }- | identifier '=' constant_expression { ($1, Just $3) }+ : identifier { ($1, Nothing) }+ | identifier attr { ($1, Nothing) }+ | identifier attr '=' constant_expression { ($1, Just $4) }+ | identifier '=' constant_expression { ($1, Just $3) } -- parse C type qualifier (C99 6.7.3)@@ -2053,11 +2055,16 @@ | ident '(' attribute_params ')' {% withNodeInfo $1 $ Just . CAttr $1 (reverse $3) } | ident '(' ')' {% withNodeInfo $1 $ Just . CAttr $1 [] } +-- OS X 10.9 (Mavericks) makes use of more liberal attribute syntax+-- that includes assignment-like expressions referencing version+-- numbers.+ attribute_params :: { Reversed [CExpr] } attribute_params : constant_expression { singleton $1 }+ | unary_expression assignment_operator unary_expression { Reversed [] } | attribute_params ',' constant_expression { $1 `snoc` $3 }-+ | attribute_params ',' unary_expression assignment_operator unary_expression { $1 } {