KtorZ
5b7147fc43
Remove leading '#' for tuple definitions.
...
This possibly breaks many Aiken programs out there, but it's for the
best. We haven't released the alpha yet so we still have a bit of
freedom when it comes to breaking change.
Plus, the migration path is easy, simply run:
```
find . -name "*.ak" | xargs sed -i "s/#(/(/g"
```
(or `-i ''` on MacOS).
2023-01-14 20:22:19 +01:00
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
KtorZ
b791131fd0
Small tweak on error messages; better grammer.
2023-01-14 14:13:30 +01:00
Kasey White
7b023911af
add assert and record
...
Record is a more efficient air for making records
Assert guarantees a custom is of a certain variant.
2023-01-13 13:50:27 -05:00
Kasey White
1721c3945b
Refactors:
...
Add test 40
refactor how we get data type from type
Call contains type now to handle certain record cases
2023-01-13 13:50:27 -05:00
rvcas
59ef63b513
chore: field might not always need to be plural
2023-01-11 20:47:47 -05:00
rvcas
99a334b132
fix(check): the expected arity with hardcoded to 0
2023-01-11 20:47:47 -05:00
rvcas
3be05b1545
fix(fmt): error fmt was removing label
2023-01-11 19:47:11 -05:00
Kasey White
eac8f7a80e
replace discard assignment with nothing
2023-01-11 09:46:37 -05:00
rvcas
6ea9ad9c41
chore: clippy warnings
2023-01-09 18:12:18 -05:00
Kasey White
ce2de96226
clippy fix
2023-01-08 19:42:49 -05:00
Kasey White
42c8d50fa1
feat: finish record update
2023-01-08 19:42:49 -05:00
Kasey White
ea135e6f42
refactor term::apply to apply_wrap. Fixed a list eq binop
2023-01-08 19:42:49 -05:00
rvcas
d649b34ec3
Release 0.0.28
...
aiken@0.0.28
aiken-lang@0.0.28
aiken-lsp@0.0.28
aiken-project@0.0.28
uplc@0.0.28
Generated by cargo-workspaces
2023-01-06 13:41:00 -05:00
Kasey White
1a29ee3b72
my discard add got lost in the rebasing -_-
2023-01-06 14:23:46 +01:00
Kasey White
dc052bf9b8
fix nested lists without removing discard pop
...
Also fix bool constants created as a data type like in a list
start on record update
fix: nested list issues in when statements
2023-01-06 14:23:45 +01:00
KtorZ
4b34617466
Revert "fix: nested list issues in when statements"
...
This reverts commit 542962a2ea
.
2023-01-06 06:50:42 +01:00
Kasey White
542962a2ea
fix: nested list issues in when statements
2023-01-03 01:31:18 -05:00
Kasey White
67e4ff8317
feat: allow functions from prelude
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-31 00:09:02 -05:00
Kasey White
e495eefb34
feat implement tuple index
2022-12-31 00:09:02 -05:00
Kasey White
3514e66234
Fix to variant name creation for dependencies.
...
Last few changes to go Tuple Index,
Assert, Check, not
change test 35 to produce intended functionality
2022-12-30 14:01:11 -05:00
Kasey White
b0ea187151
better data deserialization errors and test hint
...
now runs even being in a sequence
2022-12-30 14:01:11 -05:00
rvcas
ee678f2978
Release 0.0.27
...
aiken@0.0.27
aiken-lang@0.0.27
aiken-lsp@0.0.27
aiken-project@0.0.27
flat-rs@0.0.27
uplc@0.0.27
Generated by cargo-workspaces
2022-12-30 00:57:49 -05:00
Kasey White
34d398ab3b
fix dependencies ordering so now test 34 passes
2022-12-29 17:14:23 -05:00
Kasey White
306fa891a0
validator params are now converted to type from data
2022-12-29 17:14:23 -05:00
KtorZ
85a6a711e1
Add more colors to error messages.
...
And, let 'formatdoc' insert newlines when relevant to
format the text to the same column length.
2022-12-29 17:38:34 +01:00
KtorZ
3139c85fe8
Support declaring bytearray literals as base16 strings.
2022-12-29 13:08:58 +01:00
KtorZ
1701cacb52
Add builtin functions to the prelude
...
Starting with 'not', will add 'always' and 'identity' later.
2022-12-29 12:05:30 +01:00
Kasey White
cce76bbd63
fix issue with constructor clauses and clause props
2022-12-28 18:00:11 -05:00
KtorZ
c4c0ace3a6
Align warnings message's style with errors.
2022-12-28 18:45:04 +01:00
KtorZ
7c1b8e8f3b
Map remaining relevant builtins.
2022-12-28 18:27:28 +01:00
KtorZ
f2e716dd86
Fix else/if formatter.
2022-12-28 17:55:11 +01:00
KtorZ
bae8267f18
Fix formatter for unary operation
...
Was wrongly converting any unary operation into '!'
2022-12-28 17:51:00 +01:00
Kasey White
722117bfc4
one minor scope fix
2022-12-27 22:33:09 -05:00
Kasey White
551d4eea93
fix test 28
2022-12-27 22:33:09 -05:00
Kasey White
010024fb95
fix: acceptance test 031
...
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-27 22:33:09 -05:00
Kasey White
083b7fcb5f
feat: support negation of int
...
* add unary op
* parse, typecheck, and code gen it
* express boolean not as unary op as well, previously called negate
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-27 20:39:03 -05:00
Kasey White
542e39f093
feat: finish up zero arg issues with dependencies
2022-12-27 19:35:08 -05:00
Kasey White
30487cc232
fix test 23
2022-12-27 19:35:08 -05:00
Kasey White
919ea6c723
tuple destructuring nested and not now works
2022-12-27 19:35:08 -05:00
Kasey White
a08c615da4
checkpoint
2022-12-27 19:35:08 -05:00
Kasey White
b7d506a8db
nested lists now work
2022-12-27 19:35:08 -05:00
Kasey White
6126ee4cb4
checkpoint
2022-12-27 19:35:08 -05:00
rvcas
38a716d94e
feat: allow error to hold a label
2022-12-23 15:52:44 -05:00
rvcas
37196a29ee
feat: error keyword
2022-12-23 15:52:44 -05:00
KtorZ
7b9ea5dabb
Add links to the user-manual to errors, when applicable.
2022-12-23 19:50:14 +01:00
KtorZ
69f060e675
Rework all errors to provide better help text.
2022-12-23 19:27:06 +01:00
KtorZ
c47c50ffb8
Show most type-checking error on a single line; reads better.
2022-12-23 00:25:18 +01:00
KtorZ
ce0c6e0d0f
Use smart-constructor for UnexpectedLabeledArg errors.
...
Reduce duplications and keep the formatting of the error inside the error module.
2022-12-23 00:24:57 +01:00
KtorZ
dca633da48
Refactor 'UnknownVariable' and 'UnknownTypeConstructor' as smart-constructor.
2022-12-23 00:09:07 +01:00