Skip to content

Commit 9595995

Browse files
committed
Instantiate native parser node subclass
1 parent 4c7352c commit 9595995

1 file changed

Lines changed: 18 additions & 8 deletions

File tree

  • packages/mysql-on-sqlite/ext/wp-mysql-parser/src

packages/mysql-on-sqlite/ext/wp-mysql-parser/src/lib.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ fn php_function(name: &str) -> PhpResult<ZendCallable<'_>> {
5959
struct PhpClasses {
6060
parser_token: &'static ClassEntry,
6161
mysql_token: &'static ClassEntry,
62-
parser_node: &'static ClassEntry,
62+
native_parser_node: &'static ClassEntry,
6363
}
6464

6565
fn php_classes() -> PhpResult<PhpClasses> {
@@ -68,8 +68,8 @@ fn php_classes() -> PhpResult<PhpClasses> {
6868
.ok_or_else(|| php_error("Missing WP_Parser_Token class"))?,
6969
mysql_token: ClassEntry::try_find("WP_MySQL_Token")
7070
.ok_or_else(|| php_error("Missing WP_MySQL_Token class"))?,
71-
parser_node: ClassEntry::try_find("WP_Parser_Node")
72-
.ok_or_else(|| php_error("Missing WP_Parser_Node class"))?,
71+
native_parser_node: ClassEntry::try_find("WP_MySQL_Native_Parser_Node")
72+
.ok_or_else(|| php_error("Missing WP_MySQL_Native_Parser_Node class"))?,
7373
})
7474
}
7575

@@ -1100,28 +1100,38 @@ impl NativeAstArena {
11001100
fn create_php_node(&self, native_ast_zval: &Zval, index: usize) -> PhpResult<Zval> {
11011101
let node = self.node(index)?;
11021102
let classes = php_classes()?;
1103-
let mut object = classes.parser_node.new();
1103+
let mut object = classes.native_parser_node.new();
11041104
let rule_name = self
11051105
.grammar
11061106
.rule(node.rule_id)
11071107
.map(|rule| rule.rule_name.as_str())
11081108
.unwrap_or_default();
11091109
let index = i64::try_from(index).map_err(php_error)?;
11101110

1111-
update_object_property(&mut object, classes.parser_node, "rule_id", node.rule_id)?;
11121111
update_object_property(
11131112
&mut object,
1114-
classes.parser_node,
1113+
classes.native_parser_node,
1114+
"rule_id",
1115+
node.rule_id,
1116+
)?;
1117+
update_object_property(
1118+
&mut object,
1119+
classes.native_parser_node,
11151120
"rule_name",
11161121
rule_name.to_owned(),
11171122
)?;
11181123
update_object_property(
11191124
&mut object,
1120-
classes.parser_node,
1125+
classes.native_parser_node,
11211126
"native_ast",
11221127
native_ast_zval.shallow_clone(),
11231128
)?;
1124-
update_object_property(&mut object, classes.parser_node, "native_node_index", index)?;
1129+
update_object_property(
1130+
&mut object,
1131+
classes.native_parser_node,
1132+
"native_node_index",
1133+
index,
1134+
)?;
11251135

11261136
object.into_zval(false).map_err(php_error)
11271137
}

0 commit comments

Comments
 (0)