Code Monkey home page Code Monkey logo

slang's Introduction

slang

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.

Setup guide

  1. Open the terminal and navigate to the folder where all your other Java projects are located.
  2. Clone the repository using the command git clone https://github.com/university-lectures/slang.git
  3. Import the slang folder as a project into an IDE of your choice.
  4. Make sure that Apache Maven is installed either directly or embedded in your IDE.
  5. Run mvn test in the terminal or a similar sounding function of your IDE.

Contribute to this project

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.

Branch Naming Convention

Temporary branch names should consist of three parts separated by /.

  1. 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 feature
    • bugfix for branches that fix a bug
    • experiment for branches that are used to collaborate on experiments
  2. The second part references the issue/ticket you are currently working on. If there's no reference, just add no-ref.
  3. 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 Message Guideline

Commit messages should start with a category of change. Please use one of the following labels:

  1. feat: for adding a new feature
  2. fix: for fixing a previous bug
  3. refactor: for changes that improve performance or affect convenience (e.g. readability)
  4. 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

slang's People

Contributors

marco-haupt avatar illumin80 avatar claiyc avatar denrayk avatar i3ene avatar johannes0220 avatar fascinatedtv avatar seiferla avatar dahmspiegel avatar jonas-karl avatar maximiliani avatar nicozeitz avatar oliversaar avatar silas-de avatar g0lc0de avatar jens1o avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.