obeam
obeam copied to clipboard
List missing features related to absform
Remove WIP label when all features are implemented.
This list quotes from The Abstract Format in Erlang Run-Time System Application (ERTS) User's Guide Version 10.2 (2019/02/21).
Module Declarations and Forms
- [x] module declaration
- [x]
-exportattribute - [x]
-importattribute - [x]
-moduleattribute - [x]
-fileattribute - [x] function declaration
- [x] function specification (#92)
- [x] function specification with module
- [x] record declaration
- [x] type declaration
- [x] wild attribute
Record Fields
- [x] field name
A - [x] field name with default value
A = E - [x] field name with type
A :: T - [x] field name with default value and type
A = E :: T
Representation of Parse Errors and End-of-File
(snip)
Atomic Literals
- [x] atom literal
- [x] character literal
- [x] float literal (#82)
- [x] integer literal
- [x] string literal
Patterns
- [x] atomic literal
- [x] bitstring pattern (#75)
- [x] compound pattern (#90)
- [x] cons pattern
- [x] map pattern
- [x] nil pattern
- [x] binary operator pattern (#88)
- [x] unary operator pattern (#88)
- [x] parenthesized pattern
- [x] record field index pattern (#77)
- [x] record pattern (#77)
- [x] tuple pattern
- [x] universal pattern
- [x] variable pattern
Expressions
- [x] atomic literal
- [x] bitstring comprehension (#87)
- [x] bitstring constructor (#75)
- [x] block expression (#81)
- [x] case expression
- [x] catch expression (#73)
- [x] local fun expression
- [x] remote fun expression
- [x] anonymous function expression
- [x] named function expression
- [x] local function call
- [x] remote function call
- [x] if expression (#72)
- [x] list comprehension
- [x] map creation
- [x] map update
- [x] match operator expression
- [x] nil
- [x] binary operator expression
- [x] unary operator expression (#83)
- [x] parenthesized expression
- [x] receive expression (#85)
- [x] receive expression with
after(#85) - [x] record creation (#74)
- [x] record field access (#74)
- [x] record field index (#74)
- [x] record update (#74)
- [x] tuple skeleton
- [x] try-catch expression (#71)
- [x] try-of-catch expression (#71)
- [x] try-after expression (#71)
- [x] try-of-after expression (#71)
- [x] try-catch-after expression (#71)
- [x] try-of-catch-after expression (#71)
- [x] variable
Qualifiers
- [x] filter
- [x] generator
- [x] bitstring generator (#87)
Bitstring Element Type Specifiers
- [x] type specifier (#75)
- [x] type specifier with value (#75)
Associations
- [x] association
K => V - [x] association
K := V
Clauses
- [x] case clause
- [x] case clause with guard sequence
- [x] catch clause (#71)
- [x] catch clause with exception class (#71)
- [x] catch clause with exception class and stacktrace (#71)
- [x] catch clause with guard sequence (#71)
- [x] catch clause with exception class and guard sequence (#71)
- [x] catch clause with exception class, stacktrace, and guard sequence (#71)
- [x] function clause
- [x] function clause with guard sequence
- [x] if clause (#72)
Guards
- [x] atomic literal
- [x] bitstring constructor (#75)
- [x] cons skeleton (#84)
- [x] local function call
- [x] remote function call (#94)
- [x] map creation
- [x] map update
- [x] nil (#84)
- [x] binary operator guard test
- [x] unary operator guard test (#91)
- [x] parenthesized guard test
- [x] record creation (#76)
- [x] record field access (#76)
- [x] record field index (#76)
- [x] tuple skeleton
- [x] variable pattern
Types
- [x] annotated type
- [x] atom, character, or integer literal
- [x] bitstring type
- [x] empty list type
- [x] fun type
fun() - [x] fun type
fun((...) -> T - [x] fun type with function type
- [x] integer range type
- [x] any map type
- [x] map type with associations
- [x] binary operator type
- [x] unary operator type
- [x] parenthesized type
- [x] predefined type
- [x] record type (#78)
- [x] remote type (#86)
- [x] any tuple type
- [x] tuple type with type of elements
- [x] type union
- [x] type variable
- [x] user-defined type
Function Types
- [x] constrained function type
- [x] function type
Function Constraints
- [x] constraint
Association Types
- [x] association type
K => V - [x] association type
K := V
Record Field Type
- [x] record field type (#78)
Thank you very much! Should we fill check boxes for features which have been already implemented?
Yes! I'm checking now!
Oops, sorry🙏 I'll also do that when I noticed missing features.
All features are implemented!! 🎉 🎉