Commit Graph

316 Commits

Author SHA1 Message Date
Robert Bendun
831de5abe5 Builtin operator handlers definiton now in separate file
Interpreter constructor and file in general is very unreadable
and busy now. To limit noise separate builtin operators from
src/interpreter.cc into their own file src/builtin_operators.cc

This also allows to see which functions are used as implementation
detail of which operations.
2022-08-18 22:21:04 +02:00
Robert Bendun
a3d0a942e4 Ensure when adding new operators we add them right
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.
2022-08-18 22:07:13 +02:00
Robert Bendun
e090778db9 Added '&' operator that joins chords together.
For example 'c & g' makes chord 'chord c g'
2022-08-18 22:07:13 +02:00
Robert Bendun
881dc8975a Missing variable error implementation 2022-08-18 22:07:13 +02:00
Robert Bendun
75c9eefd50 Ignoring new LSP 2022-08-18 22:07:13 +02:00
Robert Bendun
d8f8214556 Tests now compile again 2022-07-30 13:45:23 +02:00
Robert Bendun
0e796d5efc Minor cleanup 2022-07-30 13:40:59 +02:00
2ea507dde2 Par accepts arrays of notes 2022-06-23 07:49:38 +02:00
4a844a319e Handle incoming note on messages 2022-06-23 07:41:06 +02:00
4d272723c7 Elegant exit (not aborting due to thread issues) 2022-06-23 07:36:28 +02:00
Mateusz Piątkowski
7b572e2a1f ode to joy final_master_full 2022-06-22 18:46:24 +02:00
Mateusz Piątkowski
24b1a71e55 more examples WIP 2022-06-22 18:39:23 +02:00
Mateusz Piątkowski
742b48e1ce better ode to joy 2022-06-22 17:44:04 +02:00
772686a2fc Better error reporting of not mached parens 2022-06-20 13:21:37 +02:00
21bf18bbdd Error reporting in builtins producing midi messages 2022-06-20 12:59:36 +02:00
d60e2dfb38 Preserving sequences 2022-06-20 06:20:24 +02:00
ea1dddaf26 Precedense aware parser 2022-06-20 05:45:28 +02:00
854b72cf35 Unit testing builtins 2022-06-19 17:44:42 +02:00
29f9a4467c Skipping tests that require not implemented functionality 2022-06-19 16:15:41 +02:00
2dd97709a0 Better unit test response messages when unrecoverable state reached
Instead of `exit` we throw `std::runtime_error` in Debug mode assertions
and unreachable functions, to have better response from unit test runner.
2022-06-19 16:09:39 +02:00
ed3b2006e9 Symbol quoting and user defined incoming MIDI message processing 2022-06-19 15:45:14 +02:00
387835a155 Number -> Note translation for Note{on,off} incoming messages 2022-06-19 00:40:04 +02:00
7a3d211d09 Infrastructure for incoming MIDI messages ready 2022-06-19 00:27:02 +02:00
bf3f388acb User-defined input and port numbers of ALSA MIDI connection 2022-06-18 00:28:48 +02:00
09f736bf83 Updated to newer version of lib/midi 2022-06-18 00:13:21 +02:00
16d1a5e0d6 Introduced first iteration of typechecking errors 2022-06-14 13:24:15 +02:00
910792e383 rotate function 2022-06-14 11:39:04 +02:00
55554606a1 partition function 2022-06-14 11:21:37 +02:00
5ab750b93b Array modification functions 2022-06-14 10:30:52 +02:00
7d0f732a57 GNU Readline replace with bestline 2022-06-11 19:57:56 +02:00
e6aed50fe9 Support for midi program change message 2022-06-11 19:00:36 +02:00
b930ef4e6e Index operator binds more tightly then function call 2022-06-11 17:55:52 +02:00
b7d879bf70 Relevant code printing when error reporting 2022-06-09 01:48:02 +02:00
d16f6de53c Compound assigments 2022-06-06 04:22:59 +02:00
91eaa0ceea Assigments, array updating function. Test runner update 2022-06-06 04:03:40 +02:00
118837f6d8 Fixed multiline comment bug
We forgot to skip '-' when parsing multiline comment begining
2022-06-06 03:08:34 +02:00
e528fd9e83 In-language comparison operators made holistic 2022-06-06 00:20:25 +02:00
7c5f3e2170 Small refactoring & more testing 2022-06-05 23:54:42 +02:00
c1e1acd6e2 Removing test from the past 2022-06-03 00:58:53 +02:00
4d88ca7e40 Logical short-circuting operators 2022-06-03 00:52:55 +02:00
946d4b96b1 Permutations! 2022-06-02 23:17:02 +02:00
45a3710626 function implementation 2022-06-02 21:50:44 +02:00
1e1d9b0cb6 Error reporting of use of non-symbols in indentifier context 2022-06-02 21:39:22 +02:00
0a00080d2d Implemented many missing test cases 2022-05-31 13:43:14 +02:00
23a230c9d3 Instruments list 2022-05-30 16:56:57 +02:00
31dfcc37ca Note on & note off explicit midi calls 2022-05-30 15:35:37 +02:00
43d7aeac1d New intrinsic implementation primitives 2022-05-30 15:10:03 +02:00
ada8e17d1b Added documentation mostly for error reporting structures 2022-05-30 00:18:48 +02:00
2eee11e476 Removed unused errors 2022-05-30 00:02:50 +02:00
25e730c8d3 Missing semicolon error! 2022-05-29 23:54:05 +02:00