ultimatepp/uppdev/EscDev/test.esc
cxl 351994a6cc Adding uppdev....
git-svn-id: svn://ultimatepp.org/upp/trunk@328 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2008-08-15 08:36:24 +00:00

362 lines
No EOL
4 KiB
Text

Sort()
{
x = "ahoj kamarade to je ale hlina";
LOG(sort(x));
LOG(order(x));
LOG(reverse(x));
}
Subscript(x)
{
LOG(@(x) { return 2 * x; } (x));
}
Counter(x = 0)
{
.i = x;
#.Get() {
return .i;
}
#.Next() {
.i++;
}
}
Val(x)
{
return 3 * x;
}
Defaults(x = Val(0), y = Val(1))
{
LOG("params " + to_string(x) + ", " + to_string(y));
}
Defs()
{
Defaults();
Defaults("p1");
Defaults("p2", "p3");
}
Object()
{
Counter()! x;
LOG(x.Get());
x.Next();
LOG(x.Get());
x.Next();
LOG(x.Get());
}
ForIn()
{
x.alfa = "ahoj";
x.beta = "kamarade";
for(j = 2; j--;) {
for(i in x) {
LOG(i);
LOG([ x[i] ]);
}
x = "Hello world";
}
}
sum(...)
{
sum = 0;
for(i in argv)
sum += argv[i];
return sum;
}
main1()
{
Object();
}
as_string(n)
{
r = [];
while(n) {
r = [ n % 10 + '0' ] + r;
n = int(n / 10);
}
return r;
}
sieve()
{
N = 100000;
sieve = N * [1];
for(i = 2; i < N; i++) {
if(sieve[i]) {
print(as_string(i) + "\n");
for(j = i; j < N; j += i)
sieve[j] = 0;
}
}
}
bench()
{
N = 10;
M = 6144;
m = [];
m[M] = 0;
for(j = 0; j < N; j++)
for(i = 0; i < M; i++)
m[i] = i;
}
fn1(x)
{
LOG("fn1: " + to_string(x));
return x;
}
fn2(x)
{
LOG("fn2: " + to_string(x));
return x;
}
skipexp()
{
b = 1;
LOG(b ? fn1("foo") : fn2("bar"));
LOG(fn1(1) || fn2(1) || fn1(2) ? "TRUE" : "FALSE");
LOG(fn1(1) && fn2(0) && fn1(2) ? "TRUE" : "FALSE");
LOG((b ? fn1(1) : fn1(20)) + 10);
}
main()
{
skipexp();
}
Test() {
LOG(@(x) { return 2 * x; } (20));
:Counter = @(x) {
.i = x;
.Get = @() { return .i; };
.Next = @() { .i++; };
};
a.init = :Counter;
a.init(10);
LOG(a.Get());
a.Next();
LOG(a.Get());
Counter(10)! q;
LOG(q.Get());
q.Next();
LOG(q.Get());
LOG(5 * "ahoj");
LOG(50 * "ahoj");
LOG(0 * "ahoj");
LOG(-1 * "ahoj");
LOG(7 * "ahoj");
text = "0123456789";
for(i in text)
LOG(i);
x = {};
x.alfa = void;
for(i in x)
LOG(i);
for(i = 0; i < 10; i++)
LOG(i);
return;
o.x = 1;
o.get = @() { return .x; };
o.next = @() { .x++; };
w = o;
LOG(w.get());
w.next();
LOG(w.get());
text = "0123456789";
text.text = text;
text[] = text;
LOG(text);
return;
x = {};
x.x;
:test = @() {
return @() { return 500; };
};
LOG(:test);
LOG(test());
LOG(test()());
x.x;
alfa = @(x) { return 3 * x; };
LOG(alfa(123));
fn Counter(x) {
.i = 0;
.next = @() {
i++;
};
.get = @() {
return i;
};
deffn .get() {
return i;
}
}
Counter:: x(10);
fn Counter() {
x.i = 0;
x.next = @() {
.i++;
};
x.get = @() {
return i;
};
return x;
}
text[] = 'a';
text << "qwert";
LOG(text);
LOG(text[3,]);
LOG(text[:3]);
LOG(text[1, 3]);
LOG(text[1:3]);
LOG(text[,3]);
LOG(text[3:]);
text[-2] = 'x';
LOG(text);
text = "Hello world";
LOG([ text[-1] ]);
LOG([ text[-2] ]);
LOG([ text[-3] ]);
s.a = 123;
LOG(s.a);
x = [1, 2, 3];
x[1] = "ahoj";
LOG(x);
x[1][1] = 'x';
LOG(x);
b.alfa = x;
LOG(b);
b.beta.gama = b;
LOG(b);
x = "super";
x[] = 'x';
LOG(x);
x[] = "xxx";
LOG(x);
for(i = 0; i < 10; i++)
x = x + x;
:fact = @(x) { if(x > 1) return x * fact(x - 1); return 1; };
for(i = 0; i < 30; i++)
LOG(fact(i));
LOG(x);
LOG("Test!");
x = "beta";
LOG(x);
x = 123;
LOG(x);
x++;
LOG(x);
x *= 3.1242345;
LOG(x);
x = [1, 2, 3, 4, 5];
LOG(x);
x = x + x;
LOG(x);
LOG(x[3]);
LOG(x[5]);
x = { "a":1, "b":2 };
LOG(x);
LOG(x["b"]);
LOG(x["bb"]);
return;
x = "beta";
x << "alfa";
x = "hello";
x += [ x ];
x += x;
x << x;
x = x;
print(x);
:result = x;
x = [ 123 ];
x << [ x ];
x = x;
x.alfa.beta = x;
return;
x[1:7] = []
x[1,7] = []
//y.alfa = y;
x[4] = x;
//x.alfa.beta = x;
fn Point(x, y) {
return { 'x':x, 'y':y, };
}
x["alfa"] = 12;
}