extra-parser 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,70 +8,56 @@ yarn add extra-parser
8
8
 
9
9
  ## API
10
10
  ```ts
11
- interface IToken<Type extends string> {
12
- type: Type
11
+ interface IToken {
12
+ tokenType: string
13
13
  value: string
14
14
  }
15
15
 
16
- interface INode<Type extends string> {
17
- type: Type
16
+ interface INode {
17
+ nodeType: string
18
18
  }
19
19
 
20
- interface ITokenPatternMatch<Token extends IToken<string>> {
20
+ interface ITokenPatternMatch<Token extends IToken> {
21
21
  consumed: number
22
22
  token: Token
23
23
  }
24
24
 
25
- interface INodePatternMatch<Node extends INode<string>> {
25
+ interface INodePatternMatch<Node extends INode> {
26
26
  consumed: number
27
27
  node: Node
28
28
  }
29
29
 
30
- interface ITokenPattern<Token extends IToken<string>> {
30
+ interface ITokenPattern<Token extends IToken = IToken> {
31
31
  (text: string): Awaitable<ITokenPatternMatch<Token> | Falsy>
32
32
  }
33
33
 
34
- interface INodePattern<
35
- Token extends IToken<string>
36
- , Node extends INode<string>
37
- > {
34
+ interface INodePattern<Token extends IToken = IToken, Node extends INode = INode> {
38
35
  (tokens: ReadonlyArray<Token>): Awaitable<INodePatternMatch<Node> | Falsy>
39
36
  }
40
37
  ```
41
38
 
42
39
  ### tokenize
43
40
  ```ts
44
- function tokenize<
45
- Token extends IToken<string>
46
- , TokenPattern extends ITokenPattern<Token> = ITokenPattern<Token>
47
- >(
41
+ function tokenize<Token extends IToken = IToken>(
48
42
  text: string
49
- , patterns: Array<TokenPattern>
43
+ , patterns: Array<ITokenPattern<Token>>
50
44
  ): AsyncIterableIterator<Token>
51
45
  ```
52
46
 
53
47
  ### parse
54
48
  ```ts
55
- function parse<
56
- Token extends IToken<string>
57
- , Node extends INode<string>
58
- , NodePattern extends INodePattern<Token, Node> = INodePattern<Token, Node>
59
- >(
60
- tokens: Array<Token>
61
- , patterns: Array<NodePattern>
49
+ function parse<Token extends IToken = IToken, Node extends INode = INode>(
50
+ tokens: Token[]
51
+ , patterns: Array<INodePattern<Token, Node>>
62
52
  ): AsyncIterableIterator<Node>
63
53
  ```
64
54
 
65
55
  ### createTokenPatternFromRegExp
66
56
  ```ts
67
- function createTokenPatternFromRegExp<TokenType extends string>(
68
- tokenType: TokenType
57
+ function createTokenPatternFromRegExp<Token extends IToken>(
58
+ tokenType: Token['tokenType']
69
59
  , regExp: RegExp
70
- ): ITokenPattern<IToken<TokenType>>
71
- function createTokenPatternFromRegExp<Token extends IToken<string>>(
72
- tokenType: Token['type']
73
- , regExp: RegExp
74
- ): ITokenPattern<IToken<Token['type']>>
60
+ ): ITokenPattern<IToken>
75
61
  ```
76
62
 
77
63
  ## FAQ
@@ -1,3 +1,2 @@
1
1
  import { IToken, ITokenPattern } from './types';
2
- export declare function createTokenPatternFromRegExp<TokenType extends string>(tokenType: TokenType, regExp: RegExp): ITokenPattern<IToken<TokenType>>;
3
- export declare function createTokenPatternFromRegExp<Token extends IToken<string>>(tokenType: Token['type'], regExp: RegExp): ITokenPattern<IToken<Token['type']>>;
2
+ export declare function createTokenPatternFromRegExp<Token extends IToken>(tokenType: Token['tokenType'], regExp: RegExp): ITokenPattern<IToken>;
@@ -11,7 +11,7 @@ function createTokenPatternFromRegExp(tokenType, regExp) {
11
11
  return {
12
12
  consumed: matchedText.length,
13
13
  token: {
14
- type: tokenType,
14
+ tokenType: tokenType,
15
15
  value: matchedText
16
16
  }
17
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"create-token-pattern-from-regexp.js","sourceRoot":"","sources":["../src/create-token-pattern-from-regexp.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAW5C,SAAgB,4BAA4B,CAC1C,SAAiB,EACjB,MAAc;IAEd,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAY,EAA8C,EAAE;QAClE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;YAC5B,OAAO;gBACL,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,WAAW;iBACnB;aACF,CAAA;SACF;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,CAAA;AACH,CAAC;AArBD,oEAqBC;AAED,SAAS,yBAAyB,CAAC,EAAU;IAC3C,OAAO,IAAI,MAAM,CACf,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EACvD,EAAE,CAAC,KAAK,CACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"create-token-pattern-from-regexp.js","sourceRoot":"","sources":["../src/create-token-pattern-from-regexp.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAG5C,SAAgB,4BAA4B,CAC1C,SAA6B,EAC7B,MAAc;IAEd,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAE1D,OAAO,CAAC,IAAY,EAAsC,EAAE;QAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAA;YAC5B,OAAO;gBACL,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,KAAK,EAAE;oBACL,SAAS,EAAE,SAAS;oBACpB,KAAK,EAAE,WAAW;iBACnB;aACF,CAAA;SACF;aAAM;YACL,OAAO,KAAK,CAAA;SACb;IACH,CAAC,CAAA;AACH,CAAC;AArBD,oEAqBC;AAED,SAAS,yBAAyB,CAAC,EAAU;IAC3C,OAAO,IAAI,MAAM,CACf,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EACvD,EAAE,CAAC,KAAK,CACT,CAAA;AACH,CAAC"}
package/lib/parse.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { IToken, INodePattern, INode } from './types';
2
- export declare function parse<Token extends IToken<string>, Node extends INode<string>, NodePattern extends INodePattern<Token, Node> = INodePattern<Token, Node>>(tokens: Array<Token>, patterns: Array<NodePattern>): AsyncIterableIterator<Node>;
2
+ export declare function parse<Token extends IToken = IToken, Node extends INode = INode>(tokens: Token[], patterns: Array<INodePattern<Token, Node>>): AsyncIterableIterator<Node>;
package/lib/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAGxC,KAAK,SAAS,CAAC,CAAC,KAAK,CAK1B,MAAoB,EACpB,QAA4B;IAE5B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;YAC7C,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,EAAE;gBACrB,MAAM,MAAM,CAAC,IAAI,CAAA;gBACjB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;KAC1E;AACH,CAAC;AAvBD,sBAuBC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAGxC,KAAK,SAAS,CAAC,CAAC,KAAK,CAC1B,MAAe,EACf,QAA0C;IAE1C,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;YAC7C,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,EAAE;gBACrB,MAAM,MAAM,CAAC,IAAI,CAAA;gBACjB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;KAC1E;AACH,CAAC;AAnBD,sBAmBC"}
package/lib/tokenize.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import { ITokenPattern, IToken } from './types';
2
- export declare function tokenize<Token extends IToken<string>, TokenPattern extends ITokenPattern<Token> = ITokenPattern<Token>>(text: string, patterns: Array<TokenPattern>): AsyncIterableIterator<Token>;
2
+ export declare function tokenize<Token extends IToken = IToken>(text: string, patterns: Array<ITokenPattern<Token>>): AsyncIterableIterator<Token>;
@@ -1 +1 @@
1
- {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAGxC,KAAK,SAAS,CAAC,CAAC,QAAQ,CAI7B,IAAY,EACZ,QAA6B;IAE7B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;YAC3C,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,EAAE;gBACrB,MAAM,MAAM,CAAC,KAAK,CAAA;gBAClB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;KAClE;AACH,CAAC;AAtBD,4BAsBC"}
1
+ {"version":3,"file":"tokenize.js","sourceRoot":"","sources":["../src/tokenize.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAGxC,KAAK,SAAS,CAAC,CAAC,QAAQ,CAC7B,IAAY,EACZ,QAAqC;IAErC,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;YAC3C,IAAI,IAAA,mBAAS,EAAC,MAAM,CAAC,EAAE;gBACrB,MAAM,MAAM,CAAC,KAAK,CAAA;gBAClB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAA;gBACpB,SAAS,IAAI,CAAA;aACd;SACF;QAED,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;KAClE;AACH,CAAC;AAnBD,4BAmBC"}
package/lib/types.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  import { Falsy, Awaitable } from '@blackglory/prelude';
2
- export interface IToken<Type extends string> {
3
- type: Type;
2
+ export interface IToken {
3
+ tokenType: string;
4
4
  value: string;
5
5
  }
6
- export interface INode<Type extends string> {
7
- type: Type;
6
+ export interface INode {
7
+ nodeType: string;
8
8
  }
9
- export interface ITokenPatternMatch<Token extends IToken<string>> {
9
+ export interface ITokenPatternMatch<Token extends IToken> {
10
10
  consumed: number;
11
11
  token: Token;
12
12
  }
13
- export interface INodePatternMatch<Node extends INode<string>> {
13
+ export interface INodePatternMatch<Node extends INode> {
14
14
  consumed: number;
15
15
  node: Node;
16
16
  }
17
- export interface ITokenPattern<Token extends IToken<string>> {
17
+ export interface ITokenPattern<Token extends IToken = IToken> {
18
18
  (text: string): Awaitable<ITokenPatternMatch<Token> | Falsy>;
19
19
  }
20
- export interface INodePattern<Token extends IToken<string>, Node extends INode<string>> {
20
+ export interface INodePattern<Token extends IToken = IToken, Node extends INode = INode> {
21
21
  (tokens: ReadonlyArray<Token>): Awaitable<INodePatternMatch<Node> | Falsy>;
22
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-parser",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "files": [