Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Cpy provides you a way to write Python codes in C syntax!
Python GAP
branch: master

up to date

latest commit f014d1af0b
ideawu authored
Failed to load latest commit information.
antlr3 init repo
samples init repo
.gitignore udpate
Eval.g init repo
Eval.py up to date
Eval.tokens init repo
Expr.g up to date
Expr.tokens init repo
ExprLexer.py init repo
ExprParser.py init repo
Makefile init repo
README.md update README.md
Readme.txt init repo
cpy init repo
cpy.bat init repo
cpy.py up to date
engine.py up to date
test.cpy init repo

README.md

Cpy - A C-like scripting language

Cpy is the real general purposed dynamic c-like syntax scripting language. Cpy provides you a way to write Python codes in C syntax!

Hello World!

// file: hello.cpy
printf("Hello World!\n");

$ cpy hello
Hello World!
$

Reading from stdin

// file: stdin.cpy
print "input 'q' to quit:";

while(true){
    printf("> ");
    line = stdin.readline();
    line = line.strip().lower();
    if(line == 'q'){
        print "bye.";
        break;
    }else{
        print 'your input:', repr(line);
    }
}

classes and functions

class A{
    public a = 0;
    public static s = 1;

    function init(a){
        this.a = a;
        print 'A init', a;
    }

    function f(a, b=1){
        return a + b;
    }
}

print A.s; // 1
a = new A(1); // A init 1
print a.f(1, 2); // 3

Reusing Python codes

import time; // Python's built-in time module
time.sleep(1);

C-like vs Pythonic

Whitespace indentation to delimit block is bad

Python’s syntax is said to be clear and elegant. It is good for small piece of codes, but not good for more than 100 lines of codes. I usually mis-understand the number of indents when first glance at a more than 10 lines block of codes after an if.

And TAB vs SPACE is particularly annoying!

The curly braces are quit clear and elegant, most people feel comfortable at curly braces.

i++

i++ is very usefull.

"this" is that!

Python requires you to put an unnecessary “self” as the first argument of a function definition in a class, but to omit it when invoking that function. What’s the meaning of that? It’s total garbage.

Confusing expression of calling function in parent class

Couldn’t it be as simple as “parent.f()”? Why multi-inheritance?

Useless lambda expression

The lambda body can only be a single expression – useless! Ah-ha, now you are regret for discriminating curly braces, aren’t you? Look at the really ELEGANT syntax of JavaScript’s anonymous function.

Unwelcomed None/True/False

Just let those be: null, true, false. “i is None” is no more elegant than “i == null”.

Implicit static variable(Non-primative default argument)

Non-primative default arguments in function definitions are implicitly static, that cause many hidden bugs by mistake.

Cpy – The comfortable way to write Python codes in C syntax

Cpy is a C-like scripting language. Cpy codes are converted into python code first, then run by Python at the same time.

Relax and enjoy!

Something went wrong with that request. Please try again.