public function output()
 {
     $codeLines = [];
     $localScope = [];
     foreach ($this->localScope->getLocalVariables() as $localVariable) {
         $localScope[] = $localVariable->getPropertyType()->output() . ' ' . $localVariable->getPropertyName();
     }
     $localScope = '(' . implode(', ', $localScope) . ')';
     $codeLines[] = "Event " . $this->blockType . $localScope;
     $codeLines = array_merge($codeLines, $this->codeScope->output());
     $codeLines[] = "EndEvent";
     return $codeLines;
 }
 public function output()
 {
     $codeLines = [];
     $localScope = [];
     foreach ($this->localScope->getLocalVariables() as $localVariable) {
         $localScope[] = $localVariable->getPropertyType()->output() . ' ' . $localVariable->getPropertyName();
     }
     $localScope = '(' . implode(', ', $localScope) . ')';
     $functionReturnType = $this->returnType !== null ? $this->returnType->value() . ' ' : "";
     $codeLines[] = $functionReturnType . "Function " . $this->functionName . $localScope;
     $codeLines = array_merge($codeLines, $this->codeScope->output());
     $codeLines[] = "EndFunction";
     return $codeLines;
 }