-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexample.js
36 lines (33 loc) · 1.06 KB
/
example.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const Scanner = require('./');
const scanner = new Scanner('**/foo/.bar.baz/@(a|b)', {
rules: {
text: /^(\\.|[^|/.@*!+?()]+)/,
star: /^(?<star>\*)/,
pipe: /^\|/,
paren: /^(?<prefix>[@*!+?]?)[()]/,
slash: /^\//,
dot: /^\./
}
});
console.log(scanner.scanWhile(tok => tok && tok.type !== 'dot'));
// console.log(scanner.scanWhile(() => !scanner.eos()));
// console.log(scanner.consume(5))
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan())
// console.log(scanner.scan()) // undefined
// const scanner2 = new Scanner('foo/bar', { rules: { text: /^\w+/ } });
// const match = scanner2.match(scanner2.rules.get('text')[0]);
// console.log(match)