summaryrefslogtreecommitdiff
path: root/ext/tokenizer/tokenizer.php
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tokenizer/tokenizer.php')
-rw-r--r--ext/tokenizer/tokenizer.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/tokenizer/tokenizer.php b/ext/tokenizer/tokenizer.php
new file mode 100644
index 0000000..c13063c
--- /dev/null
+++ b/ext/tokenizer/tokenizer.php
@@ -0,0 +1,35 @@
+<?php
+
+if(!extension_loaded('tokenizer')) {
+ dl('tokenizer.so');
+}
+
+$fp = fopen('php://stdin', 'r');
+while (!feof($fp)) {
+ $content .= fread($fp, 4096);
+}
+fclose($fp);
+
+$tokens = token_get_all($content);
+
+$count = count($tokens);
+$state = 0;
+for ($i = 0; $i < $count; $i++) {
+ $token = $tokens[$i];
+ if (is_array($token)) {
+ if ($state == 1 && $token[0] == T_STRING) {
+ $token[1] = preg_replace('!([a-z])([A-Z])!e', '"$1_".strtolower("$2")', $token[1]);
+ $state = 0;
+ } else if ($token[0] == T_FUNCTION) {
+ $state = 1;
+ }
+ $chunk = $token[1];
+ } else {
+ $chunk = $token;
+ }
+ $output .= $chunk;
+}
+
+print $output;
+
+?>