module Data.DOM.NodeFilter
       (acceptNode, cFILTER_ACCEPT, cFILTER_REJECT, cFILTER_SKIP,
        cSHOW_ALL, cSHOW_ELEMENT, cSHOW_ATTRIBUTE, cSHOW_TEXT,
        cSHOW_CDATA_SECTION, cSHOW_ENTITY_REFERENCE, cSHOW_ENTITY,
        cSHOW_PROCESSING_INSTRUCTION, cSHOW_COMMENT, cSHOW_DOCUMENT,
        cSHOW_DOCUMENT_TYPE, cSHOW_DOCUMENT_FRAGMENT, cSHOW_NOTATION)
       where
import Data.DOM.Traversal
import Control.Monad
import WebBits.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
acceptNode ::
           (Monad mn, CNodeFilter this, CNode n) =>
             Expression n -> Expression this -> mn (Expression Double)
acceptNode a thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "acceptNode")
       return (CallExpr et r [a /\ et])
cFILTER_ACCEPT = 1
cFILTER_REJECT = 2
cFILTER_SKIP = 3
cSHOW_ALL = 4294967295
cSHOW_ELEMENT = 1
cSHOW_ATTRIBUTE = 2
cSHOW_TEXT = 4
cSHOW_CDATA_SECTION = 8
cSHOW_ENTITY_REFERENCE = 16
cSHOW_ENTITY = 32
cSHOW_PROCESSING_INSTRUCTION = 64
cSHOW_COMMENT = 128
cSHOW_DOCUMENT = 256
cSHOW_DOCUMENT_TYPE = 512
cSHOW_DOCUMENT_FRAGMENT = 1024
cSHOW_NOTATION = 2048