Programs now built using IProgram interface

- The old App abstract class has been scrapped in favor of the IProgram interface in the Tomas.Interface library.
- A new terminal emulator was created when not on Windows.
- In both OS and terminal, a single dictionary has the commands and classes that implement IProgram.
- Start() now returns a boolean that behaves similar to C's main in returning an integer.
- A new while loop in both terminal and kernel handles the execution of programs.
This commit is contained in:
Tony Bark 2021-03-30 08:26:18 -04:00
parent 952554b476
commit c11f987521
31 changed files with 387 additions and 219 deletions

91
.gitignore vendored
View file

@ -1,7 +1,7 @@
**/package
# File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig
# Created by https://www.gitignore.io/api/linux,macos,backup,windows,monodevelop,visualstudio,visualstudiocode
# Edit at https://www.gitignore.io/?templates=linux,macos,backup,windows,monodevelop,visualstudio,visualstudiocode
# Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,visualstudio,rider,macos,linux,backup,dotenv
# Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,visualstudio,rider,macos,linux,backup,dotenv
### Backup ###
*.bak
@ -10,6 +10,9 @@
*.orig
*.tmp
### dotenv ###
.env
### Linux ###
*~
@ -34,6 +37,7 @@
# Icon must end with two \r
Icon
# Thumbnails
._*
@ -53,26 +57,69 @@ Network Trash Folder
Temporary Items
.apdisk
### MonoDevelop ###
#User Specific
*.userprefs
*.usertasks
### Rider ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
#Mono Project Files
*.pidb
*.resources
test-results/
# User-specific stuff
.idea/**
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
### Windows ###
# Windows thumbnail cache files
@ -114,6 +161,7 @@ $RECYCLE.BIN/
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
@ -131,6 +179,7 @@ bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
@ -170,6 +219,7 @@ StyleCopReport.xml
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
@ -188,6 +238,7 @@ StyleCopReport.xml
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
@ -225,9 +276,6 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
@ -238,6 +286,9 @@ _TeamCity*
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*[.json, .xml, .info]
# Visual Studio code coverage results
*.coverage
*.coveragexml
@ -446,4 +497,10 @@ healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# End of https://www.gitignore.io/api/linux,macos,backup,windows,monodevelop,visualstudio,visualstudiocode
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,visualstudio,rider,macos,linux,backup,dotenv
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)