 
   addAssertionNode: (props) ->
     @addChild new AssertionNode(props)
+
+  getContextNodes: ->
+    @getChildrenByType "ContextNode"
+
+  getFileNodes: ->
+    @getChildrenByType "FileNode"
+
+  getAssertionNodes: ->
+    @getChildrenByType "AssertionNode"
+
+  getBeforeEachNodes: ->
+    @getChildrenByType "BeforeEachNode"
 
 class BeforeEachNode extends Node
   code: null

  addContextNode: (props) ->
    @addChild new ContextNode(props)

class ContextNode extends Node
  text: null
  depth: null


class Parser

  constructor: (props = {}) ->
    @[key] = val for own key,val of props

  isAssertionCode: (code) ->
    /\b(expect|assert|should)\b/.test code

  isAssertionNext: (tokens) ->
    return false unless tokens.length > 1
