code: func (p *Parser) parseIdentifier(cur *ListNode) error {
  	var r rune
  	for {
  		r = p.next()
  		if isTerminator(r) {
  			p.backup()
  			break
  		}
  	}
  	value := p.consumeText()
  	cur.append(newIdentifier(value))
  	return p.parseInsideAction(cur)
  }
docs: // parseIdentifier scans build-in keywords, like "range" "end"