OOLANG

OOLANG(Object Oriented LANGuage), simple stack based esoteric programming language, but with object oriented syntax.
== Examples ==
===Hello, World!===
Hello, World!.println;
===99 bottles of beer===
i.99.set;
t.0.set;
i.2int;
t.2int;
start.label;
i!=t.7.17.if;
i.dec;
i.get;
%sbottles of beer on the wall,%s.print;
i.get;
%sbottles of beer%d%n.print;
Take one down and pass it around,%s.print;
i.get;
%sbottles of beer on the wall%n.print;
start.goto;
No more bottles of beer on the wall, no more bottles of beer%d%n.print;
Go to the store and buy some more, 99 bottles of beer on the wall%d.print;
===Counts to ten===
i.0.set;
t.10.set;
4.rem;
start.label;
i!=10.6.11.ifa;
i.inc;
i.get;
%s.print;
start.goto;
=== Outputs input ===
var.Input please.0.in;
var.get;
=== Truth-machine ===
start.label;
var.Input.0.in;
var==0.4.7.ifa;
0.print;
.halt;
var==1.9.9.ifa;
1.print;
start.goto;
=== Powering number ===
Using JavaScript.
b.Input firts..in;
v.Input second..in;
a.Math%dpow(stack["b"],stack["v"]).evjs;
a.get;
=== Self-interpreter ===
a.Input code:..in;
a.eval;
=== Deadfish interpreter ===
In this interpreter added instruction "h", to end execution.
x.0.set;
a.label;
a.Input code:..in;
x>256.31.5.ifa;
x<0.31.7.ifa;
a==i.9.12.ifa;
x.inc;
a.goto;
a==d.14.17.ifa;
x.dec;
a.goto;
a==s.19.22.ifa;
x.x.mul;
a.goto;
a==o.24.27.ifa;
x.get;
a.goto;
a==h.29.29.ifa;
.halt;
x.0.set;
a.goto;
Created by Andry Kvart.rem;
=== InterpretMe interpreter ===
start.label;
code.Input..in;
code==*.4.6.ifa;
start.goto;
.halt;
== Docs ==
=== Basic ===
Command syntax in this language: param1.param2.param3.command;
=== I/O ===
Special char allowed in string: %d = symbol "." | %n = newline | %s - space | %t - tab | %c - symbol ";" | %% - symbol "%"
str.print print string on display
str.println prints line on display
var.message.message2.in input data and put it in var(using javascipt prompt)
=== Variables ===
var.value.set setting variablex
var.get prints value of variable to screen
var.inc increments value of variable
var.dec decrements value of variable
var.2int converts value of variable to integer
var.2str converts value of variable to string
var1.var2.add var += var2
var1.var2.sub var -= var2
var1.var2.mul var *= var2
var1.var2.div var /= var2
var.str.delim.strsplit splits value of var by delim in var<
var.var1.var2.strcat contacts value of var1 and var2 and puts its in var
var.var1.strlen getting length of value of var1 and puts its into var
=== Goto ===
name.label creates label
name.goto jumps to label
=== Arrays ===
name.length.array creating array
var.name.elem.aget puting value from array to var
name.elem.agets puting value from array to screen
name.elem(var).var.agetv getting value from array name and puts its into var
name.elem.var.aset setting elem value from var in array
name.elem.val.asets setting elem value in array
name.elem.var.asetv setting elem value taked from variable in array
name.elem.a2int converts value of array elem to integer
name.elem.a2str converts value of variable to string
var.array.arrlen getting length of array and puts its into var
=== Conditional ===
conditional.lineif.lineelse.if compare variables value(e.x. a==b) and gotos to lineif if true, and to lineelse if false
conditional.lineif.lineelse.ifa compare variable and value(e.x. a==5) and gotos to lineif if true, and to lineelse if false
conditional.labelif.labelelse.ifg compare variables value(e.x. a==b) and gotos to labelif if true, and to labellse if false
=== Special ===
text.halt end program
none.gl printing current line to console(for debuging)
js.evljs evaling javascript and printing result
var.js.evjs evaling javascript and puting result into var
=== Comment ===
comment.rem one line comment
== It's turing complete? ==
Yes, because we can easily use javascript api.
Very simple example: 
a.5.set;
b.5.set;
Using javascript!.rem;
out.stack["a"]+stack["b"].evjs;
out.get;
== External resources ==
* 
Category:Languages
Category:2015
Category:Stack-based
Category:Turing complete
Category:Implemented