Commit Graph

58 Commits

Author SHA1 Message Date
e303248261 nac3core: exception type check and codegen 2022-02-12 22:50:32 +08:00
b267a656a8 nac3core: added exception type and fixed primitive representation
- Added `Exception` primitive type and some builtin exception types.
  Note that all exception types share the same layout, and should
  inherit from the base `Exception` type. There are some hacks in the
  toplevel module for handling exception types, we should revisit and
  fix them later.
- Added new primitive types to concrete type module, otherwise there
  would be some weird type errors.
- Changed the representation of strings to CSlice<u8>, instead of
  CString.
2022-02-12 22:13:59 +08:00
88f0da7bdd add file name to AST node location 2021-12-28 01:28:55 +08:00
66320679be improve error messages
#112, #110, #108, #87

Reviewed-on: M-Labs/nac3#145
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-22 08:52:19 +08:00
91625dd327 update kernel-only attribute annotation
Reviewed-on: M-Labs/nac3#127
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-19 11:04:53 +08:00
1c31aa6e8e consistent naming 2021-12-02 10:45:46 +08:00
aa2d79fea6 Merge branch 'master' into built_in_floor_ceil 2021-12-02 01:08:55 +08:00
1e6848ab92 nac3core: distinguish i64 and i32 in bool conversion 2021-12-02 01:02:42 +08:00
dfd3548ed2 TypeVar and virtual support in Symbol Resolver (#99)
Add `TypeVar` and `virtual` support for Symbol Resolver in nac3artiq and nac3standalone

Reviewed-on: M-Labs/nac3#99
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-01 22:44:53 +08:00
fa2fe8ed5d nac3core: add ceil and floor 2021-12-01 03:23:58 +08:00
7ede4f15b6 nac3core: move builtin definitions to another file 2021-12-01 02:52:00 +08:00
0fe346106d nac3core: fix converting int to bool (#119) 2021-11-30 03:02:26 +08:00
7ee82de312 nac3core: fixed weird type inference error 2021-11-27 20:27:46 +08:00
4587088835 Constant Default Parameter Support (#98)
Add support for constant default parameter

Reviewed-on: M-Labs/nac3#98
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-11-23 07:32:09 +08:00
01b51b62ee nac3core: composer better error msg in for uninit field 2021-11-21 06:11:55 +08:00
a50df6560e nac3core: fix handling on rigid typevar 2021-11-21 06:11:55 +08:00
a9635f0979 nac3core: top level use codegen official get_subst_key 2021-11-21 06:11:55 +08:00
c2706fa720 nac3core: fix polymorphic class method partial instantiation 2021-11-21 06:11:55 +08:00
ffa89e9308 fix clippy warnings 2021-11-06 23:00:18 +08:00
b1e83a1fd4 nac3core: type check invariants
This rejects code that tries to assign to KernelInvariant fields and
methods.
2021-11-06 22:48:08 +08:00
99b29d8ded Merge branch 'master' into with_nac3comment 2021-11-05 20:46:29 +08:00
3db95b120b nac3core: implements bool conversion function 2021-11-05 20:34:34 +08:00
b239806558 nac3core: adapt to ast change due to comment support 2021-11-04 15:02:51 +08:00
bf7e2c295a integrate nac3parser 2021-11-03 17:11:00 +08:00
e89bc93b5f ignore expressions in class definition body (#26) 2021-11-02 23:30:12 +08:00
47f563908a basic string support (#30) 2021-11-02 23:22:49 +08:00
0e914ab7e9 composer: add range keyword 2021-11-02 18:56:14 +08:00
fb92b6d364 nac3core: supports range iterator 2021-10-23 23:53:36 +08:00
c4259d14d1 fixed some clippy warnings 2021-10-16 18:08:13 +08:00
fd0b11087e nac3core: use round instead of rint. Closes #61 2021-10-11 08:18:52 +08:00
77542170fd nac3core: fixes #60 2021-10-10 15:01:06 +08:00
a3ce5be10b nac3core: fixes #32 and #57 2021-10-09 16:20:49 +08:00
4fcb54e463 nac3core: fix #46, better toplevel return type error msg 2021-10-03 18:07:45 +08:00
24b2111c64 nac3core: fix #45 toplevel better error msg for methods/functions 2021-10-03 17:25:28 +08:00
ba93931758 implement timeline functions for RISC-V (WIP) 2021-10-02 19:05:35 +08:00
1d2a32b140 nac3core/toplevel: impl scalar conversion
Implemented scalar conversion functions as builtin functions.
`round` for int64 is now implemented as `round64`.
2021-09-30 23:39:29 +08:00
f0fdfe42cb nac3core: better impl of #24 2021-09-30 17:07:48 +08:00
8d839db553 typo 2021-09-27 19:12:18 +08:00
64404bba20 syscall -> extern (#21) 2021-09-27 10:13:03 +08:00
3c121dfcda nac3core/toplevel/composer: fixes #29 2021-09-25 22:02:19 +08:00
693ac7d336 nac3core/toplevel: added personality symbol config 2021-09-25 21:44:00 +08:00
105d605e6d nac3core: fix clippy warnings 2021-09-22 18:04:06 +08:00
084efe92af nac3core: use string interning 2021-09-22 18:04:06 +08:00
891056631f nac3core: use Arc to reduce copy 2021-09-22 18:04:06 +08:00
a508baae20 added syscall annotation
and temporarily disabled the keyword check for top-level functions
2021-09-22 17:58:46 +08:00
4fe643f45b allows function ending with a number 2021-09-22 14:45:42 +08:00
20905a9b67 nac3core: better field initialization check 2021-09-21 03:02:12 +08:00
e66693282c nac3core: change the place to unify constructor type for function body type check
add really basic field initialize check
2021-09-20 23:44:39 +08:00
dd1be541b8 nac3core: allow class to have no __init__, function/method name with module path added to ensure uniqueness 2021-09-20 23:36:19 +08:00
4939ff4dbd simple implementation of classes 2021-09-19 22:54:06 +08:00