修复多个解析bug，并重构代码
test