           return new NotAllowed("expected text node, found #{h.getLocalName(node)}", this, node)
     nullable: =>
       true
-
-  class After extends Pattern
-    constructor: (pattern1, pattern2) ->
-      @pattern1 = getPattern pattern1
-      @pattern2 = getPattern pattern2
-    toString: =>
-      "(after #{@pattern1}: #{@pattern2})"
-    _check: (node, descend) =>
-      if @pattern2 instanceof NotAllowed
-        return @pattern2
-      if @pattern1 instanceof NotAllowed
-        return @pattern1
-      return
 
   class Choice extends Pattern
     constructor: (pattern1, pattern2) ->

    attrCheck: (node) =>
      @pattern.attrCheck(node)

  { getPattern,
    AnyName, Attribute,
    Choice, Context,
    Data, Datatype, Define,

define (require) ->
  h = require('../helper')

  _nodelog = (node, message...) =>
    depth = h.depth(node) + 0
    indent = ""
    x = 0
    while x < depth
      indent += "| "
      x += 1
    if indent.length
      message.unshift indent
    console.log.apply(console, message)

  getPattern = (node, defines) =>
    if node instanceof Pattern or node instanceof NameClass
      return node
