Commit Graph

176 Commits

Author SHA1 Message Date
KtorZ
e1065e892a Support module constants in docs. 2022-12-17 01:02:21 +01:00
KtorZ
873bd85d8b Implement modules' extra, to get function & module comments in docs. 2022-12-17 01:02:21 +01:00
KtorZ
b323c95241 Fix type-parameter pretty printing (use chevrons) 2022-12-17 01:02:20 +01:00
KtorZ
d2c6d27545 Support data-types in documentation. 2022-12-17 01:02:20 +01:00
rvcas
0188003323 refactor: move helper option builder to lang 2022-12-15 13:28:30 -05:00
rvcas
42f8a694f4 tests: missing token broke a test 2022-12-15 11:12:35 -05:00
rvcas
53bc9aa56f fix: properly capture empty lines 2022-12-15 11:12:35 -05:00
KtorZ
5024bd884c Remove debug line for pretty-printing test, and add '--debug' flag to 'check instead. 2022-12-15 02:02:10 +01:00
KtorZ
e5972640d2 Remove 'eval' command.
Was introduced as a work-around to get some debugging info out of scripts, but tests do now provide the same capability with a better output and, do so automatically.
2022-12-14 22:14:35 +01:00
KtorZ
978a6c6981 Collect and display evaluation hints on test failures. 2022-12-14 22:00:56 +01:00
Kasey White
3c664b9651 test 1-9 passing 2022-12-14 09:45:26 +01:00
rvcas
b71315ba2f chore: trying to fix test 5 2022-12-14 09:45:26 +01:00
Kasey White
6635a918b5 clean up minor warnings 2022-12-14 09:45:26 +01:00
KtorZ
b6962ba9d3 Add 'eval' command to evaluate target aiken function
Pretty useful for debbugging. Though, on second-thoughts, this is
  something we may want to review later and maybe have that done by
  default for tests.

  At the moment, we expects tests to unify to `bool`, and treat `false`
  values as failing tests. Yet, on failures, this gives little
  information about what's wrong with the test.

  It'd be nice to either have better way to assert in tests, or, to
  simply accept non-bool tests, and show whatever the test evaluates
  to as a debug output.
2022-12-14 09:45:26 +01:00
rvcas
11c793dd2a feat(Type): add is_option method 2022-12-14 09:45:25 +01:00
Kasey White
8393d8555c fill constants to data so now test 006 passes 2022-12-14 09:45:25 +01:00
Kasey White
dc5ae296db implement anonymous functions, more tests pass now 2022-12-14 09:45:25 +01:00
Kasey White
d78e2c9c6f feat: finish up generic match cases 2022-12-14 09:45:23 +01:00
Kasey White
e43063d447 overhaul monomorphize to cover all generic cases
test b passes
2022-12-14 09:45:23 +01:00
Kasey White
15dc202810 Feat: generic function call tests work 2022-12-14 09:45:23 +01:00
Kasey White
e4d9ca4586 support generics 2022-12-14 09:45:23 +01:00
rvcas
16fbf5bbcd feat: fix recursive functions 2022-12-14 09:45:22 +01:00
Kasey White
3d3b3d7e10 checkpoint 2022-12-14 09:45:22 +01:00
KtorZ
95986fed83 Fix lexer for signed integers. 2022-12-13 19:52:30 -05:00
KtorZ
18bf89418a Fix codegen for binary operator 'or'
a && b → if a { b } else { false }
  a || b → if a { true } else { b }
2022-12-13 18:52:23 -05:00
KtorZ
431b0cfcf2 Preserve newlines after blocks of comments.
This is an example of output from the formatter now:

  ```
  //// Some module documentation

  // foo
  const a: Int = 42

  // Some comment block
  // For which newlines are respected.
  // Foo

  // Another one

  /// add_one documentation
  pub fn add_one(n: Int) -> Int {
    // n + 1
    n + 1
  }
  ```

  before this commit, comments would all be collapsed into one group
  above the function as:

  ```
  // Some comment block
  // For which newlines are respected.
  // Foo
  // Another one
  /// add_one documentation
  pub fn add_one(n: Int) -> Int {
  ```
2022-12-13 18:52:23 -05:00
KtorZ
22a526bb13 Enforce unique top-level names for tests too.
This prevents the compiler from crashing later on. Test names should be unique and not clash with function names.
2022-12-13 18:52:23 -05:00
rvcas
69db9696d6 feat: prefix tuples with hash again cause ambguity with call 2022-12-13 10:27:17 -05:00
rvcas
6dc4738b66 feat: update formatter for new changes 2022-12-12 19:22:11 -05:00
rvcas
a4f6388eca feat: remove the need for # in front of tuples 2022-12-12 19:22:11 -05:00
rvcas
dfc57b347a feat: switch generic type args to be delimited by chevrons 2022-12-12 19:22:11 -05:00
KtorZ
749d8ecb10 Fix formatter to not prefix tests as 'pub' 2022-12-09 14:35:50 +01:00
rvcas
384c4daa4a feat: add test_gen function 2022-12-08 19:24:20 -05:00
KtorZ
bc785673b2 Fix compilation errors for the newly introduce test & add type inference.
Tests are basically functions for which the return type should unify with bool. In principle, the type checker could also check that a test function has no arguments but, a test function with arguments wouldn't parse in the first place; feels a bit hacky but it works when considering the pipeline as a whole.

  Note that the code generation is still to be done.
2022-12-08 19:24:20 -05:00
KtorZ
ea48747825 Extend parser for 'test' keyword. 2022-12-08 19:24:20 -05:00
rvcas
a65b4aa471 feat: add test def and test token 2022-12-08 19:24:20 -05:00
Kasey White
80a9b7b36a feat: add map support and tuple deconstruction in let 2022-12-08 14:28:30 -05:00
Kasey White
26d2a95618 missing a couple forces 2022-12-08 14:28:30 -05:00
Kasey White
2f7131e9b8 feat: add tuples and streamline conversion of types to and from data 2022-12-07 08:40:23 -05:00
rvcas
45990f1f84 feat: unify tuples and stdlib updates 2022-12-06 22:23:40 -05:00
Kasey White
3f47a1f4b8 fix: constr issue
- also fixed constant parsing
- added new cbor flag to eval

Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 22:55:57 -05:00
rvcas
7875af7d35 feat: better errors for incorrect contructor making 2022-12-05 18:11:04 -05:00
rvcas
7e6dc978a1 feat: commit latest build assets for sample 2022-12-05 14:18:44 -05:00
rvcas
ed3d143477 feat: rename ir to air 2022-12-05 14:18:44 -05:00
Kasey White
3e68204768 replace uplc with uplc_two and move structs over 2022-12-05 14:18:44 -05:00
Kasey White
22fbef2fbe feat: finish up binops and fix constr creation 2022-12-05 14:18:44 -05:00
Kasey White
0fda535c50 feat: add module constants except for tuple 2022-12-05 14:18:44 -05:00
Kasey White
de9302a877 feat: finish list destructure in when matches 2022-12-05 14:18:44 -05:00
Kasey White
8cbdf97d22 finish uplc code gen for complex clauses with constr 2022-12-05 14:18:44 -05:00
Kasey White
f48039fd4f Add ability to generate ir with complex constructor cases 2022-12-05 14:18:44 -05:00