#include <stdio.h>

typedef void * (PTR), ** (PPTR);
typedef char * (PCHAR);
typedef int (INT);

#define WR
#define RC
#define WR_PTR
#define WR_VB

#define let void

#define Run int main
#define Say printf

#define class typedef 
#define defp typedef 

class void F_STRTRANSFORMER (PCHAR WR, INT, PCHAR, INT); defp F_STRTRANSFORMER * PSTRTRANSFORMER;

let ToUpper (PCHAR WR Target, INT Target_length, PCHAR Source, INT Source_length)
{
  Say ("Hello, World!" "\n");
}

let FillPointer (PPTR WR Pointer, PTR Address) WR_PTR
{
  *Pointer = Address;
}

let CallFunction (PSTRTRANSFORMER Pointer)
{
  Pointer ("", 0, "", 0);
}

Run () 
{
  PSTRTRANSFORMER Pointer; FillPointer ((PPTR) &Pointer, (PTR) ToUpper);

  CallFunction (ToUpper);

  Say ("%d" "\n", Pointer);

  return 0;
}