Brychan Dempsey eb9d9cc177
All checks were successful
continuous-integration/appveyor/branch AppVeyor build succeeded
Udpated readme.md
2021-03-29 16:32:58 +13:00

2.7 KiB

159.341 Assignment 1 - String Interpreter Build status

A basic interpreter for a simple programming language.

There is only one implicit type definition - strings.


This program is written in C# (.NET Core 3.0*) and specifically avoids the use of the regex class and the

string.split()

method to show an understanding of the implementation.

* .NET Core 3.0 should be supported on the lab machines


The application accepts piped input streams via StreamReader and piped input via type <file> | <application>

There are preconfigured build options that will automatically pipe the example files:

VS Build Configuration

These examples are automatically copied to the output directory at build.


This stream is navigated character-by-character (not byte-by-byte)

Example usage:

set somevar "NewValue";
set othervar somevar + SPACE + ";";
list;
exit;

Would output:

┌─────────────┬──────────────────────┬─────────┐
│   Symbol    │        Value         │ Flags   │
├─────────────┼──────────────────────┼─────────┤
│somevar      │NewValue              │00000000 │
├─────────────┼──────────────────────┼─────────┤
│othervar     │NewValue ;            │00000000 │
└─────────────┴──────────────────────┴─────────┘

Additional Parameters | Behaviours

  • The option list; may be augmented with the parameter all (i.e. list all;), which will additionally list the constant/global symbols.
  • It is possible to save the command list on exit;; this is prompted and guided.
  • The program instances its operation; at exit; you will have the option to load a new file or write a new program.
  • A quick help option is available by using the command h (semi-colon not required).

NB:

  • A double quote can be inserted into the literal by using a backslash immediately beforehand (i.e. \")
set someVar "this literal \" has a value";

prints

this literal " has a value