MCPcopy
hub / github.com/google/go-jsonnet / parseObjectAssignmentOp

Method parseObjectAssignmentOp

internal/parser/parser.go:304–341  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

302}
303
304func (p *parser) parseObjectAssignmentOp() (opFodder ast.Fodder, plusSugar bool, hide ast.ObjectFieldHide, err errors.StaticError) {
305 op, err := p.popExpect(tokenOperator)
306 if err != nil {
307 return
308 }
309 opFodder = op.fodder
310 opStr := op.data
311 if opStr[0] == '+' {
312 plusSugar = true
313 opStr = opStr[1:]
314 }
315
316 numColons := 0
317 for len(opStr) > 0 {
318 if opStr[0] != ':' {
319 err = errors.MakeStaticError(
320 fmt.Sprintf("Expected one of :, ::, :::, +:, +::, +:::, got: %v", op.data), op.loc)
321 return
322 }
323 opStr = opStr[1:]
324 numColons++
325 }
326
327 switch numColons {
328 case 1:
329 hide = ast.ObjectFieldInherit
330 case 2:
331 hide = ast.ObjectFieldHidden
332 case 3:
333 hide = ast.ObjectFieldVisible
334 default:
335 err = errors.MakeStaticError(
336 fmt.Sprintf("Expected one of :, ::, :::, +:, +::, +:::, got: %v", op.data), op.loc)
337 return
338 }
339
340 return
341}
342
343// A literalField is a field of an object or object comprehension.
344type literalField string

Callers 1

Calls 2

popExpectMethod · 0.95
MakeStaticErrorFunction · 0.92

Tested by

no test coverage detected