- We're building a compiler for a new language called bishop. It's more of a c++ transpiler because we will be lexing, parsing, but our features will be implemented in c++, but the user uses the nicer, more elegant bishop syntax.
- We're basically building an asbtraction over C++. We're taking the best things from c++ and giving it nice syntax.
- We're writing production quality code
- Use the Makefile in the root of the project for build and test
- before every action it is required to read tests/ so that we know each variability of the language so that we implement each feature correctly. Every possible combination of features must be implemented and tested.
- when you write if or while statments, put a line of space on each side that has other logic
- all c++ code requires docstrings
- language features should be logically separated by purpose. (e.g. src/typechecker/strings.cpp)
- we wrote pythonic code and our language and standard libraries should be easy and intuitive to the user
- readability is of utmost importance
- when adding or modifying language features, update the Bishop Language Reference in README.md
- read README.md for the full Bishop Language Reference
- AST nodes require the line number to be set
- returning empty values instead of proper errors is usually not ok