node-llama-cpp 3.2.0 → 3.3.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/dist/bindings/AddonTypes.d.ts +4 -3
- package/dist/bindings/Llama.d.ts +1 -1
- package/dist/bindings/Llama.js +17 -2
- package/dist/bindings/Llama.js.map +1 -1
- package/dist/bindings/getLlama.d.ts +4 -1
- package/dist/bindings/getLlama.js +42 -2
- package/dist/bindings/getLlama.js.map +1 -1
- package/dist/bindings/utils/compileLLamaCpp.d.ts +1 -1
- package/dist/bindings/utils/compileLLamaCpp.js +41 -2
- package/dist/bindings/utils/compileLLamaCpp.js.map +1 -1
- package/dist/bindings/utils/testBindingBinary.d.ts +2 -1
- package/dist/bindings/utils/testBindingBinary.js +122 -37
- package/dist/bindings/utils/testBindingBinary.js.map +1 -1
- package/dist/chatWrappers/Llama3_1ChatWrapper.js +3 -2
- package/dist/chatWrappers/Llama3_1ChatWrapper.js.map +1 -1
- package/dist/chatWrappers/Llama3_2LightweightChatWrapper.d.ts +35 -0
- package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js +253 -0
- package/dist/chatWrappers/Llama3_2LightweightChatWrapper.js.map +1 -0
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.d.ts +13 -0
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js +30 -0
- package/dist/chatWrappers/utils/ChatModelFunctionsDocumentationGenerator.js.map +1 -1
- package/dist/chatWrappers/utils/getModelLinageNames.d.ts +2 -0
- package/dist/chatWrappers/utils/getModelLinageNames.js +18 -0
- package/dist/chatWrappers/utils/getModelLinageNames.js.map +1 -0
- package/dist/chatWrappers/utils/isLlama3_2LightweightModel.d.ts +2 -0
- package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js +9 -0
- package/dist/chatWrappers/utils/isLlama3_2LightweightModel.js.map +1 -0
- package/dist/chatWrappers/utils/resolveChatWrapper.d.ts +4 -2
- package/dist/chatWrappers/utils/resolveChatWrapper.js +9 -31
- package/dist/chatWrappers/utils/resolveChatWrapper.js.map +1 -1
- package/dist/cli/commands/ChatCommand.js +1 -1
- package/dist/cli/commands/ChatCommand.js.map +1 -1
- package/dist/cli/commands/InitCommand.d.ts +2 -1
- package/dist/cli/commands/InitCommand.js +32 -13
- package/dist/cli/commands/InitCommand.js.map +1 -1
- package/dist/cli/recommendedModels.js +11 -0
- package/dist/cli/recommendedModels.js.map +1 -1
- package/dist/evaluator/LlamaChat/LlamaChat.js +25 -12
- package/dist/evaluator/LlamaChat/LlamaChat.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js +140 -132
- package/dist/evaluator/LlamaChatSession/LlamaChatSession.js.map +1 -1
- package/dist/evaluator/LlamaChatSession/utils/defineChatSessionFunction.d.ts +1 -1
- package/dist/evaluator/LlamaGrammar.js +7 -0
- package/dist/evaluator/LlamaGrammar.js.map +1 -1
- package/dist/evaluator/LlamaJsonSchemaGrammar.d.ts +3 -2
- package/dist/evaluator/LlamaJsonSchemaGrammar.js +3 -0
- package/dist/evaluator/LlamaJsonSchemaGrammar.js.map +1 -1
- package/dist/gguf/fileReaders/GgufFileReader.d.ts +1 -1
- package/dist/gguf/fileReaders/GgufFsFileReader.d.ts +1 -1
- package/dist/gguf/fileReaders/GgufNetworkFetchFileReader.d.ts +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.d.ts +5 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js +15 -0
- package/dist/utils/gbnfJson/GbnfGrammarGenerator.js.map +1 -1
- package/dist/utils/gbnfJson/GbnfTerminal.d.ts +3 -0
- package/dist/utils/gbnfJson/GbnfTerminal.js +25 -3
- package/dist/utils/gbnfJson/GbnfTerminal.js.map +1 -1
- package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.d.ts +1 -1
- package/dist/utils/gbnfJson/getGbnfGrammarForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfAnyJson.d.ts +9 -0
- package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js +53 -0
- package/dist/utils/gbnfJson/terminals/GbnfAnyJson.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfArray.d.ts +11 -2
- package/dist/utils/gbnfJson/terminals/GbnfArray.js +64 -15
- package/dist/utils/gbnfJson/terminals/GbnfArray.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.d.ts +3 -2
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js +13 -7
- package/dist/utils/gbnfJson/terminals/GbnfBoolean.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.d.ts +11 -0
- package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js +28 -0
- package/dist/utils/gbnfJson/terminals/GbnfCommaWhitespace.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfFormatString.d.ts +11 -0
- package/dist/utils/gbnfJson/terminals/GbnfFormatString.js +90 -0
- package/dist/utils/gbnfJson/terminals/GbnfFormatString.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.d.ts +4 -1
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js +8 -1
- package/dist/utils/gbnfJson/terminals/GbnfGrammar.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.d.ts +5 -0
- package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js +24 -0
- package/dist/utils/gbnfJson/terminals/GbnfInsideStringChar.js.map +1 -0
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js +4 -3
- package/dist/utils/gbnfJson/terminals/GbnfNumber.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.d.ts +3 -1
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js +8 -2
- package/dist/utils/gbnfJson/terminals/GbnfNumberValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.d.ts +14 -5
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js +67 -9
- package/dist/utils/gbnfJson/terminals/GbnfObjectMap.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.d.ts +2 -1
- package/dist/utils/gbnfJson/terminals/GbnfOr.js +6 -2
- package/dist/utils/gbnfJson/terminals/GbnfOr.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfRepetition.d.ts +7 -1
- package/dist/utils/gbnfJson/terminals/GbnfRepetition.js +69 -20
- package/dist/utils/gbnfJson/terminals/GbnfRepetition.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfString.d.ts +8 -1
- package/dist/utils/gbnfJson/terminals/GbnfString.js +31 -21
- package/dist/utils/gbnfJson/terminals/GbnfString.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.d.ts +2 -0
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js +7 -4
- package/dist/utils/gbnfJson/terminals/GbnfStringValue.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.d.ts +2 -1
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js +24 -5
- package/dist/utils/gbnfJson/terminals/GbnfWhitespace.js.map +1 -1
- package/dist/utils/gbnfJson/terminals/gbnfConsts.d.ts +16 -1
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js +47 -1
- package/dist/utils/gbnfJson/terminals/gbnfConsts.js.map +1 -1
- package/dist/utils/gbnfJson/types.d.ts +164 -17
- package/dist/utils/gbnfJson/types.js +6 -0
- package/dist/utils/gbnfJson/types.js.map +1 -1
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js +61 -9
- package/dist/utils/gbnfJson/utils/getGbnfJsonTerminalForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js +99 -8
- package/dist/utils/gbnfJson/utils/validateObjectAgainstGbnfSchema.js.map +1 -1
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js +125 -16
- package/dist/utils/getTypeScriptTypeStringForGbnfJsonSchema.js.map +1 -1
- package/dist/utils/includesText.d.ts +1 -0
- package/dist/utils/includesText.js +12 -0
- package/dist/utils/includesText.js.map +1 -0
- package/dist/utils/wrapAbortSignal.d.ts +1 -1
- package/dist/utils/wrapAbortSignal.js +9 -4
- package/dist/utils/wrapAbortSignal.js.map +1 -1
- package/llama/CMakeLists.txt +10 -90
- package/llama/addon/AddonGrammar.cpp +49 -1
- package/llama/addon/AddonGrammar.h +3 -0
- package/llama/addon/addon.cpp +17 -0
- package/llama/addon/globals/getGpuInfo.cpp +54 -52
- package/llama/binariesGithubRelease.json +1 -1
- package/llama/gitRelease.bundle +0 -0
- package/llama/gpuInfo/vulkan-gpu-info.cpp +0 -8
- package/llama/gpuInfo/vulkan-gpu-info.h +0 -1
- package/llama/grammars/README.md +1 -1
- package/llama/llama.cpp.info.json +1 -1
- package/package.json +49 -45
- package/templates/README.md +6 -0
- package/templates/packed/electron-typescript-react.json +1 -1
- package/templates/packed/node-typescript.json +1 -1
- package/llama/gpuInfo/cuda-gpu-info.cu +0 -120
- package/llama/gpuInfo/cuda-gpu-info.h +0 -10
- package/llama/gpuInfo/metal-gpu-info.h +0 -8
- package/llama/gpuInfo/metal-gpu-info.mm +0 -37
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfFormatString.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfFormatString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAC9B,MAAM,CAAuC;IAE7D,YAAmB,MAA4C;QAC3D,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YACtB,OAAO,IAAI,WAAW,CAAC;gBACnB,KAAK;gBACL,IAAI,CAAC,eAAe,EAAE;gBACtB,KAAK;aACR,CAAC,CAAC,UAAU,EAAE,CAAC;aACf,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,WAAW,CAAC;gBACnB,KAAK;gBACL,IAAI,CAAC,eAAe,EAAE;gBACtB,KAAK;aACR,CAAC,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAClC,OAAO,IAAI,WAAW,CAAC;gBACnB,KAAK;gBACL,IAAI,CAAC,eAAe,EAAE;gBACtB,KAAK;gBACL,IAAI,CAAC,eAAe,EAAE;gBACtB,KAAK;aACR,CAAC,CAAC,UAAU,EAAE,CAAC;QAEpB,OAAO,IAAI,UAAU,CAAC;YAClB,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACf,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAEkB,WAAW;QAC1B,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAEO,eAAe;QACnB,OAAO,IAAI,WAAW,CAAC;YACnB,UAAU;YACV,KAAK;YACL,EAAE,CAAC;gBACC,WAAW;gBACX,WAAW;aACd,CAAC;YACF,KAAK;YACL,EAAE,CAAC;gBACC,WAAW;gBACX,YAAY;gBACZ,UAAU;aACb,CAAC;SACL,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,eAAe;QACnB,OAAO,IAAI,WAAW,CAAC;YACnB,EAAE,CAAC;gBACC,YAAY;gBACZ,WAAW;aACd,CAAC;YACF,KAAK;YACL,aAAa;YACb,KAAK;YACL,aAAa;YACb,mBAAmB;YACnB,EAAE,CAAC;gBACC,KAAK;gBACL,IAAI,WAAW,CAAC;oBACZ,EAAE,CAAC;wBACC,KAAK;wBACL,KAAK;qBACR,CAAC;oBACF,EAAE,CAAC;wBACC,YAAY;wBACZ,WAAW;qBACd,CAAC;oBACF,KAAK;oBACL,aAAa;iBAChB,CAAC,CAAC,UAAU,EAAE;aAClB,CAAC;SACL,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ;AAED,SAAS,EAAE,CAAC,MAAgB;IACxB,OAAO,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAC1C,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
2
3
|
export declare class GbnfGrammar extends GbnfTerminal {
|
|
3
4
|
readonly grammar: string | string[];
|
|
4
|
-
|
|
5
|
+
readonly resolveToRawGrammar: boolean;
|
|
6
|
+
constructor(grammar: string | string[], resolveToRawGrammar?: boolean);
|
|
5
7
|
getGrammar(): string;
|
|
8
|
+
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
6
9
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
2
|
export class GbnfGrammar extends GbnfTerminal {
|
|
3
3
|
grammar;
|
|
4
|
-
|
|
4
|
+
resolveToRawGrammar;
|
|
5
|
+
constructor(grammar, resolveToRawGrammar = false) {
|
|
5
6
|
super();
|
|
6
7
|
this.grammar = grammar;
|
|
8
|
+
this.resolveToRawGrammar = resolveToRawGrammar;
|
|
7
9
|
}
|
|
8
10
|
getGrammar() {
|
|
9
11
|
if (this.grammar instanceof Array)
|
|
@@ -12,5 +14,10 @@ export class GbnfGrammar extends GbnfTerminal {
|
|
|
12
14
|
.join(" ");
|
|
13
15
|
return this.grammar;
|
|
14
16
|
}
|
|
17
|
+
resolve(grammarGenerator) {
|
|
18
|
+
if (this.resolveToRawGrammar)
|
|
19
|
+
return this.getGrammar();
|
|
20
|
+
return super.resolve(grammarGenerator);
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
23
|
//# sourceMappingURL=GbnfGrammar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfGrammar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GbnfGrammar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfGrammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzB,OAAO,CAAoB;IAC3B,mBAAmB,CAAU;IAE7C,YAAmB,OAA0B,EAAE,sBAA+B,KAAK;QAC/E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,OAAO,YAAY,KAAK;YAC7B,OAAO,IAAI,CAAC,OAAO;iBACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;iBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEe,OAAO,CAAC,gBAAsC;QAC1D,IAAI,IAAI,CAAC,mBAAmB;YACxB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAE7B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
export class GbnfInsideStringChar extends GbnfTerminal {
|
|
4
|
+
getGrammar() {
|
|
5
|
+
return [
|
|
6
|
+
negatedCharacterSet([
|
|
7
|
+
'"',
|
|
8
|
+
"\\\\",
|
|
9
|
+
"\\x7F",
|
|
10
|
+
"\\x00-\\x1F"
|
|
11
|
+
]),
|
|
12
|
+
// escape sequences
|
|
13
|
+
'"\\\\" ["\\\\/bfnrt]',
|
|
14
|
+
'"\\\\u" [0-9a-fA-F]{4}'
|
|
15
|
+
].join(" | ");
|
|
16
|
+
}
|
|
17
|
+
getRuleName() {
|
|
18
|
+
return reservedRuleNames.stringChar;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function negatedCharacterSet(characterDefinitions) {
|
|
22
|
+
return "[^" + characterDefinitions.join("") + "]";
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=GbnfInsideStringChar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GbnfInsideStringChar.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfInsideStringChar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAElD,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAC3C,UAAU;QACb,OAAO;YACH,mBAAmB,CAAC;gBAChB,GAAG;gBACH,MAAM;gBACN,OAAO;gBACP,aAAa;aAChB,CAAC;YAEF,mBAAmB;YACnB,sBAAsB;YACtB,wBAAwB;SAC3B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAEkB,WAAW;QAC1B,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACxC,CAAC;CACJ;AAED,SAAS,mBAAmB,CAAC,oBAA8B;IACvD,OAAO,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;AACtD,CAAC"}
|
|
@@ -7,10 +7,11 @@ export class GbnfNumber extends GbnfTerminal {
|
|
|
7
7
|
this.allowFractional = allowFractional;
|
|
8
8
|
}
|
|
9
9
|
getGrammar() {
|
|
10
|
-
const
|
|
10
|
+
const num = '"-"? ("0" | [1-9] [0-9]{0,15})';
|
|
11
|
+
const exponent = ' ([eE] [-+]? ("0" | [1-9] [0-9]{0,15}))?';
|
|
11
12
|
if (this.allowFractional)
|
|
12
|
-
return
|
|
13
|
-
return
|
|
13
|
+
return num + ' ("." [0-9]{1,16})?' + exponent;
|
|
14
|
+
return num + exponent;
|
|
14
15
|
}
|
|
15
16
|
getRuleName() {
|
|
16
17
|
if (this.allowFractional)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfNumber.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,EAA6B;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAEM,UAAU;QACb,MAAM,
|
|
1
|
+
{"version":3,"file":"GbnfNumber.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAGlD,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,eAAe,CAAU;IAEzC,YAAmB,EAAC,eAAe,GAAG,IAAI,EAA6B;QACnE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAEM,UAAU;QACb,MAAM,GAAG,GAAG,gCAAgC,CAAC;QAC7C,MAAM,QAAQ,GAAG,0CAA0C,CAAC;QAE5D,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,GAAG,GAAG,qBAAqB,GAAG,QAAQ,CAAC;QAElD,OAAO,GAAG,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAEkB,WAAW;QAC1B,IAAI,IAAI,CAAC,eAAe;YACpB,OAAO,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;QAE/C,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,CAAC;CACJ"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
2
3
|
export declare class GbnfNumberValue extends GbnfTerminal {
|
|
3
4
|
readonly value: number;
|
|
4
5
|
constructor(value: number);
|
|
5
6
|
getGrammar(): string;
|
|
6
|
-
resolve(): string;
|
|
7
|
+
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
|
+
protected generateRuleName(grammarGenerator: GbnfGrammarGenerator): string;
|
|
7
9
|
}
|
|
@@ -8,8 +8,14 @@ export class GbnfNumberValue extends GbnfTerminal {
|
|
|
8
8
|
getGrammar() {
|
|
9
9
|
return '"' + JSON.stringify(this.value) + '"';
|
|
10
10
|
}
|
|
11
|
-
resolve() {
|
|
12
|
-
|
|
11
|
+
resolve(grammarGenerator) {
|
|
12
|
+
const grammar = this.getGrammar();
|
|
13
|
+
if (grammar.length <= grammarGenerator.getProposedLiteralValueRuleNameLength())
|
|
14
|
+
return grammar;
|
|
15
|
+
return super.resolve(grammarGenerator);
|
|
16
|
+
}
|
|
17
|
+
generateRuleName(grammarGenerator) {
|
|
18
|
+
return grammarGenerator.generateRuleNameForLiteralValue(this.value);
|
|
13
19
|
}
|
|
14
20
|
}
|
|
15
21
|
//# sourceMappingURL=GbnfNumberValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfNumberValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumberValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GbnfNumberValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfNumberValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEe,UAAU;QACtB,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,qCAAqC,EAAE;YAC1E,OAAO,OAAO,CAAC;QAEnB,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;IAEkB,gBAAgB,CAAC,gBAAsC;QACtE,OAAO,gBAAgB,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACJ"}
|
|
@@ -9,11 +9,20 @@ export declare class GbnfObjectMap extends GbnfTerminal {
|
|
|
9
9
|
value: GbnfTerminal;
|
|
10
10
|
required: true;
|
|
11
11
|
}>>;
|
|
12
|
+
readonly additionalProperties?: GbnfTerminal;
|
|
13
|
+
readonly minProperties: number;
|
|
14
|
+
readonly maxProperties?: number;
|
|
12
15
|
readonly scopeState: GbnfJsonScopeState;
|
|
13
|
-
constructor(fields:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
constructor({ fields, additionalProperties, minProperties, maxProperties, scopeState }: {
|
|
17
|
+
fields: Array<Readonly<{
|
|
18
|
+
key: GbnfString | GbnfStringValue;
|
|
19
|
+
value: GbnfTerminal;
|
|
20
|
+
required: true;
|
|
21
|
+
}>>;
|
|
22
|
+
additionalProperties?: GbnfTerminal;
|
|
23
|
+
minProperties?: number;
|
|
24
|
+
maxProperties?: number;
|
|
25
|
+
scopeState?: GbnfJsonScopeState;
|
|
26
|
+
});
|
|
18
27
|
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
19
28
|
}
|
|
@@ -1,29 +1,87 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
2
|
import { GbnfJsonScopeState } from "../utils/GbnfJsonScopeState.js";
|
|
3
|
+
import { GbnfString } from "./GbnfString.js";
|
|
3
4
|
import { GbnfWhitespace } from "./GbnfWhitespace.js";
|
|
4
5
|
import { GbnfGrammar } from "./GbnfGrammar.js";
|
|
6
|
+
import { GbnfRepetition } from "./GbnfRepetition.js";
|
|
7
|
+
import { GbnfCommaWhitespace } from "./GbnfCommaWhitespace.js";
|
|
5
8
|
export class GbnfObjectMap extends GbnfTerminal {
|
|
6
9
|
fields;
|
|
10
|
+
additionalProperties;
|
|
11
|
+
minProperties;
|
|
12
|
+
maxProperties;
|
|
7
13
|
scopeState;
|
|
8
|
-
constructor(fields, scopeState = new GbnfJsonScopeState()) {
|
|
14
|
+
constructor({ fields, additionalProperties, minProperties = 0, maxProperties, scopeState = new GbnfJsonScopeState() }) {
|
|
9
15
|
super();
|
|
10
16
|
this.fields = fields;
|
|
17
|
+
this.additionalProperties = additionalProperties;
|
|
18
|
+
this.minProperties = Math.floor(minProperties);
|
|
19
|
+
this.maxProperties = maxProperties == null ? undefined : Math.floor(maxProperties);
|
|
11
20
|
this.scopeState = scopeState;
|
|
21
|
+
if (this.minProperties < this.fields.length)
|
|
22
|
+
this.minProperties = this.fields.length;
|
|
23
|
+
if (this.maxProperties != null && this.maxProperties < this.minProperties)
|
|
24
|
+
this.maxProperties = this.minProperties;
|
|
25
|
+
else if (this.maxProperties != null && this.maxProperties < 0)
|
|
26
|
+
this.maxProperties = 0;
|
|
12
27
|
}
|
|
13
28
|
getGrammar(grammarGenerator) {
|
|
14
29
|
const getWhitespaceRuleName = (newScope, newLine) => (newScope
|
|
15
30
|
? new GbnfWhitespace(this.scopeState.getForNewScope(), { newLine }).resolve(grammarGenerator)
|
|
16
31
|
: new GbnfWhitespace(this.scopeState, { newLine }).resolve(grammarGenerator));
|
|
32
|
+
const getCommaWhitespaceRule = (newScope, newLine) => (newScope
|
|
33
|
+
? new GbnfCommaWhitespace(this.scopeState.getForNewScope(), { newLine })
|
|
34
|
+
: new GbnfCommaWhitespace(this.scopeState, { newLine }));
|
|
35
|
+
const getCommaWhitespaceRuleName = (newScope, newLine) => (getCommaWhitespaceRule(newScope, newLine).resolve(grammarGenerator));
|
|
36
|
+
const objectItemsGrammar = [];
|
|
37
|
+
for (const { key, value } of this.fields) {
|
|
38
|
+
if (objectItemsGrammar.length > 0)
|
|
39
|
+
objectItemsGrammar.push(getCommaWhitespaceRuleName(true, "before"));
|
|
40
|
+
objectItemsGrammar.push(new GbnfGrammar([
|
|
41
|
+
key.getGrammar(grammarGenerator), '":"', "[ ]?", value.resolve(grammarGenerator)
|
|
42
|
+
]).getGrammar());
|
|
43
|
+
}
|
|
44
|
+
if (this.additionalProperties != null) {
|
|
45
|
+
const additionalPropertiesGrammar = new GbnfGrammar([
|
|
46
|
+
new GbnfString().resolve(grammarGenerator), '":"', "[ ]?", this.additionalProperties.resolve(grammarGenerator)
|
|
47
|
+
]);
|
|
48
|
+
if (this.minProperties > this.fields.length) {
|
|
49
|
+
if (objectItemsGrammar.length > 0)
|
|
50
|
+
objectItemsGrammar.push(getCommaWhitespaceRuleName(true, "before"));
|
|
51
|
+
objectItemsGrammar.push(new GbnfRepetition({
|
|
52
|
+
value: additionalPropertiesGrammar,
|
|
53
|
+
separator: getCommaWhitespaceRule(true, "before"),
|
|
54
|
+
minRepetitions: this.minProperties - this.fields.length,
|
|
55
|
+
maxRepetitions: this.maxProperties == null
|
|
56
|
+
? undefined
|
|
57
|
+
: this.maxProperties - this.fields.length
|
|
58
|
+
}).getGrammar(grammarGenerator));
|
|
59
|
+
}
|
|
60
|
+
else if (this.maxProperties == null || this.maxProperties > this.fields.length) {
|
|
61
|
+
if (objectItemsGrammar.length === 0)
|
|
62
|
+
objectItemsGrammar.push(new GbnfRepetition({
|
|
63
|
+
value: additionalPropertiesGrammar,
|
|
64
|
+
separator: getCommaWhitespaceRule(true, "before"),
|
|
65
|
+
maxRepetitions: this.maxProperties == null
|
|
66
|
+
? undefined
|
|
67
|
+
: this.maxProperties - this.fields.length
|
|
68
|
+
}).getGrammar(grammarGenerator));
|
|
69
|
+
else
|
|
70
|
+
objectItemsGrammar.push(new GbnfRepetition({
|
|
71
|
+
value: new GbnfGrammar([
|
|
72
|
+
getCommaWhitespaceRuleName(true, "before"),
|
|
73
|
+
additionalPropertiesGrammar.resolve(grammarGenerator)
|
|
74
|
+
], true),
|
|
75
|
+
maxRepetitions: this.maxProperties == null
|
|
76
|
+
? undefined
|
|
77
|
+
: this.maxProperties - this.fields.length
|
|
78
|
+
}).getGrammar(grammarGenerator));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
17
81
|
return new GbnfGrammar([
|
|
18
82
|
'"{"', getWhitespaceRuleName(true, "before"),
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
key.getGrammar(), '":"', "[ ]?", value.resolve(grammarGenerator),
|
|
22
|
-
index < this.fields.length - 1 ? '","' : "",
|
|
23
|
-
getWhitespaceRuleName(index < this.fields.length - 1, "before")
|
|
24
|
-
]).getGrammar();
|
|
25
|
-
}),
|
|
26
|
-
'"}"'
|
|
83
|
+
new GbnfGrammar(objectItemsGrammar).getGrammar(),
|
|
84
|
+
getWhitespaceRuleName(false, "before"), '"}"'
|
|
27
85
|
]).getGrammar();
|
|
28
86
|
}
|
|
29
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfObjectMap.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfObjectMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"GbnfObjectMap.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfObjectMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,MAAM,OAAO,aAAc,SAAQ,YAAY;IAC3B,MAAM,CAA4F;IAClG,oBAAoB,CAAgB;IACpC,aAAa,CAAS;IACtB,aAAa,CAAU;IACvB,UAAU,CAAqB;IAE/C,YAAmB,EACf,MAAM,EAAE,oBAAoB,EAAE,aAAa,GAAG,CAAC,EAAE,aAAa,EAC9D,UAAU,GAAG,IAAI,kBAAkB,EAAE,EAMxC;QACG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;YACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAE5C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;YACrE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;aACvC,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC;YACzD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,qBAAqB,GAAG,CAAC,QAAiB,EAAE,OAAmC,EAAE,EAAE,CAAC,CACtF,QAAQ;YACJ,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC3F,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACjF,CAAC;QAEF,MAAM,sBAAsB,GAAG,CAAC,QAAiB,EAAE,OAAmC,EAAE,EAAE,CAAC,CACvF,QAAQ;YACJ,CAAC,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,EAAC,OAAO,EAAC,CAAC;YACtE,CAAC,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAC5D,CAAC;QACF,MAAM,0BAA0B,GAAG,CAAC,QAAiB,EAAE,OAAmC,EAAE,EAAE,CAAC,CAC3F,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACtE,CAAC;QAEF,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,KAAK,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;gBAC7B,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAExE,kBAAkB,CAAC,IAAI,CACnB,IAAI,WAAW,CAAC;gBACZ,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;aACnF,CAAC,CAAC,UAAU,EAAE,CAClB,CAAC;QACN,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,2BAA2B,GAAG,IAAI,WAAW,CAAC;gBAChD,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC;aACjH,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1C,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;oBAC7B,kBAAkB,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAExE,kBAAkB,CAAC,IAAI,CACnB,IAAI,cAAc,CAAC;oBACf,KAAK,EAAE,2BAA2B;oBAClC,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC;oBACjD,cAAc,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;oBACvD,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;wBACtC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;iBAChD,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAClC,CAAC;YACN,CAAC;iBAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC/E,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC;oBAC/B,kBAAkB,CAAC,IAAI,CACnB,IAAI,cAAc,CAAC;wBACf,KAAK,EAAE,2BAA2B;wBAClC,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC;wBACjD,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;4BACtC,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;qBAChD,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAClC,CAAC;;oBAEF,kBAAkB,CAAC,IAAI,CACnB,IAAI,cAAc,CAAC;wBACf,KAAK,EAAE,IAAI,WAAW,CAAC;4BACnB,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC;4BAC1C,2BAA2B,CAAC,OAAO,CAAC,gBAAgB,CAAC;yBACxD,EAAE,IAAI,CAAC;wBACR,cAAc,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;4BACtC,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;qBAChD,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAClC,CAAC;YACV,CAAC;QACL,CAAC;QAED,OAAO,IAAI,WAAW,CAAC;YACnB,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC5C,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC,UAAU,EAAE;YAChD,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK;SAChD,CAAC,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ"}
|
|
@@ -2,7 +2,8 @@ import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
|
2
2
|
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
3
|
export declare class GbnfOr extends GbnfTerminal {
|
|
4
4
|
readonly values: readonly GbnfTerminal[];
|
|
5
|
-
|
|
5
|
+
readonly useRawGrammar: boolean;
|
|
6
|
+
constructor(values: readonly GbnfTerminal[], useRawGrammar?: boolean);
|
|
6
7
|
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
7
8
|
resolve(grammarGenerator: GbnfGrammarGenerator): string;
|
|
8
9
|
}
|
|
@@ -2,13 +2,17 @@ import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
|
2
2
|
import { grammarNoValue } from "./gbnfConsts.js";
|
|
3
3
|
export class GbnfOr extends GbnfTerminal {
|
|
4
4
|
values;
|
|
5
|
-
|
|
5
|
+
useRawGrammar;
|
|
6
|
+
constructor(values, useRawGrammar = false) {
|
|
6
7
|
super();
|
|
7
8
|
this.values = values;
|
|
9
|
+
this.useRawGrammar = useRawGrammar;
|
|
8
10
|
}
|
|
9
11
|
getGrammar(grammarGenerator) {
|
|
10
12
|
const mappedValues = this.values
|
|
11
|
-
.map((v) =>
|
|
13
|
+
.map((v) => (this.useRawGrammar
|
|
14
|
+
? v.getGrammar(grammarGenerator)
|
|
15
|
+
: v.resolve(grammarGenerator)))
|
|
12
16
|
.filter((value) => value !== "" && value !== grammarNoValue);
|
|
13
17
|
if (mappedValues.length === 0)
|
|
14
18
|
return grammarNoValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;
|
|
1
|
+
{"version":3,"file":"GbnfOr.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfOr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,MAAO,SAAQ,YAAY;IACpB,MAAM,CAA0B;IAChC,aAAa,CAAU;IAEvC,YAAmB,MAA+B,EAAE,gBAAyB,KAAK;QAC9E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACR,IAAI,CAAC,aAAa;YACd,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAChC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACpC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAEe,OAAO,CAAC,gBAAsC;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;QAEjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,OAAO,cAAc,CAAC;aACrB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC;QAE5B,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;CACJ"}
|
|
@@ -2,8 +2,14 @@ import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
|
2
2
|
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
3
3
|
export declare class GbnfRepetition extends GbnfTerminal {
|
|
4
4
|
readonly value: GbnfTerminal;
|
|
5
|
+
readonly separator?: GbnfTerminal;
|
|
5
6
|
readonly minRepetitions: number;
|
|
6
7
|
readonly maxRepetitions: number | null;
|
|
7
|
-
constructor(value
|
|
8
|
+
constructor({ value, separator, minRepetitions, maxRepetitions }: {
|
|
9
|
+
value: GbnfTerminal;
|
|
10
|
+
separator?: GbnfTerminal;
|
|
11
|
+
minRepetitions?: number;
|
|
12
|
+
maxRepetitions?: number | null;
|
|
13
|
+
});
|
|
8
14
|
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
9
15
|
}
|
|
@@ -1,37 +1,86 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammar } from "./GbnfGrammar.js";
|
|
2
3
|
import { grammarNoValue } from "./gbnfConsts.js";
|
|
3
4
|
export class GbnfRepetition extends GbnfTerminal {
|
|
4
5
|
value;
|
|
6
|
+
separator;
|
|
5
7
|
minRepetitions;
|
|
6
8
|
maxRepetitions;
|
|
7
|
-
constructor(value, minRepetitions, maxRepetitions) {
|
|
9
|
+
constructor({ value, separator, minRepetitions = 0, maxRepetitions }) {
|
|
8
10
|
super();
|
|
9
11
|
this.value = value;
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
12
|
+
this.separator = separator;
|
|
13
|
+
this.minRepetitions = Math.floor(minRepetitions);
|
|
14
|
+
this.maxRepetitions = maxRepetitions == null ? null : Math.floor(maxRepetitions);
|
|
15
|
+
if (this.minRepetitions < 0)
|
|
16
|
+
this.minRepetitions = 0;
|
|
17
|
+
if (this.maxRepetitions != null && this.maxRepetitions < 0)
|
|
18
|
+
this.maxRepetitions = 0;
|
|
19
|
+
if (this.maxRepetitions != null && this.maxRepetitions < this.minRepetitions)
|
|
20
|
+
this.maxRepetitions = this.minRepetitions;
|
|
12
21
|
}
|
|
13
22
|
getGrammar(grammarGenerator) {
|
|
23
|
+
if (this.maxRepetitions === 0)
|
|
24
|
+
return grammarNoValue;
|
|
14
25
|
const resolvedValue = this.value.resolve(grammarGenerator);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
const resolvedSeparator = this.separator?.resolve(grammarGenerator);
|
|
27
|
+
if (this.minRepetitions === 0 && this.maxRepetitions == 1)
|
|
28
|
+
return new GbnfGrammar(["(", resolvedValue, ")?"]).getGrammar();
|
|
29
|
+
else if (this.minRepetitions === 1 && this.maxRepetitions === 1)
|
|
30
|
+
return resolvedValue;
|
|
31
|
+
else if (this.minRepetitions === this.maxRepetitions) {
|
|
32
|
+
if (resolvedSeparator == null)
|
|
33
|
+
return new GbnfGrammar(["(", resolvedValue, "){" + String(this.minRepetitions) + "}"]).getGrammar();
|
|
34
|
+
if (this.minRepetitions === 2)
|
|
35
|
+
return new GbnfGrammar([resolvedValue, resolvedSeparator, resolvedValue]).getGrammar();
|
|
36
|
+
return new GbnfGrammar([
|
|
37
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, "){" + String(this.minRepetitions - 1) + "}"
|
|
38
|
+
]).getGrammar();
|
|
20
39
|
}
|
|
21
|
-
if (this.
|
|
22
|
-
|
|
23
|
-
|
|
40
|
+
else if (this.minRepetitions === 0 && this.maxRepetitions == null) {
|
|
41
|
+
if (resolvedSeparator == null)
|
|
42
|
+
return new GbnfGrammar(["(", resolvedValue, ")*"]).getGrammar();
|
|
43
|
+
return new GbnfGrammar([
|
|
44
|
+
"(", resolvedValue, "(", resolvedSeparator, resolvedValue, ")*", ")?"
|
|
45
|
+
]).getGrammar();
|
|
24
46
|
}
|
|
25
|
-
else {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
47
|
+
else if (this.minRepetitions === 1 && this.maxRepetitions == null) {
|
|
48
|
+
if (resolvedSeparator == null)
|
|
49
|
+
return new GbnfGrammar(["(", resolvedValue, ")+"]).getGrammar();
|
|
50
|
+
return new GbnfGrammar([
|
|
51
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, ")*"
|
|
52
|
+
]).getGrammar();
|
|
30
53
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
54
|
+
else if (this.maxRepetitions == null) {
|
|
55
|
+
if (resolvedSeparator == null)
|
|
56
|
+
return new GbnfGrammar(["(", resolvedValue, "){" + String(this.minRepetitions) + ",}"]).getGrammar();
|
|
57
|
+
return new GbnfGrammar([
|
|
58
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, "){" + String(this.minRepetitions - 1) + ",}"
|
|
59
|
+
]).getGrammar();
|
|
60
|
+
}
|
|
61
|
+
if (resolvedSeparator == null)
|
|
62
|
+
return new GbnfGrammar(["(", resolvedValue, "){" + String(this.minRepetitions) + "," + String(this.maxRepetitions) + "}"]).getGrammar();
|
|
63
|
+
if (this.minRepetitions === 0) {
|
|
64
|
+
if (this.maxRepetitions === 2)
|
|
65
|
+
return new GbnfGrammar([
|
|
66
|
+
"(", resolvedValue, "(", resolvedSeparator, resolvedValue, ")?", ")?"
|
|
67
|
+
]).getGrammar();
|
|
68
|
+
return new GbnfGrammar([
|
|
69
|
+
"(", resolvedValue, "(", resolvedSeparator, resolvedValue, "){0," + String(this.maxRepetitions - 1) + "}", ")?"
|
|
70
|
+
]).getGrammar();
|
|
71
|
+
}
|
|
72
|
+
else if (this.minRepetitions === 1) {
|
|
73
|
+
if (this.maxRepetitions === 2)
|
|
74
|
+
return new GbnfGrammar([
|
|
75
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, ")?"
|
|
76
|
+
]).getGrammar();
|
|
77
|
+
return new GbnfGrammar([
|
|
78
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, "){0," + String(this.maxRepetitions - 1) + "}"
|
|
79
|
+
]).getGrammar();
|
|
80
|
+
}
|
|
81
|
+
return new GbnfGrammar([
|
|
82
|
+
resolvedValue, "(", resolvedSeparator, resolvedValue, "){" + String(this.minRepetitions - 1) + "," + String(this.maxRepetitions - 1) + "}"
|
|
83
|
+
]).getGrammar();
|
|
35
84
|
}
|
|
36
85
|
}
|
|
37
86
|
//# sourceMappingURL=GbnfRepetition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfRepetition.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfRepetition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAG/C,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC5B,KAAK,CAAe;IACpB,cAAc,CAAS;IACvB,cAAc,CAAgB;IAE9C,YAAmB,
|
|
1
|
+
{"version":3,"file":"GbnfRepetition.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfRepetition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
2
3
|
export declare class GbnfString extends GbnfTerminal {
|
|
3
|
-
|
|
4
|
+
readonly minLength: number;
|
|
5
|
+
readonly maxLength?: number;
|
|
6
|
+
constructor({ minLength, maxLength }?: {
|
|
7
|
+
minLength?: number;
|
|
8
|
+
maxLength?: number;
|
|
9
|
+
});
|
|
10
|
+
getGrammar(grammarGenerator: GbnfGrammarGenerator): string;
|
|
4
11
|
protected getRuleName(): string;
|
|
5
12
|
}
|
|
@@ -1,33 +1,43 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
2
|
import { reservedRuleNames } from "./gbnfConsts.js";
|
|
3
|
+
import { GbnfRepetition } from "./GbnfRepetition.js";
|
|
4
|
+
import { GbnfInsideStringChar } from "./GbnfInsideStringChar.js";
|
|
3
5
|
export class GbnfString extends GbnfTerminal {
|
|
4
|
-
|
|
6
|
+
minLength;
|
|
7
|
+
maxLength;
|
|
8
|
+
constructor({ minLength = 0, maxLength } = {}) {
|
|
9
|
+
super();
|
|
10
|
+
this.minLength = Math.floor(minLength ?? 0);
|
|
11
|
+
this.maxLength = maxLength == null ? undefined : Math.floor(maxLength);
|
|
12
|
+
if (this.minLength < 0)
|
|
13
|
+
this.minLength = 0;
|
|
14
|
+
if (this.maxLength != null && this.maxLength < this.minLength)
|
|
15
|
+
this.maxLength = this.minLength;
|
|
16
|
+
}
|
|
17
|
+
getGrammar(grammarGenerator) {
|
|
18
|
+
if (this.minLength == 0 && this.maxLength == null)
|
|
19
|
+
return [
|
|
20
|
+
'"\\""',
|
|
21
|
+
new GbnfInsideStringChar().resolve(grammarGenerator) + "*",
|
|
22
|
+
'"\\""'
|
|
23
|
+
].join(" ");
|
|
24
|
+
else if (this.minLength == 0 && this.maxLength == 0)
|
|
25
|
+
return '"\\"\\""';
|
|
5
26
|
return [
|
|
6
27
|
'"\\""',
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"\\x00-\\x1F"
|
|
13
|
-
]),
|
|
14
|
-
// escape sequences
|
|
15
|
-
'"\\\\" ' + or([
|
|
16
|
-
'["\\\\/bfnrt]',
|
|
17
|
-
'"u" [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]'
|
|
18
|
-
])
|
|
19
|
-
]) + "*",
|
|
28
|
+
new GbnfRepetition({
|
|
29
|
+
value: new GbnfInsideStringChar(),
|
|
30
|
+
minRepetitions: this.minLength,
|
|
31
|
+
maxRepetitions: this.maxLength
|
|
32
|
+
}).getGrammar(grammarGenerator),
|
|
20
33
|
'"\\""'
|
|
21
34
|
].join(" ");
|
|
22
35
|
}
|
|
23
36
|
getRuleName() {
|
|
24
|
-
return reservedRuleNames.string
|
|
37
|
+
return reservedRuleNames.string({
|
|
38
|
+
minLength: this.minLength,
|
|
39
|
+
maxLength: this.maxLength
|
|
40
|
+
});
|
|
25
41
|
}
|
|
26
42
|
}
|
|
27
|
-
function negatedCharacterSet(characterDefinitions) {
|
|
28
|
-
return "[^" + characterDefinitions.join("") + "]";
|
|
29
|
-
}
|
|
30
|
-
function or(definitions) {
|
|
31
|
-
return "(" + definitions.join(" | ") + ")";
|
|
32
|
-
}
|
|
33
43
|
//# sourceMappingURL=GbnfString.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfString.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GbnfString.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAG/D,MAAM,OAAO,UAAW,SAAQ,YAAY;IACxB,SAAS,CAAS;IAClB,SAAS,CAAU;IAEnC,YAAmB,EACf,SAAS,GAAG,CAAC,EACb,SAAS,KAIT,EAAE;QACF,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAEvE,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;YACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACxC,CAAC;IAEM,UAAU,CAAC,gBAAsC;QACpD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YAC7C,OAAO;gBACH,OAAO;gBACP,IAAI,oBAAoB,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG;gBAC1D,OAAO;aACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACX,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YAC/C,OAAO,UAAU,CAAC;QAEtB,OAAO;YACH,OAAO;YACP,IAAI,cAAc,CAAC;gBACf,KAAK,EAAE,IAAI,oBAAoB,EAAE;gBACjC,cAAc,EAAE,IAAI,CAAC,SAAS;gBAC9B,cAAc,EAAE,IAAI,CAAC,SAAS;aACjC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAC/B,OAAO;SACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAEkB,WAAW;QAC1B,OAAO,iBAAiB,CAAC,MAAM,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { GbnfTerminal } from "../GbnfTerminal.js";
|
|
2
|
+
import { GbnfGrammarGenerator } from "../GbnfGrammarGenerator.js";
|
|
2
3
|
export declare class GbnfStringValue extends GbnfTerminal {
|
|
3
4
|
readonly value: string;
|
|
4
5
|
constructor(value: string);
|
|
5
6
|
getGrammar(): string;
|
|
7
|
+
protected generateRuleName(grammarGenerator: GbnfGrammarGenerator): string;
|
|
6
8
|
}
|
|
@@ -10,14 +10,17 @@ export class GbnfStringValue extends GbnfTerminal {
|
|
|
10
10
|
'"',
|
|
11
11
|
'\\"',
|
|
12
12
|
this.value
|
|
13
|
-
.replaceAll("\\", "
|
|
14
|
-
.replaceAll("\t", "
|
|
15
|
-
.replaceAll("\r", "
|
|
16
|
-
.replaceAll("\n", "
|
|
13
|
+
.replaceAll("\\", "\\\\\\\\")
|
|
14
|
+
.replaceAll("\t", "\\\\t")
|
|
15
|
+
.replaceAll("\r", "\\\\r")
|
|
16
|
+
.replaceAll("\n", "\\\\n")
|
|
17
17
|
.replaceAll('"', "\\\\" + '\\"'),
|
|
18
18
|
'\\"',
|
|
19
19
|
'"'
|
|
20
20
|
].join("");
|
|
21
21
|
}
|
|
22
|
+
generateRuleName(grammarGenerator) {
|
|
23
|
+
return grammarGenerator.generateRuleNameForLiteralValue(this.value);
|
|
24
|
+
}
|
|
22
25
|
}
|
|
23
26
|
//# sourceMappingURL=GbnfStringValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GbnfStringValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfStringValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"GbnfStringValue.js","sourceRoot":"","sources":["../../../../src/utils/gbnfJson/terminals/GbnfStringValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAIhD,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC7B,KAAK,CAAS;IAE9B,YAAmB,KAAa;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEe,UAAU;QACtB,OAAO;YACH,GAAG;YACH,KAAK;YACL,IAAI,CAAC,KAAK;iBACL,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;iBAC5B,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;iBACzB,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;iBACzB,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;iBACzB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;YACpC,KAAK;YACL,GAAG;SACN,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IAEkB,gBAAgB,CAAC,gBAAsC;QACtE,OAAO,gBAAgB,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACJ"}
|
|
@@ -5,8 +5,9 @@ export declare class GbnfWhitespace extends GbnfTerminal {
|
|
|
5
5
|
readonly newLine: "before" | "after" | false;
|
|
6
6
|
constructor(scopeState: GbnfJsonScopeState, { newLine }?: {
|
|
7
7
|
newLine?: "before" | "after" | false;
|
|
8
|
-
space?: boolean;
|
|
9
8
|
});
|
|
10
9
|
getGrammar(): string;
|
|
10
|
+
protected getGrammarFromResolve(): string;
|
|
11
|
+
private _getGrammar;
|
|
11
12
|
protected getRuleName(): string;
|
|
12
13
|
}
|