enhance c parsing