grammar-well 2.0.5 → 2.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.
Files changed (53) hide show
  1. package/build/generator/generator.js +4 -1
  2. package/build/generator/generator.js.map +1 -1
  3. package/build/generator/grammars/v1.d.ts +1 -0
  4. package/build/generator/grammars/v1.js +1 -0
  5. package/build/generator/grammars/v1.js.map +1 -1
  6. package/build/generator/grammars/v2.d.ts +10 -2
  7. package/build/generator/grammars/v2.js +4 -1
  8. package/build/generator/grammars/v2.js.map +1 -1
  9. package/build/generator/state.d.ts +7 -5
  10. package/build/generator/state.js +7 -4
  11. package/build/generator/state.js.map +1 -1
  12. package/build/generator/stringify/exports/javascript.js +3 -2
  13. package/build/generator/stringify/exports/javascript.js.map +1 -1
  14. package/build/generator/stringify/exports/typescript.js +3 -2
  15. package/build/generator/stringify/exports/typescript.js.map +1 -1
  16. package/build/generator/stringify/grammar/v2.d.ts +4 -0
  17. package/build/generator/stringify/grammar/v2.js +14 -5
  18. package/build/generator/stringify/grammar/v2.js.map +1 -1
  19. package/build/generator/stringify/javascript.d.ts +1 -0
  20. package/build/generator/stringify/javascript.js +23 -2
  21. package/build/generator/stringify/javascript.js.map +1 -1
  22. package/build/lexers/character-lexer.d.ts +1 -0
  23. package/build/lexers/character-lexer.js +2 -1
  24. package/build/lexers/character-lexer.js.map +1 -1
  25. package/build/lexers/stateful-lexer.d.ts +1 -0
  26. package/build/lexers/stateful-lexer.js +2 -1
  27. package/build/lexers/stateful-lexer.js.map +1 -1
  28. package/build/lexers/token-buffer.d.ts +2 -1
  29. package/build/lexers/token-buffer.js +7 -2
  30. package/build/lexers/token-buffer.js.map +1 -1
  31. package/build/parser/parse.js +8 -7
  32. package/build/parser/parse.js.map +1 -1
  33. package/build/typings/ast.d.ts +1 -1
  34. package/build/typings/runtime.d.ts +4 -0
  35. package/build/version.json +1 -1
  36. package/package.json +1 -1
  37. package/src/generator/generator.ts +4 -1
  38. package/src/generator/grammars/v1.ts +2 -1
  39. package/src/generator/grammars/v2.ts +5 -2
  40. package/src/generator/grammars/v2.well +2 -0
  41. package/src/generator/state.ts +13 -7
  42. package/src/generator/stringify/exports/javascript.ts +3 -2
  43. package/src/generator/stringify/exports/typescript.ts +3 -2
  44. package/src/generator/stringify/grammar/v2.ts +17 -5
  45. package/src/generator/stringify/javascript.ts +24 -2
  46. package/src/lexers/character-lexer.ts +2 -1
  47. package/src/lexers/stateful-lexer.ts +2 -1
  48. package/src/lexers/token-buffer.ts +5 -2
  49. package/src/parser/parse.ts +8 -7
  50. package/src/typings/ast.ts +1 -1
  51. package/src/typings/generator.ts +1 -1
  52. package/src/typings/runtime.ts +3 -1
  53. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/generator/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/generator/state.ts"],"names":[],"mappings":"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"}
@@ -16,11 +16,12 @@ function Generate(generator) {
16
16
  return `// Generated automatically by Grammar-Well, version ${generator.state.version}
17
17
  // https://github.com/0x6563/grammar-well
18
18
 
19
- ${generator.lifecycle('import')}
19
+ ${generator.lifecycle('import').join('')}
20
20
 
21
21
  class ${exportName} {
22
+ state = {};
22
23
  artifacts = ${generator.artifacts(1)}
23
- constructor(){${generator.lifecycle('new')}}
24
+ constructor(){${generator.lifecycle('new').join('')}}
24
25
  }`;
25
26
  }
26
27
  //# sourceMappingURL=javascript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../src/generator/stringify/exports/javascript.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,SAA8B;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;;;uBAGV,UAAU;;aAEpB,UAAU,MAAM,UAAU;EACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAA8B;IACpD,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,sBAAsB,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3E,CAAC;AAED,SAAS,QAAQ,CAAC,SAA8B;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,uDAAuD,SAAS,CAAC,KAAK,CAAC,OAAO;;;EAGvF,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;;QAEvB,UAAU;kBACA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;EAC5C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../src/generator/stringify/exports/javascript.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,SAA8B;IACpD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;;;uBAGV,UAAU;;aAEpB,UAAU,MAAM,UAAU;EACrC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAA8B;IACpD,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,sBAAsB,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AAC3E,CAAC;AAED,SAAS,QAAQ,CAAC,SAA8B;IAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,uDAAuD,SAAS,CAAC,KAAK,CAAC,OAAO;;;EAGvF,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;QAEhC,UAAU;;kBAEA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;EACrD,CAAC;AACH,CAAC"}
@@ -4,11 +4,12 @@ export function TypescriptFormat(generator) {
4
4
  // https://github.com/0x6563/grammar-well
5
5
  // @ts-nocheck
6
6
 
7
- ${generator.lifecycle('import')}
7
+ ${generator.lifecycle('import').join('')}
8
8
 
9
9
  class ${exportName} {
10
+ state = {};
10
11
  artifacts = ${generator.artifacts(1)}
11
- constructor(){${generator.lifecycle('new')}}
12
+ constructor(){${generator.lifecycle('new').join('')}}
12
13
  }
13
14
 
14
15
  export default ${exportName};`;
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/generator/stringify/exports/typescript.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,SAA8B;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,uDAAuD,SAAS,CAAC,KAAK,CAAC,OAAO;;;;EAIvF,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;;QAEvB,UAAU;kBACA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;;;iBAG7B,UAAU,GAAG,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../../src/generator/stringify/exports/typescript.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAAC,SAA8B;IAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,uDAAuD,SAAS,CAAC,KAAK,CAAC,OAAO;;;;EAIvF,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;QAEhC,UAAU;;kBAEA,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;oBACpB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;;iBAGtC,UAAU,GAAG,CAAC;AAC/B,CAAC"}
@@ -9,6 +9,9 @@ export declare class V2GrammarString {
9
9
  formatSymbols(exp: GeneratorGrammarSymbol[]): any;
10
10
  formatSymbol(exp: ASTGrammarSymbol | GeneratorGrammarSymbol | string): any;
11
11
  formatPostProcess(postProcess: ASTGrammarProduction['postprocess']): string;
12
+ formatTemplate(postProcess: {
13
+ template: string;
14
+ }): string;
12
15
  appendLexerDirective(directive: ASTLexer): void;
13
16
  formatLexerState(name: string, state: ASTLexerState, depth?: number): string;
14
17
  formatLexerStateRule(rule: ASTLexerStateMatchRule | ASTLexerStateNonMatchRule | ASTLexerStateImportRule): string;
@@ -16,5 +19,6 @@ export declare class V2GrammarString {
16
19
  [key: string]: any;
17
20
  }, depth?: number): string;
18
21
  appendSection(label: string, body: string): void;
22
+ appendSource(source: any): void;
19
23
  indent(depth: number, content: string): string;
20
24
  }
@@ -4,7 +4,10 @@ export class V2GrammarString {
4
4
  directives = Array.isArray(directives) ? directives : [directives];
5
5
  for (const directive of directives) {
6
6
  if ("lifecycle" in directive) {
7
- this.appendSection("on:" + directive.lifecycle, directive.js.js.trim());
7
+ if ('js' in directive.js)
8
+ this.appendSection("on:" + directive.lifecycle, directive.js.js.trim());
9
+ else if ('template' in directive.js)
10
+ this.appendSource("on:" + directive.lifecycle + this.formatTemplate(directive.js));
8
11
  }
9
12
  else if ("import" in directive) {
10
13
  this.appendImportDirective(directive);
@@ -84,11 +87,14 @@ export class V2GrammarString {
84
87
  return `=> \${ ${postProcess.js} }`;
85
88
  }
86
89
  if ('template' in postProcess) {
87
- const prefix = postProcess.template.slice(0, 1);
88
- const suffix = postProcess.template.slice(-1);
89
- return `=> ${prefix} ${postProcess.template.slice(1, -1).trim()} ${suffix}`;
90
+ return this.formatTemplate(postProcess);
90
91
  }
91
92
  }
93
+ formatTemplate(postProcess) {
94
+ const prefix = postProcess.template.slice(0, 1);
95
+ const suffix = postProcess.template.slice(-1);
96
+ return `=> ${prefix} ${postProcess.template.slice(1, -1).trim()} ${suffix}`;
97
+ }
92
98
  appendLexerDirective(directive) {
93
99
  let body = '';
94
100
  if (directive.lexer.start) {
@@ -199,10 +205,13 @@ export class V2GrammarString {
199
205
  return body;
200
206
  }
201
207
  appendSection(label, body) {
208
+ this.appendSource(`${label} {\n${body}\n}\n`);
209
+ }
210
+ appendSource(source) {
202
211
  if (this.source) {
203
212
  this.source += '\n';
204
213
  }
205
- this.source += `${label} {\n${body}\n}\n`;
214
+ this.source += source;
206
215
  }
207
216
  indent(depth = 0, content) {
208
217
  return `\t`.repeat(depth) + content;
@@ -1 +1 @@
1
- {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../../src/generator/stringify/grammar/v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../../src/generator/stringify/grammar/v2.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class JavaScriptGenerator {
7
7
  name(): string;
8
8
  lifecycle(lifecycle: string): any;
9
9
  artifacts(depth?: number): string;
10
+ f(token: any): any;
10
11
  postProcess(postprocess: GeneratorGrammarProductionRule['postprocess'], alias: Dictionary<number>): any;
11
12
  grammarRule(rule: GeneratorGrammarProductionRule): string;
12
13
  private templatePostProcess;
@@ -20,8 +20,8 @@ export class JavaScriptGenerator {
20
20
  }
21
21
  lifecycle(lifecycle) {
22
22
  if (this.options.noscript)
23
- return '';
24
- return this.state.lifecycle[lifecycle] || '';
23
+ return [];
24
+ return this.state.lifecycle[lifecycle] || [];
25
25
  }
26
26
  artifacts(depth = 0) {
27
27
  let output = {};
@@ -41,8 +41,29 @@ export class JavaScriptGenerator {
41
41
  const basic = new BasicGrammarTable(this);
42
42
  output.grammar = basic.stringify(depth + 1);
43
43
  }
44
+ const onToken = this.lifecycle('token');
45
+ if (onToken.length) {
46
+ output.tokenProcessor = `() => {`;
47
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 1)}return (token) => {`;
48
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 2)}const processors = [`;
49
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 3)}${onToken.map(v => `({ token, state }) => ${v}`).join(',' + CommonGenerator.SmartIndent(depth + 3))}`;
50
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 2)}];`;
51
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 2)}for (const processor of processors) {`;
52
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 3)}token = processor({ token, state: this.state })`;
53
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 2)}}`;
54
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 2)}return token;`;
55
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth + 1)}}`;
56
+ output.tokenProcessor += `${CommonGenerator.SmartIndent(depth)}}`;
57
+ }
44
58
  return CommonGenerator.JSON(output, depth);
45
59
  }
60
+ f(token) {
61
+ const processors = [({ token, state }) => token];
62
+ for (const processor of processors) {
63
+ token = processor({ token, state: this.state });
64
+ }
65
+ return token;
66
+ }
46
67
  postProcess(postprocess, alias) {
47
68
  postprocess = this.state.grammar.config.postprocessorOverride || postprocess || this.state.grammar.config.postprocessorDefault;
48
69
  if (!postprocess)
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/generator/stringify/javascript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/generator/stringify/javascript.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class CharacterLexer implements RuntimeLexer {
14
14
  offset: number;
15
15
  line: number;
16
16
  column: number;
17
+ custom: {};
17
18
  };
18
19
  feed(buffer: string | any[], state?: ReturnType<CharacterLexer['state']>): void;
19
20
  state(): {
@@ -22,7 +22,8 @@ export class CharacterLexer {
22
22
  value,
23
23
  offset: this.index,
24
24
  line: this.line,
25
- column: this.column
25
+ column: this.column,
26
+ custom: {}
26
27
  };
27
28
  }
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"character-lexer.js","sourceRoot":"","sources":["../../src/lexers/character-lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character-lexer.js","sourceRoot":"","sources":["../../src/lexers/character-lexer.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export declare class StatefulLexer implements RuntimeLexer {
35
35
  lines: number;
36
36
  column: number;
37
37
  state: string;
38
+ custom: {};
38
39
  };
39
40
  private set;
40
41
  private pop;
@@ -58,7 +58,8 @@ export class StatefulLexer {
58
58
  line: this.line,
59
59
  lines: 0,
60
60
  column: this.column,
61
- state: this.current
61
+ state: this.current,
62
+ custom: {},
62
63
  };
63
64
  this.adjustPosition(text);
64
65
  token.lines = this.line - token.line;
@@ -1 +1 @@
1
- {"version":3,"file":"stateful-lexer.js","sourceRoot":"","sources":["../../src/lexers/stateful-lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stateful-lexer.js","sourceRoot":"","sources":["../../src/lexers/stateful-lexer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { RuntimeLexer, RuntimeLexerToken, TQRestorePoint } from '../typings/index.js';
2
2
  export declare class TokenBuffer {
3
3
  lexer: RuntimeLexer;
4
+ private tokenProcessor?;
4
5
  private history;
5
6
  private queued;
6
7
  private $historyIndex;
@@ -9,7 +10,7 @@ export declare class TokenBuffer {
9
10
  get column(): number;
10
11
  get active(): RuntimeLexerToken;
11
12
  get state(): TQRestorePoint;
12
- constructor(lexer: RuntimeLexer);
13
+ constructor(lexer: RuntimeLexer, tokenProcessor?: (token: RuntimeLexerToken) => RuntimeLexerToken);
13
14
  reset(buffer: string): void;
14
15
  restore(state: TQRestorePoint): void;
15
16
  feed(buffer: string, flush?: boolean): void;
@@ -1,5 +1,6 @@
1
1
  export class TokenBuffer {
2
2
  lexer;
3
+ tokenProcessor;
3
4
  history = [];
4
5
  queued = '';
5
6
  $historyIndex = -1;
@@ -10,8 +11,9 @@ export class TokenBuffer {
10
11
  get state() {
11
12
  return { historyIndex: this.$historyIndex, offset: this.offset };
12
13
  }
13
- constructor(lexer) {
14
+ constructor(lexer, tokenProcessor) {
14
15
  this.lexer = lexer;
16
+ this.tokenProcessor = tokenProcessor;
15
17
  }
16
18
  reset(buffer) {
17
19
  this.lexer.feed(buffer);
@@ -64,8 +66,11 @@ export class TokenBuffer {
64
66
  this.queued = '';
65
67
  token = this.lexer.next();
66
68
  }
67
- if (token)
69
+ if (token) {
70
+ if (this.tokenProcessor)
71
+ token = this.tokenProcessor(token);
68
72
  this.history.push(token);
73
+ }
69
74
  return token;
70
75
  }
71
76
  [Symbol.iterator]() {
@@ -1 +1 @@
1
- {"version":3,"file":"token-buffer.js","sourceRoot":"","sources":["../../src/lexers/token-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-buffer.js","sourceRoot":"","sources":["../../src/lexers/token-buffer.ts"],"names":[],"mappings":"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"}
@@ -20,15 +20,16 @@ export function Parse(language, input, options = {
20
20
  const result = algorithm({ ...language, tokens: tokenizer, utility: ParserUtility }, options.parserOptions);
21
21
  return results == 'full' ? result : result.results[0];
22
22
  }
23
- function GetTokenizer({ lexer }) {
24
- if (!lexer) {
25
- return new TokenBuffer(new CharacterLexer());
23
+ function GetTokenizer(artifacts) {
24
+ const tokenProcessor = artifacts?.tokenProcessor ? artifacts.tokenProcessor() : null;
25
+ if (!artifacts.lexer) {
26
+ return new TokenBuffer(new CharacterLexer(), tokenProcessor);
26
27
  }
27
- else if ("feed" in lexer && typeof lexer.feed == 'function') {
28
- return new TokenBuffer(lexer);
28
+ else if ("feed" in artifacts.lexer && typeof artifacts.lexer.feed == 'function') {
29
+ return new TokenBuffer(artifacts.lexer, tokenProcessor);
29
30
  }
30
- else if ('states' in lexer) {
31
- return new TokenBuffer(new StatefulLexer(lexer));
31
+ else if ('states' in artifacts.lexer) {
32
+ return new TokenBuffer(new StatefulLexer(artifacts.lexer), tokenProcessor);
32
33
  }
33
34
  }
34
35
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parser/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,cAAc,GAAuC;IACvD,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACX,CAAA;AAED,MAAM,UAAU,KAAK,CACjB,QAA0C,EAC1C,KAAa,EACb,UAAyB;IACrB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,EAAE;CACpB,EACD,UAA4B,OAAO;IAEnC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5G,OAAO,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAmC;IAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5D,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,WAAW,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/parser/parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,+BAA+B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,cAAc,GAAuC;IACvD,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACX,CAAA;AAED,MAAM,UAAU,KAAK,CACjB,QAA0C,EAC1C,KAAa,EACb,UAAyB;IACrB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,EAAE;CACpB,EACD,UAA4B,OAAO;IAEnC,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,OAAO,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5G,OAAO,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,SAA0C;IAC5D,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,WAAW,CAAC,IAAI,cAAc,EAAE,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;SAAM,IAAI,MAAM,IAAI,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAChF,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,IAAI,WAAW,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC"}
@@ -3,7 +3,7 @@ export type AST = ASTDirectives[];
3
3
  export type ASTJavascriptLifecycleLiteral = {
4
4
  lifecycle: string;
5
5
  path?: boolean;
6
- js: ASTJavaScriptLiteral;
6
+ js: ASTJavaScriptLiteral | ASTJavaScriptTemplate;
7
7
  };
8
8
  export type ASTJavaScriptLiteral = {
9
9
  js: string;
@@ -12,6 +12,7 @@ export interface RuntimeParserClass {
12
12
  k: number;
13
13
  table: Dictionary<LRState>;
14
14
  };
15
+ tokenProcessor: () => ((token: RuntimeLexerToken) => RuntimeLexerToken) | undefined;
15
16
  };
16
17
  new (): any;
17
18
  }
@@ -50,6 +51,9 @@ export interface RuntimeLexerToken {
50
51
  offset: number;
51
52
  line: number;
52
53
  column: number;
54
+ custom?: {
55
+ [key: string]: any;
56
+ };
53
57
  }
54
58
  export interface RuntimeLexerStateMatchRule {
55
59
  when: string | RegExp;
@@ -1 +1 @@
1
- { "version": "2.0.5" }
1
+ { "version": "2.0.7" }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "grammar-well",
3
3
  "type": "module",
4
- "version": "2.0.5",
4
+ "version": "2.0.7",
5
5
  "description": "Cross-platform Parser written in TypeScript",
6
6
  "scripts": {
7
7
  "prebuild": "tsc --build --clean && tsx scripts/prebuild.ts",
@@ -92,7 +92,10 @@ export class Generator {
92
92
  }
93
93
 
94
94
  private async processLifecycleDirective(directive: ASTJavascriptLifecycleLiteral) {
95
- this.state.addLifecycle(directive.lifecycle, directive.js.js);
95
+ if ('js' in directive.js)
96
+ this.state.addLifecycle(directive.lifecycle, directive.js.js);
97
+ else if ('template' in directive.js)
98
+ this.state.addLifecycle(directive.lifecycle, directive.js.template);
96
99
  }
97
100
 
98
101
  private processConfigDirective(directive: ASTConfig) {
@@ -1,10 +1,11 @@
1
- // Generated automatically by Grammar-Well, version 2.0.4
1
+ // Generated automatically by Grammar-Well, version 2.0.6
2
2
  // https://github.com/0x6563/grammar-well
3
3
  // @ts-nocheck
4
4
 
5
5
 
6
6
 
7
7
  class grammar {
8
+ state = {};
8
9
  artifacts = {
9
10
  grammar: {
10
11
  rules: {
@@ -1,10 +1,11 @@
1
- // Generated automatically by Grammar-Well, version 2.0.4
1
+ // Generated automatically by Grammar-Well, version 2.0.6
2
2
  // https://github.com/0x6563/grammar-well
3
3
  // @ts-nocheck
4
4
 
5
5
 
6
6
 
7
7
  class grammar {
8
+ state = {};
8
9
  artifacts = {
9
10
  grammar: {
10
11
  rules: {
@@ -159,6 +160,7 @@ class grammar {
159
160
  { name: "section", postprocess: ({data}) => { return ({ lexer: Object.assign(...data[4]) }); }, symbols: [ { literal: "lexer" }, "_", { literal: "{" }, "_", "lexer", "_", { literal: "}" } ] },
160
161
  { name: "section", postprocess: ({data}) => { return ({ grammar: data[4] }); }, symbols: [ { literal: "grammar" }, "_", { literal: "{" }, "_", "grammar", "_", { literal: "}" } ] },
161
162
  { name: "section", postprocess: ({data}) => { return ({ lifecycle: data[2], js: data[4] }); }, symbols: [ /on/, { literal: ":" }, "T_WORD", "_", "T_JS" ] },
163
+ { name: "section", postprocess: ({data}) => { return ({ lifecycle: data[2], js: data[4] }); }, symbols: [ /on/, { literal: ":" }, "T_WORD", "_", "POSTPROCESSOR" ] },
162
164
  { name: "section", postprocess: ({data}) => { return ({ lifecycle: data[2], js: data[4], path: true }); }, symbols: [ /on/, { literal: ":" }, "T_WORD", "_", "T_STRING" ] }
163
165
  ],
164
166
  section_list: [
@@ -461,8 +463,9 @@ class grammar {
461
463
  ]
462
464
  },
463
465
  "lifecycle.span": {
464
- regex: /(?:(?:(\s+))|(?:((?:\{)))|(?:((?::)))|(?:([a-zA-Z_][a-zA-Z_\d]*))|(?:([\'"`])))/ym,
466
+ regex: /(?:(?:((?:=>)))|(?:(\s+))|(?:((?:\{)))|(?:((?::)))|(?:([a-zA-Z_][a-zA-Z_\d]*))|(?:([\'"`])))/ym,
465
467
  rules: [
468
+ { highlight: "annotation", set: "js_template_inner", when: "=>" },
466
469
  { tag: ["T_WS"], when: /\s+/ },
467
470
  { highlight: "annotation", set: "js_literal", tag: ["T_JSBODY"], when: "{" },
468
471
  { highlight: "keyword", when: ":" },
@@ -16,6 +16,7 @@ lexer {
16
16
  - when r:{on(?![a-zA-Z\d_])} tag "T_WORD" highlight "tag"
17
17
 
18
18
  [span]
19
+ - when "=>" highlight "annotation" set js_template_inner
19
20
  - import js_body
20
21
  - when ":" highlight "keyword"
21
22
  - import word
@@ -212,6 +213,7 @@ grammar {
212
213
  | "lexer" _ "{" _ lexer@lexer _ "}" => ( { lexer: Object.assign(...$lexer) } )
213
214
  | "grammar" _ "{" _ grammar@grammar _ "}" => ( { grammar: $grammar } )
214
215
  | r:{on} ":" T_WORD@lifecycle _ T_JS@js => ( { lifecycle: $lifecycle, js: $js } )
216
+ | r:{on} ":" T_WORD@lifecycle _ POSTPROCESSOR@js => ( { lifecycle: $lifecycle, js: $js } )
215
217
  | r:{on} ":" T_WORD@lifecycle _ T_STRING@js => ( { lifecycle: $lifecycle, js: $js, path: true } )
216
218
 
217
219
  [lexer]
@@ -1,15 +1,16 @@
1
1
  import { GeneratorGrammarProductionRule, GeneratorLexerConfig, GeneratorLexerState, GeneratorStateGrammar } from "../typings/index.js";
2
- import { version } from "../version.json" with { type: "json" };
2
+ import version from "../version.json" with { type: "json" };
3
3
  export class GeneratorState {
4
4
  grammar?: GeneratorStateGrammar;
5
5
  lexer?: GeneratorLexerConfig;
6
6
  lifecycle: {
7
- import?: string;
8
- new?: string;
7
+ import?: string[];
8
+ new?: string[];
9
+ token?: string[];
9
10
  } = {}
10
11
 
11
12
  config = {};
12
- version: string = version;
13
+ version: string = version.version;
13
14
 
14
15
  merge(state: GeneratorState) {
15
16
  if (state.grammar) {
@@ -72,9 +73,14 @@ export class GeneratorState {
72
73
  }
73
74
  }
74
75
 
75
- addLifecycle(lifecycle: string, literal: string) {
76
- this.lifecycle[lifecycle] = this.lifecycle[lifecycle] || '';
77
- this.lifecycle[lifecycle] += literal;
76
+ addLifecycle(lifecycle: string, literal: string | string[]) {
77
+ this.lifecycle[lifecycle] = this.lifecycle[lifecycle] || [];
78
+
79
+ if (typeof literal == 'string')
80
+ this.lifecycle[lifecycle].push(literal);
81
+
82
+ if (Array.isArray(literal))
83
+ this.lifecycle[lifecycle].push(...literal);
78
84
  }
79
85
 
80
86
  export() {
@@ -20,10 +20,11 @@ function Generate(generator: JavaScriptGenerator) {
20
20
  return `// Generated automatically by Grammar-Well, version ${generator.state.version}
21
21
  // https://github.com/0x6563/grammar-well
22
22
 
23
- ${generator.lifecycle('import')}
23
+ ${generator.lifecycle('import').join('')}
24
24
 
25
25
  class ${exportName} {
26
+ state = {};
26
27
  artifacts = ${generator.artifacts(1)}
27
- constructor(){${generator.lifecycle('new')}}
28
+ constructor(){${generator.lifecycle('new').join('')}}
28
29
  }`;
29
30
  }
@@ -6,11 +6,12 @@ export function TypescriptFormat(generator: JavaScriptGenerator) {
6
6
  // https://github.com/0x6563/grammar-well
7
7
  // @ts-nocheck
8
8
 
9
- ${generator.lifecycle('import')}
9
+ ${generator.lifecycle('import').join('')}
10
10
 
11
11
  class ${exportName} {
12
+ state = {};
12
13
  artifacts = ${generator.artifacts(1)}
13
- constructor(){${generator.lifecycle('new')}}
14
+ constructor(){${generator.lifecycle('new').join('')}}
14
15
  }
15
16
 
16
17
  export default ${exportName};`;