#lang scheme/base
(require "../base.ss")
(require (only-in (javascript-in ast)
SourceElement?
Property?)
(javascript-in [private/syntax/ast-core
private/syntax/token]))
(define-struct (BeginStatement Statement) (statements) #:prefab)
(define (javascript? item)
(or (SourceElement? item)
(Expression? item)))
(define javascript-declaration?
Declaration?)
(define javascript-statement?
Statement?)
(define javascript-expression?
Expression?)
(provide (javascript-out [ast private/syntax/ast-core]))
(provide/contract
[struct (BeginStatement Statement) ([location (or/c region? false/c)]
[statements (listof SourceElement?)])]
[javascript? procedure?]
[javascript-declaration? procedure?]
[javascript-statement? procedure?]
[javascript-expression? procedure?])