Musique language interpreter
a3d0a942e4
Operators not only are needed to be defined by their implementation in Interpreter constructor, but also are needed to be included in precedense resolution. To prevent partial definition we predefine number of builtin operators as numeric constant and test against it in all relevant places. |
||
---|---|---|
doc | ||
etc | ||
examples | ||
lib | ||
src | ||
.gitignore | ||
.gitmodules | ||
Doxyfile | ||
instruments.mq | ||
LICENSE | ||
Makefile | ||
prelude.mq | ||
README.md |
Musique interpreter
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.
Budowanie interpretera
Jeśli nie posiadasz zależności lib/midi
to:
$ git submodule init
$ git submodule update
$ (cd lib/midi; make)
A następnie zbuduj interpreter:
$ make bin/musique
Dostępne komendy
make
- Buduje interpreterbin/musique
(tryb release)make debug
- Buduje interpreterbin/debug/musique
(tryb debug)make clean
- Usuwa reprodukowalne elementy projektu (automatycznie stworzone pliki binarne czy raporty)
Dokumentacja
make doc
- Tworzydoc/build/html/
zawierający dokumentację projektu
Testowanie
make test
- Uruchom wszystkie dostępne testy automatycznemake unit-tests
- Uruchamia testy jednostkowe interpreteramake unit-test-coverage
- Uruchamia raport pokrycia kodu przez testy jednostkoweetc/tools/test.py test examples
- Uruchamia testy zachowań przykładówetc/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
Budowa projektu
.
├── bin Miejsce produkcji plików wykonywalnych
├── coverage
├── doc Dokumentacja języka, interpretera
│ └── build Miejsce produkcji dokumentacji
├── etc/tools Dodatkowe narzędzia
├── lib Zewnętrzne zależności projektu
│ ├── expected
│ └── ut
└── src Główny katalog z kodem źródłowym
└── tests Katalog z testami jednostkowymi
Kolorowanie składni
Vim / Neovim
Skopiuj plik etc/editor/musique.vim do folderu syntax
wewnątrz twojej konfiguracji Vima (Neovima). Np:
$ cp etc/editor/musique.vim ~/.config/nvim/syntax/
Następnie musisz dodać ustawienie typu pliku na podstawie rozszerzenia wewnątrz twojej konfiguracji:
au BufRead,BufNewFile *.mq set filetype=musique
Visual Studio Code
Skopiuj katalog etc/editor/musique-vscode do folderu <user home>/.vscode/extensions
i uruchom ponownie program VSCode.