Musique language interpreter
Go to file
Robert Bendun 1c6db5e7b7 Removed say from default builtins, moved to src/main.cc
The reason is that `say` requires text output to work, which is platform
specific. Interpreter should only register platform independent
functions like operations on arrays or math library
2022-05-24 03:48:10 +02:00
doc Requirements for documentation generation 2022-05-08 18:14:55 +02:00
etc Vim syntax highlighting 2022-05-22 15:53:39 +02:00
examples Block indexing and len builtin 2022-05-22 16:43:36 +02:00
lib Added Midi dependency 2022-05-23 17:27:06 +02:00
src Removed say from default builtins, moved to src/main.cc 2022-05-24 03:48:10 +02:00
.gitignore Examples testing 2022-05-22 06:10:44 +02:00
.gitmodules Added Midi dependency 2022-05-23 17:27:06 +02:00
Doxyfile Doxygen & Sphinx documentation tooling 2022-05-08 18:02:23 +02:00
Makefile Separated building bin/unit-test into several objects 2022-05-24 03:00:51 +02:00
README.md Added Midi dependency 2022-05-23 17:27:06 +02:00

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 interpreter bin/musique (tryb release)
  • make debug - Buduje interpreter bin/debug/musique (tryb debug)
  • make clean - Usuwa reprodukowalne elementy projektu (automatycznie stworzone pliki binarne czy raporty)

Dokumentacja

  • make doc - Tworzy doc/build/html/ zawierający dokumentację projektu

Testowanie

  • make test - Uruchom wszystkie dostępne testy automatyczne
  • make unit-tests - Uruchamia testy jednostkowe interpretera
  • make unit-test-coverage - Uruchamia raport pokrycia kodu przez testy jednostkowe
  • 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

Budowa projektu

.
├── bin            Miejsce produkcji plików wykonywalnych
├── coverage
├── doc            Dokumentacja języka, interpretera
│   ├── build      Miejsce produkcji dokumentacji
│   └── source     Źródła dokumentacji Sphinx
├── 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