language-js-0.3.0: javascript parser for es6 and es7.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Language.JS.Parser

Synopsis

Documentation

identifier :: ParsecT String u Identity Expression Source #

Parse identifier (no reserved words).

numericLiteral :: ParsecT String u Identity Expression Source #

Parse numeric literal. Here we don't distinguish between kinds.

regexLiteral :: ParsecT String u Identity Expression Source #

Parse regular expression literal.

elision :: ParsecT String u Identity Expression Source #

Parse elision (aka ',' without a value on array).

arrayItems :: [Expression] -> ParsecT String u Identity [Expression] Source #

Parse many items on a array declaration.

objectBinds :: ParsecT String u Identity ObjectProperty Source #

key and/or value property pair.

objectLiteral :: ParsecT String u Identity Expression Source #

Parse object literal. objectLiteral :: P.ParsecT s u m Expression

parensExpression :: ParsecT String u Identity Expression Source #

Parse parenthesis expression.

checkSpread :: forall s (m :: Type -> Type) b u. Stream s m Char => (b -> b) -> ParsecT s u m b -> ParsecT s u m b Source #

Check for spread operation before parse p.

formalParameter :: ParsecT String u Identity BindExpression Source #

Parse used by function declarations.

arrowFunctionDeclaration :: ParsecT String u Identity Expression Source #

Prase arrow function declaration.

functionExpression :: ParsecT String u Identity Expression Source #

Parse any kind of funcion declaration (function or arrow function).

propertyMethodDef :: ParsecT String u Identity Expression Source #

Parse property method of a class or object literal.

classStaticDef :: ParsecT String u Identity Expression Source #

Parse a static property of a class.

classGetSetMethodDef :: ParsecT String u Identity Expression Source #

Parse a getter or setter method.

asyncMethodDef :: ParsecT String u Identity Expression Source #

Check for a async property method.

classPropertyDef :: ParsecT String u Identity Expression Source #

Parse a class property definition.

classDeclaration :: ParsecT String u Identity Expression Source #

Parse a class declaration.

primaryExpression :: ParsecT String u Identity Expression Source #

Parse primary expressions.

maybeSemi :: ParsecT String u Identity () Source #

Check for maybe semi. TODO: There are some rules for expression termination...need to check that.

emptyExpression :: ParsecT String u Identity Expression Source #

Parse a empty expression.

leftHandSideExpression :: ParsecT String u Identity Expression Source #

Parse rules for left hand side expression.

comment :: ParsecT String u Identity Expression Source #

Parse single line comment.

commentExpression :: ParsecT String u Identity Expression Source #

Parse comment like an expression.

expressionNonEmpty :: Bool -> ParsecT String u Identity Expression Source #

Parse expressions excluding emptyExpression.

toStatement :: Expression -> Statement Source #

Convert a expression into a statement.

importNamespaceClause :: ParsecT String u Identity ImportClause Source #

Parse import namespace clauses.

importManyClauses :: ParsecT String u Identity [ImportClause] Source #

Parse import clauses excluding namespace clause.

importFileStatement :: ParsecT String u Identity Statement Source #

Parse import file statement.

continueStatement :: ParsecT String u Identity Statement Source #

Parse continue statement.

blockStatement :: forall s (m :: Type -> Type) u. Stream s m Char => ParsecT s u m Statement -> ParsecT s u m Statement Source #

Parse block statement.

catchBlock :: ParsecT String u Identity Statement Source #

Parse catch part of try statement.

finallyBlock :: ParsecT String u Identity Statement Source #

Parse finally part of try statement.

variableStatement :: ParsecT String u Identity Statement Source #

Parse variable statement.

caseClause :: ParsecT String u Identity SwitchCase Source #

Parse case clause switch statement.

caseDeclaration :: ParsecT String u Identity Statement Source #

Parse case clause switch statement.

debuggerStatement :: ParsecT String u Identity Statement Source #

Parse debugger statement.

breakableStatement :: ParsecT String u Identity Statement Source #

Parse breakable statement. TODO: this parser can be improved to parse vaild javascript code by passing to the break statement to subsequent statements.

doWhileStatement :: ParsecT String u Identity Statement Source #

parse do-while statement.

iterationStatement :: ParsecT String u Identity Statement Source #

Parse iteration statements (for, white, do/while).

labelledStatement :: ParsecT String u Identity Statement Source #

Parse labelled statement.

topLevelStatements :: ParsecT String u Identity Statement Source #

Parse all statements allowed to be on top level. This helps to not allow import and export expressions in any other part of the code.

parse :: SourceName -> String -> Either ParseError [Statement] Source #

Parse a script with a filename.

parseFromFile :: SourceName -> IO (Either ParseError [Statement]) Source #

Parse a script from a file. Just for convinience.