Skip to content

Commit ed8ab9e

Browse files
committed
feat: add whitespace character class
1 parent 9503643 commit ed8ab9e

File tree

5 files changed

+23
-1
lines changed

5 files changed

+23
-1
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,5 @@ buck-out/
3030

3131
# generated by bob
3232
lib/
33+
34+
/.idea
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { whitespace } from '../characterClasses';
2+
import { buildPattern } from '../compiler';
3+
import { one } from '../quantifiers';
4+
5+
test('"whitespace" character class', () => {
6+
expect(buildPattern(whitespace())).toEqual(`\\s`);
7+
expect(buildPattern(one('ab'), whitespace())).toEqual(`ab\\s`);
8+
expect(buildPattern(one('ab'), whitespace(), one('c'))).toEqual(`ab\\sc`);
9+
});

src/characterClasses.ts

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { Whitespace } from './types';
2+
3+
export function whitespace(): Whitespace {
4+
return `\\s`;
5+
}

src/index.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export type * from './types';
22

3+
export { whitespace } from './characterClasses';
34
export { buildRegex, buildPattern } from './compiler';
45
export { oneOrMore, optionally } from './quantifiers';

src/types.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
export type RegexElement = string | RegexQuantifier;
1+
export type RegexElement = string | RegexCharacterClass | RegexQuantifier;
2+
3+
export type RegexCharacterClass = Whitespace;
24

35
export type RegexQuantifier = One | OneOrMore | Optionally | ZeroOrMore;
46

7+
// Character classes
8+
export type Whitespace = `\\s`;
9+
510
// Quantifiers
611
export type One = {
712
type: 'one';

0 commit comments

Comments
 (0)