1- import { BaseNode } from "./ast.js" ;
1+ import * as AST from "./ast.js" ;
22
33/**
44 * A read-only visitor.
@@ -11,13 +11,13 @@ import { BaseNode } from "./ast.js";
1111 * Visiting methods must implement the following interface:
1212 *
1313 * interface VisitingMethod {
14- * (this: Visitor, node: BaseNode): void;
14+ * (this: Visitor, node: AST. BaseNode): void;
1515 * }
1616 */
1717export abstract class Visitor {
1818 [ prop : string ] : unknown ;
1919
20- visit ( node : BaseNode ) : void {
20+ visit ( node : AST . BaseNode ) : void {
2121 let visit = this [ `visit${ node . type } ` ] ;
2222 if ( typeof visit === "function" ) {
2323 visit . call ( this , node ) ;
@@ -26,43 +26,43 @@ export abstract class Visitor {
2626 }
2727 }
2828
29- genericVisit ( node : BaseNode ) : void {
29+ genericVisit ( node : AST . BaseNode ) : void {
3030 for ( const key of Object . keys ( node ) ) {
3131 let prop = node [ key ] ;
32- if ( prop instanceof BaseNode ) {
32+ if ( prop instanceof AST . BaseNode ) {
3333 this . visit ( prop ) ;
3434 } else if ( Array . isArray ( prop ) ) {
3535 for ( let element of prop ) {
36- this . visit ( element as BaseNode ) ;
36+ this . visit ( element as AST . BaseNode ) ;
3737 }
3838 }
3939 }
4040 }
4141
42- visitResource ?( node : BaseNode ) : void ;
43- visitMessage ?( node : BaseNode ) : void ;
44- visitTerm ?( node : BaseNode ) : void ;
45- visitPattern ?( node : BaseNode ) : void ;
46- visitTextElement ?( node : BaseNode ) : void ;
47- visitPlaceable ?( node : BaseNode ) : void ;
48- visitStringLiteral ?( node : BaseNode ) : void ;
49- visitNumberLiteral ?( node : BaseNode ) : void ;
50- visitMessageReference ?( node : BaseNode ) : void ;
51- visitTermReference ?( node : BaseNode ) : void ;
52- visitVariableReference ?( node : BaseNode ) : void ;
53- visitFunctionReference ?( node : BaseNode ) : void ;
54- visitSelectExpression ?( node : BaseNode ) : void ;
55- visitCallArguments ?( node : BaseNode ) : void ;
56- visitAttribute ?( node : BaseNode ) : void ;
57- visitVariant ?( node : BaseNode ) : void ;
58- visitNamedArgument ?( node : BaseNode ) : void ;
59- visitIdentifier ?( node : BaseNode ) : void ;
60- visitComment ?( node : BaseNode ) : void ;
61- visitGroupComment ?( node : BaseNode ) : void ;
62- visitResourceComment ?( node : BaseNode ) : void ;
63- visitJunk ?( node : BaseNode ) : void ;
64- visitSpan ?( node : BaseNode ) : void ;
65- visitAnnotation ?( node : BaseNode ) : void ;
42+ visitResource ?( node : AST . Resource ) : void ;
43+ visitMessage ?( node : AST . Message ) : void ;
44+ visitTerm ?( node : AST . Term ) : void ;
45+ visitPattern ?( node : AST . Pattern ) : void ;
46+ visitTextElement ?( node : AST . TextElement ) : void ;
47+ visitPlaceable ?( node : AST . Placeable ) : void ;
48+ visitStringLiteral ?( node : AST . StringLiteral ) : void ;
49+ visitNumberLiteral ?( node : AST . NumberLiteral ) : void ;
50+ visitMessageReference ?( node : AST . MessageReference ) : void ;
51+ visitTermReference ?( node : AST . TermReference ) : void ;
52+ visitVariableReference ?( node : AST . VariableReference ) : void ;
53+ visitFunctionReference ?( node : AST . FunctionReference ) : void ;
54+ visitSelectExpression ?( node : AST . SelectExpression ) : void ;
55+ visitCallArguments ?( node : AST . CallArguments ) : void ;
56+ visitAttribute ?( node : AST . Attribute ) : void ;
57+ visitVariant ?( node : AST . Variant ) : void ;
58+ visitNamedArgument ?( node : AST . NamedArgument ) : void ;
59+ visitIdentifier ?( node : AST . Identifier ) : void ;
60+ visitComment ?( node : AST . Comment ) : void ;
61+ visitGroupComment ?( node : AST . GroupComment ) : void ;
62+ visitResourceComment ?( node : AST . ResourceComment ) : void ;
63+ visitJunk ?( node : AST . Junk ) : void ;
64+ visitSpan ?( node : AST . Span ) : void ;
65+ visitAnnotation ?( node : AST . Annotation ) : void ;
6666}
6767
6868/**
@@ -76,7 +76,7 @@ export abstract class Visitor {
7676 * Visiting methods must implement the following interface:
7777 *
7878 * interface TransformingMethod {
79- * (this: Transformer, node: BaseNode): BaseNode | undefined;
79+ * (this: Transformer, node: AST. BaseNode): AST. BaseNode | undefined;
8080 * }
8181 *
8282 * The returned node will replace the original one in the AST. Return
@@ -85,26 +85,26 @@ export abstract class Visitor {
8585export abstract class Transformer extends Visitor {
8686 [ prop : string ] : unknown ;
8787
88- visit ( node : BaseNode ) : BaseNode | undefined {
88+ visit ( node : AST . BaseNode ) : AST . BaseNode | undefined {
8989 let visit = this [ `visit${ node . type } ` ] ;
9090 if ( typeof visit === "function" ) {
9191 return visit . call ( this , node ) ;
9292 }
9393 return this . genericVisit ( node ) ;
9494 }
9595
96- genericVisit ( node : BaseNode ) : BaseNode | undefined {
96+ genericVisit ( node : AST . BaseNode ) : AST . BaseNode | undefined {
9797 for ( const key of Object . keys ( node ) ) {
9898 let prop = node [ key ] ;
99- if ( prop instanceof BaseNode ) {
99+ if ( prop instanceof AST . BaseNode ) {
100100 let newVal = this . visit ( prop ) ;
101101 if ( newVal === undefined ) {
102102 delete node [ key ] ;
103103 } else {
104104 node [ key ] = newVal ;
105105 }
106106 } else if ( Array . isArray ( prop ) ) {
107- let newVals : Array < BaseNode > = [ ] ;
107+ let newVals : Array < AST . BaseNode > = [ ] ;
108108 for ( let element of prop ) {
109109 let newVal = this . visit ( element ) ;
110110 if ( newVal !== undefined ) {
@@ -117,28 +117,30 @@ export abstract class Transformer extends Visitor {
117117 return node ;
118118 }
119119
120- visitResource ?( node : BaseNode ) : BaseNode | undefined ;
121- visitMessage ?( node : BaseNode ) : BaseNode | undefined ;
122- visitTerm ?( node : BaseNode ) : BaseNode | undefined ;
123- visitPattern ?( node : BaseNode ) : BaseNode | undefined ;
124- visitTextElement ?( node : BaseNode ) : BaseNode | undefined ;
125- visitPlaceable ?( node : BaseNode ) : BaseNode | undefined ;
126- visitStringLiteral ?( node : BaseNode ) : BaseNode | undefined ;
127- visitNumberLiteral ?( node : BaseNode ) : BaseNode | undefined ;
128- visitMessageReference ?( node : BaseNode ) : BaseNode | undefined ;
129- visitTermReference ?( node : BaseNode ) : BaseNode | undefined ;
130- visitVariableReference ?( node : BaseNode ) : BaseNode | undefined ;
131- visitFunctionReference ?( node : BaseNode ) : BaseNode | undefined ;
132- visitSelectExpression ?( node : BaseNode ) : BaseNode | undefined ;
133- visitCallArguments ?( node : BaseNode ) : BaseNode | undefined ;
134- visitAttribute ?( node : BaseNode ) : BaseNode | undefined ;
135- visitVariant ?( node : BaseNode ) : BaseNode | undefined ;
136- visitNamedArgument ?( node : BaseNode ) : BaseNode | undefined ;
137- visitIdentifier ?( node : BaseNode ) : BaseNode | undefined ;
138- visitComment ?( node : BaseNode ) : BaseNode | undefined ;
139- visitGroupComment ?( node : BaseNode ) : BaseNode | undefined ;
140- visitResourceComment ?( node : BaseNode ) : BaseNode | undefined ;
141- visitJunk ?( node : BaseNode ) : BaseNode | undefined ;
142- visitSpan ?( node : BaseNode ) : BaseNode | undefined ;
143- visitAnnotation ?( node : BaseNode ) : BaseNode | undefined ;
120+ visitResource ?( node : AST . Resource ) : AST . BaseNode | undefined ;
121+ visitMessage ?( node : AST . Message ) : AST . BaseNode | undefined ;
122+ visitTerm ?( node : AST . Term ) : AST . BaseNode | undefined ;
123+ visitPattern ?( node : AST . Pattern ) : AST . BaseNode | undefined ;
124+ visitTextElement ?( node : AST . TextElement ) : AST . BaseNode | undefined ;
125+ visitPlaceable ?( node : AST . Placeable ) : AST . BaseNode | undefined ;
126+ visitStringLiteral ?( node : AST . StringLiteral ) : AST . BaseNode | undefined ;
127+ visitNumberLiteral ?( node : AST . NumberLiteral ) : AST . BaseNode | undefined ;
128+ visitMessageReference ?( node : AST . MessageReference ) : AST . BaseNode | undefined ;
129+ visitTermReference ?( node : AST . TermReference ) : AST . BaseNode | undefined ;
130+ visitVariableReference ?( node : AST . VariableReference ) :
131+ AST . BaseNode | undefined ;
132+ visitFunctionReference ?( node : AST . FunctionReference ) :
133+ AST . BaseNode | undefined ;
134+ visitSelectExpression ?( node : AST . SelectExpression ) : AST . BaseNode | undefined ;
135+ visitCallArguments ?( node : AST . CallArguments ) : AST . BaseNode | undefined ;
136+ visitAttribute ?( node : AST . Attribute ) : AST . BaseNode | undefined ;
137+ visitVariant ?( node : AST . Variant ) : AST . BaseNode | undefined ;
138+ visitNamedArgument ?( node : AST . NamedArgument ) : AST . BaseNode | undefined ;
139+ visitIdentifier ?( node : AST . Identifier ) : AST . BaseNode | undefined ;
140+ visitComment ?( node : AST . Comment ) : AST . BaseNode | undefined ;
141+ visitGroupComment ?( node : AST . GroupComment ) : AST . BaseNode | undefined ;
142+ visitResourceComment ?( node : AST . ResourceComment ) : AST . BaseNode | undefined ;
143+ visitJunk ?( node : AST . Junk ) : AST . BaseNode | undefined ;
144+ visitSpan ?( node : AST . Span ) : AST . BaseNode | undefined ;
145+ visitAnnotation ?( node : AST . Annotation ) : AST . BaseNode | undefined ;
144146}
0 commit comments