Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions rust/ast-generator/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ use ungrammar::Grammar;

fn class_name(type_name: &str) -> String {
match type_name {
"Adt" => "TypeItem".to_owned(),
"BinExpr" => "BinaryExpr".to_owned(),
"ElseBranch" => "Expr".to_owned(),
"Fn" => "Function".to_owned(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
class Element extends @element {
string toString() { none() }
}

class Enum extends Element, @enum { }

class Struct extends Element, @struct { }

class Union extends Element, @union { }

class Attr extends Element, @attr { }

class GenericParamList extends Element, @generic_param_list { }

class Name extends Element, @name { }

class Visibility extends Element, @visibility { }

class WhereClause extends Element, @where_clause { }

query predicate new_enum_attrs(Enum enum, int index, Attr attr) {
type_item_attrs(enum, index, attr)
}

query predicate new_enum_generic_param_lists(Enum enum, GenericParamList g) {
type_item_generic_param_lists(enum, g)
}

query predicate new_enum_names(Enum enum, Name name) { type_item_names(enum, name) }

query predicate new_enum_visibilities(Enum enum, Visibility visibility) {
type_item_visibilities(enum, visibility)
}

query predicate new_enum_where_clauses(Enum enum, WhereClause whereClause) {
type_item_where_clauses(enum, whereClause)
}

query predicate new_struct_attrs(Struct struct, int index, Attr attr) {
type_item_attrs(struct, index, attr)
}

query predicate new_struct_generic_param_lists(Struct struct, GenericParamList g) {
type_item_generic_param_lists(struct, g)
}

query predicate new_struct_names(Struct struct, Name name) { type_item_names(struct, name) }

query predicate new_struct_visibilities(Struct struct, Visibility visibility) {
type_item_visibilities(struct, visibility)
}

query predicate new_struct_where_clauses(Struct struct, WhereClause whereClause) {
type_item_where_clauses(struct, whereClause)
}

query predicate new_union_attrs(Union union, int index, Attr attr) {
type_item_attrs(union, index, attr)
}

query predicate new_union_generic_param_lists(Union union, GenericParamList g) {
type_item_generic_param_lists(union, g)
}

query predicate new_union_names(Union union, Name name) { type_item_names(union, name) }

query predicate new_union_visibilities(Union union, Visibility visibility) {
type_item_visibilities(union, visibility)
}

query predicate new_union_where_clauses(Union union, WhereClause whereClause) {
type_item_where_clauses(union, whereClause)
}
Loading