public function compile(\Twig_Compiler $compiler)
{
// Set some string representations to make the code writing via the
// compiler a bit more readable. ("a bit")
$frm = "\$context['form_{$this->form}']";
$frmAction = $frm . '->getAction()';
$frmMethod = $frm . '->getMethod()';
$frmName = $frm . '->getName()';
$frmToken = $frm . '->getToken()';
$frmUseToken = $frm . '->getUseToken()';
$frmParamsHtml = $frm . '->getParametersHTML()';
$frmAttrAction = ' action="\', ' . $frmAction . ', \'"';
$frmAttrMethod = ' method="\', ' . $frmMethod . ', \'"';
$hiddenFormName = '<input type="hidden" name="form" value="\', ' . $frmName . ', \'" id="form\', ucfirst(' . $frmName . '), \'" />';
$hiddenFormToken = '<input type="hidden" name="form_token" value="\', ' . $frmToken . ', \'" id="formToken\', ucfirst(' . $frmName . '), \'" />';
// oh boy, disabled atm constant is gone
// $htmlAcceptCharset = (SPOON_CHARSET == 'utf-8')
// ? ' accept-charset="UTF-8"'
// : '';
$compiler->addDebugInfo($this)->write('echo \'<form')->raw($frmAttrMethod)->raw($frmAttrAction)->raw("', ")->raw(' ' . $frmParamsHtml)->raw(', \'')->raw('>\'')->raw(";\n")->write("echo '{$hiddenFormName}';\n")->write("if({$frmUseToken}) echo '{$hiddenFormToken}';");
}