Cross-repo dependency analysis: static parsing + semantic analysis