Robert Bendun
81f512d69d
Builtin function handlers definition now in separate file
...
Same as in commit before, we try to cleanup src/interpreter.cc from all
of builtin function noise.
2022-08-18 22:37:40 +02:00
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