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` and `rof` 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 names
* `block` keyword for creating blocks
* `pass` keyword for no-ops
* `print` and `read` keywords
* lines that start with IGNORE_CHAR are not pre-processed
* triple backticks for multi-line escapes
## further resources and similar projects
* [CPY github](https://github.com/vrsperanza/CPY)
* [what if c looked more like python](http://cpprocks.com/what-if-c-looked-more-like-python-or-coffeescript/)
* [coffee++](https://bixense.com/coffeepp/)
* [MyDef](https://github.com/hzhou/MyDef)
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` and `rof` 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 names
* `block` keyword for creating blocks
* `pass` keyword for no-ops
* `print` and `read` keywords
* lines that start with IGNORE_CHAR are not pre-processed
* triple backticks for multi-line escapes
## further resources and similar projects
* [CPY github](https://github.com/vrsperanza/CPY)
* [what if c looked more like python](http://cpprocks.com/what-if-c-looked-more-like-python-or-coffeescript/)
* [coffee++](https://bixense.com/coffeepp/)
* [MyDef](https://github.com/hzhou/MyDef)
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
okp-0.0.2.tar.gz
(14.6 kB
view hashes)