Metadata-Version: 1.0
Name: okp
Version: 0.0.7
Summary: an compiler for .cpy files
Home-page: http://github.com/okayzed/okp
Author: okay
Author-email: okayzed+okp@gmail.com
License: MIT
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
        * `self` keyword
        * 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)
        
Platform: UNKNOWN
