micro(A) Interpreter by Aurel
freeware and open source basic-like programming language for Windows.
v10 ,updated 31.5.2023
(c) Copyright By AurelSoft
Compiled with o2compiler -> Oxygen Basic by Charles Pegge
------------------------------------------------------------------
Because of security reasons source code aviable by request!
------------------------------------------------------------------
more INFO on:
http://basic4us.epizy.com
email : aurelw.wiz@gmail.com
------------------------------------------------------------------
>>> ALL EXAMPLES TESTED <<< on 21.5.2023
------------------------------------------------------------------
LIST OF STATEMENTS
This is 0.10 version of micro(A)
You must use editor Aurel Edit to run programs.
VARIABLE TYPES :
var - float
str - string
ptr - int/pointer
ARRAY TYPES:
var[i] - float
str[i] - string
ptr[i] - int/pointer
....................................................
Variable must be first defined then you can use it.
Variable names and keywords are not case sensitive!
-----------------------------------
See demo programs !
-----------------------------------
minimal features ( more by request)
>>>numeric expression
>>>string expression
>>>relation expr
if:else:endif
>>>loops:
while:wend
>>>functions
func:endfn
>>>events
winMsg:endwm
variable types :........................................................
var a,b,c,d -> floating point variable type
------------------------------------------------------------------------
Str e,f,g,h -> string variable type
------------------------------------------------------------------------
Ptr i,j,k,l -> int|ptr variable type(read -> integer or pointer)
------------------------------------------------------------------------
math functions:........................................................
rnd : rnd(var|num) - floating point random number between 0...1
rand : rand(var|num) - random number from 0 to (var|num)->(read-> var or number)
sin : sin(var|num) - sinus of (var|num)
cos : cos(var|num) - cosinus of (var|num)
tan : tan(var|num) - tangens of (var|num)
atan : arc tangens
log : log(var|num) - logarithm of (var|num)
sqr : sqr(var|num) - square root of (var|num)
abs : abs(var|num) - absolute value of (var|num)
round : round(var|num) - rounded value of (var|num)
int : int(var|num) - integer value of (var|num)
string functions........................................................
strs : strs(var) - return string from numeric var
val : val(str) - return numeric value of string var
chrs(n) : chr(num) - return character
mstr : mid(str,pos,len) - return mid/sub-string from position
lstr : left(pos,len) - return left string
rstr : right(pos,len) - return right string
statements :...........................................................
print x , y ,var | QS -> print variable or quoted string on window
wColor r , g , b -> set window color
fColor r , g , b -> set front color
bColor r , g , b -> set back color(if is not defined then is wcolor)
pset x , y -> draw pixel on x,y position
circle x , y , r -> draw circle on x,y position with radius r
line x , y , x1 , y1 -> draw line from x,y position to x1,y1
rect x , y , w , h -> draw rectangle on x,y position
image handling:........................................................
image hendler require integer(ptr) type
for example : ptr imgh
LoadImg imgh,"image.bmp", type , width, heigth, colors
'show image on window
ShowImgT img,0,0,640,360
'to get image visibile you need to use swap
swap -> swap GDI back buffer to front buffer
labels:................................................................
label name -> label
goto name -> goto label
if var operator n|s Logic operator var operator n|s -> if statement
(if statement support '&'as AND operator and '|' as OR operator)
operators :..............................................................
< - less
> - greater
= - equal
! - not
Logic operator :......................................................
& - and
| - or
else - else statement
endif - end if
loops :................................................................
while var operator n|s
...
wend - while end
(while loop support '&' as AND operator and '|' as OR operator)
// function null type -> subroutine //
func myFn()
print 10,10,"my function"
endfn
// to call function just type name name with () like -> myFnNew() //
//testing window messages use : WinMsg msgName .. EndWm
new winApi functions added :
MouseX var , MouseY var
hWparam var , hLParam var
//before you use message name you must declare it by ptr statement
ptr wmMouseMove ,wmKeyDown
...
WinMsg msagName
...
...
EndWm
-------------------------------------------------
'inputBox (single line edit control)
INPUTBOX handle, x,y,w,h,"text"
SETTEXT handle, text|"text" <- variable or quoted
GETTEXT handle, text <- must be variable