Commit Graph
957 Commits
Author SHA1 Message Date
13992b0526 Ignoring fields with struct tag expr:"-" and make "in" return false for unexported fields (#806)
* allow ignoring struct member using a - in expr struct tag

* fix in operator

* simplify logic

* add regression test for #807

* fixes #807: make in operator return false for unexported struct fields

---------

Co-authored-by: Anton Medvedev <[email protected]>
2025-06-30 20:14:08 +02:00
Diego Augusto MolinaandGitHub fefc347053 Improve parser and lexer (#811)
* convert source to a struct and fix minor issue displaying error

* lexer: add byte and char pos

* improve parser to use string instead of []rune

* add lexer benchmarks

* make lexer work as an iterator

* make parser use the new iterator API in lexer

* allow reusing the parser

* cleanup code

* add parser benchmarks
2025-06-30 20:08:46 +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
483e066175 Add check for non struct types to fetchField (#794)
Co-authored-by: yigitkanbalci <[email protected]>
2025-05-27 12:13:35 +02:00
Vincent BernatandGitHub c76a6cf3e8 Do not repeat patcher definition in ExamplePatch() (#792)
I suppose at some point, godoc was not smart enough to display the
definitions used in the body of examples in the documentation. This is
not the case anymore: https://pkg.go.dev/github.com/expr-lang/expr#example-Patch
2025-05-26 10:03:53 +02:00
2pacandGitHub 9e10dcd6b4 fix(785): get to work when return is nil (#786)
* fix(785): `get` to work when return is `nil`

* improve testing
2025-05-12 18:32:48 +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
2pacandGitHub 0f20d93e5a chore: Added SOLO to the companies list (#769)
Signed-off-by: 2pac <[email protected]>
2025-03-13 14:10:14 +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
18e2e03c5a Allow tailing comma in arguments (#623)
* feat: extract code for compiling equal operator

* feat: support last argument append with comma

---------

Co-authored-by: Anton Medvedev <[email protected]>
2025-03-09 10:45:17 +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