30 lines
402 B
Plaintext
30 lines
402 B
Plaintext
### References and pointers
|
|
|
|
[
|
|
Datatype references
|
|
Funcon reference
|
|
Type pointers
|
|
Funcon pointer-null
|
|
Funcon dereference
|
|
]
|
|
|
|
|
|
Meta-variables
|
|
T <: values
|
|
|
|
|
|
Datatype
|
|
references(T) ::= reference(_:T)
|
|
|
|
|
|
Datatype
|
|
pointers(T) ::= pointer-null | { _:references(T) }
|
|
|
|
|
|
Funcon
|
|
dereference(_:pointers(T)) : =>(T)?
|
|
Rule
|
|
dereference(reference(V:T)) ~> V
|
|
Rule
|
|
dereference(pointer-null) ~> ( )
|