grammar-well 2.0.7 → 2.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.
- package/build/generator/artifacts/basic.d.ts +1 -1
- package/build/generator/artifacts/basic.js.map +1 -1
- package/build/generator/artifacts/lexer.d.ts +2 -2
- package/build/generator/artifacts/lexer.js +1 -1
- package/build/generator/artifacts/lexer.js.map +1 -1
- package/build/generator/artifacts/lr.d.ts +5 -5
- package/build/generator/artifacts/lr.js +2 -2
- package/build/generator/artifacts/lr.js.map +1 -1
- package/build/generator/generator.d.ts +3 -3
- package/build/generator/generator.js +3 -3
- package/build/generator/generator.js.map +1 -1
- package/build/generator/grammars/index.d.ts +2 -2
- package/build/generator/grammars/index.js +2 -2
- package/build/generator/import-resolvers/auto.d.ts +1 -1
- package/build/generator/import-resolvers/browser.d.ts +1 -1
- package/build/generator/import-resolvers/browser.js.map +1 -1
- package/build/generator/import-resolvers/dictionary.d.ts +1 -1
- package/build/generator/import-resolvers/dictionary.js.map +1 -1
- package/build/generator/import-resolvers/filesystem.d.ts +1 -1
- package/build/generator/index.d.ts +3 -3
- package/build/generator/index.js +3 -3
- package/build/generator/state.d.ts +1 -1
- package/build/generator/stringify/common.d.ts +2 -2
- package/build/generator/stringify/common.js.map +1 -1
- package/build/generator/stringify/exports/javascript.d.ts +1 -1
- package/build/generator/stringify/exports/json.d.ts +1 -1
- package/build/generator/stringify/exports/registry.d.ts +6 -6
- package/build/generator/stringify/exports/typescript.d.ts +1 -1
- package/build/generator/stringify/grammar/v2.d.ts +1 -1
- package/build/generator/stringify/javascript.d.ts +2 -2
- package/build/generator/stringify/javascript.js.map +1 -1
- package/build/index.d.ts +7 -7
- package/build/index.js +7 -7
- package/build/lexers/character-lexer.d.ts +1 -1
- package/build/lexers/stateful-lexer.d.ts +1 -1
- package/build/lexers/token-buffer.d.ts +3 -3
- package/build/lexers/token-buffer.js +2 -2
- package/build/lexers/token-buffer.js.map +1 -1
- package/build/parser/algorithms/cyk.d.ts +2 -2
- package/build/parser/algorithms/earley.d.ts +15 -12
- package/build/parser/algorithms/earley.js +39 -14
- package/build/parser/algorithms/earley.js.map +1 -1
- package/build/parser/algorithms/lrk/algorithm.d.ts +2 -2
- package/build/parser/algorithms/lrk/algorithm.js +31 -21
- package/build/parser/algorithms/lrk/algorithm.js.map +1 -1
- package/build/parser/algorithms/lrk/canonical-collection.d.ts +10 -10
- package/build/parser/algorithms/lrk/canonical-collection.js +73 -49
- package/build/parser/algorithms/lrk/canonical-collection.js.map +1 -1
- package/build/parser/algorithms/lrk/closure.d.ts +1 -1
- package/build/parser/algorithms/lrk/closure.js.map +1 -1
- package/build/parser/algorithms/lrk/stack.d.ts +8 -18
- package/build/parser/algorithms/lrk/stack.js +11 -24
- package/build/parser/algorithms/lrk/stack.js.map +1 -1
- package/build/parser/algorithms/lrk/state.d.ts +1 -1
- package/build/parser/algorithms/lrk/typings.d.ts +16 -0
- package/build/parser/algorithms/lrk/typings.js +2 -0
- package/build/parser/algorithms/lrk/typings.js.map +1 -0
- package/build/parser/parse.d.ts +1 -1
- package/build/typings/ast.d.ts +1 -1
- package/build/typings/generator.d.ts +4 -4
- package/build/typings/index.d.ts +8 -8
- package/build/typings/index.js +4 -4
- package/build/typings/runtime.d.ts +3 -3
- package/build/utility/format.js +3 -3
- package/build/utility/general.d.ts +2 -2
- package/build/utility/general.js +1 -1
- package/build/utility/general.js.map +1 -1
- package/build/utility/index.d.ts +4 -4
- package/build/utility/index.js +4 -4
- package/build/utility/lint.d.ts +1 -1
- package/build/utility/monarch.d.ts +1 -1
- package/build/utility/parsing.d.ts +2 -2
- package/build/utility/text-format.d.ts +2 -2
- package/build/version.json +1 -1
- package/package.json +8 -9
- package/src/generator/artifacts/basic.ts +6 -4
- package/src/generator/artifacts/lexer.ts +6 -4
- package/src/generator/artifacts/lr.ts +10 -7
- package/src/generator/generator.ts +17 -11
- package/src/generator/grammars/index.ts +2 -2
- package/src/generator/grammars/v1.ts +1 -1
- package/src/generator/grammars/v2.ts +1 -1
- package/src/generator/import-resolvers/auto.ts +3 -3
- package/src/generator/import-resolvers/browser.ts +5 -2
- package/src/generator/import-resolvers/dictionary.ts +5 -2
- package/src/generator/import-resolvers/filesystem.ts +1 -1
- package/src/generator/index.ts +3 -3
- package/src/generator/state.ts +1 -1
- package/src/generator/stringify/common.ts +6 -3
- package/src/generator/stringify/exports/javascript.ts +1 -1
- package/src/generator/stringify/exports/json.ts +1 -1
- package/src/generator/stringify/exports/registry.ts +4 -4
- package/src/generator/stringify/exports/typescript.ts +1 -1
- package/src/generator/stringify/grammar/v2.ts +1 -1
- package/src/generator/stringify/javascript.ts +12 -8
- package/src/index.ts +7 -7
- package/src/lexers/character-lexer.ts +1 -1
- package/src/lexers/stateful-lexer.ts +1 -1
- package/src/lexers/token-buffer.ts +16 -3
- package/src/parser/algorithms/cyk.ts +4 -4
- package/src/parser/algorithms/earley.ts +68 -20
- package/src/parser/algorithms/lrk/algorithm.ts +40 -25
- package/src/parser/algorithms/lrk/canonical-collection.ts +84 -55
- package/src/parser/algorithms/lrk/stack.ts +12 -37
- package/src/parser/algorithms/lrk/typings.ts +13 -0
- package/src/parser/parse.ts +8 -8
- package/src/typings/ast.ts +1 -1
- package/src/typings/generator.ts +4 -4
- package/src/typings/index.ts +8 -8
- package/src/typings/runtime.ts +3 -3
- package/src/utility/format.ts +4 -4
- package/src/utility/general.ts +4 -3
- package/src/utility/index.ts +4 -4
- package/src/utility/lint.ts +1 -1
- package/src/utility/monarch.ts +1 -1
- package/src/utility/parsing.ts +1 -1
- package/src/utility/text-format.ts +2 -2
- package/src/version.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/parser/algorithms/lrk/closure.ts +0 -37
- package/src/parser/algorithms/lrk/state.ts +0 -10
package/src/utility/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './monarch.
|
|
2
|
-
export * from './general.
|
|
3
|
-
export * from './format.
|
|
4
|
-
export * from './parsing.
|
|
1
|
+
export * from './monarch.ts';
|
|
2
|
+
export * from './general.ts';
|
|
3
|
+
export * from './format.ts';
|
|
4
|
+
export * from './parsing.ts';
|
package/src/utility/lint.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dictionary, RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeParserClass } from "../typings/index.
|
|
1
|
+
import type { Dictionary, RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeParserClass } from "../typings/index.ts";
|
|
2
2
|
|
|
3
3
|
export function LintGrammarSymbols(grammar: RuntimeParserClass['artifacts']['grammar']): RuntimeGrammarRuleSymbol[] {
|
|
4
4
|
const unused = new Set<string>();
|
package/src/utility/monarch.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ASTLexerStateNonMatchRule, RuntimeLexerConfig, RuntimeLexerStateMatchRule } from "../typings/index.
|
|
1
|
+
import type { ASTLexerStateNonMatchRule, RuntimeLexerConfig, RuntimeLexerStateMatchRule } from "../typings/index.ts";
|
|
2
2
|
|
|
3
3
|
export function CreateMonarchTokenizer(lexer: RuntimeLexerConfig) {
|
|
4
4
|
const tokenizer: any = {}; // languages.IMonarchLanguage['tokenizer']
|
package/src/utility/parsing.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TokenBuffer } from "../lexers/token-buffer.
|
|
2
|
-
import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeLexerToken } from "../typings/index.
|
|
1
|
+
import { TokenBuffer } from "../lexers/token-buffer.ts";
|
|
2
|
+
import type { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeLexerToken } from "../typings/index.ts";
|
|
3
3
|
|
|
4
4
|
export class TextFormatter {
|
|
5
5
|
|
package/src/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"2.0
|
|
1
|
+
{"version":"2.2.0"}
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["./src/index.ts","./src/generator/generator.ts","./src/generator/index.ts","./src/generator/state.ts","./src/generator/artifacts/basic.ts","./src/generator/artifacts/lexer.ts","./src/generator/artifacts/lr.ts","./src/generator/grammars/index.ts","./src/generator/grammars/v1.ts","./src/generator/grammars/v2.ts","./src/generator/import-resolvers/auto.ts","./src/generator/import-resolvers/browser.ts","./src/generator/import-resolvers/dictionary.ts","./src/generator/import-resolvers/filesystem.ts","./src/generator/stringify/common.ts","./src/generator/stringify/javascript.ts","./src/generator/stringify/exports/javascript.ts","./src/generator/stringify/exports/json.ts","./src/generator/stringify/exports/registry.ts","./src/generator/stringify/exports/typescript.ts","./src/generator/stringify/grammar/v2.ts","./src/lexers/character-lexer.ts","./src/lexers/stateful-lexer.ts","./src/lexers/token-buffer.ts","./src/parser/parse.ts","./src/parser/algorithms/cyk.ts","./src/parser/algorithms/earley.ts","./src/parser/algorithms/lrk/algorithm.ts","./src/parser/algorithms/lrk/bimap.ts","./src/parser/algorithms/lrk/canonical-collection.ts","./src/parser/algorithms/lrk/
|
|
1
|
+
{"root":["./src/index.ts","./src/generator/generator.ts","./src/generator/index.ts","./src/generator/state.ts","./src/generator/artifacts/basic.ts","./src/generator/artifacts/lexer.ts","./src/generator/artifacts/lr.ts","./src/generator/grammars/index.ts","./src/generator/grammars/v1.ts","./src/generator/grammars/v2.ts","./src/generator/import-resolvers/auto.ts","./src/generator/import-resolvers/browser.ts","./src/generator/import-resolvers/dictionary.ts","./src/generator/import-resolvers/filesystem.ts","./src/generator/stringify/common.ts","./src/generator/stringify/javascript.ts","./src/generator/stringify/exports/javascript.ts","./src/generator/stringify/exports/json.ts","./src/generator/stringify/exports/registry.ts","./src/generator/stringify/exports/typescript.ts","./src/generator/stringify/grammar/v2.ts","./src/lexers/character-lexer.ts","./src/lexers/stateful-lexer.ts","./src/lexers/token-buffer.ts","./src/parser/parse.ts","./src/parser/algorithms/cyk.ts","./src/parser/algorithms/earley.ts","./src/parser/algorithms/lrk/algorithm.ts","./src/parser/algorithms/lrk/bimap.ts","./src/parser/algorithms/lrk/canonical-collection.ts","./src/parser/algorithms/lrk/stack.ts","./src/parser/algorithms/lrk/typings.ts","./src/typings/ast.ts","./src/typings/common.ts","./src/typings/generator.ts","./src/typings/index.ts","./src/typings/runtime.ts","./src/utility/format.ts","./src/utility/general.ts","./src/utility/index.ts","./src/utility/lint.ts","./src/utility/monarch.ts","./src/utility/parsing.ts","./src/utility/text-format.ts"],"version":"5.9.3"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol, RuntimeParserClass } from "../../../typings/index.js";
|
|
2
|
-
import { ParserUtility } from "../../../utility/parsing.js";
|
|
3
|
-
|
|
4
|
-
export class ClosureBuilder {
|
|
5
|
-
constructor(
|
|
6
|
-
private grammar: RuntimeParserClass['artifacts']['grammar'],
|
|
7
|
-
) { }
|
|
8
|
-
|
|
9
|
-
get(rule: string) {
|
|
10
|
-
const closure: RuleClosure = { items: [], visited: new Set() };
|
|
11
|
-
this.addClosure(closure, rule);
|
|
12
|
-
return closure.items;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
private addClosure(closure: RuleClosure, symbol: RuntimeGrammarRuleSymbol) {
|
|
16
|
-
if (!ParserUtility.SymbolIsTerminal(symbol)) {
|
|
17
|
-
const key = symbol as string;
|
|
18
|
-
if (!(closure.visited.has(key))) {
|
|
19
|
-
closure.visited.add(key);
|
|
20
|
-
|
|
21
|
-
const rules = this.grammar.rules[key];
|
|
22
|
-
for (const rule of rules) {
|
|
23
|
-
closure.items.push({ rule, dot: 0 })
|
|
24
|
-
this.addClosure(closure, rule.symbols[0]);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
interface RuleClosure {
|
|
32
|
-
items: {
|
|
33
|
-
rule: RuntimeGrammarProductionRule,
|
|
34
|
-
dot: number,
|
|
35
|
-
}[]
|
|
36
|
-
visited: Set<RuntimeGrammarRuleSymbol>;
|
|
37
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { RuntimeGrammarProductionRule, RuntimeGrammarRuleSymbol } from "../../../typings/index.js";
|
|
2
|
-
|
|
3
|
-
export interface State {
|
|
4
|
-
items: { rule: RuntimeGrammarProductionRule, dot: number }[];
|
|
5
|
-
isFinal: boolean;
|
|
6
|
-
actions: Map<RuntimeGrammarRuleSymbol, string>;
|
|
7
|
-
goto: Map<RuntimeGrammarRuleSymbol, string>;
|
|
8
|
-
reduce: number;
|
|
9
|
-
rule: RuntimeGrammarProductionRule
|
|
10
|
-
}
|