// Increments global program stack information
 private void IncreaseProgramStack()
 {
     Depth++;
     LocalOffsets.Push(LocalOffset);
     ParameterOffsets.Push(ParameterOffset);
     LocalOffset     = GlobalConfiguration.BaseLocalOffset;
     ParameterOffset = GlobalConfiguration.BaseParameterOffset;
 }
        // Decrements global program stack information
        private void DecreaseProgramStack()
        {
            OutputThreeAddressCode($"ENDP {CurrentFunction.Lexeme}{Environment.NewLine}");
            SymbolTable.OutputSymbolTable(Depth);
            SymbolTable.DeleteDepth(Depth);
            Depth--;

            if (!CommonTools.SemanticAnalysisDebug)
            {
                CurrentFunction.LocalsSize     = Math.Abs(LocalOffset) - Math.Abs(GlobalConfiguration.BaseLocalOffset);
                CurrentFunction.ParametersSize = Math.Abs(ParameterOffset) - GlobalConfiguration.BaseParameterOffset;
            }

            LocalOffset     = LocalOffsets.Pop();
            ParameterOffset = ParameterOffsets.Pop();
        }