public function parseBlock($tokens)
 {
     $l = new HList();
     while (true) {
         $t = $tokens->first();
         if ($t === null) {
             break;
         }
         if (!$t->s && ($t->p === "end" || $t->p === "else" || _hx_substr($t->p, 0, 7) === "elseif ")) {
             break;
         }
         $l->add($this->parse($tokens));
         unset($t);
     }
     if ($l->length === 1) {
         return $l->first();
     }
     return haxe__Template_TemplateExpr::OpBlock($l);
 }