       endOfLine      =
       endMatched     =
       inCallback     =
-      inDescribe     =
       inDSLParams    =
       beginMatched   =
       inParenthesis  =


      analize = (char)->
        dump.push char
        endMatched = undefined if endMatched?
        endOfLine = undefined if endOfLine?
        beginMatched = undefined if beginMatched?
        callbackBegins = undefined if callbackBegins?
        inDSLParams = undefined if inDSLParams? and inDSLParams == false
        inDescribe = undefined if inDescribe? and inDescribe == false
        inString = undefined if inString? and inString == false

        switch
          when dump.buffer() == 'tion () {' and not inCallback?
            callbackBegins = inCallback = true
          when dump.buffer() == 'describe(' and not inDescribe?
            inDescribe = true
          when char == '(' and inDSLParams? and not inString? and not inDescribe?
            parentheses.push char
          when char == ')' and inDSLParams? and not inString? and not inDescribe?
            inDSLParams = parentheses.pop()
            endMatched = true unless inDSLParams?
          when char == '(' and inDescribe? and not inString?
            parentheses.push char
          when char == ')' and inDescribe? and not inString?
            inDescribe = parentheses.pop()
          when dump.buffer().substring(8) == "\n" and not inString?
            endOfLine = true
          when dump.buffer().substring(5) == '.is(' and not inDSLParams? and not inDescribe?
            inDSLParams = beginMatched = true
          when char.match(/'|"/)? and (inDSLParams? or inDescribe?) and strings.indexOf(char) < 0 and not dump.buffer(7) == "\\"
            strings.push(char)
            inString = true
          when char.match(/'|"/)? and (inDSLParams? or inDescribe?) and not dump.buffer(7) == "\\"
            strings.splice(strings.indexOf(char), 1)
            inString = strings.length > 0


      # console.log res.toString()
      # res
      # console.log Result.result()
      # eval "(#{Result.result()});"
      # console.log Result.result()
      eval("(#{Result.result()});")

    @run = ->
      console.log 'callback wrapper called'
      @prepareCallback().call Context.get()

    this
