This is a continuation of Part VI. This time, we will be adding the FOR-NEXT
loop and unary negation.
Continue reading
Category Archives: C++
BASIC Interpreter, Part VI
This is a continuation of Part V. In the previous section, we added support for the GOTO
statement. Since we don’t yet have any control logic, that is not very useful, but it does lay the infrastructure for one of the features we will add this time: IF-THEN
. We will also add the READ
and DATA
statements.
Continue reading
BASIC Interpreter, Part V
This is a continuation of Part IV. In Part V we will add support for parentheses in mathematical expressions, add the GOTO
and END
statements, and implement the remaining program storage statements: CATALOG
, SCRATCH
, and RENAME
.
Continue reading
BASIC Interpreter, Part IV
This is a continuation of Part III. This time we will add some mathematical operators, the ability to save and load programs, and support numerical variables.
Continue reading
BASIC Interpeter, Part III
This is a continuation of Part II. In this part, we will add support for numerical as well as string expressions, support multiple expression in a PRINT statement, and add functionality for deleting program lines.
Continue reading
BASIC Interpreter, Part II
This is a continuation of Part I. In Part II, we will add functionality to store and run BASIC programs, although still limited to the PRINT statement. We will also be adding a LIST statement to print out the currently stored program.
Continue reading
BASIC Interpreter, Part I
This is the first of a multi-post tutorial on using flex and Bison to write a programming language interpreter, in this case, BASIC. We’ll be using the 1964 BASIC manual from Dartmouth as the starting point language reference. All code is available at this GitHub repository: https://github.com/VisceralLogic/basic. The interpreter will be written in C++. Continue reading