packages feed

language-webidl 0.1.3.0 → 0.1.3.1

raw patch · 3 files changed

+19/−17 lines, 3 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Language.WebIDL.Parser: data ParserState
+ Language.WebIDL.Parser: pArg :: MyParser (Argument Tag)
+ Language.WebIDL.Parser: pArgumentName :: MyParser ArgumentName
+ Language.WebIDL.Parser: pArgumentNameKeyword :: MyParser ArgumentNameKeyword
+ Language.WebIDL.Parser: pAttribute :: MyParser (Attribute Tag)
+ Language.WebIDL.Parser: pBool :: MyParser Bool
+ Language.WebIDL.Parser: pConst :: MyParser (Const Tag)
+ Language.WebIDL.Parser: pConstType :: MyParser ConstType
+ Language.WebIDL.Parser: pConstValue :: MyParser ConstValue
+ Language.WebIDL.Parser: pDef :: MyParser (Definition Tag)
+ Language.WebIDL.Parser: pDefault :: MyParser (Maybe Default)
+ Language.WebIDL.Parser: pDictionary :: MyParser (Dictionary Tag)
+ Language.WebIDL.Parser: pDictionaryMember :: MyParser (DictionaryMember Tag)
+ Language.WebIDL.Parser: pEnum :: MyParser (Enum Tag)
+ Language.WebIDL.Parser: pEnumValues :: MyParser [EnumValue]
+ Language.WebIDL.Parser: pException :: MyParser (Exception Tag)
+ Language.WebIDL.Parser: pExceptionMember :: MyParser (ExceptionMember Tag)
+ Language.WebIDL.Parser: pExtAttr :: MyParser (ExtendedAttribute Tag)
+ Language.WebIDL.Parser: pExtAttrs :: MyParser [ExtendedAttribute Tag]
+ Language.WebIDL.Parser: pFloatType :: MyParser FloatType
+ Language.WebIDL.Parser: pImplementsStatement :: MyParser (ImplementsStatement Tag)
+ Language.WebIDL.Parser: pInheritance :: MyParser (Maybe Ident)
+ Language.WebIDL.Parser: pIntegerType :: MyParser IntegerType
+ Language.WebIDL.Parser: pInterface :: MyParser (Interface Tag)
+ Language.WebIDL.Parser: pInterfaceMember :: MyParser (InterfaceMember Tag)
+ Language.WebIDL.Parser: pMaybeIdent :: MyParser (Maybe Ident)
+ Language.WebIDL.Parser: pNonAnyType :: MyParser NonAnyType
+ Language.WebIDL.Parser: pNull :: MyParser (Maybe Null)
+ Language.WebIDL.Parser: pOperation :: MyParser (Operation Tag)
+ Language.WebIDL.Parser: pPartial :: MyParser (Partial Tag)
+ Language.WebIDL.Parser: pPrimTy :: MyParser PrimitiveType
+ Language.WebIDL.Parser: pQualifier :: MyParser (Maybe Qualifier)
+ Language.WebIDL.Parser: pReturnType :: MyParser ReturnType
+ Language.WebIDL.Parser: pSingleType :: MyParser SingleType
+ Language.WebIDL.Parser: pSpecial :: MyParser Special
+ Language.WebIDL.Parser: pType :: MyParser Type
+ Language.WebIDL.Parser: pTypeSuffix :: MyParser TypeSuffix
+ Language.WebIDL.Parser: pTypedef :: MyParser (Typedef Tag)
+ Language.WebIDL.Parser: pUnionMemberType :: MyParser UnionMemberType
+ Language.WebIDL.Parser: pUnionType :: MyParser UnionType
+ Language.WebIDL.Parser: pUnsigned :: MyParser (Maybe Unsigned)
+ Language.WebIDL.Parser: tryParse :: MyParser a -> String -> Either ParseError a
+ Language.WebIDL.Parser: type MyParser = CharParser ParserState

Files

language-webidl.cabal view
@@ -1,5 +1,5 @@ name:               language-webidl-version:            0.1.3.0+version:            0.1.3.1 synopsis:           Parser and Pretty Printer for WebIDL description:     It is intended to replace the old package@@ -24,6 +24,7 @@   build-depends:       base >=4.9 && <4.10, parsec, wl-pprint   hs-source-dirs:      src   default-language:    Haskell2010+  ghc-options:         -Wall -fno-warn-missing-signatures -fno-warn-orphans  test-suite language-webidl-test   type:                exitcode-stdio-1.0
src/Language/WebIDL/PPrint.hs view
@@ -129,7 +129,7 @@     pretty Unrestricted = text "unrestricted"  instance Pretty IntegerType where-    pretty (IntegerType mUns width) = prettyMaybe mUns pretty <> pretty width+    pretty (IntegerType mUns width_) = prettyMaybe mUns pretty <> pretty width_  instance Pretty IntegerWidth where     pretty Short = text "short"
src/Language/WebIDL/Parser.hs view
@@ -4,15 +4,18 @@ -}  module Language.WebIDL.Parser (-  Tag(..), parseIDL-) where+  Tag(..), MyParser, ParserState, parseIDL, tryParse, pDef, pExtAttrs, pExtAttr, pPartial, pDictionary,+  pInterface, pException, pInheritance, pEnum, pEnumValues, pTypedef, pImplementsStatement,+  pDictionaryMember, pExceptionMember, pMaybeIdent, pInterfaceMember, pConst, pConstType,+  pAttribute, pOperation, pArg, pArgumentName, pArgumentNameKeyword, pDefault, pQualifier,+  pSpecial, pReturnType, pConstValue, pBool, pNull, pPrimTy, pIntegerType, pUnsigned, pFloatType,+  pType, pSingleType, pNonAnyType, pTypeSuffix, pUnionType, pUnionMemberType ) where  import Language.WebIDL.AST import Prelude hiding (Enum) import Text.ParserCombinators.Parsec import Text.Parsec.Language (emptyDef) import Text.Parsec (modifyState, SourcePos, getPosition, getState, putState, sourceLine)-import Control.Monad (void) import qualified Text.Parsec.Token as Tok  data ParserState = ParserState {@@ -38,12 +41,12 @@  type MyParser = CharParser ParserState -testParse :: MyParser a -> String -> Either ParseError a-testParse p = runParser p initState "webidl"+tryParse :: MyParser a -> String -> Either ParseError a+tryParse p = runParser p initState "webidl"  -- | parse IDL source parseIDL :: String -> Either ParseError [Definition Tag]-parseIDL = testParse (pSpaces *> many1 (pDef <* pSpaces))+parseIDL = tryParse (pSpaces *> many1 (pDef <* pSpaces))  pDef :: MyParser (Definition Tag) pDef = try (DefInterface <$> pInterface)@@ -97,12 +100,12 @@ pTypedef :: MyParser (Typedef Tag) pTypedef = do   tag <- getTag-  string "typedef"+  _ <- string "typedef"   pSpaces   ty <- try pType   pSpaces   ident <- pIdent-  semi+  _ <- semi   return (Typedef tag ty ident)  pImplementsStatement :: MyParser (ImplementsStatement Tag)@@ -224,12 +227,13 @@  pIntegerType :: MyParser IntegerType pIntegerType = IntegerType <$> pUnsigned <* pSpaces <*> pIntegerWidth+  where+    pIntegerWidth = string "short" *> return Short+                 <|> Long . length <$> many1 (try (string "long" <* pSpaces))  pUnsigned :: MyParser (Maybe Unsigned) pUnsigned = optionMaybe (string "unsigned" *> return Unsigned) -pIntegerWidth = string "short" *> return Short-             <|> Long . length <$> many1 (try (string "long" <* pSpaces))  pFloatType :: MyParser FloatType pFloatType =  try (TyFloat <$> pModifier Unrestricted "unrestricted" <* spaces <* string "float")@@ -271,9 +275,6 @@ brackets   = Tok.brackets lexer braces     = Tok.braces lexer angles     = Tok.angles lexer-reserved   = Tok.reserved lexer-reservedOp = Tok.reservedOp lexer-whiteSpace = Tok.whiteSpace lexer pIdent     = Ident <$> Tok.identifier lexer pInt       = Tok.integer lexer pFloat     = Tok.float lexer@@ -287,12 +288,12 @@ pComment = try pLineComment <|> pBlockComment  pLineComment = do-  string "//"+  _ <- string "//"   comment <- manyTill anyChar (try newline)   modifyState (\ps -> ParserState { _comments = _comments ps ++ [comment]})  pBlockComment = do-  string "/*"+  _ <- string "/*"   comment <- manyTill anyChar (try (string "*/"))   modifyState (\ps -> ParserState { _comments = _comments ps ++ lines comment})