Parsing..
Script AST:
SCRIPT:
->toplevels:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: MessageBoxA
      ->kind = externT
      ->library = user32.dll
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: Faktorial
      ->kind = localT
      ->declaration:
         DECLARATION:
         ->kind = formalD
         ->name = cislo
         ->next:
      ->statements:
         STATEMENT:
         ->kind = ifelseT
         ->condition:
            EXPRESSION:
            ->kind = '>'
            ->left:
               EXPRESSION:
               ->kind = lvalueT
                  LVALUE:
                  ->kind = identifierT
                  ->name = cislo
               ->next:
            ->right:
               EXPRESSION:
               ->kind = intconstT
               ->value = 0
               ->next:
            ->next:
         ->ifbody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = '*'
                  ->left:
                     EXPRESSION:
                     ->kind = lvalueT
                        LVALUE:
                        ->kind = identifierT
                        ->name = cislo
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial
                     ->arguments:
                        EXPRESSION:
                        ->kind = '-'
                        ->left:
                           EXPRESSION:
                           ->kind = lvalueT
                              LVALUE:
                              ->kind = identifierT
                              ->name = cislo
                           ->next:
                        ->right:
                           EXPRESSION:
                           ->kind = intconstT
                           ->value = 1
                           ->next:
                        ->next:
                     ->next:
                  ->next:
         ->elsebody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 1
                  ->next:
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: main
      ->kind = localT
      ->declaration:
      ->statements:
         STATEMENT:
         ->kind = sequenceT
         ->first:
            STATEMENT:
            ->kind = declstmT
            ->declaration:
               DECLARATION:
               ->kind = variableT
               ->identifiers:
                  IDENTIFIER:
                  ->name = faktorial
                  ->next:
               ->initialization:
                  EXPRESSION:
                  ->kind = '+'
                  ->left:
                     EXPRESSION:
                     ->kind = stringconstT
                     ->value = Faktoriál 4 je:
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial
                     ->arguments:
                        EXPRESSION:
                        ->kind = intconstT
                        ->value = 4
                        ->next:
                     ->next:
                  ->next:
               ->next:
         ->second:
            STATEMENT:
            ->kind = expT
            ->expression:
               EXPRESSION:
               ->kind = callT
               ->function = MessageBoxA
               ->arguments:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
                  EXPRESSION:
                  ->kind = lvalueT
                     LVALUE:
                     ->kind = identifierT
                     ->name = faktorial
                  ->next:
                  EXPRESSION:
                  ->kind = stringconstT
                  ->value = USL Script
                  ->next:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
               ->next:
   ->next:
Weeding...
SCRIPT:
->toplevels:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: MessageBoxA
      ->kind = externT
      ->library = user32.dll
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: Faktorial
      ->kind = localT
      ->declaration:
         DECLARATION:
         ->kind = formalD
         ->name = cislo
         ->next:
      ->statements:
         STATEMENT:
         ->kind = ifelseT
         ->condition:
            EXPRESSION:
            ->kind = '>'
            ->left:
               EXPRESSION:
               ->kind = lvalueT
                  LVALUE:
                  ->kind = identifierT
                  ->name = cislo
               ->next:
            ->right:
               EXPRESSION:
               ->kind = intconstT
               ->value = 0
               ->next:
            ->next:
         ->ifbody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = '*'
                  ->left:
                     EXPRESSION:
                     ->kind = lvalueT
                        LVALUE:
                        ->kind = identifierT
                        ->name = cislo
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial
                     ->arguments:
                        EXPRESSION:
                        ->kind = '-'
                        ->left:
                           EXPRESSION:
                           ->kind = lvalueT
                              LVALUE:
                              ->kind = identifierT
                              ->name = cislo
                           ->next:
                        ->right:
                           EXPRESSION:
                           ->kind = intconstT
                           ->value = 1
                           ->next:
                        ->next:
                     ->next:
                  ->next:
         ->elsebody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 1
                  ->next:
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: main
      ->kind = localT
      ->declaration:
      ->statements:
         STATEMENT:
         ->kind = sequenceT
         ->first:
            STATEMENT:
            ->kind = declstmT
            ->declaration:
               DECLARATION:
               ->kind = variableT
               ->identifiers:
                  IDENTIFIER:
                  ->name = faktorial
                  ->next:
               ->initialization:
                  EXPRESSION:
                  ->kind = '+'
                  ->left:
                     EXPRESSION:
                     ->kind = stringconstT
                     ->value = Faktoriál 4 je:
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial
                     ->arguments:
                        EXPRESSION:
                        ->kind = intconstT
                        ->value = 4
                        ->next:
                     ->next:
                  ->next:
               ->next:
         ->second:
            STATEMENT:
            ->kind = expT
            ->expression:
               EXPRESSION:
               ->kind = callT
               ->function = MessageBoxA
               ->arguments:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
                  EXPRESSION:
                  ->kind = lvalueT
                     LVALUE:
                     ->kind = identifierT
                     ->name = faktorial
                  ->next:
                  EXPRESSION:
                  ->kind = stringconstT
                  ->value = USL Script
                  ->next:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
               ->next:
   ->next:
Checking symbols...
Declared formal 'cislo'. Line: 4
Declared variable 'faktorial'. Line: 14
SCRIPT:
->toplevels:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: MessageBoxA
      ->kind = externT
      ->library = user32.dll
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: Faktorial
      ->kind = localT
      ->declaration:
         DECLARATION:
         ->kind = formalD
         ->name = cislo
         ->next:
      ->statements:
         STATEMENT:
         ->kind = ifelseT
         ->condition:
            EXPRESSION:
            ->kind = '>'
            ->left:
               EXPRESSION:
               ->kind = lvalueT
                  LVALUE:
                  ->kind = identifierT
                  ->name = cislo
               ->next:
            ->right:
               EXPRESSION:
               ->kind = intconstT
               ->value = 0
               ->next:
            ->next:
         ->ifbody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = '*'
                  ->left:
                     EXPRESSION:
                     ->kind = lvalueT
                        LVALUE:
                        ->kind = identifierT
                        ->name = cislo
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial(1)
                     ->arguments:
                        EXPRESSION:
                        ->kind = '-'
                        ->left:
                           EXPRESSION:
                           ->kind = lvalueT
                              LVALUE:
                              ->kind = identifierT
                              ->name = cislo
                           ->next:
                        ->right:
                           EXPRESSION:
                           ->kind = intconstT
                           ->value = 1
                           ->next:
                        ->next:
                     ->next:
                  ->next:
         ->elsebody:
            STATEMENT:
            ->kind = scopeT
            ->statements:
               STATEMENT:
               ->kind = returnT
               ->expression:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 1
                  ->next:
   ->next:
   TOPLEVEL:
   ->function:
      FUNCTION:
      ->name: main
      ->kind = localT
      ->declaration:
      ->statements:
         STATEMENT:
         ->kind = sequenceT
         ->first:
            STATEMENT:
            ->kind = declstmT
            ->declaration:
               DECLARATION:
               ->kind = variableT
               ->identifiers:
                  IDENTIFIER:
                  ->name = faktorial
                  ->next:
               ->initialization:
                  EXPRESSION:
                  ->kind = '+'
                  ->left:
                     EXPRESSION:
                     ->kind = stringconstT
                     ->value = Faktoriál 4 je:
                     ->next:
                  ->right:
                     EXPRESSION:
                     ->kind = callT
                     ->function = Faktorial(1)
                     ->arguments:
                        EXPRESSION:
                        ->kind = intconstT
                        ->value = 4
                        ->next:
                     ->next:
                  ->next:
               ->next:
         ->second:
            STATEMENT:
            ->kind = expT
            ->expression:
               EXPRESSION:
               ->kind = callT
               ->function = MessageBoxA(4)
               ->arguments:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
                  EXPRESSION:
                  ->kind = lvalueT
                     LVALUE:
                     ->kind = identifierT
                     ->name = faktorial
                  ->next:
                  EXPRESSION:
                  ->kind = stringconstT
                  ->value = USL Script
                  ->next:
                  EXPRESSION:
                  ->kind = intconstT
                  ->value = 0
                  ->next:
               ->next:
   ->next:
Type Checking...
Calculating resources...
Function 'Faktorial' has 4 labels and 1 variables. 1 variables are visible in main scope.
Function 'main' has 0 labels and 1 variables. 1 variables are visible in main scope.
Coding...
Emitting...
Assembling...
Function Faktorial(1), inputs: 1, outputs: 0, code size: 63
Function main(0), inputs: 0, outputs: 0, code size: 45