MCPcopy
hub / github.com/writefreely/writefreely / semParse

Function semParse

semver.go:77–139  ·  view source on GitHub ↗
(v string)

Source from the content-addressed store, hash-verified

75}
76
77func semParse(v string) (p parsed, ok bool) {
78 if v == "" || v[0] != 'v' {
79 p.err = "missing v prefix"
80 return
81 }
82 p.major, v, ok = parseInt(v[1:])
83 if !ok {
84 p.err = "bad major version"
85 return
86 }
87 if v == "" {
88 p.minor = "0"
89 p.patch = "0"
90 p.short = ".0.0"
91 return
92 }
93 if v[0] != '.' {
94 p.err = "bad minor prefix"
95 ok = false
96 return
97 }
98 p.minor, v, ok = parseInt(v[1:])
99 if !ok {
100 p.err = "bad minor version"
101 return
102 }
103 if v == "" {
104 p.patch = "0"
105 p.short = ".0"
106 return
107 }
108 if v[0] != '.' {
109 p.err = "bad patch prefix"
110 ok = false
111 return
112 }
113 p.patch, v, ok = parseInt(v[1:])
114 if !ok {
115 p.err = "bad patch version"
116 return
117 }
118 if len(v) > 0 && v[0] == '-' {
119 p.prerelease, v, ok = parsePrerelease(v)
120 if !ok {
121 p.err = "bad prerelease"
122 return
123 }
124 }
125 if len(v) > 0 && v[0] == '+' {
126 p.build, v, ok = parseBuild(v)
127 if !ok {
128 p.err = "bad build"
129 return
130 }
131 }
132 if v != "" {
133 p.err = "junk on end"
134 ok = false

Callers 2

IsValidFunction · 0.85
CompareSemverFunction · 0.85

Calls 3

parseIntFunction · 0.85
parsePrereleaseFunction · 0.85
parseBuildFunction · 0.85

Tested by

no test coverage detected