@@ -77,6 +77,11 @@ public function runHighlight() |
77 | 77 |
|
78 | 78 | return 0; |
79 | 79 | } |
| 80 | + if (!isset($params['q'])) { |
| 81 | + if ($stdIn = $this->readStdin()) { |
| 82 | + $params['q'] = $stdIn; |
| 83 | + } |
| 84 | + } |
80 | 85 | if (isset($params['q'])) { |
81 | 86 | echo Formatter::format( |
82 | 87 | $params['q'], |
@@ -127,6 +132,11 @@ public function runLint() |
127 | 132 | if (isset($params['c'])) { |
128 | 133 | Context::load($params['c']); |
129 | 134 | } |
| 135 | + if (!isset($params['q'])) { |
| 136 | + if ($stdIn = $this->readStdin()) { |
| 137 | + $params['q'] = $stdIn; |
| 138 | + } |
| 139 | + } |
130 | 140 | if (isset($params['q'])) { |
131 | 141 | $lexer = new Lexer($params['q'], false); |
132 | 142 | $parser = new Parser($lexer->list); |
@@ -177,6 +187,11 @@ public function runTokenize() |
177 | 187 |
|
178 | 188 | return 0; |
179 | 189 | } |
| 190 | + if (!isset($params['q'])) { |
| 191 | + if ($stdIn = $this->readStdin()) { |
| 192 | + $params['q'] = $stdIn; |
| 193 | + } |
| 194 | + } |
180 | 195 | if (isset($params['q'])) { |
181 | 196 | $lexer = new Lexer($params['q'], false); |
182 | 197 | foreach ($lexer->list->tokens as $idx => $token) { |
@@ -199,4 +214,12 @@ public function runTokenize() |
199 | 214 |
|
200 | 215 | return 1; |
201 | 216 | } |
| 217 | + |
| 218 | + private function readStdin() { |
| 219 | + stream_set_blocking(STDIN, false); |
| 220 | + $stdin = stream_get_contents(STDIN); |
| 221 | + // restore-default block-mode setting |
| 222 | + stream_set_blocking(STDIN, true); |
| 223 | + return $stdin; |
| 224 | + } |
202 | 225 | } |