func ParseScipSymbol()

in src/scip-lib/model/scip.go [90:115]


func ParseScipSymbol(sy string) (*scip.Symbol, error) {
	parsed, err := scip.ParseSymbol(sy)
	if err != nil {
		return nil, err
	}

	// IDE-698: Package name is unset in Fievel
	if parsed.Package != nil && parsed.Package.Name == "" {
		// Join the Symbol descriptors together
		parts := make([]string, 0)
		for _, part := range parsed.Descriptors {
			if part.Suffix == scip.Descriptor_Namespace {
				parts = append(parts, part.Name)
			}
		}

		parsed.Package.Name = strings.Join(parts, "/")
	}

	defaultPackageVersion := "."
	if parsed.Package != nil && parsed.Package.Version == "" {
		parsed.Package.Version = defaultPackageVersion
	}

	return parsed, nil
}