Added initial support for READ and DATA statements.
authorMichael Welch <michaelgwelch@gmail.com>
Thu, 28 Dec 2006 04:08:03 +0000 (04:08 +0000)
committerMichael Welch <michaelgwelch@gmail.com>
Thu, 28 Dec 2006 04:08:03 +0000 (04:08 +0000)
commit905fcc16a9657d64f78d49b27099787bf64eab0c
treea694d79f64548eeb1d82443b0a4c5d4bd5ef4cf7
parent3211731042ec20b516f85e7e32b27113b15d1366
Added initial support for READ and DATA statements.

Lexer.cs:
Added support for reading Data token. Also we need to switch "modes" when reading a DATA statement. A DATA statement can have non-quoted strings. So I added a variable "readingData" which indicates if we are reading a DATA statement or not. Also needed to modify NextString to be able to read quoted and non-quoted strings.

mbasic.csproj:
Added Read.cs and Data.cs and data.mbas (to samples).

Parser.cs:
Added support for parsing DATA and READ statements. Also the constructor for Parser now takes a List<object>. This list is used to collect all the items found in DATA statements.

Program.cs:
Reserved the words READ and DATA. Also created a List<object> instance to pass into Parser constructor. Add a region to emit the code to generate the static list of DATA used by the READ statements.

Data.cs:
Added. A shell of a statement. It never will show up in an AST but is used to
make the parser be able to deal with DATA statements. It is a singleton class.

Read.cs:
Added. Used to represent a READ statement in an AST.

Token.cs
Add Read and Data.

BuiltIns.cs:
Fixed a problem in PrintString that resulted in zero length strings leaving a print serperator in effect.

Added AddData method for adding all of the static DATA to a list. Added ReadDouble and ReadString methods for reading from the list. Added Restore method to support RESTORE statement.

samples: Added data.mbas for testing the scenarios in DATA section of guide.
Also added testData.py for checking the results of data.mbas.
13 files changed:
TiBasicRuntime/BuiltIns.cs
mbasic/Lexer.cs
mbasic/Parser.cs
mbasic/Program.cs
mbasic/SyntaxTree/Data.cs [new file with mode: 0644]
mbasic/SyntaxTree/Read.cs [new file with mode: 0644]
mbasic/Token.cs
mbasic/mbasic.csproj
samples/data.mbas [new file with mode: 0644]
samples/helloworld.mbas
samples/print.mbas
samples/testData.py [new file with mode: 0644]
samples/testPrint.py