11import { CoreFactory } from '../CoreFactory' ;
2- import type { Node } from '../nodeTypings' ;
32import type { CheckOverlap } from '../utils' ;
43import type { GeneratorFromRules , GenRuleMap , GenRulesToObject , GenNamesFromList } from './builderTypes' ;
54import type { GeneratorRule , RuleDefArg } from './generatorTypes' ;
@@ -21,7 +20,7 @@ export class GeneratorBuilder<Context, Names extends string, RuleDefs extends Ge
2120 * If a GeneratorBuilder is provided, a new copy will be created.
2221 */
2322 public static createBuilder <
24- Rules extends readonly GeneratorRule < any , any , any & Node > [ ] = readonly GeneratorRule < any , any , any & Node > [ ] ,
23+ Rules extends readonly GeneratorRule [ ] = readonly GeneratorRule [ ] ,
2524 Context = Rules [ 0 ] extends GeneratorRule < infer context > ? context : never ,
2625 Names extends string = GenNamesFromList < Rules > ,
2726 RuleDefs extends GenRuleMap < Names > = GenRulesToObject < Rules > ,
@@ -36,14 +35,14 @@ export class GeneratorBuilder<Context, Names extends string, RuleDefs extends Ge
3635
3736 private rules : RuleDefs ;
3837
39- protected constructor ( startRules : RuleDefs ) {
38+ private constructor ( startRules : RuleDefs ) {
4039 this . rules = startRules ;
4140 }
4241
4342 /**
4443 * Change the implementation of an existing generator rule.
4544 */
46- public patchRule < U extends Names , RET extends Node , ARGS > ( patch : GeneratorRule < Context , U , RET , ARGS > ) :
45+ public patchRule < U extends Names , RET , ARGS > ( patch : GeneratorRule < Context , U , RET , ARGS > ) :
4746 GeneratorBuilder < Context , Names , { [ Key in Names ] : Key extends U ?
4847 GeneratorRule < Context , Key , RET , ARGS > :
4948 ( RuleDefs [ Key ] extends GeneratorRule < Context , Key > ? RuleDefs [ Key ] : never )
@@ -59,7 +58,7 @@ export class GeneratorBuilder<Context, Names extends string, RuleDefs extends Ge
5958 /**
6059 * Add a rule to the grammar. If the rule already exists, but the implementation differs, an error will be thrown.
6160 */
62- public addRuleRedundant < U extends string , RET extends Node , ARGS > ( rule : GeneratorRule < Context , U , RET , ARGS > ) :
61+ public addRuleRedundant < U extends string , RET , ARGS > ( rule : GeneratorRule < Context , U , RET , ARGS > ) :
6362 GeneratorBuilder < Context , Names | U , { [ K in Names | U ] : K extends Names ?
6463 ( RuleDefs [ K ] extends GeneratorRule < Context , K > ? RuleDefs [ K ] : never )
6564 : ( K extends U ? GeneratorRule < Context , K , RET , ARGS > : never )
@@ -79,7 +78,7 @@ export class GeneratorBuilder<Context, Names extends string, RuleDefs extends Ge
7978 /**
8079 * Add a rule to the grammar. Will raise a typescript error if the rule already exists in the grammar.
8180 */
82- public addRule < U extends string , RET extends Node , ARGS > (
81+ public addRule < U extends string , RET , ARGS > (
8382 rule : CheckOverlap < U , Names , GeneratorRule < Context , U , RET , ARGS > > ,
8483 ) : GeneratorBuilder < Context , Names | U , { [ K in Names | U ] : K extends Names ?
8584 ( RuleDefs [ K ] extends GeneratorRule < Context , K > ? RuleDefs [ K ] : never )
@@ -88,7 +87,7 @@ export class GeneratorBuilder<Context, Names extends string, RuleDefs extends Ge
8887 return this . addRuleRedundant ( rule ) ;
8988 }
9089
91- public addMany < U extends readonly GeneratorRule < Context , any , Node > [ ] > (
90+ public addMany < U extends readonly GeneratorRule < Context > [ ] > (
9291 ...rules : CheckOverlap < GenNamesFromList < U > , Names , U >
9392 ) : GeneratorBuilder <
9493 Context ,
0 commit comments