Anton Medvedev
1dca2cbdc2
Move ast.Function to builtin.Function
2023-12-29 21:04:25 +01:00
Anton Medvedev and GitHub
30be4c9f08
Remove redundant fields from CallNode and BinaryNode ( #504 )
2023-12-29 19:50:08 +01:00
Anton Medvedev and GitHub
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
hesining and GitHub
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 Medvedev and GitHub
95fc04c65e
Refactor deref ( #398 )
...
* Refactor deref types
* Refactor deref opcode inserts
* Add multiple pointers deref
2023-08-10 22:09:32 +02:00
mdmcconnell and GitHub
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 Benton and Anton 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 Medvedev and GitHub
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 Medvedev and GitHub
1c69d7a8ef
Add OpCallTyped ( #269 )
2022-11-05 13:44:15 +01:00
Anton Medvedev and GitHub
e0b6b22aeb
Save AST in compiled program ( #268 )
2022-11-03 07:53:17 +01:00