conlang: Struct, tuple member accesses, member function call syntax
Currently uses UFCS in the interpreter. This may change after type checking?
This commit is contained in:
@@ -391,6 +391,7 @@ pub mod yamlify {
|
||||
ExprKind::Assign(k) => k.yaml(y),
|
||||
ExprKind::Binary(k) => k.yaml(y),
|
||||
ExprKind::Unary(k) => k.yaml(y),
|
||||
ExprKind::Member(k) => k.yaml(y),
|
||||
ExprKind::Index(k) => k.yaml(y),
|
||||
ExprKind::Structor(k) => k.yaml(y),
|
||||
ExprKind::Path(k) => k.yaml(y),
|
||||
@@ -451,6 +452,21 @@ pub mod yamlify {
|
||||
y.value(self);
|
||||
}
|
||||
}
|
||||
impl Yamlify for Member {
|
||||
fn yaml(&self, y: &mut Yamler) {
|
||||
let Self { head, kind } = self;
|
||||
y.key("Member").pair("head", head).pair("kind", kind);
|
||||
}
|
||||
}
|
||||
impl Yamlify for MemberKind {
|
||||
fn yaml(&self, y: &mut Yamler) {
|
||||
match self {
|
||||
MemberKind::Call(id, args) => y.pair("id", id).pair("args", args),
|
||||
MemberKind::Struct(id) => y.pair("id", id),
|
||||
MemberKind::Tuple(id) => y.pair("id", id),
|
||||
};
|
||||
}
|
||||
}
|
||||
impl Yamlify for Tuple {
|
||||
fn yaml(&self, y: &mut Yamler) {
|
||||
let Self { exprs } = self;
|
||||
|
||||
Reference in New Issue
Block a user