okp
okp (pronounced like okapi) is a python script that processes .cpy files and generates C++ code.
if the following code makes you happy, okp might be for you:
def weird_multiply(int a, b):
for i = 0; i < b; i++:
a *= b
return a
def main():
int a, b
read a, b
print "WEIRD MULTIPLIED:", weird_multiply(a, b)
status
okp is not a good idea for anyone to use, but try it anyways and let me know what you've built
installation
pip install okp
motivation
i saw vrsperanza's CPY and the light hit me: a language that looks like python but compiles like C. i decided i want to write programs in it. okp is my attempt to write a pre-processor like CPY but in python.
usage
# print c++ source
okp -p file.cpy
# compile code
okp file.cpy
# compile multiple cpy files together
okp file1.cpy file2.cpy
# specify the executable file
okp file1.cpy -o ./a.out
# compile and run
okp file.cpy -r
# compil and run (stdin is passed to the binary)
okp file.cpy -ri < input.txt
# compile a hybrid project
okp file1.h file2.cpp file3.cpy -o ./a.out
features
from CPY
Features that okp implements from CPY are:
- indentation based bracketing
- automatic parenthesization of conditionals
- auto variable declarations
- return multiple values from functions
- automatic variable destructuring
forandrofloop shorthand (to enable, use-forand-rofflags)knownkeyword#rawinclude directive- disabling auto variable declarations (-ni flag)
- compilation of hybrid projects
Features that are not implemented yet:
- export project + Makefile
original
Some original features of okp to make it look more pythonic are:
defkeyword before function namesblockkeyword for creating blockspasskeyword for no-opsprintandraw_inputkeywordsselfkeyword- lines that start with IGNORE_CHAR are not pre-processed
- triple backticks for multi-line escapes
further resources and similar projects
Metadata
Release files for okp 0.0.54
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| okp-0.0.54.tar.gz | 22.7 kB | Details |
Release files / okp-0.0.54.tar.gz
| Download URL | okp-0.0.54.tar.gz |
|---|---|
| Size | 22.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea4a3cb30308ee810cc62e4bb5e570391633d67c704248740b14ecdfcd4f3b03
|
|
BLAKE2b-256 checksum How to use checksums |
f41591e3357b3e76a19b823d36000947653cedb4d25e377a5b272abd80e257e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.25.1 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.8.10
|