diff options
| author | Zeev Suraski <zeev@php.net> | 1999-04-28 23:18:57 +0000 | 
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 1999-04-28 23:18:57 +0000 | 
| commit | d90ea1a1365200356febd45f07702e58c2040ac5 (patch) | |
| tree | 8ff764a03d252b7178ae45d82ccd44164d3992b3 | |
| parent | e22a1a08a5457448cbf3e6b37d6b79aefeaf0be5 (diff) | |
| download | php-git-d90ea1a1365200356febd45f07702e58c2040ac5.tar.gz | |
Make the C++ scanner support interactive input
| -rw-r--r-- | Zend/zend-scanner.l | 20 | 
1 files changed, 18 insertions, 2 deletions
| diff --git a/Zend/zend-scanner.l b/Zend/zend-scanner.l index aa50dd62e4..ce76c75e50 100644 --- a/Zend/zend-scanner.l +++ b/Zend/zend-scanner.l @@ -170,8 +170,24 @@ ZEND_API inline int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)  	yyin = tmp;  	yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));  	BEGIN(INITIAL); -	#else -	ifstream *input_file = new ifstream(file_handle->filename); +#else +	ifstream *input_file; + +	switch (file_handle->type) { +		case ZEND_HANDLE_FD: +			input_file = new ifstream(file_handle->handle.fd); +			break; +		case ZEND_HANDLE_FILENAME: +			input_file = new ifstream(file_handle->filename); +			break; +		case ZEND_HANDLE_FP: +			if (file_handle->handle.fp==stdin) { +				input_file = (ifstream *) &cin; +			} else { +				input_file = new ifstream(file_handle->filename); +			}	 +			break; +	}  	CG(ZFL) = new ZendFlexLexer;  	CG(ZFL)->switch_streams(input_file, &cout); | 
