2022-04-24 15:27:09 +02:00
|
|
|
# Musique interpreter
|
2022-04-24 16:13:02 +02:00
|
|
|
|
2022-05-08 18:20:44 +02:00
|
|
|
Interpreter języka Musique. Możliwy do wykorzystywania jako:
|
|
|
|
|
|
|
|
- biblioteka interpretera języka dołączana do innego projektu (podobnie jak Lua);
|
|
|
|
- REPL działający w systemie GNU/Linux + ALSA wykonujący język Musique.
|
|
|
|
|
2022-05-23 17:27:06 +02:00
|
|
|
## Budowanie interpretera
|
|
|
|
|
2022-07-31 18:19:24 +02:00
|
|
|
Jeśli nie posiadasz zależności `lib/midi` lub `lib/scheduler` to:
|
2022-05-23 17:27:06 +02:00
|
|
|
|
|
|
|
```console
|
|
|
|
$ git submodule init
|
|
|
|
$ git submodule update
|
|
|
|
```
|
|
|
|
|
|
|
|
A następnie zbuduj interpreter:
|
|
|
|
|
|
|
|
```console
|
2022-07-31 18:19:24 +02:00
|
|
|
$ make
|
2022-05-23 17:27:06 +02:00
|
|
|
```
|
|
|
|
|
2022-05-02 22:12:29 +02:00
|
|
|
## Dostępne komendy
|
|
|
|
|
2022-05-21 23:11:04 +02:00
|
|
|
- `make` - Buduje interpreter `bin/musique` (tryb release)
|
|
|
|
- `make debug` - Buduje interpreter `bin/debug/musique` (tryb debug)
|
2022-05-02 22:12:29 +02:00
|
|
|
- `make clean` - Usuwa reprodukowalne elementy projektu (automatycznie stworzone pliki binarne czy raporty)
|
2022-05-08 18:20:44 +02:00
|
|
|
|
|
|
|
### Dokumentacja
|
|
|
|
|
|
|
|
- `make doc` - Tworzy `doc/build/html/` zawierający dokumentację projektu
|
|
|
|
|
|
|
|
### Testowanie
|
|
|
|
|
2022-05-22 06:33:17 +02:00
|
|
|
- `make test` - Uruchom wszystkie dostępne testy automatyczne
|
2022-05-02 22:12:29 +02:00
|
|
|
- `make unit-tests` - Uruchamia testy jednostkowe interpretera
|
2022-05-08 18:20:44 +02:00
|
|
|
- `make unit-test-coverage` - Uruchamia raport pokrycia kodu przez testy jednostkowe
|
2022-05-22 06:07:24 +02:00
|
|
|
- `etc/tools/test.py test examples` - Uruchamia testy zachowań przykładów
|
|
|
|
- `etc/tools/test.py record examples` - Nagrywa testy zachowań przykładów
|
|
|
|
|
|
|
|
### Debugowanie
|
|
|
|
|
|
|
|
- `etc/tools/log-function-calls.sh` - Tworzy listę wywołań funkcji używając GDB
|
2022-05-02 22:12:29 +02:00
|
|
|
|
2022-04-24 16:13:02 +02:00
|
|
|
## Budowa projektu
|
|
|
|
|
|
|
|
```
|
|
|
|
.
|
|
|
|
├── bin Miejsce produkcji plików wykonywalnych
|
2022-05-08 18:20:44 +02:00
|
|
|
├── coverage
|
2022-04-24 16:13:02 +02:00
|
|
|
├── doc Dokumentacja języka, interpretera
|
2022-05-29 01:00:13 +02:00
|
|
|
│ └── build Miejsce produkcji dokumentacji
|
2022-05-22 06:07:24 +02:00
|
|
|
├── etc/tools Dodatkowe narzędzia
|
2022-04-24 16:13:02 +02:00
|
|
|
├── lib Zewnętrzne zależności projektu
|
|
|
|
│ ├── expected
|
|
|
|
│ └── ut
|
|
|
|
└── src Główny katalog z kodem źródłowym
|
|
|
|
└── tests Katalog z testami jednostkowymi
|
|
|
|
```
|
2022-05-22 15:53:39 +02:00
|
|
|
|
|
|
|
## Kolorowanie składni
|
|
|
|
|
|
|
|
### Vim / Neovim
|
|
|
|
|
|
|
|
Skopiuj plik [etc/editor/musique.vim](etc/editor/musique.vim) do folderu `syntax` wewnątrz twojej konfiguracji Vima (Neovima). Np:
|
|
|
|
|
|
|
|
```console
|
|
|
|
$ cp etc/editor/musique.vim ~/.config/nvim/syntax/
|
|
|
|
```
|
|
|
|
|
|
|
|
Następnie musisz dodać ustawienie typu pliku na podstawie rozszerzenia wewnątrz twojej konfiguracji:
|
|
|
|
|
|
|
|
```vim
|
|
|
|
au BufRead,BufNewFile *.mq set filetype=musique
|
|
|
|
```
|
2022-05-24 14:13:38 +02:00
|
|
|
|
|
|
|
### Visual Studio Code
|
|
|
|
|
|
|
|
Skopiuj katalog [etc/editor/musique-vscode](etc/editor/musique-vscode) do folderu `<user home>/.vscode/extensions` i uruchom ponownie program VSCode.
|