-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstructure.drawio
134 lines (134 loc) · 9.92 KB
/
structure.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<mxfile host="65bd71144e">
<diagram id="IX9gLXWn7A2tthiQK04f" name="Page-1">
<mxGraphModel dx="650" dy="454" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=-0.021;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="6" target="15">
<mxGeometry relative="1" as="geometry">
<mxPoint x="414" y="340" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="3" value="AST" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="2">
<mxGeometry x="-0.0327" y="-1" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="23">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="5" value="语法错误" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="4">
<mxGeometry x="0.2014" y="-2" relative="1" as="geometry">
<mxPoint x="2" y="-2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="6" value="语法分析器" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="339" y="150" width="150" height="105" as="geometry"/>
</mxCell>
<mxCell id="7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="6" source="9" target="6">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="45" y="130"/>
<mxPoint x="-29" y="130"/>
<mxPoint x="-29" y="52"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="33" value="Token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="7">
<mxGeometry x="-0.1615" y="1" relative="1" as="geometry">
<mxPoint x="3" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="9" value="词法分析器" style="whiteSpace=wrap;html=1;" vertex="1" parent="6">
<mxGeometry x="15" y="40" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="15" target="14">
<mxGeometry relative="1" as="geometry">
<mxPoint x="414" y="460" as="sourcePoint"/>
</mxGeometry>
</mxCell>
<mxCell id="11" value="IIterable&lt;PCode&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="10">
<mxGeometry x="-0.1" y="1" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="14" target="17">
<mxGeometry relative="1" as="geometry">
<mxPoint x="414" y="580" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="13" value="执行结果" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="12">
<mxGeometry x="-0.1833" y="1" relative="1" as="geometry">
<mxPoint as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="14" value="解释执行器" style="whiteSpace=wrap;html=1;fontStyle=1;startSize=23;" vertex="1" parent="1">
<mxGeometry x="354" y="455" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="15" value="代码生成器" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="340" y="310" width="150" height="95" as="geometry"/>
</mxCell>
<mxCell id="16" value="语义分析器" style="whiteSpace=wrap;html=1;" vertex="1" parent="15">
<mxGeometry x="14" y="40" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="17" value="输出" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="386.5" y="565" width="55" height="55" as="geometry"/>
</mxCell>
<mxCell id="18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="19" target="6">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="19" value="源程序" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="386" y="60" width="55" height="55" as="geometry"/>
</mxCell>
<mxCell id="20" value="错误管理 &amp; 错误同步" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="560" y="145" width="170" height="290" as="geometry"/>
</mxCell>
<mxCell id="21" value="词法错误<br>同步策略" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="20">
<mxGeometry x="25" y="35" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="22" value="语义分析错误<br>同步策略" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="20">
<mxGeometry x="25" y="195" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="23" value="语法错误<br>同步策略" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="20">
<mxGeometry x="25" y="115" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="24" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="16" target="22">
<mxGeometry relative="1" as="geometry">
<mxPoint x="160" y="95" as="sourcePoint"/>
<mxPoint x="574" y="370" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="25" value="语义错误" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="24">
<mxGeometry x="-0.0126" y="1" relative="1" as="geometry">
<mxPoint x="-9" y="1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="9" target="21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="27" value="词法错误" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="26">
<mxGeometry x="-0.2844" y="1" relative="1" as="geometry">
<mxPoint x="6" y="1" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="28" value="符号表" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="120" y="310" width="150" height="95" as="geometry"/>
</mxCell>
<mxCell id="29" value="CRUD操作" style="whiteSpace=wrap;html=1;" vertex="1" parent="28">
<mxGeometry x="15" y="40" width="120" height="40" as="geometry"/>
</mxCell>
<mxCell id="30" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="29" target="16">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="370" y="405" as="sourcePoint"/>
<mxPoint x="420" y="355" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="31" value="符号检索" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="30">
<mxGeometry x="-0.1255" y="-1" relative="1" as="geometry">
<mxPoint x="2" y="-1" as="offset"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>