Commit Graph
108 Commits
Author SHA1 Message Date
Anton Medvedev 1dca2cbdc2 Move ast.Function to builtin.Function 2023-12-29 21:04:25 +01:00
Anton MedvedevandGitHub 30be4c9f08 Remove redundant fields from CallNode and BinaryNode (#504) 2023-12-29 19:50:08 +01:00
Anton MedvedevandGitHub 8e2df3e45e Simplify ast nodes (#503)
* Move FiendIndex and MethodIndex out of ast nodes

* Remove println statement

* Add method compiler tests
2023-12-26 23:14:20 +01:00
a0db9a6c19 feat: Implement Bitwise and Shift Operator Support (#496)
Co-authored-by: Ganesan Karuppasamy <[email protected]>
2023-12-25 18:25:26 +01:00
Anton Medvedev 97df6debcd fix: make deref commutative
Fixes #490
2023-12-10 11:02:12 +01:00
Anton Medvedev 551d2a7e0f Use expr-lang/expr 2023-12-03 21:53:01 +01:00
Anton Medvedev 2cf93593f4 Hide fields in vm.Program 2023-11-27 13:52:56 +01:00
Anton Medvedev 638a454886 Only emit OpEqual{Int,String} for simple types
Fixes #461
2023-11-16 21:39:50 +01:00
hesiningandGitHub a05268880c Propagate uint32 arguments types in ast (#438) 2023-09-12 16:10:41 +02:00
Anton Medvedev 6d8d2390cf Remove countBy 2023-08-30 14:55:05 +02:00
Anton Medvedev 5023b3005d Add reduce() 2023-08-30 13:33:16 +02:00
Anton Medvedev 7f85c0551f Add countBy() 2023-08-30 12:07:16 +02:00
Anton Medvedev 32f5fde2eb Replace interface{} with any 2023-08-30 11:25:15 +02:00
Anton Medvedev 3f57b885d4 Add groupBy 2023-08-30 11:14:54 +02:00
Anton Medvedev 9a9cab2e4a Add sort builtin 2023-08-28 14:55:44 +02:00
Anton Medvedev 846431d0c9 Add named pointers #index 2023-08-25 11:23:44 +02:00
Anton Medvedev 46929e4646 Add map(filter()) optimization 2023-08-24 11:15:43 +02:00
Anton Medvedev 166d8b8ce9 Add filter()[-1] optimization 2023-08-24 11:15:43 +02:00
Anton Medvedev 8c52bd6d8b Add filter()[0] optimization 2023-08-24 11:15:43 +02:00
Anton Medvedev 2c139ca36a Add find() and findIndex() 2023-08-24 11:15:43 +02:00
Anton Medvedev ed5f9bfbcb Add variables 2023-08-22 22:30:07 +02:00
Anton Medvedev 4ae978d384 Allow to disable builtins 2023-08-19 22:24:42 +02:00
Anton Medvedev 74796caae1 Fix errors in checker 2023-08-18 00:06:51 +02:00
Anton Medvedev 2fa8105b01 Fix panic in checker 2023-08-17 23:19:58 +02:00
Anton Medvedev cd03cb4c30 Fix panic in checker 2023-08-17 23:16:33 +02:00
Anton Medvedev 1334af4cf7 Fix panic in checker 2023-08-17 23:03:13 +02:00
Anton Medvedev a012738292 Rename env to $env 2023-08-15 23:34:16 +02:00
Anton Medvedev ffc47e10cc Add func names in disassemble 2023-08-15 23:05:53 +02:00
Anton Medvedev 719f30d3ad Add builtin functions 2023-08-14 15:37:06 +02:00
Anton Medvedev 8177d8bd9f Add OpCallBuiltin opcode to avoid an extra allocation 2023-08-14 11:50:42 +02:00
Anton Medvedev 8d959ea2fe Refactor builtin.Function and move builtin funcs to builtin package 2023-08-14 11:50:42 +02:00
Anton Medvedev a7118a28c1 Refactor builtin funcs 2023-08-13 12:33:34 +02:00
Anton MedvedevandGitHub 95fc04c65e Refactor deref (#398)
* Refactor deref types

* Refactor deref opcode inserts

* Add multiple pointers deref
2023-08-10 22:09:32 +02:00
mdmcconnellandGitHub 4e57a43464 env[] keyword implemented in parser (#382) 2023-07-12 11:01:19 +02:00
Anton Medvedev 95f8b7ff17 Add nil coalescing operator 2023-02-03 15:53:43 +01:00
Andrew BentonandAnton Medvedev ab25d4658b Adds simple bool condition optimization
This change introduces simple boolean condition optimization when
dealing with boolean `and`, `or`, and `==` expressions to help trim
unnecessary AST nodes.
2023-02-01 20:44:32 +01:00
Anton Medvedev 3e919ad53f Unflatten builtins opcodes 2023-01-30 22:24:35 +01:00
Anton Medvedev 12a40c72cb Flatten builtin opcodes in vm 2023-01-30 22:24:35 +01:00
Anton Medvedev b737180582 Improve builtin performance 2023-01-29 20:34:15 +01:00
Anton Medvedev 72a4ce18e9 Add len() builtin 2023-01-29 20:34:15 +01:00
Anton Medvedev 75edfd2b79 Add tests 2023-01-29 20:34:15 +01:00
Anton Medvedev 4b7c89eff1 Add expr.Function feature 2023-01-29 20:34:15 +01:00
Anton Medvedev 247fc09c06 Rename opcodes 2022-11-12 14:40:05 +01:00
Anton Medvedev 6829eb018b Rename opcodes 2022-11-12 14:38:35 +01:00
Anton Medvedev 1b6fe02337 Add AsKind and AsInt func 2022-11-10 21:32:32 +01:00
Anton Medvedev 54c29bfda2 Simplify "not in" operators 2022-11-06 13:04:35 +01:00
Anton MedvedevandGitHub 205e24128e Add better error message for OpFetchField on missing field (#276) 2022-11-05 22:00:11 +01:00
Anton Medvedev 371e24c30d Add ^ as exponent operator 2022-11-05 20:21:48 +01:00
Anton MedvedevandGitHub 1c69d7a8ef Add OpCallTyped (#269) 2022-11-05 13:44:15 +01:00
Anton MedvedevandGitHub e0b6b22aeb Save AST in compiled program (#268) 2022-11-03 07:53:17 +01:00