       # When key doesn't exist and multi line key is set,
       # add the value to the original key
       if multiLineKey and value?
-        do (argObject, multiLineKey, value, currentSection, definitions) ->
-          object = if _(argObject).isEmpty() then currentSection else argObject
-          keys   = multiLineKey.split(".")
-          value += "  \n" if value
-          _setAttribute(object,
-            keys[keys.length - 1],
-            value,
-            definitions[keys[keys.length - 1]]
-          )
+        object = if _(argObject).isEmpty() then currentSection else argObject
+        value += "  \n" if value
+        _setAttribute(object,
+          _getMultiLineKey(-1),
+          value,
+          definitions[_getMultiLineKey(-1)]
+        )
 
     else
       if hasComment and not _(currentSection).isEmpty()
 
         # Check if there is remaining argObject to be cleared
         if multiLineKey and not _(argObject).isEmpty()
-          do (multiLineKey, currentSection, argObject, definitions) ->
-            keys = multiLineKey.split "."
-            _setAttribute(currentSection,
-              keys[0],
-              argObject,
-              definitions[keys[0]]
-            )
+          _setAttribute(currentSection,
+            _getMultiLineKey(0),
+            argObject,
+            definitions[_getMultiLineKey(0)]
+          )
 
           multiLineKey = ""
           argObject    = {}


commentRegexStr = "\\s*(?:@(\\w+))?(?:\\s*(.*))?"
commentRegex    = new RegExp commentRegexStr
argsRegex       = /\{([\w\|]+)}\s([\w\d_-]+)\s?(.*)/
returnRegex     = /\{([\w\|]+)}\s?(.*)/
NEW_LINE        = /\n\r?/
cwd             = process.cwd()

        currentSection = {}

      hasComment = false

  # Push the last section if there was no new line at the
  # end of the file
  if not _(currentSection).isEmpty()
    allSections.push currentSection

  return allSections

