diff --git a/generator/src/ql_gen.rs b/generator/src/ql_gen.rs index fcdbe5541f7..3c911e52cb8 100644 --- a/generator/src/ql_gen.rs +++ b/generator/src/ql_gen.rs @@ -46,8 +46,34 @@ fn create_ast_node_class<'a>() -> ql::Class<'a> { create_none_predicate("getLocation", false, Some(ql::Type::Normal("Location"))); let get_a_field_or_child = create_none_predicate("getAFieldOrChild", false, Some(ql::Type::Normal("AstNode"))); - let get_parent = create_none_predicate("getParent", false, Some(ql::Type::Normal("AstNode"))); - let get_parent_index = create_none_predicate("getParentIndex", false, Some(ql::Type::Int)); + let get_parent = ql::Predicate { + name: "getParent", + overridden: false, + return_type: Some(ql::Type::Normal("AstNode")), + formal_parameters: vec![], + body: ql::Expression::Pred( + "ast_node_parent", + vec![ + ql::Expression::Var("this"), + ql::Expression::Var("result"), + ql::Expression::Var("_"), + ], + ), + }; + let get_parent_index = ql::Predicate { + name: "getParentIndex", + overridden: false, + return_type: Some(ql::Type::Int), + formal_parameters: vec![], + body: ql::Expression::Pred( + "ast_node_parent", + vec![ + ql::Expression::Var("this"), + ql::Expression::Var("_"), + ql::Expression::Var("result"), + ], + ), + }; let get_a_primary_ql_class = ql::Predicate { name: "getAPrimaryQlClass", overridden: false, @@ -76,34 +102,6 @@ fn create_ast_node_class<'a>() -> ql::Class<'a> { fn create_token_class<'a>() -> ql::Class<'a> { let tokeninfo_arity = 6; - let get_parent = ql::Predicate { - name: "getParent", - overridden: true, - return_type: Some(ql::Type::Normal("AstNode")), - formal_parameters: vec![], - body: ql::Expression::Pred( - "ast_node_parent", - vec![ - ql::Expression::Var("this"), - ql::Expression::Var("result"), - ql::Expression::Var("_"), - ], - ), - }; - let get_parent_index = ql::Predicate { - name: "getParentIndex", - overridden: true, - return_type: Some(ql::Type::Int), - formal_parameters: vec![], - body: ql::Expression::Pred( - "ast_node_parent", - vec![ - ql::Expression::Var("this"), - ql::Expression::Var("_"), - ql::Expression::Var("result"), - ], - ), - }; let get_value = ql::Predicate { name: "getValue", overridden: false, @@ -136,8 +134,6 @@ fn create_token_class<'a>() -> ql::Class<'a> { .collect(), characteristic_predicate: None, predicates: vec![ - get_parent, - get_parent_index, get_value, get_location, to_string, @@ -546,36 +542,6 @@ pub fn convert_nodes<'a>(nodes: &'a node_types::NodeTypeMap) -> Vec