AnyaBASIC

AnyaBASIC is a portable Interpretered Programming Language made out of boredom after seeing 
a post about an esolang made of emoticons on the Programmers,Developers Facebook Group.

While I consider this language a "Toy Language"(I made it in just a span of 4 days with a 
total of like 25 hours of coding time), the things you could do with it
seems endless.  It's also a language whose keywords are in English so it should
be a good language to use for teaching kids how to program.



Release 0.1.0

Author: Relminator (Richard Eric M. Lope)
            http://rel.phatcode.net
            email: vic_viperph@yahoo.com

Language - Java



AnyaBASIC uses the MIT license. That means it's free to use for either non-commercial
or commercial purposes.
See LICENSE.txt for full license.


Features: 

    -Expressions
    -Boolean Expressions
    -Variables
    -Literal strings
    -While loop construct(can be nested)
    -If-elseif-else construct(can be nested)
	-Code blocks ( 
    -Math functions


Commands:
*All commands are not case-sensitive.

     >print( expression | number | string )
         - Prints its parameter adding a newline character.
     >write( expression | number | string )
         - Prints its parameter without a newline character at the end.
     >delay( expression | number | string )
         - Prints its parameter adding a newline character.

		 
Constructs:
*All constructs are not case-sensitive.
*Can be nested.
*Statements should be between "start" and "end" blocks.
 
    >while
	    -While specifies that a loop block will continue if the condition following it evaluates as true. 
		 This condition is checked during each loop iteration (taken from freebasic's documentation)
         Syntax:
            while(<condition>)
            start
			    <statement block>
            end

   >if-then-elseif-then-else
	    -If...then is a way to make decisions. 
		 It is a mechanism to execute code only if a condition is true, and can provide alternative code 
		 to execute based on more conditions. (taken from freebasic's documentation)
		-The elseif/else clauses can either be present or absent. Construct can have multiple elseif clauses.
         Syntax:
            if(<condition>) then
            start
			    <statement block>
            end
          <elseif(<condition>) then>
            start
			    <statement block>
            end
          <else>
            start
			    <statement block>
            end

			
Intrinsic Functions:
*All intrinsic functions return a double

sin(expression | number |)  - returns the trigonometric sine of the expression or number. Angles are in radians.
cos(expression | number |)  - returns the trigonometric cosine of the expression or number. Angles are in radians.
tan(expression | number |)  - returns the trigonometric tangent of the expression or number. Angles are in radians.
asin(expression | number |)  - returns the trigonometric arcsine of the expression or number. Angles are in radians.
acos(expression | number |)  - returns the trigonometric arcossine of the expression or number. Angles are in radians.
atan(expression | number |)  - returns the trigonometric arctangent of the expression or number. Angles are in radians.
ceil(expression | number |)  - returns the ceiling of a number disregarding the decimal part.
floor(expression | number |)  - returns the floor of a number disregarding the decimal part.
round(expression | number |)  - returns the rounded off value of the expression or number.
exp(expression | number |)  - returns the exp of the expression or number.
log(expression | number |)  - returns the log the expression or number. 
random(expression | number |)  - returns a random number between 0 and 1(1 is non-inclusive).
abs(expression | number |)  - returns the absolute value the expression or number.
sqrt(expression | number |)  - returns the square root the expression or number.
    	
			

How to run the sample codes:

Usage: AnyaBASIC.jar AnyaBasicMain <source.abs>

* Just type the above line on the terminal/console or
* Double click any of the "runxxxxxx.bat" for Windows users.  



Fun fact:

* The language supports "jejemon" and "tagalog" keywords. 
* Here are the english to jejemon to tagalog counterparts:

print  -> pr1n7   -> ilimbag
write  -> wr173   -> isulat
delay  -> d374y   -> bagalan
start  -> s74r7   -> umpisa
end    -> eynd    -> wakas
while  -> wh1l3   -> basta
if     -> eyp     -> kung
then   -> d3n     -> dapat
elseif -> el53eyp -> KungGanito
else   -> el53    -> PagIba


Thanks:

* Thanks to Jonelle H. Castañeda for the trick to force the console to open on windows.
* Thanks goes to Vincent Kyle Eusebio for the jejemon conversions.


Todo:
    Graphics Screen and graphics commands
	Android version.


Bugs:
- ELSE clause does not work when IF clause is true.
  In short, DON'T use ELSE. Emulate it with ELSEIF ( using the NOT of the IF clause) 

Changelog:

0.1.0 (03-08-16)
	
	
