Safe Haskell | None |
---|---|
Language | Haskell98 |
Data types for the intermediate simplified-Javascript AST
- data UnaryOperator
- = Negate
- | Not
- | BitwiseNot
- | Positive
- | JSNew
- data BinaryOperator
- data JS
- = JSNumericLiteral (Maybe SourceSpan) (Either Integer Double)
- | JSStringLiteral (Maybe SourceSpan) Text
- | JSBooleanLiteral (Maybe SourceSpan) Bool
- | JSUnary (Maybe SourceSpan) UnaryOperator JS
- | JSBinary (Maybe SourceSpan) BinaryOperator JS JS
- | JSArrayLiteral (Maybe SourceSpan) [JS]
- | JSIndexer (Maybe SourceSpan) JS JS
- | JSObjectLiteral (Maybe SourceSpan) [(Text, JS)]
- | JSAccessor (Maybe SourceSpan) Text JS
- | JSFunction (Maybe SourceSpan) (Maybe Text) [Text] JS
- | JSApp (Maybe SourceSpan) JS [JS]
- | JSVar (Maybe SourceSpan) Text
- | JSConditional (Maybe SourceSpan) JS JS JS
- | JSBlock (Maybe SourceSpan) [JS]
- | JSVariableIntroduction (Maybe SourceSpan) Text (Maybe JS)
- | JSAssignment (Maybe SourceSpan) JS JS
- | JSWhile (Maybe SourceSpan) JS JS
- | JSFor (Maybe SourceSpan) Text JS JS JS
- | JSForIn (Maybe SourceSpan) Text JS JS
- | JSIfElse (Maybe SourceSpan) JS JS (Maybe JS)
- | JSReturn (Maybe SourceSpan) JS
- | JSThrow (Maybe SourceSpan) JS
- | JSTypeOf (Maybe SourceSpan) JS
- | JSInstanceOf (Maybe SourceSpan) JS JS
- | JSLabel (Maybe SourceSpan) Text JS
- | JSBreak (Maybe SourceSpan) Text
- | JSContinue (Maybe SourceSpan) Text
- | JSRaw (Maybe SourceSpan) Text
- | JSComment (Maybe SourceSpan) [Comment] JS
- withSourceSpan :: SourceSpan -> JS -> JS
- getSourceSpan :: JS -> Maybe SourceSpan
- everywhereOnJS :: (JS -> JS) -> JS -> JS
- everywhereOnJSTopDown :: (JS -> JS) -> JS -> JS
- everywhereOnJSTopDownM :: Monad m => (JS -> m JS) -> JS -> m JS
- everythingOnJS :: (r -> r -> r) -> (JS -> r) -> JS -> r
Documentation
data UnaryOperator Source #
Built-in unary operators
Negate | Numeric negation |
Not | Boolean negation |
BitwiseNot | Bitwise negation |
Positive | Numeric unary 'plus' |
JSNew | Constructor |
data BinaryOperator Source #
Built-in binary operators
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 type for simplified Javascript expressions
withSourceSpan :: SourceSpan -> JS -> JS Source #
getSourceSpan :: JS -> Maybe SourceSpan Source #
everythingOnJS :: (r -> r -> r) -> (JS -> r) -> JS -> r Source #