stream-token-parser
Version:
Token parser designed based on stream property. Accept chunk string and parse it into tokens simultaneously. [readme-lang:zh]基于流特性设计的token解析器,接受一个chunk的字符串,同时解析成tokens。
60 lines (52 loc) • 863 B
JavaScript
;
let {
createReadStream
} = require('fs');
let Parser = require('../..');
let readStream = createReadStream(__dirname + '/text.txt');
let log = console.log; // eslint-disable-line
let parse = Parser([{
word: 'let',
priority: 9
}, {
word: 'left',
priority: 10
}, {
word: '=',
priority: 9
}, {
word: 'export',
priority: 9
}, {
word: 'it',
priority: 9
}, {
word: ';',
priority: 9
}, {
word: /\w+/,
priority: 8,
name: 'word'
}, {
word: /\n/,
name: 'linefeed'
}, {
word: /./,
name: 'trash'
}]);
readStream.on('data', (chunk) => {
let tokens = parse(chunk);
tokens.map(({
text
}) => {
log(text);
});
});
readStream.on('end', () => {
let tokens = parse(null);
tokens.map(({
text
}) => {
log(text);
});
});