AnyaBASIC 0.5.1
“The little toy language that could.”
AnyaBASIC is a portable Interpreted Programming Language made in Java and out of
boredom.
It has a syntax similar to BASIC with a bit of C and PASCAL thrown in.
While I consider this language a “Toy Language”, it evolved into something that’s
capable of doing something more(games, graphics, etc).
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.5.1
(Binary and Source)
http://rel.phatcode.net/junk.php?id=157
Uses LWJGL + PNGDecoder as graphics backends.
Not sure if this type of project qualifies as a “Game” since it’s a Programming Language. You can, however, you can make games with it.
Changelog:
0.1.0 (03-08-16)
Initial release.
04-04-16
* Ditched the old line based-interpreter
* Added interfaces for AST
* Recoded the parser
* Added AST
04-05-16
* re-implemented while:loop
* one statement per block only
04-06-16
* nested AST. Main AST ->while :: while AST -> blockAST
* nested loops
* IF-ELSE construct
* REPEAT loop
* FOR loop
* Support for single line IF-ELSE, FOR and REPEAT statements
04-07-16
* Single variable Functions
* Multi variable Functions
* User defined Sub/Function ( can only be called as a statement and parameters are not working yet )
04-08-16
* Java2D graphics backend
* OpenGL graphics backend 'cuz setcolor() refused to work in Java2D
* Graphics primitives
* Keyboard support
04-10-16
* Refactored code
* Graphics Print
* Graphics Image
* Timer
04-11-16
* format(string, number) function
* User defined functions as part of an expression
* Function parameters
04-12-16
* String variables
* String concatenation
* String comparisons
* Arrays(both definition, assignment and access)
* Swap function
04-13-16
* NOT, AND, OR
* windowClosed
* New syntax for DrawImage
* DrawTransformedImage
04-14-16
* Documentation
* New syntax for DrawLine
0.2.0 04-15-16
* Comments
* Fixed the array[multi-expression] bug
04-16-16
* GetSubImage()
* int() cast
* BoxIntersects()
* CircleIntersects()
* SizeOf()
04-17-16
* Better error reporting
04-18-16
* Break statement
04-19-16
* Structs
04-20-16
* Array of Structs
* VAR so that definition and assignment is properly delineated for safety
* Better runtime error handling
0.3.0 04-21-16
* Cleaned up how Functions are handled (Definition, Execution and Expression)
* Boolean Conditions now support parentheses
* Better runtime error handling
04-21-16
* Cleaned up how Functions are handled (Definition, Execution and Expression)
* Boolean Conditions now support parentheses
* Input statement
04-22-16
* var max = 10 var array[max] support
* SetBlendMode() for glowing sprites
* DrawFancyLine()
* Free()
* DrawScrolledImage()
* SubString()
* ValAscii()
04-27-16 (got a bit lazy... LOL)
* 2D array support for both vars and user types
* sizeOf(arrayName, dimension)
* Function params are local now.
04-28-16(0.4.3)
* StringLength(stringname)
* Screen() can have an extra 3rd argument to set vsynch(1 - On, 0 - off)
* ScreenFlip() can have a single param to set synch value(60 if absent)
* SoundInit(), SoundPlay(), SoundPause(), SoundStop()
05-05-16
* val()
* isDigit()
* isLetter()
* lowerCase()
* upperCase()
05-10-16
* Functions as paramenters and arguments
* functions can now return a Type, an Array, or an Array of Types.
* split(string) function
* GFX and Sound contexts are destroyed when there's a runtime error.
05-15-16(0.5.1)
* Associative arrays Map< String, value >
* ContainsKey(mapName, keyName)