             stack = []
             element =
                 type: null
-                start: 0
                 context: context
                 complete: false
+            start = 0
 
             is_parsing_string = false
             to_skip = 0
 
-            console.log query
-
-            for char, i in query
+            i = 0
+            for char in query
                 if to_skip > 0 # Because we cannot mess with the iterator in coffee-script
                     to_skip--
                     continue

                    if char is string_delimiter # End of the string, we can work again?
                        is_parsing_string = false # Else we just keep parsing the string
                        if element.type is 'string'
                            element.name = query.slice element.start, i+1
                            element.complete = true
                            stack.push element
                            element =
                                type: null
                                start: i+1
                                context: context
                                complete: false
                else # if element.is_parsing_string is false
                    if char is '\'' or char is '"' # So we get a string here
                        is_parsing_string = true
                        string_delimiter = char
                        if element.type is null
                            element.type = 'string'
                            element.start = i
                        continue

                   
                    if element.type is null # We have no idea what the fuck is that, so let's test
                        if element.start is i
                            result_regex = @regex.anonymous.exec query.slice i # Check for anonymouse function
                            if result_regex isnt null
                                element.type = 'anonymous_function'

                                    stack_stop_char.pop()
                                    if stack_stop_char.length is 0
                                        element.body = @extract_data_from_query
                                            query: query.slice start+element.name.length, i
                                            context: element.context
                                        element.complete = true
                                        stack.push element
                                        element =
                                            type: null
                                            context: context
                                        start = i+1
                        else if element.type is 'object'
                            # Since we are sure that we are not in a string, we can just look for colon and comma
                            # Still, we need to check the stack_stop_char since we can have { key: { inner: 'test, 'other_inner'}, other_key: 'other_value'}
