-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_program.s
199 lines (153 loc) · 3.32 KB
/
test_program.s
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
start to test
opening input file:
open successfully
Token Type: INT VALUE:[int]
Parser 93int detected
int detected
Token Type: INDENTIFIER VALUE:[f]
Parser 114 IDENTIFIER
Token Type: ( VALUE:[(]Token Type: ) VALUE:[)]
Parser 116 Function_Declarator
Token Type: { VALUE:[{]gg
Token Type: INT VALUE:[int]
Parser 93int detected
int detected
Token Type: INDENTIFIER VALUE:[u]
Parser 114 IDENTIFIER
gg
Token Type: INT_CONSTANT VALUE:[0]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ; VALUE:[;]
Parser 209 Unary_expression
Parser 158 Init_Declarator
Token Type: INT VALUE:[int]
Parser 93int detected
int detected
Token Type: INDENTIFIER VALUE:[x]
Parser 114 IDENTIFIER
gg
Token Type: INT_CONSTANT VALUE:[9]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ; VALUE:[;]
Parser 209 Unary_expression
Parser 158 Init_Declarator
Token Type: FOR VALUE:[for]Token Type: ( VALUE:[(]Token Type: INDENTIFIER VALUE:[u]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INT_CONSTANT VALUE:[0]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ; VALUE:[;]
Parser 209 Unary_expression
Parser 186 Assignment
Parser 183 Expression
Parser 314 Expression;
Token Type: INDENTIFIER VALUE:[u]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INT_CONSTANT VALUE:[0]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ; VALUE:[;]
Parser 209 Unary_expression
Parser 285 Smaller Than
done
Parser 183 Expression
Parser 314 Expression;
Token Type: INDENTIFIER VALUE:[u]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INDENTIFIER VALUE:[u]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INT_CONSTANT VALUE:[1]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ) VALUE:[)]
Parser 209 Unary_expression
Parser 240 Addition
Parser 186 Assignment
Parser 183 Expression
Token Type: { VALUE:[{]Token Type: INDENTIFIER VALUE:[x]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INDENTIFIER VALUE:[x]
Parser 226 IDENTIFIER
Parser 213 Primary
Parser 209 Unary_expression
Token Type: INT_CONSTANT VALUE:[1]
Parser 227 INI_CONSTANT
Parser 213 Primary
Token Type: ; VALUE:[;]
Parser 209 Unary_expression
Parser 240 Addition
Parser 186 Assignment
Parser 183 Expression
Parser 314 Expression;
Parser 176 ExpressionStatement
Token Type: } VALUE:[}]
Parser 131 Compound_statement_Statement
compond work
Parser 175 CompoundStatement
Parser 344 FOR(Expression_statement Expression_statement Expression)
Parser 178 IterationStatement
Token Type: } VALUE:[}]
Parser 133 Compound_statement_Declaration_AND_Statement
compond work
Parser 77 Function
lexer pass
after parser
f :
addiu $31, $31, -24
sw $30, 20($31)
move $30, $31
inside Local Var:
2Subcontext: SUBCONTEXT | 16 | 2 | 0
u: INT | 8 | 0 | 1
x: INT | 12 | 1 | 1
inside Local Var Waiting for Declared
li $2 0
sw $2, 8($30)
li $2 9
sw $2, 12($30)
hI
li $2 0
inside is identifier
sw $2, 8($30)
b L_0
L_1:
hI
lw $3 8($30)
li $4 1
nop
add $2, $3, $4
inside is identifier
sw $2, 8($30)
inside Local Var:
inside Local Var Waiting for Declared
hI
lw $3 12($30)
li $4 1
nop
add $2, $3, $4
inside is identifier
sw $2, 12($30)
L_0:
LESS THAMN
lw $3 8($30)
li $4 0
slt 2, $3, $4
nop
move $30, $31
lw $30, 20($31)
addiu $31, $31, 24
jr $31
nop
Generate MIPS complete