@@ -77,6 +77,11 @@ public function runHighlight()
7777
7878 return 0 ;
7979 }
80+ if (!isset ($ params ['q ' ])) {
81+ if ($ stdIn = $ this ->readStdin ()) {
82+ $ params ['q ' ] = $ stdIn ;
83+ }
84+ }
8085 if (isset ($ params ['q ' ])) {
8186 echo Formatter::format (
8287 $ params ['q ' ],
@@ -127,6 +132,11 @@ public function runLint()
127132 if (isset ($ params ['c ' ])) {
128133 Context::load ($ params ['c ' ]);
129134 }
135+ if (!isset ($ params ['q ' ])) {
136+ if ($ stdIn = $ this ->readStdin ()) {
137+ $ params ['q ' ] = $ stdIn ;
138+ }
139+ }
130140 if (isset ($ params ['q ' ])) {
131141 $ lexer = new Lexer ($ params ['q ' ], false );
132142 $ parser = new Parser ($ lexer ->list );
@@ -177,6 +187,11 @@ public function runTokenize()
177187
178188 return 0 ;
179189 }
190+ if (!isset ($ params ['q ' ])) {
191+ if ($ stdIn = $ this ->readStdin ()) {
192+ $ params ['q ' ] = $ stdIn ;
193+ }
194+ }
180195 if (isset ($ params ['q ' ])) {
181196 $ lexer = new Lexer ($ params ['q ' ], false );
182197 foreach ($ lexer ->list ->tokens as $ idx => $ token ) {
@@ -199,4 +214,12 @@ public function runTokenize()
199214
200215 return 1 ;
201216 }
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+ }
202225}
0 commit comments