The scholars' programming language
This repository is part of a lecture series on compiler construction at the Baden-Württemberg Cooperative State University Karlsruhe in Germany. Special to this university are the career-integrated undergraduate study programs. In alternating three-month phases, students learn theory at the university and receive practical training from an enterprise. For a listing of lecture content, see section T3INF4211 in the university's module handbook.
Caution: Contrary to general conventions, various commits may contain incomplete states, causing several tests to break. These commits are preceded by an exclamation mark in the commit message. The background to this is that the students are to implement these very functions in a test-driven manner.
- Open the terminal and navigate to the folder where all your other Java projects are located.
- Clone the repository using the command
git clone https://github.com/university-lectures/slang.git
- Import the
slang
folder as a project into an IDE of your choice. - Make sure that Apache Maven is installed either directly or embedded in your IDE.
- Run
mvn test
in the terminal or a similar sounding function of your IDE.
The project is kept small on purpose. It does not intend to offer as many features as possible or to be particularly powerful. Please consider this before creating a pull request. Functional enhancements are likely to be rejected. Changes, however, that serve usability, clarity, structure or better understanding are always welcome.
Temporary branch names should consist of three parts separated by /
.
- The first part is used for categorization and can take one of the following identifiers:
feature
for branches that add, refactor or remove a specific featurebugfix
for branches that fix a bugexperiment
for branches that are used to collaborate on experiments
- The second part references the issue/ticket you are currently working on. If there's no reference, just add
no-ref
. - The third part describes the purpose of this particular branch. This description should as short and meaningful as possible.
Please separate words with a dash -
(known as "kebap case") throughout the branch name. Here are a few examples:
git branch feature/issue-5/parse-additive-expressions
git branch bugfix/no-ref/fix-selection-set-for-exponent
Commit messages should start with a category of change. Please use one of the following labels:
feat
: for adding a new featurefix
: for fixing a previous bugrefactor
: for changes that improve performance or affect convenience (e.g. readability)chore
: for everything else (e.g. documentation, formatting, build infrastructure)
The category should be followed by a colon :
announcing the commit description.
© Marco Haupt 2023