code: func (p *Parser) parseField(cur *ListNode) error {
  	p.consumeText()
  	var r rune
  	for {
  		r = p.next()
  		if isTerminator(r) {
  			p.backup()
  			break
  		}
  	}
  	value := p.consumeText()
  	if value == "*" {
  		cur.append(newWildcard())
  	} else {
  		cur.append(newField(value))
  	}
  	return p.parseInsideAction(cur)
  }
docs: // parseField scans a field until a terminator