code: Expr map() {
  		if (peek().sym != Sym.LBRACE) {
  			return array();
  		}
  		
  		LinkedHashMap<Object, Expr> mapEntry = new LinkedHashMap<Object, Expr>();
  		Map map = new Map(mapEntry);
  		move();
  		if (peek().sym == Sym.RBRACE) {
  			move();
  			return map;
  		}
  		
  		buildMapEntry(mapEntry);
  		while (peek().sym == Sym.COMMA) {
  			move();
  			buildMapEntry(mapEntry);
  		}
  		match(Sym.RBRACE);
  		return map;
  	}
docs: map : '{' (mapEntry ( , mapEntry ) * ) ? '}'
  mapEntry : (ID | STR) ':' expr