purescript-0.10.4: PureScript Programming Language Compiler

Safe HaskellNone
LanguageHaskell98

Language.PureScript.CodeGen.JS.AST

Description

Data types for the intermediate simplified-Javascript AST

Synopsis

Documentation

data UnaryOperator Source #

Built-in unary operators

Constructors

Negate

Numeric negation

Not

Boolean negation

BitwiseNot

Bitwise negation

Positive

Numeric unary 'plus'

JSNew

Constructor

data BinaryOperator Source #

Built-in binary operators

Constructors

Add

Numeric addition

Subtract

Numeric subtraction

Multiply

Numeric multiplication

Divide

Numeric division

Modulus

Remainder

EqualTo

Generic equality test

NotEqualTo

Generic inequality test

LessThan

Numeric less-than

LessThanOrEqualTo

Numeric less-than-or-equal

GreaterThan

Numeric greater-than

GreaterThanOrEqualTo

Numeric greater-than-or-equal

And

Boolean and

Or

Boolean or

BitwiseAnd

Bitwise and

BitwiseOr

Bitwise or

BitwiseXor

Bitwise xor

ShiftLeft

Bitwise left shift

ShiftRight

Bitwise right shift

ZeroFillShiftRight

Bitwise right shift with zero-fill

data JS Source #

Data type for simplified Javascript expressions

Constructors

JSNumericLiteral (Maybe SourceSpan) (Either Integer Double)

A numeric literal

JSStringLiteral (Maybe SourceSpan) Text

A string literal

JSBooleanLiteral (Maybe SourceSpan) Bool

A boolean literal

JSUnary (Maybe SourceSpan) UnaryOperator JS

A unary operator application

JSBinary (Maybe SourceSpan) BinaryOperator JS JS

A binary operator application

JSArrayLiteral (Maybe SourceSpan) [JS]

An array literal

JSIndexer (Maybe SourceSpan) JS JS

An array indexer expression

JSObjectLiteral (Maybe SourceSpan) [(Text, JS)]

An object literal

JSAccessor (Maybe SourceSpan) Text JS

An object property accessor expression

JSFunction (Maybe SourceSpan) (Maybe Text) [Text] JS

A function introduction (optional name, arguments, body)

JSApp (Maybe SourceSpan) JS [JS]

Function application

JSVar (Maybe SourceSpan) Text

Variable

JSConditional (Maybe SourceSpan) JS JS JS

Conditional expression

JSBlock (Maybe SourceSpan) [JS]

A block of expressions in braces

JSVariableIntroduction (Maybe SourceSpan) Text (Maybe JS)

A variable introduction and optional initialization

JSAssignment (Maybe SourceSpan) JS JS

A variable assignment

JSWhile (Maybe SourceSpan) JS JS

While loop

JSFor (Maybe SourceSpan) Text JS JS JS

For loop

JSForIn (Maybe SourceSpan) Text JS JS

ForIn loop

JSIfElse (Maybe SourceSpan) JS JS (Maybe JS)

If-then-else statement

JSReturn (Maybe SourceSpan) JS

Return statement

JSThrow (Maybe SourceSpan) JS

Throw statement

JSTypeOf (Maybe SourceSpan) JS

Type-Of operator

JSInstanceOf (Maybe SourceSpan) JS JS

InstanceOf test

JSLabel (Maybe SourceSpan) Text JS

Labelled statement

JSBreak (Maybe SourceSpan) Text

Break statement

JSContinue (Maybe SourceSpan) Text

Continue statement

JSRaw (Maybe SourceSpan) Text

Raw Javascript (generated when parsing fails for an inline foreign import declaration)

JSComment (Maybe SourceSpan) [Comment] JS

Commented Javascript

Instances

Eq JS Source # 

Methods

(==) :: JS -> JS -> Bool #

(/=) :: JS -> JS -> Bool #

Show JS Source # 

Methods

showsPrec :: Int -> JS -> ShowS #

show :: JS -> String #

showList :: [JS] -> ShowS #

everywhereOnJS :: (JS -> JS) -> JS -> JS Source #

everywhereOnJSTopDownM :: Monad m => (JS -> m JS) -> JS -> m JS Source #

everythingOnJS :: (r -> r -> r) -> (JS -> r) -> JS -> r Source #