\r
using namespace std;\r
\r
+// This contains a 1 to 1 representation of the defined language\r
+\r
struct Type;\r
struct Variable;\r
struct Body;\r
struct ReturnStmt;\r
struct Stmt;\r
\r
+// Context is a collection of everything that can be defined in a namespace\r
+// that is reused for bodies so that the hierarchy can be walked uniformly\r
+// both up and down using the parent variable\r
struct Context\r
{\r
std::optional<std::string> name;\r
std::string identifier;\r
};\r
\r
+// OperatorType enum with corresponding string array to lookup\r
+// enum from string and the other way round\r
enum class PrefixOperatorType\r
{\r
Plus, Minus, Increment, Decrement,\r