MCPcopy Index your code
hub / github.com/go-git/go-git / parseColonDefault

Method parseColonDefault

internal/revision/parser.go:515–563  ·  view source on GitHub ↗

parseColonDefault extract : statements

()

Source from the content-addressed store, hash-verified

513
514// parseColonDefault extract :<data> statements
515func (p *Parser) parseColonDefault() (Revisioner, error) {
516 var tok token
517 var lit string
518 var path string
519 var stage int
520 var err error
521 var n = -1
522
523 tok, lit, err = p.scan()
524
525 if err != nil {
526 return nil, err
527 }
528
529 nextTok, _, err := p.scan()
530
531 if err != nil {
532 return nil, err
533 }
534
535 if tok == number && nextTok == colon {
536 n, _ = strconv.Atoi(lit)
537 }
538
539 switch n {
540 case 0, 1, 2, 3:
541 stage = n
542 default:
543 path += lit
544 p.unscan()
545 }
546
547 for {
548 tok, lit, err = p.scan()
549
550 if err != nil {
551 return nil, err
552 }
553
554 switch {
555 case tok == eof && n == -1:
556 return ColonPath{path}, nil
557 case tok == eof:
558 return ColonStagePath{path, stage}, nil
559 default:
560 path += lit
561 }
562 }
563}
564
565// parseRef extract reference name
566func (p *Parser) parseRef() (Revisioner, error) {

Callers 1

parseColonMethod · 0.95

Calls 2

scanMethod · 0.95
unscanMethod · 0.95

Tested by

no test coverage detected