aiken/crates
KtorZ 2d99c07dd3 Support (and default to) parenthesis for block expressions
This changes allow to use parenthesis `(` `)` to encapsulate
  expressions in addition to braces `{` `}` used to define blocks.

  The main use-case is for arithmetic and boolean expressions for which
  developers are used to using parenthesis. For example:

  ```
  { 14 + 42 } * 1337
  ```

  can now be written as:

  ```
  ( 14 + 42 ) * 1337
  ```

  This may sound straightforward at first but wasn't necessarily trivial
  in Aiken given that (a) everything is an expression, (b) whitespaces
  do not generally matter and (c) there's no symbol indicating the end
  of a 'statement' (because there's no statement).

  Thus, we have to properly disambiguate between:

  ```
  let foo = bar(14 + 42)
  ```

  and

  ```
  let foo = bar
  (14 + 42)
  ```

  Before this commit, the latter would be interpreted as a function call
  and would lead to a somewhat puzzling error. Now, the newline serves
  as a delimiting symbol. The trade-off being that for a function call,
  the left parenthesis has to be on the same line as the function name
  identifier -- which is a fair trade off. So this is still allowed:

  ```
  let foo = bar(
    14 + 42
  )
  ```

  As there's very little ambiguity about it.

  This fixes #236 and would seemingly allow us to get rid of the leading
  `#` in front of tuples.
2023-01-14 11:49:45 -05:00
..
aiken feat(check): change some logic around and add --exact-match 2023-01-10 11:46:44 -05:00
aiken-lang Support (and default to) parenthesis for block expressions 2023-01-14 11:49:45 -05:00
aiken-lsp Release 0.0.28 2023-01-06 13:41:00 -05:00
aiken-project Slightly edit module matching logic for conciseness/clarity 2023-01-10 18:41:02 +01:00
flat-rs Release 0.0.27 2022-12-30 00:57:49 -05:00
uplc Release 0.0.28 2023-01-06 13:41:00 -05:00