Skip to content

Commit ace9a7e

Browse files
committed
Add back virtual and generic JsxAstVisitor
1 parent 6837643 commit ace9a7e

File tree

2 files changed

+84
-13
lines changed

2 files changed

+84
-13
lines changed

src/Esprima/Utils/Jsx/JsxAstVisitor.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private JsxAstVisitor(AstVisitor visitor)
2727
_visitor = visitor;
2828
}
2929

30-
public object? VisitJsxAttribute(JsxAttribute jsxAttribute)
30+
public virtual object? VisitJsxAttribute(JsxAttribute jsxAttribute)
3131
{
3232
_visitor.Visit(jsxAttribute.Name);
3333
if (jsxAttribute.Value is not null)
@@ -38,19 +38,19 @@ private JsxAstVisitor(AstVisitor visitor)
3838
return jsxAttribute;
3939
}
4040

41-
public object? VisitJsxClosingElement(JsxClosingElement jsxClosingElement)
41+
public virtual object? VisitJsxClosingElement(JsxClosingElement jsxClosingElement)
4242
{
4343
_visitor.Visit(jsxClosingElement.Name);
4444

4545
return jsxClosingElement;
4646
}
4747

48-
public object? VisitJsxClosingFragment(JsxClosingFragment jsxClosingFragment)
48+
public virtual object? VisitJsxClosingFragment(JsxClosingFragment jsxClosingFragment)
4949
{
5050
return jsxClosingFragment;
5151
}
5252

53-
public object? VisitJsxElement(JsxElement jsxElement)
53+
public virtual object? VisitJsxElement(JsxElement jsxElement)
5454
{
5555
_visitor.Visit(jsxElement.OpeningElement);
5656
ref readonly var children = ref jsxElement.Children;
@@ -67,40 +67,40 @@ private JsxAstVisitor(AstVisitor visitor)
6767
return jsxElement;
6868
}
6969

70-
public object? VisitJsxEmptyExpression(JsxEmptyExpression jsxEmptyExpression)
70+
public virtual object? VisitJsxEmptyExpression(JsxEmptyExpression jsxEmptyExpression)
7171
{
7272
return jsxEmptyExpression;
7373
}
7474

75-
public object? VisitJsxExpressionContainer(JsxExpressionContainer jsxExpressionContainer)
75+
public virtual object? VisitJsxExpressionContainer(JsxExpressionContainer jsxExpressionContainer)
7676
{
7777
_visitor.Visit(jsxExpressionContainer.Expression);
7878

7979
return jsxExpressionContainer;
8080
}
8181

82-
public object? VisitJsxIdentifier(JsxIdentifier jsxIdentifier)
82+
public virtual object? VisitJsxIdentifier(JsxIdentifier jsxIdentifier)
8383
{
8484
return jsxIdentifier;
8585
}
8686

87-
public object? VisitJsxMemberExpression(JsxMemberExpression jsxMemberExpression)
87+
public virtual object? VisitJsxMemberExpression(JsxMemberExpression jsxMemberExpression)
8888
{
8989
_visitor.Visit(jsxMemberExpression.Object);
9090
_visitor.Visit(jsxMemberExpression.Property);
9191

9292
return jsxMemberExpression;
9393
}
9494

95-
public object? VisitJsxNamespacedName(JsxNamespacedName jsxNamespacedName)
95+
public virtual object? VisitJsxNamespacedName(JsxNamespacedName jsxNamespacedName)
9696
{
9797
_visitor.Visit(jsxNamespacedName.Name);
9898
_visitor.Visit(jsxNamespacedName.Namespace);
9999

100100
return jsxNamespacedName;
101101
}
102102

103-
public object? VisitJsxOpeningElement(JsxOpeningElement jsxOpeningElement)
103+
public virtual object? VisitJsxOpeningElement(JsxOpeningElement jsxOpeningElement)
104104
{
105105
_visitor.Visit(jsxOpeningElement.Name);
106106
ref readonly var attributes = ref jsxOpeningElement.Attributes;
@@ -112,19 +112,19 @@ private JsxAstVisitor(AstVisitor visitor)
112112
return jsxOpeningElement;
113113
}
114114

115-
public object? VisitJsxOpeningFragment(JsxOpeningFragment jsxOpeningFragment)
115+
public virtual object? VisitJsxOpeningFragment(JsxOpeningFragment jsxOpeningFragment)
116116
{
117117
return jsxOpeningFragment;
118118
}
119119

120-
public object? VisitJsxSpreadAttribute(JsxSpreadAttribute jsxSpreadAttribute)
120+
public virtual object? VisitJsxSpreadAttribute(JsxSpreadAttribute jsxSpreadAttribute)
121121
{
122122
_visitor.Visit(jsxSpreadAttribute.Argument);
123123

124124
return jsxSpreadAttribute;
125125
}
126126

127-
public object? VisitJsxText(JsxText jsxText)
127+
public virtual object? VisitJsxText(JsxText jsxText)
128128
{
129129
return jsxText;
130130
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
using Esprima.Ast.Jsx;
2+
3+
namespace Esprima.Utils.Jsx;
4+
5+
public class JsxAstVisitor<T> : AstVisitor<T>, IJsxAstVisitor<T>
6+
{
7+
public virtual T VisitJsxAttribute(JsxAttribute jsxAttribute)
8+
{
9+
throw UnsupportedNodeType(jsxAttribute.GetType());
10+
}
11+
12+
public virtual T VisitJsxClosingElement(JsxClosingElement jsxClosingElement)
13+
{
14+
throw UnsupportedNodeType(jsxClosingElement.GetType());
15+
}
16+
17+
public virtual T VisitJsxClosingFragment(JsxClosingFragment jsxClosingFragment)
18+
{
19+
throw UnsupportedNodeType(jsxClosingFragment.GetType());
20+
}
21+
22+
public virtual T VisitJsxElement(JsxElement jsxElement)
23+
{
24+
throw UnsupportedNodeType(jsxElement.GetType());
25+
}
26+
27+
public virtual T VisitJsxEmptyExpression(JsxEmptyExpression jsxEmptyExpression)
28+
{
29+
throw UnsupportedNodeType(jsxEmptyExpression.GetType());
30+
}
31+
32+
public virtual T VisitJsxExpressionContainer(JsxExpressionContainer jsxExpressionContainer)
33+
{
34+
throw UnsupportedNodeType(jsxExpressionContainer.GetType());
35+
}
36+
37+
public virtual T VisitJsxIdentifier(JsxIdentifier jsxIdentifier)
38+
{
39+
throw UnsupportedNodeType(jsxIdentifier.GetType());
40+
}
41+
42+
public virtual T VisitJsxMemberExpression(JsxMemberExpression jsxMemberExpression)
43+
{
44+
throw UnsupportedNodeType(jsxMemberExpression.GetType());
45+
}
46+
47+
public virtual T VisitJsxNamespacedName(JsxNamespacedName jsxNamespacedName)
48+
{
49+
throw UnsupportedNodeType(jsxNamespacedName.GetType());
50+
}
51+
52+
public virtual T VisitJsxOpeningElement(JsxOpeningElement jsxOpeningElement)
53+
{
54+
throw UnsupportedNodeType(jsxOpeningElement.GetType());
55+
}
56+
57+
public virtual T VisitJsxOpeningFragment(JsxOpeningFragment jsxOpeningFragment)
58+
{
59+
throw UnsupportedNodeType(jsxOpeningFragment.GetType());
60+
}
61+
62+
public virtual T VisitJsxSpreadAttribute(JsxSpreadAttribute jsxSpreadAttribute)
63+
{
64+
throw UnsupportedNodeType(jsxSpreadAttribute.GetType());
65+
}
66+
67+
public virtual T VisitJsxText(JsxText jsxText)
68+
{
69+
throw UnsupportedNodeType(jsxText.GetType());
70+
}
71+
}

0 commit comments

Comments
 (0)