code: func (p *Parser) Index() bool {
  
  	if p.PeekByte() != '[' {
  		return false
  	}
  	p.Byte()
  
  	i := p.ev.Level()
  
  	p.ev.Add(TypeIndex)
  	p.ev.Inc()
  
  	p.Space()
  	p.Expression()
  	p.Space()
  
  	if p.PeekByte() != ']' {
  		return false // error
  	}
  	p.Byte()
  
  	// Level before and after is the same
  	p.ev.SetLevel(i)
  	return true
  }
docs: // Index ::= '[' expression ']'