Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
QilScopedVisitor.cs
Go to the documentation of this file.
1namespace System.Xml.Xsl.Qil;
2
4{
5 protected virtual void BeginScope(QilNode node)
6 {
7 }
8
9 protected virtual void EndScope(QilNode node)
10 {
11 }
12
13 protected virtual void BeforeVisit(QilNode node)
14 {
15 switch (node.NodeType)
16 {
17 case QilNodeType.QilExpression:
18 {
20 foreach (QilNode globalParameter in qilExpression.GlobalParameterList)
21 {
23 }
24 foreach (QilNode globalVariable in qilExpression.GlobalVariableList)
25 {
27 }
28 {
29 foreach (QilNode function in qilExpression.FunctionList)
30 {
31 BeginScope(function);
32 }
33 break;
34 }
35 }
36 case QilNodeType.Function:
37 {
38 foreach (QilNode argument in ((QilFunction)node).Arguments)
39 {
41 }
42 break;
43 }
44 case QilNodeType.Loop:
45 case QilNodeType.Filter:
46 case QilNodeType.Sort:
47 BeginScope(((QilLoop)node).Variable);
48 break;
49 }
50 }
51
52 protected virtual void AfterVisit(QilNode node)
53 {
54 switch (node.NodeType)
55 {
56 case QilNodeType.QilExpression:
57 {
59 foreach (QilNode function in qilExpression.FunctionList)
60 {
61 EndScope(function);
62 }
63 foreach (QilNode globalVariable in qilExpression.GlobalVariableList)
64 {
66 }
67 {
68 foreach (QilNode globalParameter in qilExpression.GlobalParameterList)
69 {
71 }
72 break;
73 }
74 }
75 case QilNodeType.Function:
76 {
77 foreach (QilNode argument in ((QilFunction)node).Arguments)
78 {
80 }
81 break;
82 }
83 case QilNodeType.Loop:
84 case QilNodeType.Filter:
85 case QilNodeType.Sort:
86 EndScope(((QilLoop)node).Variable);
87 break;
88 }
89 }
90
91 protected override QilNode Visit(QilNode n)
92 {
94 QilNode result = base.Visit(n);
96 return result;
97 }
98}
virtual void AfterVisit(QilNode node)
virtual void BeginScope(QilNode node)
override QilNode Visit(QilNode n)
virtual void BeforeVisit(QilNode node)
virtual void EndScope(QilNode node)