clarity-pattern-parser 9.0.0 → 9.2.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.
@@ -5,6 +5,7 @@ import { Pattern } from "./Pattern";
5
5
  export interface FiniteRepeatOptions {
6
6
  divider?: Pattern;
7
7
  min?: number;
8
+ max?: number;
8
9
  trimDivider?: boolean;
9
10
  }
10
11
  export declare class FiniteRepeat implements Pattern {
@@ -23,14 +24,13 @@ export declare class FiniteRepeat implements Pattern {
23
24
  get parent(): Pattern | null;
24
25
  set parent(value: Pattern | null);
25
26
  get children(): Pattern[];
26
- get isOptional(): boolean;
27
27
  get min(): number;
28
28
  get max(): number;
29
- constructor(name: string, pattern: Pattern, repeatAmount: number, options?: FiniteRepeatOptions);
29
+ constructor(name: string, pattern: Pattern, options?: FiniteRepeatOptions);
30
30
  parse(cursor: Cursor): Node | null;
31
31
  test(text: string): boolean;
32
32
  exec(text: string, record?: boolean): ParseResult;
33
- clone(name?: string, isOptional?: boolean): Pattern;
33
+ clone(name?: string): Pattern;
34
34
  getTokens(): string[];
35
35
  getTokensAfter(childReference: Pattern): string[];
36
36
  getNextTokens(): string[];
@@ -25,7 +25,6 @@ export declare class InfiniteRepeat implements Pattern {
25
25
  get parent(): Pattern | null;
26
26
  set parent(pattern: Pattern | null);
27
27
  get children(): Pattern[];
28
- get isOptional(): boolean;
29
28
  get min(): number;
30
29
  constructor(name: string, pattern: Pattern, options?: InfiniteRepeatOptions);
31
30
  private _assignChildrenToParent;
@@ -43,6 +42,6 @@ export declare class InfiniteRepeat implements Pattern {
43
42
  getPatternsAfter(childReference: Pattern): Pattern[];
44
43
  getNextPatterns(): Pattern[];
45
44
  find(predicate: (p: Pattern) => boolean): Pattern | null;
46
- clone(name?: string, isOptional?: boolean): Pattern;
45
+ clone(name?: string): Pattern;
47
46
  isEqual(pattern: InfiniteRepeat): boolean;
48
47
  }
@@ -7,7 +7,6 @@ export declare class Literal implements Pattern {
7
7
  private _type;
8
8
  private _name;
9
9
  private _parent;
10
- private _isOptional;
11
10
  private _text;
12
11
  private _runes;
13
12
  private _firstIndex;
@@ -16,17 +15,17 @@ export declare class Literal implements Pattern {
16
15
  get id(): string;
17
16
  get type(): string;
18
17
  get name(): string;
18
+ get value(): string;
19
19
  get parent(): Pattern | null;
20
20
  set parent(pattern: Pattern | null);
21
21
  get children(): Pattern[];
22
- get isOptional(): boolean;
23
- constructor(name: string, value: string, isOptional?: boolean);
22
+ constructor(name: string, value: string);
24
23
  test(text: string): boolean;
25
24
  exec(text: string, record?: boolean): ParseResult;
26
25
  parse(cursor: Cursor): Node | null;
27
26
  private _tryToParse;
28
27
  private _createNode;
29
- clone(name?: string, isOptional?: boolean): Pattern;
28
+ clone(name?: string): Pattern;
30
29
  getTokens(): string[];
31
30
  getTokensAfter(_lastMatched: Pattern): string[];
32
31
  getNextTokens(): string[];
@@ -0,0 +1,30 @@
1
+ import { Node } from "../ast/Node";
2
+ import { Cursor } from "./Cursor";
3
+ import { ParseResult } from "./ParseResult";
4
+ import { Pattern } from "./Pattern";
5
+ export declare class Optional implements Pattern {
6
+ private _id;
7
+ private _type;
8
+ private _name;
9
+ private _parent;
10
+ private _children;
11
+ get id(): string;
12
+ get type(): string;
13
+ get name(): string;
14
+ get parent(): Pattern | null;
15
+ set parent(pattern: Pattern | null);
16
+ get children(): Pattern[];
17
+ constructor(name: string, pattern: Pattern);
18
+ test(text: string): boolean;
19
+ exec(text: string, record?: boolean): ParseResult;
20
+ parse(cursor: Cursor): Node | null;
21
+ clone(name?: string): Pattern;
22
+ getTokens(): string[];
23
+ getTokensAfter(_childReference: Pattern): string[];
24
+ getNextTokens(): string[];
25
+ getPatterns(): Pattern[];
26
+ getPatternsAfter(_childReference: Pattern): Pattern[];
27
+ getNextPatterns(): Pattern[];
28
+ find(predicate: (p: Pattern) => boolean): Pattern | null;
29
+ isEqual(pattern: Optional): boolean;
30
+ }
@@ -0,0 +1,34 @@
1
+ import { Node } from "../ast/Node";
2
+ import { Cursor } from "./Cursor";
3
+ import { Pattern } from "./Pattern";
4
+ import { ParseResult } from "./ParseResult";
5
+ export declare class Options implements Pattern {
6
+ private _id;
7
+ private _type;
8
+ private _name;
9
+ private _parent;
10
+ private _children;
11
+ private _isGreedy;
12
+ private _firstIndex;
13
+ get id(): string;
14
+ get type(): string;
15
+ get name(): string;
16
+ get parent(): Pattern | null;
17
+ set parent(pattern: Pattern | null);
18
+ get children(): Pattern[];
19
+ constructor(name: string, options: Pattern[], isGreedy?: boolean);
20
+ private _assignChildrenToParent;
21
+ test(text: string): boolean;
22
+ exec(text: string, record?: boolean): ParseResult;
23
+ parse(cursor: Cursor): Node | null;
24
+ private _tryToParse;
25
+ getTokens(): string[];
26
+ getTokensAfter(_childReference: Pattern): string[];
27
+ getNextTokens(): string[];
28
+ getPatterns(): Pattern[];
29
+ getPatternsAfter(_childReference: Pattern): Pattern[];
30
+ getNextPatterns(): Pattern[];
31
+ find(predicate: (p: Pattern) => boolean): Pattern | null;
32
+ clone(name?: string): Pattern;
33
+ isEqual(pattern: Options): boolean;
34
+ }
@@ -7,11 +7,10 @@ export interface Pattern {
7
7
  name: string;
8
8
  parent: Pattern | null;
9
9
  children: Pattern[];
10
- isOptional: boolean;
11
10
  parse(cursor: Cursor): Node | null;
12
11
  exec(text: string, record?: boolean): ParseResult;
13
12
  test(text: string, record?: boolean): boolean;
14
- clone(name?: string, isOptional?: boolean): Pattern;
13
+ clone(name?: string): Pattern;
15
14
  getTokens(): string[];
16
15
  getTokensAfter(childReference: Pattern): string[];
17
16
  getNextTokens(): string[];
@@ -7,7 +7,6 @@ export declare class Reference implements Pattern {
7
7
  private _type;
8
8
  private _name;
9
9
  private _parent;
10
- private _isOptional;
11
10
  private _pattern;
12
11
  private _children;
13
12
  get id(): string;
@@ -16,8 +15,7 @@ export declare class Reference implements Pattern {
16
15
  get parent(): Pattern | null;
17
16
  set parent(pattern: Pattern | null);
18
17
  get children(): Pattern[];
19
- get isOptional(): boolean;
20
- constructor(name: string, isOptional?: boolean);
18
+ constructor(name: string);
21
19
  test(text: string): boolean;
22
20
  exec(text: string, record?: boolean): ParseResult;
23
21
  parse(cursor: Cursor): Node | null;
@@ -31,6 +29,6 @@ export declare class Reference implements Pattern {
31
29
  getPatternsAfter(_childReference: Pattern): Pattern[];
32
30
  getNextPatterns(): Pattern[];
33
31
  find(_predicate: (p: Pattern) => boolean): Pattern | null;
34
- clone(name?: string, isOptional?: boolean): Pattern;
32
+ clone(name?: string): Pattern;
35
33
  isEqual(pattern: Reference): boolean;
36
34
  }
@@ -6,7 +6,6 @@ export declare class Regex implements Pattern {
6
6
  private _id;
7
7
  private _type;
8
8
  private _name;
9
- private _isOptional;
10
9
  private _parent;
11
10
  private _originalRegexString;
12
11
  private _regex;
@@ -18,11 +17,11 @@ export declare class Regex implements Pattern {
18
17
  get id(): string;
19
18
  get type(): string;
20
19
  get name(): string;
20
+ get value(): string;
21
21
  get parent(): Pattern | null;
22
22
  set parent(pattern: Pattern | null);
23
23
  get children(): Pattern[];
24
- get isOptional(): boolean;
25
- constructor(name: string, regex: string, isOptional?: boolean);
24
+ constructor(name: string, regex: string);
26
25
  private assertArguments;
27
26
  test(text: string): boolean;
28
27
  exec(text: string, record?: boolean): ParseResult;
@@ -31,7 +30,7 @@ export declare class Regex implements Pattern {
31
30
  private tryToParse;
32
31
  private processResult;
33
32
  private processError;
34
- clone(name?: string, isOptional?: boolean): Regex;
33
+ clone(name?: string): Regex;
35
34
  getTokens(): string[];
36
35
  getTokensAfter(_childReference: Pattern): string[];
37
36
  getNextTokens(): string[];
@@ -21,12 +21,13 @@ export declare class Repeat implements Pattern {
21
21
  get parent(): Pattern | null;
22
22
  set parent(value: Pattern | null);
23
23
  get children(): Pattern[];
24
- get isOptional(): boolean;
24
+ get min(): any;
25
+ get max(): any;
25
26
  constructor(name: string, pattern: Pattern, options?: RepeatOptions);
26
27
  parse(cursor: Cursor): Node | null;
27
28
  exec(text: string): ParseResult;
28
29
  test(text: string): boolean;
29
- clone(name?: string, isOptional?: boolean): Repeat;
30
+ clone(name?: string): Repeat;
30
31
  getTokens(): string[];
31
32
  getTokensAfter(_childReference: Pattern): string[];
32
33
  getNextTokens(): string[];
@@ -0,0 +1,39 @@
1
+ import { Cursor } from "./Cursor";
2
+ import { Pattern } from "./Pattern";
3
+ import { Node } from "../ast/Node";
4
+ export declare class Sequence implements Pattern {
5
+ private _id;
6
+ private _type;
7
+ private _name;
8
+ private _parent;
9
+ private _children;
10
+ private _nodes;
11
+ private _firstIndex;
12
+ get id(): string;
13
+ get type(): string;
14
+ get name(): string;
15
+ get parent(): Pattern | null;
16
+ set parent(pattern: Pattern | null);
17
+ get children(): Pattern[];
18
+ constructor(name: string, sequence: Pattern[]);
19
+ private _assignChildrenToParent;
20
+ test(text: string): boolean;
21
+ exec(text: string, record?: boolean): {
22
+ ast: Node | null;
23
+ cursor: Cursor;
24
+ };
25
+ parse(cursor: Cursor): Node | null;
26
+ private tryToParse;
27
+ private getLastValidNode;
28
+ private areRemainingPatternsOptional;
29
+ private createNode;
30
+ getTokens(): string[];
31
+ getTokensAfter(childReference: Pattern): string[];
32
+ getNextTokens(): string[];
33
+ getPatterns(): Pattern[];
34
+ getPatternsAfter(childReference: Pattern): Pattern[];
35
+ getNextPatterns(): Pattern[];
36
+ find(predicate: (p: Pattern) => boolean): Pattern | null;
37
+ clone(name?: string): Pattern;
38
+ isEqual(pattern: Sequence): boolean;
39
+ }
@@ -1,2 +1,2 @@
1
1
  import { Pattern } from "./Pattern";
2
- export declare function clonePatterns(patterns: Pattern[], isOptional?: boolean): Pattern[];
2
+ export declare function clonePatterns(patterns: Pattern[]): Pattern[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clarity-pattern-parser",
3
- "version": "9.0.0",
3
+ "version": "9.2.0",
4
4
  "description": "Parsing Library for Typescript and Javascript.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.esm.js",
@@ -28,6 +28,10 @@ export class Literal implements Pattern {
28
28
  return this._name;
29
29
  }
30
30
 
31
+ get value(): string {
32
+ return this._text;
33
+ }
34
+
31
35
  get parent(): Pattern | null {
32
36
  return this._parent;
33
37
  }
@@ -30,6 +30,10 @@ export class Regex implements Pattern {
30
30
  return this._name;
31
31
  }
32
32
 
33
+ get value(): string{
34
+ return this._originalRegexString;
35
+ }
36
+
33
37
  get parent(): Pattern | null {
34
38
  return this._parent;
35
39
  }
@@ -52,6 +52,14 @@ export class Repeat implements Pattern {
52
52
  return this._children;
53
53
  }
54
54
 
55
+ get min() {
56
+ return (this.children[0] as any).min;
57
+ }
58
+
59
+ get max() {
60
+ return (this.children[0] as any).max || Infinity;
61
+ }
62
+
55
63
  constructor(name: string, pattern: Pattern, options: RepeatOptions = {}) {
56
64
  this._id = `repeat-${idIndex++}`;
57
65
  this._pattern = pattern;