Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 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
Loading