@@ -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
}
0 commit comments