TranslatorΒΆ

One major goal for StaticPy is to generate pure C++ code. This is done by calling a translator.

import inspect
from staticpy.translator import BaseTranslator

def fn(n: int) -> int:
    s: int = 0
    for i in range(n):
        s += i
    return s

source = inspect.getsource(fn)
translator = BaseTranslator()
block = translator.translate(source)

print("\n".join(block.translate()))

This prints out

int fn(int n) {
  int s = 0;
  for(int i = 0; i < n; i++) {
    s += i;
  }
  return s;
}