|
25 | 25 | $native_parser_rules = include __DIR__ . '/../src/mysql/mysql-grammar.php'; |
26 | 26 | $native_parser_grammar = new WP_Parser_Grammar( $native_parser_rules ); |
27 | 27 | $native_parser = new WP_MySQL_Parser( $native_parser_grammar, $native_parser_tokens ); |
28 | | - if ( ! ( $native_parser instanceof WP_MySQL_Native_Parser ) ) { |
29 | | - fwrite( STDERR, "WP_MySQL_Parser did not resolve to the native implementation.\n" ); |
| 28 | + $native_parser_reflection = new ReflectionObject( $native_parser ); |
| 29 | + if ( ! $native_parser_reflection->hasProperty( 'native' ) ) { |
| 30 | + fwrite( STDERR, "WP_MySQL_Parser did not create a native parser delegate.\n" ); |
| 31 | + exit( 1 ); |
| 32 | + } |
| 33 | + $native_parser_property = $native_parser_reflection->getProperty( 'native' ); |
| 34 | + $native_parser_property->setAccessible( true ); |
| 35 | + if ( ! ( $native_parser_property->getValue( $native_parser ) instanceof WP_MySQL_Native_Parser ) ) { |
| 36 | + fwrite( STDERR, "WP_MySQL_Parser did not create a native parser delegate.\n" ); |
30 | 37 | exit( 1 ); |
31 | 38 | } |
32 | 39 |
|
|
38 | 45 |
|
39 | 46 | $native_parser_driver = new WP_PDO_MySQL_On_SQLite( 'mysql-on-sqlite:path=:memory:;dbname=wp;' ); |
40 | 47 | $native_parser_driver_parser = $native_parser_driver->create_parser( 'SELECT 1' ); |
41 | | - if ( ! ( $native_parser_driver_parser instanceof WP_MySQL_Native_Parser ) ) { |
42 | | - fwrite( STDERR, "WP_PDO_MySQL_On_SQLite did not create a native parser.\n" ); |
| 48 | + $native_parser_driver_reflection = new ReflectionObject( $native_parser_driver_parser ); |
| 49 | + if ( ! $native_parser_driver_reflection->hasProperty( 'native' ) ) { |
| 50 | + fwrite( STDERR, "WP_PDO_MySQL_On_SQLite did not create a native parser delegate.\n" ); |
| 51 | + exit( 1 ); |
| 52 | + } |
| 53 | + $native_parser_driver_property = $native_parser_driver_reflection->getProperty( 'native' ); |
| 54 | + $native_parser_driver_property->setAccessible( true ); |
| 55 | + if ( ! ( $native_parser_driver_property->getValue( $native_parser_driver_parser ) instanceof WP_MySQL_Native_Parser ) ) { |
| 56 | + fwrite( STDERR, "WP_PDO_MySQL_On_SQLite did not create a native parser delegate.\n" ); |
43 | 57 | exit( 1 ); |
44 | 58 | } |
45 | 59 |
|
|
65 | 79 | $native_parser_lexer, |
66 | 80 | $native_parser_driver, |
67 | 81 | $native_parser_driver_parser, |
| 82 | + $native_parser_reflection, |
| 83 | + $native_parser_property, |
| 84 | + $native_parser_driver_reflection, |
| 85 | + $native_parser_driver_property, |
68 | 86 | $native_parser_driver_ast, |
69 | 87 | $native_parser_driver_child |
70 | 88 | ); |
|
0 commit comments