rvcas
4129cf92c9
chore: commit assets
2022-12-05 14:18:44 -05:00
Kasey White
29a30aa61f
feat: finished when constr is for IR and code gen
2022-12-05 14:18:44 -05:00
Kasey White
3fb3a3240a
checkpoint
2022-12-05 14:18:44 -05:00
rvcas
86ea41adc3
feat: start when expressions
2022-12-05 14:18:44 -05:00
Kasey White
8b24a66b7e
add field access and list patterns are finished
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
Kasey White
abe29a3883
make progress on list deconstruction with IR
2022-12-05 14:18:44 -05:00
Kasey White
2a00b896fc
create ir and start to replace plutus code gen with ir
2022-12-05 14:18:44 -05:00
Kasey White
6870a5cab7
fix minor scope issue
2022-12-05 14:18:44 -05:00
Kasey White
e3267310c5
remove unListData
2022-12-05 14:18:44 -05:00
rvcas
84da69411d
chore: fix test
2022-12-04 21:12:29 -05:00
rvcas
f2c359f9d5
test(parser): add record creation tests
2022-12-04 21:12:29 -05:00
rvcas
85f839abe4
feat: support punning in record updates
2022-12-04 21:12:29 -05:00
rvcas
9ebc836b89
feat: handle punning in a non-ambiguous way
2022-12-04 21:12:29 -05:00
rvcas
391849bf37
feat: parser improvements
...
- record creation with punning
- disambiguate if condition from record creation with punning
- split parser tests up into many smaller ones
2022-12-04 21:12:29 -05:00
KtorZ
375499930a
Add UPLC support for 'ProtoList' & 'ProtoPair' constants
...
Supersedes #35 .
The syntax for these elements isn't "set in stone"; in the sense that it is unspecified in [input-output-hk/plutus](https://github.com/input-output-hk/plutus ). There's no visible plan from IOG to extend the Haskell parser to support this syntax, though there are samples of imagined syntax in the code. Thus, we can lead the way and simply choose a suitable syntax and let the Haskell implementation align to it later.
This syntax is thus inspired from input-output-hk/plutus' samples, with only a small change: we use `<` and `>` for encapsulating type declaration instead of `(`, `)`. There are already enough parentheses in the UPLC syntax, adding more reduces visibility.
Doing this, I've also added a lot more test cases for the UPLC parser. There could be more, but this is a good start.
Here are some example programs (taken from test cases) utilizing this syntax:
```
(program 0.0.0 (con list<bytestring> [#00 , #01 ]))
```
```
(program 0.0.0
(con pair
<integer, integer>
[14, 42]
)
)
```
```
(program 0.0.0
(con pair<string, list<integer>> ["foo", [14, 42]])
)
```
_(Note that this was mainly done as an exercise to get more familiar with Rust and parts of Aiken.)_
2022-12-03 10:16:16 -05:00
rvcas
5ec93a8692
feat: format bytearrays
2022-12-01 15:28:15 -05:00
rvcas
fedafed845
feat: add module constants
2022-12-01 15:28:15 -05:00
rvcas
34c8a58391
feat: complete language tour
2022-11-30 15:35:55 -05:00
rvcas
0823b78bf8
feat: some new features
...
- tuples `#(Int, Int)`
- `trace` and `trace("text")`
2022-11-28 22:33:53 -05:00
eyelash
6066e3176c
move `to_string()` outside of the match
2022-11-28 17:30:45 -05:00
rvcas
2d5ed86a68
chore: some requested changes to comparsisons
2022-11-27 15:25:55 -05:00
Micah Kendall
919eebbd97
check clarification from rvcus
2022-11-26 10:33:06 -05:00
Micah Kendall
9b027f0051
Assert
2022-11-26 10:33:06 -05:00
Micah Kendall
58ee2c39a6
Check
2022-11-26 10:33:06 -05:00
Micah Kendall
45edc3e622
Tuples
2022-11-26 10:33:06 -05:00
Micah Kendall
be4e489380
Type-aliases explanation
2022-11-26 10:33:06 -05:00
Micah Kendall
568192cc52
String explanations
2022-11-26 10:33:06 -05:00
Micah Kendall
8279c592df
fix typo
2022-11-26 10:33:06 -05:00
Micah Kendall
f8b967b5f1
Todo explanation with example
2022-11-26 10:33:06 -05:00
Micah Kendall
3fab7cde69
case->whereif 2
2022-11-26 10:33:06 -05:00
Micah Kendall
a1a0465a3d
+lines, -lines, +best practice avoid access by index
2022-11-26 10:33:06 -05:00
Micah Kendall
2ed0b1ed14
+overflow in ints
2022-11-26 10:33:06 -05:00
Micah Kendall
2479b94b67
More boolean examples, similar to gleam book. Also, explain correspondence to plutus primitives.
2022-11-26 10:33:06 -05:00
Micah Kendall
9b3c8e432e
case->where-if in blocks.md
2022-11-26 10:33:06 -05:00
Micah Kendall
6eca7fc6ab
added matching example, made block example about blocks returning values, not all blocks
2022-11-26 10:33:06 -05:00
vh-zuka
269cf8c13f
fix: update aiken new
2022-11-26 10:30:41 -05:00
Micah Kendall
7dc5392a81
More docs
2022-11-25 01:44:03 -05:00
Micah Kendall
77e3b57ff0
basic docs
2022-11-25 01:44:03 -05:00
rvcas
d5087dbcc7
fix: it's more consistent to have snakecase builtins
2022-11-24 18:36:22 -05:00
rvcas
67d160230b
feat: new build command flag
...
- `uplc` to optionally dump raw uplc
2022-11-24 18:17:03 -05:00
Kasey White
1c3511b073
insert def should run after all sequences have run
2022-11-24 17:51:49 -05:00
Kasey White
6babebde28
feat: support self recursion functions and fix making constrs
2022-11-24 15:19:32 -05:00
rvcas
09e77e1918
feat: display named source
2022-11-24 11:38:43 -05:00
KtorZ
550f20c5e6
Fix deadlink in the book.
2022-11-24 10:10:32 -05:00
KtorZ
fc66c2611b
Implement a foundation for the aiken standard library for lists.
2022-11-24 10:10:32 -05:00
rvcas
ba8855add9
fix: implicit discard in list patterns
2022-11-24 10:06:54 -05:00
rvcas
a70ebb5c32
chore: format swap file
2022-11-23 21:09:06 -05:00
rvcas
27e0286d01
fix: most places should allow trailing comma
2022-11-23 21:09:06 -05:00
rvcas
c07b9a1a81
feat: allow assignments to be cast to other types
2022-11-23 21:09:06 -05:00
rvcas
34d7a28351
feat: add check keyword and new assignment syntax
2022-11-23 21:09:06 -05:00