A basic engine I felt like making like making for fun.
QuickBASIC
1
12 commits
updated Oct 16, 2026
A modern BASIC interpreter written in BASIC.
BASICALLY is an experimental programming language project focused on structured BASIC syntax, simplicity, and eventually creating small 2D games.
Early development. BASICALLY 0.7 introduces WHILE / WEND loops,
building on BASICALLY 0.6's conditional branching with IF, ELSEIF,
and ELSE.
PRINT statements for text and variable valuesDIM=, <>, <, >, <=, and >=IF / END IF conditional blocksELSE alternative branchesELSEIF conditional branchesWHILE / WEND loopsWHILE and WEND statementsDIM playerHealth AS INTEGER
DIM playerGold AS INTEGER
playerHealth = 75
playerGold = 0
IF playerHealth > 100 THEN
PRINT "Expert player!"
ELSEIF playerHealth > 0 THEN
PRINT "Player is alive!"
IF playerGold > 0 THEN
PRINT "Player has gold!"
ELSE
PRINT "Player needs more gold."
END IF
ELSE
PRINT "Game over!"
END IF
DIM count AS INTEGER
count = 1
WHILE count <= 5
PRINT count
count = count + 1
WEND
Expected output:
1
2
3
4
5
Program finished.
fbc)Compile the interpreter:
fbc basically.bas -x basically
Run a BASICALLY program:
./basically your-program.bas
The tests/ directory contains BASIC programs for testing interpreter
features.
Run the regression tests:
./basically tests/else.bas
./basically tests/elseif.bas
./basically tests/nested-conditions.bas
./basically tests/while.bas
./basically tests/nested-while.bas
./basically tests/while-conditions.bas
./basically tests/unmatched-while.bas
./basically tests/unmatched-wend.bas
The unmatched-loop tests should report errors rather than execute normally.
BASICALLY is an experimental project, and contributions, bug reports, feature ideas, and testing are welcome.
See CONTRIBUTING.md for contribution guidelines.
BASICALLY is released under the MIT License.
A basic engine I felt like making like making for fun.
QuickBASIC
1
12 commits
updated Oct 16, 2026
A modern BASIC interpreter written in BASIC.
BASICALLY is an experimental programming language project focused on structured BASIC syntax, simplicity, and eventually creating small 2D games.
Early development. BASICALLY 0.7 introduces WHILE / WEND loops,
building on BASICALLY 0.6's conditional branching with IF, ELSEIF,
and ELSE.
PRINT statements for text and variable valuesDIM=, <>, <, >, <=, and >=IF / END IF conditional blocksELSE alternative branchesELSEIF conditional branchesWHILE / WEND loopsWHILE and WEND statementsDIM playerHealth AS INTEGER
DIM playerGold AS INTEGER
playerHealth = 75
playerGold = 0
IF playerHealth > 100 THEN
PRINT "Expert player!"
ELSEIF playerHealth > 0 THEN
PRINT "Player is alive!"
IF playerGold > 0 THEN
PRINT "Player has gold!"
ELSE
PRINT "Player needs more gold."
END IF
ELSE
PRINT "Game over!"
END IF
DIM count AS INTEGER
count = 1
WHILE count <= 5
PRINT count
count = count + 1
WEND
Expected output:
1
2
3
4
5
Program finished.
fbc)Compile the interpreter:
fbc basically.bas -x basically
Run a BASICALLY program:
./basically your-program.bas
The tests/ directory contains BASIC programs for testing interpreter
features.
Run the regression tests:
./basically tests/else.bas
./basically tests/elseif.bas
./basically tests/nested-conditions.bas
./basically tests/while.bas
./basically tests/nested-while.bas
./basically tests/while-conditions.bas
./basically tests/unmatched-while.bas
./basically tests/unmatched-wend.bas
The unmatched-loop tests should report errors rather than execute normally.
BASICALLY is an experimental project, and contributions, bug reports, feature ideas, and testing are welcome.
See CONTRIBUTING.md for contribution guidelines.
BASICALLY is released under the MIT License.