pickle-jar 1.4.2 → 1.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.
Files changed (44) hide show
  1. package/README.md +30 -24
  2. package/package.json +15 -12
  3. package/dist/src/feature-context.d.ts +0 -6
  4. package/dist/src/feature-context.js +0 -3
  5. package/dist/src/feature-context.js.map +0 -1
  6. package/dist/src/feature-file-visitor.d.ts +0 -29
  7. package/dist/src/feature-file-visitor.js +0 -217
  8. package/dist/src/feature-file-visitor.js.map +0 -1
  9. package/dist/src/get-call-sites.d.ts +0 -2
  10. package/dist/src/get-call-sites.js +0 -12
  11. package/dist/src/get-call-sites.js.map +0 -1
  12. package/dist/src/grammar/GherkinLexer.d.ts +0 -46
  13. package/dist/src/grammar/GherkinLexer.js +0 -245
  14. package/dist/src/grammar/GherkinLexer.js.map +0 -1
  15. package/dist/src/grammar/GherkinParser.d.ts +0 -330
  16. package/dist/src/grammar/GherkinParser.js +0 -2896
  17. package/dist/src/grammar/GherkinParser.js.map +0 -1
  18. package/dist/src/grammar/GherkinParserVisitor.d.ts +0 -164
  19. package/dist/src/grammar/GherkinParserVisitor.js +0 -4
  20. package/dist/src/grammar/GherkinParserVisitor.js.map +0 -1
  21. package/dist/src/index.d.ts +0 -8
  22. package/dist/src/index.js +0 -12
  23. package/dist/src/index.js.map +0 -1
  24. package/dist/src/jest-error-listener.d.ts +0 -8
  25. package/dist/src/jest-error-listener.js +0 -22
  26. package/dist/src/jest-error-listener.js.map +0 -1
  27. package/dist/src/step-definition.d.ts +0 -5
  28. package/dist/src/step-definition.js +0 -3
  29. package/dist/src/step-definition.js.map +0 -1
  30. package/dist/src/step-tags.d.ts +0 -7
  31. package/dist/src/step-tags.js +0 -3
  32. package/dist/src/step-tags.js.map +0 -1
  33. package/dist/src/step.d.ts +0 -1
  34. package/dist/src/step.js +0 -3
  35. package/dist/src/step.js.map +0 -1
  36. package/dist/src/tags.d.ts +0 -4
  37. package/dist/src/tags.js +0 -22
  38. package/dist/src/tags.js.map +0 -1
  39. package/dist/src/test-runner.d.ts +0 -3
  40. package/dist/src/test-runner.js +0 -49
  41. package/dist/src/test-runner.js.map +0 -1
  42. package/dist/src/world.d.ts +0 -2
  43. package/dist/src/world.js +0 -3
  44. package/dist/src/world.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,22 @@
1
1
  # pickle-jar
2
+ [//]: <> (start placeholder for auto-badger)
3
+
4
+
5
+ [![version](https://img.shields.io/npm/v/pickle-jar.svg?style=flat-square)](https://npmjs.org/pickle-jar)
6
+ [![min size](https://img.shields.io/bundlephobia/min/pickle-jar?style=flat-square)](https://bundlephobia.com/result?p=pickle-jar)
7
+ [![mingzip size](https://img.shields.io/bundlephobia/minzip/pickle-jar)](https://bundlephobia.com/result?p=pickle-jar)
8
+ [![license](https://img.shields.io/npm/l/pickle-jar?color=%23007a1f&style=flat-square)](https://github.com/nseba/pickle-jar/blob/master/LICENSE)
9
+
10
+ [![dependancies](https://img.shields.io/librariesio/release/npm/pickle-jar?color=%23007a1f&style=flat-square)](https://libraries.io/npm/pickle-jar)
11
+ [![downloads](https://img.shields.io/npm/dm/pickle-jar?style=flat-square&color=%23007a1f)](https://npmcharts.com/compare/pickle-jar)
12
+ [![all contributors](https://img.shields.io/github/all-contributors/nseba/pickle-jar?style=flat-square)](https://github.com/nseba/pickle-jar/graphs/contributors)
13
+ [![code of conduct](https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square)](https://github.com/nseba/pickle-jar/blob/master/CODE_OF_CONDUCT.md)
14
+
15
+ [![stargazers](https://img.shields.io/github/stars/nseba/pickle-jar?style=social)](https://github.com/nseba/pickle-jar/stargazers)
16
+ [![number of forks](https://img.shields.io/github/forks/nseba/pickle-jar?style=social)](https://github.com/nseba/pickle-jar/fork)
17
+
18
+ [//]: <> (end placeholder for auto-badger)
19
+
2
20
  Framework for writing Gherkin features and running them using Jest
3
21
 
4
22
  # Overview
@@ -42,7 +60,8 @@ In order to run the features and their steps, a test runner entry point must be
42
60
  Create a file named `runner.ts` in the `<rootDir>/test` directory:
43
61
 
44
62
  ```ts
45
- import {StepDefinition, testRunner, FeatureContext} from "pickle-jar";
63
+ import {workerData} from "worker_threads";
64
+ import {StepDefinition, testRunner} from "../src";
46
65
 
47
66
  interface World {
48
67
  password: string | undefined;
@@ -63,20 +82,11 @@ const stepDefinitions: StepDefinition<World>[] = [{
63
82
  }
64
83
  }];
65
84
 
66
- // This function is called before each feature file is processed
67
- // It can be used to initialize the World object
68
- // The World object is passed to each step and allows sharing values from one step to another
69
- // The FeatureContext object contains information about the feature file being processed
70
- function worldFactory(featureContext: FeatureContext): World {
71
- const world: World = {
72
- password: undefined,
73
- grantedAccess: false
74
- }
75
- return world;
85
+ const world: World = {
86
+ password: undefined,
87
+ grantedAccess: false
76
88
  }
77
-
78
-
79
- testRunner<World>(`${__dirname}/features/**/*.feature`, stepDefinitions, worldFactory);
89
+ testRunner<World>(`${__dirname}/features/**/*.feature`, stepDefinitions, world);
80
90
  ```
81
91
 
82
92
  The test runner file defines the World object structure. This object is passed to each step and allows sharing values from one step to another.
@@ -112,7 +122,8 @@ Feature: Logging in
112
122
  ```
113
123
  ### `runner.ts` steps:
114
124
  ```ts
115
- import {StepDefinition, testRunner, FeatureContext} from "pickle-jar";
125
+ import {workerData} from "worker_threads";
126
+ import {StepDefinition, testRunner} from "../src";
116
127
 
117
128
  interface World {
118
129
  password: string | undefined;
@@ -133,16 +144,11 @@ const stepDefinitions: StepDefinition<World>[] = [{
133
144
  }
134
145
  }];
135
146
 
136
- function worldFactory(featureContext: FeatureContext): World {
137
- const world: World = {
138
- password: undefined,
139
- grantedAccess: false
140
- }
141
- return world;
147
+ const world: World = {
148
+ password: undefined,
149
+ grantedAccess: false
142
150
  }
143
-
144
-
145
- testRunner<World>(`${__dirname}/features/**/*.feature`, stepDefinitions, worldFactory);
151
+ testRunner<World>(`${__dirname}/features/**/*.feature`, stepDefinitions, world);
146
152
  ```
147
153
 
148
154
  ## Running scenario outlines
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "pickle-jar",
3
- "version": "1.4.2",
3
+ "version": "1.5.0",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
- "repository": "git@github0.com:nseba/pickle-jar.git",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git@github0.com:nseba/pickle-jar.git"
9
+ },
7
10
  "homepage": "https://github.com/nseba/pickle-jar",
8
11
  "author": "Sebastian Negomireanu",
9
12
  "license": "MIT",
@@ -15,18 +18,18 @@
15
18
  "devDependencies": {
16
19
  "@types/glob": "^8.1.0",
17
20
  "@types/jest": "^29.5.4",
18
- "@typescript-eslint/eslint-plugin": "^5.59.7",
19
- "@typescript-eslint/parser": "^5.59.7",
20
- "antlr4": "^4.13.0",
21
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
22
+ "@typescript-eslint/parser": "^8.4.0",
23
+ "antlr4": "^4.13.2",
21
24
  "antlr4ts": "^0.5.0-alpha.4",
22
25
  "antlr4ts-cli": "^0.5.0-alpha.4",
23
- "eslint": "^8.41.0",
24
- "eslint-config-prettier": "^8.8.0",
25
- "glob": "^10.2.6",
26
- "jest": "^29.5.0",
27
- "ts-jest": "^29.1.0",
28
- "tsc-watch": "^6.0.4",
29
- "typescript": "^4.9.5"
26
+ "eslint": "^9.9.1",
27
+ "eslint-config-prettier": "^9.1.0",
28
+ "glob": "^11.0.0",
29
+ "jest": "^29.7.0",
30
+ "ts-jest": "^29.2.5",
31
+ "tsc-watch": "^6.2.0",
32
+ "typescript": "^5.5.4"
30
33
  },
31
34
  "peerDependencies": {
32
35
  "antlr4": "^4.13.0",
@@ -1,6 +0,0 @@
1
- export interface FeatureContext {
2
- file: string;
3
- directory: string;
4
- absoluteFeaturePath: string;
5
- relativeFeaturePath: string;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=feature-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature-context.js","sourceRoot":"","sources":["../../src/feature-context.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- import { AbstractParseTreeVisitor } from "antlr4ts/tree";
2
- import { BackgroundContext, FeatureContext, FeatureFileContext, ScenarioContext, ScenarioOutlineContext } from "./grammar/GherkinParser";
3
- import { GherkinParserVisitor } from "./grammar/GherkinParserVisitor";
4
- import { StepDefinition } from "./step-definition";
5
- import { WorldFactory } from "./world";
6
- import { FeatureContext as PickleFeatureContext } from "./feature-context";
7
- interface WorldObject<TWorld> {
8
- world: TWorld;
9
- }
10
- export declare class FeatureFileVisitor<TWorld> extends AbstractParseTreeVisitor<void> implements GherkinParserVisitor<void> {
11
- private readonly worldFactory;
12
- private readonly stepDefinitions;
13
- private tagFilter;
14
- private readonly featureContext;
15
- constructor(worldFactory: WorldFactory<TWorld>, stepDefinitions: StepDefinition<TWorld>[], tagFilter: (tags: string[]) => boolean, featureContext: PickleFeatureContext);
16
- visitFeatureFile(ctx: FeatureFileContext): void;
17
- visitFeature(ctx: FeatureContext): void;
18
- visitScenario(ctx: ScenarioContext, worldObject?: WorldObject<TWorld>): void;
19
- setupBackground(backgroundCtx: BackgroundContext, ctx: FeatureContext): void;
20
- visitScenarioOutline(ctx: ScenarioOutlineContext, worldObject?: WorldObject<TWorld>): void;
21
- protected defaultResult(): void;
22
- private replaceKeywords;
23
- private runNextStep;
24
- private defineTestStep;
25
- private definePrepareStep;
26
- private extractTestArgs;
27
- private getMatchingStepDefinition;
28
- }
29
- export {};
@@ -1,217 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FeatureFileVisitor = void 0;
4
- const tree_1 = require("antlr4ts/tree");
5
- const os_1 = require("os");
6
- const GherkinParser_1 = require("./grammar/GherkinParser");
7
- const tags_1 = require("./tags");
8
- class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
9
- constructor(worldFactory, stepDefinitions, tagFilter, featureContext) {
10
- super();
11
- this.worldFactory = worldFactory;
12
- this.stepDefinitions = stepDefinitions;
13
- this.tagFilter = tagFilter;
14
- this.featureContext = featureContext;
15
- }
16
- visitFeatureFile(ctx) {
17
- this.visitChildren(ctx);
18
- }
19
- visitFeature(ctx) {
20
- const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
21
- if (!this.tagFilter(tags)) {
22
- return;
23
- }
24
- const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
25
- describeFunc(`Feature: ${ctx.multilineText().text.trim()}`, () => {
26
- const backgroundCtx = ctx.background();
27
- if (backgroundCtx) {
28
- this.setupBackground(backgroundCtx, ctx);
29
- }
30
- else {
31
- this.visitChildren(ctx);
32
- }
33
- });
34
- }
35
- visitScenario(ctx, worldObject) {
36
- const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
37
- if (!this.tagFilter(tags)) {
38
- return;
39
- }
40
- const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
41
- describeFunc(`Scenario: ${ctx.multilineText().text.trim()}`, () => {
42
- const worldObj = {};
43
- beforeEach(() => {
44
- if (!worldObject) {
45
- worldObj.world = this.worldFactory(this.featureContext);
46
- }
47
- });
48
- const step = ctx.step();
49
- const steps = [step.givenStep(), ...step.andGivenStep(), step.whenStep(), ...step.andWhenStep(), step.thenStep(), ...step.andStep(), ...step.butStep()];
50
- this.runNextStep(steps, undefined, worldObject !== null && worldObject !== void 0 ? worldObject : worldObj);
51
- });
52
- }
53
- setupBackground(backgroundCtx, ctx) {
54
- const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(backgroundCtx.tags());
55
- if (!this.tagFilter(tags)) {
56
- return;
57
- }
58
- const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
59
- describeFunc(`Background: ${backgroundCtx.multilineText().text.trim()}`, () => {
60
- const worldObj = {};
61
- beforeEach(() => {
62
- worldObj.world = this.worldFactory(this.featureContext);
63
- });
64
- const steps = [backgroundCtx.givenStep(), ...backgroundCtx.andGivenStep(), ...ctx.scenario(), ...ctx.scenarioOutline()];
65
- this.runNextStep(steps, undefined, worldObj);
66
- //
67
- // const scenarios = [...backgroundCtx.scenario(), ...backgroundCtx.scenarioOutline()];
68
- // for (const scenario of scenarios) {
69
- // const steps = [backgroundCtx.givenStep(), ...backgroundCtx.andGivenStep(), scenario];
70
- //
71
- // this.runNextStep(steps, undefined, worldObj);
72
- // }
73
- });
74
- }
75
- visitScenarioOutline(ctx, worldObject) {
76
- const { tags, isOnly, isSkip } = (0, tags_1.extractTags)(ctx.tags());
77
- if (!this.tagFilter(tags)) {
78
- return;
79
- }
80
- const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
81
- const cellNames = ctx.examplesBlock().tableHeader().tableRow().cell().map(cell => cell.text.trim());
82
- const values = ctx.examplesBlock().tableRow().map(row => row.cell().map(cell => cell.text.trim()));
83
- const valueMap = values.map(row => {
84
- const item = {};
85
- for (let i = 0; i < row.length; ++i) {
86
- item[cellNames[i]] = row[i];
87
- }
88
- return item;
89
- });
90
- const scenarioName = ctx.multilineText().text.trim();
91
- describeFunc(`Scenario outline: ${scenarioName}`, () => {
92
- const worldObj = {};
93
- beforeEach(() => {
94
- if (!worldObject) {
95
- worldObj.world = this.worldFactory(this.featureContext);
96
- }
97
- });
98
- for (const row of valueMap) {
99
- const step = ctx.step();
100
- const steps = [step.givenStep(), ...step.andGivenStep(), step.whenStep(), ...step.andWhenStep(), step.thenStep(), ...step.andStep(), ...step.butStep()];
101
- this.runNextStep(steps, row, worldObject !== null && worldObject !== void 0 ? worldObject : worldObj);
102
- }
103
- });
104
- }
105
- defaultResult() {
106
- return;
107
- }
108
- replaceKeywords(input, replacements) {
109
- return input
110
- .replace(/<([^>]+)>/g, (match, keyword) => {
111
- const replacement = replacements === null || replacements === void 0 ? void 0 : replacements[keyword];
112
- return replacement !== undefined ? replacement.replace(/\$/g, "\\$") : match;
113
- });
114
- }
115
- runNextStep(steps, valueMap, worldObject) {
116
- var _a;
117
- const step = steps.shift();
118
- if (!step) {
119
- return;
120
- }
121
- if (step instanceof GherkinParser_1.ScenarioContext) {
122
- this.visitScenario(step, worldObject);
123
- return;
124
- }
125
- else if (step instanceof GherkinParser_1.ScenarioOutlineContext) {
126
- this.visitScenarioOutline(step, worldObject);
127
- return;
128
- }
129
- let tags;
130
- let prefix;
131
- let prepare = true;
132
- if (step instanceof GherkinParser_1.GivenStepContext || step instanceof GherkinParser_1.AndGivenStepContext) {
133
- prefix = 'Given';
134
- tags = (0, tags_1.extractTags)(step.tags());
135
- }
136
- else if (step instanceof GherkinParser_1.WhenStepContext || step instanceof GherkinParser_1.AndWhenStepContext) {
137
- prefix = 'When';
138
- tags = (0, tags_1.extractTags)(step.tags());
139
- }
140
- else if (step instanceof GherkinParser_1.ThenStepContext || step instanceof GherkinParser_1.AndStepContext) {
141
- prefix = "Then";
142
- prepare = false;
143
- tags = (0, tags_1.extractTestTags)(step.thenTags());
144
- }
145
- else {
146
- prefix = 'But';
147
- prepare = false;
148
- tags = (0, tags_1.extractTestTags)(step.thenTags());
149
- }
150
- if (!this.tagFilter(tags.tags)) {
151
- return;
152
- }
153
- const name = `${prefix} ${this.replaceKeywords(step.multilineText().text.trim(), valueMap)}`;
154
- const { match, step: stepCall } = this.getMatchingStepDefinition(name, !!tags.isTodo);
155
- const docStringContents = (_a = step.docString()) === null || _a === void 0 ? void 0 : _a.DOC_STRING().text;
156
- const args = this.extractTestArgs(match, name, docStringContents, valueMap);
157
- if (prepare) {
158
- this.definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, tags);
159
- }
160
- else {
161
- this.defineTestStep(name, stepCall, args, steps, valueMap, worldObject, tags);
162
- }
163
- }
164
- defineTestStep(name, stepCall, args, steps, valueMap, worldObject, tags) {
165
- const itFunc = tags.isOnly ? it.only : tags.isSkip ? it.skip : tags.isTodo ? it.todo : tags.isFail ? it.failing : it;
166
- if (tags.isTodo) {
167
- itFunc(name);
168
- }
169
- else {
170
- itFunc(name, () => {
171
- stepCall(worldObject.world, ...args);
172
- });
173
- }
174
- this.runNextStep(steps, valueMap, worldObject);
175
- }
176
- definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, tags) {
177
- const describeFunc = tags.isOnly ? describe.only : tags.isSkip ? describe.skip : describe;
178
- describeFunc(name, () => {
179
- beforeEach(() => {
180
- stepCall(worldObject.world, ...args);
181
- });
182
- this.runNextStep(steps, valueMap, worldObject);
183
- });
184
- }
185
- extractTestArgs(match, name, docStringContents, valueMap) {
186
- let args = [];
187
- const matchResults = match.exec(name);
188
- if (matchResults) {
189
- args = matchResults.slice(1);
190
- }
191
- if (docStringContents) {
192
- const cleanedDocstring = this.replaceKeywords(docStringContents
193
- .trim()
194
- .replace(/^"""/, "")
195
- .replace(/"""$/, "")
196
- .split(/((\r\n)|\r|\n)]/)
197
- .map(line => line.trim()).join(os_1.EOL), valueMap);
198
- args.push(cleanedDocstring);
199
- }
200
- return args;
201
- }
202
- getMatchingStepDefinition(name, provideNopBoilerplate) {
203
- var _a;
204
- const matchingStepDefinitions = this.stepDefinitions.filter(def => {
205
- return def.match.test(name);
206
- });
207
- if (!matchingStepDefinitions.length && !provideNopBoilerplate) {
208
- throw new Error(`Missing step definition '${name}'`);
209
- }
210
- else if (matchingStepDefinitions.length > 1) {
211
- throw new Error(`Multiple step definition match '${name}':\n${matchingStepDefinitions.map(rule => rule.match.toString()).join("\n")}`);
212
- }
213
- return (_a = matchingStepDefinitions[0]) !== null && _a !== void 0 ? _a : { match: /^.*$/, step: undefined };
214
- }
215
- }
216
- exports.FeatureFileVisitor = FeatureFileVisitor;
217
- //# sourceMappingURL=feature-file-visitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature-file-visitor.js","sourceRoot":"","sources":["../../src/feature-file-visitor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- /// <reference types="node" />
2
- export declare function getCallSites(): NodeJS.CallSite[];
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCallSites = void 0;
4
- function getCallSites() {
5
- const oldPrepareStackTrace = Error.prepareStackTrace;
6
- Error.prepareStackTrace = (_, stack) => stack;
7
- const stack = new Error().stack.slice(1);
8
- Error.prepareStackTrace = oldPrepareStackTrace;
9
- return stack;
10
- }
11
- exports.getCallSites = getCallSites;
12
- //# sourceMappingURL=get-call-sites.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-call-sites.js","sourceRoot":"","sources":["../../src/get-call-sites.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY;IACxB,MAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;IAC9C,MAAM,KAAK,GAAI,IAAI,KAAK,EAAE,CAAC,KAAsC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3E,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAC/C,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,oCAMC"}
@@ -1,46 +0,0 @@
1
- import { ATN } from "antlr4ts/atn/ATN";
2
- import { CharStream } from "antlr4ts/CharStream";
3
- import { Lexer } from "antlr4ts/Lexer";
4
- import { Vocabulary } from "antlr4ts/Vocabulary";
5
- export declare class GherkinLexer extends Lexer {
6
- static readonly FEATURE = 1;
7
- static readonly SCENARIO = 2;
8
- static readonly SCENARIO_OUTLINE = 3;
9
- static readonly GIVEN = 4;
10
- static readonly AND_GIVEN = 5;
11
- static readonly WHEN = 6;
12
- static readonly AND_WHEN = 7;
13
- static readonly THEN = 8;
14
- static readonly AND = 9;
15
- static readonly BUT = 10;
16
- static readonly EXAMPLES = 11;
17
- static readonly BACKGROUND = 12;
18
- static readonly PIPE = 13;
19
- static readonly ONLY_TAG = 14;
20
- static readonly SKIP_TAG = 15;
21
- static readonly TODO_TAG = 16;
22
- static readonly FAIL_TAG = 17;
23
- static readonly TAG = 18;
24
- static readonly COMMENT = 19;
25
- static readonly TEXT_CHARACTER = 20;
26
- static readonly NEWLINE = 21;
27
- static readonly WSS = 22;
28
- static readonly DOC_STRING = 23;
29
- static readonly TEXT_CHARACTER_MODE = 1;
30
- static readonly channelNames: string[];
31
- static readonly modeNames: string[];
32
- static readonly ruleNames: string[];
33
- private static readonly _LITERAL_NAMES;
34
- private static readonly _SYMBOLIC_NAMES;
35
- static readonly VOCABULARY: Vocabulary;
36
- get vocabulary(): Vocabulary;
37
- constructor(input: CharStream);
38
- get grammarFileName(): string;
39
- get ruleNames(): string[];
40
- get serializedATN(): string;
41
- get channelNames(): string[];
42
- get modeNames(): string[];
43
- static readonly _serializedATN: string;
44
- static __ATN: ATN;
45
- static get _ATN(): ATN;
46
- }