Leandro Pacheco
abbe26618f
Instructions with link statements ( #1439 )
...
Allow VM instructions to use the `link` notation, unifying the way
machines are linked from VMs and block machines.
Previous syntax for "external instructions" not allowed anymore, and
should use the new `link` syntax.
2024-06-18 17:31:38 +00:00
Thibaut Schaeffer
5f6e1cd0f3
Move parentheses tests to ast ( #1448 )
...
For consistency with #1444 , no changes to the tests themselves.
2024-06-18 08:16:14 +00:00
chriseth
970c567415
Add end to source ref ( #1402 )
2024-06-04 14:57:18 +00:00
chriseth
adee683796
Refactor error to use SourceRef ( #1398 )
2024-05-31 14:47:05 +00:00
chriseth
9ee58fe7d0
Store contents in SourceRef and change to offset instead of line/col. ( #1396 )
2024-05-28 15:33:38 +00:00
Gastón Zanitti
0d9669e26c
SourceRef in expressions ( #1357 )
...
This PR solves issue https://github.com/powdr-labs/powdr/issues/1293 .
Includes PRs that modify some Expression in order to match fields. It is
recommended to review/merge those first:
- #1351
- #1352
- #1353
- #1354
- #1355
All comments are welcome :)
---------
Co-authored-by: chriseth <chris@ethereum.org >
2024-05-26 16:52:07 +00:00
Gastón Zanitti
0757e57e8d
BlockExpression struct in Expressions ( #1355 )
...
This PR is part of issue https://github.com/powdr-labs/powdr/pull/1345 .
In particular, it adds the struct BlockExpression to Expressions to
homogenize the structure before including source references.
2024-05-23 10:56:54 +00:00
Gastón Zanitti
c10ffb1fe1
MatchExpression struct in Expressions ( #1354 )
...
This PR is part of issue https://github.com/powdr-labs/powdr/pull/1345 .
In particular, it adds the struct MatchExpression to Expressions to
homogenise the structure before including source references.
2024-05-22 18:10:56 +00:00
Gastón Zanitti
98da4955de
UnaryExpression struct in Expressions ( #1352 )
...
This PR is part of issue https://github.com/powdr-labs/powdr/pull/1345 .
In particular, it adds the struct UnaryOperation to Expressions to
homogenise the structure before including source references.
2024-05-22 08:48:29 +00:00
Gastón Zanitti
29b0ee6672
BinaryExpression struct in Expressions ( #1351 )
...
This PR is part of issue #1345 .
In particular, it adds the struct BinaryOperation to Expressions to
homogenise the structure before including source references.
---------
Co-authored-by: Thibaut Schaeffer <schaeffer.thibaut@gmail.com >
2024-05-21 17:58:30 +00:00
Leo
34d04ed873
move internal dependencies to shared version ( #1379 )
...
Trying this out which will make releases much easier
2024-05-15 10:46:34 +00:00
Gastón Zanitti
3f2792f98f
Number struct in Expressions ( #1353 )
...
This PR is part of issue https://github.com/powdr-labs/powdr/pull/1345 .
In particular, it adds the struct Number to Expressions to homogenize
the structure before including source references.
2024-05-10 08:06:01 +00:00
Amin Latifi
9472671b9b
Reduce Number of Expression Parentheses ( #1289 )
...
Adds binary operation precedence support to avoid unnecessary
parentheses in expression printed format
- #962
---------
Co-authored-by: chriseth <chris@ethereum.org >
2024-05-09 07:33:26 +00:00
chriseth
62c3eadc4c
Re-enable non-inlined format args ( #1362 )
...
Fixes https://github.com/powdr-labs/powdr/issues/1360
2024-05-08 16:27:22 +00:00
chriseth
3e43e33796
Constr as user-defined enum ( #1252 )
...
Turns some of the built-in types into user types in the prelude.
2024-05-01 10:29:19 +00:00
Leandro Pacheco
930f24ac43
small improvements to machine properties handing ( #1321 )
...
- change lalrpop parsing errors to `String` to allow formatted msgs
- implement Display for MachineProperties and MachineArguments
2024-04-26 10:52:10 +00:00
Leandro Pacheco
cea207ff3f
Machine properties using with syntax ( #1267 )
...
This implements issue #1251 .
Basically `machine Foo(a,b) { ... }` is now `machine Foo with latch: a,
operation_id: b { ... }`
2024-04-25 16:02:01 +00:00
chriseth
3643af03dd
Generic enums ( #1222 )
2024-04-18 12:30:03 +00:00
chriseth
b2e0beef36
Enum pattern ( #1216 )
2024-04-17 13:11:09 +00:00
chriseth
161f4d8181
Parse turbofish ( #1219 )
2024-04-04 16:31:11 +00:00
chriseth
3960f8c6e5
Make degree optional for namespace. ( #1235 )
2024-04-04 12:33:23 +00:00
chriseth
6096afb218
Patterns in let statements and function parameters ( #1214 )
...
Co-authored-by: Leo <leo@powdrlabs.com >
2024-04-03 18:39:19 +00:00
chriseth
4e5c464df4
Flexible array pattern ( #1208 )
...
Depends on #1205
Will document in https://github.com/powdr-labs/powdr/pull/1214
2024-04-03 11:48:07 +00:00
chriseth
f46d59dfe1
Basic version of patterns. ( #1205 )
...
Depends on #1187
Implements part of https://github.com/powdr-labs/powdr/issues/982
Will document in https://github.com/powdr-labs/powdr/pull/1214
2024-04-03 09:30:42 +00:00
chriseth
28f0bb9c1d
Statements in blocks and function annotations ( #1187 )
...
Adds statements at block level and introduces function kinds to be
either pure, constr or query.
closes https://github.com/powdr-labs/powdr/issues/960
---------
Co-authored-by: Leo <leo@powdrlabs.com >
2024-04-02 08:23:39 +00:00
chriseth
f91350e9da
Support the empty tuple. ( #1213 )
2024-04-01 17:22:23 +00:00
chriseth
989087634c
Some dependency cleanup. ( #1209 )
2024-03-28 12:23:35 +00:00
chriseth
f42ca35f83
Let statements in expressions. ( #1138 )
...
Allows braced blocks everywhere where expressions are expected.
The statements in those blocks can be `let x` or `let x = ...`.
The former declares a new witness column, the latter just binds a local
variable.
fixes #959
2024-03-25 21:08:45 +00:00
schaeff
8065794633
allow expression in degree statement
2024-03-22 19:20:29 +01:00
chriseth
3bc1ec0f90
Wrap match.
2024-03-21 16:27:13 +01:00
Georg Wiese
80fafbe19c
Spell-check
2024-03-20 16:12:55 +01:00
chriseth
ae8f8654b1
Merge pull request #1118 from powdr-labs/challenges
...
Challenges
2024-03-20 12:07:06 +00:00
chriseth
e1753fd88e
Challenges and stages.
2024-03-20 12:40:51 +01:00
Leandro Pacheco
edaf536500
Allow machines to be linked via permutation
...
by instructions and links using `~` instead of `=`.
Block machines must declare `call_selectors`.
2024-03-20 08:17:21 -03:00
Leo Alt
efe11f40fc
enum declarations
2024-03-18 22:09:44 +01:00
Leandro Pacheco
ff8fda1563
Expressions in instr/link params
...
allow for `link` and RHS of `instr` params to use full on expressions
2024-03-18 14:04:08 -03:00
chriseth
9366badcac
Rename format type name and remove Custom.
2024-03-12 11:16:02 +01:00
Leo
2db12b2374
Merge pull request #1149 from powdr-labs/parse_semicolons_as_part_of_statements
...
Parse semicolons as part of statements.
2024-03-11 17:29:34 +00:00
chriseth
dc05b9c56e
Use only one type type.
2024-03-11 18:01:40 +01:00
chriseth
ab7e4e9a3b
Parse semicolons as part of statements.
2024-03-11 17:49:15 +01:00
chriseth
349f9aa461
Parse numbers as integers.
2024-03-08 15:48:49 +01:00
chriseth
4024698b2a
Use ibig crate.
2024-03-08 07:31:27 +01:00
Lucas Clemente Vella
08ace88416
Nightly fix: ignoring env_logger on cargo udeps.
...
cargo udeps doesn't undertand why env_logger is needed on development
dependencies
2024-03-05 18:54:10 +00:00
chriseth
9f4f4776e8
Use powder_number::BigInt / BigUint everywhere instead of num_bigint.
2024-03-05 15:32:39 +01:00
chriseth
ba64512321
Rename AbstractNumberType to BigUint.
2024-03-05 15:24:21 +01:00
Leo
88c9d735b7
Merge pull request #1070 from powdr-labs/link_params
...
Move `link` params to RHS
2024-03-04 13:40:25 +00:00
Leandro Pacheco
f3e1802787
move link params to RHS and simplify the code
...
- added more checks for pc machines / constrained machines
- improve example and docs
2024-03-04 09:55:37 -03:00
chriseth
97ed14c48b
Type checking.
2024-03-01 17:36:54 +01:00
chriseth
daffb65c0c
Add type schemes.
2024-02-22 13:39:39 +01:00
Leandro Pacheco
2e1a8571a7
instr param mapping
...
allow RHS of `instr` declarations to control the usage of write and assignment
registers.
2024-02-14 13:31:19 -03:00