#lang scheme/base
(require scheme/contract
         (planet cobbe/contract-utils/contract-utils)
         (file "../javascript.plt-5.4-hacked/syntax/ast.ss")
         (file "../javascript.plt-5.4-hacked/syntax/token.ss"))
(define-struct (BeginStatement Statement) (statements) #:transparent)
(define (javascript? item)
  (or (SourceElement? item)
      (Expression? item)))
(define javascript-declaration?
  Declaration?)
(define javascript-statement?
  Statement?)
(define javascript-expression?
  Expression?)
(provide (all-from-out (file "../javascript.plt-5.4-hacked/syntax/ast.ss")))
(provide/contract
 [struct (BeginStatement Statement) ([location (optional/c region?)]
                                     [statements (listof SourceElement?)])]
 [javascript? procedure?]
 [javascript-declaration? procedure?]
 [javascript-statement? procedure?]
 [javascript-expression? procedure?])