shape parser