Ikkljoup

Ikkljoup or Ikl for short, by User:XFire35.
==Notes==
Comments are created in the following way:
 // Creates a comment which continues to the end of the line
 \\ Code \\ Creates a comment block, all code within is ignored
Variable assignments use a ':'
 var foo: 'bar';
All statements must end with a ';'
 var foo: 'bar';
To use a variable after declaration, use a '$'
 $foo: 'bar1';
All strings are encapsulated with a pair of apostrophes:
 'This is a string'
Numbers can be:
 4
 4.00
 -4.00
==Variables==
Ikl has three variable declarations, "var", "con" and "loc". "var" creates a variable which may be changed at any point. "con" creates a variable which may only be destroyed, it's value cannot be modified. "loc" creates a variable with local scope.
 var foo: 'bar';
 con foo: 'bar';
 loc foo: 'bar';
Within Ikl, there are there several types: string, number, table, boolean and object.
 var foo: 'bar';
 var foo: 1;
 
 var foo: {'foo','bar'}; // To create a list
 var foo: {'foo':'bar'}; // To create an associated list
 
 var foo: t // To create true boolean
 var foo: f // To create false boolean
 
 obj foo: {.a:m[];};
==Mathematical Operatorations==
 +[a b n]; // Adds values a, b, n...
 -[a b n]; // Subtracts values a, b, n...
 *[a b n]; // Multiplies values a, b, n...
 /[a b n]; // Divides values a, b, n...
 ^[a b n]; // Exponents values a, b, n...
 
 ==[a b]; // Returns 't' if a and b are equal
 /=[a b]; // Returns 't' if a and b are not equal
 >[a b]; // Returns 't' if a is greater than b
 <[a b]; // Returns 't' if a is less than b
 >=[a b]; // Returns 't' if a is greater than or equal to b
 <=[a b]; // Returns 't' if a is less than or equal to b
 
 ++[a b n]; // Adds values a, b, n... together
 if Strings: ++['Foo' 'bar']; gives 'foobar'
 if numbers: ++[1 4]; gives 14
 if strings and numbers: ++['Foo' 1 'bar']; gives 'Foo1bar'
 if tables, adds last table to the second from last and so on until the end is reached
 if object, adds the classes within the last object to the second from last object and so on until the end is reached
==Functions==
Functions are created in the following way:
 <[function] code>;
==Function Library==
===Standard Functions===
 usr:state[msg]; 	 // States contents of msg
 state: msg; 	 // May alternatively be used
 usr:read[$var]; // Reads user input and assigns to $var
===Type Functions===
 type:ask[$var]; 	 // Provides the type of $var
 type:num[$var]; 	 // Converts $var to number
 type:str[$var]; 	 // Converts $var to string
===String Functions===
 string:find[$str.arg]; // Finds occurrences of arg in $str and returns count
 string:sub[$str.arg.rep]; // Returns string with instances of arg replaced with rep in $str
 
 string:size[$str]; // Returns length of $str
 string:low_case[$str]; // Changes all characters of upper-case nature to lower case in $str
 string:cap_case[$str]; // Changes all characters of lower-case nature to upper case in $str
===Table Functions===
 table:size[$tab];	 // Returns quantity of indexes in $tab
 table:put[$tab.val.pos]; // Insert val in $tab at position pos. Ommit pos to add val to end of $tab
 
 table:rem[$tab.pos]; // Remove position pos from $tab. Ommit pos to remove last value in $tab
 table:com[$tab.sep]; // Compress table with sepeator between values, sep
===File Functions===
 file:open[file.mode];
 file:close[file];
 file:write[file];
==Program Flow==
 self:main; // Returns to the main function
 self:func; // Runs function named 'func';
 self:break; // Breaks current function and returns to the main function
 self:exit; // Stops the program, exits with 0
 
 me:return[val]; // Returns value 'val'
 me:break; // Breaks current loop
 
 other:func; // Runs functionn 'func' from 'other' module
Category:Languages