Commit Graph

506 Commits

Author SHA1 Message Date
Anand Krishnamoorthi 7789de41b6 Statement Scheduler Implementation
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-04-09 20:28:59 -07:00
Anand Krishnamoorthi 6738eeed3c Remove unnecessary lifetime
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-07 21:27:27 +05:30
Anand Krishnamoorthi cba0af0d3f json.filter, object.filter, object.get, object.keys, object.remove
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-07 21:27:27 +05:30
Anand Krishnamoorthi 6b637e9151 conversion::to_number builtin
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi 112623c762 tracing::trace builtin
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi 81f6199642 bitwise builtins
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi ec695bd22e debugging::print builtin
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-05 16:39:42 +05:30
Anand Krishnamoorthi c5ea737200 Partial sprintf implementation.
This needs to be flushed out to be compatible with https://pkg.go.dev/fmt.
All the features of the go format string don't need to be implemented,
only those that are relevant for Rego.

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-04 17:12:18 +05:30
Anand Krishnamoorthi ea47de919c All string functions except sprintf. TODO: Add tests
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi f9897085cf More string functions without tests
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi 3c3cd312fc More string functions
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi 27c5afd8ee strings: concat and contains
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi 89e26e37a2 string concat (WIP)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi e93b33ea05 Support build on non Linux platforms
cargo config
1. MUSL is no longer the default target. This allows building on Mac and Windows.
2. On Linux, code coverage compiler options are supplied by default.

pre-commit, pre-push
- Coverage is turned on only on Linux
- clippy is run on all platforms

github
- MUSL build is tested to ensure that stand alone executables can be created

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-03-01 15:45:44 +05:30
Anand Krishnamoorthi 608f1592e8 Prepare for upstreaming
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 32028a311e Test for multi-assign
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 8e0ddbcff2 Support dependencies between vars defined in same statement
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 34eee1f17f Statement scheduler (WIP)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 0ae24110cb Print small-form table of files without 100% coverage.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 379d4631a5 Code tweaks to improve coverage
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 31e1c63281 Tests for aggregates builtins
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 6b87e99fb9 Tests for numbers builtins
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 17257f9f1d Tests for arrays builtins
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi c4ae2d4cc2 Tests for types functions
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi ae3866b1ab Destructuring of arrays and objects in some-in expressions
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi cf4fbdbb90 some .. in implementation
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi eded43bdc6 Fix key, value in membership and some-in
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 3549931342 refactor
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi d84096024d Arrays and Aggregates
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 351483d100 Implement every statement (#4)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 2a1924efa5 Set loop index variable if not "_" (#3)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 267b76e4d3 Allow comprehensions in default value. (#2)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi 12c3d26476 Lock down numbers
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi a8a1d4b820 mod function
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi b30fc2599c Builtin functions for numbers (WIP)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-28 09:38:40 +05:30
Ming-Wei Shih 24911e6807 Merge pull request #7 from anakrish/main
Implement comparison operators. Formalize semantics.
2023-02-13 13:23:00 -08:00
Anand Krishnamoorthi 53030c4ada Implement comparison operators. Formalize semantics.
Rename compare.rs to comparison.rs to match OPA documentation of builtins.

Also update loop handling to ensure that the current scope is restored after
each iteration of the loop so as to undo side effects of the iteration.

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-12 22:19:16 -08:00
Ming-Wei Shih fd5140a5a8 Rework assign operations (#6)
Support "var = value", "value = var", and "var = var"
Fall back the '=' to comparsion when both operators are defined
Correctly support variable shadowing with "var := value"

Also, remove the unused Variable struct

Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
2023-02-11 06:37:04 +05:30
Ming-Wei Shih 1001afbb28 Merge pull request #5 from anakrish/main
Locked down supported values in default rule.
2023-02-10 08:32:18 -08:00
Anand Krishnamoorthi 3a3bbcdb7d Locked down supported values in default rule.
Only scalars, composites and comprehensions containing scalars are supported.
This will be changed as OPA fixes bug with default values

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-10 06:13:42 -08:00
Anand Krishnamoorthi c92707433e Improvements to github workflow (#4)
- format check
- clippy checks
- build tests separately before running

Also fix clippy warnings

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-10 11:16:09 +05:30
Anand Krishnamoorthi dc0720b32a Merge pull request #3 from anakrish/main
Update name to regorus
2023-02-10 10:08:33 +05:30
Anand Krishnamoorthi 980a5d4772 Update name to regorus
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-09 20:33:39 -08:00
Ming-Wei Shih 4c3df24a09 Update rust.yml 2023-02-09 14:41:00 -08:00
Ming-Wei Shih db0a4607a9 Add simple git action 2023-02-09 14:37:22 -08:00
Ming-Wei Shih 67ae4066d5 Merge pull request #2 from mingweishih/update_license
Update license
2023-02-09 11:42:20 -08:00
Ming-Wei Shih b2aca43e64 Add missing config.toml
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
2023-02-09 19:40:47 +00:00
Ming-Wei Shih c0972ad2ba Update license to MIT
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
2023-02-09 19:40:35 +00:00
Ming-Wei Shih 8218053c24 Merge pull request #1 from anakrish/main
Code from github.com/anakrish/rego-rs
2023-02-09 11:11:05 -08:00
Anand Krishnamoorthi cb0b3a1790 Code from github.com/anakrish/rego-rs
Authored by anakrish and mingweishih

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-09 10:56:54 -08:00