Menu

Basin / News: Recent posts

Leaving the project for better times...

Minor changes for memory,etc.Still not fixed bug,when undefined local variable is used inside SUB,program still have a memory leak,SUB is still working in test mode (read:not working).There is too much work to do in the program to implement functions fully,so i am leaving it 'as is',because have no time now.Some of users,who may be want to use this sources,could return to revision without SUB at all.Just find first commit message in log about SUB statement.May be i will return to this program some day :) Good luck to all of you!

Posted by Michael Goldman 2010-10-30

Latest changes

1) Completely changed project tree.
Now runtime components in "runtime" folder,all data for intermediate
representation located in "intermediate" folder,parser and syntax checker
moved to "frontend",all sources needed by console interpreter moved to
folder "Interpreter",gui moved to "GUI/Qt/".

2) Program using one config.h file,that just copied to needed folder on
./configure command.
When program built on "make" command,it is moved to "compiled" folder
both with gui.
"make clean" will clean all created from compilation process files exept
program itself and gui.
"make distclean" cleaning all files created from compilation process
include program/gui.
If you type ./configure --help, you will see couple of options for disabling
or enabling program segments and some functionality.
These options are:
--disable-sdl-graphics Disable SDL library (default: enabled)
--disable-cmd-options Disable all command line options,exept --help
(default: enabled)
--disable-tracing Disable all tracing for interpreting program
(default: enabled)... read more

Posted by Michael Goldman 2010-03-02

Implemented syntax

/* This is syntax as it implemented in "basin" interpreter.
* ConstIntValue = ["+" | "-"] CONST_INT
*
* Condexpression = expression ("=" | "<>" | "<" | "<=" | ">" | ">=") expression
* expression = ["+" | "-"] Term { ("+" | "-") Term }
* Term = Factor { ("*" | "/") Factor }
* Factor = CONST_INT | CONST_FLOAT | CONST_STRING | QualIdent | "(" Expr ")"
* QualIdent = IDENT
* expressionlist = "(" expression { "," expression } ")"
* StatementList = SimpleStatement { ":" SimpleStatement }
------------------------------------------------------------------------------
LET [QualIdent] = [value]
------------------------------------------------------------------------------
PRINT [expressionlist][,expressionlist]
------------------------------------------------------------------------------
IF Condexpression THEN StatementList [ELSE StatementList]
or
IF condition THEN
StatementList(s)
[ELSE
StatementList(s)]
END IF
------------------------------------------------------------------------------
WHILE Condexpression
.
. StatementList(s)
.
WEND
------------------------------------------------------------------------------
DO
.
. StatementList(s)
.
WHILE Condexpression
(Here is need to be LOOP UNTIL instead of WHILE, may be i'll fix it later)
------------------------------------------------------------------------------
FOR QualIdent = range1 TO range2 [STEP interval]
.
. StatementList(s)
.
NEXT variable
range1 - expression
range2 - expression
interval - ConstIntValue
------------------------------------------------------------------------------
GOTO linelabel
(Where linelabel - numeric integer value)
------------------------------------------------------------------------------
DIM variablename (ConstIntValue[,ConstIntValue, ...]), ...... read more

Posted by Michael Goldman 2009-11-30
Monday.com Logo