MCPcopy
hub / github.com/dosco/graphjin / parseNormalFields

Method parseNormalFields

core/internal/graph/parse.go:382–414  ·  view source on GitHub ↗
(st *Stack, fields []Field)

Source from the content-addressed store, hash-verified

380}
381
382func (p *Parser) parseNormalFields(st *Stack, fields []Field) ([]Field, error) {
383 if !p.peek(itemName) {
384 return nil, p.tokErr(`expecting an alias or field name`)
385 }
386
387 fields = append(fields, Field{ID: int32(len(fields))})
388
389 f := &fields[(len(fields) - 1)]
390 f.Args = f.argsA[:0]
391 f.Children = f.childrenA[:0]
392
393 // Parse the field
394 if err := p.parseField(f); err != nil {
395 return nil, err
396 }
397
398 if st.Len() == 0 {
399 f.ParentID = -1
400 } else {
401 pid := st.Peek()
402 f.ParentID = pid
403 fields[pid].Children = append(fields[pid].Children, f.ID)
404 }
405
406 // The first opening curley brackets after this
407 // comes the columns or child fields
408 if p.peek(itemObjOpen) {
409 p.ignore()
410 st.Push(f.ID)
411 }
412
413 return fields, nil
414}
415
416func (p *Parser) parseFragmentFields(st *Stack, fields []Field) ([]Field, error) {
417 var err error

Callers 2

parseFieldsMethod · 0.95
parseFragmentFieldsMethod · 0.95

Calls 7

peekMethod · 0.95
tokErrMethod · 0.95
parseFieldMethod · 0.95
ignoreMethod · 0.95
LenMethod · 0.45
PeekMethod · 0.45
PushMethod · 0.45

Tested by

no test coverage detected