MCPcopy
hub / github.com/hashicorp/hcl / parseTraversal

Function parseTraversal

hclwrite/parser.go:399–414  ·  view source on GitHub ↗
(nativeTraversal hcl.Traversal, from inputTokens)

Source from the content-addressed store, hash-verified

397}
398
399func parseTraversal(nativeTraversal hcl.Traversal, from inputTokens) (before inputTokens, n *node, after inputTokens) {
400 traversal := newTraversal()
401 children := traversal.children
402 before, from, after = from.Partition(nativeTraversal.SourceRange())
403
404 stepAfter := from
405 for _, nativeStep := range nativeTraversal {
406 before, step, after := parseTraversalStep(nativeStep, stepAfter)
407 children.AppendUnstructuredTokens(before.Tokens())
408 children.AppendNode(step)
409 traversal.steps.Add(step)
410 stepAfter = after
411 }
412
413 return before, newNode(traversal), after
414}
415
416func parseTraversalStep(nativeStep hcl.Traverser, from inputTokens) (before inputTokens, n *node, after inputTokens) {
417 var children *nodes

Callers 1

parseExpressionFunction · 0.85

Calls 9

newTraversalFunction · 0.85
parseTraversalStepFunction · 0.85
newNodeFunction · 0.85
PartitionMethod · 0.80
TokensMethod · 0.80
AppendNodeMethod · 0.80
AddMethod · 0.80
SourceRangeMethod · 0.65

Tested by

no test coverage detected