ca6075e8d5
Add a new method call operator, and more.
...
The '.' operator now represents method calls. A function f: (a, b)->c
can be called as a.f(b), which is equivalent to f(a, b). Besides
this change, all reserved operators now have a negative precedence
(it's relative, remember?), and some function names were changed.
2018-09-13 17:05:39 -07:00
5617484aff
Make parsing function public.
...
libab already provides a _run_tree ... you can't run_tree if there's
no tree.
2018-09-12 14:43:43 -07:00
f4ecb82c46
Intermediate commit before visitor refactor.
2018-08-11 18:22:18 -07:00
4a058384c1
Make some functions public.
2018-08-10 18:39:26 -07:00
7c8c547540
Add true / false values to interpreter.
2018-08-10 15:29:56 -07:00
25f5d3469b
Add a boolean type.
2018-08-10 00:52:12 -07:00
03577269f2
Add various ways to call code.
2018-06-21 17:06:53 -07:00
62dd41e634
Use the unit type correctly instead of null references.
2018-06-02 16:06:13 -07:00
969e457fba
Add a unit type.
2018-06-02 15:37:04 -07:00
f199bc6efd
Add a function to call a function by name.
2018-06-01 23:32:19 -07:00
5fec3bd63c
Make operators simply aliases to functions.
2018-06-01 15:24:55 -07:00
1f8788dd32
Add functions for getting special types.
2018-05-27 00:11:00 -07:00
a6029d7ef4
Add utility function for executing code.
2018-05-18 14:15:15 -07:00
c3a7657c71
Format code.
2018-05-17 14:53:48 -07:00
3e8c814215
Remove pointless parameter copying.
2018-05-11 20:36:27 -07:00
989774cec5
Add methods to get pointers to basetypes, for comparison.
2018-05-11 20:12:03 -07:00
1e215ecfa5
Add a function for preparing for execution.
2018-05-06 18:45:07 -07:00
0a24fff344
Add a new implementation struct with only one function.
2018-04-24 16:59:53 -07:00
14e9ddea23
Remove the implementation struct.
2018-04-24 16:34:10 -07:00
46040531fb
Add interpreter to libab.
2018-04-24 11:35:27 -07:00
a86938b574
Use reference counted table in libab.
2018-04-24 11:35:16 -07:00
b12f6d7a31
Add a number implementation struct to libab.
2018-04-21 17:32:38 -07:00
5d3130d39d
Format the code with clang-format.
2018-04-21 14:09:01 -07:00
7692d4541f
Add function to compile a type from its string.
2018-04-20 14:54:23 -07:00
7b1445a262
Add functions for basetypes and their entries in tables.
2018-04-17 12:07:22 -07:00
ab2311def9
Store function / operator types when they are registered.
2018-03-15 19:41:11 -07:00
b1aa2a4bf5
Implement associativity storage for operators.
2018-02-17 16:00:39 -08:00
8cd1d23120
Add functions to separately register different types of operators.
2018-02-17 14:01:48 -08:00
3de3f1ec00
Move structs used to hold custom operators and functions into new header
2018-02-11 22:38:40 -08:00
74034c7b76
Rename header files.
2018-02-11 22:32:42 -08:00
f67b98d7a6
Add a parser struct.
2018-02-11 22:26:19 -08:00
37a6f31b5f
Start the overarching library code, and move result enum elsewhere.
2018-02-11 22:11:33 -08:00
e5351c17a2
Fix code to stick to proper naming convention.
2018-02-11 21:22:01 -08:00
0958ecd1eb
Begin working on an initial implementation for the parser.
2018-02-10 22:40:34 -08:00
b46dccb70d
Add a utility header to convert error codes.
2018-02-10 16:01:08 -08:00
10652048ab
Begin working on the lexer.
2018-02-10 13:57:16 -08:00