Skip to content

Commit 9e0123f

Browse files
some slight modifications to make it play nicer with pausing
1 parent 96e3f83 commit 9e0123f

File tree

1 file changed

+3
-26
lines changed

1 file changed

+3
-26
lines changed

lib/index.js

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
module.exports = parser
22

3-
var Stream = require('stream').Stream
3+
var through = require('through')
44
, full_parse_expr = require('./expr')
55
, Scope = require('./scope')
66

7-
function create_stream() {
8-
var stream = new Stream
9-
stream.readable =
10-
stream.writable = true
11-
return stream
12-
}
13-
147
// singleton!
158
var Advance = new Object
169

@@ -121,7 +114,7 @@ function parser() {
121114

122115
setup_stative_parsers()
123116

124-
var stream = create_stream()
117+
var stream = through(write, end)
125118
, check = arguments.length ? [].slice.call(arguments) : []
126119
, depth = 0
127120
, state = []
@@ -132,10 +125,6 @@ function parser() {
132125
, token
133126
, node
134127

135-
// setup stream
136-
stream.write = write
137-
stream.end = end
138-
stream.destroy = destroy
139128

140129
// setup state
141130
state.shift = special_shift
@@ -210,25 +199,13 @@ function parser() {
210199
}
211200

212201
stream.emit('end')
213-
stream.readable = false
214-
stream.closed = true
215-
stream.emit('close')
216-
}
217-
218-
219-
function destroy() {
220-
stream.emit('end')
221-
222-
stream.write = function(){}
223-
stream.writable = false
224-
stream.emit('close')
225202
}
226203

227204
function take() {
228205
if(errored || !state.length)
229206
return errored
230207

231-
return token = tokens[0]
208+
return (token = tokens[0]) && !stream.paused
232209
}
233210

234211
// ----- state manipulation --------

0 commit comments

Comments
 (0)