anchor.diff:  					var/next_comma_pos
   					do
   						next_comma_pos = findtext(line, ",", comma_pos + 1)
  +
  +						// Ignore commas in {} blocks
  +						for(var/c in cb_starting_positions)
  +							while(next_comma_pos in (c to cb_ending_positions[cb_starting_positions.Find(c)]))
  +								next_comma_pos = findtext(line, ",", next_comma_pos + 1)
  +
   						if(next_comma_pos)
   							path_groups.Add(copytext(line, comma_pos + 1, next_comma_pos))
   							comma_pos = next_comma_pos
   						else
   							path_groups.Add(copytext(line, comma_pos + 1, lp_pos))
  +
   					while(next_comma_pos)
   				else
   					path_groups.Add(inner_text)
  
positive.code: 			var/list/row = grid["[y]"]
  			var/x = 0
  			for(var/datum/dmm_object/object in row)
  				object.Instantiate(locate(origin.x + x, origin.y + y, origin.z), ((!object.HasArea() && !object.GetSubByType(/turf/space, 1)) ? A : null))
  				x++
  
  		A.InitializeLighting()
  
negative.code: 			if(istext(value))
  				value = replacetext(value, "\"", "")
  
  				if(copytext(value, 1, 9) == "newlist(")
  					var/list/split = text2list(copytext(value, 9, findtext(value, ")")), ",")
  					var/list/parsed = list()
  					for(var/x in split)
  						parsed += text2path(x)
  
  					var_overrides[key] = parsed
  
  					continue
  
  			if(text2num(value))
  				value = text2num(value)
  
  