100 Commits
Author SHA1 Message Date
Anton Medvedev 0bd991a6bf Update README.md 2025-09-18 21:45:44 +02:00
Anton Medvedev 64df7b63f7 Add more tests 2025-09-18 21:39:22 +02:00
Anton MedvedevandGitHub 037ef3dc3d Add expr.MaxNodes() option (#799)
* Add expr.MaxNodes() option

* Fix error message

* Add more tests and comments
2025-06-03 17:31:46 +02:00
Anton Medvedev b4e9f7d15e Revert "Run diff / bench in parallel"
This reverts commit 067d1c564e.
2025-05-27 12:39:33 +02:00
Anton Medvedev 917cce7ae3 Revert "Fix diff.yml"
This reverts commit ef2c185ffc.
2025-05-27 12:39:33 +02:00
Anton Medvedev ef2c185ffc Fix diff.yml 2025-05-27 12:34:11 +02:00
Anton Medvedev 067d1c564e Run diff / bench in parallel 2025-05-27 12:22:06 +02:00
Anton MedvedevandGitHub 5f9f6bb4b6 Update test.yml 2025-03-28 15:50:33 +01:00
Anton MedvedevandGitHub 9b2c9a7754 Remove gotestfmt 2025-03-28 15:49:42 +01:00
Anton MedvedevandGitHub 4122462d3a Update test.yml 2025-03-28 15:48:24 +01:00
Anton MedvedevandGitHub 514b7ec2d0 Update gotestfmt 2025-03-28 15:45:20 +01:00
Anton MedvedevandGitHub 99633081b5 Add gotestfmt 2025-03-28 15:43:54 +01:00
Anton MedvedevandGitHub 452d355706 Make expr.Eval faster (#775)
* Make expr.Eval faster

* Add bench_call_test.go

* Make parser config optional
2025-03-24 14:48:41 +01:00
Anton Medvedev 85fa77e98b Refactor examples tests 2025-03-24 12:01:07 +01:00
Anton Medvedev 564822e8f3 Add examples testing 2025-03-21 18:09:09 +01:00
Anton Medvedev 61219e089c Update examples.txt 2025-03-19 15:29:59 +01:00
Anton Medvedev 69512cb435 gen: fix 2025-03-19 12:32:26 +01:00
Anton Medvedev d179a6e5c5 gen: fix predicate generator 2025-03-19 12:32:03 +01:00
Anton Medvedev 3289edf207 gen: less string vars 2025-03-18 23:57:51 +01:00
Anton Medvedev d79a97301c gen: add $env 2025-03-18 23:54:38 +01:00
Anton Medvedev 22d50fd301 gen: add vars 2025-03-18 23:45:05 +01:00
Anton Medvedev 6a0a8f1ba5 gen: simplify search 2025-03-18 23:38:28 +01:00
Anton Medvedev 1e7796412f gen: use all cpus 2025-03-18 23:20:00 +01:00
Anton Medvedev ab2c230eaf Refactor random code get 2025-03-18 23:08:02 +01:00
Anton MedvedevandGitHub d5f9c1bf84 Fix parsing of variable declaration nodes combined with sequence node (#773)
Fixes #772
2025-03-18 10:49:13 +01:00
Anton Medvedev 99e8ef04a5 Update docs 2025-03-17 14:28:04 +01:00
Anton MedvedevandGitHub 3c678df33f Update SECURITY.md 2025-03-17 10:10:42 +01:00
Anton Medvedev 6335202087 Update language-definition.md 2025-03-16 10:35:06 +01:00
Anton Medvedev e0c6fdc9b9 Code style: remove repeated helper functions 2025-03-15 16:41:40 +01:00
Anton Medvedev 8aaa33b16e Test for issue 756
Fixes #756
2025-03-10 15:00:21 +01:00
Anton Medvedev 31f0ab00dc Remove duplicated dereferences 2025-03-10 13:52:54 +01:00
Anton Medvedev 6022ffd21d Add support deref in all builtins 2025-03-10 13:38:02 +01:00
Anton Medvedev cd0943453d Remove print 2025-03-09 23:39:16 +01:00
Anton Medvedev 82ec7571df Correctly add OpDeref if needed
Fixes #739
2025-03-09 13:07:38 +01:00
Anton Medvedev ddbaa171c4 Add more tailing comma tests 2025-03-09 10:48:37 +01:00
Anton Medvedev 80eb95bf5f Make sure get() returns nil for map[string]string on missing keys
Fixes #723
2025-03-08 17:28:39 +01:00
Anton Medvedev 41da963d55 Remove pointer accessor check in parser 2025-03-08 17:11:49 +01:00
Anton Medvedev 3fc6c1f535 Make all builtins working with deref
Fixes #730
2025-03-08 17:01:31 +01:00
Anton Medvedev 6c8437454d Update fuzz tests 2025-03-08 16:19:30 +01:00
Anton Medvedev 7e417b043e Add -update flag to gen tests 2025-03-08 15:40:47 +01:00
Anton Medvedev 8cab964afb Improve type checker for named types 2025-03-08 15:33:37 +01:00
Anton Medvedev 3d52b8e334 Fix func calls with nil types value
Fixes #688
2025-03-08 13:54:55 +01:00
Anton Medvedev 641966584f Make TestVM_ProfileOperations more robust 2025-03-08 13:49:10 +01:00
Anton Medvedev 5aada75b87 Add SequenceNode to compiler 2025-03-08 12:46:59 +01:00
Anton Medvedev 3a6c36ef12 Add SequenceNode to type checker 2025-03-08 12:36:18 +01:00
Anton Medvedev ebd5b4e426 Add print test for if 2025-03-08 12:31:51 +01:00
Anton Medvedev 26eebbe70c Better error message for predicate with sequence 2025-03-08 12:14:13 +01:00
Anton Medvedev 97e061adca Only allow if on precedence == 0 2025-03-08 12:02:09 +01:00
Anton Medvedev 2cff08a4a5 Refactor TestParse_error tests 2025-03-08 09:49:28 +01:00
Anton Medvedev c146c2fc9b Add SequenceNode
Fixes #717
2025-03-08 09:27:09 +01:00
Anton Medvedev 02dc5c04fc Properly check if interface is any
Fixes #744
2025-03-07 22:56:41 +01:00
Anton Medvedev dea75b14d8 Add more tests for filter_map optimization 2025-03-07 21:52:14 +01:00
Anton Medvedev 1e518fddcb Add ast.Find 2025-03-07 20:40:02 +01:00
Anton Medvedev 127f965eeb Do not optimize filter_map if #index used
Fixes #758
2025-03-07 20:39:53 +01:00
Anton Medvedev 454f913c95 Make len() return runes count for string
Fixes #746
2025-03-07 16:58:35 +01:00
Anton Medvedev e30c388fdf Add +build comments 2025-03-07 16:44:11 +01:00
Anton Medvedev e2f8470bd7 Add coverage.mjs comments 2025-03-07 16:24:24 +01:00
Anton Medvedev 13e0e4ac34 Exclude pro from go coverage.mjs 2025-03-07 15:56:31 +01:00
Anton Medvedev b42839dddb Remove additional run API (RunWithConfig) from VM
This API was introduced in previous PR, but we do not want to expose it.
2025-03-07 15:06:45 +01:00
Anton MedvedevandGitHub 99fbd75b7f Update .gitattributes
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:10:40 +01:00
Anton MedvedevandGitHub ee89ab1a10 Update .gitattributes
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:05:51 +01:00
Anton MedvedevandGitHub 5a5235df33 Update .gitattributes (#759)
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:05:02 +01:00
Anton MedvedevandGitHub 71dbecdc04 Update .gitattributes
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:03:45 +01:00
Anton MedvedevandGitHub 31c8d9d758 Update .gitattributes
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:03:27 +01:00
Anton MedvedevandGitHub b981138181 Create .gitattributes
Signed-off-by: Anton Medvedev <[email protected]>
2025-03-01 20:00:54 +01:00
Anton Medvedev 49cbda7b8f Add default map value type 2024-08-28 23:00:18 +02:00
Anton Medvedev a8aece8708 Drop types.StrictMap and add types.Extra to define additional keys 2024-08-28 22:47:47 +02:00
Anton Medvedev 0217bda141 Add any type 2024-06-14 09:32:52 +02:00
Anton Medvedev b24b1448ed Add types.Equal 2024-06-14 09:23:26 +02:00
Anton Medvedev d2777e110d Add types.Array() 2024-06-05 15:48:40 +02:00
Anton MedvedevandGitHub d0aa2e9136 Improve types pkg (#668) 2024-06-05 01:14:25 +02:00
Anton MedvedevandGitHub c953d0dde1 Refactor types table (#667) 2024-06-04 00:08:01 +02:00
Anton Medvedev de9d6dcf8a Remove Node.Kind() method 2024-06-01 14:57:15 +02:00
Anton MedvedevandGitHub fee5690347 Refactor checker to use Nature (#665)
This PR introduces a new concept inside Expr's type checker - Nature.

It's an abstraction other reflect.Type which carries additional information about possible type, methods and builtin function.

I was able to find and fix a few bugs in type checker and optimizer. Implementation of nature concept has proven itself. As well nature will allow to bring more feature for type checker in future.

Why Nature? I was looking for a name to replace Type. Type name already carries much information, as well can be confused with reflect.Type. Nature name should be understood as "nature of the node", same as "type of the node".
2024-06-01 00:09:22 +02:00
Anton Medvedev 1960bc8e9d Improve compilation for detached tree parts 2024-05-30 21:45:13 +02:00
Anton Medvedev cd8bf976e1 Fix check.yml 2024-05-27 12:28:18 +02:00
Anton Medvedev 9ea9a6e184 Fix coverage reporting 2024-05-27 12:25:09 +02:00
Anton MedvedevandGitHub 0308dbbbb4 Fix function calls with int64 params (#663)
Fixes #661
2024-05-27 12:05:19 +02:00
Anton Medvedev c8b0171f3a Return tree on parse errors 2024-05-18 23:41:49 +02:00
Anton Medvedev 0d07afb7ae Add checker.ParseCheck func 2024-05-18 23:13:58 +02:00
Anton Medvedev 0a33193f26 Fix build for 386 and add build.yml workflow 2024-05-17 21:40:50 +02:00
Anton MedvedevandGitHub 19b2c3848f Add checks for nil before string casts in VM (#654) 2024-05-17 19:40:20 +02:00
Anton MedvedevandGitHub 696844a709 Refactor lexer (#653) 2024-05-17 18:10:26 +02:00
Anton Medvedev 71e349971e Add better error messages for index out of bounds errors 2024-05-12 11:55:15 +02:00
Anton Medvedev cea9c8ae86 Add int overflow checks 2024-05-09 17:22:41 +02:00
Anton Medvedev 7af1ec6a15 Improve now() and date() validation 2024-05-08 22:27:02 +02:00
Anton Medvedev 1ae9d68e8f Update docs 2024-05-08 22:20:37 +02:00
Anton Medvedev 77e80fe655 Remove implicit date's timezone set on parse 2024-05-08 10:04:54 +02:00
Anton Medvedev c2418bddaf Add go 1.22 to tests 2024-05-08 00:25:10 +02:00
Anton MedvedevandGitHub 68e3148c1f Vendor testify (#642) 2024-05-08 00:24:35 +02:00
Anton Medvedev c6cd675d6b Add default timezone option expr.Timezone() 2024-05-07 23:19:39 +02:00
Anton Medvedev 1659126046 Add timezone() builtin 2024-05-07 21:36:22 +02:00
Anton Medvedev 3ceff1cdb3 Fix printing on conditional/binary nodes
Fixes #613
2024-04-16 23:23:12 +02:00
Anton Medvedev c8f7d22462 Return proper nil from optional chain
Fixes #570
2024-04-16 23:11:01 +02:00
Anton Medvedev 199f26c7e3 Update sortBy docs 2024-04-14 08:56:31 +02:00
Anton Medvedev ba3bae5017 Add more optimizer tests 2024-04-13 23:50:53 +02:00
Anton Medvedev c5dfe3a811 Make count() predicate optional 2024-04-13 23:38:35 +02:00
Anton Medvedev d8d1d9ebf4 Code style 2024-04-13 23:18:59 +02:00
Anton Medvedev 8589d34039 Add sum([]) optimization 2024-04-13 23:16:08 +02:00
Anton Medvedev 27b20607f1 Add sum(map()) optimization 2024-04-13 22:50:11 +02:00