anchor.diff:  		pos++
   
   	qdel(parser)
  -
   	return querys
   
   
  
positive.code: 	query_log = "[usr.ckey]([usr]) [query_log]"
  	log_game(query_log)
  	NOTICE(query_log)
  
  	if(!query_text || length(query_text) < 1)
  		return
  
negative.code: 
  	var/list/querys = SDQL_parse(query_list)
  
  
  	if(!querys || querys.len < 1)
  		return
  
  	for(var/list/query_tree in querys)
  		var/list/from_objs = list()
  		var/list/select_types = list()
  
  		switch(query_tree[1])
  			if("explain")
  				SDQL_testout(query_tree["explain"])
  				return
  
  			if("call")
  				if("on" in query_tree)
  					select_types = query_tree["on"]
  				else
  					return
  
  			if("select", "delete", "update")
  				select_types = query_tree[query_tree[1]]
  
  		from_objs = SDQL_from_objs(query_tree["from"])
  
  		var/list/objs = list()
  
  		for(var/type in select_types)
  			try
  				objs += SDQL_get_all(type, from_objs)
  			catch(var/exception/e)
  				runtime_tracker += SDQL_parse_exception(e)
  				runtimes++
  			CHECK_TICK
  		objs_all = objs.len
  
  		if("where" in query_tree)
  			var/objs_temp = objs
  			objs = list()
  			for(var/datum/d in objs_temp)
  				try
  					if(SDQL_expression(d, query_tree["where"]))
  						objs += d
  						objs_eligible++
  				catch(var/exception/e)
  					runtime_tracker += SDQL_parse_exception(e)
  					runtimes++
  				CHECK_TICK
  
  		switch(query_tree[1])
  			if("call")
  				for(var/datum/d in objs)
  					try
  						SDQL_var(d, query_tree["call"][1], source = d)
  					catch(var/exception/e)
  						runtime_tracker += SDQL_parse_exception(e)
  						runtimes++
  					CHECK_TICK
  
  			if("delete")
  				for(var/datum/d in objs)
  					try
  						qdel(d)
  					catch(var/exception/e)
  						runtime_tracker += SDQL_parse_exception(e)
  						runtimes++
  					CHECK_TICK
  
  			if("select")
  				var/text = ""
  				for(var/datum/t in objs)
  					try
  						text += "<A HREF='?_src_=vars;Vars=\ref[t]'>\ref[t]</A>"
  						if(istype(t, /atom))
  							var/atom/a = t
  							if(a.x)
  								text += ": [t] at ([a.x], [a.y], [a.z])<br>"
  
  							else if(a.loc && a.loc.x)
  								text += ": [t] in [a.loc] at ([a.loc.x], [a.loc.y], [a.loc.z])<br>"
  							else
  								text += ": [t]<br>"
  						else
  							text += ": [t]<br>"
  					catch(var/exception/e)
  						runtime_tracker += SDQL_parse_exception(e)
  						runtimes++
  					CHECK_TICK
  				usr << browse(text, "window=SDQL-result")
  
  			if("update")
  				if("set" in query_tree)
  					var/list/set_list = query_tree["set"]
  					for(var/datum/d in objs)
  						try
  							for(var/list/sets in set_list)
  								var/datum/temp = d
  								var/i = 0
  