@chr33s/pdf-dfa 5.0.6 → 5.0.7
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/dist/compile.d.ts +14 -0
- package/dist/compile.js +14 -0
- package/dist/compile.js.map +1 -1
- package/dist/dfa.d.ts +1 -0
- package/dist/dfa.js.map +1 -1
- package/dist/nodes.d.ts +1 -0
- package/dist/nodes.js +1 -0
- package/dist/nodes.js.map +1 -1
- package/dist/state-machine.d.ts +4 -0
- package/dist/state-machine.js +2 -0
- package/dist/state-machine.js.map +1 -1
- package/package.json +1 -1
- package/src/compile.ts +14 -0
- package/src/dfa.ts +1 -0
- package/src/nodes.ts +1 -0
- package/src/state-machine.ts +4 -0
package/dist/compile.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import StateMachine from "./state-machine.js";
|
|
2
2
|
import SymbolTable from "./symbol-table.js";
|
|
3
3
|
export type ExternalSymbols = Record<string, number>;
|
|
4
|
+
/**
|
|
5
|
+
* Parses a DFA source grammar into a symbol table.
|
|
6
|
+
* @param source The DFA source grammar string
|
|
7
|
+
* @param externalSymbols Optional external symbol mappings
|
|
8
|
+
*/
|
|
4
9
|
export declare function parse(source: string, externalSymbols?: ExternalSymbols): SymbolTable;
|
|
10
|
+
/**
|
|
11
|
+
* Builds a StateMachine from a parsed symbol table.
|
|
12
|
+
* @param symbolTable The parsed symbol table from parse()
|
|
13
|
+
*/
|
|
5
14
|
export declare function build(symbolTable: SymbolTable): StateMachine;
|
|
15
|
+
/**
|
|
16
|
+
* Compiles a DFA source grammar directly into a StateMachine.
|
|
17
|
+
* @param source The DFA source grammar string
|
|
18
|
+
* @param externalSymbols Optional external symbol mappings
|
|
19
|
+
*/
|
|
6
20
|
export default function compile(source: string, externalSymbols?: ExternalSymbols): StateMachine;
|
package/dist/compile.js
CHANGED
|
@@ -3,10 +3,19 @@ import { parse as parseGrammar } from "./grammar.js";
|
|
|
3
3
|
import * as nodes from "./nodes.js";
|
|
4
4
|
import StateMachine from "./state-machine.js";
|
|
5
5
|
import SymbolTable from "./symbol-table.js";
|
|
6
|
+
/**
|
|
7
|
+
* Parses a DFA source grammar into a symbol table.
|
|
8
|
+
* @param source The DFA source grammar string
|
|
9
|
+
* @param externalSymbols Optional external symbol mappings
|
|
10
|
+
*/
|
|
6
11
|
export function parse(source, externalSymbols = {}) {
|
|
7
12
|
const ast = parseGrammar(source, { nodes });
|
|
8
13
|
return new SymbolTable(ast, externalSymbols);
|
|
9
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Builds a StateMachine from a parsed symbol table.
|
|
17
|
+
* @param symbolTable The parsed symbol table from parse()
|
|
18
|
+
*/
|
|
10
19
|
export function build(symbolTable) {
|
|
11
20
|
const states = buildDFA(symbolTable.main, symbolTable.size);
|
|
12
21
|
const config = {
|
|
@@ -16,6 +25,11 @@ export function build(symbolTable) {
|
|
|
16
25
|
};
|
|
17
26
|
return new StateMachine(config);
|
|
18
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Compiles a DFA source grammar directly into a StateMachine.
|
|
30
|
+
* @param source The DFA source grammar string
|
|
31
|
+
* @param externalSymbols Optional external symbol mappings
|
|
32
|
+
*/
|
|
19
33
|
export default function compile(source, externalSymbols = {}) {
|
|
20
34
|
return build(parse(source, externalSymbols));
|
|
21
35
|
}
|
package/dist/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAsB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,YAAoC,MAAM,oBAAoB,CAAC;AACtE,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAI5C,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,kBAAmC,EAAE;IACzE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,WAAwB;IAC5C,MAAM,MAAM,GAAe,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAExE,MAAM,MAAM,GAAuB;QACjC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACjD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD,CAAC;IAEF,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,MAAc,EACd,kBAAmC,EAAE;IAErC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,QAAsB,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,YAAoC,MAAM,oBAAoB,CAAC;AACtE,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAI5C;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,kBAAmC,EAAE;IACzE,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,WAAwB;IAC5C,MAAM,MAAM,GAAe,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAExE,MAAM,MAAM,GAAuB;QACjC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;QACjD,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpD,CAAC;IAEF,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,MAAc,EACd,kBAAmC,EAAE;IAErC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
package/dist/dfa.d.ts
CHANGED
package/dist/dfa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dfa.js","sourceRoot":"","sources":["../src/dfa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAkB,OAAO,EAAgB,GAAG,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"dfa.js","sourceRoot":"","sources":["../src/dfa.ts"],"names":[],"mappings":"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"}
|
package/dist/nodes.d.ts
CHANGED
|
@@ -77,6 +77,7 @@ export declare class Repeat extends Node {
|
|
|
77
77
|
calcFollowpos(): void;
|
|
78
78
|
copy(): Repeat;
|
|
79
79
|
}
|
|
80
|
+
/** Builds a repetition expression with specified min/max bounds. */
|
|
80
81
|
export declare function buildRepetition(expression: ExpressionNode, min?: number, max?: number): ExpressionNode;
|
|
81
82
|
/**
|
|
82
83
|
* Base class for leaf nodes
|
package/dist/nodes.js
CHANGED
|
@@ -162,6 +162,7 @@ export class Repeat extends Node {
|
|
|
162
162
|
return new Repeat(this.expression.copy(), this.op);
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
|
+
/** Builds a repetition expression with specified min/max bounds. */
|
|
165
166
|
export function buildRepetition(expression, min = 0, max = Infinity) {
|
|
166
167
|
if (min < 0 || min > max) {
|
|
167
168
|
throw new Error(`Invalid repetition range: ${min} ${max}`);
|
package/dist/nodes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../src/nodes.ts"],"names":[],"mappings":"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"}
|
package/dist/state-machine.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
/** Initial state index for the state machine. */
|
|
1
2
|
export declare const INITIAL_STATE = 1;
|
|
3
|
+
/** Fail state index indicating no valid transition. */
|
|
2
4
|
export declare const FAIL_STATE = 0;
|
|
5
|
+
/** A match result: [start index, end index, captured tags]. */
|
|
3
6
|
export type Match = [start: number, end: number, tags: string[]];
|
|
7
|
+
/** Configuration for constructing a StateMachine. */
|
|
4
8
|
export interface StateMachineConfig {
|
|
5
9
|
stateTable: number[][];
|
|
6
10
|
accepting: boolean[];
|
package/dist/state-machine.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/compile.ts
CHANGED
|
@@ -6,11 +6,20 @@ import SymbolTable from "./symbol-table.js";
|
|
|
6
6
|
|
|
7
7
|
export type ExternalSymbols = Record<string, number>;
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Parses a DFA source grammar into a symbol table.
|
|
11
|
+
* @param source The DFA source grammar string
|
|
12
|
+
* @param externalSymbols Optional external symbol mappings
|
|
13
|
+
*/
|
|
9
14
|
export function parse(source: string, externalSymbols: ExternalSymbols = {}): SymbolTable {
|
|
10
15
|
const ast = parseGrammar(source, { nodes });
|
|
11
16
|
return new SymbolTable(ast, externalSymbols);
|
|
12
17
|
}
|
|
13
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Builds a StateMachine from a parsed symbol table.
|
|
21
|
+
* @param symbolTable The parsed symbol table from parse()
|
|
22
|
+
*/
|
|
14
23
|
export function build(symbolTable: SymbolTable): StateMachine {
|
|
15
24
|
const states: DFAState[] = buildDFA(symbolTable.main, symbolTable.size);
|
|
16
25
|
|
|
@@ -23,6 +32,11 @@ export function build(symbolTable: SymbolTable): StateMachine {
|
|
|
23
32
|
return new StateMachine(config);
|
|
24
33
|
}
|
|
25
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Compiles a DFA source grammar directly into a StateMachine.
|
|
37
|
+
* @param source The DFA source grammar string
|
|
38
|
+
* @param externalSymbols Optional external symbol mappings
|
|
39
|
+
*/
|
|
26
40
|
export default function compile(
|
|
27
41
|
source: string,
|
|
28
42
|
externalSymbols: ExternalSymbols = {},
|
package/src/dfa.ts
CHANGED
package/src/nodes.ts
CHANGED
package/src/state-machine.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
/** Initial state index for the state machine. */
|
|
1
2
|
export const INITIAL_STATE = 1;
|
|
3
|
+
/** Fail state index indicating no valid transition. */
|
|
2
4
|
export const FAIL_STATE = 0;
|
|
3
5
|
|
|
6
|
+
/** A match result: [start index, end index, captured tags]. */
|
|
4
7
|
export type Match = [start: number, end: number, tags: string[]];
|
|
5
8
|
|
|
9
|
+
/** Configuration for constructing a StateMachine. */
|
|
6
10
|
export interface StateMachineConfig {
|
|
7
11
|
stateTable: number[][];
|
|
8
12
|
accepting: boolean[];
|