an compiler for .cpy files
Project description
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
for
androf
loop shorthand (to enable, use-for
and-rof
flags)known
keyword#raw
include 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:
def
keyword before function namesblock
keyword for creating blockspass
keyword for no-opsprint
andraw_input
keywordsself
keyword- lines that start with IGNORE_CHAR are not pre-processed
- triple backticks for multi-line escapes
further resources and similar projects
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file okp-0.0.54.tar.gz
.
File metadata
- Download URL: okp-0.0.54.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea4a3cb30308ee810cc62e4bb5e570391633d67c704248740b14ecdfcd4f3b03 |
|
MD5 | 6e39e7f9927873367db3a6598aea8a4d |
|
BLAKE2b-256 | f41591e3357b3e76a19b823d36000947653cedb4d25e377a5b272abd80e257e9 |