Skip to content

Commit

Permalink
push before computer reset
Browse files Browse the repository at this point in the history
  • Loading branch information
mindoodoo committed Nov 19, 2024
1 parent 763d411 commit a691993
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 78 deletions.
74 changes: 16 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,22 @@ This solution still presented a couple advantages compared to interpretation :
- Optimization potential
- Type inference

## Features

- Written in **Haskell**
- **Abstract Syntax Tree** and **Concrete Parse Tree** implementation
- Compilation into **assembly like language**
- **Scheme like** syntax
- **Infix** notation support
- **Multitude** of built in functions
- **Strict** testing policy
- Continuous integration running tests on every **Pull Request**
- **Over 100** Unit tests and close to **50% coverage**
- **Close to 20** Integration tests
- **Complete documentation**
- [Our language](./doc/language-description.md)
- [Intermediary assembly language](./doc/compiled-syntax-description.md)

## Installation

### Dependency Installation
Expand Down Expand Up @@ -77,61 +93,3 @@ By default, both unit and integration tests are run, however you may also specif

- unit
- integration

## Features

- Written in **Haskell**
- **Abstract Syntax Tree** and **Concrete Parse Tree** implementation
- Standard input reading
- An [ABNF syntax description](./doc/syntax-description.md)
- An [ABNF syntax description for the "compiled" code](./doc/compiled-syntax-description)
- **Infix notations** for operators and custom functions

- **Strict** testing policy
- Continuous integration running tests on every **Pull Request**
- **Over 100** Unit tests and close to **50% coverage**
- **Close to 20** Integration tests

### Supported Scheme Features

- Atoms
- Signed Integers
- Symbol
- Boolean type
- Function execution
- Function definition
- Named Functions
- Lambda Functions
- Variable definition
- Conditional expressions

### Builtin Functions

In addition to these basic features, our interpreter also implements the following builtins :

- println
- print
- div
- mod
- \*
- \-
- \+
- <
- <=
- \>
- \>=
- eq?

### Repl mode

You can also enter into an **interactive** session by running :

```
./glados -i
```

or

```
./glados --interactive
```
37 changes: 19 additions & 18 deletions doc/bonuses_documentation.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@

# Bonuses

- [REPL](#repl)
- [Syntax Documentation for compiled code](#syntax-documentation-for-compiled-code)
- [Arrays](#arrays)
- [Array Nesting](#array-nesting)
- [Array Operation](#array-operation)
- [Head](#head)
- [Last](#last)
- [Tail](#tail)
- [Init](#init)
- [Join](#join)
- [PushFront](#pushfront)
- [Pushback](#pushback)
- [Strings and character escaping](#strings-and-character-escaping)
- [Input/Output](#inputoutput)
- [Reading from Stdin](#reading-from-stdin)
- [Writing to Stdout](#writing-to-stdout)
- [Floating point numbers](#floating-point-numbers)
- [Rigor](#rigor)
- [Bonuses](#bonuses)
- [REPL](#repl)
- [Syntax Documentation for compiled code](#syntax-documentation-for-compiled-code)
- [Arrays](#arrays)
- [Array Nesting](#array-nesting)
- [Array Operation](#array-operation)
- [Head](#head)
- [Last](#last)
- [Tail](#tail)
- [Init](#init)
- [Join](#join)
- [PushFront](#pushfront)
- [Pushback](#pushback)
- [Strings and character escaping](#strings-and-character-escaping)
- [Input/Output](#inputoutput)
- [Reading from Stdin](#reading-from-stdin)
- [Writing to Stdout](#writing-to-stdout)
- [Floating point numbers](#floating-point-numbers)
- [Rigor](#rigor)


This Document might be nicer to read on [GitHub](https://github.com/nLatt/GLaDOS-2023/blob/main/doc/bonuses_documentation.md)
Expand Down
52 changes: 50 additions & 2 deletions doc/syntax-description.md → doc/language-description.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,54 @@
# Syntax definition of our Scheme implementation
# Language Description

This document defines the syntax of this specific implementation of Scheme using the [Augmented Backus-Naur form](https://en.wikipedia.org/wiki/Augmented_Backus%E2%80%93Naur_form) (also [ABNF](https://www.rfc-editor.org/rfc/rfc5234)).

### Supported Scheme Features

- Atoms
- Signed Integers
- Symbol
- Boolean type
- Function execution
- Function definition
- Named Functions
- Lambda Functions
- Variable definition
- Conditional expressions

### Builtin Functions

In addition to these basic features, our interpreter also implements the following builtins :

- println
- print
- div
- mod
- \*
- \-
- \+
- <
- <=
- \>
- \>=
- eq?

### Repl mode

You can also enter into an **interactive** session by running :

```
./glados -i
```

or

```
./glados --interactive
```


## Context Free Grammar (ABNF)

The following is a description of our scheme like programming language using the [Augmented Backus-Naur form](https://en.wikipedia.org/wiki/Augmented_Backus%E2%80%93Naur_form) (also [ABNF](https://www.rfc-editor.org/rfc/rfc5234)).


```ABNF
Expand Down

0 comments on commit a691993

Please sign in to comment.