MCPcopy Create free account
hub / github.com/nodejs/node / _parse_version_many

Function _parse_version_many

tools/gyp/pylib/packaging/_parser.py:222–248  ·  view source on GitHub ↗

version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?

(tokenizer: Tokenizer)

Source from the content-addressed store, hash-verified

220
221
222def _parse_version_many(tokenizer: Tokenizer) -> str:
223 """
224 version_many = (SPECIFIER (WS? COMMA WS? SPECIFIER)*)?
225 """
226 parsed_specifiers = ""
227 while tokenizer.check("SPECIFIER"):
228 span_start = tokenizer.position
229 parsed_specifiers += tokenizer.read().text
230 if tokenizer.check("VERSION_PREFIX_TRAIL", peek=True):
231 tokenizer.raise_syntax_error(
232 ".* suffix can only be used with `==` or `!=` operators",
233 span_start=span_start,
234 span_end=tokenizer.position + 1,
235 )
236 if tokenizer.check("VERSION_LOCAL_LABEL_TRAIL", peek=True):
237 tokenizer.raise_syntax_error(
238 "Local version label can only be used with `==` or `!=` operators",
239 span_start=span_start,
240 span_end=tokenizer.position,
241 )
242 tokenizer.consume("WS")
243 if not tokenizer.check("COMMA"):
244 break
245 parsed_specifiers += tokenizer.read().text
246 tokenizer.consume("WS")
247
248 return parsed_specifiers
249
250
251# --------------------------------------------------------------------------------------

Callers 1

_parse_specifierFunction · 0.85

Calls 4

raise_syntax_errorMethod · 0.80
checkMethod · 0.45
readMethod · 0.45
consumeMethod · 0.45

Tested by

no test coverage detected