language-ecmascript 0.19 → 0.19.0.1
raw patch · 3 files changed
+22/−18 lines, 3 filesdep ~Diffdep ~basedep ~testing-featnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: Diff, base, testing-feat
API changes (from Hackage documentation)
- Language.ECMAScript3.Analysis.Environment: EnvTree :: (Map String SourcePos) -> [EnvTree] -> EnvTree
+ Language.ECMAScript3.Analysis.Environment: EnvTree :: Map String SourcePos -> [EnvTree] -> EnvTree
- Language.ECMAScript3.Syntax: AssignExpr :: a -> AssignOp -> (LValue a) -> (Expression a) -> Expression a
+ Language.ECMAScript3.Syntax: AssignExpr :: a -> AssignOp -> LValue a -> Expression a -> Expression a
- Language.ECMAScript3.Syntax: BracketRef :: a -> (Expression a) -> (Expression a) -> Expression a
+ Language.ECMAScript3.Syntax: BracketRef :: a -> Expression a -> Expression a -> Expression a
- Language.ECMAScript3.Syntax: BreakStmt :: a -> (Maybe (Id a)) -> Statement a
+ Language.ECMAScript3.Syntax: BreakStmt :: a -> Maybe (Id a) -> Statement a
- Language.ECMAScript3.Syntax: CallExpr :: a -> (Expression a) -> [Expression a] -> Expression a
+ Language.ECMAScript3.Syntax: CallExpr :: a -> Expression a -> [Expression a] -> Expression a
- Language.ECMAScript3.Syntax: CaseClause :: a -> (Expression a) -> [Statement a] -> CaseClause a
+ Language.ECMAScript3.Syntax: CaseClause :: a -> Expression a -> [Statement a] -> CaseClause a
- Language.ECMAScript3.Syntax: CatchClause :: a -> (Id a) -> (Statement a) -> CatchClause a
+ Language.ECMAScript3.Syntax: CatchClause :: a -> Id a -> Statement a -> CatchClause a
- Language.ECMAScript3.Syntax: CondExpr :: a -> (Expression a) -> (Expression a) -> (Expression a) -> Expression a
+ Language.ECMAScript3.Syntax: CondExpr :: a -> Expression a -> Expression a -> Expression a -> Expression a
- Language.ECMAScript3.Syntax: ContinueStmt :: a -> (Maybe (Id a)) -> Statement a
+ Language.ECMAScript3.Syntax: ContinueStmt :: a -> Maybe (Id a) -> Statement a
- Language.ECMAScript3.Syntax: DoWhileStmt :: a -> (Statement a) -> (Expression a) -> Statement a
+ Language.ECMAScript3.Syntax: DoWhileStmt :: a -> Statement a -> Expression a -> Statement a
- Language.ECMAScript3.Syntax: DotRef :: a -> (Expression a) -> (Id a) -> Expression a
+ Language.ECMAScript3.Syntax: DotRef :: a -> Expression a -> Id a -> Expression a
- Language.ECMAScript3.Syntax: ExprInit :: (Expression a) -> ForInit a
+ Language.ECMAScript3.Syntax: ExprInit :: Expression a -> ForInit a
- Language.ECMAScript3.Syntax: ExprStmt :: a -> (Expression a) -> Statement a
+ Language.ECMAScript3.Syntax: ExprStmt :: a -> Expression a -> Statement a
- Language.ECMAScript3.Syntax: ForInLVal :: (LValue a) -> ForInInit a
+ Language.ECMAScript3.Syntax: ForInLVal :: LValue a -> ForInInit a
- Language.ECMAScript3.Syntax: ForInStmt :: a -> (ForInInit a) -> (Expression a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: ForInStmt :: a -> ForInInit a -> Expression a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: ForInVar :: (Id a) -> ForInInit a
+ Language.ECMAScript3.Syntax: ForInVar :: Id a -> ForInInit a
- Language.ECMAScript3.Syntax: ForStmt :: a -> (ForInit a) -> (Maybe (Expression a)) -> (Maybe (Expression a)) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: ForStmt :: a -> ForInit a -> Maybe (Expression a) -> Maybe (Expression a) -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: FuncExpr :: a -> (Maybe (Id a)) -> [Id a] -> [Statement a] -> Expression a
+ Language.ECMAScript3.Syntax: FuncExpr :: a -> Maybe (Id a) -> [Id a] -> [Statement a] -> Expression a
- Language.ECMAScript3.Syntax: FunctionStmt :: a -> (Id a) -> [Id a] -> [Statement a] -> Statement a
+ Language.ECMAScript3.Syntax: FunctionStmt :: a -> Id a -> [Id a] -> [Statement a] -> Statement a
- Language.ECMAScript3.Syntax: IfSingleStmt :: a -> (Expression a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: IfSingleStmt :: a -> Expression a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: IfStmt :: a -> (Expression a) -> (Statement a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: IfStmt :: a -> Expression a -> Statement a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: InfixExpr :: a -> InfixOp -> (Expression a) -> (Expression a) -> Expression a
+ Language.ECMAScript3.Syntax: InfixExpr :: a -> InfixOp -> Expression a -> Expression a -> Expression a
- Language.ECMAScript3.Syntax: LBracket :: a -> (Expression a) -> (Expression a) -> LValue a
+ Language.ECMAScript3.Syntax: LBracket :: a -> Expression a -> Expression a -> LValue a
- Language.ECMAScript3.Syntax: LDot :: a -> (Expression a) -> String -> LValue a
+ Language.ECMAScript3.Syntax: LDot :: a -> Expression a -> String -> LValue a
- Language.ECMAScript3.Syntax: LabelledStmt :: a -> (Id a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: LabelledStmt :: a -> Id a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: NewExpr :: a -> (Expression a) -> [Expression a] -> Expression a
+ Language.ECMAScript3.Syntax: NewExpr :: a -> Expression a -> [Expression a] -> Expression a
- Language.ECMAScript3.Syntax: PrefixExpr :: a -> PrefixOp -> (Expression a) -> Expression a
+ Language.ECMAScript3.Syntax: PrefixExpr :: a -> PrefixOp -> Expression a -> Expression a
- Language.ECMAScript3.Syntax: PropId :: a -> (Id a) -> Prop a
+ Language.ECMAScript3.Syntax: PropId :: a -> Id a -> Prop a
- Language.ECMAScript3.Syntax: ReturnStmt :: a -> (Maybe (Expression a)) -> Statement a
+ Language.ECMAScript3.Syntax: ReturnStmt :: a -> Maybe (Expression a) -> Statement a
- Language.ECMAScript3.Syntax: SwitchStmt :: a -> (Expression a) -> [CaseClause a] -> Statement a
+ Language.ECMAScript3.Syntax: SwitchStmt :: a -> Expression a -> [CaseClause a] -> Statement a
- Language.ECMAScript3.Syntax: ThrowStmt :: a -> (Expression a) -> Statement a
+ Language.ECMAScript3.Syntax: ThrowStmt :: a -> Expression a -> Statement a
- Language.ECMAScript3.Syntax: TryStmt :: a -> (Statement a) -> (Maybe (CatchClause a)) -> (Maybe (Statement a)) -> Statement a
+ Language.ECMAScript3.Syntax: TryStmt :: a -> Statement a -> Maybe (CatchClause a) -> Maybe (Statement a) -> Statement a
- Language.ECMAScript3.Syntax: UnaryAssignExpr :: a -> UnaryAssignOp -> (LValue a) -> Expression a
+ Language.ECMAScript3.Syntax: UnaryAssignExpr :: a -> UnaryAssignOp -> LValue a -> Expression a
- Language.ECMAScript3.Syntax: VarDecl :: a -> (Id a) -> (Maybe (Expression a)) -> VarDecl a
+ Language.ECMAScript3.Syntax: VarDecl :: a -> Id a -> Maybe (Expression a) -> VarDecl a
- Language.ECMAScript3.Syntax: VarRef :: a -> (Id a) -> Expression a
+ Language.ECMAScript3.Syntax: VarRef :: a -> Id a -> Expression a
- Language.ECMAScript3.Syntax: WhileStmt :: a -> (Expression a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: WhileStmt :: a -> Expression a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: WithStmt :: a -> (Expression a) -> (Statement a) -> Statement a
+ Language.ECMAScript3.Syntax: WithStmt :: a -> Expression a -> Statement a -> Statement a
- Language.ECMAScript3.Syntax: data SourcePos :: *
+ Language.ECMAScript3.Syntax: data SourcePos
- Language.ECMAScript3.Syntax.Annotations: withAnnotation :: (HasAnnotation a) => (b -> b) -> a b -> a b
+ Language.ECMAScript3.Syntax.Annotations: withAnnotation :: HasAnnotation a => (b -> b) -> a b -> a b
Files
- CHANGELOG +3/−0
- language-ecmascript.cabal +17/−17
- src/Language/ECMAScript3/Parser.hs +2/−1
CHANGELOG view
@@ -1,5 +1,8 @@ Version change log. +=0.19.0.1=+Version bumps and a build fix for GHC 8.8 (GitHub issue #85).+ =0.19= Pull request #84: Moved the Arbitrary instance and the testing-feat dependency to the test-suite. Removed tabs from the lexer.
language-ecmascript.cabal view
@@ -1,8 +1,8 @@ Name: language-ecmascript-Version: 0.19+Version: 0.19.0.1 Cabal-Version: >= 1.12 Copyright: (c) 2007-2012 Brown University, (c) 2008-2010 Claudiu Saftoiu,- (c) 2012-2015 Stevens Institute of Technology, (c) 2016 Eyal Lotem, (c) 2016-2018 Andrey Chudnov+ (c) 2012-2015 Stevens Institute of Technology, (c) 2016 Eyal Lotem, (c) 2016-2020 Andrey Chudnov License: BSD3 License-file: LICENSE Author: Andrey Chudnov, Arjun Guha, Spiridon Aristides Eliopoulos,@@ -11,7 +11,7 @@ Homepage: http://github.com/jswebtools/language-ecmascript Bug-reports: http://github.com/jswebtools/language-ecmascript/issues Stability: experimental-Tested-with: GHC==8.2.2+Tested-with: GHC==8.8.1 Extra-Source-Files: test/parse-pretty/*.js, test/diff/left/*.js, test/diff/right/*.js, test/diff/expects/*.diff, CHANGELOG Category: Language Build-Type: Simple@@ -29,13 +29,13 @@ Source-repository this type: git location: git://github.com/jswebtools/language-ecmascript.git- tag: 0.19+ tag: 0.19.0.1 Library Hs-Source-Dirs: src Build-Depends:- base >= 4 && < 5,+ base >= 4 && < 4.14, mtl >= 1 && < 3, parsec > 3 && < 3.2.0, ansi-wl-pprint >= 0.6 && < 1,@@ -44,7 +44,7 @@ data-default-class >= 0.0.1 && < 0.2, QuickCheck >= 2.5 && < 3, template-haskell >= 2.7 && < 3,- Diff == 0.3.*,+ Diff == 0.4.*, charset >= 0.3 ghc-options: -fwarn-incomplete-patterns@@ -72,21 +72,21 @@ Type: exitcode-stdio-1.0 Main-Is: TestMain.hs Other-Modules:- Language.ECMAScript3.Lexer - Language.ECMAScript3.Parser - Language.ECMAScript3.Parser.State - Language.ECMAScript3.Parser.Type - Language.ECMAScript3.PrettyPrint - Language.ECMAScript3.SourceDiff - Language.ECMAScript3.Syntax - Language.ECMAScript3.Syntax.Annotations + Language.ECMAScript3.Lexer+ Language.ECMAScript3.Parser+ Language.ECMAScript3.Parser.State+ Language.ECMAScript3.Parser.Type+ Language.ECMAScript3.PrettyPrint+ Language.ECMAScript3.SourceDiff+ Language.ECMAScript3.Syntax+ Language.ECMAScript3.Syntax.Annotations Language.ECMAScript3.Syntax.Arbitrary Test.Diff Test.Unit Test.Pretty Test.Arbitrary Build-Depends:- base >= 4 && < 5,+ base >= 4 && < 4.14, mtl >= 1 && < 3, parsec >= 3 && < 3.2.0, ansi-wl-pprint >= 0.6 && < 1,@@ -97,12 +97,12 @@ HUnit >= 1.2 && < 1.7, QuickCheck >= 2.5 && < 3, data-default-class >= 0.0.1 && < 0.2,- testing-feat >= 0.4.0.2 && < 1.1,+ testing-feat >= 0.4.0.2 && < 1.2, test-framework >= 0.8 && < 0.9, test-framework-hunit >= 0.3.0 && < 0.4, test-framework-quickcheck2 >= 0.3.0.1 && < 0.4, uniplate >= 1.6 && <1.7,- Diff == 0.3.*,+ Diff == 0.4.*, language-ecmascript Default-Extensions: DeriveDataTypeable, ScopedTypeVariables, DeriveFunctor, DeriveFoldable, DeriveTraversable, FlexibleContexts Default-Language: Haskell2010
src/Language/ECMAScript3/Parser.hs view
@@ -42,6 +42,7 @@ import Data.Maybe (isJust, isNothing, fromMaybe) import Control.Monad.Error.Class import Control.Applicative ((<$>), (<*>))+import Control.Exception (throwIO) {-# DEPRECATED ParsedStatement, ParsedExpression, StatementParser, ExpressionParser@@ -794,7 +795,7 @@ parseJavaScriptFromFile filename = do chars <- liftIO $ readFile filename case parse parseScript filename chars of- Left err -> fail (show err)+ Left err -> liftIO $ throwIO $ userError $ show err Right (Script _ stmts) -> return stmts -- | Parse a JavaScript program from a string