���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /home/rickpfrv/wiki.craftaro.com/vendor/wikimedia/wikipeg/src/DefaultTracer.php
���ѧ٧ѧ�
<?php namespace Wikimedia\WikiPEG; class DefaultTracer implements Tracer { private $indentLevel = 0; public function trace( $event ) { switch ( $event['type'] ) { case 'rule.enter': $this->log( $event ); $this->indentLevel++; break; case 'rule.match': $this->indentLevel--; $this->log( $event ); break; case 'rule.fail': $this->indentLevel--; $this->log( $event ); break; default: throw new \Exception( "Invalid event type {$event['type']}" ); } } private function log( $event ) { print str_pad( '' . $event['location'], 20 ) . str_pad( $event['type'], 10 ) . ' ' . str_repeat( ' ', $this->indentLevel ) . $event['rule'] . $this->formatArgs( $event['args'] ?? null ) . "\n"; } private function formatArgs( $argMap ) { if ( !$argMap ) { return ''; } $argParts = []; foreach ( $argMap as $argName => $argValue ) { if ( $argName === '$silence' ) { continue; } if ( $argName === '$boolParams' ) { $argParts[] = '0x' . base_convert( $argValue, 10, 16 ); } else { $displayName = str_replace( '$param_', '', $argName ); if ( $displayName[0] === '&' ) { $displayName = substr( $displayName, 1 ); $ref = '&'; } else { $ref = ''; } $argParts[] = "$displayName=$ref" . json_encode( $argValue, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE ); } } if ( $argParts ) { return '<' . implode( ', ', $argParts ) . '>'; } else { return ''; } } } // Retain the old namespace for backwards compatibility. class_alias( DefaultTracer::class, 'WikiPEG\DefaultTracer' );
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 0.01 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�