This is a continuation of Part VI. This time, we will be adding the
FOR-NEXT loop and unary negation.
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
This is a continuation of Part IV. In Part V we will add support for parentheses in mathematical expressions, add the
END statements, and implement the remaining program storage statements:
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.
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.
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.
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