Commit Graph

33 Commits

Author SHA1 Message Date
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
34c8a58391 feat: complete language tour 2022-11-30 15:35:55 -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
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
KtorZ
550f20c5e6 Fix deadlink in the book. 2022-11-24 10:10:32 -05:00
rvcas
c37eaca763 docs: add language tour outline 2022-11-22 21:11:25 -05:00
rvcas
f0597f4472 fix: vim plugin link 2022-11-22 21:11:24 -05:00
rvcas
c4c3773e57 fix: better wording, thanks @L-as 2022-11-22 21:09:50 -05:00
rvcas
882f07ccef fix: some typos in the docs 2022-11-22 18:47:40 -05:00
rvcas
0deed535db fix: some wording 2022-11-22 14:32:31 -05:00
rvcas
32104f8c47 feat: add a comparison section to the book 2022-11-22 14:22:07 -05:00
KtorZ
deab41b9e1 Add 'getting-started' first draft.
Mostly to have a place to list editors integrations.
2022-11-10 15:47:02 +01:00
KtorZ
c5b1316d8e Cleanup book and extended documentation about UPLC 2022-10-29 20:44:54 +02:00
rvcas
2e5fdb12d9 chore: update roadmap 2022-10-24 00:12:39 -04:00
rvcas
e67aa7b943 chore: update readme and book 2022-10-20 14:10:03 -04:00
rvcas
85d7faf0f8 feat: start some mdbook layout 2022-10-06 15:23:07 -04:00
Ch1n3du
71dbb3ad44 chore: Fixed some ci issues 2022-09-26 10:06:14 -04:00
Ch1n3du
c42b75def8 feat: Added skeleton and gh action for mdbook 2022-09-26 10:06:14 -04:00