rendered paste body .file "lexer.c"
.comm _total_source_line_count, 4, 2
.comm _no_hash_printed_yet, 4, 2
.comm _hash_printed_since_newline, 4, 2
.comm _dont_enter_into_symbol_table, 4, 2
.comm _return_sp_as_variable, 4, 2
.comm _next_token_begins_syntax_line, 4, 2
.comm _last_mapped_line, 4, 2
.comm _token_type, 4, 2
.comm _token_value, 4, 2
.comm _token_text, 4, 2
.comm _token_line_ref, 16, 2
.lcomm _circle_position,4,4
.lcomm _circle,240,32
.lcomm _token_contexts,24,4
.lcomm _lexeme_memory,4,4
.lcomm _lex_p,4,4
.lcomm _current,4,4
.lcomm _lookahead,4,4
.lcomm _lookahead2,4,4
.lcomm _lookahead3,4,4
.lcomm _pipeline_made,4,4
.lcomm _get_next_char,4,4
.lcomm _source_to_analyse,4,4
.lcomm _tokens_put_back,4,4
.section .rdata,"dr"
LC0:
.ascii "{ \0"
LC1:
.ascii "symbol \0"
LC2:
.ascii "literal number %d\0"
LC3:
.ascii "string \"%s\"\0"
LC4:
.ascii "string '%s'\0"
LC5:
.ascii "separator '%s'\0"
LC6:
.ascii "end of file\0"
LC7:
.ascii "statement name '%s'\0"
LC8:
.ascii "object segment marker '%s'\0"
LC9:
.ascii "directive name '%s'\0"
LC10:
.ascii "textual conditional '%s'\0"
LC11:
.ascii "opcode name '%s'\0"
LC12:
.ascii "built-in function name '%s'\0"
LC13:
.ascii "local variable name '%s'\0"
LC14:
.ascii "statement keyword '%s'\0"
LC15:
.ascii "directive keyword '%s'\0"
LC16:
.ascii "'trace' keyword '%s'\0"
LC17:
.ascii "system constant name '%s'\0"
LC18:
.ascii "operator '%s'\0"
LC19:
.ascii "end of expression\0"
LC20:
.ascii "open bracket\0"
LC21:
.ascii "close bracket\0"
LC22:
.ascii "large number: '%s'=%d\0"
LC23:
.ascii "small number: '%s'=%d\0"
LC24:
.ascii "variable '%s'=%d\0"
LC25:
.ascii "dictionary word '%s'\0"
LC26:
.ascii "action name '%s'\0"
.align 4
LC27:
.ascii "** unknown token type %d, text='%s', value=%d **\0"
LC28:
.ascii " }\0"
.text
.globl _describe_token
.def _describe_token; .scl 2; .type 32; .endef
_describe_token:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $LC0, (%esp)
call _printf
movl 16(%ebp), %eax
cmpl $208, %eax
ja L2
movl L29(,%eax,4), %eax
jmp *%eax
.section .rdata,"dr"
.align 4
L29:
.long L3
.long L4
.long L5
.long L6
.long L7
.long L8
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L9
.long L10
.long L11
.long L12
.long L2
.long L13
.long L14
.long L15
.long L16
.long L17
.long L18
.long L19
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L2
.long L20
.long L21
.long L22
.long L23
.long L24
.long L25
.long L26
.long L27
.long L28
.text
L3:
movl $LC1, (%esp)
call _printf
movl 12(%ebp), %eax
movl %eax, (%esp)
call _describe_symbol
jmp L30
L4:
movl 12(%ebp), %eax
movl %eax, 4(%esp)
movl $LC2, (%esp)
call _printf
jmp L30
L5:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC3, (%esp)
call _printf
jmp L30
L6:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC4, (%esp)
call _printf
jmp L30
L7:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC5, (%esp)
call _printf
jmp L30
L8:
movl $LC6, (%esp)
call _printf
jmp L30
L9:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC7, (%esp)
call _printf
jmp L30
L10:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC8, (%esp)
call _printf
jmp L30
L11:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC9, (%esp)
call _printf
jmp L30
L12:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC10, (%esp)
call _printf
jmp L30
L15:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC11, (%esp)
call _printf
jmp L30
L13:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC12, (%esp)
call _printf
jmp L30
L14:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC13, (%esp)
call _printf
jmp L30
L16:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC14, (%esp)
call _printf
jmp L30
L17:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC15, (%esp)
call _printf
jmp L30
L18:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC16, (%esp)
call _printf
jmp L30
L19:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC17, (%esp)
call _printf
jmp L30
L20:
movl 12(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
addl $_operators+40, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
movl $LC18, (%esp)
call _printf
jmp L30
L21:
movl $LC19, (%esp)
call _printf
jmp L30
L22:
movl $LC20, (%esp)
call _printf
jmp L30
L23:
movl $LC21, (%esp)
call _printf
jmp L30
L24:
movl 12(%ebp), %edx
movl 8(%ebp), %eax
movl %edx, 8(%esp)
movl %eax, 4(%esp)
movl $LC22, (%esp)
call _printf
jmp L30
L25:
movl 12(%ebp), %edx
movl 8(%ebp), %eax
movl %edx, 8(%esp)
movl %eax, 4(%esp)
movl $LC23, (%esp)
call _printf
jmp L30
L26:
movl 12(%ebp), %edx
movl 8(%ebp), %eax
movl %edx, 8(%esp)
movl %eax, 4(%esp)
movl $LC24, (%esp)
call _printf
jmp L30
L27:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC25, (%esp)
call _printf
jmp L30
L28:
movl 8(%ebp), %eax
movl %eax, 4(%esp)
movl $LC26, (%esp)
call _printf
jmp L30
L2:
movl 12(%ebp), %ecx
movl 8(%ebp), %edx
movl 16(%ebp), %eax
movl %ecx, 12(%esp)
movl %edx, 8(%esp)
movl %eax, 4(%esp)
movl $LC27, (%esp)
call _printf
L30:
movl $LC28, (%esp)
call _printf
leave
ret
.globl _opcode_names
.section .rdata,"dr"
LC29:
.ascii "\0"
.data
.align 32
_opcode_names:
.long LC29
.space 476
.long 107
.long 0
.long -1
.section .rdata,"dr"
LC30:
.ascii "je\0"
LC31:
.ascii "jl\0"
LC32:
.ascii "jg\0"
LC33:
.ascii "dec_chk\0"
LC34:
.ascii "inc_chk\0"
LC35:
.ascii "jin\0"
LC36:
.ascii "test\0"
LC37:
.ascii "or\0"
LC38:
.ascii "and\0"
LC39:
.ascii "test_attr\0"
LC40:
.ascii "set_attr\0"
LC41:
.ascii "clear_attr\0"
LC42:
.ascii "store\0"
LC43:
.ascii "insert_obj\0"
LC44:
.ascii "loadw\0"
LC45:
.ascii "loadb\0"
LC46:
.ascii "get_prop\0"
LC47:
.ascii "get_prop_addr\0"
LC48:
.ascii "get_next_prop\0"
LC49:
.ascii "add\0"
LC50:
.ascii "sub\0"
LC51:
.ascii "mul\0"
LC52:
.ascii "div\0"
LC53:
.ascii "mod\0"
LC54:
.ascii "call\0"
LC55:
.ascii "storew\0"
LC56:
.ascii "storeb\0"
LC57:
.ascii "put_prop\0"
LC58:
.ascii "sread\0"
LC59:
.ascii "print_char\0"
LC60:
.ascii "print_num\0"
LC61:
.ascii "random\0"
LC62:
.ascii "push\0"
LC63:
.ascii "pull\0"
LC64:
.ascii "split_window\0"
LC65:
.ascii "set_window\0"
LC66:
.ascii "output_stream\0"
LC67:
.ascii "input_stream\0"
LC68:
.ascii "sound_effect\0"
LC69:
.ascii "jz\0"
LC70:
.ascii "get_sibling\0"
LC71:
.ascii "get_child\0"
LC72:
.ascii "get_parent\0"
LC73:
.ascii "get_prop_len\0"
LC74:
.ascii "inc\0"
LC75:
.ascii "dec\0"
LC76:
.ascii "print_addr\0"
LC77:
.ascii "remove_obj\0"
LC78:
.ascii "print_obj\0"
LC79:
.ascii "ret\0"
LC80:
.ascii "jump\0"
LC81:
.ascii "print_paddr\0"
LC82:
.ascii "load\0"
LC83:
.ascii "not\0"
LC84:
.ascii "rtrue\0"
LC85:
.ascii "rfalse\0"
LC86:
.ascii "print\0"
LC87:
.ascii "print_ret\0"
LC88:
.ascii "nop\0"
LC89:
.ascii "save\0"
LC90:
.ascii "restore\0"
LC91:
.ascii "restart\0"
LC92:
.ascii "ret_popped\0"
LC93:
.ascii "pop\0"
LC94:
.ascii "quit\0"
LC95:
.ascii "new_line\0"
LC96:
.ascii "show_status\0"
LC97:
.ascii "verify\0"
LC98:
.ascii "call_2s\0"
LC99:
.ascii "call_vs\0"
LC100:
.ascii "aread\0"
LC101:
.ascii "call_vs2\0"
LC102:
.ascii "erase_window\0"
LC103:
.ascii "erase_line\0"
LC104:
.ascii "set_cursor\0"
LC105:
.ascii "get_cursor\0"
LC106:
.ascii "set_text_style\0"
LC107:
.ascii "buffer_mode\0"
LC108:
.ascii "read_char\0"
LC109:
.ascii "scan_table\0"
LC110:
.ascii "call_1s\0"
LC111:
.ascii "call_2n\0"
LC112:
.ascii "set_colour\0"
LC113:
.ascii "throw\0"
LC114:
.ascii "call_vn\0"
LC115:
.ascii "call_vn2\0"
LC116:
.ascii "tokenise\0"
LC117:
.ascii "encode_text\0"
LC118:
.ascii "copy_table\0"
LC119:
.ascii "print_table\0"
LC120:
.ascii "check_arg_count\0"
LC121:
.ascii "call_1n\0"
LC122:
.ascii "catch\0"
LC123:
.ascii "piracy\0"
LC124:
.ascii "log_shift\0"
LC125:
.ascii "art_shift\0"
LC126:
.ascii "set_font\0"
LC127:
.ascii "save_undo\0"
LC128:
.ascii "restore_undo\0"
LC129:
.ascii "draw_picture\0"
LC130:
.ascii "picture_data\0"
LC131:
.ascii "erase_picture\0"
LC132:
.ascii "set_margins\0"
LC133:
.ascii "move_window\0"
LC134:
.ascii "window_size\0"
LC135:
.ascii "window_style\0"
LC136:
.ascii "get_wind_prop\0"
LC137:
.ascii "scroll_window\0"
LC138:
.ascii "pop_stack\0"
LC139:
.ascii "read_mouse\0"
LC140:
.ascii "mouse_window\0"
LC141:
.ascii "push_stack\0"
LC142:
.ascii "put_wind_prop\0"
LC143:
.ascii "print_form\0"
LC144:
.ascii "make_menu\0"
LC145:
.ascii "picture_table\0"
LC146:
.ascii "print_unicode\0"
LC147:
.ascii "check_unicode\0"
.data
.align 32
_opcode_list_z:
.long LC30
.long LC31
.long LC32
.long LC33
.long LC34
.long LC35
.long LC36
.long LC37
.long LC38
.long LC39
.long LC40
.long LC41
.long LC42
.long LC43
.long LC44
.long LC45
.long LC46
.long LC47
.long LC48
.long LC49
.long LC50
.long LC51
.long LC52
.long LC53
.long LC54
.long LC55
.long LC56
.long LC57
.long LC58
.long LC59
.long LC60
.long LC61
.long LC62
.long LC63
.long LC64
.long LC65
.long LC66
.long LC67
.long LC68
.long LC69
.long LC70
.long LC71
.long LC72
.long LC73
.long LC74
.long LC75
.long LC76
.long LC77
.long LC78
.long LC79
.long LC80
.long LC81
.long LC82
.long LC83
.long LC84
.long LC85
.long LC86
.long LC87
.long LC88
.long LC89
.long LC90
.long LC91
.long LC92
.long LC93
.long LC94
.long LC95
.long LC96
.long LC97
.long LC98
.long LC99
.long LC100
.long LC101
.long LC102
.long LC103
.long LC104
.long LC105
.long LC106
.long LC107
.long LC108
.long LC109
.long LC110
.long LC111
.long LC112
.long LC113
.long LC114
.long LC115
.long LC116
.long LC117
.long LC118
.long LC119
.long LC120
.long LC121
.long LC122
.long LC123
.long LC124
.long LC125
.long LC126
.long LC127
.long LC128
.long LC129
.long LC130
.long LC131
.long LC132
.long LC133
.long LC134
.long LC135
.long LC136
.long LC137
.long LC138
.long LC139
.long LC140
.long LC141
.long LC142
.long LC143
.long LC144
.long LC145
.long LC146
.long LC147
.long LC29
.section .rdata,"dr"
LC148:
.ascii "neg\0"
LC149:
.ascii "bitand\0"
LC150:
.ascii "bitor\0"
LC151:
.ascii "bitxor\0"
LC152:
.ascii "bitnot\0"
LC153:
.ascii "shiftl\0"
LC154:
.ascii "sshiftr\0"
LC155:
.ascii "ushiftr\0"
LC156:
.ascii "jnz\0"
LC157:
.ascii "jeq\0"
LC158:
.ascii "jne\0"
LC159:
.ascii "jlt\0"
LC160:
.ascii "jge\0"
LC161:
.ascii "jgt\0"
LC162:
.ascii "jle\0"
LC163:
.ascii "jltu\0"
LC164:
.ascii "jgeu\0"
LC165:
.ascii "jgtu\0"
LC166:
.ascii "jleu\0"
LC167:
.ascii "return\0"
LC168:
.ascii "tailcall\0"
LC169:
.ascii "copy\0"
LC170:
.ascii "copys\0"
LC171:
.ascii "copyb\0"
LC172:
.ascii "sexs\0"
LC173:
.ascii "sexb\0"
LC174:
.ascii "aload\0"
LC175:
.ascii "aloads\0"
LC176:
.ascii "aloadb\0"
LC177:
.ascii "aloadbit\0"
LC178:
.ascii "astore\0"
LC179:
.ascii "astores\0"
LC180:
.ascii "astoreb\0"
LC181:
.ascii "astorebit\0"
LC182:
.ascii "stkcount\0"
LC183:
.ascii "stkpeek\0"
LC184:
.ascii "stkswap\0"
LC185:
.ascii "stkroll\0"
LC186:
.ascii "stkcopy\0"
LC187:
.ascii "streamchar\0"
LC188:
.ascii "streamnum\0"
LC189:
.ascii "streamstr\0"
LC190:
.ascii "gestalt\0"
LC191:
.ascii "debugtrap\0"
LC192:
.ascii "getmemsize\0"
LC193:
.ascii "setmemsize\0"
LC194:
.ascii "jumpabs\0"
LC195:
.ascii "setrandom\0"
LC196:
.ascii "saveundo\0"
LC197:
.ascii "restoreundo\0"
LC198:
.ascii "protect\0"
LC199:
.ascii "glk\0"
LC200:
.ascii "getstringtbl\0"
LC201:
.ascii "setstringtbl\0"
LC202:
.ascii "getiosys\0"
LC203:
.ascii "setiosys\0"
LC204:
.ascii "linearsearch\0"
LC205:
.ascii "binarysearch\0"
LC206:
.ascii "linkedsearch\0"
LC207:
.ascii "callf\0"
LC208:
.ascii "callfi\0"
LC209:
.ascii "callfii\0"
LC210:
.ascii "callfiii\0"
LC211:
.ascii "streamunichar\0"
LC212:
.ascii "mzero\0"
LC213:
.ascii "mcopy\0"
LC214:
.ascii "malloc\0"
LC215:
.ascii "mfree\0"
LC216:
.ascii "accelfunc\0"
LC217:
.ascii "accelparam\0"
LC218:
.ascii "numtof\0"
LC219:
.ascii "ftonumz\0"
LC220:
.ascii "ftonumn\0"
LC221:
.ascii "ceil\0"
LC222:
.ascii "floor\0"
LC223:
.ascii "fadd\0"
LC224:
.ascii "fsub\0"
LC225:
.ascii "fmul\0"
LC226:
.ascii "fdiv\0"
LC227:
.ascii "fmod\0"
LC228:
.ascii "sqrt\0"
LC229:
.ascii "exp\0"
LC230:
.ascii "log\0"
LC231:
.ascii "pow\0"
LC232:
.ascii "sin\0"
LC233:
.ascii "cos\0"
LC234:
.ascii "tan\0"
LC235:
.ascii "asin\0"
LC236:
.ascii "acos\0"
LC237:
.ascii "atan\0"
LC238:
.ascii "atan2\0"
LC239:
.ascii "jfeq\0"
LC240:
.ascii "jfne\0"
LC241:
.ascii "jflt\0"
LC242:
.ascii "jfle\0"
LC243:
.ascii "jfgt\0"
LC244:
.ascii "jfge\0"
LC245:
.ascii "jisnan\0"
LC246:
.ascii "jisinf\0"
.data
.align 32
_opcode_list_g:
.long LC88
.long LC49
.long LC50
.long LC51
.long LC52
.long LC53
.long LC148
.long LC149
.long LC150
.long LC151
.long LC152
.long LC153
.long LC154
.long LC155
.long LC80
.long LC69
.long LC156
.long LC157
.long LC158
.long LC159
.long LC160
.long LC161
.long LC162
.long LC163
.long LC164
.long LC165
.long LC166
.long LC54
.long LC167
.long LC122
.long LC113
.long LC168
.long LC169
.long LC170
.long LC171
.long LC172
.long LC173
.long LC174
.long LC175
.long LC176
.long LC177
.long LC178
.long LC179
.long LC180
.long LC181
.long LC182
.long LC183
.long LC184
.long LC185
.long LC186
.long LC187
.long LC188
.long LC189
.long LC190
.long LC191
.long LC192
.long LC193
.long LC194
.long LC61
.long LC195
.long LC94
.long LC97
.long LC91
.long LC89
.long LC90
.long LC196
.long LC197
.long LC198
.long LC199
.long LC200
.long LC201
.long LC202
.long LC203
.long LC204
.long LC205
.long LC206
.long LC207
.long LC208
.long LC209
.long LC210
.long LC211
.long LC212
.long LC213
.long LC214
.long LC215
.long LC216
.long LC217
.long LC218
.long LC219
.long LC220
.long LC221
.long LC222
.long LC223
.long LC224
.long LC225
.long LC226
.long LC227
.long LC228
.long LC229
.long LC230
.long LC231
.long LC232
.long LC233
.long LC234
.long LC235
.long LC236
.long LC237
.long LC238
.long LC239
.long LC240
.long LC241
.long LC242
.long LC243
.long LC244
.long LC245
.long LC246
.long LC29
.globl _opcode_macros
.align 32
_opcode_macros:
.long LC29
.space 476
.long 112
.long 0
.long -1
.align 4
_opmacro_list_z:
.long LC29
.align 4
_opmacro_list_g:
.long LC63
.long LC62
.long LC29
.globl _directives
.section .rdata,"dr"
LC247:
.ascii "abbreviate\0"
LC248:
.ascii "array\0"
LC249:
.ascii "attribute\0"
LC250:
.ascii "class\0"
LC251:
.ascii "constant\0"
LC252:
.ascii "default\0"
LC253:
.ascii "dictionary\0"
LC254:
.ascii "end\0"
LC255:
.ascii "endif\0"
LC256:
.ascii "extend\0"
LC257:
.ascii "fake_action\0"
LC258:
.ascii "global\0"
LC259:
.ascii "ifdef\0"
LC260:
.ascii "ifndef\0"
LC261:
.ascii "ifnot\0"
LC262:
.ascii "ifv3\0"
LC263:
.ascii "ifv5\0"
LC264:
.ascii "iftrue\0"
LC265:
.ascii "iffalse\0"
LC266:
.ascii "import\0"
LC267:
.ascii "include\0"
LC268:
.ascii "link\0"
LC269:
.ascii "lowstring\0"
LC270:
.ascii "message\0"
LC271:
.ascii "nearby\0"
LC272:
.ascii "object\0"
LC273:
.ascii "property\0"
LC274:
.ascii "release\0"
LC275:
.ascii "replace\0"
LC276:
.ascii "serial\0"
LC277:
.ascii "switches\0"
LC278:
.ascii "statusline\0"
LC279:
.ascii "stub\0"
LC280:
.ascii "system_file\0"
LC281:
.ascii "trace\0"
LC282:
.ascii "verb\0"
LC283:
.ascii "version\0"
LC284:
.ascii "zcharacter\0"
.data
.align 32
_directives:
.long LC247
.long LC248
.long LC249
.long LC250
.long LC251
.long LC252
.long LC253
.long LC254
.long LC255
.long LC256
.long LC257
.long LC258
.long LC259
.long LC260
.long LC261
.long LC262
.long LC263
.long LC264
.long LC265
.long LC266
.long LC267
.long LC268
.long LC269
.long LC270
.long LC271
.long LC272
.long LC273
.long LC274
.long LC275
.long LC276
.long LC277
.long LC278
.long LC279
.long LC280
.long LC281
.long LC282
.long LC283
.long LC284
.long LC29
.space 324
.long 102
.long 0
.long 0
.globl _trace_keywords
.section .rdata,"dr"
LC285:
.ascii "symbols\0"
LC286:
.ascii "objects\0"
LC287:
.ascii "verbs\0"
LC288:
.ascii "assembly\0"
LC289:
.ascii "expressions\0"
LC290:
.ascii "lines\0"
LC291:
.ascii "tokens\0"
LC292:
.ascii "linker\0"
LC293:
.ascii "on\0"
LC294:
.ascii "off\0"
.data
.align 32
_trace_keywords:
.long LC253
.long LC285
.long LC286
.long LC287
.long LC288
.long LC289
.long LC290
.long LC291
.long LC292
.long LC293
.long LC294
.long LC29
.space 432
.long 110
.long 0
.long -1
.globl _segment_markers
.section .rdata,"dr"
LC295:
.ascii "has\0"
LC296:
.ascii "private\0"
LC297:
.ascii "with\0"
.data
.align 32
_segment_markers:
.long LC250
.long LC295
.long LC296
.long LC297
.long LC29
.space 460
.long 101
.long 0
.long -1
.globl _directive_keywords
.section .rdata,"dr"
LC298:
.ascii "alias\0"
LC299:
.ascii "long\0"
LC300:
.ascii "additive\0"
LC301:
.ascii "score\0"
LC302:
.ascii "time\0"
LC303:
.ascii "noun\0"
LC304:
.ascii "held\0"
LC305:
.ascii "multi\0"
LC306:
.ascii "multiheld\0"
LC307:
.ascii "multiexcept\0"
LC308:
.ascii "multiinside\0"
LC309:
.ascii "creature\0"
LC310:
.ascii "special\0"
LC311:
.ascii "number\0"
LC312:
.ascii "scope\0"
LC313:
.ascii "topic\0"
LC314:
.ascii "reverse\0"
LC315:
.ascii "meta\0"
LC316:
.ascii "only\0"
LC317:
.ascii "first\0"
LC318:
.ascii "last\0"
LC319:
.ascii "string\0"
LC320:
.ascii "table\0"
LC321:
.ascii "buffer\0"
LC322:
.ascii "data\0"
LC323:
.ascii "initial\0"
LC324:
.ascii "initstr\0"
LC325:
.ascii "error\0"
LC326:
.ascii "fatalerror\0"
LC327:
.ascii "warning\0"
LC328:
.ascii "terminating\0"
.data
.align 32
_directive_keywords:
.long LC298
.long LC299
.long LC300
.long LC301
.long LC302
.long LC303
.long LC304
.long LC305
.long LC306
.long LC307
.long LC308
.long LC309
.long LC310
.long LC311
.long LC312
.long LC313
.long LC314
.long LC315
.long LC316
.long LC275
.long LC317
.long LC318
.long LC319
.long LC320
.long LC321
.long LC322
.long LC323
.long LC324
.long LC297
.long LC296
.long LC295
.long LC250
.long LC325
.long LC326
.long LC327
.long LC328
.long LC29
.space 332
.long 109
.long 0
.long -1
.globl _misc_keywords
.section .rdata,"dr"
LC329:
.ascii "char\0"
LC330:
.ascii "name\0"
LC331:
.ascii "the\0"
LC332:
.ascii "a\0"
LC333:
.ascii "an\0"
LC334:
.ascii "The\0"
LC335:
.ascii "roman\0"
LC336:
.ascii "bold\0"
LC337:
.ascii "underline\0"
LC338:
.ascii "fixed\0"
LC339:
.ascii "to\0"
LC340:
.ascii "address\0"
LC341:
.ascii "near\0"
LC342:
.ascii "from\0"
LC343:
.ascii "A\0"
.data
.align 32
_misc_keywords:
.long LC329
.long LC330
.long LC331
.long LC332
.long LC333
.long LC334
.long LC311
.long LC335
.long LC314
.long LC336
.long LC337
.long LC338
.long LC293
.long LC294
.long LC339
.long LC340
.long LC319
.long LC272
.long LC341
.long LC342
.long LC273
.long LC343
.long LC29
.space 388
.long 108
.long 0
.long -1
.globl _statements
.section .rdata,"dr"
LC344:
.ascii "box\0"
LC345:
.ascii "break\0"
LC346:
.ascii "continue\0"
LC347:
.ascii "do\0"
LC348:
.ascii "else\0"
LC349:
.ascii "font\0"
LC350:
.ascii "for\0"
LC351:
.ascii "give\0"
LC352:
.ascii "if\0"
LC353:
.ascii "inversion\0"
LC354:
.ascii "move\0"
LC355:
.ascii "objectloop\0"
LC356:
.ascii "read\0"
LC357:
.ascii "remove\0"
LC358:
.ascii "spaces\0"
LC359:
.ascii "style\0"
LC360:
.ascii "switch\0"
LC361:
.ascii "until\0"
LC362:
.ascii "while\0"
.data
.align 32
_statements:
.long LC344
.long LC345
.long LC346
.long LC252
.long LC347
.long LC348
.long LC349
.long LC350
.long LC351
.long LC352
.long LC353
.long LC80
.long LC354
.long LC95
.long LC355
.long LC86
.long LC87
.long LC94
.long LC356
.long LC357
.long LC90
.long LC167
.long LC85
.long LC84
.long LC89
.long LC358
.long LC319
.long LC359
.long LC360
.long LC361
.long LC362
.long LC29
.space 352
.long 100
.long 0
.long -1
.globl _conditions
.section .rdata,"dr"
LC363:
.ascii "hasnt\0"
LC364:
.ascii "in\0"
LC365:
.ascii "notin\0"
LC366:
.ascii "ofclass\0"
LC367:
.ascii "provides\0"
.data
.align 32
_conditions:
.long LC295
.long LC363
.long LC364
.long LC365
.long LC366
.long LC37
.long LC367
.long LC29
.space 448
.long 103
.long 0
.long -1
.globl _system_functions
.section .rdata,"dr"
LC368:
.ascii "child\0"
LC369:
.ascii "children\0"
LC370:
.ascii "elder\0"
LC371:
.ascii "eldest\0"
LC372:
.ascii "indirect\0"
LC373:
.ascii "parent\0"
LC374:
.ascii "sibling\0"
LC375:
.ascii "younger\0"
LC376:
.ascii "youngest\0"
LC377:
.ascii "metaclass\0"
.data
.align 32
_system_functions:
.long LC368
.long LC369
.long LC370
.long LC371
.long LC372
.long LC373
.long LC61
.long LC374
.long LC375
.long LC376
.long LC377
.long LC199
.long LC29
.space 428
.long 105
.long 0
.long -1
.globl _system_constants
.section .rdata,"dr"
LC378:
.ascii "adjectives_table\0"
LC379:
.ascii "actions_table\0"
LC380:
.ascii "classes_table\0"
LC381:
.ascii "identifiers_table\0"
LC382:
.ascii "preactions_table\0"
LC383:
.ascii "version_number\0"
LC384:
.ascii "largest_object\0"
LC385:
.ascii "strings_offset\0"
LC386:
.ascii "code_offset\0"
LC387:
.ascii "dict_par1\0"
LC388:
.ascii "dict_par2\0"
LC389:
.ascii "dict_par3\0"
LC390:
.ascii "actual_largest_object\0"
LC391:
.ascii "static_memory_offset\0"
LC392:
.ascii "array_names_offset\0"
LC393:
.ascii "readable_memory_offset\0"
LC394:
.ascii "cpv__start\0"
LC395:
.ascii "cpv__end\0"
LC396:
.ascii "ipv__start\0"
LC397:
.ascii "ipv__end\0"
LC398:
.ascii "array__start\0"
LC399:
.ascii "array__end\0"
LC400:
.ascii "lowest_attribute_number\0"
LC401:
.ascii "highest_attribute_number\0"
LC402:
.ascii "attribute_names_array\0"
LC403:
.ascii "lowest_property_number\0"
LC404:
.ascii "highest_property_number\0"
LC405:
.ascii "property_names_array\0"
LC406:
.ascii "lowest_action_number\0"
LC407:
.ascii "highest_action_number\0"
LC408:
.ascii "action_names_array\0"
LC409:
.ascii "lowest_fake_action_number\0"
LC410:
.ascii "highest_fake_action_number\0"
LC411:
.ascii "fake_action_names_array\0"
LC412:
.ascii "lowest_routine_number\0"
LC413:
.ascii "highest_routine_number\0"
LC414:
.ascii "routines_array\0"
LC415:
.ascii "routine_names_array\0"
LC416:
.ascii "routine_flags_array\0"
LC417:
.ascii "lowest_global_number\0"
LC418:
.ascii "highest_global_number\0"
LC419:
.ascii "globals_array\0"
LC420:
.ascii "global_names_array\0"
LC421:
.ascii "global_flags_array\0"
LC422:
.ascii "lowest_array_number\0"
LC423:
.ascii "highest_array_number\0"
LC424:
.ascii "arrays_array\0"
LC425:
.ascii "array_names_array\0"
LC426:
.ascii "array_flags_array\0"
LC427:
.ascii "lowest_constant_number\0"
LC428:
.ascii "highest_constant_number\0"
LC429:
.ascii "constants_array\0"
LC430:
.ascii "constant_names_array\0"
LC431:
.ascii "lowest_class_number\0"
LC432:
.ascii "highest_class_number\0"
LC433:
.ascii "class_objects_array\0"
LC434:
.ascii "lowest_object_number\0"
LC435:
.ascii "highest_object_number\0"
LC436:
.ascii "oddeven_packing\0"
LC437:
.ascii "grammar_table\0"
LC438:
.ascii "dictionary_table\0"
LC439:
.ascii "dynam_string_table\0"
.data
.align 32
_system_constants:
.long LC378
.long LC379
.long LC380
.long LC381
.long LC382
.long LC383
.long LC384
.long LC385
.long LC386
.long LC387
.long LC388
.long LC389
.long LC390
.long LC391
.long LC392
.long LC393
.long LC394
.long LC395
.long LC396
.long LC397
.long LC398
.long LC399
.long LC400
.long LC401
.long LC402
.long LC403
.long LC404
.long LC405
.long LC406
.long LC407
.long LC408
.long LC409
.long LC410
.long LC411
.long LC412
.long LC413
.long LC414
.long LC415
.long LC416
.long LC417
.long LC418
.long LC419
.long LC420
.long LC421
.long LC422
.long LC423
.long LC424
.long LC425
.long LC426
.long LC427
.long LC428
.long LC429
.long LC430
.long LC431
.long LC432
.long LC433
.long LC434
.long LC435
.long LC436
.long LC437
.long LC438
.long LC439
.long LC29
.space 228
.long 111
.long 0
.long -1
.globl _keyword_groups
.align 32
_keyword_groups:
.long 0
.long _opcode_names
.long _directives
.long _trace_keywords
.long _segment_markers
.long _directive_keywords
.long _misc_keywords
.long _statements
.long _conditions
.long _system_functions
.long _system_constants
.long _opcode_macros
.globl _local_variables
.align 32
_local_variables:
.long LC29
.space 476
.long 106
.long 0
.long 0
.text
.def _lexical_context; .scl 3; .type 32; .endef
_lexical_context:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, -4(%ebp)
movl _opcode_names+484, %eax
testl %eax, %eax
je L32
orl $1, -4(%ebp)
L32:
movl _directives+484, %eax
testl %eax, %eax
je L33
orl $2, -4(%ebp)
L33:
movl _trace_keywords+484, %eax
testl %eax, %eax
je L34
orl $4, -4(%ebp)
L34:
movl _segment_markers+484, %eax
testl %eax, %eax
je L35
orl $8, -4(%ebp)
L35:
movl _directive_keywords+484, %eax
testl %eax, %eax
je L36
orl $16, -4(%ebp)
L36:
movl _misc_keywords+484, %eax
testl %eax, %eax
je L37
orl $32, -4(%ebp)
L37:
movl _statements+484, %eax
testl %eax, %eax
je L38
orl $64, -4(%ebp)
L38:
movl _conditions+484, %eax
testl %eax, %eax
je L39
orl $128, -4(%ebp)
L39:
movl _system_functions+484, %eax
testl %eax, %eax
je L40
orl $256, -4(%ebp)
L40:
movl _system_constants+484, %eax
testl %eax, %eax
je L41
orl $512, -4(%ebp)
L41:
movl _local_variables+484, %eax
testl %eax, %eax
je L42
orl $1024, -4(%ebp)
L42:
movl _return_sp_as_variable, %eax
testl %eax, %eax
je L43
orl $2048, -4(%ebp)
L43:
movl -4(%ebp), %eax
leave
ret
.section .rdata,"dr"
LC440:
.ascii "OPC \0"
LC441:
.ascii "DIR \0"
LC442:
.ascii "TK \0"
LC443:
.ascii "SEG \0"
LC444:
.ascii "DK \0"
LC445:
.ascii "MK \0"
LC446:
.ascii "STA \0"
LC447:
.ascii "CND \0"
LC448:
.ascii "SFUN \0"
LC449:
.ascii "SCON \0"
LC450:
.ascii "LV \0"
LC451:
.ascii "sp \0"
.text
.def _print_context; .scl 3; .type 32; .endef
_print_context:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl 8(%ebp), %eax
andl $1, %eax
testb %al, %al
je L45
movl $LC440, (%esp)
call _printf
L45:
movl 8(%ebp), %eax
andl $2, %eax
testl %eax, %eax
je L46
movl $LC441, (%esp)
call _printf
L46:
movl 8(%ebp), %eax
andl $4, %eax
testl %eax, %eax
je L47
movl $LC442, (%esp)
call _printf
L47:
movl 8(%ebp), %eax
andl $8, %eax
testl %eax, %eax
je L48
movl $LC443, (%esp)
call _printf
L48:
movl 8(%ebp), %eax
andl $16, %eax
testl %eax, %eax
je L49
movl $LC444, (%esp)
call _printf
L49:
movl 8(%ebp), %eax
andl $32, %eax
testl %eax, %eax
je L50
movl $LC445, (%esp)
call _printf
L50:
movl 8(%ebp), %eax
andl $64, %eax
testl %eax, %eax
je L51
movl $LC446, (%esp)
call _printf
L51:
movl 8(%ebp), %eax
andl $128, %eax
testl %eax, %eax
je L52
movl $LC447, (%esp)
call _printf
L52:
movl 8(%ebp), %eax
andl $256, %eax
testl %eax, %eax
je L53
movl $LC448, (%esp)
call _printf
L53:
movl 8(%ebp), %eax
andl $512, %eax
testl %eax, %eax
je L54
movl $LC449, (%esp)
call _printf
L54:
movl 8(%ebp), %eax
andl $1024, %eax
testl %eax, %eax
je L55
movl $LC450, (%esp)
call _printf
L55:
movl 8(%ebp), %eax
andl $2048, %eax
testl %eax, %eax
je L44
movl $LC451, (%esp)
call _printf
L44:
leave
ret
.lcomm _keywords_hash_table,4,4
.lcomm _keywords_hash_ends_table,4,4
.lcomm _keywords_data_table,4,4
.lcomm _local_variable_hash_table,4,4
.lcomm _local_variable_hash_codes,4,4
.comm _local_variable_texts, 4, 2
.lcomm _local_variable_text_table,4,4
.lcomm _one_letter_locals,128,32
.def _make_keywords_tables; .scl 3; .type 32; .endef
_make_keywords_tables:
pushl %ebp
movl %esp, %ebp
subl $56, %esp
movl $0, -20(%ebp)
movl _glulx_mode, %eax
testl %eax, %eax
jne L58
movl $_opcode_list_z, -24(%ebp)
movl $_opmacro_list_z, -28(%ebp)
jmp L59
L58:
movl $_opcode_list_g, -24(%ebp)
movl $_opmacro_list_g, -28(%ebp)
L59:
movl $0, -16(%ebp)
jmp L60
L61:
movl -16(%ebp), %eax
sall $2, %eax
addl -24(%ebp), %eax
movl (%eax), %edx
movl -16(%ebp), %eax
movl %edx, _opcode_names(,%eax,4)
incl -16(%ebp)
L60:
movl -16(%ebp), %eax
sall $2, %eax
addl -24(%ebp), %eax
movl (%eax), %eax
movb (%eax), %al
testb %al, %al
jne L61
movl -16(%ebp), %eax
movl $LC29, _opcode_names(,%eax,4)
movl $0, -16(%ebp)
jmp L62
L63:
movl -16(%ebp), %eax
sall $2, %eax
addl -28(%ebp), %eax
movl (%eax), %edx
movl -16(%ebp), %eax
movl %edx, _opcode_macros(,%eax,4)
incl -16(%ebp)
L62:
movl -16(%ebp), %eax
sall $2, %eax
addl -28(%ebp), %eax
movl (%eax), %eax
movb (%eax), %al
testb %al, %al
jne L63
movl -16(%ebp), %eax
movl $LC29, _opcode_macros(,%eax,4)
movl $0, -12(%ebp)
jmp L64
L65:
movl _keywords_hash_table, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl $-1, (%eax)
movl _keywords_hash_ends_table, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl $-1, (%eax)
incl -12(%ebp)
L64:
movl _HASH_TAB_SIZE, %eax
cmpl %eax, -12(%ebp)
jl L65
movl $1, -12(%ebp)
jmp L66
L71:
movl -12(%ebp), %eax
movl _keyword_groups(,%eax,4), %eax
movl %eax, -32(%ebp)
movl $0, -16(%ebp)
jmp L67
L70:
movl -32(%ebp), %eax
movl -16(%ebp), %edx
movl (%eax,%edx,4), %eax
movl %eax, (%esp)
call _hash_code_from_string
movl %eax, -36(%ebp)
movl _keywords_hash_table, %eax
movl -36(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
cmpl $-1, %eax
jne L68
movl _keywords_hash_table, %eax
movl -36(%ebp), %edx
sall $2, %edx
leal (%eax,%edx), %edx
movl -20(%ebp), %eax
movl %eax, (%edx)
jmp L69
L68:
movl _keywords_data_table, %ecx
movl _keywords_hash_ends_table, %eax
movl -36(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %edx
movl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
addl $8, %eax
leal (%ecx,%eax), %edx
movl -20(%ebp), %eax
movl %eax, (%edx)
L69:
movl _keywords_hash_ends_table, %eax
movl -36(%ebp), %edx
sall $2, %edx
leal (%eax,%edx), %edx
movl -20(%ebp), %eax
movl %eax, (%edx)
movl _keywords_data_table, %ecx
movl -20(%ebp), %edx
movl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
leal (%ecx,%eax), %edx
movl -12(%ebp), %eax
movl %eax, (%edx)
movl _keywords_data_table, %ecx
movl -20(%ebp), %edx
movl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
addl $4, %eax
leal (%ecx,%eax), %edx
movl -16(%ebp), %eax
movl %eax, (%edx)
movl _keywords_data_table, %ecx
movl -20(%ebp), %edx
movl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
addl $8, %eax
leal (%ecx,%eax), %eax
movl $-1, (%eax)
incl -20(%ebp)
incl -16(%ebp)
L67:
movl -32(%ebp), %eax
movl -16(%ebp), %edx
movl (%eax,%edx,4), %eax
movb (%eax), %al
testb %al, %al
jne L70
incl -12(%ebp)
L66:
cmpl $11, -12(%ebp)
jle L71
leave
ret
.section .rdata,"dr"
LC452:
.ascii "<no such local variable>\0"
.text
.globl _construct_local_variable_tables
.def _construct_local_variable_tables; .scl 2; .type 32; .endef
_construct_local_variable_tables:
pushl %ebp
movl %esp, %ebp
subl $40, %esp
movl _local_variable_text_table, %eax
movl %eax, -16(%ebp)
movl $0, -12(%ebp)
jmp L73
L74:
movl _local_variable_hash_table, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl $-1, (%eax)
incl -12(%ebp)
L73:
movl _HASH_TAB_SIZE, %eax
cmpl %eax, -12(%ebp)
jl L74
movl $0, -12(%ebp)
jmp L75
L76:
movl _MAX_LOCAL_VARIABLES, %eax
movl -12(%ebp), %edx
addl $_one_letter_locals, %edx
movb %al, (%edx)
incl -12(%ebp)
L75:
cmpl $127, -12(%ebp)
jle L76
movl $0, -12(%ebp)
jmp L77
L81:
movl -12(%ebp), %eax
movl _local_variables(,%eax,4), %eax
movl %eax, -20(%ebp)
movl -20(%ebp), %eax
incl %eax
movb (%eax), %al
testb %al, %al
jne L78
movl -20(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movl -12(%ebp), %edx
movb %dl, _one_letter_locals(%eax)
movl -20(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movl %eax, (%esp)
call _isupper
testl %eax, %eax
je L79
movl -20(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movl %eax, (%esp)
call _tolower
movl -12(%ebp), %edx
movb %dl, _one_letter_locals(%eax)
L79:
movl -20(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movl %eax, (%esp)
call _islower
testl %eax, %eax
je L78
movl -20(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movl %eax, (%esp)
call _toupper
movl -12(%ebp), %edx
movb %dl, _one_letter_locals(%eax)
L78:
movl -20(%ebp), %eax
movl %eax, (%esp)
call _hash_code_from_string
movl %eax, -24(%ebp)
movl _local_variable_hash_table, %eax
movl -24(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
cmpl $-1, %eax
jne L80
movl _local_variable_hash_table, %eax
movl -24(%ebp), %edx
sall $2, %edx
leal (%eax,%edx), %edx
movl -12(%ebp), %eax
movl %eax, (%edx)
L80:
movl _local_variable_hash_codes, %eax
movl -12(%ebp), %edx
sall $2, %edx
leal (%eax,%edx), %edx
movl -24(%ebp), %eax
movl %eax, (%edx)
movl _local_variable_texts, %eax
movl -12(%ebp), %edx
sall $2, %edx
leal (%eax,%edx), %edx
movl -16(%ebp), %eax
movl %eax, (%edx)
movl -20(%ebp), %eax
movl %eax, 4(%esp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _strcpy
movl -16(%ebp), %eax
movl %eax, (%esp)
call _strlen
incl %eax
addl %eax, -16(%ebp)
incl -12(%ebp)
L77:
movl _no_locals, %eax
cmpl %eax, -12(%ebp)
jl L81
jmp L82
L83:
movl _local_variable_texts, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl $LC452, (%eax)
incl -12(%ebp)
L82:
movl _MAX_LOCAL_VARIABLES, %eax
decl %eax
cmpl -12(%ebp), %eax
jg L83
leave
ret
.def _interpret_identifier; .scl 3; .type 32; .endef
_interpret_identifier:
pushl %ebp
movl %esp, %ebp
subl $56, %esp
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, -16(%ebp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _hash_code_from_string
movl %eax, -20(%ebp)
cmpl $0, 12(%ebp)
jne L102
L85:
movl _return_sp_as_variable, %eax
testl %eax, %eax
je L87
movl -16(%ebp), %eax
movb (%eax), %al
cmpb $115, %al
jne L87
movl -16(%ebp), %eax
incl %eax
movb (%eax), %al
cmpb $112, %al
jne L87
movl -16(%ebp), %eax
addl $2, %eax
movb (%eax), %al
testb %al, %al
jne L87
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 4(%eax)
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $106, 8(%eax)
jmp L84
L87:
movl _local_variables+484, %eax
testl %eax, %eax
je L86
movl -16(%ebp), %eax
incl %eax
movb (%eax), %al
testb %al, %al
jne L89
movl -16(%ebp), %eax
movb (%eax), %al
movsbl %al, %eax
movb _one_letter_locals(%eax), %al
movsbl %al, %eax
movl %eax, -12(%ebp)
movl _MAX_LOCAL_VARIABLES, %eax
cmpl %eax, -12(%ebp)
jge L89
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $106, 8(%eax)
movl -12(%ebp), %eax
leal 1(%eax), %ecx
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl %ecx, 4(%eax)
jmp L84
L89:
movl _local_variable_hash_table, %eax
movl -20(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
movl %eax, -12(%ebp)
cmpl $0, -12(%ebp)
js L86
jmp L90
L92:
movl _local_variable_hash_codes, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
cmpl -20(%ebp), %eax
jne L91
movl _local_variable_texts, %eax
movl -12(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _strcmpcis
testl %eax, %eax
jne L91
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $106, 8(%eax)
movl -12(%ebp), %eax
leal 1(%eax), %ecx
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl %ecx, 4(%eax)
jmp L84
L91:
incl -12(%ebp)
L90:
movl _no_locals, %eax
cmpl %eax, -12(%ebp)
jl L92
jmp L86
L102:
nop
L86:
movl _keywords_hash_table, %eax
movl -20(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl (%eax), %eax
movl %eax, -12(%ebp)
jmp L93
L100:
movl _keywords_data_table, %ecx
movl -12(%ebp), %edx
movl %edx, %eax
sall %eax
addl %edx, %eax
sall $2, %eax
leal (%ecx,%eax), %eax
movl %eax, -24(%ebp)
movl -24(%ebp), %eax
movl (%eax), %eax
movl _keyword_groups(,%eax,4), %eax
movl %eax, -28(%ebp)
cmpl $0, 12(%ebp)
jne L94
movl -28(%ebp), %eax
movl 484(%eax), %eax
testl %eax, %eax
jne L95
L94:
cmpl $0, 12(%ebp)
je L96
cmpl $_directives, -28(%ebp)
jne L96
L95:
movl -24(%ebp), %eax
addl $4, %eax
movl (%eax), %edx
movl -28(%ebp), %eax
movl (%eax,%edx,4), %eax
movl %eax, -32(%ebp)
movl -28(%ebp), %eax
movl 488(%eax), %eax
testl %eax, %eax
je L97
movl -32(%ebp), %eax
movl %eax, 4(%esp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _strcmp
testl %eax, %eax
je L98
L97:
movl -28(%ebp), %eax
movl 488(%eax), %eax
testl %eax, %eax
jne L96
movl -32(%ebp), %eax
movl %eax, 4(%esp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _strcmpcis
testl %eax, %eax
jne L96
L98:
cmpl $_system_functions, -28(%ebp)
jne L99
movl -24(%ebp), %eax
addl $4, %eax
movl (%eax), %eax
movl _system_function_usage(,%eax,4), %eax
cmpl $2, %eax
je L96
L99:
movl -28(%ebp), %eax
movl 480(%eax), %edx
movl 8(%ebp), %ecx
movl %ecx, %eax
sall $2, %eax
addl %ecx, %eax
sall $3, %eax
addl $_circle, %eax
movl %edx, 8(%eax)
movl -24(%ebp), %eax
addl $4, %eax
movl (%eax), %edx
movl 8(%ebp), %ecx
movl %ecx, %eax
sall $2, %eax
addl %ecx, %eax
sall $3, %eax
addl $_circle, %eax
movl %edx, 4(%eax)
jmp L84
L96:
movl -24(%ebp), %eax
addl $8, %eax
movl (%eax), %eax
movl %eax, -12(%ebp)
L93:
cmpl $0, -12(%ebp)
jns L100
cmpl $0, 12(%ebp)
jne L103
L101:
movl -20(%ebp), %eax
movl %eax, 4(%esp)
movl -16(%ebp), %eax
movl %eax, (%esp)
call _symbol_index
movl %eax, %edx
movl 8(%ebp), %ecx
movl %ecx, %eax
sall $2, %eax
addl %ecx, %eax
sall $3, %eax
addl $_circle, %eax
movl %edx, 4(%eax)
movl 8(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 8(%eax)
jmp L84
L103:
nop
L84:
leave
ret
.lcomm _tokeniser_grid,1024,32
.section .rdata,"dr"
.align 32
_separators:
.ascii "->\0"
.space 1
.ascii "-->\0"
.ascii "--\0"
.space 1
.ascii "-\0"
.space 2
.ascii "++\0"
.space 1
.ascii "+\0"
.space 2
.ascii "*\0"
.space 2
.ascii "/\0"
.space 2
.ascii "%\0"
.space 2
.ascii "||\0"
.space 1
.ascii "|\0"
.space 2
.ascii "&&\0"
.space 1
.ascii "&\0"
.space 2
.ascii "~~\0"
.space 1
.ascii "~=\0"
.space 1
.ascii "~\0"
.space 2
.ascii "==\0"
.space 1
.ascii "=\0"
.space 2
.ascii ">=\0"
.space 1
.ascii ">\0"
.space 2
.ascii "<=\0"
.space 1
.ascii "<\0"
.space 2
.ascii "(\0"
.space 2
.ascii ")\0"
.space 2
.ascii ",\0"
.space 2
.ascii ".&\0"
.space 1
.ascii ".#\0"
.space 1
.ascii "..&\0"
.ascii "..#\0"
.ascii "..\0"
.space 1
.ascii ".\0"
.space 2
.ascii "::\0"
.space 1
.ascii ":\0"
.space 2
.ascii "@\0"
.space 2
.ascii ";\0"
.space 2
.ascii "[\0"
.space 2
.ascii "]\0"
.space 2
.ascii "{\0"
.space 2
.ascii "}\0"
.space 2
.ascii "$\0"
.space 2
.ascii "?~\0"
.space 1
.ascii "?\0"
.space 2
.ascii "#a$\0"
.ascii "#g$\0"
.ascii "#n$\0"
.ascii "#r$\0"
.ascii "#w$\0"
.ascii "##\0"
.space 1
.ascii "#\0"
.space 2
.text
.def _make_tokeniser_grid; .scl 3; .type 32; .endef
_make_tokeniser_grid:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, -4(%ebp)
jmp L105
L106:
movl -4(%ebp), %eax
movl $0, _tokeniser_grid(,%eax,4)
incl -4(%ebp)
L105:
cmpl $255, -4(%ebp)
jle L106
movl $0, -4(%ebp)
jmp L107
L110:
movl -4(%ebp), %eax
movb _separators(,%eax,4), %al
movsbl %al, %eax
movl %eax, -8(%ebp)
movl -8(%ebp), %eax
movl _tokeniser_grid(,%eax,4), %eax
testl %eax, %eax
jne L108
movl -4(%ebp), %eax
sall $4, %eax
leal 1(%eax), %edx
movl -8(%ebp), %eax
movl %edx, _tokeniser_grid(,%eax,4)
jmp L109
L108:
movl -8(%ebp), %eax
movl _tokeniser_grid(,%eax,4), %eax
leal 1(%eax), %edx
movl -8(%ebp), %eax
movl %edx, _tokeniser_grid(,%eax,4)
L109:
incl -4(%ebp)
L107:
cmpl $48, -4(%ebp)
jle L110
movl $1000, _tokeniser_grid+156
movl $1001, _tokeniser_grid+136
movl $1008, _tokeniser_grid
movl $1009, _tokeniser_grid+128
movl $1009, _tokeniser_grid+40
movl $1006, _tokeniser_grid+144
movl $1010, _tokeniser_grid+132
movl $1005, _tokeniser_grid+192
movl $1005, _tokeniser_grid+196
movl $1005, _tokeniser_grid+200
movl $1005, _tokeniser_grid+204
movl $1005, _tokeniser_grid+208
movl $1005, _tokeniser_grid+212
movl $1005, _tokeniser_grid+216
movl $1005, _tokeniser_grid+220
movl $1005, _tokeniser_grid+224
movl $1005, _tokeniser_grid+228
movl $1011, _tokeniser_grid+388
movl $1011, _tokeniser_grid+392
movl $1011, _tokeniser_grid+396
movl $1011, _tokeniser_grid+400
movl $1011, _tokeniser_grid+404
movl $1011, _tokeniser_grid+408
movl $1011, _tokeniser_grid+412
movl $1011, _tokeniser_grid+416
movl $1011, _tokeniser_grid+420
movl $1011, _tokeniser_grid+424
movl $1011, _tokeniser_grid+428
movl $1011, _tokeniser_grid+432
movl $1011, _tokeniser_grid+436
movl $1011, _tokeniser_grid+440
movl $1011, _tokeniser_grid+444
movl $1011, _tokeniser_grid+448
movl $1011, _tokeniser_grid+452
movl $1011, _tokeniser_grid+456
movl $1011, _tokeniser_grid+460
movl $1011, _tokeniser_grid+464
movl $1011, _tokeniser_grid+468
movl $1011, _tokeniser_grid+472
movl $1011, _tokeniser_grid+476
movl $1011, _tokeniser_grid+480
movl $1011, _tokeniser_grid+484
movl $1011, _tokeniser_grid+488
movl $1011, _tokeniser_grid+260
movl $1011, _tokeniser_grid+264
movl $1011, _tokeniser_grid+268
movl $1011, _tokeniser_grid+272
movl $1011, _tokeniser_grid+276
movl $1011, _tokeniser_grid+280
movl $1011, _tokeniser_grid+284
movl $1011, _tokeniser_grid+288
movl $1011, _tokeniser_grid+292
movl $1011, _tokeniser_grid+296
movl $1011, _tokeniser_grid+300
movl $1011, _tokeniser_grid+304
movl $1011, _tokeniser_grid+308
movl $1011, _tokeniser_grid+312
movl $1011, _tokeniser_grid+316
movl $1011, _tokeniser_grid+320
movl $1011, _tokeniser_grid+324
movl $1011, _tokeniser_grid+328
movl $1011, _tokeniser_grid+332
movl $1011, _tokeniser_grid+336
movl $1011, _tokeniser_grid+340
movl $1011, _tokeniser_grid+344
movl $1011, _tokeniser_grid+348
movl $1011, _tokeniser_grid+352
movl $1011, _tokeniser_grid+356
movl $1011, _tokeniser_grid+360
movl $1011, _tokeniser_grid+380
leave
ret
.section .rdata,"dr"
LC453:
.ascii "<before compilation>\0"
.data
.align 4
_NoFileOpen:
.long LC453
.long 0
.long 0
.long 0
.long 0
.long 0
.long 255
.section .rdata,"dr"
LC454:
.ascii "<constructing output>\0"
.data
.align 4
_MakingOutput:
.long LC454
.long 0
.long 0
.long 0
.long 0
.long 0
.long 255
.section .rdata,"dr"
LC455:
.ascii "<veneer routine>\0"
.data
.align 4
_StringLB:
.long LC455
.long 0
.long -1
.long 0
.long 0
.long 0
.long 255
.lcomm _CurrentLB,4,4
.text
.globl _declare_systemfile
.def _declare_systemfile; .scl 2; .type 32; .endef
_declare_systemfile:
pushl %ebp
movl %esp, %ebp
movl _CurrentLB, %eax
movl $-1, 8(%eax)
leave
ret
.globl _is_systemfile
.def _is_systemfile; .scl 2; .type 32; .endef
_is_systemfile:
pushl %ebp
movl %esp, %ebp
movl _CurrentLB, %eax
movl 8(%eax), %eax
testl %eax, %eax
setne %al
movzbl %al, %eax
leave
ret
.globl _get_current_dbgl
.def _get_current_dbgl; .scl 2; .type 32; .endef
_get_current_dbgl:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
subl $32, %esp
movl _CurrentLB, %eax
movl 24(%eax), %eax
movl %eax, -32(%ebp)
movl _CurrentLB, %eax
movl 12(%eax), %eax
testl %eax, %eax
jns L114
addl $255, %eax
L114:
sarl $8, %eax
movl %eax, -28(%ebp)
movl _CurrentLB, %eax
movl 12(%eax), %eax
andl $-2147483393, %eax
testl %eax, %eax
jns L115
decl %eax
orl $-256, %eax
incl %eax
L115:
movl %eax, -24(%ebp)
movl _CurrentLB, %eax
movl 20(%eax), %edx
movl _CurrentLB, %eax
movl 16(%eax), %eax
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
movl %eax, -16(%ebp)
cmpl $255, -16(%ebp)
jle L116
movl $255, -16(%ebp)
L116:
movl -16(%ebp), %eax
movb %al, -20(%ebp)
movl 8(%ebp), %edx
leal -32(%ebp), %ebx
movl $4, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
movl 8(%ebp), %eax
addl $32, %esp
popl %ebx
popl %esi
popl %edi
leave
ret $4
.lcomm _ErrorReport_dbgl,16,4
.globl _report_errors_at_current_line
.def _report_errors_at_current_line; .scl 2; .type 32; .endef
_report_errors_at_current_line:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
subl $32, %esp
movl _CurrentLB, %eax
movl 12(%eax), %eax
movl %eax, _ErrorReport+8
movl _CurrentLB, %eax
movl 24(%eax), %eax
movl %eax, _ErrorReport
movl _ErrorReport, %eax
cmpl $255, %eax
jne L118
movl $-1, _ErrorReport
L118:
movl _CurrentLB, %eax
movl (%eax), %eax
movl %eax, _ErrorReport+4
movl _CurrentLB, %eax
movl 4(%eax), %eax
movl %eax, _ErrorReport+12
movl _debugfile_switch, %eax
testl %eax, %eax
je L117
leal -40(%ebp), %eax
movl %eax, (%esp)
call _get_current_dbgl
subl $4, %esp
movl $_ErrorReport_dbgl, %edx
leal -40(%ebp), %ebx
movl $4, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
L117:
leal -12(%ebp), %esp
addl $0, %esp
popl %ebx
popl %esi
popl %edi
leave
ret
.globl _get_error_report_dbgl
.def _get_error_report_dbgl; .scl 2; .type 32; .endef
_get_error_report_dbgl:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
movl 8(%ebp), %edx
movl $_ErrorReport_dbgl, %ebx
movl $4, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
movl 8(%ebp), %eax
popl %ebx
popl %esi
popl %edi
leave
ret $4
.globl _get_current_line_start
.def _get_current_line_start; .scl 2; .type 32; .endef
_get_current_line_start:
pushl %ebp
movl %esp, %ebp
movl _CurrentLB, %eax
movl 16(%eax), %eax
leave
ret
.section .rdata,"dr"
LC456:
.ascii "::\0"
.text
.def _print_hash; .scl 3; .type 32; .endef
_print_hash:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl _no_hash_printed_yet, %eax
testl %eax, %eax
je L123
movl $LC456, (%esp)
call _printf
movl $0, _no_hash_printed_yet
L123:
movl $35, (%esp)
call _putchar
movl $-1, _hash_printed_since_newline
movl __imp___iob, %eax
addl $32, %eax
movl %eax, (%esp)
call _fflush
leave
ret
.def _reached_new_line; .scl 3; .type 32; .endef
_reached_new_line:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $0, _forerrors_pointer
movl _CurrentLB, %eax
movl 12(%eax), %edx
incl %edx
movl %edx, 12(%eax)
movl _CurrentLB, %eax
movl _CurrentLB, %edx
movl 20(%edx), %edx
movl %edx, 16(%eax)
movl _total_source_line_count, %eax
incl %eax
movl %eax, _total_source_line_count
movl _total_source_line_count, %eax
movl $100, %ecx
cltd
idivl %ecx
movl %edx, %eax
testl %eax, %eax
jne L124
movl _hash_switch, %eax
testl %eax, %eax
je L124
call _print_hash
L124:
leave
ret
.def _new_syntax_line; .scl 3; .type 32; .endef
_new_syntax_line:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl _source_to_analyse, %eax
testl %eax, %eax
je L127
movl $0, _forerrors_pointer
L127:
call _report_errors_at_current_line
leave
ret
.def _pow10_cheap; .scl 3; .type 32; .endef
_pow10_cheap:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, %eax
movl $1072693248, %edx
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
cmpl $0, 8(%ebp)
jns L133
jmp L130
L131:
fldl _powers.4492
fldl -8(%ebp)
fmulp %st, %st(1)
fstpl -8(%ebp)
addl $8, 8(%ebp)
L130:
cmpl $-8, 8(%ebp)
jl L131
movl 8(%ebp), %eax
addl $8, %eax
fldl _powers.4492(,%eax,8)
fmull -8(%ebp)
jmp L132
L134:
fldl _powers.4492+128
fldl -8(%ebp)
fmulp %st, %st(1)
fstpl -8(%ebp)
subl $8, 8(%ebp)
L133:
cmpl $8, 8(%ebp)
jg L134
movl 8(%ebp), %eax
addl $8, %eax
fldl _powers.4492(,%eax,8)
fmull -8(%ebp)
L132:
leave
ret
.def _construct_float; .scl 3; .type 32; .endef
_construct_float:
pushl %ebp
movl %esp, %ebp
subl $88, %esp
movl 12(%ebp), %eax
movl %eax, -48(%ebp)
movl 16(%ebp), %eax
movl %eax, -44(%ebp)
movl 20(%ebp), %eax
movl %eax, -56(%ebp)
movl 24(%ebp), %eax
movl %eax, -52(%ebp)
fldl -48(%ebp)
faddl -56(%ebp)
fstpl -72(%ebp)
movl 28(%ebp), %eax
movl %eax, (%esp)
call _pow10_cheap
fmull -72(%ebp)
fstpl -32(%ebp)
cmpl $0, 8(%ebp)
je L136
movl $-2147483648, %eax
jmp L137
L136:
movl $0, %eax
L137:
movl %eax, -36(%ebp)
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, (%esp)
movl %edx, 4(%esp)
call ___fpclassify
cmpl $1280, %eax
jne L138
movl -36(%ebp), %eax
orl $2139095040, %eax
jmp L139
L138:
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, (%esp)
movl %edx, 4(%esp)
call ___isnan
testl %eax, %eax
je L140
movl -36(%ebp), %eax
orl $2143289344, %eax
jmp L139
L140:
leal 28(%ebp), %eax
movl %eax, 8(%esp)
movl -32(%ebp), %eax
movl -28(%ebp), %edx
movl %eax, (%esp)
movl %edx, 4(%esp)
call _frexp
fstpl -16(%ebp)
fldl -16(%ebp)
fldl LC459
fxch %st(1)
fucompp
fnstsw %ax
testb $5, %ah
sete %al
testb %al, %al
je L141
fldl -16(%ebp)
fld1
fucompp
fnstsw %ax
testb $69, %ah
sete %al
testb %al, %al
je L141
fldl -16(%ebp)
fadd %st(0), %st
fstpl -16(%ebp)
movl 28(%ebp), %eax
decl %eax
movl %eax, 28(%ebp)
jmp L142
L141:
fldl -16(%ebp)
fldz
fxch %st(1)
fucompp
fnstsw %ax
andb $69, %ah
xorb $64, %ah
jne L143
movl $0, 28(%ebp)
jmp L142
L143:
movl -36(%ebp), %eax
orl $2139095040, %eax
jmp L139
L142:
movl 28(%ebp), %eax
cmpl $127, %eax
jle L144
movl -36(%ebp), %eax
orl $2139095040, %eax
jmp L139
L144:
movl 28(%ebp), %eax
cmpl $-126, %eax
jge L145
movl 28(%ebp), %eax
addl $126, %eax
movl %eax, 8(%esp)
movl -16(%ebp), %eax
movl -12(%ebp), %edx
movl %eax, (%esp)
movl %edx, 4(%esp)
call _ldexp
fstpl -16(%ebp)
movl $0, 28(%ebp)
jmp L146
L145:
movl 28(%ebp), %eax
testl %eax, %eax
jne L147
fldl -16(%ebp)
fldz
fxch %st(1)
fucompp
fnstsw %ax
andb $69, %ah
cmpb $64, %ah
sete %al
xorl $1, %eax
testb %al, %al
je L146
L147:
movl 28(%ebp), %eax
addl $127, %eax
movl %eax, 28(%ebp)
fldl -16(%ebp)
fld1
fsubrp %st, %st(1)
fstpl -16(%ebp)
L146:
fldl -16(%ebp)
fldl LC461
fmulp %st, %st(1)
fstpl -16(%ebp)
fldl -16(%ebp)
fldl LC459
faddp %st, %st(1)
fnstcw -58(%ebp)
movw -58(%ebp), %ax
movb $12, %ah
movw %ax, -60(%ebp)
fldcw -60(%ebp)
fistpl -20(%ebp)
fldcw -58(%ebp)
movl -20(%ebp), %eax
sarl $23, %eax
testl %eax, %eax
je L148
movl $0, -20(%ebp)
movl 28(%ebp), %eax
incl %eax
movl %eax, 28(%ebp)
movl 28(%ebp), %eax
cmpl $254, %eax
jle L148
movl -36(%ebp), %eax
orl $2139095040, %eax
jmp L139
L148:
movl 28(%ebp), %eax
sall $23, %eax
orl -36(%ebp), %eax
orl -20(%ebp), %eax
L139:
leave
ret
.lcomm _FileStack,4,4
.lcomm _File_sp,4,4
.lcomm _CF,4,4
.lcomm _last_no_files,4,4
.section .rdata,"dr"
LC462:
.ascii "MAX_INCLUSION_DEPTH\0"
LC463:
.ascii "File included more than once\0"
.text
.def _begin_buffering_file; .scl 3; .type 32; .endef
_begin_buffering_file:
pushl %ebp
movl %esp, %ebp
pushl %esi
pushl %ebx
subl $32, %esp
movl _MAX_INCLUSION_DEPTH, %eax
cmpl %eax, 8(%ebp)
jl L150
movl _MAX_INCLUSION_DEPTH, %eax
movl %eax, 4(%esp)
movl $LC462, (%esp)
call _memoryerror
L150:
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl (%eax), %eax
movl %eax, -20(%ebp)
cmpl $0, 8(%ebp)
jle L151
movl _FileStack, %edx
movl 8(%ebp), %eax
decl %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
addl %eax, %edx
movl _lookahead, %eax
movl %eax, 12(%edx)
movl _FileStack, %edx
movl 8(%ebp), %eax
decl %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
addl %eax, %edx
movl _lookahead2, %eax
movl %eax, 16(%edx)
movl _FileStack, %edx
movl 8(%ebp), %eax
decl %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
addl %eax, %edx
movl _lookahead3, %eax
movl %eax, 20(%edx)
L151:
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
addl %eax, %edx
movl 12(%ebp), %eax
movl %eax, 24(%edx)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %ebx
movl -20(%ebp), %eax
movl $4096, 8(%esp)
movl %eax, 4(%esp)
movl 12(%ebp), %eax
movl %eax, (%esp)
call _file_load_chars
movl %eax, 8(%ebx)
movl -20(%ebp), %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead
movl -20(%ebp), %eax
incl %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead2
movl -20(%ebp), %eax
addl $2, %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead3
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl $3, 4(%eax)
cmpl $1, 12(%ebp)
jne L152
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %eax
movl $-1, 32(%eax)
jmp L153
L152:
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl $0, 32(%eax)
L153:
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %eax
movl $0, 36(%eax)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl $1, 40(%eax)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %eax
movl $0, 44(%eax)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl $3, 48(%eax)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
addl %eax, %edx
movl _InputFiles, %eax
movl 12(%ebp), %ecx
decl %ecx
sall $3, %ecx
addl %ecx, %eax
movl (%eax), %eax
movl %eax, 28(%edx)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
addl %eax, %edx
movl 12(%ebp), %eax
movl %eax, 52(%edx)
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %eax
addl $28, %eax
movl %eax, _CurrentLB
movl _FileStack, %edx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl %eax, _CF
movl $0, -16(%ebp)
movl $0, -12(%ebp)
jmp L154
L156:
movl _FileStack, %edx
movl -12(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%edx,%eax), %eax
movl 28(%eax), %edx
movl _FileStack, %ecx
movl 8(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ebx
movl %ebx, %esi
subl %eax, %esi
movl %esi, %eax
leal (%ecx,%eax), %eax
movl 28(%eax), %eax
movl %edx, 4(%esp)
movl %eax, (%esp)
call _strcmp
testl %eax, %eax
jne L155
incl -16(%ebp)
L155:
incl -12(%ebp)
L154:
movl -12(%ebp), %eax
cmpl 8(%ebp), %eax
jl L156
cmpl $1, -16(%ebp)
jne L149
movl _FileStack, %edx
movl -12(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl 28(%eax), %eax
movl %eax, 4(%esp)
movl $LC463, (%esp)
call _warning_named
L149:
addl $32, %esp
popl %ebx
popl %esi
leave
ret
.def _create_char_pipeline; .scl 3; .type 32; .endef
_create_char_pipeline:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $0, _File_sp
movl _File_sp, %edx
movl %edx, %eax
incl %edx
movl %edx, _File_sp
movl $1, 4(%esp)
movl %eax, (%esp)
call _begin_buffering_file
movl $-1, _pipeline_made
movl _input_file, %eax
movl %eax, _last_no_files
leave
ret
.def _get_next_char_from_pipeline; .scl 3; .type 32; .endef
_get_next_char_from_pipeline:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $36, %esp
jmp L160
L161:
movl _last_no_files, %eax
incl %eax
movl %eax, _last_no_files
movl _last_no_files, %edx
movl _File_sp, %ecx
movl %ecx, %eax
incl %ecx
movl %ecx, _File_sp
movl %edx, 4(%esp)
movl %eax, (%esp)
call _begin_buffering_file
L160:
movl _last_no_files, %edx
movl _input_file, %eax
cmpl %eax, %edx
jl L161
movl _input_file, %eax
movl %eax, _last_no_files
movl _File_sp, %eax
testl %eax, %eax
jne L162
movl $0, _lookahead
movl $0, _lookahead2
movl $0, _lookahead3
movl $0, %eax
jmp L163
L162:
movl _CF, %eax
movl 4(%eax), %edx
movl _CF, %eax
movl 8(%eax), %eax
cmpl %eax, %edx
jne L164
movl _CF, %ebx
movl _CF, %eax
movl (%eax), %edx
movl _CF, %eax
movl 24(%eax), %eax
movl $4096, 8(%esp)
movl %edx, 4(%esp)
movl %eax, (%esp)
call _file_load_chars
movl %eax, 8(%ebx)
movl _CF, %eax
movl $0, 4(%eax)
jmp L165
L164:
movl _CF, %eax
movl 4(%eax), %edx
movl _CF, %eax
movl 8(%eax), %eax
negl %eax
cmpl %eax, %edx
jne L165
movl _File_sp, %eax
decl %eax
movl %eax, _File_sp
movl _File_sp, %eax
testl %eax, %eax
jne L166
movl $0, _lookahead
movl $0, _lookahead2
movl $0, _lookahead3
movl $0, %eax
jmp L163
L166:
movl _FileStack, %edx
movl _File_sp, %eax
decl %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl %eax, _CF
movl _FileStack, %edx
movl _File_sp, %eax
decl %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
addl $28, %eax
movl %eax, _CurrentLB
movl _CF, %eax
movl 12(%eax), %eax
movl %eax, _lookahead
movl _CF, %eax
movl 16(%eax), %eax
movl %eax, _lookahead2
movl _CF, %eax
movl 20(%eax), %eax
movl %eax, _lookahead3
movl _CF, %eax
movl 4(%eax), %edx
movl _CF, %eax
movl 8(%eax), %eax
cmpl %eax, %edx
jne L165
movl _CF, %ebx
movl _CF, %eax
movl (%eax), %edx
movl _CF, %eax
movl 24(%eax), %eax
movl $4096, 8(%esp)
movl %edx, 4(%esp)
movl %eax, (%esp)
call _file_load_chars
movl %eax, 8(%ebx)
movl _CF, %eax
movl $0, 4(%eax)
L165:
movl _CF, %eax
movl (%eax), %eax
movl %eax, -12(%ebp)
movl _lookahead, %eax
movl %eax, _current
movl _lookahead2, %eax
movl %eax, _lookahead
movl _lookahead3, %eax
movl %eax, _lookahead2
movl _CF, %eax
movl 4(%eax), %edx
movl %edx, %ecx
addl -12(%ebp), %ecx
movb (%ecx), %cl
movzbl %cl, %ecx
movb _source_to_iso_grid(%ecx), %cl
movzbl %cl, %ecx
movl %ecx, _lookahead3
incl %edx
movl %edx, 4(%eax)
movl _CurrentLB, %eax
movl 20(%eax), %edx
incl %edx
movl %edx, 20(%eax)
movl _forerrors_pointer, %eax
cmpl $510, %eax
jg L167
movl _forerrors_buff, %ecx
movl _forerrors_pointer, %eax
movl %eax, %edx
addl %edx, %ecx
movl _current, %edx
movb %dl, (%ecx)
incl %eax
movl %eax, _forerrors_pointer
L167:
movl _current, %eax
cmpl $10, %eax
jne L168
call _reached_new_line
L168:
movl _current, %eax
L163:
addl $36, %esp
popl %ebx
leave
ret
.lcomm _source_to_analyse_pointer,4,4
.def _get_next_char_from_string; .scl 3; .type 32; .endef
_get_next_char_from_string:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl _source_to_analyse, %eax
movl %eax, %ecx
movl _source_to_analyse_pointer, %eax
movl %eax, %edx
leal (%ecx,%edx), %edx
movl %edx, -12(%ebp)
incl %eax
movl %eax, _source_to_analyse_pointer
movl -12(%ebp), %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _current
movl _current, %eax
testl %eax, %eax
jne L170
movl $0, _lookahead
jmp L171
L170:
movl -12(%ebp), %eax
incl %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead
L171:
movl _lookahead, %eax
testl %eax, %eax
jne L172
movl $0, _lookahead2
jmp L173
L172:
movl -12(%ebp), %eax
addl $2, %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead2
L173:
movl _lookahead2, %eax
testl %eax, %eax
jne L174
movl $0, _lookahead3
jmp L175
L174:
movl -12(%ebp), %eax
addl $3, %eax
movb (%eax), %al
movzbl %al, %eax
movb _source_to_iso_grid(%eax), %al
movzbl %al, %eax
movl %eax, _lookahead3
L175:
movl _CurrentLB, %eax
movl 20(%eax), %edx
incl %edx
movl %edx, 20(%eax)
movl _forerrors_pointer, %eax
cmpl $510, %eax
jg L176
movl _forerrors_buff, %ecx
movl _forerrors_pointer, %eax
movl %eax, %edx
addl %edx, %ecx
movl _current, %edx
movb %dl, (%ecx)
incl %eax
movl %eax, _forerrors_pointer
L176:
movl _current, %eax
cmpl $10, %eax
jne L177
call _reached_new_line
L177:
movl _current, %eax
leave
ret
.section .rdata,"dr"
LC464:
.ascii "<- \0"
LC465:
.ascii "<-\0"
.align 4
LC466:
.ascii "The lexical analyser has collapsed because of a wrong assumption inside Inform\0"
.text
.globl _put_token_back
.def _put_token_back; .scl 2; .type 32; .endef
_put_token_back:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl _tokens_put_back, %eax
incl %eax
movl %eax, _tokens_put_back
movl _tokens_trace_level, %eax
testl %eax, %eax
jle L179
movl _tokens_trace_level, %eax
cmpl $1, %eax
jne L180
movl $LC464, (%esp)
call _printf
jmp L179
L180:
movl $LC465, (%esp)
call _puts
L179:
movl _tokens_put_back, %eax
cmpl $6, %eax
jne L178
movl $LC466, (%esp)
call _compiler_error
movl _tokens_put_back, %eax
decl %eax
movl %eax, _tokens_put_back
nop
L178:
leave
ret
.section .rdata,"dr"
.align 4
LC467:
.ascii "Illegal character found in source:\0"
LC468:
.ascii "<end of file>\0"
.align 4
LC471:
.ascii "Floating-point literal must have digits after the 'e'\0"
.align 4
LC472:
.ascii "Floating-point literal must have digits\0"
.align 4
LC473:
.ascii "Floating-point literals are not available in Z-code\0"
.align 4
LC474:
.ascii "Binary number expected after '$$'\0"
.align 4
LC475:
.ascii "Hexadecimal number expected after '$'\0"
.align 4
LC476:
.ascii "Too much text for one pair of quotations '...' to hold\0"
.align 4
LC477:
.ascii "No text between quotation marks ''\0"
LC478:
.ascii "'''\0"
.align 4
LC479:
.ascii "Too much text for one pair of quotations \"...\" to hold\0"
.align 4
LC480:
.ascii "empty rest of line after '\\' in string\0"
LC481:
.ascii "'\"'\0"
.align 4
LC482:
.ascii "Name exceeds the maximum length of %d characters:\0"
.align 4
LC483:
.ascii "Unrecognised combination in source:\0"
LC484:
.ascii "Character expected after\0"
.align 4
LC485:
.ascii "Alphabetic character expected after\0"
LC486:
.ascii "'%s' \0"
LC487:
.ascii "-> \0"
.text
.globl _get_next_token
.def _get_next_token; .scl 2; .type 32; .endef
_get_next_token:
pushl %ebp
movl %esp, %ebp
pushl %edi
pushl %esi
pushl %ebx
subl $300, %esp
call _lexical_context
movl %eax, -108(%ebp)
movl _tokens_put_back, %eax
testl %eax, %eax
jle L183
movl _circle_position, %edx
movl _tokens_put_back, %eax
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
incl %eax
movl %eax, -32(%ebp)
cmpl $0, -32(%ebp)
jns L184
addl $6, -32(%ebp)
L184:
movl _tokens_put_back, %eax
decl %eax
movl %eax, _tokens_put_back
movl -32(%ebp), %eax
movl _token_contexts(,%eax,4), %eax
cmpl -108(%ebp), %eax
je L281
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl 8(%eax), %eax
movl %eax, -36(%ebp)
cmpl $0, -36(%ebp)
je L186
cmpl $99, -36(%ebp)
jle L282
cmpl $199, -36(%ebp)
jg L283
L186:
movl $0, 4(%esp)
movl -32(%ebp), %eax
movl %eax, (%esp)
call _interpret_identifier
jmp L187
L183:
movl _circle_position, %eax
cmpl $5, %eax
jne L188
movl $0, _circle_position
jmp L189
L188:
movl _circle_position, %eax
incl %eax
movl %eax, _circle_position
L189:
movl _lexeme_memory, %edx
movl _MAX_QTEXT_SIZE, %eax
sall $2, %eax
addl %eax, %edx
movl _lex_p, %eax
cmpl %eax, %edx
jae L190
movl _lexeme_memory, %eax
movl %eax, _lex_p
L190:
movl _circle_position, %ecx
movl _lex_p, %edx
movl %ecx, %eax
sall $2, %eax
addl %ecx, %eax
sall $3, %eax
addl $_circle, %eax
movl %edx, (%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 4(%eax)
movl _lex_p, %eax
movb $0, (%eax)
jmp L191
L286:
nop
L191:
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
movl -28(%ebp), %eax
movl _tokeniser_grid(,%eax,4), %eax
movl %eax, -112(%ebp)
movl _next_token_begins_syntax_line, %eax
testl %eax, %eax
je L192
cmpl $1009, -112(%ebp)
je L192
cmpl $1010, -112(%ebp)
je L192
call _new_syntax_line
movl $0, _next_token_begins_syntax_line
L192:
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
leal _circle+16(%eax), %ebx
leal -248(%ebp), %eax
movl %eax, (%esp)
call _get_current_dbgl
subl $4, %esp
addl $8, %ebx
leal -248(%ebp), %edx
movl $4, %eax
movl %ebx, %edi
movl %edx, %esi
movl %eax, %ecx
rep movsl
movl -112(%ebp), %eax
cmpl $1006, %eax
je L198
cmpl $1006, %eax
jg L203
cmpl $1000, %eax
je L195
cmpl $1000, %eax
jg L204
testl %eax, %eax
je L194
jmp L193
L204:
cmpl $1001, %eax
je L196
cmpl $1005, %eax
je L197
jmp L193
L203:
cmpl $1009, %eax
je L284
cmpl $1009, %eax
jg L205
cmpl $1008, %eax
je L199
jmp L193
L205:
cmpl $1010, %eax
je L285
cmpl $1011, %eax
je L202
jmp L193
L194:
movl -28(%ebp), %eax
movl %eax, 4(%esp)
movl $LC467, (%esp)
call _char_error
jmp L191
L207:
movl _get_next_char, %eax
call *%eax
jmp L206
L284:
nop
L206:
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1009, %eax
je L207
jmp L191
L210:
movl _get_next_char, %eax
call *%eax
jmp L208
L285:
nop
L208:
movl _lookahead, %eax
cmpl $10, %eax
je L286
movl _lookahead, %eax
testl %eax, %eax
jne L210
jmp L191
L199:
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $5, 8(%eax)
movl _lex_p, %eax
movl $14, 8(%esp)
movl $LC468, 4(%esp)
movl %eax, (%esp)
call _memcpy
movl _lex_p, %ebx
movl _lex_p, %eax
movl %eax, (%esp)
call _strlen
incl %eax
leal (%ebx,%eax), %eax
movl %eax, _lex_p
jmp L211
L197:
movl $10, -44(%ebp)
jmp L212
L289:
nop
L212:
movl $0, -48(%ebp)
L214:
movl -48(%ebp), %eax
movl %eax, %edx
imull -44(%ebp), %edx
movl -28(%ebp), %eax
movl _character_digit_value(,%eax,4), %eax
leal (%edx,%eax), %eax
movl %eax, -48(%ebp)
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
cmpl -44(%ebp), %eax
jge L213
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
jmp L214
L213:
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $1, 8(%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
leal _circle(%eax), %edx
movl -48(%ebp), %eax
movl %eax, 4(%edx)
jmp L211
L215:
movl $0, -52(%ebp)
movl $0, %eax
movl $0, %edx
movl %eax, -64(%ebp)
movl %edx, -60(%ebp)
movl $0, %eax
movl $0, %edx
movl %eax, -72(%ebp)
movl %edx, -68(%ebp)
movl $0, -76(%ebp)
movl $0, -80(%ebp)
movl $0, -84(%ebp)
cmpl $45, -28(%ebp)
sete %al
movzbl %al, %eax
movl %eax, -116(%ebp)
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
jmp L216
L217:
fldl -64(%ebp)
fldl LC469
fmulp %st, %st(1)
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
movl %eax, -252(%ebp)
fildl -252(%ebp)
faddp %st, %st(1)
fstpl -64(%ebp)
incl -80(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
L216:
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
cmpl $9, %eax
jle L217
movl _lookahead, %eax
cmpl $46, %eax
jne L218
movl $0, %eax
movl $1072693248, %edx
movl %eax, -96(%ebp)
movl %edx, -92(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
jmp L219
L220:
fldl -96(%ebp)
fldl LC470
fmulp %st, %st(1)
fstpl -96(%ebp)
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
movl %eax, -252(%ebp)
fildl -252(%ebp)
fmull -96(%ebp)
fldl -72(%ebp)
faddp %st, %st(1)
fstpl -72(%ebp)
incl -84(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
L219:
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
cmpl $9, %eax
jle L220
L218:
movl _lookahead, %eax
cmpl $101, %eax
je L221
movl _lookahead, %eax
cmpl $69, %eax
jne L222
L221:
movl $0, -100(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
movl _lookahead, %eax
cmpl $43, %eax
je L223
movl _lookahead, %eax
cmpl $45, %eax
jne L287
L223:
movl _lookahead, %eax
cmpl $45, %eax
sete %al
movzbl %al, %eax
movl %eax, -100(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
jmp L225
L226:
movl -52(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall %eax
movl %eax, %edx
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
leal (%edx,%eax), %eax
movl %eax, -52(%ebp)
incl -76(%ebp)
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _get_next_char, %eax
call *%eax
jmp L225
L287:
nop
L225:
movl _lookahead, %eax
movl _character_digit_value(,%eax,4), %eax
cmpl $9, %eax
jle L226
cmpl $0, -76(%ebp)
jne L227
movl $LC471, (%esp)
call _error
L227:
cmpl $0, -100(%ebp)
je L222
negl -52(%ebp)
L222:
movl -84(%ebp), %eax
movl -80(%ebp), %edx
leal (%edx,%eax), %eax
testl %eax, %eax
jne L228
movl $LC472, (%esp)
call _error
L228:
movl -52(%ebp), %eax
movl %eax, 20(%esp)
movl -72(%ebp), %eax
movl -68(%ebp), %edx
movl %eax, 12(%esp)
movl %edx, 16(%esp)
movl -64(%ebp), %eax
movl -60(%ebp), %edx
movl %eax, 4(%esp)
movl %edx, 8(%esp)
movl -116(%ebp), %eax
movl %eax, (%esp)
call _construct_float
movl %eax, -48(%ebp)
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $1, 8(%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
leal _circle(%eax), %edx
movl -48(%ebp), %eax
movl %eax, 4(%edx)
movl _glulx_mode, %eax
testl %eax, %eax
jne L288
movl $LC473, (%esp)
call _error
jmp L211
L198:
movl $16, -44(%ebp)
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
cmpl $45, -28(%ebp)
je L215
cmpl $43, -28(%ebp)
je L215
cmpl $36, -28(%ebp)
jne L230
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
movl $2, -44(%ebp)
L230:
movl -28(%ebp), %eax
movl _character_digit_value(,%eax,4), %eax
cmpl -44(%ebp), %eax
jl L289
cmpl $2, -44(%ebp)
jne L232
movl $LC474, (%esp)
call _error
jmp L212
L232:
movl $LC475, (%esp)
call _error
jmp L212
L195:
movl $0, -40(%ebp)
L237:
movl -28(%ebp), %eax
movl %eax, -112(%ebp)
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
cmpl $64, -40(%ebp)
sete %al
incl -40(%ebp)
testb %al, %al
je L233
movl $LC476, (%esp)
call _error
movl _lex_p, %eax
movb $39, (%eax)
jmp L234
L233:
cmpl $39, -28(%ebp)
jne L235
cmpl $64, -112(%ebp)
je L235
cmpl $1, -40(%ebp)
jne L290
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
cmpl $39, -28(%ebp)
je L291
movl $LC477, (%esp)
call _error
jmp L234
L235:
cmpl $-1, -28(%ebp)
jne L237
jmp L234
L290:
nop
jmp L234
L291:
nop
L234:
cmpl $-1, -28(%ebp)
jne L238
movl $LC6, 4(%esp)
movl $LC478, (%esp)
call _ebf_error
L238:
movl _lex_p, %eax
decl %eax
movb $0, (%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $3, 8(%eax)
jmp L211
L196:
movl $0, -40(%ebp)
L252:
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _MAX_QTEXT_SIZE, %eax
cmpl %eax, -40(%ebp)
sete %al
incl -40(%ebp)
testb %al, %al
je L239
movl $LC479, (%esp)
call _error
jmp L240
L239:
cmpl $10, -28(%ebp)
jne L241
movl _lex_p, %eax
decl %eax
movl %eax, _lex_p
jmp L242
L243:
movl _lex_p, %eax
decl %eax
movl %eax, _lex_p
L242:
movl _lex_p, %eax
decl %eax
movb (%eax), %al
cmpb $32, %al
je L243
movl _lex_p, %eax
decl %eax
movb (%eax), %al
cmpb $94, %al
je L292
movl _lex_p, %eax
movb $32, (%eax)
incl %eax
movl %eax, _lex_p
jmp L245
L247:
movl _get_next_char, %eax
call *%eax
jmp L245
L292:
nop
L245:
movl _lookahead, %eax
cmpl $-1, %eax
je L293
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1009, %eax
je L247
jmp L248
L241:
cmpl $92, -28(%ebp)
jne L248
movl $0, -104(%ebp)
movl _lex_p, %eax
decl %eax
movl %eax, _lex_p
jmp L249
L251:
movl _get_next_char, %eax
call *%eax
movl %eax, -28(%ebp)
cmpl $10, -28(%ebp)
jne L249
movl $-1, -104(%ebp)
L249:
movl _lookahead, %eax
cmpl $-1, %eax
je L250
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1009, %eax
je L251
L250:
cmpl $0, -104(%ebp)
jne L248
movb $34, -128(%ebp)
movl _lookahead, %eax
movb %al, -127(%ebp)
movb $34, -126(%ebp)
movb $0, -125(%ebp)
leal -128(%ebp), %eax
movl %eax, 4(%esp)
movl $LC480, (%esp)
call _ebf_error
jmp L248
L293:
nop
L248:
cmpl $-1, -28(%ebp)
je L240
cmpl $34, -28(%ebp)
jne L252
L240:
cmpl $-1, -28(%ebp)
jne L253
movl $LC6, 4(%esp)
movl $LC481, (%esp)
call _ebf_error
L253:
movl _lex_p, %eax
decl %eax
movb $0, (%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $2, 8(%eax)
jmp L211
L202:
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl $1, -48(%ebp)
jmp L254
L256:
incl -48(%ebp)
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
L254:
cmpl $32, -48(%ebp)
jg L255
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1011, %eax
je L256
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1005, %eax
je L256
L255:
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
cmpl $32, -48(%ebp)
jle L257
movl $32, 8(%esp)
movl $LC482, 4(%esp)
leal -228(%ebp), %eax
movl %eax, (%esp)
call _sprintf
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
leal -228(%ebp), %eax
movl %eax, (%esp)
call _error_named
L257:
movl _dont_enter_into_symbol_table, %eax
testl %eax, %eax
je L258
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $2, 8(%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 4(%eax)
movl _dont_enter_into_symbol_table, %eax
cmpl $-2, %eax
jne L294
movl _circle_position, %eax
movl $-1, 4(%esp)
movl %eax, (%esp)
call _interpret_identifier
jmp L211
L258:
movl _circle_position, %eax
movl $0, 4(%esp)
movl %eax, (%esp)
call _interpret_identifier
jmp L211
L193:
movl -112(%ebp), %eax
sarl $4, %eax
movl %eax, -36(%ebp)
movl -112(%ebp), %eax
andl $15, %eax
addl -36(%ebp), %eax
movl %eax, -120(%ebp)
jmp L260
L266:
movl $_separators, %eax
movl -36(%ebp), %edx
sall $2, %edx
addl %edx, %eax
movl %eax, -124(%ebp)
movl -124(%ebp), %eax
incl %eax
movb (%eax), %al
testb %al, %al
jne L261
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
jmp L262
L261:
movl -124(%ebp), %eax
addl $2, %eax
movb (%eax), %al
testb %al, %al
jne L263
movl -124(%ebp), %eax
incl %eax
movb (%eax), %al
movsbl %al, %edx
movl _lookahead, %eax
cmpl %eax, %edx
jne L295
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
jmp L262
L263:
movl -124(%ebp), %eax
incl %eax
movb (%eax), %al
movsbl %al, %edx
movl _lookahead, %eax
cmpl %eax, %edx
jne L265
movl -124(%ebp), %eax
addl $2, %eax
movb (%eax), %al
movsbl %al, %edx
movl _lookahead2, %eax
cmpl %eax, %edx
jne L265
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
jmp L262
L295:
nop
L265:
incl -36(%ebp)
L260:
movl -36(%ebp), %eax
cmpl -120(%ebp), %eax
jl L266
movl _lex_p, %eax
movl -28(%ebp), %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %eax
movl _lookahead, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %eax
movl _lookahead2, %edx
movb %dl, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
movl _lex_p, %eax
movl %eax, 4(%esp)
movl $LC483, (%esp)
call _error_named
jmp L191
L262:
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $4, 8(%eax)
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
leal _circle(%eax), %edx
movl -36(%ebp), %eax
movl %eax, 4(%edx)
movl -36(%ebp), %eax
subl $34, %eax
cmpl $13, %eax
ja L296
movl L271(,%eax,4), %eax
jmp *%eax
.section .rdata,"dr"
.align 4
L271:
.long L268
.long L297
.long L297
.long L297
.long L297
.long L297
.long L297
.long L297
.long L269
.long L269
.long L270
.long L269
.long L270
.long L269
.text
L268:
jmp L267
L270:
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1009, %eax
jne L272
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
movl $LC484, (%esp)
call _error_named
jmp L267
L272:
movl _lex_p, %eax
decl %eax
movl %eax, _lex_p
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
jmp L273
L274:
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
L273:
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1011, %eax
je L274
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1005, %eax
je L274
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
jmp L267
L269:
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1011, %eax
je L275
movl _circle_position, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
movl $LC485, (%esp)
call _error_named
jmp L267
L275:
movl _lex_p, %eax
decl %eax
movl %eax, _lex_p
jmp L276
L277:
movl _lex_p, %ebx
movl _get_next_char, %eax
call *%eax
movb %al, (%ebx)
leal 1(%ebx), %eax
movl %eax, _lex_p
L276:
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1011, %eax
je L277
movl _lookahead, %eax
movl _tokeniser_grid(,%eax,4), %eax
cmpl $1005, %eax
je L277
movl _lex_p, %eax
movb $0, (%eax)
incl %eax
movl %eax, _lex_p
nop
L267:
jmp L211
L288:
nop
jmp L211
L294:
nop
jmp L211
L296:
nop
jmp L211
L297:
nop
L211:
movl _circle_position, %eax
movl %eax, -32(%ebp)
jmp L187
L281:
nop
jmp L187
L282:
nop
jmp L187
L283:
nop
L187:
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl 4(%eax), %eax
movl %eax, _token_value
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl 8(%eax), %eax
movl %eax, _token_type
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, _token_text
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle+16, %eax
movl $_token_line_ref, %edx
leal 8(%eax), %ebx
movl $4, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
movl -32(%ebp), %eax
movl -108(%ebp), %edx
movl %edx, _token_contexts(,%eax,4)
movl _tokens_trace_level, %eax
testl %eax, %eax
jle L182
movl _tokens_trace_level, %eax
cmpl $1, %eax
jne L279
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl (%eax), %eax
movl %eax, 4(%esp)
movl $LC486, (%esp)
call _printf
jmp L182
L279:
movl $LC487, (%esp)
call _printf
movl -32(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl %esp, %edx
movl %eax, %ebx
movl $10, %eax
movl %edx, %edi
movl %ebx, %esi
movl %eax, %ecx
rep movsl
call _describe_token
movl $32, (%esp)
call _putchar
movl _tokens_trace_level, %eax
cmpl $2, %eax
jle L280
movl -32(%ebp), %eax
movl _token_contexts(,%eax,4), %eax
movl %eax, (%esp)
call _print_context
L280:
movl $10, (%esp)
call _putchar
L182:
leal -12(%ebp), %esp
addl $0, %esp
popl %ebx
popl %esi
popl %edi
leave
ret
.lcomm _veneer_error_title,64,32
.section .rdata,"dr"
.align 4
LC488:
.ascii "(if this is ever visible, there is a bug)\0"
LC489:
.ascii "<veneer routine '%s'>\0"
.text
.globl _restart_lexer
.def _restart_lexer; .scl 2; .type 32; .endef
_restart_lexer:
pushl %ebp
movl %esp, %ebp
subl $40, %esp
movl $0, _circle_position
movl $0, -12(%ebp)
jmp L299
L300:
movl -12(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 8(%eax)
movl -12(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $0, 4(%eax)
movl -12(%ebp), %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
sall $3, %eax
addl $_circle, %eax
movl $LC488, (%eax)
movl -12(%ebp), %eax
movl $0, _token_contexts(,%eax,4)
incl -12(%ebp)
L299:
cmpl $5, -12(%ebp)
jle L300
movl _lexeme_memory, %eax
movl %eax, _lex_p
movl $0, _tokens_put_back
movl $0, _forerrors_pointer
movl $0, _dont_enter_into_symbol_table
movl $0, _return_sp_as_variable
movl $-1, _next_token_begins_syntax_line
movl 8(%ebp), %eax
movl %eax, _source_to_analyse
movl _source_to_analyse, %eax
testl %eax, %eax
jne L301
movl $_get_next_char_from_pipeline, _get_next_char
movl _pipeline_made, %eax
testl %eax, %eax
jne L302
call _create_char_pipeline
L302:
movl _forerrors_buff, %eax
movb $0, (%eax)
movl $0, _forerrors_pointer
jmp L298
L301:
movl $_get_next_char_from_string, _get_next_char
movl $0, _source_to_analyse_pointer
movl $_StringLB, _CurrentLB
movl 12(%ebp), %eax
movl %eax, 8(%esp)
movl $LC489, 4(%esp)
movl $_veneer_error_title, (%esp)
call _sprintf
movl $_veneer_error_title, _StringLB
movl _CurrentLB, %eax
movl $1, 12(%eax)
movl _CurrentLB, %eax
movl $0, 16(%eax)
movl _CurrentLB, %eax
movl $0, 20(%eax)
L298:
leave
ret
.globl _init_lexer_vars
.def _init_lexer_vars; .scl 2; .type 32; .endef
_init_lexer_vars:
pushl %ebp
movl %esp, %ebp
leave
ret
.globl _lexer_begin_prepass
.def _lexer_begin_prepass; .scl 2; .type 32; .endef
_lexer_begin_prepass:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $0, _total_source_line_count
movl $_NoFileOpen, _CurrentLB
call _report_errors_at_current_line
leave
ret
.globl _lexer_begin_pass
.def _lexer_begin_pass; .scl 2; .type 32; .endef
_lexer_begin_pass:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $-1, _no_hash_printed_yet
movl $0, _hash_printed_since_newline
movl $0, _pipeline_made
movl $0, 4(%esp)
movl $0, (%esp)
call _restart_lexer
leave
ret
.globl _lexer_endpass
.def _lexer_endpass; .scl 2; .type 32; .endef
_lexer_endpass:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
movl $_MakingOutput, _CurrentLB
call _report_errors_at_current_line
leave
ret
.section .rdata,"dr"
LC490:
.ascii "filestack buffer\0"
LC491:
.ascii "source file buffer\0"
LC492:
.ascii "lexeme memory\0"
LC493:
.ascii "keyword hash table\0"
LC494:
.ascii "keyword hash end table\0"
LC495:
.ascii "keyword hashing linked list\0"
LC496:
.ascii "local variable hash table\0"
LC497:
.ascii "text of local variable names\0"
LC498:
.ascii "local variable hash codes\0"
LC499:
.ascii "local variable text pointers\0"
.text
.globl _lexer_allocate_arrays
.def _lexer_allocate_arrays; .scl 2; .type 32; .endef
_lexer_allocate_arrays:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $36, %esp
movl _MAX_INCLUSION_DEPTH, %eax
sall $3, %eax
leal 0(,%eax,8), %edx
movl %edx, %ecx
subl %eax, %ecx
movl %ecx, %eax
movl $LC490, 4(%esp)
movl %eax, (%esp)
call _my_malloc
movl %eax, _FileStack
movl $0, -12(%ebp)
jmp L309
L310:
movl _FileStack, %edx
movl -12(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %ebx
movl $LC491, 4(%esp)
movl $4100, (%esp)
call _my_malloc
movl %eax, (%ebx)
incl -12(%ebp)
L309:
movl _MAX_INCLUSION_DEPTH, %eax
cmpl %eax, -12(%ebp)
jl L310
movl _MAX_QTEXT_SIZE, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
movl $LC492, 4(%esp)
movl %eax, (%esp)
call _my_malloc
movl %eax, _lexeme_memory
movl _HASH_TAB_SIZE, %eax
movl $LC493, 8(%esp)
movl %eax, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _keywords_hash_table
movl _HASH_TAB_SIZE, %eax
movl $LC494, 8(%esp)
movl %eax, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _keywords_hash_ends_table
movl $LC495, 8(%esp)
movl $1050, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _keywords_data_table
movl _HASH_TAB_SIZE, %eax
movl $LC496, 8(%esp)
movl %eax, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _local_variable_hash_table
movl _MAX_LOCAL_VARIABLES, %eax
decl %eax
movl %eax, %edx
sall $5, %edx
leal (%edx,%eax), %eax
movl $LC497, 4(%esp)
movl %eax, (%esp)
call _my_malloc
movl %eax, _local_variable_text_table
movl _MAX_LOCAL_VARIABLES, %eax
movl $LC498, 8(%esp)
movl %eax, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _local_variable_hash_codes
movl _MAX_LOCAL_VARIABLES, %eax
movl $LC499, 8(%esp)
movl %eax, 4(%esp)
movl $4, (%esp)
call _my_calloc
movl %eax, _local_variable_texts
call _make_tokeniser_grid
call _make_keywords_tables
addl $36, %esp
popl %ebx
leave
ret
.globl _lexer_free_arrays
.def _lexer_free_arrays; .scl 2; .type 32; .endef
_lexer_free_arrays:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $36, %esp
movl $0, -12(%ebp)
jmp L312
L313:
movl _FileStack, %edx
movl -12(%ebp), %eax
sall $3, %eax
leal 0(,%eax,8), %ecx
movl %ecx, %ebx
subl %eax, %ebx
movl %ebx, %eax
leal (%edx,%eax), %eax
movl (%eax), %eax
movl %eax, -16(%ebp)
movl $LC491, 4(%esp)
leal -16(%ebp), %eax
movl %eax, (%esp)
call _my_free
incl -12(%ebp)
L312:
movl _MAX_INCLUSION_DEPTH, %eax
cmpl %eax, -12(%ebp)
jl L313
movl $LC490, 4(%esp)
movl $_FileStack, (%esp)
call _my_free
movl $LC492, 4(%esp)
movl $_lexeme_memory, (%esp)
call _my_free
movl $LC493, 4(%esp)
movl $_keywords_hash_table, (%esp)
call _my_free
movl $LC494, 4(%esp)
movl $_keywords_hash_ends_table, (%esp)
call _my_free
movl $LC495, 4(%esp)
movl $_keywords_data_table, (%esp)
call _my_free
movl $LC496, 4(%esp)
movl $_local_variable_hash_table, (%esp)
call _my_free
movl $LC497, 4(%esp)
movl $_local_variable_text_table, (%esp)
call _my_free
movl $LC498, 4(%esp)
movl $_local_variable_hash_codes, (%esp)
call _my_free
movl $LC499, 4(%esp)
movl $_local_variable_texts, (%esp)
call _my_free
addl $36, %esp
popl %ebx
leave
ret
.data
.align 32
_powers.4492:
.long -500134854
.long 1044740494
.long -1698910392
.long 1048238066
.long -1598689907
.long 1051772663
.long -1998362383
.long 1055193269
.long -350469331
.long 1058682594
.long -755914244
.long 1062232653
.long 1202590843
.long 1065646817
.long -1717986918
.long 1069128089
.long 0
.long 1072693248
.long 0
.long 1076101120
.long 0
.long 1079574528
.long 0
.long 1083129856
.long 0
.long 1086556160
.long 0
.long 1090021888
.long 0
.long 1093567616
.long 0
.long 1097011920
.long 0
.long 1100470148
.section .rdata,"dr"
.align 8
LC459:
.long 0
.long 1071644672
.align 8
LC461:
.long 0
.long 1096810496
.align 8
LC469:
.long 0
.long 1076101120
.align 8
LC470:
.long -1717986918
.long 1069128089
.def _printf; .scl 2; .type 32; .endef
.def _describe_symbol; .scl 2; .type 32; .endef
.def _hash_code_from_string; .scl 2; .type 32; .endef
.def _isupper; .scl 2; .type 32; .endef
.def _tolower; .scl 2; .type 32; .endef
.def _islower; .scl 2; .type 32; .endef
.def _toupper; .scl 2; .type 32; .endef
.def _strcpy; .scl 2; .type 32; .endef
.def _strlen; .scl 2; .type 32; .endef
.def _strcmpcis; .scl 2; .type 32; .endef
.def _strcmp; .scl 2; .type 32; .endef
.def _symbol_index; .scl 2; .type 32; .endef
.def _putchar; .scl 2; .type 32; .endef
.def _fflush; .scl 2; .type 32; .endef
.def ___fpclassify; .scl 2; .type 32; .endef
.def ___isnan; .scl 2; .type 32; .endef
.def _frexp; .scl 2; .type 32; .endef
.def _ldexp; .scl 2; .type 32; .endef
.def _memoryerror; .scl 2; .type 32; .endef
.def _file_load_chars; .scl 2; .type 32; .endef
.def _warning_named; .scl 2; .type 32; .endef
.def _puts; .scl 2; .type 32; .endef
.def _compiler_error; .scl 2; .type 32; .endef
.def _memcpy; .scl 2; .type 32; .endef
.def _char_error; .scl 2; .type 32; .endef
.def _error; .scl 2; .type 32; .endef
.def _ebf_error; .scl 2; .type 32; .endef
.def _sprintf; .scl 2; .type 32; .endef
.def _error_named; .scl 2; .type 32; .endef
.def _my_malloc; .scl 2; .type 32; .endef
.def _my_calloc; .scl 2; .type 32; .endef
.def _my_free; .scl 2; .type 32; .endef